równania nieliniowe - Uniwersytet Zielonogórski

Transkrypt

równania nieliniowe - Uniwersytet Zielonogórski
RÓWNANIA NIELINIOWE
Maciej Patan
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Metody numeryczne
Równania nieliniowe
Przykład 1 Prędkość v spadającego spadochroniarza wyraża się
zależnością
c mg
v=
1 − e− m t
c
gdzie g = 9.81 m/s2 . Dla współczynnika oporu c = 14 kg/s, obliczyć
masę skoczka m tak, żeby prędkość w chwili t = 7 s wynosiła v = 35 m/s.
44
42
40
38
v [m/s]
36
34
32
30
28
26
24
40
50
60
70
80
90
100
m [kg]
v ≈ 63.5379 kg
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
1
Metody numeryczne
Równania nieliniowe
Postawienie problemu
Ogólne sformułowanie: Znaleźć x, takie że f (x) = 0
gdzie



x1
f1 (x1 , x2 , . . . , xn )
 x2 
 f2 (x1 , x2 , . . . , xn )



x =  .  , f (x) = 
..
 .. 

.
xn





fn (x1 , x2 , . . . , xn )
Uwaga: Każde równanie może zostać przekształcone do postaci f (x) = 0.
Motywacje
Często, istniejące rozwiązania nie mogą zostać znalezione
analitycznie, nawet dla prostych równań, np. f (x) = e−x − x
Nawet jeżeli problem posiada rozwiązanie analityczne, złożoność
obliczeń czyni go niemożliwym do zastosowania.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
2
Metody numeryczne
Równania nieliniowe
Rozważania ogólne
B Jaka jest klasa funkcji?
I Czy są to wielomiany?
I Czy są ciągłe oraz gładkie?
B Jaka jest potrzebna precyzja obliczeń?
B Jak szybka i odporna powinna być metoda?
Wniosek: Dla układów równań nieliniowych nie istnieje
pojedyncza metoda szukania pierwiastków, która byłaby
odpowiednia we wszystkich sytuacjach!!!
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
3
Metody numeryczne
Równania nieliniowe
Strategia szukania pierwiastków równania
¶ Naszkicować wykres funkcji (dostarcza on początkowego
oszacowania i wskazuje potencjalne problemy).
· Wyizolować pojedyncze pierwiastki w oddzielnych
przedziałach (ang. bracketing).
¸ Wybrać oszacowanie początkowe rozwiązania.
¹ Iteracyjnie polepszać oszacowanie początkowe zgodnie z
wybranym algorytmem szukania pierwiastków, tzn.
wygenerować sekwencję
{xi }ni=0 : lim (xn − α) = 0
n→∞
gdzie f (α) = 0.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
4
Metody numeryczne
Równania nieliniowe
Izolacja pierwiastków (ang. Bracketing)
Pierwiastek jest wyizolowany w przedziale [a, b] jeżeli f (a)
oraz f (b) mają przeciwne znaki. Ale zmiana znaku zachodzi
także dla osobliwości.
f(b)
f(b)
a
a
b
b
f(a)
f(a )
Uwaga: Izolowanie służy do wstępnego, zgrubnego określenia
pierwiastków, nie do znalezienia ich dokładnej wartości.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
5
Metody numeryczne
Równania nieliniowe
Prosty algorytm izolowania
dane: f (x), xmin , xmax , n
dx = (xmax − xmin )/n
xleft = xmin
i=0
while i < n
i=i+1
xright = xleft + dx
if f (xleft )f (xright ) < 0
zapisz [xleft , xright ] do dalszego poszukiwania
pierwiastków
end
xleft = xright
end
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
6
Metody numeryczne
Równania nieliniowe
Algorytmy poszukiwania pierwiastków
B
B
B
B
B
B
Metoda punktu ustalonego
Bisekcja
Metoda Newtona-Raphsona
Metoda cięciw
Metoda siecznych
Reguła falsi (metoda fałszywej pozycji)
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
7
Metody numeryczne
Równania nieliniowe
Metoda punktu ustalonego (1)
Żeby rozwiązać f (x) = 0 trzeba równanie przekształcić do postaci
x = g(x). Wtedy
xi+1 = g(xi )
Jest to bardzo prosta metoda. Będzie działać jednak tylko gdy funkcja
iteracyjna g(x) jest zbieżna.
Przykład 2 Rozwiązać x − x1/3 − 2 = 0 z użyciem metody punktu
ustalonego.
Można przekształcić pierwotne równanie do postaci
1/3
xi+1 = g1 (xi ) = xi
+2
albo
xi+1 = g2 (xi ) = (xi − 2)3
Pytanie dodatkowe: Czy obie funkcje są jednakowo efektywne?
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
8
Metody numeryczne
Równania nieliniowe
Metoda punktu ustalonego (2)
k
0
1
2
3
4
5
6
7
8
g1 (xi )
3
3.4422495703
3.5098974493
3.5197243050
3.5211412691
3.5213453678
3.5213747615
3.5213789946
3.5213796042
g2 (xi )
3
1
−1
−27
−24389
−1.451 · 1013
−3.055 · 1039
−2.852 · 10118
∞
0.5
0
−0.5
−1
−1.5
−2
−2.5
0
1
2
3
4
Podsumowanie: g1 (x) zbiega, g2 (x) jest rozbieżna. Dla
zapewnienia zbieżności |g 0 (x)| < 1.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
9
Metody numeryczne
Równania nieliniowe
Bisekcja
Główna idea: Dla danego wyizolowanego pierwiastka, dzielić iteracyjnie
przedział na połowy kontynuując proces izolowania pierwiastka.
f(x1 )
f ( b)
a
x2
x1
b
f(a)
Założenia: funkcja jest ciągła w [a, b] i f (a)f (b) < 0
Dla przedziału izolacji [a, b] punkt środkowy to: xm =
b−a
xm = a +
2
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
a+b
albo
2
10
Metody numeryczne
Równania nieliniowe
Algorytm bisekcji
inicjalizacja: a = . . . , b = . . .
for k = 1, 2, . . .
xm = a + (b − a)/2
if sign(f (xm )) = sign(f (a))
a = xm
else
b = xm
end
if a − b < , STOP
end
Analiza bisekcji
Niech δi będzie rozmiarem przedziału w i-tym kroku. Wtedy
1
1
1
δ0 = b − a ⇒ δ1 = δ0 , δ2 = δ0 , . . . , δi = i δ0 = 2−i δ0 ⇒ . . .
2
4
2
δ i
. . . =⇒ i = log2
δ0
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
11
Metody numeryczne
Równania nieliniowe
Przykład 3 Rozwiąż metodą bisekcji równanie x − x1/3 − 2 = 0
i
0
1
2
3
4
5
6
7
8
9
10
a
3
3
3.5
3.5
3.5
3.5
3.5
3.51625
3.51625
3.51953125
3.51953125
b
4
4
4
3.75
3.625
3.5625
3.53125
3.53125
3.5234375
3.5234375
3.52148438
xm
3.5
3.75
3.625
3.5625
3.53125
3.515625
3.5234375
3.51953125
3.52148438
3.52050781
f (xm )
−0.01829449
0.19638375
0.08884159
0.03522131
0.00845016
−0.00492550
0.00176150
−0.00158221
0.00008959
−0.00074632
stosunkowo wolna zbieżność,
zbieżność niemonotoniczna,
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
12
Metody numeryczne
Równania nieliniowe
Kryteria zatrzymania algorytmu
Automatyczna procedura poszukiwania pierwiastków
potrzebuje monitorować progres w kierunku rozwiązania i
zatrzymać proces, kiedy oszacowanie jest wystarczająco blisko
wartości prawdziwej.
Sprawdzanie zbieżności zapobiega poszukiwaniom do
uzyskania nadmiernej precyzji.
Kryterium dystansu pomiędzy kolejnymi przybliżeniami
(kryterium na x)
|xi − xi−1 | < δx
Kryterium odległości f (x) od zera (kryterium na f (x))
|f (xi )| < δf
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
13
Metody numeryczne
Równania nieliniowe
Metody oparte na linearyzacji
Rozwijając f (x) w szereg Taylora względem xi mamy
df (x − xi )2 d2 f f (x) = f (xi ) + (x − xi )
+
+ ...
dx x=xi
2
dx2 x=xi
df Podstawiając q(xi ) =
oraz x = xi+1 i obcinając wyrazy
dx x=xi
wyższych rzędów
f (xi+1 ) ≈ f (xi ) + (xi+1 − xi )q(xi )
Celem jest znalezienie x takiego, że f (x) = 0. Ustalając f (xi+1 ) = 0
oraz rozwiązując dla xi+1 mamy
xi+1 = xi −
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
f (xi )
q(xi )
14
Metody numeryczne
Równania nieliniowe
Metoda
Newtona-Raphsona
Cięciw
Siecznych
Reguła falsi
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Współczynnik q(xi )
f 0 (xi )
f (x1 ) − f (x0 )
x1 − x0
f (xi ) − f (xi−1 )
xi − xi−1
f (xi ) − f (xk )
xi − xk
15
Metody numeryczne
Równania nieliniowe
Metoda Newtona-Raphsona
f(x1 )
x3
x2
x1
f(x2 )
Dla aktualnego oszacowania xi , użyć f (xi ) i współczynnika
nachylenia q(xi ) = f 0 (xi ) do przewidzenia gdzie f (x) przetnie
oś x.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
16
Metody numeryczne
Równania nieliniowe
Przykład 4 Rozwiązać metodą Newtona: x − x1/3 − 2 = 0.
Pierwsza pochodna to: f 0 (x) = 1 − 13 x−2/3 i formuła
1/3
xi − xi − 2
iteracyjna ma postać xi+1 = xi −
−2/3
1 − 13 xi
i
0
1
2
3
4
xi
3
3.52664429
3.52138015
3.52137971
3.52137971
f 0 (xi )
0.83975005
0.85612976
0.85598641
0.85598640
0.85598640
f (xi )
−0.44224957
0.00450679
3.771 · 10−7
2.664 · 10−15
0.0
bardzo szybka zbieżność,
wymaga analitycznej postaci pochodnej f 0 (x),
algorytm jest bardzo prosty o ile tylko f 0 (x) jest dostępna,
iteracja nie zapewnia pozostania w przedziale izolacji
pierwiastka.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
17
Metody numeryczne
Równania nieliniowe
Rozbieżność metody Newtona
f ’(x1)=0
f(x1 )
x1
Ponieważ
f (xi )
f 0 (xi )
to nowe oszacowanie, xi+1 , będzie daleko od poprzedniego jeżeli
xi+1 = xi −
f 0 (xi ) ≈ 0
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
18
Metody numeryczne
Równania nieliniowe
Metoda siecznych
f(x1)
x1
x3
x2
x0
f(x2)
Dla danych dwóch oszacowań xi−1 i xi , następne przybliżenie
pierwiastka leży tam, gdzie prosta utworzona przez punkty
f (xi−1 ) oraz f (xk ) przetnie oś x.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
19
Metody numeryczne
Równania nieliniowe
Przykład 5 Rozwiązać metodą siecznych: x − x1/3 − 2 = 0.
i
0
1
2
3
4
5
xi−1
xi
4
3
3
3.51734262
3.51734262 3.52141665
3.52141665 3.52137970
3.52137959 3.52137971
3.52137971 3.52137971
f (xi )
−0.44224957
−0.00345547
0.00003163
−2.034 · 10−9
−1.332 · 10−15
0.0
zbiega prawie tak szybko jak metoda Newtona,
nie ma potrzeby wyznaczania f 0 (x),
prosty algorytm,
niezbędne dwa oszacowania początkowe,
iteracja nie zapewnia pozostania w przedziale izolacji
pierwiastka.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
20
Metody numeryczne
Równania nieliniowe
Uogólnienie metody Newtona dla układów
równań
x(i+1) = x(i) − J −1 (x(i) )f (x(i) )
where

J(x) =












∂f1
∂x1
∂f2
∂x1
..
.
∂fn
∂x1
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
∂f1
...
∂x2
∂f2
...
∂x2
..
...
.
∂fn
...
∂x2
∂f1
∂xn
∂f2
∂xn
..
.
∂fn
∂xn













21