**Գաուս-Զեյդելի մեթոդը** (Զեյդելի մեթոդ, Լիբմանի պրոցես, հաջորդական փոխարինումների մեթոդ) հանդիսանում է դասական իտերացիոն մեթոդով հավասարումների համակարգի լուծում։ Այն անվանվում է ի պատիվ Զեյդելի և Գաուսի։

Խնդրի դրվածքը
-------------

Դիտարկենք հավասարումների համակարգը՝

{\displaystyle A{\vec {x}}={\vec {b}}}, где {\displaystyle A=\left({\begin{array}{ccc}a\_{11}&\ldots &a\_{1n}\\\vdots &\ddots &\vdots \\a\_{n1}&\ldots &a\_{nn}\end{array}}\right),\quad {\vec {b}}=\left({\begin{array}{c}b\_{1}\\\vdots \\b\_{n}\end{array}}\right)}

կամ

{\displaystyle \left\{{\begin{array}{rcl}a\_{11}x\_{1}+\ldots +a\_{1n}x\_{n}&=&b\_{1}\\&&\\a\_{n1}x\_{1}+\ldots +a\_{nn}x\_{n}&=&b\_{n}\end{array}}\right.}

և ցույց տանք, թե ինչպես կարելի է լուծել այն Գաուս-Զեյդելի մեթոդով։

Մեթոդը
------

Մեթոդի էությունը պարզաբանելու համար առաջադրանքը գրենք հետևյալ տեսքով՝

{\displaystyle \left\{{\begin{array}{lcr}a\_{11}x\_{1}&=&-a\_{12}x\_{2}-a\_{13}x\_{3}-\ldots -a\_{1n}x\_{n}+b\_{1}\\a\_{21}x\_{1}+a\_{22}x\_{2}&=&-a\_{23}x\_{3}-\ldots -a\_{2n}x\_{n}+b\_{2}\\\ldots &&\\a\_{(n-1)1}x\_{1}+a\_{(n-1)2}x\_{2}+\ldots +a\_{(n-1)(n-1)}x\_{n-1}&=&-a\_{(n-1)n}x\_{n}+b\_{n-1}\\a\_{n1}x\_{1}+a\_{n2}x\_{2}+\ldots +a\_{n(n-1)}x\_{n-1}+a\_{nn}x\_{n}&=&b\_{n}\end{array}}\right.}
Այստեղ {\displaystyle j}-րդ հավասարումում մենք աջ մաս տեղափոխեցինք բոլոր այն {\displaystyle x\_{i}} անդամները, որտեղ բավարարում էր {\displaystyle i>j} պայմանը։ Այս գրառումը կարող է ներկայացվել հետևյալ ձևով՝

{\displaystyle (\mathrm {L} +\mathrm {D} ){\vec {x}}=-\mathrm {U} \,{\vec {x}}+{\vec {b}},}
որտեղ ընդունված նշանակումներով {\displaystyle \mathrm {D} }-ն մատրից է, որում գլխավոր անկյունագծի վրա գրված են {\displaystyle A} մատրիցի համապատասխան անդամները, իսկ մնացած անդամները զրոներ են, այնինչ {\displaystyle \mathrm {U} } և {\displaystyle \mathrm {L} } մատրիցները պարունակում են {\displaystyle A} մատրիցի վերևի և ներքևի եռանկյունային մասերը, որոնց գլխավոր անկյունագծի վրա զրոներ են։
Գաուս-Զեյդելի մեթոդում իտերացիոն պրոցեսը ստեղծվում է հետևյալ բանաձևով՝

{\displaystyle (\mathrm {L} +\mathrm {D} ){\vec {x}}^{(k+1)}=-\mathrm {U} {\vec {x}}^{(k)}+{\vec {b}},\quad k=0,1,2,\ldots }
համապատասխան {\displaystyle {\vec {x}}^{(0)}} սկզբնական մոտարկման ընտրությամբ։

Գաուս-Զեյդելի մեթոդը կարելի է դիտարկել որպես Յակոբիի մեթոդի մոդիֆիկացիա։ Մոդիֆիկացիայի հիմնական գաղափարը կայանում է նրանում, որ այստեղ {\displaystyle {\vec {x}}^{(i)}} նոր արժեքները օգտագործվում են անմիջապես ստանալուց հետո, այնինչ Յակոբիի մեթոդում այն չի օգտագործվում մինչև հաջորդ իտերացիան՝

{\displaystyle \left\{{\begin{array}{ccccccccccc}{x\_{1}}^{(k+1)}&=&c\_{12}{x\_{2}^{(k)}}&+&c\_{13}x\_{3}^{(k)}&+&{\ldots }&+&c\_{1n}{x\_{n}}^{(k)}&+&d\_{1}\\{x\_{2}}^{(k+1)}&=&c\_{21}{x\_{1}^{(k+1)}}&+&c\_{23}x\_{3}^{(k)}&+&{\ldots }&+&c\_{2n}{x\_{n}}^{(k)}&+&d\_{2}\\\ldots &&&&&&&&&&\\{x\_{n}}^{(k+1)}&=&c\_{n1}{x\_{1}^{(k+1)}}&+&c\_{n2}{x\_{2}^{(k+1)}}&+&{\ldots }&+&c\_{n(n-1)}{x\_{n-1}}^{(k+1)}&+&d\_{n}\end{array}}\right.}
որտեղ

{\displaystyle c\_{ij}={\begin{cases}-{\frac {a\_{ij}}{a\_{ii}}},&j\neq i,\\0,&j=i.\end{cases}}\quad d\_{i}={\frac {b\_{i}}{a\_{ii}}},\quad i=1,\ldots ,n.}
Այսպիսով, {\displaystyle i}-րդ կոմպոնենտի {\displaystyle (k+1)}-րդ մոտարկման հաշվարկը կատարվում է 

{\displaystyle x\_{i}^{(k+1)}=\sum \_{j=1}^{i-1}c\_{ij}x\_{j}^{(k+1)}+\sum \_{j=i}^{n}c\_{ij}x\_{j}^{(k)}+d\_{i},\quad i=1,\ldots ,n}
բանաձևով։

Օրինակ, {\displaystyle n=3}-ի դեպքում`

{\displaystyle x\_{1}^{(k+1)}=\sum \_{j=1}^{1-1}c\_{1j}x\_{j}^{(k+1)}+\sum \_{j=1}^{3}c\_{1j}x\_{j}^{(k)}+d\_{1}}, այսինքն {\displaystyle x\_{1}^{(k+1)}=c\_{11}x\_{1}^{(k)}+c\_{12}x\_{2}^{(k)}+c\_{13}x\_{3}^{(k)}+d\_{1},}
{\displaystyle x\_{2}^{(k+1)}=\sum \_{j=1}^{2-1}c\_{2j}x\_{j}^{(k+1)}+\sum \_{j=2}^{3}c\_{2j}x\_{j}^{(k)}+d\_{2}}, այսինքն {\displaystyle x\_{2}^{(k+1)}=c\_{21}x\_{1}^{(k+1)}+c\_{22}x\_{2}^{(k)}+c\_{23}x\_{3}^{(k)}+d\_{2},}
{\displaystyle x\_{3}^{(k+1)}=\sum \_{j=1}^{3-1}c\_{3j}x\_{j}^{(k+1)}+\sum \_{j=3}^{3}c\_{3j}x\_{j}^{(k)}+d\_{3}}, այսինքն {\displaystyle x\_{3}^{(k+1)}=c\_{31}x\_{1}^{(k+1)}+c\_{32}x\_{2}^{(k+1)}+c\_{33}x\_{3}^{(k)}+d\_{3}:}

Զուգամիտության պայման
---------------------

Բերենք զուգամիտության մեթոդի բավարար պայման։

|  |  |  |
| --- | --- | --- |
|  | **Թեորեմ.**Դիցուկ {\displaystyle \|\mathrm {A} \_{2}\|<1}, որտեղ {\displaystyle \mathrm {A} \_{2}=-(\mathrm {L} +\mathrm {D} )^{-1}\,\mathrm {U} ,\quad (\mathrm {L} +\mathrm {D} )^{-1}} մատրիցն հակադարձ է {\displaystyle (\mathrm {L} +\mathrm {D} )} մատրիցին։ Այդ դեպքում ցանկացած {\displaystyle {\vec {x}}^{(0)}} սկզբնական մոտարկման ընտրության դեպքում՝
1. Գաուս-Զեյդելի մեթոդը զուգամիտում է,
2. մեթոդի զուգամիտության արագությունը հավասար է երկրաչափական պրոգրեսիայի զուգամիտության արագությանը {\displaystyle q=\|\mathrm {A} \_{2}\|} հայտարարով,
3. ճիշտ է {\displaystyle \|{\vec {x}}^{(k)}-{\vec {x}}\|=q^{k}\,\|{\vec {x}}^{(0)}-{\vec {x}}\|} գնահատման սխալը։
 |  |

Դադարեցման պայմանը
------------------

Զեյդելի պրոցեսի իտերացիայի ավարտի պայմանը անհրաժեշտ {\displaystyle \varepsilon } ճշգրտության դեպքում կրճատ ձևով ունի այսպիսի տեսք՝

{\displaystyle \parallel x^{(k+1)}-x^{(k)}\parallel \leq \varepsilon }
Իտերացիոն պրոցեսի առավել ճշգրիտ պայմանը ունի այսպիսի տեսք՝

{\displaystyle \parallel Ax^{(k)}-b\parallel \leq \varepsilon }
և պահանջում է ավելի շատ հաշվարկներ։ Այն բավականին հարմար է կտրտված մատրիցների համար։

Իրականացման օրինակ C++ - ում
----------------------------

```
#include <iostream>
#include <cmath>

using namespace std;

// Ավարտի պայման
bool converge(double xk[10], double xkp[10], int n, double eps)
{
 double norm = 0;
 for (int i = 0; i < n; i++)
 norm += (xk[i] - xkp[i]) \* (xk[i] - xkp[i]);
 return (sqrt(norm) < eps);
}

double okr(double x, double eps)
{
 int i = 0;
 while (eps != 1)
 {
 i++;
 eps \*= 10;
 }
 int okr = pow(double(10), i);
 x = int(x \* okr + 0.5) / double(okr);

 return x;
}

bool diagonal(double a[10][10], int n)
{
 int i, j, k = 1;
 double sum;
 for (i = 0; i < n; i++) {
 sum = 0;
 for (j = 0; j < n; j++) sum += a[i][j];
 sum -= a[i][i];
 if (sum > a[i][i]) 
 {
 k = 0; 
 cout << a[i][i] << "< "<< sum << endl;
 }
 else
 {
 cout << a[i][i] << "> "<< sum << endl;
 }
 

 }

 return (k == 1);

}

int main()
{
 setlocale(LC\_ALL, "");

 double eps, a[10][10], b[10], x[10], p[10];
 int n, i, j, m = 0;
 int method;
 cout << "Մուտքագրել քառակուսի մատրիցի չափը՝ ";
 cin >> n;
 cout << "Մուտքագրել հաշվարկի ճշտությունը՝ ";
 cin >> eps;
 cout << "Մուտքագրել А մատրիցն՝ "<< endl << endl;
 for (i = 0; i < n; i++)
 for (j = 0; j < n; j++)
 {
 cout << "A[" << i << "][" << j << "] = ";
 cin >> a[i][j];
 }
 cout << endl << endl;
 cout << "Ձեր А մատրիցն՝ "<< endl << endl;
 for (i = 0; i < n; i++)
 {
 for (j = 0; j < n; j++)
 cout << a[i][j] << "";
 cout << endl;
 }

 cout << endl;

 cout << "Լրացրեք ազատ անդամների սյունը՝ "<< endl << endl;
 for (i = 0; i < n; i++)
 {
 cout << "В[" << i + 1 << "] = ";
 cin >> b[i];
 }

 cout << endl << endl;

 /\*
 Քայլ մեթոդ, որտեղ։
 a[n][n] - մատրիցի գործակիցներն են
 x[n], p[n] - Ընթացիկ և նախորդ լուծումները
 b[n] - Աջ մասերի սյունը
 Բոլոր թվարկված զանգվածները իրական են և
 պետք է որոշված լինեն հիմնական ծրագրում,
 ինչպես նաև x[n] մասիվում անհրաժեշտ է լրացնել սկզբնական
 սյան լուծումի մոտարկումը (օրիակ, բոլորը զրոներ)
 \*/

 for (int i = 0; i < n; i++)
 x[i] = 1;

 cout << "Անկյունագծային գերակշռություն՝ "<< endl;
 if (diagonal(a, n)) {
 do
 {
 for (int i = 0; i < n; i++)
 p[i] = x[i];
 for (int i = 0; i < n; i++)
 {
 double var = 0;
 for (int j = 0; j < i; j++)
 var += (a[i][j] \* x[j]);
 for (int j = i + 1; j < n; j++)
 var += (a[i][j] \* p[j]);
 x[i] = (b[i] - var) / a[i][i];
 }
 m++;
 } while (!converge(x, p, n, eps));

 cout << "Համակարգի լուծում՝" << endl << endl;
 for (i = 0; i < n; i++) cout << "x" << i << "= "<< okr(x[i], eps) << "" << endl;
 cout << "Իտերացիա՝ "<< m << endl;
 }
 else {
 cout << "Չի կատարվում անկյունագծերի գերակշռություն։" << endl;
 }

 system("pause");
 return 0;
}

```

Իրականացման օրինակ Python - ում
-------------------------------

```
from math import sqrt
import numpy as np

def seidel(A, b, eps):
    n = len(A)
    x = [.0 for i in range(n)]

    converge = False
    while not converge:
        x\_new = np.copy(x)
        for i in range(n):
            s1 = sum(A[i][j] \* x\_new[j] for j in range(i))
            s2 = sum(A[i][j] \* x[j] for j in range(i + 1, n))
            x\_new[i] = (b[i] - s1 - s2) / A[i][i]

        converge = sqrt(sum((x\_new[i] - x[i]) \*\* 2 for i in range(n))) <= eps
        x = x\_new

    return x

```

Տես նաև
-------

* Երկրաչափական պրոգրեսիա
* Պարզ իտերացիայի մեթոդ
* Յակոբիի մեթոդ
* Բանախի թեորեմ
* Իտերացիայի մեթոդ

Ծանոթագրություններ
------------------

1. ↑  Ա․Գ․ Կուրոշ, Բարձրագույն հանրահաշվի դասընթաց, «Լույս» հրատարակչություն, Երևան, 1965

Արտաքին հղումներ
----------------

* 
* 
* 

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * դ
* ք
* խ
Մաթեմատիկայի ճյուղեր |
| --- |
|  |
| Հիմունքներ | 
* Կատեգորիաների տեսություն
* Ինֆորմացիայի տեսություն
* Մաթեմատիկական տրամաբանություն
* Մաթեմատիկայի փիլիսոփայություն
* Բազմությունների տեսություն

 |
|  |
| Հանրահաշիվ | 
* Աբստրակտ
* Տարրական
* Գծային
* Բազմագծային

 |
|  |
| Անալիզ | 
* Calculus
* Իրական անալիզ
* Կոմպլեքս անալիզ
* Դիֆերենցիալ հավասարումներ
* Ֆունկցիոնալ անալիզ

 |
|  |
| Դիսկրետ | 
* Կոմբինատորիկա
* Գրաֆների տեսություն
* Կարգերի տեսություն
* Խաղերի տեսություն

 |
|  |
| Երկրաչափություն | 
* Հանրահաշվական
* Անալիտիկ
* Դիֆերենցիալ
* Դիսկրետ
* Էվկլիդեսյան
* Վերջավոր

 |
|  |
| Թվերի տեսություն | 
* Թվաբանություն
* Հանրահաշվական թվերի տեսություն
* Անալիտիկ թվերի տեսություն
* Դիոֆանտյան երկրաչափություն

 |
|  |
| Տոպոլոգիա | 
* Հանրահաշվական
* Դիֆերենցիալ
* Երկրաչափական

 |
|  |
| Կիրառական | 
* Կառավարման տեսություն
* Մաթեմատիկական տնտեսագիտություն
* Մաթեմատիկական ֆինանսներ
* Մաթեմատիկական ֆիզիկա
* Մաթեմատիկական վիճակագրություն
* Հավանականությունների տեսություն
* Վիճակագրություն

 |
|  |
| Հաշվողական | 
* Ինֆորմատիկա
* Theory of computation
* Թվային մեթոդներ
* Օպտիմիզացիա
* Computer algebra

 |
|  |
| Այլ | 
* Մաթեմատիկայի պատմություն
* Ժամանցային մաթեմատիկա
* Մաթեմատիկա և արվեստ
* Մաթեմատիկայի ուսուցում

 |
|  |
| 
* Category **Կատեգորիա**
* Commons page**Վիքիպահեստ**

 |

 |