51
م افزارمک نردی به ک محاسبات عدMATLAB « ت خطی های معادای حل دستگاه روش ه» مدرس: ان تاشک اشکلیه تحصی درجه و رشت مهندسی برق دکترای- نشگاهرس دا و مدیستمبرات گرایش س مخادی محاسبات عدمک به کMATLAB faradars.org/fvmth102 ﻓﺮادرسFaraDars.org

آموزش محاسبات عددی - بخش دوم

Embed Size (px)

Citation preview

Page 1: آموزش محاسبات عددی - بخش دوم

MATLABمحاسبات عددی به کمک نرم افزار

«روش های حل دستگاه های معادالت خطی»

:مدرساشکان تاشک

درجه و رشته تحصیلیمخابرات گرایش سیستم و مدرس دانشگاه-دکترای مهندسی برق

محاسبات عددیMATLABبه کمک

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 2: آموزش محاسبات عددی - بخش دوم

دومعناوين فصل

خطي معادالت هاي دستگاه حل :دوم فصل مقدمه -) MATLAB برنامه همراه به( تكراري غير هاي رهيافت -1

ناقص گوس روش- پيووتينگ يا قياسي نسبي محوريت با گوس - LU تجزيه روش -

) MATLAB برنامه همراه به( تكراري هاي رهيافت-2 ژاكوبي روش- سيدال-گوس روش -

2

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 3: آموزش محاسبات عددی - بخش دوم

مقدمه جرمن جبري معادالت دستگاه به مهندسي در بسياري مسائل حل•

.شود مي حال در شده داده نشان فنر-جرم سيستم براي مثال عنوان به•

واهدخ قرار جديد تعادلي وضعيت در سيستم نيروها، حذف با تعادل .گرفت

قابل خطي جبري معادالت دستگاه حل با ها جرم جديد موقعيت•.هستند محاسبه

دوم قانون طبق فنر، و جرم سيستم يك براي•:داريم نيوتن :است دستگاهاين حلمسئله حال،•

3

(K1+K2+(K3/2))x1-(K2+(K3/2))x2=W1

-(K2 +(K3/2))x1+(K2+(K3/2)+K4)x2-(K4+(K3/2))x3=W2

-(K4+(K3/2))x2+((K3/2)+K4+K5)x3=W3

K1=40N/cm,K2=K3=K4=20N/cm

K5=90N/cm ,W1=W2=W3=20N

20=3x0+2x30-1x07

20=3x30-2x50+1x30-

20=3x120+2x30-1x0+

Madt

ydMMgyKF s 2

2

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 4: آموزش محاسبات عددی - بخش دوم

ادامه رهيافت هاي محاسباتي

)m=n يا برابر مجهوالت و معادالت تعداد با هاي دستگاه براي البته( كلي فرم•

4

Ax b

m =n

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 5: آموزش محاسبات عددی - بخش دوم

اسامي پارامترهاي دستگاه معادالت خطي

)m=n( ضرايب ماتريس•

مجهوالت بردار•

معلومات بردار•

5

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 6: آموزش محاسبات عددی - بخش دوم

رهيافت هاي محاسباتي

مي تبدس مراحلي از كه هستند ثابتي اعداد پاسخ مستقيم، هاي روش در :مستقيم هاي رهيافت•.باشند مي گردكردن خطاهاي حاصل عدد اين كه آيند

هايحد س پي در پي اطالعات مبناي بر گام به گام هاي روش :تكراري يا مستقيم غير هاي رهيافت•.اند شده گذاري پايه مسئله، پاسخ براي اوليه

6

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 7: آموزش محاسبات عددی - بخش دوم

ادامه رهيافت هاي محاسباتيتكراري غير يا مستقيم هاي رهيافت•

.باشد صفر غير ضرايب ماتريس دترمينان يعني ناويژه ضرايب ماتريس :داشتن جواب شرط– :متداول هاي روش–ضرايب ماتريس معكوس .1كرامر روش .2حذفي هاي روش .3

Naive( گوس )ناقص( ساده روش * Gaussian Elimination(Pivoting( قياسي نسبي محوريت با گوس حذف روش * Gaussian Elimination(

LU تجزيه روش .4

7

bAx bAAxA 11 1 A IAA 1

bAx 1

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 8: آموزش محاسبات عددی - بخش دوم

ادامه رهيافت هاي محاسباتيIterative( تكراري يا مستقيم غير هاي رهيافت• Methods(

positive يا بايد حتماً ضرايب ماتريس :جواب داشتن شرط– definite يا و diagonally dominant شرايط( باشد .)تكراري هاي روش همگرايي كافي و الزم

:متداول هاي روش–ژاكوبي .1سيدال-گوس .2

8

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 9: آموزش محاسبات عددی - بخش دوم

هاي رهيافت مستقيم يا غيرتكراري

9

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 10: آموزش محاسبات عددی - بخش دوم

روش كرامر براي حل دستگاه هاي معادالت خطي

:دشرايط الزم براي قابل حل بودن يك دستگاه معادالت خطي به روش كرامر از قرار زير مي باش•.بايستي ناويژه و يا كامل مرتبه باشد Aماتريس ضرايب ) الف

آن الزمه هك بوده پذير معكوس ماتريس آن يعني :مربعي ماتريس يك بودن مرتبه كامل يا ناويژه تعريف :1 تذكر•.است صفر مخالف ماتريس دترمينان داشتن

ي)ها( ستون يا )ها(سطر از ضريبي نظر مورد ماتريس از اي )ها( ستون يا )ها(سطر كه صورتي در :2 تذكر• ويژه يسماتر آن ترتيب، بدين .شد خواهد صفر برابر ماتريس آن دترمينان آنگاه باشند، ماتريس آن از ديگري خطي گيوابست ضرايبي ماتريس چنين به مربوط خطي معادالت دستگاه در موجود معادالت ديگر عبارت به .است

.دارند هم به

10

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 11: آموزش محاسبات عددی - بخش دوم

روش كرامر براي حل دستگاه هاي معادالت خطي:براي حل دستگاه معادالت خطي به روش كرامر داريم•1 (

.بدست مي آيد bبا بردار Aامين ستون ماتريس jاز تعويض jAماتريس ) 2====================================================================================

دستگاه معادالت خطي روبرو را به روش :مثال.كرامر حل نماييد

در صفحه بعد-حل

11

),...,2,1()det()det( nj

AAx

j

j

2013020202020402020202080

321

321

321

xxxxxxxxx

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 12: آموزش محاسبات عددی - بخش دوم

روش كرامر براي حل دستگاه هاي معادالت خطي-ادامه حل مثال به روش كرامر

12

4.0)det()det(120000

202020204020202080

)det(3

33

AAxA

0.1)det()det(300000

1302020202020202080

)det(2

22

AAxA

3000001302020

204020202080

)det(

A

6.0)det()det(180000

1302020204020202020

)det(1

11

AAxA

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 13: آموزش محاسبات عددی - بخش دوم

روش حذف ساده گوس )Naive Gauss Elimination(

بيان رياضياتي ساده: مزايا•رايب، تنها در صورت غير صفر بودن ضرايب باال و يا پايين مثلثي ماتريس ض: محدوديت هاي روش•

.جواب دارد

augmented( افزوده ماتريس تشكيل• Matrix( بردار و ضرايب ماتريس پيوستن هم به حاصل :معلومات

13

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 14: آموزش محاسبات عددی - بخش دوم

گوسالگوريتمي روش حذف ساده دستورالعمل )Naive Gauss Elimination(

اگر: مرحله اول•

:روبرو تفريق عمليات انجام و در افزوده ماتريس از سطر اولين هاي درايه ضرب :دوم مرحله•

اوّلين هاي درآيه و مانند، مي باقي تغيير بدون ، b وA هاي ماتريس از ها سطر اوّلين ، مرحله اين در ، ترتيب بدين :سوم مرحله• زير يافته رمف تغيير دستگاه ، فوق عمليت انجام از حاصل نتيجه ، بنابراين . گردند مي صفر به تبديل زير در A ماتريس از ستون: است

(1)11 0a

(1)1

1 (1)11

ii

ama

1im(2) (1) (1)

1 1

(2) (1) (1)1 1

, 2 , 3, ... ,ij ij i j

i i i

j na a m ab b m b

(1)11a

(1) (1) (1) (1)111 12 1 1

(2) (2) (2)222 2 2

(2) (2) (2)2

. . .0 . . .

.. . . . .

.. . . . .

.. . . . .0 . . .

n

n

nn nn n

xa a a bxa a b

xa a b

14

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 15: آموزش محاسبات عددی - بخش دوم

گوسالگوريتمي روش حذف ساده ادامه دستورالعمل )Naive Gauss Elimination(

حالت در ترتيب بدين كه ، دهيم مي ادامه نيز سطرها ساير براي را روش همين•) فرض با البته( داشت خواهيم گام امين k در كلي ( ) 0k

kka

( )

( )1

kik

ik kk

ama

k امين سطر از ماتريس افزوده( 1) ( ) ( )

( 1) ( ) ( )

, 2 , 3 , ... ,k k kij ij ik kj

k k ki i ik k

j na a m ab b m b

(1) (1) (1) (1) (1)111 12 1, 1, 1 1

(2) (2) (2) (2)222 1, 1, 1 1

( ) ( ) ( ), 1

( 1) ( 1)11, 1 1,

( 1) ( 1), 1

0

0 00 0 0

0 0 0

k k n

k k n

k k kkkk k k kn

k kkk k k n

k knn k nn

xa a a a axa a a a

xa a axa a

xa a

(1)1(2)2

( )

( 1)1

( 1)

kk

kk

kn

bb

bb

b

15

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 16: آموزش محاسبات عددی - بخش دوم

گوسالگوريتمي روش حذف ساده ادامه دستورالعمل )Naive Gauss Elimination(

:هستند استخراج قابل زير ماتريسهاي نهايي، افزوده ماتريس روي از نهايت، در•

:آيد مي حاصل زير فرم به مثلثي باال ضرايب ماتريس يك )1

:باشد مي روبرو قرار به يافته ارتقاء معلومات بردار همچنين )2

.شوند مي محاسبه مجهوالت اول به آخر از حاضر دستگاه برطبق سپس•

16

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 17: آموزش محاسبات عددی - بخش دوم

حذف ساده گوس روش Matlabبرنامه function ngaussel(A,b)n=length(b);x=zeros(n,1);fprintf('\n');disp(' The augmented matrix is')augm =[A b]for k=1:n-1

for i=k+1:nm=A(i,k)/A(k,k);for j=k+1:n

A(i,j)=A(i,j)-m*A(k,j);endA(i,k)=m;b(i)=b(i)-m*b(k);

endendx(n)=b(n)/A(n,n);

for i=n-1:-1:1 S=b(i);

for j=i+1:nS=S-A(i,j)*x(j);endx(i)=S/A(i,i);

end% Print the resultsfprintf('\n');disp(' The transformed upper triangular augmented matrix C is =')fprintf('\n');for i=1:n

for j=1:nif (j<i) A(i,j)=0; end

endendC=[A b]fprintf('\n');disp(' Back substitution gives the vector solution')x

17

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 18: آموزش محاسبات عددی - بخش دوم

مثال حل دستگاه معادالت خطي به شيوه حذف ساده گوس

m32=2/1= 2m42=-2/1= -2

18

:كنيد حل ساده گوس روش به را زير معادالت دستگاه :مثال

:از است عبارت ، 1im ضرايب با طول در شده افزوده ماتريس

:داريم ديگر، معادله سه از معادله اولين ي آمده بدست هاي ضرب حاصل تفريق با

:داشت خواهيم هم آخر ي معادله از سوم معدله هاي ضرب حاصل تفريق با

درآيه محوري سطر اول m21=2/1= 2 m31=-1/1=-1

m41=3/1= 3

درآيه محوري سطر دوم

m43=2/-2 = -1

درآيه محوري سطر سوم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 19: آموزش محاسبات عددی - بخش دوم

:آيد يم حاصل زير مثلثي باال دستگاه آخر، معادله از سوم معادله هاي ضرب حاصل كردن كم با•

مثلثي االب دستگاه به شده اعمال معكوس با برگشتي جايگذاري دستورالعمل به مربوط عمليات•:دهد مي بدست را زير نتايج حاصل،

ادامه مثال حل دستگاه معادالت خطي به شيوه حذف ساده گوس

19

x1+x2+x3+x4 = 10x2-x3+3x4= 11-2x3- 2x4= -14

-x4= -4

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 20: آموزش محاسبات عددی - بخش دوم

نكات روش حذف ساده گوس

20

: مزاياروش سادگي *

:معايب.فرص پايه ي يه يادر يك وجود با ضرايب ماتريس براي كارآيي عدم * با درمقايسه نظراندازه از )عمودي( پايه درايه ي بودن كوچك بسيار *

.محوري سطر هاي درايه ساير صورت اين در كه Round-Off)( كردن گرد خطاي افزايش :نتيجه.شود دقيق غير جواب بردار يك به منجر مي تواند خطا

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 21: آموزش محاسبات عددی - بخش دوم

روش حذف گوس با محوريت نسبي قياسي )Pivoting Gaussian Elimination(

21

.باشند مي اصلي قطر روي بر صفر ها ي درآيه همان محور با درآيه از منظور :تذكر

):Pivoting(نكاتي چند از المان اتكا .اصلي قطر روي المان )1 متوقف اصلي قطر هاي المان از يك هر بودن صفر صورت در گوس ساده حذف روش فرآيند )2

.شد خواهد.شود اصالح بايد مشكل اين از اجتناب براي گوس ساده حذف روش )3

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 22: آموزش محاسبات عددی - بخش دوم

حذف گوس با محوريت نسبي قياسي ادامه روش )Pivoting Gaussian Elimination(

22

ترينبزرگ نمودن منتقل منظور به )ها ستون( متغيرها يا )سطرها( معادالت تعويض پيشنهادي روش *.است حذف عمل انجام از قبل اصلي قطر روي به المان

full ها ستون و سطرها هردو تعويض .شود مي ناميده pivoting روش اين * pivoting مي ناميده .شود

* Full pivoting پيشنهادي روش .شود نمي استفاده پيچيدگي علت به partial pivoting است.partial روش در * pivoting شود مي استفاده سطرها جابجايي از.

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 23: آموزش محاسبات عددی - بخش دوم

Partial Pivotingمثالي از

23

:شود انجام pivoting عمليات است الزم پس 1,1a = 0 چون :مثال *

Pivoting

)1(3

)1(2

)1(1

:

:

:

111121100112

r

r

r

1

1

1

)4(11

3

2

)4(1

)4(11

)4(223

)4(23

)4(22

)4(33

)4(33

axabx

axabx

abx

nnn

)4(3

)4(2

)4(1

)3(2

)3(22

)3(32

)3(3

)3(2

)3(1

:

:

:

3/43/40021100112

r

r

r

raar

r

r

)2(3

)2(2

)2(1

)1(1

)1(11

)1(31

)1(3

)1(1

)1(11

)1(21

)1(2

)1(1

:

:

:

12/12/3021100112

r

r

r

raar

raar

r

)3(3

)3(2

)3(1

:

:

:

211012/12/300112

r

r

r

111101122110

]|[ bA

111121100112

]|[ bA

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 24: آموزش محاسبات عددی - بخش دوم

)scaling(متناسب سازي

.در صورت كوچك بودن المان اتكا از ساير المان هاي سطر، خطاي ناشي از گرد كردن اهميت مي يابد•

.براي انتخاب المان اتكا پيشنهاد مي شود) Scaling(در چنين حالتي استفاده از روش متناسب سازي •

:)Scaling(روش متناسب سازي •

ن المان قبل از اعمال روش حذف گوس، بر روي ستون اول، كليه المان هاي ستون اول نرماليزه مي شوند يعني به بزرگتري–).موجود در سطر مربوطه تقسيم مي شوند

.سپس انتخاب المان اتكا انجام مي شود–

.روش حذف ساده گوس بكارگرفته مي شود–

انجام و متعاقباً pivotingنرماليزه شده، عمل 2در ستون nتا 2براي ستون دوم قبل از بكارگيري روش حذفي، المان هاي –.از روش حذفي استفاده مي شود

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 25: آموزش محاسبات عددی - بخش دوم

pivoting وروش حذف گوس با متناسب سازي

25

:Scalingمثال براي روش حذفي همراه با -نرماليزه كردن ستون اول:

3با 1جابجايي سطر )Pivoting(نرماليزه كردن ستون دوم:

اعمال حذف:

33119810332

10410523]|[ bA

333.00194.00286.0

3/1103/2105/3

1a

1041052398103323311

13

12

)1/3()1/2(RRRR

9596109297503311

0104.00516.0

96/197/52a

9596109297503311

23 )5/1( RR

6.766.760.00.00.920.970.50.0

0.30.30.10.1

104105239810332 فرادرس3311

FaraDars.org

Page 26: آموزش محاسبات عددی - بخش دوم

pivoting gauss elimination روش Matlabبرنامه function gaussel(A,b)% Solve the system Ax=b using naive

Gaussian eliminationn=length(b);x=zeros(n,1);fprintf('\n');disp(' The augmented matrix is =')augm =[A b]for i=1:n

d(i)=i;smax=0;for j=1:n

smax=max(smax,abs(A(i,j)));endc(i)=smax;

endfor k=1:n-1

rmax=0;for i=k:n

R=abs(A(d(i),k))/c(d(i));if (R>rmax)

26

j=I;rmax=R;

endenddk=d(j);d(j)=d(k);d(k)=dk;for i=k+1:n

m=A(d(i),k)/A(dk,k);for j=k+1:n

A(d(i),j)=A(d(i),j)-m*A(dk,j);endA(d(i),k)=m;

end end% Perform the back substitution.for k=1:n-1

for i=k+1:nb(d(i))=b(d(i))-b(d(k))*A(d(i),k);

endendx(n)=b(d(n))/A(d(n),n);for i=n-1:-1:1

S=b(d(i));for j=i+1:n

S=S-A(d(i),j)*x(j);endx(i)=S/A(d(i),i);

end

% Print the resultsdisp('The scale vector =‘)cdisp('The index vector at the end of the elimination process is =')dfprintf('\n');disp(' The transformed upper triangular augmented matrix C is =')fprintf('\n');for i=1:n

M(i,:)=A(d(i),:);endfor i=1:n

for j=1:nif (j<i) M(i,j)=0; end

endendC=[M b]fprintf('\n');disp(' Back substitution gives the vector solution')x

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 27: آموزش محاسبات عددی - بخش دوم

LUروش تجزيه ي

27

يك ،L اينجا در كه باشد مي U و Lماتريس دو ضرب حاصل به ضرايب ماتريس تبديل شامل ،LU ي تجزيه روش كه زماني .باشند مي خود اصلي قطر طول در واحد هاي درآيه با مثلثي باال ماتريس يك ،U و مثلثي پايين ماتريس:شود انجام زير طريق به تواند ميدستگاه حل آنگاه شوند، پيدا U وLهاي ماتريس Ax b

LUx b Ux y Ly bAx b

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 28: آموزش محاسبات عددی - بخش دوم

Uو Lانواع روش هاي يافتن ماتريس باال و پايين مثلثي

28

گوس حذف روش )2 و CroutوCholeski هاي روش )1 .شود مي پرداخته اول روش به تنها اينجا در * بدست اي گونه به را U ماتريس ضمن در و آوريم مي بدست آن اصلي قطر طول در صفر غير عناصر با را L ماتريس *

:)نمونه 4x4 ماتريس يك براي البته( باشد برقرار زير ماتريسي تساوي كه آوريم مي

براي و ها ستون راستاي در البته كنيم مي استفاده ساده گوس حذف روش از ،L مثلثي پايين ماتريس محاسبه براي *.شود مي استفاده فوق تساوي و معادله از U مثلثي باال ماتريس عناصر محاسبه

11 11 12 13 1412 13 14

21 22 21 22 23 2423 24

31 32 33 31 32 33 3434

41 42 43 44 41 42 43 44

0 0 0 10 0 0 1

0 0 0 10 0 0 1

l a a a au u ul l a a a au ul l l a a a aul l l l a a a a

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 29: آموزش محاسبات عددی - بخش دوم

:مثال روش كروت را براي حل دستگاه زير بكار بريد

:داشته باشد، آنگاه LUاگر ماتريس ، يك فاكتورگيري مستقيم

بدست ،A ماتريس هاي درآيه با ضرب حاصل هاي ماتريس هاي آيه در ي مقايسه و ،U در L كردن ضرب ي بوسيله: آوريم مي

)i( ماتريس از سطر اولين ضرب از L، ماتريس هاي ستون در Uكه آوريم مي ،بدست:

LUروش تجزيه مثالي از

29

1

2

3

4

1 1 1 1 102 3 1 5 311 1 5 3 2

3 1 7 2 18

xxxx

11 12 13 14

21 22 23 24

31 32 33 34

41 42 43 44

0 0 01 1 1 1 10 02 3 1 5 0 1

01 1 5 3 0 0 13 1 7 2 0 0 0 1

l u u ul l u u

Al l l ul l l l

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 30: آموزش محاسبات عددی - بخش دوم

LUادامه مثالي از روش تجزيه

30

(i)ماتريس از سطر اولين ضرب از L، ماتريس هاي ستون در U، كه آوريم مي بدست:

(ii)ماتريس از سطر دومين ضرب از L، ماتريس هاي ستون در U، داريم :

(iii)ماتريس از سطر سومين ضرب از L، ماتريس هاي ستون در U، داريم:

11

11 12 12

11 13 13

11 14 14

1,1 1,1 1,1 1.

ll u ul u ul u u

21

21 12 22 22 21 12

21 13 22 23 23 21 13 22

21 14 22 24 24 21 14 22

2,3 3 1,

1 (1 ) / 1,5 (5 ) / 3.

ll u l l l ul u l u u l u ll u l u u l u l

31

31 12 32 32 31 12

31 13 32 23 33 33 31 13 32 23

31 14 32 24 33 34 34 31 14 32 24 33

1,1 1 2,

5 5 2,3 (3 ) / 1

ll u l l l ul u l u l l l u l ul u l u l u u l u l u l

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 31: آموزش محاسبات عددی - بخش دوم

LUادامه مثالي از روش تجزيه

31

(iv)ماتريس از سطر چهارمين ضرب از L، ماتريس هاي ستون در U، داريم:

:با برابرند U و L هاي ماتريس بنابراين

و

: آوريم مي بدست را زير نتايج ،Ly=b مثلثي پايين دستگاه در پيشرونده جايگذاري اعمال با1

2

3

4

10,31 2(10) 11,[ 2 10 2(11)] /( 2) 7,

[18 3(10) 2(11) 2(7)] 4

yyyy

1 1 1 10 1 1 3

U=0 0 1 10 0 0 1

1 0 0 02 1 0 0

L=1 2 2 0

3 2 2 1

122,277

3443244214414444344324421441

23421341434323421341

ulululllulululululllulul

41

41 12 42 42 41 12

3,1 1 2,

ll u l l l u

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 32: آموزش محاسبات عددی - بخش دوم

LUادامه مثالي از روش تجزيه

32

:آوريم مي بدست هاx براي را زير مقادير ،Ux=y مثلثي باال دستگاه در پسرو جايگذاري با نهايت، در

1

2

3

4

10 4 3 2 1,[11 4 3(3)] 2,

7 4 3,4

xxxx

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 33: آموزش محاسبات عددی - بخش دوم

LUروش تجزيه Matlabبرنامه function lufact(A,b)% Solve the system Ax=b using the LU

decomposition.n=length(b);y=zeros(n,1);x=zeros(n,1);fprintf('\n');for i=1:n

U(i,i)=1;endL(1,1)=A(1,1)/U(1,1);for j=2:n

L(j,1)=A(j,1)/U(1,1);U(1,j)=A(1,j)/L(1,1);

endfor i=2:n-1

S=0;for k=1:i-1

S=S+U(k,i)*L(i,k);end L(i,i)=(A(i,i)-S)/U(i,i);

33

for j=i+1:nS=0;for k=1:i-1

S=S+U(k,i)*L(j,k);endL(j,i)=(A(j,i)-S)/U(i,i);S=0;for k=1:i-1

S=S+U(k,j)*L(i,k);endU(i,j)=(A(i,j)-S)/L(i,i);

endendS=0;for k=1:n-1

S=S+U(k,n)*L(n,k);endL(n,n)=(A(n,n)-S)/U(n,n);% Perform the forward substitution.y(1)=b(1)/L(1,1);for i=2:n

S=b(i);for j=1:i-1

S=S-L(i,j)*y(j);endy(i)=S/L(i,i);

end

% Perform the back substitution.x(n)=y(n)/U(n,n);for i=n-1:-1:1

S=y(i);for j=i+1:n

S=S-U(i,j)*x(j);endx(i)=S/U(i,i);

end% Print the resultsLdisp(' The forward substitution gives')yUdisp('The vector solution is =')X

فرادرس

FaraDars.org

Page 34: آموزش محاسبات عددی - بخش دوم

مستقيم يا غير هاي رهيافت تكراري

)Iterative Methods(34

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 35: آموزش محاسبات عددی - بخش دوم

نكات مهم روش هاي تكراري

35

به تنسب كمتري بازده و كارآيي از ها، دستگاه ي محاسبه مستقيم هاي روش كردن، گرد از حاصل خطاهاي وجود بخاطر )1.برخوردارند متوالي تكرار هاي روش

يمتوال تكرار هاي روش به معادالت حل براي نياز مورد سازي ذخيره فضاي مقدار كردن، گرد از حاصل خطاهاي بر عالوه )2 است، ندهپراك و متفرق ضرايب ماتريس كه زماني بخصوص باشد، مي مستقيم هاي روش در نياز مورد مقدار از كمتر بسيار.)Sparse( باشند مي صفر هاي درآيه زيادي تعداد شامل ها ماتريس و ها آرايه يعني

:از عبارتند خطي معادالت هاي دستگاه حل تكراري هاي روش در ها پاسخ همگرايي يا و جواب وجود شرايط )3

positive يا بايد حتماً ضرايب ماتريس )الف( definite يا و diagonally dominant كافي و الزم شرايط( باشد .)تكراري هاي روش همگرايي

diagonally از منظور )ب( dominant كه است آن بودن:

n

ijj

ijii aantoifor1

:1

n

ijj

ijii aaAofrowaforleastatand1

:

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 36: آموزش محاسبات عددی - بخش دوم

بودن diagonally dominantمثالي از

36

هستند؟ غالب قطري، طور به زير ضرايب ماتريس از يك كدام شده، ذكر شرايط به توجه با

A

3481.5214335116123

1293496553235634124

][

B

|81.5||2||34||1||35||43|

|1||16||123|

A، diagonally ماتريس شده، ذكر شرايط طبق * dominant مطلق قدر هم زيرا هست ينهمچن .هستند مساوي بزرگتر سطر هر ضرايب ساير مجموع از اصلي قطر روي ضرايب.است سطر همان هاي درايه مجموع از بزرگتر اصلي قطر روي هاي درايه از يكي حداقل

B، diagonally ماتريس شده، ذكر شرايط طبق * dominant قدر زيرا نيست سطر همان ضرايب ساير مجموع از سوم سطر اصلي قطر روي ضريب مطلق

|129||96||34|.است كوچكتر|5||23||53|

|56||34||124|

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 37: آموزش محاسبات عددی - بخش دوم

فرم كلي روش هاي تكرار متوالي )Iterative Methods(

تغيير فرم دستگاه معادالت خطي به فرم روبرو : گام اول•

انتخاب يك حدس اوليه: گام دوم•

محاسبه دنباله ي ماتريس بردارهاي پاسخ تقريبي از طريق فرمول زير: گام سوم–

37

'x b Bx

(0)x

( ) ' ( 1)k kx b Bx k=1,2,3,…به ازاي

bAx

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 38: آموزش محاسبات عددی - بخش دوم

روش ژاكوبي )Jacobi Iterative Method(

محاسبه هر يك از متغيرها با تغيير فرم دستگاه معادالت خطي به فرم زير •

بدست آوردن براي با فرمول زير•

: تكرار مراحل قبل تا برآورده شدن شرايط زير•

38

1( ) , 1,2, ,

nij j i

ij ii iij i

a x bx i na a

( )kix1k

],...,[|| )()(1

)()(

)1()(k

nkk

k

kk

k xxxwherex

xxe

nia

bxa

xii

i

n

ijj

kjij

ki ,...,2,1,

1

)1(

)(

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 39: آموزش محاسبات عددی - بخش دوم

ردار آغازين مقادير زير را به عنوان ماتريس ب. دستگاه معادالت زير با استفاده از روش تكرار متوالي ژاكوبي حل كنيد: مثالx, 30=ITMAX, 3-10=EPS)0(=0: در نظر بگيريد

:معادالت اخير را مي توان به صورت زير بازنويسي و مرتب كنيم

:كه به ترتيب فرم عمليات تكرار متوالي ژاكوبي به شكل زير در مي آيد

مثال حل دستگاه معادالت خطي به روش ژاكوبي

39

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 40: آموزش محاسبات عددی - بخش دوم

x(0)=(0,0,0,0) را در سمت راست هر يك از معادالت قبل، براي بدست آوردن مقادير زير، جايگزين كنيد:

مي شود عملياتي مشابه عمليات T)1.444444444,1.5,1.666666666-,2.428571429)=(1(xو بدين ترتيب است كه :قبل، دنباله اي از مقادير را بدست مي دهند كه همگرا به مقادير زير مي باشند

ادامه مثال حل دستگاه معادالت خطي به روش ژاكوبي

40

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 41: آموزش محاسبات عددی - بخش دوم

مثال ديگر براي روش حل دستگاه معادالت خطي به روش تكراري ژاكوبي

)غالب و مثبت معين بودن(چك كردن شرايط الزم براي ماتريس ضرايب : گام اول•تغيير فرمت دادن معادله از به : گام دوم•استفاده از يك حدس اوليه و محاسبه نتايج: گام سوم•

انجام محاسبات مربوط به روش ژاكوبي تا رسيدن به دقت مطلوب: گام چهارم•

41

312

1411

2

1

xx

bAx3x4x12 x-x

21

21

Ax b'x b Bx

1 ( 1)

( )

( ), 1, 2, , (4 11)

nj ij j ij i

iii

k

k

a x bx i n

a

],...,[|| )()(1

)()(

)1()(k

nkk

k

kk

k xxxwherex

xxe

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 42: آموزش محاسبات عددی - بخش دوم

روش ژاكوبي Matlabبرنامه function jacobi(A,b,x0,tol,itmax)% Solve the system Ax=b using Jacobi iteration method.n=length(b);x=zeros(n,1);fprintf('\n');disp(' The augmented matrix is =')Augm=[A b]Y=zeros(n,1);Y=x0;for k=1:itmax+1

for i=1:nS=0;for j=1:n

if (j~=i) S=S+A(i,j)*x0(j);

endendif(A(i,i)==0)

breakendx(i)=(-S+b(i))/A(i,i);

enderr=abs(norm(x-x0));

42

rerr=err/(norm(x)+eps);x0=x;

Y=[Y x];if(rerr<tol)

breakendend% Print the resultsif(A(i,i)==0)disp(' division by zero')elseif (k==itmax+1)disp(' No convergence')elsefprintf('\n');disp(' The solution vectors are:')fprintf('\n');disp('iter # 0 1 2 3 4 ...')fprintf('\n'); for i=1:n

fprintf('x%1.0f = ',i)fprintf('%10.6f',Y(i,[1:k+1]))fprintf('\n');

endfprintf('\n');disp(['The method converges after ',num2str(k),' iterations to']);xend

فرادرس

FaraDars.org

Page 43: آموزش محاسبات عددی - بخش دوم

سيدال -روش گوس)Gauss-Seidal Iterative Method(

يرها با نيز تقريباً مشابه به روش ژاكوبي مي باشد به جز اينكه مقدار هر يك از متغ سيدال-گوسدستورالعمل روش •.استفاده از جديدترين تقاريب بدست آمده براي ساير متغيرها در هر مرحله ، محاسبه مي شود

محاسبه هر يك از متغير ها با تغيير فرم دستگاه معادالت خطي به فرم زير •

: تكرار مرحله قبل تا برآورده شدن شرايط زير–

43

],...,[|| )()(1

)()(

)1()(k

nkk

k

kk

k xxxwherex

xxe

1111k

1 ( ) ( 1)1 1( )( ) ( )

1,2, , .

i nk kij j ij j ij j ik

iii

a x a x bx

ai n

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 44: آموزش محاسبات عددی - بخش دوم

ن در نظر مقادير زير را براي درآيه هاي بردار آغازي. سيدال حل كنيد-دستگاه معادالت زير را به روش تكرار متوالي گوس: مثالx, 30=ITMAX, 3-10=EPS)0(=0: بگيريد

:از مثال قبل بدست آورديم كه

:سيدال زير را فراهم مي آورند-معادالت باال، جمالت عمليات تكرار متوالي گوس

سيدال-مثال حل دستگاه معادالت خطي به روش گوس

446/)15(

10/)215(

9/)313(

7/)217(

)1(3

)1(2

)1(1

)1(4

)(4

)1(1

)1(3

)(4

)(3

)1(1

)1(2

)(3

)(2

)1(1

kkkk

kkk

kkkk

kkk

xxxx

xxx

xxxx

xxx

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 45: آموزش محاسبات عددی - بخش دوم

را در سمت راست هر يك از معادالت اخير جايگزين مي كنيم تا اعداد زير را x(0)=(0,0,0,0)حال مقادير بردار بدست آوريم

:بنابراين داريم

:در ادامه با انجام عمليات هايي مشابه قبل، دنباله همگرا به مقادير زير را خواهيم داشت

سيدال-مثال حل دستگاه معادالت خطي به روش گوس

45

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 46: آموزش محاسبات عددی - بخش دوم

سيدال-روش گوس Matlabبرنامه

46

function seidel(A,b,x0,tol,itmax)% Solve the system Ax=b using Gauss-Seidel iteration method.n=length(b);x=zeros(n,1);fprintf('\n');disp(' The augmented matrix is =')Augm=[A b]Y=zeros(n,1);Y=x0;for k=1:itmax+1

for i=1:nS=0;for j=1:i-1

S=S+A(i,j)*x(j);endfor j=i+1:n

S=S+A(i,j)*x0(j);endif(A(i,i)==0)

breakendx(i)=(-S+b(i))/A(i,i);

enderr=abs(norm(x-x0));

rerr=err/(norm(x)+eps);x0=x;Y=[Y x];if(rerr<tol)

breakend

end% Print the resultsif(A(i,i)==0)disp(' division by zero')elseif (k==itmax+1)disp(' No convergence')elsefprintf('\n');disp(' The solution vectors are:')fprintf('\n');disp('iter # 0 1 2 3 4 ...')fprintf('\n'); for i=1:n

fprintf('x%1.0f = ',i)fprintf('%10.6f',Y(i,[1:k+1]))fprintf('\n');

endfprintf('\n'); disp(['The method converges after ',num2str(k),' iterations to']);xend

فرادرس

FaraDars.org

Page 47: آموزش محاسبات عددی - بخش دوم

>> A = [7 -2 +1 0;1 -9 3 -1;2 0 10 1;2 -1 1 6];>> b = [17;13;15;10] ;>> x1 = lufact(A,b);>> x0 = zeros(size(b));>> ITMAX = 5;>> tol = 1e-5;>> X = zeros(length(b),ITMAX,2);>> for ii = 1 : ITMAXX(:,ii,1)=jacobi(A,b,x0,tol,ii);X(:,ii,2)=seidel(A,b,x0,tol,ii);end>> figure;>> for ii=1:length(b)subplot (length(b),1,ii);plot(1:ITMAX+1,x1(ii)*ones(1,ITMAX+1),'*-',1:ITMAX+1,[0,X(ii,:,1)],'s-',1:ITMAX+1,[0,X(ii,:,2)],'d-','linewidth',2.5,'markersize',7);xlabel(' No. of Iterations ');ylabel(' X values ');title([' Comparison of Convergence Speed and Accuracy between Jacobi & Gauss-seidel Iterative Methods for Variable No. ', num2str(ii)]);legend('Real Value for Var. x','Jacobi Values for Var. x ','Seidel Values for Var. x');end

47

سيدال-مقايسه ميان سرعت همگرايي روشهاي ژاكوبي و گوس محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 48: آموزش محاسبات عددی - بخش دوم

48

دالسي-ادامه مقايسه ميان سرعت همگرايي روشهاي ژاكوبي و گوس

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 60

2

4

No. of Iterations

X v

alue

s

Comparison of Convergence Speed and Accuracy between Jacobi & Gauss-seidel Iterative Methods for Variable No. 1

Real Value for Var. xJacobi Values for Var. xSeidel Values for Var. x

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6-2

-1

0

No. of Iterations

X v

alue

s

Comparison of Convergence Speed and Accuracy between Jacobi & Gauss-seidel Iterative Methods for Variable No. 2

Real Value for Var. xJacobi Values for Var. xSeidel Values for Var. x

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 60

1

2

No. of Iterations

X v

alue

s

Comparison of Convergence Speed and Accuracy between Jacobi & Gauss-seidel Iterative Methods for Variable No. 3

Real Value for Var. xJacobi Values for Var. xSeidel Values for Var. x

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 60

0.5

1

No. of Iterations

X v

alue

s

Comparison of Convergence Speed and Accuracy between Jacobi & Gauss-seidel Iterative Methods for Variable No. 4

Real Value for Var. xJacobi Values for Var. xSeidel Values for Var. x

فرادرس

FaraDars.org

Page 49: آموزش محاسبات عددی - بخش دوم

49

تعريف ماتريس مثبت معين)Positive Definite Matrix(

اگر براي هر (M>0)ناميده مي شود  (positive definite)مثبت معين يك ماتريس متقارن : تعريف:داشته باشيم

nnRM nRxRxMxT

:باشدزير برقرار شرايط است اگر و فقط اگر هر كدام از ) مثبت نيمه معين(، مثبت معين Mحقيقي متقارن ماتريس :قضيه.باشد) مثبت يا صفر(، مثبت Mتمام مقادير ويژه ماتريس -1.باشد) مثبت يا صفر(، مثبت Mيا ماينورهاي اصلي مقدم ماتريس كهادها تمام -2با Nو يا ماتريس nnبا ابعاد Nماتريس غير منفرد( =NTNMوجود داشته باشد كه nnبا ابعاد Nماتريس غير منفرد -3

) =NTNMوجود داشته باشد كه >n mبا nmابعاد

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 50: آموزش محاسبات عددی - بخش دوم

50

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 51: آموزش محاسبات عددی - بخش دوم

51

اين اساليد ها بر مبناي نكات مطرح شده در فرادرس» MATLABآموزش محاسبات عددي پيشرفته به كمك نرم افزار«

.تهيه شده است

.براي كسب اطالعات بيشتر در مورد اين آموزش به لينك زير مراجعه نماييد

faradars.org/fvmth102

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org