Obliczenia naukowe – Lista 4
Adrian Kuta 204423
1 Z
ADANIE
1.1 O
PIS PROBLEMU
Napisać funkcję obliczającą ilorazy różnicowe.
1.2 R
OZWIĄZANIE
Funkcja napisana na podstawie algorytmu z książki, „Analiza numeryczna” – D. Kincaid, W.Cheney.
for 𝑖 = 1 to 𝑛
𝑑
𝑖
= 𝑓(𝑖)
end for
for 𝑗 = 1 to 𝑛
for 𝑖 = 𝑛 to 𝑗 step -1
𝑑
𝑖
=
𝑑
𝑖
−𝑑
𝑖−1
𝑥
𝑖
−𝑥
𝑖−𝑗
end for
end for
return 𝑑
2 Z
ADANIE
2.1 O
PIS PROBLEMU
Napisać funkcję obliczającą wartość wielomianu interpolacyjnego stopnia n w postaci Newtona w punkcie.
2.2 R
OZWIĄZANIE
𝑛𝑡 = 𝑓𝑥(𝑙𝑒𝑛𝑔𝑡ℎ(𝑓))
for 𝑖 = 𝑛 − 1 to 1 step -1
𝑛𝑡 = 𝑛𝑡 ∗ (𝑡 − 𝑥[𝑖] + 𝑓𝑥[𝑖])
end for
return 𝑛𝑡
3 Z
ADANIE
3.1 O
PIS PROBLEMU
Napisać funkcję 𝑟𝑦𝑠𝑢𝑗𝑁𝑛𝑓𝑥 która rysuje wielomian interpolacyjny oraz interpolowaną funkcję.
3.2 R
OZWIĄZANIE
W celu rozwiązania zadania wykorzystano funkcje napisane w zadaniach 1 i 2 orazpakiet Winston.
Pierwszym etapem jest wyliczenie wartości funkcji dla węzłów, następnie oblicza ilorazy różnicowe dla tych węzłów.
Ostatni etap to naniesienie interpolowanej funkcji i wielomianu na wykres.
4 Z
ADANIE
4.1 O
PIS PROBLEMU
Przetestować funkcję 𝑟𝑦𝑠𝑢𝑗𝑁𝑛𝑓𝑥() dla podanych funkcji:
1. 𝑓(𝑥) = 𝑒
𝑥
, 𝑥 ∈ [0, 1], 𝑛 = 5, 10, 15
2. 𝑓(𝑥) = 𝑥
2
sin 𝑥, 𝑥 ∈ [−1, 1], 𝑛 = 5, 10, 15
4.2 W
YNIKI
𝑒
𝑥
𝑛 = 5
𝑒
𝑥
, 𝑛 = 10
𝑒
𝑥
, 𝑛 = 15
𝑥
2
, 𝑛 = 5
𝑥
2
, 𝑛 = 10
𝑥
2
, 𝑛 = 15
4.3 W
NIOSKI
Widoczny jest brak rozbieżności między wielomianem interpolacyjnym oraz funkcją interpolowaną. Wraz z wzrostem
stopnia wielomianu, przybliżenie rośnie
5 Z
ADANIE
5.1 O
PIS PROBLEMU
Przetestować funkcję 𝑟𝑦𝑠𝑢𝑗𝑁𝑛𝑓𝑥() dla podanych funkcji:
1. 𝑓(𝑥) = |𝑥|, 𝑥 ∈ [−1, 1], 𝑛 = 5, 10, 15
2. 𝑓(𝑥) =
1
1+𝑥
2
, 𝑥 ∈ [−5, 5], 𝑛 = 5, 10, 15
5.2 W
YNIKI
|𝑥|, 𝑛 = 5
|𝑥|, 𝑛 = 10
|𝑥|, 𝑛 = 15
1
1+𝑥
2
, 𝑛 = 5
1
1+𝑥
2
, 𝑛 = 10
1
1+𝑥
2
, 𝑛 = 15
5.3 W
NIOSKI
Wykresy funkcji i wielomianów otrzymane w tym zadaniu pokrywają się w mniejszym stopniu niż miało to miejsce
poprzednim zadaniu, największą różnicę można zauważyć na krańcach przedziałów. Różnica między wykresami wzrasta
wraz ze stopniem wielomianu.