Algorytmy numeryczne. Matematyka komputerowa ()

Transkrypt

Algorytmy numeryczne. Matematyka komputerowa ()
Algorytmy numeryczne. Matematyka komputerowa. v.0.8 – egz mgr inf niestacj
1
1
Schemat Hornera
n
P
Obliczenie wartości wielomianu W (x) =
ai · xi wymaga co najmniej n dodawań, ale można
i=0
zaoszczędzić na mnożeniach:
(postać „zwykła”) W (x) = a0 + a1 · x + a2 · x2 + a3 · x3 + . . . + an · xn ,
|
(postać Hornera)
{z
W (x) = a0 + x · (a1 + x · (a2 + . . . x · (an−1 + x · an ) . . .))
|
2
}
(0+1+2+...+n)'O(n2 ) mnożeń
{z
}
n mnożeń
Interpolacja wielomianowa
Danych jest n + 1 punktów: (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ); xi 6= xj . Znaleźć (jedyny) wielomian
i6=j
W (x), deg W 6 n, przechodzący przez te punkty: W (x0 ) = y0 , W (x1 ) = y1 , . . ., W (xn ) = yn .
n
P
Q
x − xk .
Wzór interpolacyjny Lagrange’a (teoretyczny):
W (x) =
yi ·
x
− xk
i=0
k=0,...,n i
k6=i
Schemat ilorazów różnicowych (praktyczny)
x0
x1
x2
x3 . . . xn−1
xn
k = 0 y0
y1
y2
y3 . . . yn−1
yn
y01
y12
y23
...
yn−1,n
k=1
k=2
y012
y123
... ... ...
..........................................................
...
y012...n
k=n
y01 =
y1 −y0
,
x1 −x0
y12 =
y12 −y01
,
x2 −x0
y012 =
y0123 =
y123 −y012
,
x3 −x0
y123 =
y2 −y1
,
x2 −x1
y23 −y12
,
x3 −x1
...
...
...
y0123...n =
y123...(n−1) −y012...n
xn −x0
W (x) = y0 + y01 · (x − x0 ) + y012 · (x − x0 ) · (x − x1 ) + . . .
. . . + y012...n · (x − x0 ) · (x − x1 ) · . . . · (x − xn−1 ) =
Horner
= y0 + (x − x0 ) · (y01 + (x − x1 ) · (y012 + . . . (x − xn−1 ) · y012...n . . .))
Uwaga: Wielomian zależy też od xn , które jest ukryte we wzorze na y012...n .
3
Kwadratury
Jeśli przedział [a, b] jest „długi”, to dzielimy go na mniejsze [a, b] =
n
S
[ξi−1 , ξi ], a = ξ0 < ξ1 <
i=1
. . . ξi−1 < ξi < . . . ξn = b,
Rb
a
=
n
P
Rξi
, a na każdym z krótkich przedziałów [ξi−1 , ξi ] stosujemy
i=1 ξi−1
jedną z metod Newtona-Cotesa:
• metoda trapezów
Rb
f (x) dx ≈
a
• metoda parabol (=Simpsona)
f (a)+f (b)
2
Rb
a
· h, h = b − a,
f (x) dx ≈ [f (a) + 4 f (c) + f (b)] · h6 , h = b − a, c =
a+b
.
2
2
Algorytmy numeryczne. Matematyka komputerowa. v.0.8 – egz mgr inf niestacj
Uwaga: Metoda trapezów daje dokładną wartość, gdy f jest liniowa, a metoda parabol – gdy
f jest kwadratowa. Uzasadnienie: obie metody polegają na zastąpieniu f jej wielomianem interpolacyjnym: stopnia 1 z węzłami (a, f (a)), (b, f (b)) oraz, odpowiednio, stopnia 2 z węzłami
(a, f (a)), (b, f (b)), (c, f (c)). Użycie wielomianów interpolacyjnych dowolnego stopnia prowadzi
do ogólnych metod Newtona-Cotesa.
4
Rozwiązywanie równań
Szukamy rozwiązań równania f (x) = 0 (=miejsc zerowych=pierwiastków).
Bisekcja
Jeśli f : [a, b] → R – ciągła, a f (a) i f (b) są różnych znaków (f (a) · f (b) 6 0), to z twierdzenia
Darboux ∃x∈(a,b) f (x) = 0.
Algorytm:
1. Dzielimy przedział [a, b] na dwie połowy [a, b] = [a, c] ∪ [c, b], c =
a+b
.
2
2. Sprawdzamy, czy f (a) i f (c) są różnych znaków f (a) · f (c) 6 0.
3. Jeśli tak, to [a, c] zawiera pierwiastek f i przyjmujemy [a, b] := [a, c]. Jeśli nie, to [c, b]
zawiera pierwiastek f i przyjmujemy [a, b] := [c, b].
4. Powtarzamy 1-3 aż do uzyskania zadowalającej dokładności, przyjmując x = a+b
dla prze2
n+1
działu [a, b] uzyskanego w ostatnim kroku. Błąd po n iteracjach wynosi |b − a|/2 .
Metoda stycznych (Newtona-Raphsona)
xn+1 = xn −
f (xn )
f 0 (xn )
Startując z x0 dostatecznie bliskiego szukanego pierwiastka x uzyskujemy xn n→∞
−→ x. Rząd zbieżności jest kwadratowy (reguła kciuka: „liczba cyfr dokładnych podwaja się w każdym kroku”).
Uwaga: Nie zawsze wiemy jak wystartować blisko x. Niekiedy f 0 (xn ) = 0 (błąd dzielenia przez
0).
5
Algebra symboliczna
CAS – computer algebra systems (systemy algebry komputerowej): Maple, Maxima, Mathematica; wykonują obliczenia i manipulują na symbolach udzielając dokładnych odpowiedzi (gdzie
potrafią).
Przykłady
π
• Obliczyć całkę
R2
0
π
sin x dx = (− cos x)|02 = 1.
(%i1) /* w Maximie */ integrate(sin(x),x,0,%pi/2);
> int(sin(x),x=0..Pi/2); # w Maple’u
• Rozłożyć wielomian b2 − a2 = (b − a) · (b + a).
(%i2) /* w Maximie */ factor(b^2 - a^2);
> factor(b^2 - a^2); # w Maple’u
Algorytmy numeryczne. Matematyka komputerowa. v.0.8 – egz mgr inf niestacj
6
3
Inne zagadnienia
Funkcje sklejane (=giętkie =splines), szybka transformata Fouriera (=FFT), eliminacja Gaussa (=pivoting), łamane Eulera (schemat różnicowy dla równań różniczkowych), model wzrostu
wykładniczego (ciągła kapitalizacja odsetek, model Malthusa przyrostu naturalnego, rozpad promieniotwórczy, różnicowanie się języków naturalnych).