Projekt 6 - Rozwiązywanie równań nieliniowych

Transkrypt

Projekt 6 - Rozwiązywanie równań nieliniowych
Informatyka Podstawy Programowania
2016/2017
Projekt 6
6. ROZWIĄZYWANIE RÓWNAŃ
NIELINIOWYCH
CAŁKOWANIE NUMERYCZNE
6.1 Równania algebraiczne.
Poszukujemy rozwiązania, czyli chcemy określić pierwiastki rzeczywiste równania:
f (x ) = 0
(6.1)
gdzie x - zmienna rzeczywista
f ( x ) - dowolna wystarczająco regularna funkcja
Wystarczająco regularna funkcja oznacza, że f ( x ) jest ciągła oraz posiada ciągłe pochodne
potrzebnych rzędów.
Każdą wartość ξ , która spełnia równanie (6.1) tzn., taką, że
f (ξ ) = 0 nazywamy
pierwiastkiem równania.
Zakładamy, że równanie ma pierwiastki odosobnione tj. dla każdego pierwiastka ξ istnieje
otoczenie, które nie zawiera innych pierwiastków rzeczywistych tego równania.
Proces obliczania przybliżonych wartości pierwiastków rzeczywistych równania (6.1) dzieli
się na 2 etapy:
1. Lokalizacja pierwiastków, czyli ustalenie możliwie wąskich przedziałów (a, b ) , które
zawierają jeden i tylko jeden pierwiastek równia.
2. Uściślenie pierwiastków przybliżonych czyli określenie ich wartości z żądaną
dokładnością.
Podstawą algorytmów procesu lokalizacji pierwiastków jest twierdzenie BolzanoCauchy’ego.
Twierdzenie:
Jeżeli funkcja ciągła f ( x ) ma na końcach przedziału domkniętego a, b różne znaki, a więc
f (a ) • f (b )〈 0 to wewnątrz tego przedziału istnieje co najmniej jeden pierwiastek równania
f (x ) = 0 .
1
Informatyka Podstawy Programowania
2016/2017
f (x )
f (a )
ξ1
ξ2
ξ3
b
a
f (b )
x
Twierdzenie powyższe nie rozstrzyga o ilości pierwiastków wewnątrz przedziału
a, b .
Jednakże w praktyce mamy wystarczająco dużo informacji o szukanym pierwiastku, aby
znalezienie przedziału a, b nie stanowiło problemu.
W przeciwnym wypadku gdy informacje są skąpe, można po znalezieniu a, b zbadać znak
pochodnej f ' ( x ) w tym przedziale. Jeśli w przedziale a, b istnieje pochodna f ( x ) i nie
zmienia w nim znaku tj. jeśli f ' ( x )〉 0
lub f ' ( x )〈 0 dla a ≤ x ≤ b to ξ jest jedynym
pierwiastkiem.
f
f (b )
ξ
f (a )
x
2
Informatyka Podstawy Programowania
2016/2017
Metody poszukiwania pierwiastków
a) metoda połowienia (metoda bisekcji)
Mamy f ( x ) = 0 przy czym f ( x ) - funkcja ciągła w przedziale domkniętym a, b oraz
wiemy, że f (a )• f (b ) 〈 0
Idea połowienia polega na dzieleniu przedziału a, b na połowy i sprawdzaniu, w której z
nich znajduje się pierwiastek. W ten sposób znajduje się nowy węższy przedział zawierający
pierwiastek ξ . Proces ten powtarzamy tak długo, aż długość przedziału jest mniejsza od
przyjętej dopuszczalnej.
Metoda połowienia jest bezwzględnie zbieżna, gdyż każde równanie f ( x ) = 0 które posiada
pierwiastek w przedziale a, b , można rozwiązać tą metodą.
Nie zakłada się w tej metodzie żadnych ograniczeń na funkcję f ( x ) , ani na pochodną tej
funkcji. Jedyne założenie – ciągłość funkcji w przedziale a, b .
Algorytm postępowania.
1. Obliczyć punkt c =
a+b
i wartość funkcji w punkcie c → f (c )
2
2. Sprawdzić czy
f (c ) = 0
jeżeli tak to ξ = c , w przeciwnym razie
3. Wybrać z przedziałów a, c i c, b ten, w którym znajduje się pierwiastek.
Obliczamy f (a ) ⋅ f (c ) i f (b ) ⋅ f (c ) i ten który jest ujemny przechodzi do dalszych
obliczeń jak przedział a1 ,b1 .
4. Sprawdzić czy długość przedziału a1 ,b1 jest dostatecznie mała.
Jeżeli b1 − a1 〈ξ to przyjmujemy ξ =
b1 + a1
2
Jeżeli b1 − a1 〉ξ to rozpoczynamy proces od pkt. 1.
3
Informatyka Podstawy Programowania
2016/2017
W wyniku zastosowania opisanego algorytmu, albo w pewnym kroku otrzymujemy
pierwiastek dokładny albo ciąg przedziałów a1 ,b1 , a 2 ,b2 ... ai , bi takich, że oraz
f (a i ), f (bi ) 〈 0
bi − a i =
1
(b − a )
2i
(6.2)
Końce ciągu a1 , a 2 ....ai tworzą ciąg monotonicznie niemalejący, ograniczony z góry, a końce
b1 , b2 ....bi , tworzą ciąg nierosnący ograniczony z dołu to
ξ = lim ai = lim bi
i →∞
(6.3)
i →∞
a ξ jest pierwiastkiem równania.
b) Metoda interpolacji liniowej
Załóżmy że znany jest przedział a, b w którym znajduje się pierwiastek
f (x )
A
f (x )
f (a )
f (c )
a
C
x
f (b )
B
Przez punkty A (a, f (a )) i B (b, f (b )) można poprowadzić sieczną, która przetnie oś
odciętych w punkcie C . Wartość C określona jest zależnością:
C=
a ⋅ f (b ) − b ⋅ f (a )
f (b ) − f (a )
(6.4)
Jeżeli C w pobliżu
C = a + f (a )
a−b
f (b ) − f (a )
(6.5)
4
Informatyka Podstawy Programowania
2016/2017
Drugi składnik wzoru można uważać za poprawkę wartości " a" i wówczas w pobliżu
pierwiastka wystarczy kilka cyfr znaczących.
W powyższym równaniu jeden, lub oba końce mogą być „ruchome”. Zależy to od właściwej
funkcji wewnątrz przedziału a, b .
Różne przebiegi funkcji
f (x )
f (b )
c
f (a )
b
x
f (b )
B
x
f (x )
A1
f (a )
A
c = b1
a
c = a1
B1
5
Informatyka Podstawy Programowania
2016/2017
Załóżmy, że w przedziale a, b istnieje tylko 1 pierwiastek, a pochodna f ' ' ( x ) nie zmienia
znaku w tym przedziale, to jeden z końców przedziału będzie nieruchomy.
W przypadku gdy f (a )〉 0 i f ' ' ( x ) 〉 0 dla a ≤ x ≤ b koniec a jest nieruchomy
y
f (a )
x3 x 2
x4
x1
f (b )
x
Wówczas
x0 = b
xi +1 = xi −
f ( xi )
( xi − a )
f ( xi ) − f (a )
(6.6)
gdzie x = 0,1, 2...
W celu oszacowania błędu przybliżonego pierwiastka wykorzystamy twierdzenie:
Niech ξ będzie dokładną, a x przybliżoną wartością pierwiastka równania, przy czym obie te
liczby znajdują się w przedziale domkniętym α , β
Jeśli x ∈ a, β zachodzi nierówność
f ' ( x ) ≥ m1 〉 0
to prawdziwe jest następujące oszacowanie:
x −ξ ≤
()
f x
m1
(6.7)
(6.8)
6
Informatyka Podstawy Programowania
2016/2017
Błąd bezwzględny przybliżenia xi , gdy znane są wartości przybliżone poprzedniego xi −1 ,
można określić według wzoru:
ξ − xi ≤
M 1 − m1
xi − xi −1
m1
(6.9)
gdzie za M 1 i m1 można wziąć odpowiednio najmniejszą i największą wartość f ' ( x )
w przedziale domkniętym a, b .
Jeśli przedział a, b jest na tyle wąski, że zachodzi nierówność:
M 1 ≤ 2m1
(6.10)
to na mocy nierówności (6.9) otrzymujemy:
xi − xi −1 〈 Σ
(6.11)
gdzie Σ jest zadanym kresem górnym błędu bezwzględnego, to jest pewne, że ξ − xi 〈 Σ jest
również przedziałem.
6.2 Całkowanie numeryczne
Całkowanie numeryczne polega na zastąpieniu krzywej opisanej funkcją f ( x ) elementami o
kształcie prostokąta, trapezu, paraboli lub innej linii wyrażonej wielomianem dobrze
wpisującej się wpisującej się w kształt funkcji.
Formuła prostokątów dla przedziału [ x1 , x2 ]
x2
∫
f ( x ) dx = hf ( x1 ) −
x1
h 2 ''
f (ξ )
6
(6.12)
gdzie
ξ ∈ [ x1 , x2 ]
Formuła trapezów dla przedziału [ x1 , x2 ]
x2
∫
f ( x ) dx =
x1
h
h3 ''
f (ξ )
 f ( x1 ) + f ( x2 )  −
2
12
(6.13)
gdzie
ξ ∈ [ x1 , x2 ]
Formuła Simpsona (parabola) dla przedziału [ x1 , x3 ]
x3
∫
x1
f ( x ) dx =
h
h5 ( 4 )
f (ξ )
 f ( x1 ) + 4 f ( x2 ) + f ( x3 )  −
3
90
(6.14)
gdzie
ξ ∈ [ x1 , x3 ]
7
Informatyka Podstawy Programowania
2016/2017
Formuły Newtona:
• dla przedziału [ x1 , x4 ]
x4
∫
x1
3h
3h5 ( 4)
f ( x ) dx =  f ( x1 ) + 3 f ( x2 ) + 3 f ( x3 ) + f ( x4 )  −
f (ξ )
8
80
(6.15)
gdzie
ξ ∈ [ x1 , x4 ]
• dla przedziału [ x1 , x5 ]
x5
∫
f ( x ) dx =
x1
2h
8h 7 ( 6 )
f ( ξ ) (6.16)
 f ( x1 ) + 32 f ( x2 ) + 12 f ( x3 ) + 32 f ( x4 ) + f ( x5 )  −
45
945
gdzie
ξ ∈ [ x1 , x5 ]
8

Podobne dokumenty