Normálegyenlet
Az egyenlet szerinti legjobb megoldása, azaz a vektor vetülete -ra. Ekkor az hibavektor merőleges az képterére, azaz magjában van, tehát
1. Feladat
Legyen
a) Mi képtere?
b) Mi magja?
c) Mi az 2-es norma szerinti legjobb megoldása, geometrialiag?
d) Írjuk fel a normálegyenletet és oldjuk is meg.
Iteratív megoldók
Tétel (Banach-fixpont): Ha teljes metrikus tér, kontrakció, akkor -nek pontosan egy fixpontja van, továbbá tetszőleges esetén az képlettel definiált sorozat tart ehhez a fixponthoz.
Következmény: Ha kontrakció egy adott normában, azaz Lipschitz-folytonos és a megfelelő konstans mellett minden pontra teljesül, akkor -nek van fixpontja és tetszőleges kezdőpontból indulva, az ismételt alkalmazásával tartani tudunk ehhez.
Példa:
esetén , és nullához tart.
Példa: Ha alakú, azaz affin függvény, akkor adódik, hogy
tehát amennyiben operátornormája kisebb mint egy, akkor kontrakció. Végesdimenzióban egy mátrix, egy oszlopvektor, az indukált mátrixnormája.
Következmény: Egy affin függvény iterálásával kapott sorozat végesdimenzióban konvergens lesz ha van olyan norma, ami által indukált operátornormája a függvényben szereplő mátrixnak kisebb, mint .
Tétel:
Következmény: Ha , akkor a megfelelő affin függvény iterálásával kapott sorozat konvergens, hiszen van olyan indukált mátrixnorma, amivel .
Ötlet: Ha az egyenletet szeretnénk megoldani, akkor készítsünk olyan kontrakciót, amelynek fixpontjára .
Hogyan készíthetünk ilyen fixpont-iterációt I.
Legegyszerűbb megközelités (egyszerű- vagy Richardson-iteráció)
Egy gond ezzel, hogy sokszor az mátrix spektrálsugara még nem elég kicsi. Ezen segithetünk egy paraméter bevezetésével:
Itt pontosan akkor teljesül, ha az mátrix sajátértékeire . A konvergencia akkor a leggyorsabb, ha ez a spektrálsugár minél kisebb. Például ha az mátrix szimmetrikus és pozitiv definit akkor az optimális választás -ra:
2. Feladat
Miért ez az ?
sajatertekei: .
Azert ez az opt, mert lasd P1 feladat.
Hogyan készíthetünk ilyen fixpont-iterációt II.
A fenti átalakitás általánosítása, ha felbontással élünk, majd ezzel számolunk.
Itt tehát az iterációs mátrix és ennek a spektrálsugarát már hatékonyabban tudjuk befolyásolni az alkalmas megválasztásával.
Nevezetes módszerek
Legyen egy felbontása az mátrixnak rendre szigorú alsóháromszög, diagonális, és szigorú felsőháromszög mátrixokra.
- Jacobi iteráció:
- Relaxált Jacobi (JOR):
- Gauss-Seidel iteráció:
- Relaxált Gauss-Seidel (SOR):
Tétel: Ha szigorúan diagonálisan domináns (SZDD), akkor a Jacobi és a Gauss-Seidel iteráció konvergens.
Definíció: Egy négyzetes mátrixot M-mátrixnak nevezünk, ha főátlóján kívül nempozitív elemei vannak, és van olyan elemenként pozitív vektor, melynek a mátrix általi képe szintén elemenként pozitív.
Tétel: Ha M-mátrix, akkor konvergens a JOR és az SOR esetén.
Tétel: Ha szimmetrikus és pozitív definit (SZPD), akkor konvergens az SOR iteráció esetén.
3. Feladat
Legyen SZDD. A Gersgorin-tétel segítségével mutasssuk meg, hogy , azaz a Jacobi-iteráció konvergál.
Gersgorin-tetel szerint minden sajatertek a -koruli korokben vannak, melyeknke sugarai , es ez mert feltetel szerint SZDD. Tehat a spektral sugar .
4. Feladat
Tekintsük az
\left[\matrix{2 & -1 \cr -1 & 2}\right] x= \left[ \matrix{1 \cr 3} \right]egyenletet.
a) Melyik módszereket használhatjuk ennek iteratív megoldására?
Mindent lehet, mert SZPD, SZDD, M-matrix
b) Írjuk fel a JOR iterációhoz tartozó iterációs mátrixot. Hogy alakul ennek spektrálsugara az függvényeként? Milyen választással lesz a leggyorsabb a konvergencia?
Gradiens-alapú módszerek
Bizonyos esetekben egy lineáris algebrai egyenletrendszer megoldása előáll mint egy megfelelő függvény minimumhelye.
5. Feladat
Legyen definíciója
Mutassuk meg az alábbiakat.
a)
b)
c)
azaz feltehetjük, hogy szimmetrikus.
d)
Ha szimmetrikus és sajátérték-felbontása , akkor
P1. Feladat
Írjunk programot, amely egy SZPD mátrix esetén egy ábrán ábrázolja az mátrix sajátértékeinek abszolútértékét az függvényeként. Bemeneti paraméterek lehetnek a mátrix sajátértékei.
import numpy as np
import matplotlib.pyplot as plt
def plot_eigens(eigens: np.ndarray):
omegas = np.arange(0, 2.5, 0.01)
for eigen in eigens:
vals = np.abs(1 - eigen * omegas)
plt.plot(omegas, vals)
plt.show()
P2. Feladat
Írjunk általános függvényt a fenti, felbontással adódó iterációkhoz, majd ezzel implementáljuk a tanult iterációkat.
Alkalmazzunk is ezek közül egy olyat, amit értelmes az
\left[\matrix{2 & -1 \cr -1 & 2}\right] x= \left[ \matrix{1 \cr 3} \right]egyenlet megoldására. Addig iteráljunk, míg két szomszédos iterált szerinti távolsága alá nem csökken.
import numpy as np
related: NumMod 1