User talk:Aronkapusi/sandbox

=Iterációs módszer=

A számítógépes matematikában a iterációs módszer egy matematikai eljárás, amely generál egy sorozatot egy probláma közelítő megoldásához. A konkrét megvalósítása az iterációs módszernek, beleértve a végső kritériumokat, egy algoritmus. Egy iterációs módszert konvergensnek hívjuk, ha a megfelelő sorrendben konvergál a kezdeti közelítéshez. A metamatikai konvergencia elemzését általában az iterációs módszer végzi. Ugyan akkor a heurisztikus alapú iterációs módszerek is gyakoriak. Egy feladat egyenletének a gyökének a megtaláslása (vagy egy egyenletrendszer megoldása), az iterációs módszer egy elsődleges becslést használ az egymást követő közelítések megoldására. Ezzel szemben a probléma direkt módszerrel való megoldása véges sorozatokra műkődik. A kerekítési hibák hiányában a direkt módszer ad egy egzakt megoldást. Az iterációs módszer gyakran az egyetlen megoldás a nemlineáris egyenletekre. Azonban az iterációs módszer használatos a nagyszámú változóval rendelkező lineáris egyenletek megoldására is, ahol a direkt módszer kőltsége túl nagy lenne még a legjobb rendelkezésre álló számítógépek teljesítményéhez képest is.

Jacobi- és Gauss-Seidel-féle iterációs módszer
Adott egy négyzet alakó mátrix, n darab lineáris egyenletre vonatkozóan:
 * $$A\mathbf x = \mathbf b$$

ahol:

$$A=\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix}, \qquad \mathbf{x} = \begin{bmatrix} x_{1} \\ x_2 \\ \vdots \\ x_n \end{bmatrix}, \qquad  \mathbf{b} = \begin{bmatrix} b_{1} \\ b_2 \\ \vdots \\ b_n \end{bmatrix}.$$

Akkor A felbontható a D diagonalis komponenseként, és az R a maradék:


 * $$A=D+R \qquad \text{where} \qquad D = \begin{bmatrix} a_{11} & 0 & \cdots & 0 \\ 0 & a_{22} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\0 & 0 & \cdots & a_{nn} \end{bmatrix} \text{ and } R = \begin{bmatrix} 0 & a_{12} & \cdots & a_{1n} \\ a_{21} & 0 & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & 0 \end{bmatrix}. $$

A megoldást iteráción keresztül kapjuk:
 * $$ \mathbf{x}^{(k+1)} = D^{-1} (\mathbf{b} - R \mathbf{x}^{(k)}). $$

Az elemi képlet tehát:
 * $$ x^{(k+1)}_i = \frac{1}{a_{ii}} \left(b_i -\sum_{j\ne i}a_{ij}x^{(k)}_j\right),\quad i=1,2,\ldots,n. $$

A számolás xi(k+1) előírja, hogy minden elemben x(k) kivéve magát. Ellentétben a Gauss–Seidel módszerrel, nem tudjuk felülírni az xi(k) -t xi(k+1)-al, mivel szükségünk lesz erre az értkre a következőkben. A minimális tárolási hely két n nagyságú vektor.

Az algoritmus

 * Kezdeti becslésnek válasszuk a $$x^{(0)}$$ a megoldáshoz
 * $$ k = 0 $$
 * mivel még nincs konvergenciánk
 * for i := 1 step until n do
 * $$ \sigma = 0 $$
 * for j := 1 step until n do
 * if j &ne; i then
 * $$ \sigma = \sigma  + a_{ij} x_j^{(k)} $$
 * end if
 * end (j-loop)
 * $$ x_i^{(k+1)}  = {{\left( {b_i  - \sigma } \right)} \over {a_{ii} }} $$
 * end (i-loop)
 * ellenőrizzük a konvergenciát
 * $$k = k + 1$$

Konvergencia
A szabványos konvergencia feltétele az, hogy a iteráció mátrix spektrális sugara kisebb mint 1:


 * $$\rho(D^{-1}R) < 1. $$

A módszer garantáltan konvergál, ha a  A  mátrix szigorúan, vagy egyszerűsíthetetlenül átlósan domináns. Szigorú sor átlós dominanciaja azt jelenti, hogy minden sorban, az abszolút értéke az átló kifejezésnek nagyobb, mint az összege az abszolút értékeinek egyéb feltételek mellett:


 * $$\left | a_{ii} \right | > \sum_{j \ne i} {\left | a_{ij} \right |}. $$

A Jacobi módszer néha konvergál akkor is, ha ezek a feltételek nem teljesülnek.

Egy példa a Python es a Numpy használatára
A következő numerikus eljárás egyszerűen végigmegy, hogy készítsen egy megoldás vektort.

A kimenet:

Forrás
Numerikus módszerek-egyetemi jegyzet" - Lázár Zsolt, Lázár József, Járai-Szabó Ferenc https://en.wikipedia.org/wiki/Jacobi_method