Netiesinių lygÄių sistemų sprendimas
Netiesinių lygÄių sistemų sprendimas
Netiesinių lygÄių sistemų sprendimas
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Turinys<br />
Netiesinių lygčių sistemų <strong>sprendimas</strong><br />
Olga Štikonienė<br />
Diferencialinių lygčių ir skaičiavimo matematikos katedra, MIF VU<br />
1 Vektorių ir matricų normos<br />
2 Netiesinių lygčių sistemų <strong>sprendimas</strong><br />
3 Paprastųjų iteracijų metodas<br />
4 Niutono metodas<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 1 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 2 / 36<br />
matricų normos<br />
Vektorių ir matricų normos<br />
Vektorių ir matricų normos<br />
‣ Kaip palyginti tarpusavyje daugiakomponentinius<br />
Kaip palyginti tarpusavyje daugiakomponentinius matematinius<br />
matematinius dydžius, tokius kaip vektoriai ir matricos<br />
dydžius, tokius kaip vektoriai ir matricos<br />
Euklidinė norma (vektoriaus ilgis) trimatėje erdvėje:<br />
Euklido norma (vektoriaus<br />
ilgis ) trimatėje erdvėje<br />
⎛a<br />
⎞ ⎛ ⎞<br />
⎜ ⎟<br />
2 2 2<br />
x = b x a<br />
= a + b + c<br />
2<br />
√<br />
⎜c<br />
⎟<br />
⎝x ⎠=<br />
⎝ b ⎠ , ‖x‖ 2 = a 2 + b 2 + c 2 .<br />
c<br />
⎛<br />
x<br />
1<br />
⎞<br />
⎜ ⎟<br />
x<br />
n<br />
2 2<br />
x = ⎜ ⎟ x = x<br />
2<br />
i<br />
⎜ ⎟<br />
∑<br />
Euklido Euklidinė norma norma n-matėje n-matėje erdvėje: erdvėje: M<br />
i<br />
=<br />
1<br />
⎜<br />
⎟<br />
⎛ ⎞<br />
⎝x n ⎠<br />
x 1<br />
X = ⎜ x 2<br />
√<br />
⎟<br />
⎝ · · · ⎠ , ‖x‖ 2 = x1 2 + x 2 2 + · · · + x n 2 .<br />
x n<br />
Vektorių ir matricų normos<br />
Vektoriaus norma<br />
Vektoriaus x norma vadinamas skaičius, žymimas ‖x‖. Vektoriaus<br />
normos savybės:<br />
1 ‖x‖ > 0, jei x ≠ 0, ir nulinio vektoriaus norma ‖0‖ = 0;<br />
2 ‖αx‖ = |α| · ‖x‖, čia α - skaičius;<br />
3 ‖x + y‖ ‖x‖ + ‖y‖ bet kuriems x ir y.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 3 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 4 / 36<br />
Vektorių ir matricų normos<br />
Vektoriaus normų pavyzdžiai<br />
Vektorių ir matricų normos<br />
Vektoriaus p-norma<br />
Dažniausiai taikomos vektoriaus x normos :<br />
1 Modulių sumos:<br />
‖x‖ 1 =<br />
N∑<br />
|x k |;<br />
k=1<br />
2 Kvadratinė:<br />
x<br />
x 2<br />
1<br />
x<br />
2<br />
x (x<br />
1,x 2<br />
)<br />
Matavimo rezultatas<br />
Regresijos linija<br />
y i<br />
Minėtos vektoriaus normos yra p-normos, apibrėžtos kaip<br />
( ∑ N<br />
‖x‖ p = |x k | p) 1 p<br />
.<br />
k=1<br />
( ∑ N<br />
‖x‖ 2 = |x k | 2) 1 2<br />
;<br />
k=1<br />
x <br />
x 1<br />
atskirieji atvejai.<br />
3 Maksimumo:<br />
‖x‖ ∞ = max<br />
1kN |x k|.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 5 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 6 / 36<br />
Vektorių ir matricų normos<br />
Matricos norma<br />
Vektorių ir matricų normos<br />
Suderintos normos<br />
Matricos A norma vadinamas skaičius, žymimas ‖A‖, turintis šias<br />
savybes:<br />
1 ‖A‖ > 0, jei A ≠ 0, ir nulinės matricos norma ‖O‖ = 0;<br />
2 ‖αA‖ = |α| · ‖A‖, čia α - skaičius;<br />
3 ‖A + B‖ ‖A‖ + ‖B‖ bet kuriems A ir B;<br />
4 ‖AB‖ ‖A‖ · ‖B‖ bet kuriems A ir B.<br />
Pastaba.<br />
Vektoriaus x norma vadinamas skaičius, žymimas ‖x‖, turintis 1)-3)<br />
savybes:<br />
Apibrėžimas.<br />
Vektoriaus x norma yra suderinta su matricos A norma, jei<br />
‖Ax‖ ‖A‖ · ‖x‖.<br />
Normos yra suderintos, kai matricos A norma yra<br />
apibrėžiama panaudojant vektoriaus norma:<br />
‖Ax‖<br />
‖A‖ = max<br />
x≠0 ‖x‖ .<br />
Norma aprašo didžiausią vektoriaus pailgėjimą,<br />
atvaizduojant operatoriumi A.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 7 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 8 / 36
Vektorių ir matricų normos<br />
Matricų normų pavyzdžiai<br />
Matricų normos (suderintos su vektoriaus normomis) :<br />
1 Stulpelių modulių suma p = 1:<br />
Vektorių ir matricų normos<br />
Vektorių ir matricų suderintos normos<br />
∞-norma:<br />
N∑<br />
‖A‖ 1 = max |a ij |;<br />
1jN<br />
i=1<br />
p = ∞,<br />
N∑<br />
‖A‖ ∞ = max |a ij |, ‖x‖ ∞ = max |x i|.<br />
1iN<br />
1iN<br />
j=1<br />
2 Kvadratinė p = 2 :<br />
√<br />
‖A‖ 2 = max |λ i(A T A)|;<br />
1iN<br />
3 Eilučių modulių suma p = ∞ :<br />
N∑<br />
‖A‖ ∞ = max |a ij |;<br />
1iN<br />
j=1<br />
Matricos ∞-norma suderinta su vektoriaus ∞-norma:<br />
‖Ax‖ ∞ = max |(Ax) i| = max | ∑ N N∑<br />
a ij x j | max |a ij | max |x j|<br />
1iN 1iN 1iN 1jN<br />
j=1<br />
j=1<br />
= max<br />
1iN<br />
( N ∑<br />
j=1<br />
|a ij | ) max<br />
1jN |x j| = ‖A‖ ∞ ‖x‖ ∞ .<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 9 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 10 / 36<br />
Vektorių ir matricų normos<br />
Vektorių ir matricų suderintos normos<br />
1-norma:<br />
p = 1,<br />
N∑<br />
N∑<br />
‖A‖ 1 = max<br />
1jN<br />
|a ij |, ‖x‖ 1 = |x k |.<br />
i=1<br />
k=1<br />
Matricos 1-norma suderinta su vektoriaus 1-norma:<br />
N∑<br />
N∑<br />
N∑ ∣ ∣∣ ∑ N ( ∑ N )<br />
‖Ax‖ 1 = |(Ax) i | = ∣ a ij x j max |a ij‖x j |<br />
1jN<br />
i=1<br />
i=1 j=1<br />
i=1 j=1<br />
( N∑ N∑ )<br />
N∑ N∑<br />
max |a ij | |x j | = max |a ij | |x j | = ‖A‖ 1 ‖x‖ 1 .<br />
1jN<br />
1jN<br />
i=1 j=1<br />
i=1 j=1<br />
Vektorių ir matricų normos<br />
Teiginys simetrinėms matricoms:<br />
Tegul S yra simetrinė matrica,<br />
λ 1 , · · · , λ N - jos tikrinės reikšmės,<br />
e 1 , · · · , e N - jos tikrinių vektorių ortonormuota sistema:<br />
Se i = λ i e i .<br />
N∑<br />
( ∑ N N∑ ) N∑<br />
∀x : x = x i e i ⇒ (Sx, x) = λ i x i e i , x i e i = λ i |x i | 2 .<br />
i=1<br />
i=1<br />
⇒ (Sx, x) max<br />
1iN |λ i|<br />
i=1<br />
N∑<br />
i=1<br />
i=1<br />
|x i | 2 = max<br />
1iN |λ i|‖x‖ 2 2 ,<br />
čia x i - vektoriaus x koordinatės.<br />
Matricos 2-normos suderinamumo su vektoriaus 2-norma<br />
įrodymui reikalinga nelygybė: A T A yra simetrinė matrica, nes<br />
(A T A) T = A T (A T ) T =<br />
A T A,<br />
⇒ (A T Ax, x) max<br />
1iN |λ i(A T A)|‖x‖ 2 2 .<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 11 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 12 / 36<br />
Vektorių ir matricų normos<br />
Vektorių ir matricų normų suderinamumas<br />
Vektorių ir matricų normos<br />
2-norma:<br />
√<br />
p = 2, ‖A‖ 2 = max i(A T A)|,<br />
1iN<br />
‖x‖ 2 =<br />
( N ∑<br />
k=1<br />
Matricos 2-norma suderinta su vektoriaus 2-norma:<br />
‖Ax‖ 2 = √ √<br />
(Ax, Ax) = (A T Ax, x)<br />
√<br />
∣<br />
max ∣λ i (A T ∣<br />
A) ∣‖x‖ 2<br />
1iN<br />
2 = ‖A‖ 2‖x‖ 2 .<br />
|x k | 2) 1 2<br />
.<br />
Pastaba:<br />
(A T ∣<br />
Ax, x) max ∣λ i (A T ∣<br />
A) ∣‖x‖ 2 2<br />
1iN<br />
(A T Ax, x) = (Ax, Ax) 0<br />
Jei A simetrinė ⇒ λ i (A T A) = λ i (A 2 ) = λ 2 i (A).<br />
⇒ ‖A‖ 2 = max<br />
1iN |λ i(A)|<br />
⇒ λ i (A T A) 0<br />
Jei Ax = λ i x ⇒ ‖A‖ · ‖x‖ ‖λ i x‖ = |λ i | · ‖x‖.<br />
Bet kurios tikrinės reikšmės modulis yra nedidesnis už bet kurią<br />
simetrinės matricos A normą.<br />
∀i.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 13 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 14 / 36<br />
Vektorių ir matricų normos<br />
Vektorių ir matricų normos<br />
Netiesinių lygčių sistemų <strong>sprendimas</strong><br />
Netiesinės lygčių sistemos<br />
Apibrėžimas:<br />
Simetrinė matrica A yra didesnė arba lygi simetrinei matricai B:<br />
A B,<br />
jei ∀ vektoriui x galioja skaliarinių sandaugų nelygybė:<br />
(Ax, x) (Bx, x).<br />
f 1 (x 1 , x 2 , · · · , x n ) = 0<br />
f 2 (x 1 , x 2 , · · · , x n ) = 0<br />
f n (x 1 , x 2 , · · · , x n ) = 0.<br />
Vektorinis pavidalas<br />
x - vektorius:<br />
⎛<br />
x = ⎜<br />
⎝<br />
x 1<br />
x 2<br />
· · ·<br />
x n<br />
.<br />
⎞<br />
⎟<br />
⎠ ,<br />
.<br />
Pavyzdys<br />
x 2 1 + 2x 2 2 + 5x 3 = 10<br />
x 1 x 2 + 5x 2 x 3 = 4<br />
3x 1 − x 2 + x 3 3 = 2.<br />
f (x) = 0<br />
f (x) - vektorinė funkcija:<br />
⎛<br />
f (x) = ⎜<br />
⎝<br />
f 1 (x 1 , · · · , x n )<br />
f 2 (x 1 , · · · , x n )<br />
· · ·<br />
f n (x 1 , · · · , x n )<br />
⎞<br />
⎟<br />
⎠ .<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 15 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 16 / 36
Netiesinių lygčių sistemų <strong>sprendimas</strong><br />
Pavyzdys - dvejų lygčių sistema<br />
Dviejų lygčių sistema - pavyzdys<br />
Paprastųjų iteracijų metodas<br />
Netiesinių lygčių sistemų <strong>sprendimas</strong><br />
Apskritimas x 2 + y 2 = r 2<br />
Sprendinys<br />
f(x,y)=0<br />
g(x,y)=0<br />
Elipsė (x/a) 2 + (y/b) 2 = 1<br />
p y<br />
priklauso nuo<br />
pradinio artinio<br />
parinkimo<br />
Paprastųjų iteracijų metodas (angl. Fixed-point method):<br />
f (x) = 0 ⇔ x = S(x).<br />
Žinomas k-asis vektoriaus x artinys x k ⇒<br />
x k+1 = S(x k ) - iteracinis procesas.<br />
Ar iteracinis procesas konverguoja<br />
Reikia nustatyti jo konvergavimo sąlygas.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 17 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 18 / 36<br />
Paprastųjų iteracijų metodas<br />
Spūdinė funkcija<br />
Apibrėžimas.<br />
Funkcija S(x) vadinasi spūdine funkcija n-mačių vektorių aibėje<br />
V , jei egzistuoja toks skaičius q ∈ (0; 1), kad<br />
∀x, y ∈ V ‖S(x) − S(y)‖ q‖x − y‖.<br />
Pastaba. Spūdinė funkcija yra tolydžioji.<br />
Pavyzdys:<br />
Aibė V = [−0, 5; 0, 5], funkcija S(x) = x 3 .<br />
x 1 = 0, 1; x 2 = 0, 2; ∆x = 0, 1;<br />
S(x 1 ) = 0, 001; S(x 2 ) = 0, 008; ∆S(x) = 0, 007; q = 0, 5.<br />
Paprastųjų iteracijų metodas<br />
Paprastųjų iteracijų metodo konvergavimo<br />
sąlygos<br />
Teorema.<br />
Sakykime, kad vektoriaus a aplinkoje Ω δ (a) = {x : ‖x − a‖ δ} yra<br />
apibrėžta spūdinė funkcija S(x) ir ‖S(a) − a‖ (1 − q)δ.<br />
Tada aplinkoje Ω δ (a)<br />
yra vienintelis vektorinės lygties x = S(x) sprendinys x ∗ ;<br />
paprastųjų iteracijų seka x k+1 = S(x k ) su bet kokiu pradiniu<br />
artiniu x 0 ∈ Ω δ (a) konverguoja į šį sprendinį;<br />
k-ojo artinio paklaida įvertinama nelygybe:<br />
‖S(x k ) − S(x ∗ )‖ <br />
qk<br />
1 − q ‖S(x0 ) − x 0 ‖.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 19 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 20 / 36<br />
Paprastųjų iteracijų metodas<br />
Teoremos įrodymas<br />
‖x n+1 − x n ‖ ‖S(x n ) − S(x n−1 )‖ q‖x n − x n−1 ‖ q 2 ‖x n−1 − x n−2 ‖<br />
· · · q n ‖x 1 − x 0 ‖ = q n ‖S(x 0 ) − x 0 ‖,<br />
(iš spūdinės funkcijos apibrėžimo).<br />
Kai l > n<br />
‖x l − x n ‖ ‖x l − x l−1 ‖ + ‖x l−1 − x l−2 ‖ + · · · + ‖x n+1 − x n ‖<br />
q l−1 ‖S(x 0 ) − x 0 ‖ + q l−2 ‖S(x 0 ) − x 0 ‖ + · · · + q n ‖S(x 0 ) − x 0 ‖<br />
q n (q l−n−1 + q l−n−2 + · · · + 1)‖S(x 0 ) − x 0 ‖<br />
Seka fundamentalioji<br />
lim<br />
l→∞ xl = x ∗ : ‖x ∗ − x n ‖ <br />
qn<br />
1 − q ‖S(x0 ) − x 0 ‖.<br />
qn<br />
1 − q ‖S(x0 ) − x 0 ‖.<br />
Ar x ∗ yra sprendinys<br />
x k+1 = S(x k ) ⇒ x ∗ = S(x ∗ ) (perėjome prie ribos ir<br />
pasinaudojame S tolydumu), t.y. x ∗ yra vektorinės lygties<br />
x = S(x) sprendinys.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 21 / 36<br />
Paprastųjų iteracijų metodas<br />
Teoremos (sprendinio vienaties) įrodymas<br />
Tarkime, kad lygtis x = S(x) turi du sprendinius x 1 ir x 2 (x 1 ≠ x 2 ).<br />
Tada<br />
‖x 1 − x 2 ‖ = ‖S(x 1 ) − S(x 2 )‖ q‖x 1 − x 2 ‖< ‖x 1 − x 2 ‖.<br />
Prieštaravimas. ⇒ ∃! sprendinys. ✷<br />
Pastaba. Kai n = 0 iš<br />
‖x l − x n ‖ <br />
qn<br />
1 − q ‖S(x0 ) − x 0 ‖ ⇒ ‖x l − x 0 ‖ ‖S(x0 ) − x 0 ‖<br />
:= δ<br />
1 − q<br />
⇒ ∀x l ∈ Ω δ (x 0 ) = {x : ‖x − x 0 ‖ δ}<br />
Teoremos įrodymas rodo, kad pakankama yra prielaida, kad<br />
S(x) apibrėžta, kai x ∈ Ω δ (x 0 ) ir ∀x 1 , x 2 ∈ Ω δ (x 0 )<br />
‖S(x 1 ) − S(x 2 )‖ q‖x 1 − x 2 ‖, 0 < q < 1.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 22 / 36<br />
Paprastųjų iteracijų metodas<br />
Paprastųjų iteracijų metodo privalumai:<br />
Paprastųjų iteracijų metodas<br />
Netiesinių lygčių sistemos perrašymas<br />
Išreikštinis iteracinis metodas<br />
Nereikia skaičiuoti dalinių išvestinių<br />
Tiesinis konvergavimo greitis<br />
Netiesinių lygčių sistema perrašoma nevienareikšmiškai<br />
f (x) = 0 ⇔ x = S(x)<br />
Svarbu:<br />
S(x) tenkintų konvergavimo sąlygas;<br />
Konstanta q būtų kuo mažesnė.<br />
x k+1 − x k<br />
= f (x k ),<br />
τ<br />
čia τ - iteracinis parametras, parenkamas taip, kad iteracinis<br />
procesas konverguotų greičiausiai.<br />
Iteracinio metodo funkcija S(x) = x + τf (x).<br />
Pikaro metodas<br />
Tegul f (x) = Ax + G(x),<br />
A - kvadratinė n-osios eilės matrica.<br />
Iteracinis procesas<br />
Ax k+1 + G(x k ) = 0<br />
Iteracinis procesas konverguoja, jei S(x) = A −1 G(x) yra spūdinė<br />
funkcija.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 23 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 24 / 36
Paprastųjų iteracijų metodas<br />
1 pavyzdys<br />
Perrašome<br />
x 2 1 + 50x 1 + x 2 2 + x 3 − 200 = 0<br />
x 2 1 + 20x 2 + x 2 3 − 50 = 0<br />
−x 2 1 − x 2 2 + 40x 3 + 75 = 0.<br />
x 1 = (−x 2 1 − x 2 2 − x 3 + 200)/50<br />
x 2 = (−x 2 1 − x 2 3 + 50)/20<br />
x 3 = (x 2 1 + x 2 2 − 75)/40.<br />
Parenkame pradinį artinį: x 1 = x 2 = x 3 = 0<br />
Paprastųjų iteracijų metodas<br />
1 pavyzdys – skaičiavimo rezultatai<br />
1 pavyzdys – skaičiavimo rezultatai<br />
G = [ (-0.02*x(1)^2 - 0.02*x(2)^2 - 0.02*x(3)^2 + 4)<br />
(-0.05*x(1)^2 05* (1)^2 - 0.05*x(3)^205* + 2.5)<br />
(0.025*x(1)^2 + 0.025*x(2)^2 -1.875) ];<br />
» x0=[0 0 0]; eps=1.e-6; maxit=100;<br />
iter.nr. x0(1) x0(2) x0(3) paklaida<br />
0 0 0 0<br />
1.0000 4.0000 2.5000 -1.8750 5.0760<br />
2.0000 3.4847 1.5242 -1.3188 1.2358<br />
3.0000 3.6759 1.8059 -1.5133 0.3921<br />
4.0000 3.6187 1.7099 -1.4557 0.1257<br />
5.0000 3.6372 1.7393 -1.4745 0.0395<br />
6.0000 3.6314 1.7298 -1.4686 0.0126<br />
7.0000 3.6333 1.7328 -1.4705 0.0040<br />
8.0000 3.6327 1.7318 -1.4699 0.00130013<br />
9.0000 3.6329 1.7321 -1.4701 0.0004<br />
10.0000 3.6328 1.7321 -1.4700 0.0001<br />
11.0000 3.6328 1.7321 -1.4701 0.0000<br />
12.0000 3.6328 1.7321 -1.4701 0.0000<br />
13.0000 3.6328 1.7321 -1.4701 0.0000<br />
14.0000 3.6328 1.7321 -1.4701 0.0000<br />
15.0000 3.6328 1.7321 -1.4701 0.00000000<br />
Paprastųjų iteracijų metodas konverguoja<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 25 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 26 / 36<br />
2 pavyzdys<br />
Perrašome<br />
Paprastųjų iteracijų metodas<br />
x 2 1 + 4x 2 2 + 9x 3 − 36 = 0<br />
x 1 =<br />
x 2 =<br />
x 3 =<br />
x 2 1 + 9x 2 2 − 47 = 0<br />
x 2 1 x 3 − 11 = 0.<br />
√<br />
11/x3<br />
√ (47−x 2<br />
1 )<br />
3<br />
√ (36−x 2<br />
1 −4x2 2)<br />
3 .<br />
Parenkame pradinį artinį: x 1 = x 2 = 0, x 3 > 0<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 27 / 36<br />
Paprastųjų iteracijų metodas<br />
2 pavyzdys – skaičiavimo rezultatai<br />
2 pavyzdys – skaičiavimo rezultatai<br />
G = [ (sqrt(11/x(3)))<br />
(sqrt(47 - x(1)^2) / 3 )<br />
(sqrt(36 - x(1)^2 - 4*x(2)^2) / 3 ) ];<br />
x0=[0 0 10]; eps=0.0001; maxit=500;<br />
iter.nr. x0(1) x0(2) x0(3) paklaida<br />
0 0 0 10<br />
1.0000 1.0488 2.2852 2.0000 8.3858<br />
2.0000 2.3452 2.2583 1.2477 1.4991<br />
3.0000 2.9692 2.1473 1.0593 0.6612<br />
4.0000 3.2224 2.0598 0.9854 0.2779<br />
5.0000 3.3411 2.0170 0.9801 0.1263<br />
6.0000 3.3501 1.9955 0.9754 0.0238<br />
7.0000 3.3581 1.9938 0.9916 0.0181<br />
8.0000 3.3307 1.9923 0.9901 0.0275<br />
9.0000 3.3332 3332 1.9974 1.0017 0.0129<br />
0129<br />
10.0000 3.3139 1.9969 0.9962 0.0201<br />
11.0000 3.3230 2.0005 1.0037 0.0124<br />
12.0000 3.3105 1.9988 0.9972 0.0142<br />
13.0000 3.3213 2.0011 1.0033 0.0126<br />
14.0000 3.3112 3112 1.9991 0.9973 0.01200120<br />
15.0000 3.3212 2.0010 1.0028 0.0116<br />
16.0000 3.3120 1.9992 0.9974 0.0107<br />
17.0000 3.3209 2.0008 1.0024 0.0103<br />
18.0000 3.3126 1.9992 0.9977 0.0097<br />
19.0000 3.3205 3205 2.0007 1.0022 0.00920092<br />
20.0000 3.3130 1.9993 0.9979 0.0087<br />
...<br />
50.0000 3.3159 1.9999 0.9996 0.0017<br />
...<br />
102.00000000 3.3166 3166 2.0000 1.0000 0.0001<br />
0001<br />
103.0000 3.3167 2.0000 1.0000 0.0001<br />
Paprastųjų iteracijų metodas konverguoja<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 28 / 36<br />
Niutono metodas<br />
Niutono metodas<br />
Viena netiesinė lygtis<br />
Teiloro skleidinys<br />
f (x k+1 ) ≈ f (x k )+f ′ (x k )(x−x k )<br />
n netiesinių lygčių sistema<br />
Komponentės f i Teiloro skleidinys<br />
Niutono metodas<br />
x k+1 = x k − f (x k)<br />
f ′ (x k )<br />
n∑<br />
f i (x k+1 ) ≈ f i (x k ∂f i<br />
) + (x k )(x k+1<br />
∂x j − xj k )<br />
j<br />
j=1<br />
Išvestinės skaičiuojamos taške x k = (x k 1 , · · · , x k n ).<br />
Niutono metodas<br />
x k+1 = x k − J(x k ) −1 f (x k ).<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 29 / 36<br />
Niutono metodas<br />
Pavyzdys - dviejų kreivių sankirta<br />
1.5<br />
1<br />
0.5<br />
0<br />
−0.5<br />
−1<br />
−1 −0.5 0 0.5 1<br />
Niutono metodas<br />
Pažymėkime ∆x k+1 = x k+1 − x k<br />
x 2 1 + x 2 2 − 1 = 0<br />
x 2 1 − x 2 = 0<br />
f 1 (x 1 , x 2 ) = x 2 1 + x 2 2 − 1<br />
f 2 (x 1 , x 2 ) = x 2 1 − x 2<br />
⇒ Jakobio matrica<br />
( ∂f1 ) ∂f 1<br />
∂x<br />
J = 1 ∂x 2<br />
∂f 2 ∂f 2<br />
∂x 1 ∂x 2<br />
x k+1 = x k − J(x k ) −1 f (x k ).<br />
( )<br />
2x1 2x<br />
=<br />
2<br />
2x 1 −1<br />
J(x k )∆x k+1 = −f (x k ) ⇒ x k+1 = ∆x k+1 + x k .<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 30 / 36<br />
Niutono metodas<br />
Pavyzdys - dviejų kreivių sankirta: skaičiavimo<br />
rezultatai<br />
Apskritimo ir parabolės sankirta<br />
funkcijos<br />
Jakobianas<br />
f = [(x(1)^2(1)^2 + x(2)^2 -1)<br />
df = [2*x(1) 2*x(2)<br />
(x(1)^2 - x(2)) ];<br />
2*x(1) -1 ] ;<br />
x 0 = (0,505)<br />
0,5) – pradinis artinys<br />
» x0=[0.5 0.5]; eps=1.e-6; maxit=100;<br />
iter.nr. x0(1) x0(2) paklaida<br />
0 0.5000 0.5000<br />
1.0000 0.8750 0.6250 0.3953<br />
2.0000 0.7907 0.6181 0.0846<br />
3.0000 0.7862 0.6180 0.0045<br />
4.0000 0.7862 0.6180 0.00000000<br />
5.0000 0.7862 0.6180 0.0000<br />
Niutono metodas konverguoja<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 31 / 36<br />
Niutono metodas<br />
Trijų netiesinių paviršių sankirta<br />
Pavyzdys - triejų netiesinių paviršių sankirta<br />
Trijų netiesinių paviršių sankirta Jakobio Jakobio matrica matrica<br />
x1 2 + x 2 2 + x 3 2 − 14 = 0 ⎛ ∂fdf = [ 1 ∂f 2*x(1) 1 ∂f2*x(2) ⎞ 2*x(3)<br />
1 ⎛<br />
⎞<br />
x1 2 + 2x 2 2 − 9 = 0<br />
∂x 1 ∂x 2*x(1) 2x(1) 2 ∂x4*x(2) 4x(2) 3<br />
0<br />
2x 1 2x 2 2x 3<br />
f = [ (x(1)^2 + x(2)^2 + x(3)^2 - 14)<br />
x 1 − 3x2 2 + x 3 2 = 0 J = ⎜ ∂f 2 ∂f 2 1 ∂f -6*x(2) 2 ⎟<br />
⎝ ∂x 1 ∂x 2 ∂x 3 ⎠ = 2*x(3) ] ;<br />
⎝ 2x 1 4x 2 0 ⎠<br />
(x(1)^2 + 2*x(2)^2 - 9)<br />
(x(1) ( - 3*x(2)^2 + x(3)^2) ) ];<br />
∂f 3 ∂f 3 ∂f 3 1 −6x 2 2x 3<br />
∂x 1 ∂x 2 ∂x 3<br />
» x0=[1 1 1]; es=1.e-6; maxit=100;<br />
iter.nr. x0(1) x0(2) x0(3) paklaida<br />
0 1 1 1<br />
1.0000 1.6667 2.1667 4.6667 3.9051<br />
2.0000 1.5641 1.8407 3.2207 1.4858<br />
3.0000 1.5616 1.8115 2.8959 0.3261<br />
4.0000 1.5616 1.8113 2.8777 0.01820182<br />
5.0000 1.5616 1.8113 2.8776 0.0001<br />
6.0000 1.5616 1.8113 2.8776 0.0000<br />
Niutono metodas konverguoja<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 32 / 36
Niutono metodas<br />
Niutono-Rafsono metodas<br />
Niutono metodas<br />
Įšaldytasis Niutono metodas<br />
Iteracinis procesas<br />
J(x k ) xk+1 − x k<br />
τ k<br />
= −f (x k ).<br />
Iteracinis parametras yra minimumo uždavinio sprendinys<br />
min ‖f (x k − τJ(x k ) −1 f (x k ))‖ = ‖f (x k − τ k J(x k ) −1 f (x k ))‖.<br />
τ<br />
Šį uždavinį galima išspręsti ir netiksliai:<br />
min ‖f (x k+1 )‖ ‖f (x k )‖.<br />
τ<br />
Metodas konverguoja platesnėje pradinių artinių aibėje.<br />
Iteracinis procesas<br />
x k+j = x k+j−1 − J(x k ) −1 f (x k+j−1 ), j = 1, . . . , m.<br />
Jakobio matrica perskaičiuojama kas m-ąją iteraciją (n 2<br />
dalinių išvestinių).<br />
Metodas konverguoja lėčiau.<br />
Jei f (x) sudėtingo pavidalo vietoj dalinių išvestinių galima<br />
naudoti baigtinius skirtumus<br />
J ij (x k ) = f i(x k 1 , · · · , x k<br />
j + h, · · · , x k n ) − f i (x k 1 , · · · , x k n )<br />
h<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 33 / 36<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 34 / 36<br />
Niutono metodas<br />
Netiesiniai iteraciniai metodai<br />
Paprastųjų iteracijų (Jakobio) metodo apibendrinimas<br />
f 1 (x k+1<br />
1 , x2 k, · · · , x n k ) = 0<br />
f 2 (x1 k, x k+1<br />
2 , · · · , xn k ) = 0<br />
· · ·<br />
f n (x1 k, x 2 k, · · · , x n k+1 ) = 0<br />
Skaičiuojant vieną artinį reikia išspręsti n nepriklausomų netiesinių<br />
lygčių.<br />
Zeidelio metodo apibendrinimas<br />
f 1 (x k+1<br />
1 , x2 k, · · · , x n k ) = 0<br />
f 2 (x k+1<br />
1 , x k+1<br />
2 , · · · , xn k ) = 0<br />
· · ·<br />
f n (x k+1<br />
1 , x k+1<br />
2 , · · · , xn k+1 ) = 0<br />
Kiekvienoje lygtyje naudosime jau apskaičiuotas artinio<br />
komponentes.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 35 / 36<br />
Niutono metodas<br />
Netiesiniai iteraciniai metodai<br />
Sistemos suskaldymas mažesnės eiles blokais<br />
Pvz., dviejų poromis susijusių nežinomųjų atveju:<br />
f 1 (x k+1<br />
1 , x k+1<br />
f 2 (x k+1<br />
1 , x k+1<br />
2 , x3 k, x 4 k, · · · , x n k ) = 0<br />
2 , x3 k, x 4 k, · · · , x n k ) = 0<br />
f 3 (x k+1<br />
1 , x k+1<br />
2 , x k+1<br />
3 , x k+1<br />
4 , x5 k, · · · , x n k ) = 0<br />
f 4 (x k+1<br />
1 , x k+1<br />
2 , x k+1<br />
3 , x k+1<br />
4 , x5 k, · · · , x n k ) = 0<br />
· · ·<br />
f n (x k+1<br />
1 , x k+1<br />
2 , x k+1<br />
3 , x k+1<br />
4 , x k+1<br />
5 , · · · , xn k+1 ) = 0<br />
Sprendžiama 1-oji lygtis + 2-oji lygtis,<br />
po to su jau apskaičiuotuomis artinio komponentėmis x 1 ir x 2 3-oji<br />
lygtis + 4-oji lygtis<br />
ir t.t.<br />
Skaitiniai metodai (MIF VU) Netiesinių lygčių sistemų <strong>sprendimas</strong> 36 / 36