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

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

Upload: faradars

Post on 12-Apr-2017

226 views

Category:

Education


11 download

TRANSCRIPT

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

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

«(ODE)روش های عددی برای حل معادالت دیفرانسیل معمولی »

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

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

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

پنجمعناوين فصل معمولي ديفرانسيل معادالت حل :پنجم فصل

) MATLAB برنامه همراه به( )اي مرحله تك( فرمول بر مبتني هاي روش -1

)اول ي مرتبه تيلور بسط( اويلر- اويلر روش خطاي تحليل -

1 از باالتر هاي مرتبه تيلور هاي بسط - مياني ي نقطه -

4 و 2 مراتب كوتاي– رانگ -

) MATLAB برنامه همراه به( اي مرحله چند هاي روش -2

باشفورث -آدامز روش- مولتون -آدامز روش-

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

مقدمه از آنها دنآور بدست از تر ساده بسيار ديفرانسيل معادالت حل از استفاده با كميت يك تغييرات آهنگ يافتن•

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

:برد نام ديفرانسيل معادالت براي را زير هاي ويژگي توان.آن مشتق و تابع از تركيبي–.شود مي ديفرانسيل معادله به منجر )بقا معادالت از استفاده با خصوصاً( فيزيكي مسائل از بسياري رياضي مدل–

:ديفرانسيل معادالت بندي دسته•.است شده داده شروع نقطه در تابع مقدار :اوليه شرايط–.است معلوم مرزي نقاط در تابع مقدار :)سرحدي( مرزي شرايط–

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

3

bxaforyxfdxdy

),(

0)( yay

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

معادالت ديفرانسيل با شرايط اوليهInitial( اوليه شرايط با معمولي ديفرانسيل معادله• Conditions(:

:يك مرتبه معمولي ديفرانسيل معادله–

:اوليه شرط–

:n مرتبه معمولي ديفرانسيل معادله–

:اوليه شرايط–

4

)()(),...,()(),()(

,,1,)()1(

21 xyxyxyxyxyxy

niayn

n

ii

functiongivenyxfdxdyyyxfy ),(,/),,(

)(ay

),,,,( )1()( nn yyyxfy

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

)ادامه(اوليه ديفرانسيل با شرايط معادالت Initial( اوليه شرايط با معمولي ديفرانسيل معادله• Conditions(:

:n مرتبه معمولي ديفرانسيل معادله–

متغيرهاي انتخاب با–

:متغير تغيير و–

–n يك مرتبه معادله:

5

)(

),(

),(),(3

2

ay

yxfy

yy

yxFyxFy

n

)1(321 ,,,, n

n yyyyyyyy

),,,,( )1()( nn yyyxfy

),...,,,(,,,, 21433221 nn yyyxfyyyyyyy

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

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

روش اولر–روش نقطه مياني –)كوتا-كوتا يا رانگ-رانج( Runge-Kutaروش –

روش هاي تكرار شونده يا چند مرحله اي•باشفرث-روش آدامز–ملتون-روش آدامز–

معادالت و دستگاه معادالت با مراتب باالتر –

)Stiff Systems(دستگاه هاي مستحكم –

6

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

روش هايغيرتكراري يا مستقيم

7

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

)Euler’s Method(روش اولر يلديفرانس معادالت حل در محاسباتي هاي روش ي همه ميان از تحليلي ي شيوه ترين ساده•

دهد مي امانج را تحليل و تجزيه ساده نسبتاً اي گونه به شيوه، اين .باشد مي اولر روش ، معمولي را تر پيشرفته محاسباتي هاي شيوه از برخي ساختار در اصلي هاي ديدگاه روش اين واقع در و صورت به را زير ي اوليه مقدار ي مسئله پاسخ بخواهيم كه كنيد تصور .كشد مي تصوير به

:بيابيم [a,b] بازه در تقريبي

شبكه نقاط و كرده تقسيم مساوي بازه زير N به را بازه ابتدا اولر، روش از استفاده شروع براي•Mesh( اي Points( ازاي به بصورت را

.شناسيم ميگام نام به را h .باشد مي آن در كه كنيم مي تعريف

8

0)(),( yayytfdtdy

ihati Ni ,...,2,1,0

Nabh

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

)Euler’s Method(ادامه روش اولر :نويسيم مي it حول را )ty( تابع تيلور بسط اولر، روش فرمول ي محاسبه براي•

دوم مرتبه جمالت از نظر صرف با .باشد مي h+it و it بين مقداري فوق، فرمول در كه:داشت خواهيم بعد به

معادله از استفاده با و دهيم نمايش iy صورت به را it(y( اگر •:نوشت توان مي

.است مشهور اولر روش نام به فوق معادله•

9

)(2

)()()()(2

1 yhtyhtyhtyty iiii

Niythfyy iiii ,...,1,0),(1

)()()( iii tyhtyhty

0)(),( yayytfdtdy

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

)Euler’s Method(ادامه روش اولر :است شده كشيده تصوير به اولر روش هندسي تعبير زير شكل در•

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

10

start

),( iiii ythfyy

Nabh /)( 0i

),( ytfdtdy

],[ bat

Niihati ,...,0,

Ni

End

)()( byty N yes

no1 ii

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

روش اولرمثالي از :مسئله صورت•

يافتن براي N=10 ازاي به را اوليه مقدار مسئله جواب با را معادله دقيق حل از حاصله مقادير سپس .كنيد حل t=1 در y مقدار

) و دقيق جواب( نماييد مقايسه خود تقريبي ================================================================و :مثال حل•

ها گام تمامي طي از پس

.شوند مي حاصل بعد صفحه جدول نتايج11

1)0(,2 00 tyyytdtdy

22)( tety t

1001

N

abh ytytf 2),(

9.0)]1()0(2)[1.0(1)1.0( y

)1,0(1.0)1.0( 01 fyyy

)9.0,1.0(1.0)2.0( 12 fyyy

79.0)]9.0()1.0(2)[1.0(9.0)2.0( y

10 t

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

روش اولرمثالي از :حل ادامه•

.است 0.0192 با برابر نيز خطا مقدار و شده برابر نهايي حاصل *.است شده حاصل اولر روش از حاصل پاسخ و دقيق پاسخ مقايسه از خطا مقدار

12

348678.0)0.1(10 yy

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

روش اولر براي حل معادالت ديفرانسيل معمولي Matlabبرنامه function euler(f,a,b,y0,n)% solve the initial-value problem y'=f(t,y), y(a)=y0% using Euler's method.fprintf('\n')disp(' Euler method')disp('_______________________________________

__')disp(' ti f(ti,yi) yi Exact error ')disp('_______________________________________

__')fprintf('\n')h=(b-a)/n;y=y0;fprintf('%6.2f ---- %12.6f %12.6f

%4.2f\n',a,y,y,0)for i=1:n

t=a+(i-1)*h;

13

m=feval(f,t,y);y=y+h*m;% write the exact solution g if known as g=g(t)% otherwise set g='n'.t=t+h;g='n';if (g~='n')err=abs(g-y);fprintf('%6.2f %12.6f %12.6f %12.6f

%8.2e\n',t,m,y,g,err)else

fprintf('%6.2f %12.6f %12.6f\n',t,m,y)end

end

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

تحليل خطاي روش اولرInitial( اوّليّه مقدار با ديفرانسيل معادالت مسأله يك عددي حل در ممكن خطاهاي انواع• Value Problem or IVP(:

موضعي برش خطاي )1فراگير برش خطاي )2

ردگ خطاي هيچگونه اينجا در كه كنيم مي فرض امّا دارد وجود كردن گرد از حاصل خطاي ، موارد تمامي در البتّه :تذكر -. ندارد وجود محاسبات در كردن

موضعي خطاي اولر، روش در .افتد مي اتفاق 1i+t تا it از واحد هاي گام طي در كه باشد مي خطايي :موضعي برش خطا )1 با است برابر كه باشد مي زير فرمول تيلور بسط زدن تقريب از حاصل مانده باقي همان ساده حالت در

.باشد مي 2h(O( مرتبه از موضعي برش خطاي گردد مي مشاهده كه طور همان بنابراين، • ينا شدن انباشته آيد، مي بوجود اضافي برش خطاي يك اولر روش از گام هر در آنجائيكه از :فراگير برش خطاي )2

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

14

2

1( ) ( ) ( ) '( ) ''( )2i i i i

hy t y t h y t hy t y

)(2

2

yh

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

ادامه تحليل خطاي روش اولر

:است نمايش قابل زير فرم به اولر روش اعمال بار nاز بعد فراگير خطاي•

.باشند مي nt=t ازاي به تقريبي حل مقدار ny و nt=t ازاي به دقيق حل مقدار nt(y( آن در كه

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

15

( ) , 0,1, ...n n ne y t y n

1

2

1 ),(2

))(,()()( nnnnnnnn ttyhtythftyty

2( , ( )) ( , )[ ( ) ] ''( )

( ) 2n n n n

n n n nn n

f t y t f t y he h y t y yy t y

2

1 [ ( , ( )) ( , )] ''( )2n n n n n n n

he e h f t y t f t y y

2( , ( )) ( , )''( )

( ) 2n n n n

n n nn n

f t y t f t y he h e yy t y

( , )y n nf t

nnnn ythfyy ,1

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

ادامه تحليل خطاي روش اولرf بودن پيوسته فرض با• (t,y) و f (y) آيد مي بدست زير فرمول مياني، مقدار قضيه از استفاده با و:

: باشند برقرار زير هاي نامساوي t-y فضاي در نظر مورد ناحيه در كه كنيم فرض اگر ، اين بر عالوه•

:آيند مي بدست زير شكل به كه هستند مثبتي ثابت اعداد K و M آن در كه•

:داشت خواهيم استقراء با•

.است صادق هم n=0 براي فوق فرمول لذا هستند، 0e=0 و 0y)=0t(y آنجائيكه از •

16

2

1 ( , ) ''( ), ( )2n n y n n n n n n n

he e hf t e y y y t

| ( , ) | | ''( ) |f t y M and y t Ky

2

1 (1 ) | |2n n

he hM e K

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

nn

hKe c hM n cM

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

ادامه تحليل خطاي روش اولر:نوشت استقراء طبق توان مي اساس، همين بر•

:داريم قبل روابط به توجه با واقع در•

لحاص صفحه باالي نامساوي تا كرد ساده توان مي را معادله آخرين نتيجه در است، آنجائيكه از• :داريم تيلور قضيه طبق سويي از .آيد

:تداش خواهيم بنابراين .باشد مي بنابراين و .بود خواهد برقرار نامساوي نتيجه در•

17

11| | (1 ) 1]n

ne c hM

2

1

21

| | [(1 ) 1](1 )2

(1 ) (1 )2

nn

n

he c hM hM K

hc hM c hM K

2 / 2chM h K

0,1 xex x

(1 ) hMhM e (1 )n nhMhM e

0( )| | ( 1) [ 1]2 2

nt t MnhMn

hK hKe e eM M

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

مثال براي تحليل خطاي روش اولر.آوريد بدست را اوّليه مقدار مسأله خطاي )مثال

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

و :داريم روبرو هاي فرمول به توجه با )مثال حل

در t هر ازاي به صورت اين در .است معادله برابر فوق اوليه مقدار مسأله تقريب بدون و دقيق جواب آنجائيكه از:داريم [0,1] بازه: دهد مي بدست زير نامعادله فرم به را خطا حدود معادله ، نتيجه در

18

' 1, (0) 2, 0 1 , 0.1y y y t h

( , ) 1f t y y | | 1f My

1ty e

''y e K 0( )| | ( 1) [ 1]

2 2nt t MnhM

nhK hKe e eM M

0.1| | ( 1)2

ntn

ee e

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

ادامه مثال تحليل خطاي روش اولر براي h=0.1 با برابر گامي اندازه گرفتن نظر در و euler برنامه از استفاده با فراگير خطاي و واقعي خطاي شامل زير جدول:دهد مي ارائه قبل مثال

معموالً گيانباشت خطاي حدود مقابل، در البتّه . باشد مي افزايش به رو منطقي اي گونه به فراگير خطاي مقدار ، مثال اين در.ماند مي باقي كاهش بدون و ثابت كننده نااميد اي گونه به

19

خطاي واقعيخطاي فراگير0.0

0.014294

0.030092

0.047551

0.066846

0.088170

0.111738

0.137883

0.166568

0.198381

0.233539

0.0

0.005171

0.011403

0.018859

0.027725

0.038211

0.050558

0.065036

0.081952

0.101655

0.124539

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

nt

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

با مراتب باالترروش سري هاي تيلور

حل راه يك توان مي كه است واضح .آورديم بدست سري جمله دو از استفاده و تيلور سري كمك با را اولر روش • اوليه مقدار اب اول مرتبه ديفرانسيل معادالت حل براي تيلور سري جمالت از بيشتري تعداد از استفاده با نيز تقريبي اول جمله ارازچه استفاده با خود اوّليه مقدار مسائل حل براي تقريبي حلي راه ابتدا آن، كردن فرمولبندي براي .بيابيم:معادله اوليه مقدار مسائل براي y(t) پاسخ كه كنيد فرض .دهيم مي ارائه تيلور سري

:داشت خواهيم it=t حول t(y( براي تيلور سري بسط از صورت دراين ، باشد پيوسته متوالي مشتق چهار داراي

20

0)(),( yayytfdtdy

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

و نقطه مياني 4و 2كوتاي مرتبه -روش هاي رانگ

f تابع نسبي مشتقات زيرا باشد، نمي عملي كلي حالت در تيلور بسط به وابسته هاي روش• (t,y) تحليلي تعيين نيازمند f تابع مشتق گرفتن از پرهيز براي . گيرد مي قرار استفاده مورد ندرت به تيلور روش ، بنابراين . باشند مي (t,y) حال در

f از گيري مشتق لزوم بدون اما تيلور هاي روش برخي مشابه دقتي با را iy مقادير كه كرد خواهيم معرفي را روشي حاضر

(t,y) ستا مشهور دو مرتبه كوتاي-رانگ روش نام به كه را ها شيوه اين ترين ساده اينجا، در لذا .كند مي محاسبه ، :باشد مي زير قرار به روش اين فرم .نماييم مي معرفي

:داريم آن در كه•

و

21

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

و نقطه مياني 4و 2كوتاي مرتبه -روش هاي رانگ و معادله سه زير، فرمول طبق زيرا رسيد مختلفي هاي روش به توان مي b و α، β، a ثابت پارامتر چهار به توجه با•

:آيند بدست ثابت مقادير ساير و شده دهي مقدار بايد ثابت مقادير اين از يكي لذا داريم، چهارمجهول

انتخاب دلخواه طور به را متغير يك ميبايستي پس .داريم مجهولي 4 و معادله 3 دستگاه يك فوق، فرمول به توجه با•: از است عبارت معمول هاي حل راه از يكي .كنيم

:شود يم خوانده نيز شده اصالح اولر روش نام به گاهي كه گردد مي دو مرتبه كوتاي-رانگ روش به منجر پاسخ اين•

:نتيجه در•كه

22

a = b

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

و نقطه مياني 4و 2كوتاي مرتبه -روش هاي رانگ:از اند عبارت روبرو، معادالتي دستگاه هاي پارامتر براي ها انتخاب ساير•

α=β=0.5 ،a=0 وb=1:شدبا مي زير كلي فرم داراي و شده خوانده مياني نقطه روش نام با كه شوند مي منتهي فرمولي به ها پاسخ اين•

ايكوت-رانگ روش ، گيرد مي قرار استفاده مورد اغلب و بوده معروف بسيار كه كوتا-رانگ هاي روش انواع از يكي •: است شده نوشته زير در آن فرمول كه است، )RK4(چهارم مرتبه

:داريم درآن كه•

23

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

-رانگ مثالي براي حل معادله ديفرانسيل معمولي مرتبه اول به روشهايو روش نقطه مياني 4و 2كوتا مرتبه

:مثال صورت حل t=1 در y مقدار يافتن براي N=10 ازاي به را اوليه مقدار مسئله.نماييد مقايسه خود تقريبي جواب با را معادله دقيق حل از حاصله مقادير سپس .كنيد

) :دقيق جواب( ================================================================

ئلهمس فرضيات با متناسب را روش هر پارامترهاي مقادير تا است كافي منظور اين براي )مثال حل نتايجي ها گام تمامي طي از پس .نمود جايگزاري روش همان به مربوط فرمول در و آورده بدست.اند يافته نمايش بعد صفحه جدول در كه شوند مي حاصل

24

1)()0(,2 0 tyyytdtdy

22)( tety tفرادرس

FaraDars.org

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

:مثال حل جدول•

روش سه با مقايسه در روش اين ضعف از نشان كه گشت 5.22% برابر اولر روش با مثال همين خطاي درصد :تذكر *.باشد مي حاضر

25

روش حل عددي

نتايج محاسبات نقطه مياني 2مرتبه كوتاي-رانگ 4كوتاي مرتبه -رانگ

تكرار تعداد دفعات n=10 n=10 n=10

عددي بدست آمده مقدار 0.368541 0.368541 0.367880

مقدار واقعي حل معادله0.367879 0.367879 0.367879

مقدار خطاي مطلق 6.62e-04 6.62e-04 3.33e-07

خطاي نسبي مقدار 0.0018 0.0018 9.0519e-7

(%)خطا مقدار درصد 0.18 0.18 9.0519e-5

22)1( n

tn tety n

مثالي براي حل معادله ديفرانسيل معمولي مرتبه اول بهو روش نقطه مياني 4و 2كوتاي مرتبه -روشهاي رانگ

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

روش نقطه مياني براي Matlabبرنامه معادالت ديفرانسيل معموليحل

function midpoint(f,a,b,y0,n)% solve the initial value problem y'=f(t,y), y(a)=y0% using the midpoint method.fprintf('\n')disp(' Midpoint method')disp('_________________________________')disp('t k1 k2 y Exact error ')disp('_________________________________')fprintf('\n')h=(b-a)/n;y=y0;m=feval(f,a,y0);fprintf('%6.2f ---- ---- %12.6f\n',a,y)for i=1:n

26

t=a+(i-1)*h;k1=feval(f,t,y);k2=feval(f,t+h/2,y+h*k1/2);y=y+h*k2;t=t+h;

% Enter the exact solution if known as g=g(t)% otherwise set g='n'.

g='n';if (g~='n')err=abs(g-y);fprintf('%6.2f %12.6f %12.6f %12.6f %12.6f

%8.2e\n',t,k1,k2,y,g,err)elsefprintf('%6.2f %12.6f %12.6f

%12.6f\n',t,k1,k2,y)end

end

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

4و 2كوتاي مرتبه -روش هاي رانگ Matlabبرنامه حل معادالت ديفرانسيل معموليبراي

function rk2_4k(f,a,b,y0,n,order)% solve the initial-value problem y'=f(t,y), % y(a)=y0 using Runge-Kutta methods.fprintf('\n')disp([' Runge-Kutta method of order

=',num2str(order)])h=(b-a)/n;y=y0;if (order==2)disp('_________________________________')disp(' t k1 k2 y Exact error ')disp('________________________________') fprintf('\n')fprintf('%6.2f ---- ---- %12.6f %12.6f %4.2f\n',a,y,y,0)

for i=1:nt=a+(i-1)*h;k1=feval(f,t,y);k2=feval(f,t+h,y+h*k1);

27

y=y+h*(k1+k2)/2;t=t+h;

% Enter the exact solution if known as g=g(t)% otherwise set g='n'.

g='n';if (g~='n')

err=abs(g-y);fprintf('%6.2f %12.6f %12.6f %12.6f

%12.6f %8.2e\n',t,k1,k2,y,g,err)

elsefprintf('%6.2f %12.6f %12.6f

%12.6f\n',t,k1,k2,y)end

endendif (order==4)disp('__________________________________')

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

مرتبهكوتاي -روش هاي رانگ Matlabادامه برنامه حل معادالت ديفرانسيل معموليبراي 4و 2

disp(' t k1 k2 k3 k4 y Exact error ')disp('_______________________________') fprintf('\n')fprintf('%6.2f ---- ---- ---- ---- %12.6f %12.6f %4.2f\n',a,y,y,0)

for i=1:nt=a+(i-1)*h;k1=feval(f,t,y);k2=feval(f,t+h/2,y+h*k1/2);k3=feval(f,t+h/2,y+h*k2/2);k4=feval(f,t+h,y+h*k3);y=y+h*(k1+2*k2+2*k3+k4)/6;

28

t=t+h;% Enter the exact solution if known as g=g(t)% otherwise set g='n'.

g=exp(-t)+2*t-2;if (g~='n')err=abs(g-y);fprintf('%6.2f %12.6f %12.6f %12.6f %12.6f

%12.6f %12.6f %8.2e\n',t,k1,k2,k3,k4,y,g,err)

elsefprintf('%6.2f %12.6f %12.6f %12.6f

%12.6f %12.6f\n',t,k1,k2,k3,k4,y)

endend; end ;end

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

روش هايچند مرحله اي

29

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

روش هاي چند مرحله براي حل عددي معادالت ديفرانسيل معمولي

30

ركمشت ويژگي يك داراي ، گرفتند قرار بررسي و بحث مورد فصل اين از قبل هاي بخش در كه هايي روش تمامي به . باشند معلوم f تابع از آن مشتقات و iy مقدار كه شود مي محاسبه زماني فقط iy+1 مقدار كه است اين آن و هستند در اگر ، ديگر سوي از . شود مي گفته گامي تك يا اي مرحله تك هاي روش قبل، هاي روش تمامي به ، دليل همين چند روش را روش آن صورت اين در ، باشند الزم 1i+y محاسبه براي iy، 1-iy،...،1+k-iy مقادير بودن معلوم روشي .گوئيم مي اي مرحله

متناهي تفاضلي هاي شيوه از استفاده و محاسباتي گيري انتگرال ديدگاه پايه بر هايي روش چنين به دستيابي شيوه يك هب معادله در شده ذكر اوليّه مقدار مسائل حل ازپاسخ گيري انتگرال با .است استوار:آيند حاصل زير نتايج 1i+t و it بين مقادير ازاي

0( , ) ( )dy

f t y y a ydt

1

1( ) ( ) ( , ( ))i

i

t

i i ty t y t f t y t dt

فرادرس

FaraDars.org

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

:روبرو صورت به قبل فرمول بازنويسي

f نزد تقريب براي متناهي –تفاضلي روش يك از توانيم مي روبرو، فرمول در گيري انتگرال عمليّات اجراي براي (t,y) به :كنيم استفاده زير شرح به 0t، 1t،...، it مانند داده نقاط برخي ازاي

.باشند مي آن در كه

روش هاي چند مرحله براي حل عددي معادالت ديفرانسيل معمولي

31

1

1( ) ( ) ( , ( ))i

i

t

i i ty t y t f t y t dt

1

1( ) ( ) ( , ( ))i

i

t

i i ty t y t f t y t dt

1

1 ( )i

i

t

i i ty y p t dt

( ) ( , )و( )i ip t f t y y y t

فرادرس

FaraDars.org

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

اي جمله چند از حاصل اي جمله چند يك p(t) كه دهيم مي قرار اين بر را فرض ،)AB( باشفورث-آدامز روش درنقطه m از عبور با يابي درون فصل مطالب طبق كه باشد مي t(1-mp( نيوتني پسرونده:داشت خواهيم در t(1-mp( جايگذاري با .است آمده بدست

:آيد مي حاصل زير فرمول ، متغير تغيير ايجاد با

:داريم آن در كه

و

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معموليAdams-Bashforth(باشفورث -روش آدامز -1 m-step Method(

32

1 1( , ( )),..., ( , ( ))i m i m i it y t t y t

1

1 ( )i

i

t

i i ty y p t dt

1

1

10( 1) ( , )i

i

mt k ki i i it

k

sy y f t y dt

k

it tsh

1 1

1 00

( , )( 1)m

k ki i i i

k

sy y h f t y ds

k

1 ( , ) [( , ),..., ( , )]!

kn n n k n k n nk f t y f t y t y

k h ( 1) ( 1)( 1)!

ks s s s kk k

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

S از تابع يك فرم به حاصل اي جمله دو ضريب تعريف از توان مي سادگي به نيز را ضرايب:داشت خواهيم صورت اين در كه كنيم مي محاسبه k=3,2,1,0,… ازاي به را kγ ابتدا .كرد محاسبه

:داريم فوق فرمول براي بنابراين

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معموليAdams-Bashforth(باشفورث -روش آدامز -1 m-step Method) (ادامه(

33

1

0( 1)k

k

sds

k

1

0

( 1) ( 1)!k

s s s k dsk

1

0 0

1

1 0

1 1 22 0 0

1 1 3 23 0 0

12

( 1) 1 5( )2 2 12

( 1)( 2) 1 3( 3 2 )2 6 8

ds

sds

s s ds s s ds

s s s ds s s s ds

فرادرس

FaraDars.org

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

به باشفرث-آدامز روش ، باشد m=1 فرمول، اين در اگر .شود مي ناميده باشفُرث-آدامز اي مرحله m روش فوق، فرمول آنها موضعي خطاهاي ذكر همراه به باشفورث-آدامز روش از اي مرحله 4 و 3 ،2 انواع ادامه در .شود مي تبديل اولر روش

.شود مي داده آموزش

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معموليAdams-Bashforth(باشفورث -روش آدامز -1 m-step Method) (ادامه(

34

1 1

1 00

( , )( 1)m

k ki i i i

k

sy y h f t y ds

k

فرادرس

FaraDars.org

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

:)m=2( (AB2) اي مرحله دو باشفُرث-آدامز روش -:داريم حالت اين براي

.باشد مي i=1,2,…,N-1 آن در كه.است 3h(O( مرتبه با برابر موضعي برش خطاي روش، اين در

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معموليAdams-Bashforth(باشفورث -روش آدامز -1 m-step Method) (ادامه(

35

1 1 1

0 0 1 1

[3 ( , ) ( , )],2

,

i i i i i ihy y f t y f t y

y a y a

فرادرس

FaraDars.org

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

:)m=3( (AB3) اي مرحله سه باشفُرث-آدامز روش -:داريم روبرو فرمول در m=3جايگذاري با حالت، اين براي

:داشت خواهيم بنابراين

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معموليAdams-Bashforth(باشفورث -روش آدامز -1 m-step Method) (ادامه(

36

21

1 5( , ) ( , ) ( , ) ,2 12i i i i i i i iy y h f t y f t y f t y

1 1

1 00

( , )( 1)m

k ki i i i

k

sy y h f t y ds

k

1 1

1 12 2

2 2 1 1

1 1 2 2

( , ) ( , ), ( , )( , ) ( , )

( , ) 2 ( , ), ( , ), ( , )( , ) 2 ( , ) ( , )

i i i i i i

i i i i

i i i i i i i i

i i i i i i

f t y hf t y t yf t y f t y

f t y h f t y t y t yf t y f t y f t y

فرادرس

FaraDars.org

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

:)ادامه( )m=3( (AB3) اي مرحله سه باشفُرث-آدامز روش -: نوشت ميتوان درنتيجه

:يابيم مي دست زير معادله به فوق، معادله كردن ساده با ، حال

.باشد مي i=2,3,…,N-1 آن در كه خطاي روش، ناي در .اند آمده بدست نيوتني پسرونده شونده تقسيم تفاضلي فرمول از استفاده با موضعي برش هاي خطا.است 4h(O( مرتبه با برابر موضعي برش

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معموليAdams-Bashforth(باشفورث -روش آدامز -1 m-step Method) (ادامه(

37

1 1 1

1 1 2 2

1 5{ ( , ) ( , ) ( , ) [ ( , )2 12

2 ( , ) ( , )]}

i i i i i i i i i i

i i i i

y y h f t y f t y f t y f t y

f t y f t y

1 1 1 2 2

0 0 1 1 2 2

[23 ( , ) 16 ( , ) 5 ( , )],12

, , ,

i i i i i i i ihy y f t y f t y f t y

y a y a y a

فرادرس

FaraDars.org

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

:)m=4( (AB4) اي مرحله چهار باشفُرث-آدامز روش -:داريم حالت اين براي

.باشد مي i=3,4,…,N-1 آن در كه.است 5h(O( مرتبه با برابر موضعي برش خطاي روش، اين در

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معموليAdams-Bashforth(باشفورث -روش آدامز -1 m-step Method) (ادامه(

38

1 1 1 2 2

3 3

0 0 1 1 2 2 3 3

[55 ( , ) 59 ( , ) 37 ( , )24

9 ( , )],, , , ,

i i i i i i i i

i i

hy y f t y f t y f t y

f t yy a y a y a y a

فرادرس

FaraDars.org

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

يهاول مقدار با اول مرتبه ديفرانسيل معادله حل تقريبي پاسخ 4و3 ،2 هاي مرتبه باشفورث-آدامز روش از استفاده با )مثال حل پاسخ از را كننده آغاز مقادير ضمناً .آوريد بدست t=0.4 و N=10 ازاي به و

.نماييد استخراج يعني مسئله حقيقي===============================================================================================

كننده آغاز مقادير . بريم مي كار به y(0.4) زدن تخمين براي را چهار مرتبه باشفورث-آدامز روش اينجا در )مثال پاسخ:داريم است، موجود حقيقي حل جواب آنجائيكه از اما . آورد بدست 4 مرتبه كوتا-رانگ روش از استفاده با توان مي را

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معموليAdams-Bashforth(باشفورث -روش آدامز -1 m-step Method) (ادامه(

39

' 2 , (0) 1y t y y

2 2ty e t

1 2 30.8951625820, 0.7812692469, 0.6591817793و

(0.1, 0.8951625820) 2(0.1) ( 0.8951625820) 1.095162582(0.2, 0.7812692469) 2(0.2) ( 0.7812692469) 1.181269247(0.3, 0.6591817793) 2(0.3) ( 0.6591817

y y y

fff

793) 1.259181779

فرادرس

FaraDars.org

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

صورت، اين در )مثال پاسخ ادامه

:آيند مي بدست زير نتايج روبرو معادله از

جداول در مربوطه Matlab برنامه كمك به 4و 3،2 مراتب باشفورث-آدامز روش به شده انجام محاسبات از اي خالصه .اند شده آورده بعد صفحات

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معموليAdams-Bashforth(باشفورث -روش آدامز -1 m-step Method) (ادامه(

40

1 1 1 2 2

3 3

[55 ( , ) 59 ( , ) 37 ( , )24

9 ( , )],

i i i i i i i i

i i

hy y f t y f t y f t y

f t y

4

4

0.10.6591817793 [55(1.259181779) 59(1.181269247)24

37(1.095162582) 9(1)]0.5296770801

y

y

0 0 1 1 2 2 3 3, , ,y a y a y a y a

فرادرس

FaraDars.org

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

و 3، 2باشفورث مراتب -چند مرحله اي آدامزروش Matlabبرنامه حل معادالت ديفرانسيل معموليبراي 4

function abash(f,a,b,y0,n,order)% solve the initial-value problem y'=f(t,y),

y(a)=y0% using Adams-bashforth method.fprintf('\n Runge-Kutta method gives

\n\n')h=(b-a)/n;t=(a:h:b+h);y(1)=y0;fprintf('y(%2.1f) =%14.8f\n',a,y(1))

% RK4 to startfor i=1:(order-1)

k1=feval(f,t(i),y(i));k2=feval(f,t(i)+h/2,y(i)+h*k1/2);k3=feval(f,t(i)+h/2,y(i)+h*k2/2);k4=feval(f,t(i)+h,y(i)+h*k3);y(i+1)=y(i)+h*(k1+2*k2+2*k3+k4)/6;fprintf('y(%2.1f)

=%14.8f\n',t(i)+h,y(i+1))endfprintf('\n')disp([' Adams-Bashforth method

of order ',num2str(order)])

41

disp('______________________________')disp(' t fi-3 fi-2 fi-1 fi

y Exact error ')disp('_____________________________')fprintf('\n')if(order==4)

% 4th order ABfor i=order:n

f1=feval(f,t(i),y(i));f2=feval(f,t(i-1),y(i-1));f3=feval(f,t(i-2),y(i-2));f4=feval(f,t(i-3),y(i-3));y(i+1)=y(i)+h*(55*f1-59*f2+37*f3-

9*f4)/24;% Enter the exact solution g if known as

g=g(x)% otherwise set g='n'.

x=t(i+1);g='n';

if (g~='n')err=abs(g-y(i+1));

fprintf('%6.2f %12.6f %12.6f %12.6f %12.6f %12.6f

%12.6f %8.2e\n',t(i)+h,f4,f3,f2,f1,y(i+1),g,err)

elsefprintf('%6.2f %12.6f %12.6f %12.6f %12.6f

%12.6f\n',t(i)+h,f4,f3,f2,f1,y(i+1))end

endelseif (order==3)% 3rd order ABfor i=order:nf1=feval(f,t(i),y(i));

f2=feval(f,t(i-1),y(i-1));f3=feval(f,t(i-2),y(i-2));

y(i+1)=y(i)+h*(23*f1-16*f2+5*f3)/12;% Enter the exact solution g if known as

g=g(x)% otherwise set g='n'.

x=t(i+1);g='n';

فرادرس

FaraDars.org

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

2باشفورث مرتبه -آدامزخالصه اي از محاسبات انجام شده به روش

42

>> abash(' f ',0,1,‐1,10,2)Runge‐Kutta method gives y(0.0) =   ‐1.00000000y(0.1) =   ‐0.89516250

Adams‐Bashforth method of order 2__________________________________________________ti i‐3     fi‐3   fi‐2               fi‐1               fi                 yi__________________________________________________

0.20                               1.000000     1.095163    ‐0.7808880.30                               1.095163     1.180888    ‐0.6585130.40                               1.180888     1.258513    ‐0.5287800.50                               1.258513     1.328780    ‐0.3923890.60                               1.328780     1.392389    ‐0.2499700.70                               1.392389     1.449970    ‐0.1020940.80                               1.449970     1.502094     0.0507220.90                               1.502094     1.549278     0.2080091.00                               1.549278     1.591991     0.369344

فرادرس

FaraDars.org

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

3باشفورث مرتبه -آدامزخالصه اي از محاسبات انجام شده به روش

43

>> abash('f',0,1,‐1,10,3)Runge‐Kutta method gives y(0.0) =   ‐1.00000000y(0.1) =   ‐0.89516250y(0.2) =   ‐0.78126910

Adams‐Bashforth method of order 3___________________________________________________ti fi‐3         fi‐2              fi‐1               fi               yi

___________________________________________________

0.30                  1.000000     1.095163     1.181269    ‐0.6592140.40                  1.095163     1.181269     1.259214    ‐0.5297360.50                  1.181269     1.259214     1.329736    ‐0.3935450.60                  1.259214     1.329736     1.393545    ‐0.2512800.70                  1.329736     1.393545     1.451280    ‐0.1035180.80                  1.393545     1.451280     1.503518     0.0492160.90                  1.451280     1.503518     1.550784     0.2064511.00                  1.503518     1.550784     1.593549     0.367757

فرادرس

FaraDars.org

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

4باشفورث مراتب -آدامزخالصه اي از محاسبات انجام شده به روش

44

>> abash('f ',0,1,‐1,10,4)Runge‐Kutta method gives y(0.0) =   ‐1.00000000y(0.1) =   ‐0.89516250y(0.2) =   ‐0.78126910y(0.3) =   ‐0.65918158

Adams‐Bashforth method of order 4_________________________________________________________ti fi‐3            fi‐2              fi‐1              fi                   yi

__________________________________________________________0.40     1.000000     1.095163     1.181269     1.259182    ‐0.5296770.50     1.095163     1.181269     1.259182     1.329677    ‐0.3934640.60     1.181269     1.259182     1.329677     1.393464    ‐0.2511810.70     1.259182     1.329677     1.393464     1.451181    ‐0.1034060.80     1.329677     1.393464     1.451181     1.503406     0.0493380.90     1.393464     1.451181     1.503406     1.550662     0.2065801.00     1.451181     1.503406     1.550662     1.593420     0.367890

فرادرس

FaraDars.org

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

مورد 1i+t اضافي شده يابي درون گره انتگرال زدن تقريب در ،)AM( مولتون-آدامز روش در

:شد خواهد بدل زير فرمول به فرمول صورت اين در كه گيرد مي قرار استفاده

تبديل ،4مرتبه مولتون-آدامز فرمول نام به ديگري كارآمدتر و تر معروف فرمول به فوق فرمول ، است m=3 كه درحالتي

: است زير كلّي فرم داراي كه شود مي

.است 5h(O( مرتبه با برابر موضعي برش خطاي روش، اين در .باشد مي N,…,4,3=i-1 آن در كه

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معمولي)Adams-Moulton Method(مولتون -روش آدامز -2

45

1 ( , ( ))i

i

t

i itf t y t dt

1

1 ( )i

i

t

i i ty y p t dt

1 1

1 1 1 00

1( , )( 1)

mk k

i i i ik

sy y h f t y ds

k

1 1 1 1 1 2 2[9 ( , ) 19 ( , ) 5 ( , ) ( , )]24i i i i i i i i i ihy y f t y f t y f t y f t y

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

:است محاسبه قابل زير قرار به 4 مرتبه مولتون-آدامز روش فرمول : كه كنيم مي فرض ابتدا -1

:داشت خواهيم اساس اين بر -2

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معمولي)ادامه) (Adams-Moulton Method(مولتون -روش آدامز -2

46

1

0

1' ( 1)kk

sds

k

1

0 0

1

1 0

1

2 0

1

3 0

' 1,

1' (1 ) ,2

1' ( )(1 ) ,12

1' ( )(1 )( 1)24

ds

s ds

s s ds

s s s ds

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

:4 مرتبه مولتون-آدامز روش فرمول محاسبه ادامه:داريم روبرو فرمول در جايگزاري -3

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معمولي)ادامه) (Adams-Moulton Method(مولتون -روش آدامز -2

47

1 1

1 1 1 00

1( , )( 1)

mk k

i i i ik

sy y h f t y ds

k

21 0 1 1 1 1 1 2 1 1

33 1 1

1 1 1 1

1 1 1 1

1 1 1

[ ' ( , ) ' ( , ) ' ( , )

' ( , )]1{ ( , ) [ ( , ) ( , )]2

1 [ ( , ) 2 ( , ) ( , )]121 [ ( , ) 3 ( , ) 3 ( ,24

i i i i i i i i

i i

i i i i i i i

i i i i i i

i i i i i

y y h f t y f t y f t y

f t y

y h f t y f t y f t y

f t y f t y f t y

f t y f t y f t

1 2 2) ( , )]}i i iy f t y

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معمولي)ادامه) (Adams-Moulton Method(مولتون -روش آدامز -2

48

اوليه مقدار با اول مرتبه ديفرانسيل معادله حل تقريبي پاسخ 4 مرتبه مولتون-آدامز روش از استفاده با )مثالپاسخ از را كننده آغاز مقادير ضمناً .آوريد بدست t=0.4 و N=10 ازاي به و

.نماييد استخراج يعني مسئله حقيقي حل===============================================================================================

را كننده آغاز مقادير . بريم مي كار به y(0.4) زدن تخمين براي را چهار مرتبه مولتون-آدامز روش اينجا در )مثال پاسخ:آورد بدست 4 مرتبه كوتا-رانگ روش از استفاده با توان مي

' 2 , (0) 1y t y y

2 2ty e t

1 2 30.89516250, 0.78126921, 0.65918158y y y

(0.1, 0.89516250) 1.09516250(0.2, 0.78126921) 1.18126921(0.3, 0.65918158) 1.25918158

fff

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

: آوريم مي بدست را زير مقادير 4 مرتبه باشفورث-آدامز روش اعمال با ، سپس )مثال پاسخ ادامه

:شوند مي حاصل زير مقادير 4 مرتبه مولتون-آدامز كننده تصحيح فرمول اعمال با ، سپس

:با است با برابر ، 4 ي مرتبه ملتون-آدامز روش از حاصل مقدار ،t=1 در

روش هاي چند مرحله حل عددي معادالت ديفرانسيل معمولي)ادامه) (Adams-Moulton Method(مولتون -روش آدامز -2

49

4

4

0.10.65918158 [55(1.25918158) 59(1.18126921)24

37(1.09516250) 9(1)]0.5296769299

y

y

4(0.4, ) (0.4, 0.5296769299) 1.32967693f y f

4

4

0.10.65918158 [9(1.32967693) 19(1.25918158)24

5(1.18126921) (1.09516250)]0.529680082

y

y

10 0.367878366y

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

4مولتون مرتبه -چند مرحله اي آدامزروش Matlabبرنامه حل معادالت ديفرانسيل معموليبراي

function amoulton(f,a,b,y0,n)% solve the initial-value problem y'=f(t,y),

y(a)=y0% using Adams-Moulton method of order

4.fprintf('\n Runge-Kutta method of order 4

gives \n\n')h=(b-a)/n;t=(a:h:b+h);y(1)=y0;fprintf('y(%2.1f) =%14.8f\n',a,y(1))

% RK4 method to startfor i=1:3

k1=feval(f,t(i),y(i));k2=feval(f,t(i)+h/2,y(i)+h*k1/2);k3=feval(f,t(i)+h/2,y(i)+h*k2/2);k4=feval(f,t(i)+h,y(i)+h*k3);y(i+1)=y(i)+h*(k1+2*k2+2*k3+k4)/6;fprintf('y(%2.1f)

=%14.8f\n',t(i)+h,y(i+1))end;fprintf('\n')disp(' Adams-Moulton method of

order 4')50

disp('_______________________________________')

disp(' t fi-2 fi-1 fi fi+1 y

Exact error ')disp('_______________________________

________')fprintf('\n')for i=4:n

f1=feval(f,t(i),y(i));f2=feval(f,t(i-1),y(i-1));f3=feval(f,t(i-2),y(i-2));f4=feval(f,t(i-3),y(i-3));% AB to predictw=y(i)+h*(55*f1-59*f2+37*f3-9*f4)/24;% AM to correctf5=feval(f,t(i+1),w);y(i+1)=y(i)+h*(9*f5+19*f1-5*f2+f3)/24;% write the exact solution g if known as

g=g(x)% otherwise st g='n'.x=t(i+1);

g='n';if (g~='n')

err=abs(g-y(i+1));fprintf('%6.2f %12.6f %12.6f %12.6f %12.6f %12.6f

%12.6f %8.2e\n',t(i)+h,f3,f2,f1,f5,y(i+1),g,err)

elsefprintf('%6.2f %12.6f %12.6f %12.6f %12.6f

%12.6f\n',t(i)+h,f3,f2,f1,f5,y(i+1))end

end

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

به منظور حل معادالت ديفرانسيل معمولي Matlabمعرفي برخي توابع

51

:رعملگ اين مختلف مراتب .منعطف يا سخت غير ديفرانسيل معادالت عددي حل منظور به توابعي : ode توابع -1-ode23: 2 مرتبه كوتاي-رانگ روش بر مبتني كم مرتبه نوع از معمولي ديفرانسيل معادالت حلode23(@odefun,tspan,y0)=[Tout,Yout] :كلي فرم-

- odefun function Y=odefun(t,y)

-ode45: 4 مرتبه كوتاي-رانگ روش بر مبتني متوسط مرتبه نوع از معمولي ديفرانسيل معادالت حل:ode45(@odefun,tspan,y0)=[Tout,Yout] :كلي فرم-

- odefun function Y=odefun(t,y)

-deval: اعمالي معمولي ديفرانسيل معادالت حل شيوه و نحوه ي كننده ارزيابي تابع

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

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 52: آموزش محاسبات عددی - بخش پنجم

براي حل معادالت ديفرانسيل معمولي Matlabنمونه برنامه 4كوتاي مرتبه -و برنامه نويسي رانگ ode45به كمك دستور

52

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

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 53: آموزش محاسبات عددی - بخش پنجم

براي حل معادالت ديفرانسيل معمولي Matlabنمونه برنامه 4كوتاي مرتبه -و برنامه نويسي رانگ ode45به كمك دستور

Pendulum IV Problem (Second Order ODE):

53

Easy Progaming using ode45:function pendulum

[~,y]=ode45(@pend,[0 100],[0 10*pi/180]);

plot(y(:,1),y(:,2));xlabel('y1=teta')ylabel('y2=dteta')figure;subplot 211;plot(y(:,1));subplot 212;plot(y(:,2));

function DD= pend(t,y)

DD=[y(2);-sqrt(9.8)*sin(y(1))];

Rung-Kuta Order4 Programing:f=@(alpha) alpha ;g=@(teta) -w^2*teta ;g=9.8;L=1;N=200;w=sqrt(g/L);

t=linspace(0,5,N); % time between 0-5sh=t(2)-t(1); % time stepf=@(alpha) alpha;g=@(teta) -w^2*sin(teta);teta=zeros(1,N);alpha=zeros(1,N);teta(1)=10*pi/180; % initial angle(radian)alpha(1)=0; % initial angle speedfor i=1:N-1k1= f(alpha(i));kp1= g(teta(i));k2=f(alpha(i)+h/2*kp1);kp2=g(teta(i)+h/2*k1);k3=f(alpha(i)+h/2*kp2);kp3=g(teta(i)+h/2*k2);k4=f(alpha(i)+h*kp2);kp4=g(teta(i)+h*k2);teta(i+1)=teta(i)+h/6*(k1+2*k2+2*k3+k4);alpha(i+1)=alpha(i)+h/6*(kp1+2*kp2+2*kp3

+kp4);endplot(t,teta)

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

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 54: آموزش محاسبات عددی - بخش پنجم

54

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

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 55: آموزش محاسبات عددی - بخش پنجم

55

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

.تهيه شده است

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

faradars.org/fvmth102

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

faradars.org/fvmth102

فرادرس

FaraDars.org