طريقة جاكوبي

في الجبر الخطي العددي ، تُعدّ طريقة جاكوبي (المعروفة أيضًا بطريقة تكرار جاكوبي ) خوارزمية تكرارية لإيجاد حلول نظام المعادلات الخطية ذي العناصر القطرية المهيمنة . يتم حساب قيمة كل عنصر قطري، ثم تُعوّض بقيمة تقريبية. تُكرّر هذه العملية حتى تتقارب. تُعتبر هذه الخوارزمية نسخة مُبسّطة من طريقة تحويل جاكوبي لقطرنة المصفوفات . سُمّيت هذه الطريقة نسبةً إلى كارل غوستاف جاكوبي .

وصف

يتركأx=ب{\displaystyle A\mathbf {x} =\mathbf {b} }ليكن نظامًا مربعًا من n معادلة خطية، حيث:أ=[أ11أ12أ1نأ21أ22أ2نأن1أن2أنن]،x=[x1x2xن]،ب=[ب1ب2بن].{\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}}.}

متىأ{\displaystyle A}وب{\displaystyle \mathbf {b} }معروفة، وx{\displaystyle \mathbf {x} }إذا كانت القيمة غير معروفة، فيمكننا استخدام طريقة جاكوبي لتقريبهاx{\displaystyle \mathbf {x} }المتجهx(0){\displaystyle \mathbf {x} ^{(0)}}يشير إلى تخميننا الأولي لـx{\displaystyle \mathbf {x} }(غالباًxأنا(0)=0{\displaystyle \mathbf {x} _{i}^{(0)}=0}لأنا=1،2،...،ن{\displaystyle i=1,2,...,n}نرمز إلىx(ك){\displaystyle \mathbf {x} ^{(k)}}باعتبارها التقريب أو التكرار رقم k لـx{\displaystyle \mathbf {x} }، وx(ك+1){\displaystyle \mathbf {x} ^{(k+1)}}هي التكرار التالي (أو k + 1) لـx{\displaystyle \mathbf {x} }.

صيغة قائمة على المصفوفة

ثم يمكن تحليل A إلى مكون قطري D ، وجزء مثلثي سفلي L ، وجزء مثلثي علوي U :أ=د+ل+يوأيند=[أ11000أ22000أنن] و ل+يو=[0أ12أ1نأ210أ2نأن1أن20].{\displaystyle A=D+L+U\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 }}L+U={\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}}.}ثم يتم الحصول على الحل بشكل تكراري عبر

x(ك+1)=د-1(ب-(ل+يو)x(ك)).{\displaystyle \mathbf {x} ^{(k+1)}=D^{-1}(\mathbf {b} -(L+U)\mathbf {x} ^{(k)}).}

الصيغة القائمة على العناصر

الصيغة القائمة على العناصر لكل صفأنا{\displaystyle i}وبالتالي:xأنا(ك+1)=1أأناأنا(بأنا-جأناأأناجxج(ك))،أنا=1،2،...،ن.{\displaystyle x_{i}^{(k+1)}={\frac {1}{a_{ii}}}\left(b_{i}-\sum _{j\neq i}a_{ij}x_{j}^{(k)}\right),\quad i=1,2,\ldots ,n.}حسابxأنا(ك+1){\displaystyle x_{i}^{(k+1)}}يتطلب كل عنصر فيx(ك){\displaystyle \mathbf {x} ^{(k)}}باستثناء نفسها. على عكس طريقة جاوس-سيدل ، لا يمكننا الكتابة فوقها.xأنا(ك){\displaystyle x_{i}^{(k)}}معxأنا(ك+1){\displaystyle x_{i}^{(k+1)}}حيث ستكون هذه القيمة مطلوبة لبقية العمليات الحسابية. الحد الأدنى لحجم التخزين هو متجهان بحجم n .

الخوارزمية

المدخلات: القيمة الابتدائية x (0) للحل ، المصفوفة A (ذات العناصر القطرية المهيمنة) ، متجه الطرف الأيمن b ، معيار التقارب. المخرجات: الحل عند الوصول إلى التقارب. ملاحظات: رمز زائف مبني على الصيغة العنصرية المذكورة أعلاه. k = 0 طالما لم يتم الوصول إلى التقارب، كرر من أجل i := 1 خطوة حتى كرر σ = 0 من أجل j := 1 خطوة حتى n ، إذا كان j فإن σ = σ + a ij x j ( k ) نهاية نهاية x i ( k +1) = ( b iσ ) / a ii نهاية زيادة k نهاية

التقارب

الشرط القياسي للتقارب (لأي طريقة تكرارية) هو عندما يكون نصف قطر الطيف لمصفوفة التكرار أقل من 1:

ρ(د-1(ل+يو))<1.{\displaystyle \rho (D^{-1}(L+U))<1.}

الشرط الكافي (وليس الضروري) لتقارب الطريقة هو أن تكون المصفوفة A مهيمنة قطريًا بشكل صارم أو غير قابل للاختزال . تعني الهيمنة القطرية الصارمة أن القيمة المطلقة لعنصر القطر في كل صف أكبر من مجموع القيم المطلقة للعناصر الأخرى.

|أأناأنا|>جأنا|أأناج|.{\displaystyle \left|a_{ii}\right|>\sum _{j\neq i}{\left|a_{ij}\right|}.}

تتقارب طريقة جاكوبي أحيانًا حتى لو لم يتم استيفاء هذه الشروط.

لاحظ أن طريقة جاكوبي لا تتقارب لكل مصفوفة متناظرة موجبة التحديد . على سبيل المثال، أ=(29212611115)د-1(ل+يو)=(022912913016550)ρ(د-1(ل+يو))1.0661.{\displaystyle A={\begin{pmatrix}29&2&1\\2&6&1\\1&1&{\frac {1}{5}}\end{pmatrix}}\quad \Rightarrow \quad D^{-1}(L+U)={\begin{pmatrix}0&{\frac {2}{29}}&{\frac {1}{29}}\\{\frac {1}{3}}&0&{\frac {1}{6}}\\5&5&0\end{pmatrix}}\quad \Rightarrow \quad \rho (D^{-1}(L+U))\approx 1.0661\,.}

أمثلة

سؤال نموذجي

نظام خطي على الشكلأx=ب{\displaystyle Ax=b}مع التقدير الأوليx(0){\displaystyle x^{(0)}}يُعطى بواسطة

أ=[2157]، ب=[1113]وx(0)=[11].{\displaystyle A={\begin{bmatrix}2&1\\5&7\\\end{bmatrix}},\ b={\begin{bmatrix}11\\13\\\end{bmatrix}}\quad {\text{and}}\quad x^{(0)}={\begin{bmatrix}1\\1\\\end{bmatrix}}.}

نستخدم المعادلةx(ك+1)=د-1(ب-(ل+يو)x(ك)){\displaystyle x^{(k+1)}=D^{-1}(b-(L+U)x^{(k)})}، كما هو موضح أعلاه، لتقديرx{\displaystyle x}أولاً، نعيد كتابة المعادلة بصيغة أكثر ملاءمةد-1(ب-(ل+يو)x(ك))=تيx(ك)+ج{\displaystyle D^{-1}(b-(L+U)x^{(k)})=Tx^{(k)}+C}، أينتي=-د-1(ل+يو){\displaystyle T=-D^{-1}(L+U)}وج=د-1ب{\displaystyle C=D^{-1}b}انطلاقاً من القيم المعروفة د-1=[1/2001/7]، ل=[0050]ويو=[0100].{\displaystyle D^{-1}={\begin{bmatrix}1/2&0\\0&1/7\\\end{bmatrix}},\ L={\begin{bmatrix}0&0\\5&0\\\end{bmatrix}}\quad {\text{and}}\quad U={\begin{bmatrix}0&1\\0&0\\\end{bmatrix}}.} نحددتي=-د-1(ل+يو){\displaystyle T=-D^{-1}(L+U)}مثل تي=[1/2001/7]{[00-50]+[0-100]}=[0-1/2-5/70].{\displaystyle T={\begin{bmatrix}1/2&0\\0&1/7\\\end{bmatrix}}\left\{{\begin{bmatrix}0&0\\-5&0\\\end{bmatrix}}+{\begin{bmatrix}0&-1\\0&0\\\end{bmatrix}}\right\}={\begin{bmatrix}0&-1/2\\-5/7&0\\\end{bmatrix}}.} إضافي،ج{\displaystyle C}يُعثر عليه على النحو التالي: ج=[1/2001/7][1113]=[11/213/7].{\displaystyle C={\begin{bmatrix}1/2&0\\0&1/7\\\end{bmatrix}}{\begin{bmatrix}11\\13\\\end{bmatrix}}={\begin{bmatrix}11/2\\13/7\\\end{bmatrix}}.} معتي{\displaystyle T}وج{\displaystyle C}بعد الحساب، نقدرx{\displaystyle x}مثلx(1)=تيx(0)+ج{\displaystyle x^{(1)}=Tx^{(0)}+C}: x(1)=[0-1/2-5/70][11]+[11/213/7]=[5.08/7][51.143].{\displaystyle x^{(1)}={\begin{bmatrix}0&-1/2\\-5/7&0\\\end{bmatrix}}{\begin{bmatrix}1\\1\\\end{bmatrix}}+{\begin{bmatrix}11/2\\13/7\\\end{bmatrix}}={\begin{bmatrix}5.0\\8/7\\\end{bmatrix}}\approx {\begin{bmatrix}5\\1.143\\\end{bmatrix}}.} ينتج عن التكرار التالي x(2)=[0-1/2-5/70][5.08/7]+[11/213/7]=[69/14-12/7][4.929-1.714].{\displaystyle x^{(2)}={\begin{bmatrix}0&-1/2\\-5/7&0\\\end{bmatrix}}{\begin{bmatrix}5.0\\8/7\\\end{bmatrix}}+{\begin{bmatrix}11/2\\13/7\\\end{bmatrix}}={\begin{bmatrix}69/14\\-12/7\\\end{bmatrix}}\approx {\begin{bmatrix}4.929\\-1.714\\\end{bmatrix}}.} تُكرر هذه العملية حتى الوصول إلى التقارب (أي حتىأx(ن)-ب{\displaystyle \|Ax^{(n)}-b\|}(صغير). الحل بعد 25 تكرارًا هو

x=[7.111-3.222].{\displaystyle x={\begin{bmatrix}7.111\\-3.222\end{bmatrix}}.}

مثال على السؤال 2

لنفترض أن لدينا النظام الخطي التالي:

10x1-x2+2x3=6،-x1+11x2-x3+3x4=25،2x1-x2+10x3-x4=-11،3x2-x3+8x4=15.{\displaystyle {\begin{aligned}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{aligned}}}

إذا اخترنا (0،    0) كتقريب أولي، فإن الحل التقريبي الأول يُعطى بواسطة x1=(6+0-(2*0))/10=0.6،x2=(25+0+0-(3*0))/11=25/11=2.2727،x3=(-11-(2*0)+0+0)/10=-1.1،x4=(15-(3*0)+0)/8=1.875.{\displaystyle {\begin{aligned}x_{1}&=(6+0-(2*0))/10=0.6,\\x_{2}&=(25+0+0-(3*0))/11=25/11=2.2727,\\x_{3}&=(-11-(2*0)+0+0)/10=-1.1,\\x_{4}&=(15-(3*0)+0)/8=1.875.\end{aligned}}} باستخدام التقريبات التي تم الحصول عليها، تُكرر العملية التكرارية حتى يتم الوصول إلى الدقة المطلوبة. فيما يلي الحلول التقريبية بعد خمس تكرارات.

x1{\displaystyle x_{1}}x2{\displaystyle x_{2}}x3{\displaystyle x_{3}}x4{\displaystyle x_{4}}
0.62.27272-1.11.875
1.047271.7159-0.805220.88522
0.932632.05330-1.04931.13088
1.015191.95369-0.96810.97384
0.988992.0114-1.01021.02135

الحل الدقيق للنظام هو (1،  -1 ، 1)   .

مثال بايثون

استيراد numpy كـ npITERATION_LIMIT = 1000# تهيئة المصفوفةA = np.array ([[ 10 . , -1 . , 2. , 0. ] ,[ - 1. ، 11. ، - 1. ، 3. ],[ 2. , - 1. , 10. , - 1. ],[ 0.0 , 3. , - 1. , 8. ]])# تهيئة متجه الطرف الأيمنb = np.array ([ 6 . , 25. , -11 . , 15. ] )# يطبع النظامprint ( "النظام:" )for i in range ( A . shape [ 0 ]):row = [ f " { A [ i , j ] } *x { j + 1 } " for j in range ( A . shape [ 1 ])]print ( f ' { " + " " .join ( row ) } = { b [ i ] } ' )مطبعة ()x = np.zeros_like ( b )for it_count in range ( ITERATION_LIMIT ):إذا كان عدد العناصر لا يساوي صفرًا :print ( f "التكرار { it_count } : { x } " )x_new = np.zeros_like ( x )for i in range ( A . shape [ 0 ]):s1 = np.dot ( A [ i , : i ], x [ : i ] )s2 = np.dot ( A [ i , i + 1 :], x [ i + 1 : ] )x_new [ i ] = ( b [ i ] - s1 - s2 ) / A [ i , i ]إذا كان x_new [ i ] == x_new [ i - 1 ]:استراحةإذا كانت الدالة np.allclose ( x , x_new , atol = 1e -10 , rtol = 0. ):استراحةx = x_newprint ( "الحل: " )اطبع ( x )الخطأ = np.dot ( A , x ) - bprint ( "خطأ:" )اطبع ( الخطأ )

طريقة جاكوبي الموزونة

تستخدم عملية التكرار الموزونة لجاكوبي معلمةω{\displaystyle \omega }لحساب التكرار كما

x(ك+1)=ωد-1(ب-(ل+يو)x(ك))+(1-ω)x(ك){\displaystyle \mathbf {x} ^{(k+1)}=\omega D^{-1}(\mathbf {b} -(L+U)\mathbf {x} ^{(k)})+\left(1-\omega \right)\mathbf {x} ^{(k)}}

معω=2/3{\displaystyle \omega =2/3}كونه الخيار المعتاد. [ 1 ] من العلاقةل+يو=أ-د{\displaystyle L+U=A-D}ويمكن التعبير عن ذلك أيضاً على النحو التالي:

x(ك+1)=ωد-1ب+(أنا-ωد-1أ)x(ك)=x(ك)+ωد-1ر(ك)،{\displaystyle {\begin{aligned}\mathbf {x} ^{(k+1)}&=\omega D^{-1}\mathbf {b} +\left(I-\omega D^{-1}A\right)\mathbf {x} ^{(k)}\\&=\mathbf {x} ^{(k)}+\omega D^{-1}\mathbf {r} ^{(k)},\end{aligned}}}

أينر(ك)=ب-أx(ك){\displaystyle \mathbf {r} ^{(k)}=\mathbf {b} -A\mathbf {x} ^{(k)}}هو الباقي الجبري في التكرارك{\displaystyle k}.

التقارب في الحالة الموجبة المحددة المتناظرة

إذا كانت مصفوفة النظامأ{\displaystyle A}إذا كانت متماثلة وموجبة التحديد ، فيمكن إثبات التقارب.

يتركج=جω=أنا-ωد-1أ{\displaystyle C=C_{\omega }=I-\omega D^{-1}A}لتكن مصفوفة التكرار. عندئذٍ، يكون التقارب مضمونًا لـ

ρ(جω)<10<ω<2λالأعلى(د-1أ)،{\displaystyle \rho (C_{\omega })<1\quad \Longleftrightarrow \quad 0<\omega <{\frac {2}{\lambda _{\text{max}}(D^{-1}A)}}\,,}

أينλالأعلى{\displaystyle \lambda _{\text{max}}}هي القيمة الذاتية القصوى.

يمكن تقليل نصف القطر الطيفي إلى الحد الأدنى لاختيار معين لـω=ωاختياري{\displaystyle \omega =\omega _{\text{opt}}}كما يلي مينωρ(جω)=ρ(جωاختياري)=1-2κ(د-1أ)+1لωاختياري:=2λمين(د-1أ)+λالأعلى(د-1أ)،{\displaystyle \min _{\omega }\rho (C_{\omega })=\rho (C_{\omega _{\text{opt}}})=1-{\frac {2}{\kappa (D^{-1}A)+1}}\quad {\text{for}}\quad \omega _{\text{opt}}:={\frac {2}{\lambda _{\text{min}}(D^{-1}A)+\lambda _{\text{max}}(D^{-1}A)}}\,,} أينκ{\displaystyle \kappa }هو رقم حالة المصفوفة .

انظر أيضاً

مراجع

  1. سعد ، يوسف (2003). الطرق التكرارية للأنظمة الخطية المتفرقة (  الطبعة الثانية). SIAM . ص 414. ISBN  0898715342.