Metody nieliniowe
Zastosować metodę Newtona do obliczania 1/x bez dzielenia. Zastosować do obliczenia 1/a dla a=2.1 z x_0=0.5 i 1001 z x_0=1e-3 - zbadać eksperymentalnie, czy mamy zbieżność kwadratową, tzn. liczyć e_{n+1}/(e_n*e_n) dla kolejnych n (e_n=|x_n-1/a|).
W raporcie: błędy |e_n| i |e_{n+1}/(e_n*e_n)| dla kolejnych n - za warunek stopu |1-x_n*a| < 1e-10*|x0| lub |x_{n+1}-x_n| < 1e-10 lub ilość iteracji przekroczy 30 (obliczenia w arytmetyce podwójnej precyzji).
Prosty katalog książek, czyli mała zabawa na rekordach.
Lista dwukierunkowa z elementem aktualnym jest listą dwukierunkową z trzema wyróżnionymi elementami: wskaźnik do początku, wskaźnik do końca i wskaźnik do tzw. rekordu aktualnego. Napisać program zawierający następujące procedury/funkcje: inicjalizacja, wstawienie elementu pod wskaźnikiem aktualnym, usuwanie rekordu pod wskaźnikiem aktualnym, przesuwanie wskaźnika aktualnego w lewo lub w prawo. Program powinien demonstrować takie operacje w trybie interakcyjnym (tzn. za pomocą menu).
Arytmetyka FL
Obliczyć wartość wielomianu (x+2)^6 na siatce równoodległej ze 101 punktami na przedziale [-2 - 3e-4, -2 + 3e-4] dwoma algorytmami - pierwszym takim wprost z rozwinięcia w bazie potęgowej, tzn. licząc kolejno x^6 + 12*x^5 + ... + 64 i drugim obliczając x=x+2 i potem x^6. Dostaniemy dwa wektory x1 i x2 obliczonych wartości obu algorytmami i obliczyć wektor y=(x1-x2)/m2 dla m2=max_k |x2[k]| czyli norma max od x2. Policzyć normę maksimum y.
W raporcie: norma max wektora y.
Postanowiłem dodać nową kategorię, a mianowicie "projekty". Będą się w niej znajdowały moje mniejsze i większe prace, które kiedyś wykonałem i być może kiedyś się komuś przydadzą.
Poniżej treści zadań z Matematyki Obliczeniowej, do których to rozwiązania wrzucę na dniach ;).
Arytmetyka FL
Obliczyć wartość wielomianu (x+2)^6 na siatce równoodległej ze 101 punktami na przedziale [-2 - 3e-4, -2 + 3e-4] dwoma algorytmami - pierwszym takim wprost z rozwinięcia w bazie potęgowej, tzn. licząc kolejno x^6 + 12*x^5 + ... + 64 i drugim obliczając x=x+2 i potem x^6. Dostaniemy dwa wektory x1 i x2 obliczonych wartości obu algorytmami i obliczyć wektor y=(x1-x2)/m2 dla m2=max_k |x2[k]| czyli norma max od x2. Policzyć normę maksimum y.
W raporcie: norma max wektora y.
Metody nieliniowe
Zastosować metodę Newtona do obliczania 1/x bez dzielenia. Zastosować do obliczenia 1/a dla a=2.1 z x_0=0.5 i 1001 z x_0=1e-3 - zbadać eksperymentalnie, czy mamy zbieżność kwadratową, tzn. liczyć e_{n+1}/(e_n*e_n) dla kolejnych n (e_n=|x_n-1/a|).
W raporcie: błędy |e_n| i |e_{n+1}/(e_n*e_n)| dla kolejnych n - za warunek stopu |1-x_n*a| < 1e-10*|x0| lub |x_{n+1}-x_n| < 1e-10 lub ilość iteracji przekroczy 30 (obliczenia w arytmetyce podwójnej precyzji).
Interpolacja Lagrange'a
Zastosować metodę Newtona obliczania wielomianu interpolacyjnego, aby obliczyć współczynniki w bazie Newtona wielomianów interpolacyjnych L_N f_j dla węzłów równoodległych x_k =k*10/N dla k=0,..,N odpowiednio stopnia N=5 i 20 interpolujących odpowiednio gładką funkcje f_1 (x)=1/(1+(x-5)^2) i tylko ciągłą f_2 (x)=|x-5|)na odcinku [0,10].
W raporcie: Współczynniki wielomianów interpolacyjnych, ale tylko dla N=5 oraz dwie tabele: Podać w pierwszej tabeli (2x2): błędy w przybliżonej normie max na siatce y_k=k*0.01 k=0,..,1000 tzn. max_k |f_j(y_k) - L_N f_j(y_k)| dla obu f_j i N=5,20. W drugiej tabeli (2x2): różnice w węzłąch interpolacji tzn podać max_{k=0,..,N} |f_j(x_k) - L_N f_j(x_k)| dla obu f_j i N=5,20.
Interpolacja Lagrange'a - optymalne węzły interpolacji
Zastosować jakkąkolwiek metodę obliczania wielomianu interpolacyjnego, aby obliczyć współczynniki wielomianów interpolacyjnych L_N f_j dla węzłów równoodległych x_k =k*10/N i węzłów Czebyszewa x_k=5+5*cos(\Pi*(1+2k)/(2N+2)) dla k=0,..,N dla N=20, interpolujących odpowiednio gładką funkcje f(x)=1/(1+(x-5)^2)) na odcinku [0,10].
W raporcie: Dwie liczby: Błędy w przybliżonej normie max na siatce y_k=k*0.01 k=0,..,1000 tzn max_k |f(y_k) - L_N f(y_k)| dla f i N=20 i obu typów węzłów.
Aproksymacja średniokwadratowa
Znaleźć a i b takie że dla zadanych par p-tów (x_i,y_i) mamy \sum_i |x_i||a+b*x_i-y_i|^2=\min_{c,d} |x_i| |c+d*x_i-y_i|^2. Zastosować do x_i=i*h dla h=0.1 i i=1,..,10 i y_i=2+x+0.5*sin(x_i).
W raporcie: Obliczone a i b oraz błędy: pierwiastek kwadratowy z (\sum_i |x_i||a+b*x_i-y_i|^2) oraz max_i |a+b*x_i-y_i|=|a+b*x_k -y_k| - podać też k tzn indeks w którym max jest osiągnięte.