آموزش محاسبات عددی - بخش دوم
Post on 09-Feb-2017
239 Views
Preview:
TRANSCRIPT
MATLABمحاسبات عددی به کمک نرم افزار
«روش های حل دستگاه های معادالت خطی»
:مدرساشکان تاشک
درجه و رشته تحصیلیمخابرات گرایش سیستم و مدرس دانشگاه-دکترای مهندسی برق
محاسبات عددیMATLABبه کمک
faradars.org/fvmth102
فرادرس
FaraDars.org
دومعناوين فصل
خطي معادالت هاي دستگاه حل :دوم فصل مقدمه -) MATLAB برنامه همراه به( تكراري غير هاي رهيافت -1
ناقص گوس روش- پيووتينگ يا قياسي نسبي محوريت با گوس - LU تجزيه روش -
) MATLAB برنامه همراه به( تكراري هاي رهيافت-2 ژاكوبي روش- سيدال-گوس روش -
2
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
مقدمه جرمن جبري معادالت دستگاه به مهندسي در بسياري مسائل حل•
.شود مي حال در شده داده نشان فنر-جرم سيستم براي مثال عنوان به•
واهدخ قرار جديد تعادلي وضعيت در سيستم نيروها، حذف با تعادل .گرفت
قابل خطي جبري معادالت دستگاه حل با ها جرم جديد موقعيت•.هستند محاسبه
دوم قانون طبق فنر، و جرم سيستم يك براي•:داريم نيوتن :است دستگاهاين حلمسئله حال،•
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
ادامه رهيافت هاي محاسباتي
)m=n يا برابر مجهوالت و معادالت تعداد با هاي دستگاه براي البته( كلي فرم•
4
Ax b
m =n
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
اسامي پارامترهاي دستگاه معادالت خطي
)m=n( ضرايب ماتريس•
مجهوالت بردار•
معلومات بردار•
5
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
رهيافت هاي محاسباتي
مي تبدس مراحلي از كه هستند ثابتي اعداد پاسخ مستقيم، هاي روش در :مستقيم هاي رهيافت•.باشند مي گردكردن خطاهاي حاصل عدد اين كه آيند
هايحد س پي در پي اطالعات مبناي بر گام به گام هاي روش :تكراري يا مستقيم غير هاي رهيافت•.اند شده گذاري پايه مسئله، پاسخ براي اوليه
6
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
ادامه رهيافت هاي محاسباتيتكراري غير يا مستقيم هاي رهيافت•
.باشد صفر غير ضرايب ماتريس دترمينان يعني ناويژه ضرايب ماتريس :داشتن جواب شرط– :متداول هاي روش–ضرايب ماتريس معكوس .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
ادامه رهيافت هاي محاسباتيIterative( تكراري يا مستقيم غير هاي رهيافت• Methods(
positive يا بايد حتماً ضرايب ماتريس :جواب داشتن شرط– definite يا و diagonally dominant شرايط( باشد .)تكراري هاي روش همگرايي كافي و الزم
:متداول هاي روش–ژاكوبي .1سيدال-گوس .2
8
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
هاي رهيافت مستقيم يا غيرتكراري
9
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
روش كرامر براي حل دستگاه هاي معادالت خطي
:دشرايط الزم براي قابل حل بودن يك دستگاه معادالت خطي به روش كرامر از قرار زير مي باش•.بايستي ناويژه و يا كامل مرتبه باشد Aماتريس ضرايب ) الف
آن الزمه هك بوده پذير معكوس ماتريس آن يعني :مربعي ماتريس يك بودن مرتبه كامل يا ناويژه تعريف :1 تذكر•.است صفر مخالف ماتريس دترمينان داشتن
ي)ها( ستون يا )ها(سطر از ضريبي نظر مورد ماتريس از اي )ها( ستون يا )ها(سطر كه صورتي در :2 تذكر• ويژه يسماتر آن ترتيب، بدين .شد خواهد صفر برابر ماتريس آن دترمينان آنگاه باشند، ماتريس آن از ديگري خطي گيوابست ضرايبي ماتريس چنين به مربوط خطي معادالت دستگاه در موجود معادالت ديگر عبارت به .است
.دارند هم به
10
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
روش كرامر براي حل دستگاه هاي معادالت خطي:براي حل دستگاه معادالت خطي به روش كرامر داريم•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
روش كرامر براي حل دستگاه هاي معادالت خطي-ادامه حل مثال به روش كرامر
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
روش حذف ساده گوس )Naive Gauss Elimination(
بيان رياضياتي ساده: مزايا•رايب، تنها در صورت غير صفر بودن ضرايب باال و يا پايين مثلثي ماتريس ض: محدوديت هاي روش•
.جواب دارد
augmented( افزوده ماتريس تشكيل• Matrix( بردار و ضرايب ماتريس پيوستن هم به حاصل :معلومات
13
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
گوسالگوريتمي روش حذف ساده دستورالعمل )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
گوسالگوريتمي روش حذف ساده ادامه دستورالعمل )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
گوسالگوريتمي روش حذف ساده ادامه دستورالعمل )Naive Gauss Elimination(
:هستند استخراج قابل زير ماتريسهاي نهايي، افزوده ماتريس روي از نهايت، در•
:آيد مي حاصل زير فرم به مثلثي باال ضرايب ماتريس يك )1
:باشد مي روبرو قرار به يافته ارتقاء معلومات بردار همچنين )2
.شوند مي محاسبه مجهوالت اول به آخر از حاضر دستگاه برطبق سپس•
16
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
حذف ساده گوس روش 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
مثال حل دستگاه معادالت خطي به شيوه حذف ساده گوس
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
:آيد يم حاصل زير مثلثي باال دستگاه آخر، معادله از سوم معادله هاي ضرب حاصل كردن كم با•
مثلثي االب دستگاه به شده اعمال معكوس با برگشتي جايگذاري دستورالعمل به مربوط عمليات•:دهد مي بدست را زير نتايج حاصل،
ادامه مثال حل دستگاه معادالت خطي به شيوه حذف ساده گوس
19
x1+x2+x3+x4 = 10x2-x3+3x4= 11-2x3- 2x4= -14
-x4= -4
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
نكات روش حذف ساده گوس
20
: مزاياروش سادگي *
:معايب.فرص پايه ي يه يادر يك وجود با ضرايب ماتريس براي كارآيي عدم * با درمقايسه نظراندازه از )عمودي( پايه درايه ي بودن كوچك بسيار *
.محوري سطر هاي درايه ساير صورت اين در كه Round-Off)( كردن گرد خطاي افزايش :نتيجه.شود دقيق غير جواب بردار يك به منجر مي تواند خطا
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
روش حذف گوس با محوريت نسبي قياسي )Pivoting Gaussian Elimination(
21
.باشند مي اصلي قطر روي بر صفر ها ي درآيه همان محور با درآيه از منظور :تذكر
):Pivoting(نكاتي چند از المان اتكا .اصلي قطر روي المان )1 متوقف اصلي قطر هاي المان از يك هر بودن صفر صورت در گوس ساده حذف روش فرآيند )2
.شد خواهد.شود اصالح بايد مشكل اين از اجتناب براي گوس ساده حذف روش )3
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
حذف گوس با محوريت نسبي قياسي ادامه روش )Pivoting Gaussian Elimination(
22
ترينبزرگ نمودن منتقل منظور به )ها ستون( متغيرها يا )سطرها( معادالت تعويض پيشنهادي روش *.است حذف عمل انجام از قبل اصلي قطر روي به المان
full ها ستون و سطرها هردو تعويض .شود مي ناميده pivoting روش اين * pivoting مي ناميده .شود
* Full pivoting پيشنهادي روش .شود نمي استفاده پيچيدگي علت به partial pivoting است.partial روش در * pivoting شود مي استفاده سطرها جابجايي از.
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
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
)scaling(متناسب سازي
.در صورت كوچك بودن المان اتكا از ساير المان هاي سطر، خطاي ناشي از گرد كردن اهميت مي يابد•
.براي انتخاب المان اتكا پيشنهاد مي شود) Scaling(در چنين حالتي استفاده از روش متناسب سازي •
:)Scaling(روش متناسب سازي •
ن المان قبل از اعمال روش حذف گوس، بر روي ستون اول، كليه المان هاي ستون اول نرماليزه مي شوند يعني به بزرگتري–).موجود در سطر مربوطه تقسيم مي شوند
.سپس انتخاب المان اتكا انجام مي شود–
.روش حذف ساده گوس بكارگرفته مي شود–
انجام و متعاقباً pivotingنرماليزه شده، عمل 2در ستون nتا 2براي ستون دوم قبل از بكارگيري روش حذفي، المان هاي –.از روش حذفي استفاده مي شود
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
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
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
LUروش تجزيه ي
27
يك ،L اينجا در كه باشد مي U و Lماتريس دو ضرب حاصل به ضرايب ماتريس تبديل شامل ،LU ي تجزيه روش كه زماني .باشند مي خود اصلي قطر طول در واحد هاي درآيه با مثلثي باال ماتريس يك ،U و مثلثي پايين ماتريس:شود انجام زير طريق به تواند ميدستگاه حل آنگاه شوند، پيدا U وLهاي ماتريس Ax b
LUx b Ux y Ly bAx b
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
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
:مثال روش كروت را براي حل دستگاه زير بكار بريد
:داشته باشد، آنگاه 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
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
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
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
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
مستقيم يا غير هاي رهيافت تكراري
)Iterative Methods(34
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
نكات مهم روش هاي تكراري
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
بودن 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
فرم كلي روش هاي تكرار متوالي )Iterative Methods(
تغيير فرم دستگاه معادالت خطي به فرم روبرو : گام اول•
انتخاب يك حدس اوليه: گام دوم•
محاسبه دنباله ي ماتريس بردارهاي پاسخ تقريبي از طريق فرمول زير: گام سوم–
37
'x b Bx
(0)x
( ) ' ( 1)k kx b Bx k=1,2,3,…به ازاي
bAx
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
روش ژاكوبي )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
ردار آغازين مقادير زير را به عنوان ماتريس ب. دستگاه معادالت زير با استفاده از روش تكرار متوالي ژاكوبي حل كنيد: مثالx, 30=ITMAX, 3-10=EPS)0(=0: در نظر بگيريد
:معادالت اخير را مي توان به صورت زير بازنويسي و مرتب كنيم
:كه به ترتيب فرم عمليات تكرار متوالي ژاكوبي به شكل زير در مي آيد
مثال حل دستگاه معادالت خطي به روش ژاكوبي
39
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
x(0)=(0,0,0,0) را در سمت راست هر يك از معادالت قبل، براي بدست آوردن مقادير زير، جايگزين كنيد:
مي شود عملياتي مشابه عمليات T)1.444444444,1.5,1.666666666-,2.428571429)=(1(xو بدين ترتيب است كه :قبل، دنباله اي از مقادير را بدست مي دهند كه همگرا به مقادير زير مي باشند
ادامه مثال حل دستگاه معادالت خطي به روش ژاكوبي
40
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
مثال ديگر براي روش حل دستگاه معادالت خطي به روش تكراري ژاكوبي
)غالب و مثبت معين بودن(چك كردن شرايط الزم براي ماتريس ضرايب : گام اول•تغيير فرمت دادن معادله از به : گام دوم•استفاده از يك حدس اوليه و محاسبه نتايج: گام سوم•
انجام محاسبات مربوط به روش ژاكوبي تا رسيدن به دقت مطلوب: گام چهارم•
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
روش ژاكوبي 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
سيدال -روش گوس)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
ن در نظر مقادير زير را براي درآيه هاي بردار آغازي. سيدال حل كنيد-دستگاه معادالت زير را به روش تكرار متوالي گوس: مثال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
را در سمت راست هر يك از معادالت اخير جايگزين مي كنيم تا اعداد زير را x(0)=(0,0,0,0)حال مقادير بردار بدست آوريم
:بنابراين داريم
:در ادامه با انجام عمليات هايي مشابه قبل، دنباله همگرا به مقادير زير را خواهيم داشت
سيدال-مثال حل دستگاه معادالت خطي به روش گوس
45
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
سيدال-روش گوس 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
>> 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
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
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
50
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
51
اين اساليد ها بر مبناي نكات مطرح شده در فرادرس» MATLABآموزش محاسبات عددي پيشرفته به كمك نرم افزار«
.تهيه شده است
.براي كسب اطالعات بيشتر در مورد اين آموزش به لينك زير مراجعه نماييد
faradars.org/fvmth102
محاسبات عدديMATLABبه كمك
faradars.org/fvmth102
فرادرس
FaraDars.org
top related