LINEÁRIS EGYENLETRENDSZER MEGOLDÁSÁNAK ITERÁCIÓS
4.1.6. ILU-algoritmus
36. Legyen
P= Konvergál-e az ILU-algoritmus? Ha igen, akkor tegyünk meg2 lépést!
Hány lépés kell a10−3 pontosság eléréséhez?
37. Legyen
P= Konvergál-e az ILU-algoritmus? Ha igen, akkor tegyünk meg2 lépést!
Hány lépés kell a10−3 pontosság eléréséhez?
38. Legyen
P= Konvergál-e az ILU-algoritmus? Ha igen, akkor tegyünk meg2 lépést!
Hány lépés kell a10−2 pontosság eléréséhez?
39. Legyen
P= Konvergál-e az ILU-algoritmus? Ha igen, akkor tegyünk meg2 lépést!
Hány lépés kell a10−3 pontosság eléréséhez?
40. Legyen
P= Konvergál-e az ILU-algoritmus? Ha igen, akkor tegyünk meg2 lépést!
Hány lépés kell a10−4 pontosság eléréséhez?
118 4. Lineáris egyenletrendszer megoldásának iterációs módszerei
4.2. Megoldások
4.2.1. Egyszerű iteráció
1. Első lépésként meg kell vizsgálni a konvergenciát. Ehhez használjuk fel az elégséges feltételt.
Elégséges feltétel:
Ha valamely illeszkedő mátrixnormában az átmenetmátrixrakBk<1, akkor ∀ x0 ∈Rn -ből indítva az iterációt, konvergens lesz az(xk)iterációs sorozat. Tehát a konvergencia semx0-tól, sem pedigc-től nem függ.
Konkrét példánkra
kBk1 =max3
j=1 3
X
i=1
|aij|= 0,6<1, tehát∀ x0 ∈R3 -re konvergens.
Hibabecslés:
Ak.közelítő vektorra adott hibabecslés alakja kxk−x∗k ≤ qk
1−q kx1−x0k, aholq=kBk a kontrakciós együttható.
Ahhoz, hogy a képletet alkalmazzuk, ki kell számítanunkx1 -et. Ehhez ki kell számolnunk az iteráció első lépését. Mivel bármely x0 -ból indítva az iteráció konvergens, ezért válasszunk egy kezdővektort. Legyenx0=
0 0 0T
.
x1=B·x0+c=c=
0,1 0,5 0,1
Így már kiszámolható a hibabecslés. (q =kBk1= 0,6 aB mátrix 1-es normája.) kxk−x∗k1≤ 0,6k
1−0,6 ·0,7 Lépésszám:
Meg kell határoznunk a lépésszámot a10−3 pontosság eléréséhez.
0,6k
1−0,6 ·0,7≤10−3 3
5 k
·7
4 ≤ 10−3 7
4 ·103 ≤ 5
3 k
lg 7
4 ·103
≤ k·lg 5
3
k ≥ lg 74 ·103
lg 53 ≈14,6 Vissza a tartalomhoz
Tehátk≥15 lépés elegendő a 10−3 pontosság eléréséhez.
Utolsó lépésként azt kell meghatároznunk, hogy melyik lineáris egyenletrendszer megoldásához konvergál az iteráció. Az iterációx határértékére (a fixpontra)
x=Bx+c ⇐⇒ (I−B)
| {z }
A
x=b ⇐⇒ Ax=b.
Tehát a megoldás
A =
1 0 0 0 1 0 0 0 1
−
0,4 0,1 0 0,1 0,3 0,2
0 0,1 0,4
=
0,6 −0,1 0
−0,1 0,7 −0,2 0 −0,1 0,6
,
b = c=
0,1 0,5 0,1
.
2. Első lépésként meg kell vizsgálni a konvergenciát. Ehhez használjuk fel az elégséges feltételt.
kBk1 = max3
j=1 3
X
i=1
|aij|= 1 ⇒Nem alkalmas!
kBk∞ = max3
i=1 3
X
j=1
|aij|= 0,9<1
Tehát∀ x0 ∈R3-re konvergens.
Hibabecslés:
Az alábbi képletet alkalmazzuk.
kxk−x∗k ≤ qk
1−q kx1−x0k
Ahhoz, hogy a képletet alkalmazni tudjuk, ki kell számítanunkx1-et. Ehhez ki kell számolnunk az iteráció első lépését. Mivel mindenx0-ból indítva az iteráció konvergens, ezért válasszunk egy kezdővektort. Legyenx0=
0 0 0T
.
x1=B·x0+c=c=
0,2 0,3 0,1
AB mátrix ∞-normája alkalmas q-nak, így már kiszámolható a hibabecslés a∞ normában.
kxk−x∗k∞≤ 0,9k 1−0,9 ·0,3 Lépésszám:
Meg kell határoznunk a lépésszámot a10−3 pontosság eléréséhez.
0,9k
0,1 ·0,3 ≤ 10−3 9
10 k
·3 ≤ 10−3 3·103 ≤
10 9
k
lg 3·103
≤ k·lg 10
9
k ≥ lg 3·103
lg 109 ≈75,99 Tehátk≥80 lépés elég a10−3 pontosság eléréséhez.
Utolsó lépésként azt kell meghatároznunk, hogy melyik lineáris egyenletrendszer megoldásához konvergál az iteráció. Az iterációx határértékére (a fixpontra)
x=Bx+c ⇐⇒ (I−B)
| {z }
A
x=b ⇐⇒ Ax=b.
Tehát a megoldás A =
1 0 0 0 1 0 0 0 1
−
0,1 0,3 0,1 0,5 0,3 0,1 0 0,4 0,1
=
0,9 −0,3 −0,1
−0,5 0,7 −0,1 0 −0,4 0,9
b = c=
0,2 0,3 0,1
.
3. A feladat megoldásához először meg kell vizsgálni a konvergencia teljesülését. Ehhez használjuk fel az elégséges feltételt.
kBk1=max2
j=1 2
X
i=1
|aij|= 0,9<1
Mivel találtunk olyan illeszkedő mátrixnormát, aminek az értéke kisebb mint1, ezért ∀ x0 ∈ R3-re konvergens.
Hibabecslés.
Az alábbi képletet alkalmazzuk.
kxk−x∗k ≤ qk
1−q kx1−x0k
Ahhoz, hogy a képletet alkalmazni tudjuk, ki kell számítanunkx1-et. Ehhez ki kell számolnunk az iteráció első lépését. Mivel mindenx0-ból indítva az iteráció konvergens, ezért válasszunk egy kezdővektort. Legyenx0=
0 0 0T
.
x1=B·x0+c=c= 0,1
0,3
Így már kiszámolható a hibabecslés. (B mátrix egyes normája alkalmas q-nak.) kxk−x∗k1 ≤ 0,9k
1−0,9 ·0,4 Lépésszám:
Meg kell határoznunk a lépésszámot a10−2 pontosság eléréséhez.
0,9k
0,1 ·0,4 ≤ 10−2 9
10 k
·4 ≤ 10−2 4·102 ≤
10 9
k
lg 4·102
≤ k·lg 10
9
k ≥ lg 4·102
lg 109 ≈56,87 Tehátk≥57 lépés elég a10−2 pontosság eléréséhez.
Utolsó lépésként azt kell meghatároznunk, hogy melyik lineáris egyenletrendszer megoldásához konvergál az iteráció. Az iterációx határértékére (a fixpontra)
x=Bx+c ⇐⇒ (I−B)
| {z }
A
x=b ⇐⇒ Ax=b.
Tehát a megoldás
A =
1 0 0 1
−
0,2 0,3 0,7 0,1
=
0,8 −0,3
−0,7 0,1
b = c= 0,1
0,3
.
4. Első lépésként meg kell vizsgálni a konvergenciát. Ehhez használjuk fel az elégséges feltételt:
kBk1 = max4
j=1 4
X
i=1
|aij|= 1 ⇒Nem alkalmas!
kBk∞ = max4
i=1 4
X
j=1
|aij|= 1 ⇒Nem alkalmas!
kBkF = v u u t
4
X
i=1 4
X
j=1
|aij|2=p
0,72≈0,85<1 Tehát∀x0 ∈R3-re konvergens.
Hibabecslés.
Az alábbi képletet alkalmazzuk.
kxk−x∗k ≤ qk
1−q kx1−x0k
Ahhoz, hogy a képletet alkalmazni tudjuk, ki kell számítanunkx1-et. Ehhez ki kell számolnunk az iteráció első lépését. Mivel mindenx0-ból indítva az iteráció konvergens, ezért válasszunk egy kezdővektort. Legyenx0=
0 0 0T
.
x1=B·x0+c=c=
0,1 0,2 0,3 0,4
A hibabecslés így már kiszámolható. Mivel ak.kF norma illeszkedik a k.k2 normára, ezért a hibabecslésben használhatjuk a vektoroknál ak.k2 normát. (Bmátrix k.kF-normája alkalmas q-nak.)
kxk−x∗k2 ≤ 0,85k
1−0,85 ·0,55 Lépésszám:
Meg kell határoznunk a lépésszámot a10−4 pontosság eléréséhez.
0,85k
0,15 ·0,55 ≤ 10−4 17
20 k
·11
3 ≤ 10−4 11
3 ·104 ≤ 20
17 k
lg 11
3 ·104
≤ k·lg 20
17
k ≥ lg 113 ·104
lg 2017 ≈50,5 Tehátk≥51 lépés elég a10−4 pontosság eléréséhez.
Utolsó lépésként azt kell meghatároznunk, hogy melyik lineáris egyenletrendszer megoldásához konvergál az iteráció. Az iterációx határértékére (a fixpontra)
x=Bx+c ⇐⇒ (I−B)
| {z }
A
x=b ⇐⇒ Ax=b.
Tehát a megoldás
A =
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
−
0,2 0,2 0,3 0,3 0,2 0,2 0,1 0,1 0,3 0,1 0,2 0,2 0,3 0,1 0,2 0,2
=
0,8 −0,2 −0,3 −0,3
−0,2 0,8 −0,1 −0,1
−0,3 −0,1 0,8 −0,2
−0,3 −0,1 −0,2 0,8
b = c=
0,1 0,2 0,3 0,4
.
4.2.2. Jacobi-iteráció
5. A továbbiakban a Jacobi-módszerre aJ(1)rövidítést fogjuk használni, utalva ezzel arra, hogy a csillapított Jacobi-iterációbanω = 1 paraméterrel kapjuk meg a Jacobi-iterációt.
Tudjuk, hogy
Ax=b⇔x=−D−1(L+U)x+b.
Innen a Jacobi-iteráció
xk+1 =−D−1(L+U)
| {z }
´
atmenetm´atrix
·xk+D−1b
| {z }
c
.
Első lépésként meg kell határoznunk az átmenetmátrixot.
BJ(1) =−D−1(L+U) ahol
A=L+D+U=
0 0 0
−1 0 0
−2 −2 0
+
1 0 0 0 1 0 0 0 1
+
0 −2 2 0 0 −1
0 0 0
. Tehát
BJ(1) = −
1 0 0 0 1 0 0 0 1
−1
·
0 −2 2
−1 0 −1
−2 −2 0
= −
0 −2 2
−1 0 −1
−2 −2 0
=
0 2 −2
1 0 1
2 2 0
Mivel megkaptuk az átmenetmátrixot, meg kell vizsgálnunk, hogy melyik konvergencia tétel feltételei teljesülnek. Először megvizsgáljuk az elégséges feltételt.
kBJ(1)k1 = 4 kBJ(1)k∞ = 4 kBJ(1)kF =√
18>4
Mint látható mindegyik normával kapott eredmény nagyobb, mint egy, tehát az elégséges feltétel ebben az esetben nem használható.
Megjegyzés. Ha a mátrixban találhatóak 1-nél nagyobb elemek, akkor az elégséges feltétel nem használható.
Mivel az elégséges feltételt nem tudtuk használni, a szükséges és elégséges feltételt kell al-kalmaznunk
Szükséges és elégséges feltétel:
∀ x0∈Rn-ből indított iteráció konvergens⇔ρ(B)<1, aholρ(B) = maxni=1|λi|aB mátrix spektrálsugara. A spektrálsugár nagysága mutatja a konvergencia gyorsaságát.
A sajátértékek meghatározásához írjuk fel a karakterisztikus polinomot!
det(BJ(1)−λI) =
−λ 2 −2 1 −λ 1 2 2 −λ
=
= −λ·
−λ 1 2 −λ
−2·
1 1
2 −λ
−2·
1 −λ
2 q
=
= −λ(λ2−2)−2(−λ−2)−2(2 + 2λ) =
= −λ3+ 2λ+ 2λ+ 4−4−4λ=
= −λ3 = 0⇒ λ1,2,3 = 0 A sajátértékek alapján a mátrix spektrálsugara
ρ(BJ(1)) = max{|λ1|,|λ2|,|λ3|}= 0<1, így∀ x0 ∈R3-re J(1) konvergens lesz!
Ha az átmenetmátrix spektrálsugara nulla, akkor véges iterációra számíthatunk, legfeljebbn lépésben konvergál.
6. Első lépésként meg kell határoznunk az átmenetmátrixot.
A=L+D+U=
0 0
−12 0
+ 1 0
0 43
+ 0 2
0 0
Tehát
BJ(1) = −D−1(L+U) =− 1 0
0 43 −1
·
0 2
−12 0
= − 1 0
0 34
·
0 2
−12 0
=
0 2
−38 0
=
0 −2
3
8 0
.
Vizsgáljuk meg a konvergenciát! Először az elégséges feltételt vizsgáljuk.
kBJ(1)k1 = 2 kBJ(1)k∞ = 2 kBJ(1)kF =
r 4 + 9
64 >2
Mint látható mindegyik normával kapott eredmény nagyobb mint egy, tehát az elégséges feltétel ebben az esetben nem használható, ezért a szükséges és elégséges feltételt kell alkal-maznunk.
A sajátértékek meghatározásához írjuk fel a karakterisztikus polinomot!
det(BJ(1)−λI) =
−λ −2
3
8 −λ
=
= λ2+3
4 = 0 ⇒ |λ1,2|= r3
4 Mint látható a sajátértékek komplex számok, de ρ(BJ(1)) =
q3
4 < 1, így a konvergencia teljesül.
7. Első lépésként meg kell határoznunk az átmenetmátrixot.
BJ(1)=−D−1(L+U), ahol
A=L+D+U=
0 0 0
2
3 0 0
1
8 0 0
+
1 0 0 0 2 0 0 0 12
+
0 0 3 0 0 0 0 0 0
Tehát
BJ(1) = −
1 0 0 0 2 0 0 0 12
−1
·
0 0 3
2
3 0 0
1
8 0 0
= −
1 0 0 0 12 0 0 0 2
·
0 0 3
2
3 0 0
1
8 0 0
= −
0 0 3
1
3 0 0
1
4 0 0
=
0 0 −3
−13 0 0
−14 0 0
Az átmenetmátrixot megkapva, lehetőségünk van a konvergencia vizsgálatára. Mivel|a13|>1, ezért az elégséges feltétel biztosan nem teljesül. A szükséges és elégséges feltétel teljesülését kell megvizsgálnunk. A sajátértékek meghatározásához írjuk fel a karakterisztikus polinomot.
det(BJ(1)−λI) =
−λ 0 −3
−13 −λ 0
−14 0 −λ
=
= −λ·(λ2)−3·
−λ 4
=
= −λ3+ 3
4λ= 0 ⇒ λ1 = 0
⇒ −λ2+ 3
4 = 0⇔λ2= 3 4
⇒ λ2 =
√ 3
2 , λ3=−
√ 3 2 Most már tudjuk a mátrix spektrálsugarát.
ρ(BJ(1)) = max{|λ1|,|λ2|,|λ3|}=
√ 3
2 ≈0,866<1 Tehát a Jacobi-iteráció konvergens a megadott mátrixra.
8. Első lépésként meg kell vizsgálnunk, hogy a feladatra konvergens-e a Jacobi-iteráció.
Először ki kell számolni az átmenetmátrixot.
Megkaptuk az átmenetmátrixot, az elégséges feltételt kell megvizsgálnunk.
kBJ(1)k1 = 2 3 <1
Mivel találtunk olyan illeszkedő normát, aminek az értéke egynél kisebb, így ∀ x0 ∈R3-ből indítva az iterációt, konvergens lesz. Ezzel tehát beláttuk, hogy a feladat megoldható Jacobi-iterációval.
Ahhoz, hogy kiszámoljuk az első két lépést, alkalmasx0-t kell választanunk. Mivel bármilyen x0 jó, ezért a legegyszerűbb megoldás azx0 =
0 0 0T
=0 vektor. Tudjuk, hogy Ax=b⇔x=−D−1(L+U)x+b.
Innen a Jacobi-iteráció
xk+1 =−D−1(L+U)
| {z }
´
atmenetm´atrix
·xk+D−1b
9. Első lépésként meg kell vizsgálnunk, hogy a feladatra konvergens-e a Jacobi-iteráció.
Először ki kell számolni az átmenetmátrixot.
BJ(1) = −D−1(L+U) = Megkaptuk az átmenetmátrixot, az elégséges feltételt kell megvizsgálnunk.
kBJ(1)k∞= 1 2 <1
Mivel találtunk olyan illeszkedő normát, aminek az értéke kisebb, mint egy, teljesül az a feltétel, hogy∀x0 ∈R3-ből indítva az iterációt, konvergens lesz. Ezzel tehát beláttuk, hogy a feladat megoldható Jacobi-iterációval.
Ahhoz, hogy kiszámoljuk az első két lépést, alkalmasx0-t kell választanunk. Mivel bármilyen x0 jó, ezért a legkézenfekvőbb megoldás azx0 =
0 0 0T
=0vektor. Az xk+1=−D−1(L+U)·xk+D−1b
képletet felhasználva, könnyen elvégezhetjük az első két lépést.
1. lépés:
10. Első lépésként meg kell vizsgálnunk, hogy a feladatra konvergens-e a Jacobi-iteráció.
Először ki kell számolni az átmenetmátrixot.
BJ(1) = −D−1(L+U) =
Megkaptuk az átmenetmátrixot, az elégséges feltételt kell megvizsgálnunk. Mivel a mátrix elemei kivétel nélkül egynél nagyobb számok, ezért az elégséges feltételt nem lehet alkalmazni.
A szükséges és elégséges feltételt kell alkalmazni. A sajátértékek meghatározásához írjuk fel a karakterisztikus polinomot.
det(BJ(1)−λI) = Az átmenetmátrix spektrálsugara
ρ(BJ(1)) = max{|λ1|,|λ2|,|λ3|}= 0<1.
Ezzel tehát beláttuk, hogy a Jacobi-iteráció bármely x0 vektorra konvergens, így a feladat megoldható Jacobi-iterációval.
Ahhoz, hogy kiszámoljuk az első három lépést, alkalmas x0-t kell választanunk. A legegy-szerűbb megoldás azx0=
0 0 0T
=0 vektor. Az
xk+1=−D−1(L+U)·xk+D−1b képletet felhasználva, könnyen elvégezhetjük az első három lépést.
1. lépés:
4.2.3. Gauss–Seidel-iteráció
1. A továbbiakban a Gauss–Seidel-iterációra az S(1) rövidítést fogjuk használni, utalva ezzel arra, hogy a relaxációs módszerbenω= 1 paraméterrel kapjuk meg a Gauss–Seidel-iterációt.
Tudjuk, hogy
Ax=b⇔x=−(D+L)−1Ux+ (D+L)−1b.
Innen a Jacobi-iteráció
xk+1 =−(D+L)−1U
| {z }
´
atmenetm´atrix
·xk+ (D+L)−1b
| {z }
c
.
A feladatunk, hogy meghatározzuk, hogy azAmátrixra felírt Gauss-Seidel-iteráció konvergens-e. Ehhez első lépésként az átmenetmátrixot kell kiszámítanunk. Tudjuk, hogy
BS(1) =−(L+D)−1U ahol,
A=L+D+U=
0 0 0
−1 0 0 0 1 0
+
1 0 0 0 1 0 0 0 1
+
0 −12 0 0 0 −12
0 0 0
Ezt felhasználva kapjuk meg aBS(1) mátrixot.
BS(1) = −
1 0 0
−1 1 0 0 1 1
−1
·
0 −12 0 0 0 −12
0 0 0
=
= −
1 0 0
1 1 0
−1 −1 1
·
0 −12 0 0 0 −12
0 0 0
=
= −
0 −12 0 0 −12 −12 0 12 12
=
0 12 0 0 12 12 0 −12 −12
A konvergencia vizsgálatához először megpróbáljuk használni az elégséges feltételt.
Elégséges feltétel:
Ha valamely illeszkedő mátrixnormában az átmenetmátrixrakBk<1, akkor ∀ x0 ∈Rn -ből indítva az iterációt, konvergens lesz az(xk) iterációs sorozat.
kBS(1)k1 = 1,5 kBS(1)k∞ = 1
kBS(1)kF = r5
4
Mivel nem találtunk olyan mátrixnormát, ami kisebb lenne egynél, ezért a szükséges és elégséges feltételt használjuk.
Szükséges és elégséges feltétel:
∀ x0∈Rn-ből indított iteráció konvergens⇔ρ(B)<1, aholρ(B) = maxni=1|λi|aB mátrix spektrálsugara.
A sajátértékek meghatározásához írjuk fel a karakterisztikus polinomot! A sajátértékek segítségével kiszámoljuk a spektrálsugarat.
ρ(BJ(1)) = max{|λ1|,|λ2|,|λ3|}= 0<1 Ezzel tehát beláttuk, hogy azA mátrixra felírt S(1) iteráció konvergens.
Ha az átmenetmátrix spektrálsugara nulla, akkor véges iterációra számíthatunk, legfeljebbn lépésben konvergál.
2. A feladatunk, hogy meghatározzuk, hogy azAmátrixra felírt Gauss-Seidel-iteráció konvergens-e. Ehhez első lépésként az átmenetmátrixot kell kiszámítanunk.
BS(1) = −(L+D)−1U=
A konvergencia vizsgálatához először megpróbáljuk az elégséges feltételt használni. Mivel a mátrixban találhatóak egynél nagyobb elemek is, ezért az elégséges feltétel nem teljesül. A szükséges és elégséges feltétellel kell próbálkoznunk. A sajátértékek meghatározásához írjuk fel a karakterisztikus polinomot!
det(BS(1)−λI) =
Mivel találtunk egynél nagyobb sajátértéket, ezért a spektrálsugár is nagyobb lesz egynél.
ρ(BJ(1)) = max{|λ1|,|λ2|,|λ3|}= 5 2 >1
Mint látható nem teljesül a szükséges és elégséges feltétel, ezért a konvergencia nem teljesül minden kezdővektorra!
3. A feladatunk, hogy meghatározzuk, hogy azAmátrixra felírt Gauss-Seidel-iteráció konvergens-e. Ehhez első lépésként az átmenetmátrixot kell kiszámítanunk.
BS(1) = −(L+D)−1U=
Mivel a mátrixban egynél nagyobb abszolút értékű elemek vannak, ezért az elégséges felté-tel nem használható. A szükséges és elégséges feltéfelté-tellel kell próbálkoznunk. A sajátértékek meghatározásához írjuk fel a karakterisztikus polinomot!
det(BS(1)−λI) =
Mivel találtunk egynél nagyobb sajátértéket, ezért a spektrálsugár is nagyobb lesz egynél.
ρ(BJ(1)) = max{|λ1|,|λ2|,|λ3|}= 2 +
√ 8>1
Mint látható nem teljesül a szükséges és elégséges feltétel, ezért a konvergencia nem teljesül minden kezdővektorra.
4. A feladatunk, hogy meghatározzuk, hogy azAmátrixra felírt Gauss-Seidel-iteráció konvergens-e. Ehhez első lépésként az átmenetmátrixot kell kiszámítanunk.
BS(1) = −(L+D)−1U=
Mivel a mátrixban egynél nagyobb abszolút értékű elemek vannak, ezért az elégséges felté-tel nem használható. A szükséges és elégséges feltéfelté-tellel kell próbálkoznunk. A sajátértékek
meghatározásához írjuk fel a karakterisztikus polinomot!
det(BS(1)−λI) =
−λ −1 0
0 −12 −λ −18 0 1 14 −λ
=
= −λ
−1
2−λ 1 4−λ
−
−1 8
=
= −λ
−1 8 +1
2λ− 1
4λ+λ2+ 1 8
=
= −λ3−1
4λ2= 0 ⇒ λ1,2 = 0
−λ−1
4 = 0⇒ λ3 =−1 4
A sajátértékek segítségével az átmenetmátrix spektrálsugara kiszámítható.
ρ(BJ(1)) = max{|λ1|,|λ2|,|λ3|}= 1 4 <1
Mivel a spektrálsugár egynél kisebb, ezért azAmátrixra felírt S(1) iteráció konvergens minden kezdővektorra.
5. A feladatunk, hogy eldöntsük, azAmátrixra felírt Gauss-Seidel-iteráció konvergens-e. Ehhez első lépésként az átmenetmátrixot kell kiszámítanunk.
BS(1) = −(L+D)−1U=
= −
1 0 0
−1 1 0 0 1 1
−1
·
0 4 1 0 0 3 0 0 0
=
= −
1 0 0
1 1 0
−1 −1 1
·
0 4 1 0 0 3 0 0 0
=
= −
0 4 1
0 4 4
0 −4 −4
=
0 −4 −1 0 −4 −4
0 4 4
Mivel a mátrixban egynél nagyobb abszolút értékű elemek vannak, ezért az elégséges feltételt nem használhatjuk. A szükséges és elégséges feltételt kell alkalmaznunk. A sajátértékek meg-határozásához írjuk fel a karakterisztikus polinomot!
det(BS(1)−λI) =
−λ −4 −1
0 −4−λ −4
0 4 4−λ
=
= −λ((−4−λ)(4−λ)−(−4)·4)) =
= −λ(−16 + 4λ−4λ+λ2+ 16) =
= −λ3 = 0⇒ λ1,2,3 = 0
A sajátértékek segítségével az átmenetmátrix spektrálsugara kiszámítható.
ρ(BJ(1)) = max{|λ1|,|λ2|,|λ3|}= 0<1
Ha az átmenetmátrix spektrálsugara nulla, akkor véges iterációra számíthatunk, legfeljebbn lépésben konvergál.
6. A feladatunk, hogy eldöntsük, azAmátrixra felírt Gauss-Seidel-iteráció konvergens-e. Ehhez első lépésként az átmenetmátrixot kell kiszámítanunk.
BS(1) = −(L+D)−1U=
Mivel a mátrixban vannak egy abszolútértékű elemek, ezért az elégséges feltételt nem használ-hatjuk. A szükséges és elégséges feltételt kell alkalmaznunk. A sajátértékek meghatározásához írjuk fel a karakterisztikus polinomot!
det(BS(1)−λI) =
Mivel az átmenetmátrix felsőháromszög alakú és diagonálisában nullák vannak, ezért ránézésre is látszik, hogy a nulla háromszoros sajátértéke. Az átmenetmátrix spektrálsugara így nulla.
ρ(BJ(1)) = max{|λ1|,|λ2|,|λ3|}= 0<1
Ha az átmenetmátrix spektrálsugara nulla, akkor véges iterációra számíthatunk, legfeljebbn lépésben konvergál.
Ahhoz, hogy kiszámoljuk az első három lépést, alkalmas x0-t kell választanunk. Mivel bár-milyen x0 -ra konvergens, ezért a legegyszerűbb megoldás az x0 =
0 0 0T
= 0 vektor.
Tudjuk, hogy
Ax=b ⇔ x=−(D+L)−1Ux+ (D+L)−1b.
Innen a Gauss-Seidel-iteráció
xk+1 =−(D+L)−1U
| {z }
´
atmenetm´atrix
·xk+ (D+L)−1b
| {z }
c
. Ezt felhasználva, el tudjuk végezni az iteráció első három lépését.
1. lépés:
3. lépés:
x3 = −(L+D)−1U·x2+ (L+D)−1b=BS(1)·x2+c=
=
0 0 −1
0 0 1
0 0 0
·
2 0
−1
+
1 1
−1
=
2 0
−1
Mint látható, az iteráció a2.lépéstől kezdve ugyanazt a vektort adja. Ez az x=−(D+L)−1Ux+ (D+L)−1b
fixpontegyenlet- illetve a vele ekvivalensAx=b lineáris egyenletrendszer megoldása.
A továbbiakban megmutatjuk, hogy az iteráció az átmenetmátrix meghatározása nélkül is elvégezhető, vagyis nincs szükség mátrix invertálásra az iterációs lépések számításához. Ehhez az iterációt szorozzuk meg balról(D+L)-el, majd rendezzük át a következőképpen.
xk+1 = −(D+L)−1U·xk+ (D+L)−1b (D+L)·xk+1 = −U·xk+b
D·xk+1 = −L·xk+1−U·xk+b xk+1 = −D−1(L·xk+1+U·xk−b) Koordinátákkal felírva
x(k+1)i =− 1 aii
i−1
X
j=1
aijx(k+1)j +
n
X
j=i+1
aijx(k)j −bi
, i= 1, . . . , n.
A képletből látszik, hogy a következő koordináta közelítéséhez a már kiszámított új koor-dinátát használjuk.3×3-as mátrix esetén az alakja
x(1)1 = − 1 a11 ·
a12·x(0)2 +a13·x(0)3 −b1 x(1)2 = − 1
a22
·
a21·x(1)1 +a23·x(0)3 −b2 x(1)3 = − 1
a33
·
a31·x(1)1 +a32·x(1)2 −b3
. Alkalmazzuk ebben az alakban a konkrét iterációt!
1. lépés:
x(1)1 = −1 1 ·
0·x(0)2 + 1·x(0)3 −1
=−(0 + 0−1) = 1 x(1)2 = −1
1 ·
0·x(1)1 −1·x(0)3 −1
=−(0−0−1) = 1 x(1)3 = −1
1 ·
1·x(1)1 + 1·x(1)2 −1
=−(1 + 1−1) =−1 2. lépés:
x(2)1 = −1 1 ·
0·x(1)2 + 1·x(1)3 −1
=−(0−1−1) = 2 x(2)2 = −1
1 ·
0·x(2)1 −1·x(1)3 −1
=−(0−(−1)−1) = 0 x(2)3 = −1
1 ·
1·x(2)1 + 1·x(2)2 −1
=−(2 + 0−1) =−1
3. lépés: Látjuk, hogy a korábbi számolással egyező eredményt kaptunk.
7. Meg kell vizsgálnunk, hogy az A mátrixra felírt Gauss-Seidel-iteráció konvergens-e. Ehhez első lépésként az átmenetmátrixot kell kiszámítanunk.
BS(1) = −(L+D)−1U= A konvergencia bizonyításához az elégséges feltételt alkalmazzuk.
kBS(1)k∞= 5 16 <1
A kapott eredmény egynél kisebb, tehát a Gauss-Seidel-iterációval mindig konvergens soroza-tot kapunk. Ahhoz, hogy kiszámoljuk az első 2 lépést, alkalmasx0-t kell választanunk. Mivel bármilyenx0 jó, ezért a legegyszerűbb megoldás azx0 =
0 0 0T
=0 vektor. Az xk+1 =−(L+D)−1U·xk+ (L+D)−1b
sorozattal tudjuk az iteráció lépéseit kiszámolni. Ezt felhasználva végezzük el az iteráció első két lépését!
1. lépés:
Végezzük el a két lépést az előző feladatban ismertetett módon, az átmenetmátrix felhasználása nélkül is! A következő koordináta közelítéséhez a már kiszámított új koordinátát használjuk.
1. lépés:
Látjuk, hogy a korábbi számolással egyező eredményt kaptunk. Ez a megoldás akkor előnyös, ha nem kell kiszámolni az átmenetmátrixot. Ha csak konvergenciát kellett volna a feladatban bizonyítani, azt megtehettük volna az átmenetmátrix nélkül is, hiszen a Gauss–Seidel-iteráció konvergencia tétele szimmetrikus, pozitív definit mátrixok esetén (a konkrétA ilyen) garan-tálja a konvergenciát.
Utolsó feladatunk, hogy kiszámoljuk a lépésszámot a10−3 pontosság eléréséhez.
(q= 165 a kontrakciós együttható, a BS(1) mátrix k.k∞ normája.)
Mint láthatók≥7 iterációs lépés elvégzése után elérjük a10−3 pontosságot.
8. A feladat megoldásához először azt kell megvizsgálnunk, hogy ∀ x0 ∈ R3-ből indítva az
iterációt, konvergens-e. Ehhez ki kell számolnunk az átmenetmátrixot. A konvergencia vizsgálatához az elégséges feltételt alkalmazzuk.
kBS(1)k∞= 13 16 <1
A kapott eredmény egynél kisebb, tehát teljesül a konvergencia. Az első 2 lépés kiszámolásához, alkalmasx0-t kell választanunk. Mivel bármilyenx0alaklmas, ezért a legegyszerűbb megoldás azx0 =
0 0 0T
=0 vektor. Az
xk+1 =−(L+D)−1U·xk+ (L+D)−1b
sorozattal tudjuk az iteráció lépéseit kiszámolni. Végezzük el az iteráció első két lépését!
1. lépés: Utolsó feladatunk, hogy kiszámoljuk a lépésszámot a10−3 pontosság eléréséhez.
(q= 1316 a kontrakciós együttható, a BS(1) mátrix k.k∞ normája.)
Látható, hogyk≥35 iterációs lépés elvégzése után elérjük a10−3 pontosságot.
9. A feladat megoldásához először azt kell megvizsgálnunk, hogy ∀ x0 ∈ R3-ből indítva az iterációt, konvergens lesz-e. Ehhez ki kell számolnunk az átmenetmátrixot.
BS(1) = −(L+D)−1U=
= −
4 0 0 2 3 0 1 0 1
−1
·
0 1 1 0 0 1 0 0 0
=
= −
1
4 0 0
−16 13 0
−14 0 1
·
0 1 1 0 0 1 0 0 0
=
= −
0 14 14 0 −16 16 0 −14 −14
=
0 −14 −14 0 16 −16 0 14 14
Alkalmazhatjuk az elégséges feltételt.
kBS(1)k1 = 2 3 <1
Az átmenetmátrix normája egynél kisebb, tehát teljesül a konvergencia. Az első 2 lépés kiszá-molásához, alkalmas x0-t választunk. Mivel bármilyen x0-ra konvergens az iteráció, ezért a legegyszerűbb megoldás azx0 =
0 0 0T
=0 vektor. Az xk+1 =−(L+D)−1U·xk+ (L+D)−1b sorozattal tudjuk az iteráció lépéseit kiszámolni.
1. lépés:
x1 = (L+D)−1U·x0+ (L+D)−1b=BS(1)·0+c=
= c=
1
4 0 0
−16 13 0
−14 0 1
·
1 1 1
=
1 41 63 4
2. lépés:
x2 = (L+D)−1U·x1+ (L+D)−1b=BS(1)·x1+c=
=
0 −14 −14 0 16 −16 0 14 14
·
1 41 63 4
+
1 41 63 4
=
1 485 7247 48
Utolsó feladatunk, hogy kiszámoljuk a lépésszámot a10−3 pontosság eléréséhez.
(q= 23 a kontrakciós együttható, a BS(1) mátrix k.k1 normája.)
kxk−x∗k∞ ≤ qk
1−qkx1−x0k1≤10−2
2
Tehátk≥15 iterációs lépés elvégzése után elérjük a10−2 pontosságot!
10. A feladat megoldásához először azt kell megvizsgálnunk, hogy ∀ x0 ∈ R3-ből indítva az iterációt, konvergens lesz-e. Ehhez ki kell számolnunk az átmenetmátrixot.
BS(1) = −(L+D)−1U= Alkalmazhatjuk az elégséges feltételt.
kBS(1)k∞= 21 25 <1
Az átmenetmátrix normája egynél kisebb, tehát teljesül a konvergencia. Az első 2 lépés kiszá-molásához, alkalmas x0-t választunk. Mivel bármilyen x0-ra konvergens az iteráció, ezért a legegyszerűbb megoldás azx0 =
0 0 0T
=0 vektor. Az xk+1 =−(L+D)−1U·xk+ (L+D)−1b sorozattal tudjuk az iteráció lépéseit kiszámolni.
1. lépés:
Utolsó feladatunk, hogy kiszámoljuk a lépésszámot a10−3 pontosság eléréséhez.
(q= 2125 a kontrakciós együttható, a BS(1) mátrix k.k∞ normája.)
kxk−x∗k∞ ≤ qk
1−qkx1−x0k∞ ≤ 10−3
21 25
k
1−2125 ·
1 35 25
−507
−
0 0 0
∞
≤ 10−3 21
25 k
·
1 5 4 25
= 21
25 k
·1 5·25
4 ≤ 10−3 5
4 ·103 ≤ 25
21 k
lg 5
4 ·103
≤ k·lg 25
21 lg 54 ·103
lg 2521 ≈40,90 ≤ k
Tehátk≥41 iterációs lépés elvégzése után elérjük a10−3 pontosságot!
4.2.4. Paraméteres iterációk: csillapított Jacobi-iteráció és a relaxá-ciós módszer
11. A feladatunk, hogy megállapítsuk, hogy a csillapított Jacobi-iteráció milyen ω esetén lesz konvergens. A módszer képletét a következőképpen származtathatjuk.
Ax=b ⇔ ωx=−ωD−1(L+U)x+D−1b ⇔
⇔ (1−ω)x+ωx= (1−ω)x−ωD−1(L+U)x+D−1b ⇔
⇔ x= (1−ω)I−ωD−1(L+U)
x+D−1b A kapott fixpontegyenletből felírhatjuk az iteráció képletét.
xk+1 =
BJ(ω)
z }| {
((1−ω)I−ωD−1(L+U)
| {z }
BJ(1)
)xk+ωD−1b
Mint látható a képletben megtalálható a BJ(1) mátrix is, mely a Jacobi-iteráció átmenet-mátrixa. Azt is észrevehetjük, hogy a képletben azω= 1választással visszakapjuk az egyszerű Jacobi-iteráció képletét. Ahhoz, hogy megállapítsuk, pontosan melyek azok azω-k, melyekre konvergens a módszer, a szükséges és elégséges feltételt kell alkalmaznunk.
Szükséges és elégséges feltétel:
∀ x0 ∈ Rn-ből indítva az iterációt konvergens lesz pontosan akkor, ha ρ(B) < 1, ahol ρ(B) = maxni=1|λi|aB mátrix spektrálsugara.
A feltétel alkalmazásához ki kell számítanunk a BJ(ω) mátrixot. Először azonban érdemes
meghatároznunk aBJ(1) mátrixot. Ebből már könnyen származtatható aBJ(ω) mátrix.
BJ(ω) = (1−ω)I−wD−1(L+U) = (1−ω)I+wBJ(1)=
A szükséges és elégséges feltétel használatához szükségünk van aBJ(ω) mátrix sajátértékeire.
Írjuk fel a karakterisztikus polinomot!
det(BJ(ω)−λI) = A három sajátérték paraméteres alakja a következő lesz.
1−ω−λ1(ω) = 0 ⇒ λ1(ω) = 1−ω
Ahhoz, hogy az iteráció konvergens legyen a spektrálsugárnak kisebbnek kell lennie egynél.
ρ(BJ(ω)) = max{|λ1(ω)|,|λ2(ω)|,|λ3(ω)|}<1
Látjuk, hogy a kapott függvények az abszolút értéken belül lineárisan függnek ω-tól, így grafikonjuk V alakú lesz. A könnyebb átláthatóság kedvéért érdemes felrajzolnunk a füg-gvényeket. Ehhez először ki kell számítani azxtengellyel való metszéspontokat.
λ1(ω) = 1−ω= 0 ⇒ ω1 = 1 λ2(ω) = 1−ω− ω
√8 = 0 ⇒ ω2 = 1 1 +√1
8
=
√
√ 8 8 + 1 λ3(ω) = 1−ω+ ω
√
8 = 0 ⇒ ω3 = 1 1−√1
8
=
√
√ 8 8−1 A metszéspontok meghatározása után már fel lehet rajzolni az ábrát.
4.1. ábra.
Amint az 4.1 ábrán is látható, arra az intervallumra lesz szükségünk, ahol mind a három függvény grafikonja 1 alatt van. Ez a (0,2ω2) intervallum, hiszen ha 2·ω2-nél nagyobb ω, akkor|λ2|nagyobb lesz egynél, illetve ha ω kisebb0, akkor a helyzet ugyanez. Tehát
ω ∈(0,2ω2)
esetén bármely kezdővektorra konvergens lesz a csillapított Jacobi-iteráció.
Az ábráról az is leolvasható, hogy az optimálisω-t aλ2(ω)ésλ3(ω)függvények metszéspont-jánál kapjuk.
|λ2(ωopt)| = |λ3(ωopt)|
λ2(ωopt) = −λ3(ωopt) 1−ωopt−ωopt
√
8 = −(1−ωopt+ωopt
√ 8) 1−ωopt−ωopt
√8 = −1 +ωopt−ωopt
√8 ωopt = 1
Tehát az optimális paraméterωopt = 1, azaz a Jacobi-iteráció gyorsabb bármely paraméteres változatánál.
12. A feladatunk, hogy megállapítsuk, hogy a csillapított Jacobi-iteráció milyen ω esetén lesz konvergens. Ehhez első lépésként írjuk fel az iteráció képletét.
xk+1 =
BJ(ω)
z }| {
((1−ω)I−ωD−1(L+U)
| {z }
BJ(1)
)xk+ωD−1b
Mint látható a képletben megtalálható a BJ(1) mátrix is. Ahhoz, hogy megállapítsuk, hogy milyen ω-ra konvergens, alkalmaznunk kell a szükséges és elégséges feltételt. A feltétel alka-lmazásához ki kell számítanunk aBJ(ω) mátrixot. Érdemes előbb aBJ(1) mátrixot kiszámol-nunk. Ebből már könnyen származtatható aBJ(ω) mátrix.
BJ(ω) = (1−ω)I−wD−1(L+U) = (1−ω)I+wBJ(1)=
A szükséges és elégséges feltétel használatához szükségünk van aBJ(ω) mátrix sajátértékeire.
Írjuk fel a karakterisztikus polinomot!
det(BJ(ω)−λI) = A három sajátérték paraméteres alakja a következő lesz.
1−ω−λ1(ω) = 0 ⇒ λ1(ω) = 1−ω
Ahhoz, hogy az iteráció konvergens legyen, a spektrálsugárnak kisebbnek kell lennie egynél.
ρ(BJ(ω)) = max{|λ1(ω)|,|λ2(ω)|,|λ3(ω)|}<1
Látjuk, hogy a kapott függvények az abszolút értéken belül lineárisan függnek ω-tól, így grafikonjuk V alakú lesz. A könnyebb átláthatóság kedvéért érdemes felrajzolnunk a füg-gvényeket. Ehhez ki kell számítani azx tengellyel való metszéspontokat.
λ1(ω) = 1−ω= 0 ⇒ ω1 = 1 λ2(ω) = 1−ω−4ω
3 = 0 ⇒ ω2 = 1 1 +43 = 3
7 λ3(ω) = 1−ω+4ω
3 = 0 ⇒ ω3 = 1
1−43 =−3
A metszéspontok meghatározása után már fel tudjuk rajzolni az ábrát.
4.2. ábra.
Azok azω-k lennének jók, ahol mindhárom függvény grafikon1alatt van, hiszen ekkor lenne a spektrálsugár kisebb egynél. Azonban - mint az a 4.2 ábrán is látható - nincs olyan pont ahol mindhárom függvény1 alatt lenne. Mindhárom metszi azy tengelyt az 1 pontban, azonban,
Azok azω-k lennének jók, ahol mindhárom függvény grafikon1alatt van, hiszen ekkor lenne a spektrálsugár kisebb egynél. Azonban - mint az a 4.2 ábrán is látható - nincs olyan pont ahol mindhárom függvény1 alatt lenne. Mindhárom metszi azy tengelyt az 1 pontban, azonban,