Professional Documents
Culture Documents
Sprawozdanie Z Metod Numerycznych
Sprawozdanie Z Metod Numerycznych
Sprawozdanie Z Metod Numerycznych
Sprawozdanie
lista 4.
Pawe Gambu,
194260,
Informatyka III rok,
grupa: roda, godz. 7:30
13 grudnia 2013
Spis treci
1 Zadanie 1. 2
1.1 Przedstawienie problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Rozwizanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Wyniki oraz interpretacja, wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Zadanie 2. 2
2.1 Przedstawienie problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Rozwizanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Wyniki oraz interpretacja, wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Zadanie 3. 2
3.1 Przedstawienie problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 Rozwizanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.3 Wyniki oraz interpretacja, wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4 Zadanie 4. 3
4.1 Przedstawienie problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.2 Rozwizanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.3 Wyniki oraz interpretacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.4 Wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5 Zadanie 5. 7
5.1 Przedstawienie problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.2 Rozwizanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.3 Wyniki oraz interpretacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.4 Wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1
1 Zadanie 1.
1.1 Przedstawienie problemu
Zadaniem byo napisanie funkcji obliczajcej ilorazy rnicowe.
1.2 Rozwizanie
Zosta napisany program dla Octavea realizujcy nastpujcy algorytm:
Input: x-wektor zawierajcy wzy x(1) = x
0
, ..., x(n + 1) = x
n
,
f-wektor zawierajcy wartoci interpolowanej funkcji
f(1) = f(x
0
), ..., f(n + 1) = f(x
n
).
Output: fx-wektor zawierajcy obliczone ilorazy rnicowe
fx(1) = f(x
0
), ..., f(n + 1) = f(x
n
).
Algorytm:
len length(f);
fx = copy(f);
for i 1 to len do
fx(i) f(1);
for j 1 to len i do
f(j) (f(j + 1) f(j))/(x(i + j) x(j));
end
end
return fx;
1.3 Wyniki oraz interpretacja, wnioski
Rozwizanie zostao przetestowane skryptem testujcym. Wyniki testu zostay przedstawione w
opracowaniu zada czwartego i pitego.
2 Zadanie 2.
2.1 Przedstawienie problemu
Zadaniem byo napisanie funkcji obliczajcej warto wielomianu interpolacyjnego stopnia n w
postaci Newtona N
n
(x) w punkcie x = t za pomoc uoglnionego algorytmu Hornera.
2.2 Rozwizanie
Zosta napisany program dla Octavea realizujcy nastpujcy algorytm:
2.3 Wyniki oraz interpretacja, wnioski
Rozwizanie zostao przetestowane skryptem testujcym. Wyniki testu zostay przedstawione w
opracowaniu zada czwartego i pitego.
3 Zadanie 3.
3.1 Przedstawienie problemu
Zadaniem byo napisanie funkcji interpolujcej zadan funkcj f(x) w przedziale [a, b] za pomoc
wielomianu interpolacyjnego stopnia n w postaci Newtona. Nastpnie funkcja powinna rysowa
2
Input: x - wektor dugoci n + 1 zawierajcy wzy x
0
, ..., x
1
: x(1) = x
0
, ..., x(n + 1) = x
n
.
fx - wektor dugoci n + 1 zawierajcy ilorazy rnicowe
fx(1) = f[x
0
], ..., fx(n + 1) = f(x
n
)
t - punkt, w ktrym naley obliczy warto wielomianu.
Output: nt - warto wielomianu w punkcie t.
Algorytm:
len length(fx);
result fx;
for i = 1 to len 1 do
result(len i) = fx(len i) + (t x(len i)) result(len i + 1);
end
return result(1);
wielomian interpolacyjny i interpolowan funkcj.
3.2 Rozwizanie
Zosta napisany program dla Octavea realizujcy nastpujcy algorytm:
Input: f - nazwa m-pliku z funkcj,
a, b - przedzia interpolacji, n - stopie wielomianu interpolacyjnego.
Output: Funkcja rysuje wykres funkcji interpolowanej i interpolujcej.
Algorytm:
dokladnoscWykresu 5//parametr-im wikszy, tym wiksza dokadno;
odleglosc (b a)/n;
wezly 0 : 1 : n;
wezly wezly odleglosc + a;
wartosciInterpolowanej f(wezly)
ilorazy ilorazyRoznicowe(wezly, wartosciInterpolowanej);
args a : (odleglosc/dokladnoscWykresu) : b;
for i 1 to length(args) do
interpolujacaWartosci(i) warNewton(wezly, ilorazy, args(i));
end
rysujWykres(args, f);
rysujWykres(args, interpolujacaWartosci);
3.3 Wyniki oraz interpretacja, wnioski
Rozwizanie zostao przetestowane skryptem testujcym. Wyniki testu zostay przedstawione w
opracowaniu zada czwartego i pitego.
4 Zadanie 4.
4.1 Przedstawienie problemu
Zadanie polegao na przetestowaniu funkcji rysujNnfx(f,a,b,n) na nastpujcych przykadach:
e
x
, [0, 1], n = 5, 10, 15,
x
2
sin x, [1, 1], n = 5, 10, 15.
3
4.2 Rozwizanie
Dla poszczeglnych przykadw zostay wykorzystane skrypty z poprzednich zada.
4.3 Wyniki oraz interpretacja
Poniej zostay przedstawione wykresy dla wykonanych oblicze:
dla e
x
n = 5
n = 10
4
n = 15
dla x
2
sin x
n = 5
n = 10
5
n = 15
Odchylenie wielomianu interpolacyjnego od funkcji interpolowanej liczony jest wg wzoru:
f(x) p(x) =
1
(n + 1)!
f
(n+1)
(
x
)
n
i=0
(x x
i
)
Wyniki maksymalnego odchylenia przedstawione w tabeli:
dla n = 5 n = 10 n = 15
f(x) = e
x e
6!
3.78 10
3 e
11!
6.81 10
8 e
6!
1.3 10
13
f(x) = x
2
sin x
2
6
42
6!
3.73
2
11
110
11!
5.64 10
3 2
16
273
16!
8.55 10
7
Dla zadanych funkcji funkcja interpolujca dobrze przyblia wartoci funkcji interpolowanej. W
6
pierwszym przypadku ju dla wielomianu dziesitego stopnia oszacowanie daje dokadno maszy-
now. Dla drugiej funkcji dopiero dla n = 15. Eksperymenty jednak pokazuj, e dokadno jest
wiksza od oszacowania (ze wzgldu na grube szacowanie).
4.4 Wnioski
Funkcje s do dobrze przybliane interpolacj na zadanych przedziaach.
5 Zadanie 5.
5.1 Przedstawienie problemu
Zadanie polegao na przetestowaniu funkcji rysujNnfx(f,a,b,n) na nastpujcych przykadach:
|x|, [1, 1], n = 5, 10, 15,
1
1+x
2
, [5, 5], n = 5, 10, 15.
5.2 Rozwizanie
Dla poszczeglnych przykadw zostay wykorzystane skrypty z poprzednich zada.
5.3 Wyniki oraz interpretacja
dla |x|
n = 5
n = 10
7
n = 15
dla
1
1+x
2
n = 5
8
n = 10
n = 15
9
Odchylenie wielomianu interpolacyjnego od funkcji interpolowanej liczony jest wg wzoru:
f(x) p(x) =
1
(n + 1)!
f
(n+1)
(
x
)
n
i=0
(x x
i
)
Wyniki maksymalnego odchylenia przedstawione w tabeli:
dla n = 5 n = 10 n = 15
f(x) = |x|
f(x) =
1
1+x
2
10
6
101
6!
1.4 10
5 10
11
3.710
4
11!
9.3 10
8 10
16
3.6310
7
16!
1.73 10
10
Dla |x| nie obliczono bdu ze wzgldu na to, e funkcja nie jest rniczkowalna na caym badanym
przedziale.
5.4 Wnioski
Mimo, e pewnych miejscach interpolacja dobrze przyblia funkcj (i dla tych miejsc dokadno
wzrasta wraz ze zwikszeniem liczby wzw interpolacji), bd wraz ze zwikszaniem stopnia wielo-
mianu ronie, co jest widoczne zwaszcza w okolicach kocw przedziau (tzw. zjawisko Rungego).
10