Lineer tenglamalar tizimini echishda ishlatiladigan takroriy usul
Yilda raqamli chiziqli algebra , Gauss-Zeydel usuli , deb ham tanilgan Liebmann usuli  yoki ketma-ket siljish usuli , bu takroriy usul  hal qilish uchun ishlatiladi chiziqli tenglamalar tizimi . Uning nomi bilan nomlangan Nemis  matematiklar  Karl Fridrix Gauss  va Filipp Lyudvig fon Zeydel va shunga o'xshash Jakobi usuli . Diagonallarda nolga teng bo'lmagan elementlarga ega bo'lgan har qanday matritsaga tatbiq etilishi mumkin bo'lsa-da, yaqinlashuv faqat matritsa yoki qat'iy diagonal ustunlik qiladi ,[1]   yoki nosimmetrik  va ijobiy aniq . Bu faqat Gaussning shogirdiga yozgan shaxsiy maktubida aytilgan Gerling  1823 yilda.[2]   Zaydel tomonidan 1874 yilgacha nashr qilinmagan.
Tavsif  
Gauss-Zeydel usuli - bu takroriy texnika  ning kvadrat tizimini echish uchun n  noma'lum bo'lgan chiziqli tenglamalar x :
                    A                   x          =                   b        { displaystyle A  mathbf {x} =  mathbf {b}}    .Bu takrorlash bilan belgilanadi
                              L                       ∗                                 x                        (             k             +             1             )           =                   b          −         U                               x                        (             k             )           ,       { displaystyle L _ {*}  mathbf {x} ^ {(k + 1)} =  mathbf {b} -U  mathbf {x} ^ {(k)},}   qayerda                                           x                        (             k             )         { displaystyle  mathbf {x} ^ {(k)}}     bo'ladi k ning yaqinlashishi yoki takrorlanishi                               x          ,                                        x                        (             k             +             1             )         { displaystyle  mathbf {x}, ,  mathbf {x} ^ {(k + 1)}}     keyingi yoki k  + 1 takrorlash                               x        { displaystyle  mathbf {x}}    va matritsa A  a ga ajraladi pastki uchburchak  komponent                               L                       ∗         { displaystyle L _ {*}}    va a qat'iy yuqori uchburchak  komponent U :                     A         =                   L                       ∗           +         U       { displaystyle A = L _ {*} + U}    .[3] 
Batafsilroq yozing A , x  va b  ularning tarkibiy qismlarida:
                    A         =                               [                                                                                 a                                           11                                                          a                                           12                                      ⋯                                                        a                                           1                       n                                                                         a                                           21                                                          a                                           22                                      ⋯                                                        a                                           2                       n                                                     ⋮                                    ⋮                                    ⋱                                    ⋮                                                                       a                                           n                       1                                                          a                                           n                       2                                      ⋯                                                        a                                           n                       n                  ]           ,                            x          =                               [                                                                                 x                                           1                                                                         x                                           2                                                     ⋮                                                                       x                                           n                  ]           ,                            b          =                               [                                                                                 b                                           1                                                                         b                                           2                                                     ⋮                                                                       b                                           n                  ]           .       { displaystyle 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}}.}   Keyin. Ning parchalanishi A  uning pastki uchburchak qismiga va uning yuqori yuqori uchburchagi komponentiga quyidagilar kiradi:
                    A         =                   L                       ∗           +         U                            qayerda                             L                       ∗           =                               [                                                                                 a                                           11                                      0                                    ⋯                                    0                                                                       a                                           21                                                          a                                           22                                      ⋯                                    0                                                   ⋮                                    ⋮                                    ⋱                                    ⋮                                                                       a                                           n                       1                                                          a                                           n                       2                                      ⋯                                                        a                                           n                       n                  ]           ,                  U         =                               [                                                             0                                                        a                                           12                                      ⋯                                                        a                                           1                       n                                                     0                                    0                                    ⋯                                                        a                                           2                       n                                                     ⋮                                    ⋮                                    ⋱                                    ⋮                                                   0                                    0                                    ⋯                                    0                ]           .       { displaystyle A = L _ {*} + U  qquad { text {where}}  qquad L _ {*} = { begin {bmatrix} a_ {11} & 0 &  cdots & 0  a_ {21} & a_ {22 } &  cdots & 0  vdots &  vdots &  ddots &  vdots  a_ {n1} & a_ {n2} &  cdots & a_ {nn}  end {bmatrix}},  quad U = { begin { bmatrix} 0 & a_ {12} &  cdots & a_ {1n}  0 & 0 &  cdots & a_ {2n}  vdots &  vdots &  ddots &  vdots  0 & 0 &  cdots & 0  end {bmatrix}}.}   Lineer tenglamalar tizimi quyidagicha yozilishi mumkin:
                              L                       ∗                     x          =                   b          −         U                   x        { displaystyle L _ {*}  mathbf {x} =  mathbf {b} -U  mathbf {x}}   Gauss-Zeydel usuli endi ushbu ifodaning chap tomonini hal qiladi x , oldingi qiymatidan foydalanib x  o'ng tomonda. Analitik ravishda, bu quyidagicha yozilishi mumkin:
                                          x                        (             k             +             1             )           =                   L                       ∗                        −             1           (                   b          −         U                               x                        (             k             )           )         .       { displaystyle  mathbf {x} ^ {(k + 1)} = L _ {*} ^ {- 1} ( mathbf {b} -U  mathbf {x} ^ {(k)}).}   Biroq, ning uchburchak shaklidan foydalangan holda                               L                       ∗         { displaystyle L _ {*}}    , ning elementlari x (k +1)  yordamida ketma-ket hisoblash mumkin oldinga almashtirish :
                              x                       men                        (             k             +             1             )           =                               1                           a                               men                 men                       (                                     b                               men               −                           ∑                               j                 =                 1                                men                 −                 1                             a                               men                 j                             x                               j                                (                 k                 +                 1                 )               −                           ∑                               j                 =                 men                 +                 1                                n                             a                               men                 j                             x                               j                                (                 k                 )              )          ,                  men         =         1         ,         2         ,         …         ,         n         .       { displaystyle x_ {i} ^ {(k + 1)} = { frac {1} {a_ {ii}}}  chap (b_ {i} -  sum _ {j = 1} ^ {i-1 } a_ {ij} x_ {j} ^ {(k + 1)} -  sum _ {j = i + 1} ^ {n} a_ {ij} x_ {j} ^ {(k)}  o'ng),  quad i = 1,2,  nuqta, n.}     [4] Odatda protsedura takrorlanish bilan kiritilgan o'zgarishlar biroz tolerantlik darajasidan past bo'lguncha davom ettiriladi, masalan, etarlicha kichik qoldiq .
Munozara Gauss-Zeydel uslubining elementar formulasi juda o'xshash Jakobi usuli .
Hisoblash x (k +1)  ning elementlaridan foydalanadi x (k +1)  allaqachon hisoblab chiqilgan va faqat elementlari x (k )  k + 1 takrorlanishida hisoblanmagan. Bu shuni anglatadiki, Jakobi usulidan farqli o'laroq, faqat bitta saqlash vektori talab qilinadi, chunki elementlarni hisoblashda ularni ustiga yozish mumkin, bu juda katta muammolar uchun foydali bo'lishi mumkin.
Biroq, Jakobi uslubidan farqli o'laroq, har bir element uchun hisob-kitoblarni bajarish mumkin emas parallel . Bundan tashqari, har bir takrorlashdagi qiymatlar asl tenglamalarning tartibiga bog'liq.
Gauss-Zaydel xuddi shunday SOR (ketma-ket ortiqcha bo'shashish)  bilan                     ω         =         1       { displaystyle  omega = 1}    .
Yaqinlashish  
Gauss-Zeydel usulining yaqinlashish xususiyatlari matritsaga bog'liq A . Ya'ni, protsedura birlashishi ma'lum, agar:
Gauss-Zaydel usuli ba'zan bu shartlar bajarilmasa ham yaqinlashadi.
Algoritm  
Elementlar ushbu algoritmda hisoblab chiqilganligi sababli yozilishi mumkin bo'lganligi sababli, faqat bitta saqlash vektori kerak bo'ladi va vektor indeksatsiyasi qoldiriladi. Algoritm quyidagicha:
Kirish: A , b Chiqish:                     ϕ       { displaystyle  phi}    Dastlabki taxminni tanlang                     ϕ       { displaystyle  phi}     hal qilish uchun takrorlang  yaqinlashguncha uchun  men  dan  1 qadar  n  qil                             σ         ←         0       { displaystyle  sigma  leftarrow 0}            uchun  j  dan  1 qadar  n  qil             agar  j  ≠ men  keyin                                     σ         ←         σ         +                   a                       men             j                     ϕ                       j         { displaystyle  sigma  leftarrow  sigma + a_ {ij}  phi _ {j}}                tugatish agar         oxiri  (j (ilmoq)                               ϕ                       men           ←                               1                           a                               men                 men             (                   b                       men           −         σ         )       { displaystyle  phi _ {i}  leftarrow { frac {1} {a_ {ii}}} (b_ {i} -  sigma)}        oxiri  (men -loop) yaqinlashuvga erishilganligini tekshiringoxiri  (takrorlash) Misollar  
Matritsa versiyasiga misol Sifatida ko'rsatilgan chiziqli tizim                     A                   x          =                   b        { displaystyle A  mathbf {x} =  mathbf {b}}     tomonidan berilgan:
                    A         =                               [                                                             16                                    3                                                   7                                    −                   11                ]         { displaystyle A = { begin {bmatrix} 16 & 3  7 & -11  end {bmatrix}}}     va                     b         =                               [                                                             11                                                   13                ]           .       { displaystyle b = { begin {bmatrix} 11  13  end {bmatrix}}.}   Biz tenglamadan foydalanmoqchimiz
                                          x                        (             k             +             1             )           =                   L                       ∗                        −             1           (                   b          −         U                               x                        (             k             )           )       { displaystyle  mathbf {x} ^ {(k + 1)} = L _ {*} ^ {- 1} ( mathbf {b} -U  mathbf {x} ^ {(k)})}   shaklida
                                          x                        (             k             +             1             )           =         T                               x                        (             k             )           +         C       { displaystyle  mathbf {x} ^ {(k + 1)} = T  mathbf {x} ^ {(k)} + C}   qaerda:
                    T         =         −                   L                       ∗                        −             1           U       { displaystyle T = -L _ {*} ^ {- 1} U}     va                     C         =                   L                       ∗                        −             1                     b          .       { displaystyle C = L _ {*} ^ {- 1}  mathbf {b}.}   Biz parchalanishimiz kerak                               A                             { displaystyle A _ {} ^ {}}     pastki uchburchak komponentining yig'indisiga                               L                       ∗                   { displaystyle L _ {*} ^ {}}     va qat'iy yuqori uchburchak komponent                               U                             { displaystyle U _ {} ^ {}}    :
                              L                       ∗           =                               [                                                             16                                    0                                                   7                                    −                   11                ]         { displaystyle L _ {*} = { begin {bmatrix} 16 & 0  7 & -11  end {bmatrix}}}      va                     U         =                               [                                                             0                                    3                                                   0                                    0                ]           .       { displaystyle U = { begin {bmatrix} 0 & 3  0 & 0  end {bmatrix}}.}   Ning teskari tomoni                               L                       ∗                   { displaystyle L _ {*} ^ {}}     bu:
                              L                       ∗                        −             1           =                                             [                                                                     16                                        0                                                         7                                        −                     11                  ]                         −             1           =                               [                                                             0.0625                                    0.0000                                                   0.0398                                    −                   0.0909                ]         { displaystyle L _ {*} ^ {- 1} = { begin {bmatrix} 16 & 0  7 & -11  end {bmatrix}} ^ {- 1} = { begin {bmatrix} 0.0625 & 0.0000  0.0398 & -0.0909  end {bmatrix}}}    .Endi biz quyidagilarni topamiz:
                    T         =         −                               [                                                             0.0625                                    0.0000                                                   0.0398                                    −                   0.0909                ]           ×                               [                                                             0                                    3                                                   0                                    0                ]           =                               [                                                             0.000                                    −                   0.1875                                                   0.000                                    −                   0.1194                ]           ,       { displaystyle T = - { begin {bmatrix} 0.0625 & 0.0000  0.0398 & -0.0909  end {bmatrix}}  times { begin {bmatrix} 0 & 3  0 & 0  end {bmatrix}} = { begin {bmatrix} 0.000 & -0.1875  0.000 & -0.1194  end {bmatrix}},}                       C         =                               [                                                             0.0625                                    0.0000                                                   0.0398                                    −                   0.0909                ]           ×                               [                                                             11                                                   13                ]           =                               [                                                             0.6875                                                   −                   0.7439                ]           .       { displaystyle C = { begin {bmatrix} 0.0625 & 0.0000  0.0398 & -0.0909  end {bmatrix}}  times { begin {bmatrix} 11  13  end {bmatrix}} = { begin { bmatrix} 0.6875  - 0.7439  end {bmatrix}}.}   Endi bizda                               T                             { displaystyle T _ {} ^ {}}     va                               C                             { displaystyle C _ {} ^ {}}     va biz ularni vektorlarni olish uchun ishlatishimiz mumkin                               x        { displaystyle  mathbf {x}}     takroriy ravishda.
Avvalo, biz tanlashimiz kerak                                           x                        (             0             )         { displaystyle  mathbf {x} ^ {(0)}}    : biz faqat taxmin qilishimiz mumkin. Taxmin qanchalik yaxshi bo'lsa, algoritm tezroq bajariladi.
Biz taxmin qilamiz:
                              x                       (             0             )           =                               [                                                             1.0                                                   1.0                ]           .       { displaystyle x ^ {(0)} = { begin {bmatrix} 1.0  1.0  end {bmatrix}}.}   Keyin hisoblashimiz mumkin:
                              x                       (             1             )           =                               [                                                             0.000                                    −                   0.1875                                                   0.000                                    −                   0.1193                ]           ×                               [                                                             1.0                                                   1.0                ]           +                               [                                                             0.6875                                                   −                   0.7443                ]           =                               [                                                             0.5000                                                   −                   0.8636                ]           .       { displaystyle x ^ {(1)} = { begin {bmatrix} 0.000 & -0.1875  0.000 & -0.1193  end {bmatrix}}  times { begin {bmatrix} 1.0  1.0  end {bmatrix} } + { begin {bmatrix} 0.6875  - 0.7443  end {bmatrix}} = { begin {bmatrix} 0.5000  - 0.8636  end {bmatrix}}.}                                 x                       (             2             )           =                               [                                                             0.000                                    −                   0.1875                                                   0.000                                    −                   0.1193                ]           ×                               [                                                             0.5000                                                   −                   0.8636                ]           +                               [                                                             0.6875                                                   −                   0.7443                ]           =                               [                                                             0.8494                                                   −                   0.6413                ]           .       { displaystyle x ^ {(2)} = { begin {bmatrix} 0.000 & -0.1875  0.000 & -0.1193  end {bmatrix}}  times { begin {bmatrix} 0.5000  - 0.8636  end {bmatrix }} + { begin {bmatrix} 0.6875  - 0.7443  end {bmatrix}} = { begin {bmatrix} 0.8494  - 0.6413  end {bmatrix}}.}                                 x                       (             3             )           =                               [                                                             0.000                                    −                   0.1875                                                   0.000                                    −                   0.1193                ]           ×                               [                                                             0.8494                                                   −                   0.6413                ]           +                               [                                                             0.6875                                                   −                   0.7443                ]           =                               [                                                             0.8077                                                   −                   0.6678                ]           .       { displaystyle x ^ {(3)} = { begin {bmatrix} 0.000 & -0.1875  0.000 & -0.1193  end {bmatrix}}  times { begin {bmatrix} 0.8494  - 0.6413  end {bmatrix}} + { begin {bmatrix} 0.6875  - 0.7443  end {bmatrix}} = { begin {bmatrix} 0.8077  - 0.6678  end {bmatrix}}.}                                 x                       (             4             )           =                               [                                                             0.000                                    −                   0.1875                                                   0.000                                    −                   0.1193                ]           ×                               [                                                             0.8077                                                   −                   0.6678                ]           +                               [                                                             0.6875                                                   −                   0.7443                ]           =                               [                                                             0.8127                                                   −                   0.6646                ]           .       { displaystyle x ^ {(4)} = { begin {bmatrix} 0.000 & -0.1875  0.000 & -0.1193  end {bmatrix}}  times { begin {bmatrix} 0.8077  - 0.6678  end {bmatrix }} + { begin {bmatrix} 0.6875  - 0.7443  end {bmatrix}} = { begin {bmatrix} 0.8127  - 0.6646  end {bmatrix}}.}                                 x                       (             5             )           =                               [                                                             0.000                                    −                   0.1875                                                   0.000                                    −                   0.1193                ]           ×                               [                                                             0.8127                                                   −                   0.6646                ]           +                               [                                                             0.6875                                                   −                   0.7443                ]           =                               [                                                             0.8121                                                   −                   0.6650                ]           .       { displaystyle x ^ {(5)} = { begin {bmatrix} 0.000 & -0.1875  0.000 & -0.1193  end {bmatrix}}  times { begin {bmatrix} 0.8127  - 0.6646  end {bmatrix }} + { begin {bmatrix} 0.6875  - 0.7443  end {bmatrix}} = { begin {bmatrix} 0.8121  - 0.6650  end {bmatrix}}.}                                 x                       (             6             )           =                               [                                                             0.000                                    −                   0.1875                                                   0.000                                    −                   0.1193                ]           ×                               [                                                             0.8121                                                   −                   0.6650                ]           +                               [                                                             0.6875                                                   −                   0.7443                ]           =                               [                                                             0.8122                                                   −                   0.6650                ]           .       { displaystyle x ^ {(6)} = { begin {bmatrix} 0.000 & -0.1875  0.000 & -0.1193  end {bmatrix}}  times { begin {bmatrix} 0.8121  - 0.6650  end {bmatrix }} + { begin {bmatrix} 0.6875  - 0.7443  end {bmatrix}} = { begin {bmatrix} 0.8122  - 0.6650  end {bmatrix}}.}                                 x                       (             7             )           =                               [                                                             0.000                                    −                   0.1875                                                   0.000                                    −                   0.1193                ]           ×                               [                                                             0.8122                                                   −                   0.6650                ]           +                               [                                                             0.6875                                                   −                   0.7443                ]           =                               [                                                             0.8122                                                   −                   0.6650                ]           .       { displaystyle x ^ {(7)} = { begin {bmatrix} 0.000 & -0.1875  0.000 & -0.1193  end {bmatrix}}  times { begin {bmatrix} 0.8122  - 0.6650  end {bmatrix }} + { begin {bmatrix} 0.6875  - 0.7443  end {bmatrix}} = { begin {bmatrix} 0.8122  - 0.6650  end {bmatrix}}.}   Kutilganidek, algoritm aniq echimga aylanadi:
                              x          =                   A                       −             1                     b          ≈                               [                                                             0.8122                                                   −                   0.6650                ]           .       { displaystyle  mathbf {x} = A ^ {- 1}  mathbf {b}  taxminan { begin {bmatrix} 0.8122  - 0.6650  end {bmatrix}}.}   Aslida, A matritsa mutlaqo diagonal ravishda dominant (ammo ijobiy aniq emas).
Matritsa versiyasi uchun yana bir misol Sifatida ko'rsatilgan yana bir chiziqli tizim                     A                   x          =                   b        { displaystyle A  mathbf {x} =  mathbf {b}}     tomonidan berilgan:
                    A         =                               [                                                             2                                    3                                                   5                                    7                ]         { displaystyle A = { begin {bmatrix} 2 & 3  5 & 7  end {bmatrix}}}     va                     b         =                               [                                                             11                                                   13                ]           .       { displaystyle b = { begin {bmatrix} 11  13  end {bmatrix}}.}   Biz tenglamadan foydalanmoqchimiz
                                          x                        (             k             +             1             )           =                   L                       ∗                        −             1           (                   b          −         U                               x                        (             k             )           )       { displaystyle  mathbf {x} ^ {(k + 1)} = L _ {*} ^ {- 1} ( mathbf {b} -U  mathbf {x} ^ {(k)})}   shaklida
                                          x                        (             k             +             1             )           =         T                               x                        (             k             )           +         C       { displaystyle  mathbf {x} ^ {(k + 1)} = T  mathbf {x} ^ {(k)} + C}   qaerda:
                    T         =         −                   L                       ∗                        −             1           U       { displaystyle T = -L _ {*} ^ {- 1} U}     va                     C         =                   L                       ∗                        −             1                     b          .       { displaystyle C = L _ {*} ^ {- 1}  mathbf {b}.}   Biz parchalanishimiz kerak                               A                             { displaystyle A _ {} ^ {}}     pastki uchburchak komponentining yig'indisiga                               L                       ∗                   { displaystyle L _ {*} ^ {}}     va qat'iy yuqori uchburchak komponent                               U                             { displaystyle U _ {} ^ {}}    :
                              L                       ∗           =                               [                                                             2                                    0                                                   5                                    7                ]         { displaystyle L _ {*} = { begin {bmatrix} 2 & 0  5 & 7  end {bmatrix}}}      va                     U         =                               [                                                             0                                    3                                                   0                                    0                ]           .       { displaystyle U = { begin {bmatrix} 0 & 3  0 & 0  end {bmatrix}}.}   Ning teskari tomoni                               L                       ∗                   { displaystyle L _ {*} ^ {}}     bu:
                              L                       ∗                        −             1           =                                             [                                                                     2                                        0                                                         5                                        7                  ]                         −             1           =                               [                                                             0.500                                    0.000                                                   −                   0.357                                    0.143                ]         { displaystyle L _ {*} ^ {- 1} = { begin {bmatrix} 2 & 0  5 & 7  end {bmatrix}} ^ {- 1} = { begin {bmatrix} 0.500 & 0.000  - 0.357 & 0.143  end {bmatrix}}}    .Endi biz quyidagilarni topamiz:
                    T         =         −                               [                                                             0.500                                    0.000                                                   −                   0.357                                    0.143                ]           ×                               [                                                             0                                    3                                                   0                                    0                ]           =                               [                                                             0.000                                    −                   1.500                                                   0.000                                    1.071                ]           ,       { displaystyle T = - { begin {bmatrix} 0.500 & 0.000  - 0.357 & 0.143  end {bmatrix}}  times { begin {bmatrix} 0 & 3  0 & 0  end {bmatrix} } = { begin {bmatrix} 0.000 & -1.500  0.000 & 1.071  end {bmatrix}},}                       C         =                               [                                                             0.500                                    0.000                                                   −                   0.357                                    0.143                ]           ×                               [                                                             11                                                   13                ]           =                               [                                                             5.500                                                   −                   2.071                ]           .       { displaystyle C = { begin {bmatrix} 0.500 & 0.000  - 0.357 & 0.143  end {bmatrix}}  times { begin {bmatrix} 11  13  end {bmatrix}} = { begin {bmatrix} 5.500  - 2.071  end {bmatrix}}.}   Endi bizda                               T                             { displaystyle T _ {} ^ {}}     va                               C                             { displaystyle C _ {} ^ {}}     va biz ularni vektorlarni olish uchun ishlatishimiz mumkin                               x        { displaystyle  mathbf {x}}     takroriy ravishda.
Avvalo, biz tanlashimiz kerak                                           x                        (             0             )         { displaystyle  mathbf {x} ^ {(0)}}    : biz faqat taxmin qilishimiz mumkin. Taxmin qanchalik yaxshi bo'lsa, algoritmni tezroq bajaradi.
Biz taxmin qilamiz:
                              x                       (             0             )           =                               [                                                             1.1                                                   2.3                ]           .       { displaystyle x ^ {(0)} = { begin {bmatrix} 1.1  2.3  end {bmatrix}}.}   Keyin hisoblashimiz mumkin:
                              x                       (             1             )           =                               [                                                             0                                    −                   1.500                                                   0                                    1.071                ]           ×                               [                                                             1.1                                                   2.3                ]           +                               [                                                             5.500                                                   −                   2.071                ]           =                               [                                                             2.050                                                   0.393                ]           .       { displaystyle x ^ {(1)} = { begin {bmatrix} 0 & -1.500  0 & 1.071  end {bmatrix}}  times { begin {bmatrix} 1.1  2.3  end { bmatrix}} + { begin {bmatrix} 5.500  - 2.071  end {bmatrix}} = { begin {bmatrix} 2.050  0.393  end {bmatrix}}.}                                 x                       (             2             )           =                               [                                                             0                                    −                   1.500                                                   0                                    1.071                ]           ×                               [                                                             2.050                                                   0.393                ]           +                               [                                                             5.500                                                   −                   2.071                ]           =                               [                                                             4.911                                                   −                   1.651                ]           .       { displaystyle x ^ {(2)} = { begin {bmatrix} 0 & -1.500  0 & 1.071  end {bmatrix}}  times { begin {bmatrix} 2.050  0.393  end { bmatrix}} + { begin {bmatrix} 5.500  - 2.071  end {bmatrix}} = { begin {bmatrix} 4.911  - 1.651  end {bmatrix}}.}                                 x                       (             3             )           =         ⋯         .               { displaystyle x ^ {(3)} =  cdots. ,}   Agar biz yaqinlashishni sinab ko'rsak, algoritm turlicha bo'lishini aniqlaymiz. Aslida, A matritsa diagonal ravishda ham dominant, ham ijobiy aniq emas, keyin aniq echimga yaqinlashish.
                              x          =                   A                       −             1                     b          =                               [                                                             −                   38                                                   29                ]         { displaystyle  mathbf {x} = A ^ {- 1}  mathbf {b} = { begin {bmatrix} -38  29  end {bmatrix}}}   kafolatlanmagan va, bu holda, bo'lmaydi.
Tenglama versiyasiga misol Deylik, berilgan k  tenglamalar qaerda x n   bu tenglamalarning vektorlari va boshlang'ich nuqtasi x 0 .Birinchi tenglamadan eching x 1  xususida                               x                       n             +             1           ,                   x                       n             +             2           ,         …         ,                   x                       n           .       { displaystyle x_ {n + 1}, x_ {n + 2},  dots, x_ {n}.}      Keyingi tenglamalar uchun oldingi qiymatlarni almashtiringx s.
Aniq qilish uchun bir misolni ko'rib chiqing.
                                                                        10                                   x                                       1                                  −                                   x                                       2                                  +                 2                                   x                                       3                                                 =                 6                 ,                                             −                                   x                                       1                                  +                 11                                   x                                       2                                  −                                   x                                       3                                  +                 3                                   x                                       4                                  =                 25                 ,                                             2                                   x                                       1                                  −                                   x                                       2                                  +                 10                                   x                                       3                                  −                                   x                                       4                                  =                 −                 11                 ,                                                            3                                   x                                       2                                  −                                   x                                       3                                  +                 8                                   x                                       4                                  =                 15.           { displaystyle { begin {array} {rrrrl} 10x_ {1} & - x_ {2} & + 2x_ {3} && = 6,  - x_ {1} & + 11x_ {2} & - x_ {3 } & + 3x_ {4} & = 25,  2x_ {1} & - x_ {2} & + 10x_ {3} & - x_ {4} & = - 11,  & 3x_ {2} & - x_ { 3} & + 8x_ {4} & = 15.  end {array}}}   Uchun hal qilish                               x                       1           ,                   x                       2           ,                   x                       3         { displaystyle x_ {1}, x_ {2}, x_ {3}}     va                               x                       4         { displaystyle x_ {4}}     beradi:
                                                                                          x                                       1                                                   =                                   x                                       2                                     /                  10                 −                                   x                                       3                                     /                  5                 +                 3                                   /                  5                 ,                                                               x                                       2                                                   =                                   x                                       1                                     /                  11                 +                                   x                                       3                                     /                  11                 −                 3                                   x                                       4                                     /                  11                 +                 25                                   /                  11                 ,                                                               x                                       3                                                   =                 −                                   x                                       1                                     /                  5                 +                                   x                                       2                                     /                  10                 +                                   x                                       4                                     /                  10                 −                 11                                   /                  10                 ,                                                               x                                       4                                                   =                 −                 3                                   x                                       2                                     /                  8                 +                                   x                                       3                                     /                  8                 +                 15                                   /                  8.           { displaystyle { begin {aligned} x_ {1} & = x_ {2} / 10-x_ {3} / 5 + 3/5,  x_ {2} & = x_ {1} / 11 + x_ { 3} / 11-3x_ {4} / 11 + 25/11,  x_ {3} & = - x_ {1} / 5 + x_ {2} / 10 + x_ {4} / 10-11 / 10,  x_ {4} & = - 3x_ {2} / 8 + x_ {3} /8+15/8.end {aligned}}}   Aytaylik, biz tanladik (0, 0, 0, 0)  boshlang'ich yaqinlashuvi sifatida birinchi taxminiy yechim tomonidan berilgan
                                                                                          x                                       1                                                   =                 3                                   /                  5                 =                 0.6                 ,                                                               x                                       2                                                   =                 (                 3                                   /                  5                 )                                   /                  11                 +                 25                                   /                  11                 =                 3                                   /                  55                 +                 25                                   /                  11                 =                 2.3272                 ,                                                               x                                       3                                                   =                 −                 (                 3                                   /                  5                 )                                   /                  5                 +                 (                 2.3272                 )                                   /                  10                 −                 11                                   /                  10                 =                 −                 3                                   /                  25                 +                 0.23272                 −                 1.1                 =                 −                 0.9873                 ,                                                               x                                       4                                                   =                 −                 3                 (                 2.3272                 )                                   /                  8                 +                 (                 −                 0.9873                 )                                   /                  8                 +                 15                                   /                  8                 =                 0.8789.           { displaystyle { begin {aligned} x_ {1} & = 3/5 = 0.6,  x_ {2} & = (3/5) /11+25/11=3/55+25/11=2.3272 ,  x_ {3} & = - (3/5) / 5 + (2.3272) /10-11/10=-3/25+0.23272-1.1=-0.9873,  x_ {4} & = - 3 (2.3272) / 8 + (- 0.9873) /8+15/8=0.8789.end {hizalanmış}}}   Olingan taxminlardan foydalanib, kerakli aniqlikka erishilgunga qadar takroriy protsedura takrorlanadi. Quyida to'rtta takrorlashdan so'ng taxminiy echimlar keltirilgan.
                                                                                          x                                       1                                                    x                                       2                                                    x                                       3                                                    x                                       4                                               0.6                                2.32727                                −                 0.987273                                0.878864                                             1.03018                                2.03694                                −                 1.01446                                0.984341                                             1.00659                                2.00356                                −                 1.00253                                0.998351                                             1.00086                                2.0003                                −                 1.00031                                0.99985           { displaystyle { begin {array} {llll} x_ {1} & x_ {2} & x_ {3} & x_ {4}  hline 0.6 & 2.32727 & -0.987273 & 0.878864  1.03018 & 2.03694 & -1.01446 & 0 .984341  1.00659 & 2.00356 & -1.00253 & 0.998351  1.00086 & 2.0003 & -1.00031 & 0.99985  end {array}}}   Tizimning aniq echimi (1, 2, −1, 1) .
Python va NumPy dan foydalanadigan misol Eritma vektorini ishlab chiqarish uchun quyidagi raqamli protsedura oddiygina takrorlanadi.
Import  achchiq  kabi  np ITERATION_LIMIT  =  1000 # matritsani boshlang A  =  np . qator ([[ 10. ,  - 1. ,  2. ,  0. ],               [ - 1. ,  11. ,  - 1. ,  3. ],               [ 2. ,  - 1. ,  10. ,  - 1. ],               [ 0. ,  3. ,  - 1. ,  8. ]]) # RHS vektorini ishga tushirish b  =  np . qator ([ 6.0 ,  25.0 ,  - 11.0 ,  15.0 ]) chop etish ( "Tenglamalar tizimi:" ) uchun  men  yilda  oralig'i ( A . shakli [ 0 ]):     qator  =  [ " {0: 3g} * x {1} " . format ( A [ men ,  j ],  j  +  1 )  uchun  j  yilda  oralig'i ( A . shakli [ 1 ])]     chop etish ( "[ {0} ] = [ {1: 3g} ]" . format ( " + " . qo'shilish ( qator ),  b [ men ])) x  =  np . zeros_like ( b ) uchun  it_count  yilda  oralig'i ( 1 ,  ITERATION_LIMIT ):     x_new  =  np . zeros_like ( x )     chop etish ( "Takrorlash  {0} :  {1} " . format ( it_count ,  x ))     uchun  men  yilda  oralig'i ( A . shakli [ 0 ]):         s1  =  np . nuqta ( A [ men ,  : men ],  x_new [: men ])         s2  =  np . nuqta ( A [ men ,  men  +  1  :],  x [ men  +  1  :])         x_new [ men ]  =  ( b [ men ]  -  s1  -  s2 )  /  A [ men ,  men ]     agar  np . allclose ( x ,  x_new ,  rtol = 1e-8 ):         tanaffus     x  =  x_new chop etish ( "Qaror:  {0} " . format ( x )) xato  =  np . nuqta ( A ,  x )  -  b chop etish ( "Xato:  {0} " . format ( xato )) Chiqarishni ishlab chiqaradi:
Tizim  ning  tenglamalar : [  10 * x1  +   - 1 * x2  +    2 * x3  +    0 * x4 ]  =  [   6 ] [  - 1 * x1  +   11 * x2  +   - 1 * x3  +    3 * x4 ]  =  [  25 ] [   2 * x1  +   - 1 * x2  +   10 * x3  +   - 1 * x4 ]  =  [ - 11 ] [   0 * x1  +    3 * x2  +   - 1 * x3  +    8 * x4 ]  =  [  15 ] Takrorlash  1 :  [  0.   0.   0.   0. ] Takrorlash  2 :  [  0.6          2.32727273  - 0.98727273   0.87886364 ] Takrorlash  3 :  [  1.03018182   2.03693802  - 1.0144562    0.98434122 ] Takrorlash  4 :  [  1.00658504   2.00355502  - 1.00252738   0.99835095 ] Takrorlash  5 :  [  1.00086098   2.00029825  - 1.00030728   0.99984975 ] Takrorlash  6 :  [  1.00009128   2.00002134  - 1.00003115   0.9999881  ] Takrorlash  7 :  [  1.00000836   2.00000117  - 1.00000275   0.99999922 ] Takrorlash  8 :  [  1.00000067   2.00000002  - 1.00000021   0.99999996 ] Takrorlash  9 :  [  1.00000004   1.99999999  - 1.00000001   1.         ] Takrorlash  10 :  [  1.   2.  - 1.   1. ] Qaror :  [  1.   2.  - 1.   1. ] Xato :  [   2.06480930e-08   - 1.25551054e-08    3.61417563e-11    0.00000000e + 00 ] O'zboshimchalik bilan echish uchun dastur. Matlab yordamida tenglamalar Quyidagi kod formuladan foydalanadi                              x                       men                        (             k             +             1             )           =                               1                           a                               men                 men                       (                                     b                               men               −                           ∑                               j                 <                 men                             a                               men                 j                             x                               j                                (                 k                 +                 1                 )               −                           ∑                               j                 >                 men                             a                               men                 j                             x                               j                                (                 k                 )              )          ,                  men         ,         j         =         1         ,         2         ,         …         ,         n       { displaystyle x_ {i} ^ {(k + 1)} = { frac {1} {a_ {ii}}}  chap (b_ {i} -  sum _ {j  i} a_ {ij} x_ {j} ^ {(k)}  right),  quad i, j = 1,2,  ldots , n}    
funktsiya  x = sherzod_ ( A, b, x, takrorlar) uchun  men  =  1 : iters         uchun  j  =  1 : hajmi ( A , 1 )             x ( j )  =  ( 1 / A ( j , j ))  *  ( b ( j )  -  A ( j ,:) * x  +  A ( j , j ) * x ( j ));         oxiri     oxiri oxiri Shuningdek qarang  
Izohlar  
Adabiyotlar  
Gauss, Karl Fridrix  (1903), Werke  (nemis tilida), 9 , Göttingen: Köninglichen Gesellschaft der Wissenschaften .Golub, Gen H. ; Van Loan, Charlz F.  (1996), Matritsali hisoblashlar  (3-nashr), Baltimor: Jons Xopkins, ISBN  978-0-8018-5414-9  .Qora, Noel va Mur, Shirli. "Gauss-Zaydel usuli" . MathWorld  . Ushbu maqola maqoladagi matnni o'z ichiga oladi Gauss-Zeydel_moduli  kuni CFD-Wiki  bu ostida GFDL  litsenziya.
Tashqi havolalar  
Asosiy tushunchalar Muammolar Uskuna Dasturiy ta'minot