- الطرائق التكرارية لحل أنظمة المعادلات الخطية Iterative Methods for Solving Linear Systems
الأنظمة الخطية التي تنشأ في الكثير من التطبيقات الهندسية والعلمية تكون مصفوفة معاملاتها عبارة عن مصفوفة هشة , أي المصفوفة التي تكون معظم عناصرها أصفاراً وذات سعة كبيرة .وإذا تم استخدام الطرائق المباشرة لحل هذة الأنظمة فسوف يتطلب ذلك جهد حسابي كبير ( وناتج معظمة أصفاراً), وتحتاج إلى سعة كبيرة ( غير ضرورية ) في ذاكرة الحاسوب والتي قد لايمكن توفرها . لهذا السبب فإن الكثير من الباحثين الذين تواجههم مثل هذه الأنظمة . تعد الطرائق التكرارية طرائق تقريبية أي أنها لا تحسب الحل مباشرة وإنما تبدأ من حل تقريبي وليكن x^0 ، وتحسب متتالية من المتجهات ∞^{X^(k)] _(k=0] والتي يُتأمل أن تتقارب إلى الحل المضبوط x. ويمكن توضيح ذلك بالشكل التالي:
X^(0) →X^(1)→X^(2)→⋯X^(k)→⋯→X
الفكرة الرئيسية لهذه الطرائق هي كتابة النظام الخطي Ax=b , حيث أن A مصفوفة مربعة من النوع n×n بالشكل المساوي : x=Tx+C
حيث أن T مصفوفة مربعة من النوع n×n و c متجه عمود ذو البعد n . بعد اختيار التقريب الابتدائي X^0 ,
نحسب متتالية المتجهات ∞^{X^(k) ]_(k=0] باستخدام الصيغة التكرارية: x^(k)=Tx^(k-1 )+c
من أجل k≥1 . تعتمد المصفوفة Tفي تكوينها على المصفوفة A أما المتجه فإن عناصره تستنتج من المصفوفة A والمتجه b. هناك عدة أساليب لكتابة المصفوفة T والمتجه c سوف ندرس أسلوبين وهما : جاكوبي , جاوس – سيدل
بداية نكتب النظام الخطي AX=b بالشكل التالي:
- a_11 x_1+a_12 x_2+⋯.+a_1n x_n=b_1
- a_21 x_1+a_22 x_2+⋯.+a_2n x_n=b_2
- a_n1 x_1+a_n2 x_2+⋯.+a_nn x_n=b_n
ونفرض أن i=1,2,…….,n ; a_ii≠0 (وإذا كان a_ii=0 لقيمة معينة من قيم i فيمكن تبديل المعادلات بصورة مناسبة ). من مجموعة المعادلات السابقة يمكننا أن نكتب العلاقات التالية التي تعطي قيم المتغيرات x_1 ,x_2,….,x_n بدلالة هذه القيم نفسها
- [ x_1=-1/a_11 [a_12 x_2+⋯+a_1n x_n-b_1
- [x_2=-1/a_22 [a_21 x_1+a_23 x_3+⋯+a_2n x_n-b_2
- [x_n=-1/a_nn [a_n1 x_1+a_n2 x_2+⋯+a_(n,n-1) x_(n-1)-b_n
وللاختصار يمكن صياغة النظام السابق بالصورة التالية: [x_i=1/a_ii [b_i-∑_(k=1)^n a_ik x^k
a_ii≠0 , k≠i لكل i=1,2,….,n و k≥1 . عادة فإننا نعيد ترتيب المعادلات والمتغيرات (المجاهيل ) بحيث نحقق قدر الاستطاعة شرط السيطرة القطرية (diagonal dominance) والذي يعني أن القيمة المطلقة لأي عنصر قطري a_ii تكون أكبر من – أو تساوي – مجموع القيم المطلقة للعناصر الأخرى في صفه (الصف رقم i ) ونعبر عن ذلك بالمتباينة :
|a_ii |≥∑_■(j=1@j≠i)^n[|a_ij |] ; i=1,2,…..n|
- طريقة جاكوبي التكرارية: في هذه الطريقة نبدأ بقيمة تقريبية أولية للمجاهيل ولتكن
(x^(0)=x_1^(0) ,x_2^(0),…..x_n^(0
ثم نعوض بهذه القيم في الطرف الأيمن في نظام المعادلات السابق بالصورة الأتية [(x_i^(k )=1/a_ii [b_i-∑_■(j=1@j≠i)^n[a_ij x_j^(k-1 لكل i=1,2,….,n و k≥1. لنحصل على التقريب الأول للمجاهيل وهو
(x^(1)=x_1^(1) ,x_2^(1),…..x_n^(1
ثم نكرر العملية للحصول على التقريب الثاني (x^(2 )=x_1^(2) ,x_2^(2),…..x_n^(2
ولنصل إلى الدقة المطلوبة والتي تحقق المتباينات التالية x_i^(k)-x_i^(k-1) ‖<∈_i i=1,2,……,n ‖
كذلك يمكن كتابتها بالشكل المصفوفي كالتالي: x^((k) )=T_J X^((K-1) )+c
حيث أن k≥1 والمصفوفة T_J والمتجه C كما هي معرفة سابقاً. يمكن استنتاج الشكل المصفوفي لطريقة جاكوبي التكرارية كما يلي :
أولاً نوزع المصفوفة A إلى حاصل جمع المصفوفات: A=D-L-U بحيث D تمثل المصفوفة القطرية وL تمثل المثلث السفلي من المصفوفة وU تمثل المثلث العلوي من المصفوفة وبذلك يمكن تحويل النظام الخطي Ax=b إلى الشكل D-L-U)x=b) والذي منه نحصل على ( Dx)-(L+U)x=b→Dx=(L+U)x+b)→x=D^(-1) (L+U)x+D^(-1) b )
وبالتالي يكون لدينا الصيغة التكرارية لطريقة جاكوبي حيث أن : c=D^(-1) b و (T_J=D^(-1) (L+U
- خوارزمية: طريقة جاكوبي التكرارية: تتضمن الخوارزمية كيفية استخدام طريقة جاكوبي التكرارية . نشير هنا إلى أن البرنامج الذي ينتج من استخدام هذه الخوارزمية لايُخزن جميع متجهات المتتالية وإما يخزن متجهين متتاليين فقط , وبالتالي يستطيع طباعة نتيجة تكرارين متتاليين فقط وهما , حسب رموز الخوارزمية x_i وy_i لكل i=1,2,3……..,n
إذا أعطينا عدد المجاهيل n, عناصر المصفوفة A , المتجهb , المتجه الابتدائي y=x^0 , التفاوت المسموح به Tol والعدد الأقصى للتكرارات M فإن الخوارزمية توجد حل تقريبي y للنظام الخطي Ax=b
- الخطوة 1: ضع k=1
- الخطوة 2: بينما k≤M أعمل الخطوات 3-6
- الخطوة 3: من أجل i=1,2,……….n احسب
[x_i=1/a_ii [b_i-∑_■(j=1@j≠i)^n a_ij y_j
- الخطوة 4: إذا كان ‖ Tol ≤ ‖x-y فاكتب الحل التقريبي المطلوب هو " i=1,2,….,n ,x_i ", قف .
- الخطوة 5: ضع k=k+1
- الخطوة 6: من أجل i=1,2,….,n ضع y_i=x_i
- الخطوة 7: اكتب " لم نحصل على الحل التقريبي المطلوب بعد M تكرار" , قف .
- ملاحظات:
يتضح من الخطوة 3 في خوارزمية جاكوبي التكرارية أنه يجب أن يكون a_ii≠0 من أجل i=1,2,….,n , لذلك إذا كانت المصفوفة A غير شاذة وأحد عناصر قطرها يكون مساوياً للصفر فإنه يجب إعادة ترتيب المعادلات بحيث يكون عناصر القطر لا تساوي الصفر
الخطوة الرابعة هي خطوة الوقوف وتتضمن شرط الوقوف: ‖(X^(K)-X^(K-1)) ‖≤∈
من أجل k≥1 حيث أن ( X^(K و (X^(K-1 الحلين التقريبيين عند التكراريين k-1 و k على الترتيب . هنا ∈= 5×[t^[10 حيث tأكبر من أو يساوي 1 , عدد صحيح هو الدقة المطلوبة للحل التقريبي أو مايسمى بالتفاوت المسموح به حول الحل . في الواقع يوجد شروط أخرى لإيقاف الحسابات نذكر منها الشرط : ‖(X^(K)-X^(K-1)) ‖/‖X^(K) ‖ ≤∈
- مثال 1: لنظام الخطي التالي :
- E_1: 10x_1-x_2+2x_3 = 6
- E_2:-x_1+11x_2-x_3+3x_4= 25
- E_3:2x_1-x_2+10x_3-x_4= -11
- E_4: 3x_2-x_3+8 x_4= 15
حل وحيد x=[1,2,-1,1]^T . استخدم طريقة جاكوبي التكرارية لإيجاد حل تقريبي إلى x بحيث x^(0)=[0,0,0,0]^t باستخدام معيار التوقف (X^(K)-X^(K-1) ‖/‖X^(K) ‖ ≤10^(-3)‖ الحل : من مجموعة المعادلات السابقة يمكننا أن نكتب العلاقات التالية التي تعطي قيم المتغيرات x_1 ,x_2,….,x_n بدلالة هذه القيم نفسها:
- x_1=1/10 x_2-1/5 x_3+3/5
- x_2=1/11 x_1+1/11 x_3-3/11 x_4+25/11
- x_3=-1/5 x_1+1/10 x_2+1/10 x_4-11/10
- x_4= -3/8 x_2+1/8 x_3+3/5
ثم نعوض بقيم x^(0)=[0,0,0,0]^t في الطرف الأيمن في نظام المعادلات السابق بالصورة الأتية
- x_1^(1)=1/10 x_2^(0)-1/5 x_3^(0)+3/5 =0.6000
- x_2^(1)=1/11 x_1^(0)+1/11 x_3^(0)-3/11 x_4^(0)+25/11 =2.2727
- x_3^(1)=-1/5 x_1^(0)+1/10 x_2^(0)+1/10 x_4^(0)-11/10=-1.1000
- x_4^(1)= -3/8 x_2^(0)+1/8 x_3^(0)+3/5 =1.8750
نكرر نفس الطريقة لنحصل على عدد من التكرارات كم هو موضح بالجدول : رقم 1
إلى أن نقف عند التكرار العاشر وذلك لكون : X^(10 )-X^(9) ) ‖/‖X^(10) ‖ =(8.0 ×[10]^-4)/(1.9998)≤[10[^-3)‖ في الواقع 0.0002= ‖x^(10)-x‖ .......................................................- طريقة جاوس – سايدل التكرارية :
- خوارزمية جاوس –سيدل التكرارية :
- الخطوة 1: ضع k=1
- الخطوة 2: بينما k≤M أعمل الخطوات 3-6
- الخطوة 3: من أجل i=1,2,……….n احسب
- الخطوة 4: إذا كان ‖Tol ≤ ‖x-y أطبع الحل التقريبي المطلوب هو " i=1,2,….,n ,x_i ", قف .
- الخطوة 5: ضع k=k+1
- الخطوة 6: من أجل i=1,2,….,n ضع y_i=x_i
- الخطوة 7: أطبع " لم نحصل على الحل التقريبي المطلوب بعد M تكرار" , قف .
- مثال 2: استخدم طريقة جاوس سايدل التكرارية لإيجاد تكرارين للأنظمة الخطية التالية :
- 4x_1+ 2x_2 + x_3= 11
- 2x_1+ x_2+ 4x_3= 16
- x_1+2x_2 = 3 -
- 4x_1+2x_2+ x_3= 11
- x_1+2x_2 = 3 -
- 2x_1+x_2+ 4x_3= 16
- x_1=11/4-1/2 x_2-1/4 x_3
- x_2=3/2+1/2 x_1
- x_3=4-1/2 x_1-1/4 x_2
- x_1^((1))=11/4-1/2-1/4=2
- x_2^((1))=3/2+1/2 (2)=5/2
- x_3^((1) )=4-1/2 (2)-1/4 (5/2)=19/8
- x_1^(2)=11/4-1/2(5/2)-1/4(19/8)=29/32
- x_2^(2)=3/2+1/2 (29/32)=125/64
- x_3^(2)=4-1/2 (29/32)-1/4 (125/64)=783/256
- مثال3: أوجدي حل النظام الخطي بطريقتين ؟
- 4x_1-x_2+x_3=1
- x_1+〖3x〗_2+x_3=4
- x_1+2x_2+5x_3=2
- باستخدام طريقة جاكوبي التكرارية لإيجاد حلاً تقريبياً للنظام الخطي
- x_1^(k)=1/4 x_2^(k-1)-1/4 x_3^(k-1)+1/4
- x_2^(k)=-1/3 x_1^(k-1)-1/3 x_3^((k-1)+4/3
- x_3^(k) =-1/5 x_1^(k-1)-2/5 x_2^(k-1) +2/5
- x_1^(1)=1/4 x_2^(0)-1/4 x_3^(0)+1/4
- x_2^(1)=-1/3 x_1^(0)-1/3 x_3^(0)+4/3
- x_3^(1) =-1/5 x_1^(0)-2/5 x_2^(0)+2/5
- x_1^(1)=1/4 (0)-1/4 (0)+1/4=1/4
- x_2^(1)=-1/3 (1)-1/3 (0)+4/3=1
- x_3^(1) =-1/5 (1)-2/5 (0)+2/5=1/5
- x_1^(2)=1/4 x_2^(1)-1/4 x_3^(1)+1/4=1/4 (1)-1/4 (1/5)+1/4=0.45
- x_2^(2)=-1/3 x_1^(1)-1/3 x_3^(1)+4/3=-1/3 (1/4)-1/3 (1/5)+4/3=1.18333
- x_3^(2) =-1/5 x_1^(1) -2/5 x_2^(1 )+2/5=-1/5 (1/4)-2/5 (1)+2/5=-0.05
k | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
x_1^k | 0.0000 | 0.6000 | 1.0473 | 0.9326 | 1.0152 | 0.9890 | 1.0032 | 0.9981 | 1.0006 | 0.9997 | 1.0001 |
x_2^k | 0.0000 | 2.2727 | 1.7159 | 2.053 | 1.9537 | 2.0114 | 1.9922 | 2.0023 | 1.9987 | 2.0004 | 1.9998 |
x_3^k | 0.0000 | -1.1000 | -0.8052 | -1.0493 | -0.9681 | -1.0103 | -0.9945 | -1.0020 | -0.9990 | -1.0004 | -0.9998 |
x_4^k | 0.0000 | 1.8750 | 0.8852 | 1.1309 | 0.9739 | 1.0214 | 0.9944 | 1.0036 | 0.9989 | 1.0006 | 0.9998 |
- باستخدام طريقة جاوس –سيدل التكرارية لإيجاد حلاً تقريبياً للنظام الخطي:
- x_1^(k)=1/4 x_2^(k-1)-1/4 x_3^(k-1)+1/4
- x_2^(k)=-1/3 x_1^(k)-1/3 x_3^(k-1)+4/3
- x_3^(k)=-1/5 x_1^(k )-2/5 x_2^(k)+2/5
- x_1^(1)=1/4 x_2^(0)-1/4 x_3^(0)+1/4
- x_2^(1)=-1/3 x_1^(1)-1/3 x_3^(0)+4/3
- x_3^(1 )=-1/5 x_1^(1) -2/5 x_2^(1 )+2/5
k | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
x_1^k | 0.25000 | 0.45000 | 0.55833 | 0.59083 | 0.59833 | 0.59978 |
x_2^k | 1.00000 | 1.18333 | 1.20000 | 1.20167 | 1.20028 | 1.20017 |
x_3^k | 0.20000 | -0.05000 | -0.16333 | -0.19167 | -0.19883 | -0.19978 |
المراجع
- كتاب التحليل العددي - للمؤلفين: محمود أبو العز، محمد صلاح الدين السيد متولي، فتحي عبد السلام، 1427هـ / 2006م – مكتبة الرشد فرع الرياض .
- كتاب التحليل العددي - للمؤلف الدكتور أبو بكر أحمد السيد – الطبعة الأولى 1409هـ /1988م- دار القلم للنشر والتوزيع .
- كتاب الطرق العددية والتحليل العددي- للمؤلف أ.د أبو بكر أحمد السيد - الطبعة الأولى 1433هـ/ 2012م – دار حنين للنشر والتوزيع.
- كتاب التحليل العددي، عيسى بن عبد الله السعيد، قسم الرياضيات/ كلية العلوم / جامعة الملك سعود – 1432هـ /2011م
- Numerical Analysis - Richard L.Burden/J.Douglas Faires- Ninth Edition
موسوعات ذات صلة :
k | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
((x_1^k | 0.25000 | 0.60000 | 0.59417 | 0.59961 | 0.59988 |
((x_2^k | 1.25000 | 1.18333 | 1.19972 | 1.19970 | 1.19998 |
((x_3^k | -0.10000 | -0.19333 | -0.19872 | -0.19980 | -0.19997 |