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

Post on 09-Feb-2017

244 Views

Category:

Education

24 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

«شیوه های مشتق و انتگرال گیری عددی»

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

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

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

faradars.org/fvmth102

فرادرس

FaraDars.org

چهارمفصل عناوين

عددي گيري انتگرال و گيري مشتق :چهارم فصل) MATLAB برنامه همراه به( عددي گيري مشتق هاي روش -1

تيلور بسط- ريچاردسون فرمول -

) MATLAB برنامه همراه به( )يكنواخت بندي بازه با( كوتز – نيوتن روش به عددي هاي گيري انتگرال -2ريمان مجموع بر اي مقدمه - اي ذوزنقه قاعده روش - 3/1 سيمپسون روش - رومبرگ الگوريتم -

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

faradars.org/fvmth102

فرادرس

FaraDars.org

مقدمه:عددي گيري مشتق ضرورت•

تابع نبودن دست در–تابع پيچيدگي–

:عددي گيري انتگرال مسئله طرح• تحليلي حل-تحليلي تابع–حل بدون-تحليلي تابع–

Discrete( گسسته داده – data(

3

12

1

0

2

)(

1)(

dxexf

dxexf

x

x

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

faradars.org/fvmth102

فرادرس

FaraDars.org

هاي روش مشتق گيري عددي

4

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

faradars.org/fvmth102

فرادرس

FaraDars.org

مشتق گيري عددي مرتبه اول

5

يكنواخت فاصله با( عددي هاي مشتق روابط متداول اشكال(:حول تابع تيلور بسط

حول تابع تيلور بسط

)(!3

1)(!2

1)()()(

)(!3

1)(!2

1)()()(

2

32

xfhxhfxfh

xfhxf

xfhxfhxfhxfhxf

)(!3

1)(!2

1)()()(

)(!3

1)(!2

1)()()(

2

32

xfhxhfxfh

hxfxf

xfhxfhxfhxfhxf

)( hxf 0h

)( hxf 0h

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

faradars.org/fvmth102

فرادرس

FaraDars.org

گيري عددي مرتبه اولادامه مشتق

6

داريم نيز قبل رابطه دو تركيب از

)(!3

1)(!2

1)()()(

)(!3

1)(!2

1)()()(

2

2

xfhxhfxfh

hxfxf

xfhxhfxfh

xfhxf

)(!3

1)(2

)()( 2 xfhxfh

hxfhxf

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

faradars.org/fvmth102

فرادرس

FaraDars.org

گيري عددي مرتبه اولادامه مشتق

7

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

Forward(1 :پيشرونده اختالف تقريب )1 difference Estimation

(2:پسرو اختالف تقريب )2 Backward difference Estimation

(3 :مركزي اختالف تقريب )3 Central difference Estimation

)()()()( hOEh

xfhxfxf

)()()()( hOEh

hxfxfxf

)(2

)()()( 2hOEh

hxfhxfxf

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

faradars.org/fvmth102

فرادرس

FaraDars.org

مثال از مشتق گيري عددي مرتبه اول

8

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

====================================================================================================:نماييم استفاده f(x)=cos(x) تابع اول مشتق محاسبه براي قبل هاي فرمول از تا است كافي سوال، اين به پاسخ براي )حل

زيمرك گيري مشتق روش در محاسباتي خطاي لذا ميگيرد، يك از كوچكتر مقاديري همواره h اينكه به توجه با :گيري نتيجه *.بود خواهد كمتر پسرو و پيشرو روش دو از

radx 8.0 )cos()( xxf

01.0h

-واقعي مقدار|=خطا|مقدار تخميني

مقدار واقعي)f’(x)=-sin(x) (

يمقدار تخمينمشتق گيري روشمشتق

0.0034-0.7174-0.7208 پيشرو0.0035-0.7174-0.7139 پسرو5.59e-5-0.7174-0.7173 مركزي

hf(x)h)f(x(x)f

hh)f(xf(x)(x)f

2hh)f(xh)f(x(x)f

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

faradars.org/fvmth102

فرادرس

FaraDars.org

9

مركزي گيري تفاضل كمك به دوم مشتقتابع تيلور بسط از f(x+h)+f(x-h) حول h=0 داريم:

)(121)()()(2)(

)()(2)()(

)4(22

2

xfhxfh

hxfxfhxf

xfhxfhxfhxf

مشتق گيري عددي مرتبه دوم

)()()(2)()( 22 hOE

hhxfxfhxfxf

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

faradars.org/fvmth102

فرادرس

FaraDars.org

مثال براي مشتق گيري عددي مرتبه دوم

10

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

==================================================================================================== f(x)=cos(x) تابع اول مشتق محاسبه براي قبل هاي فرمول از تا است كافي سوال، اين به پاسخ براي )حل

:نماييم استفاده

radx 8.0

)cos()( xxf

01.0h

مقدار -واقعي مقدار|=خطا|تخميني

مقدار واقعيf "(x) = - cos(x)

يمقدار تخمينمشتق گيري روشمشتق

5.81e-6-0.6967067-0.6967009مركزي

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

faradars.org/fvmth102

فرادرس

FaraDars.org

روش هاي مشتق گيري عددي Matlabبرنامه نتايج شبيه سازي آنقبل و مثال براي

11

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

12

سازد مي قادر را ما كه دهيم مي قرار مطالعه مورد را f(x) مانند تابع يك مشتقات زدن تقريب براي تكنيكي معروف ريچاردسون يابي برون نام با تكنيك اين .دهيم كاهش را تيلور بسط برش از حاصل خطاي ميزان تا

:بگيريد نظر در را زير فرم به معادله ، شيوه اين بهتر فهم براي .است

تعريف زير فرم به تابعي ثابت x يك براي حال .دارند بستگي x و f به 4c و 2c ضرايب مقادير فوق، فرمول در:گردد مي

:داريم نتيجه در

44

22

)5(42

2)()(

)(!5

1)(!3

12

)()()(

hchch

hxfhxf

xfhxfhh

hxfhxfxf

hhxfhxfh

2)()()(

44

22)()( hchchxf

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

faradars.org/fvmth102

فرادرس

FaraDars.org

13

:كنيم مي استفاده h/2 از h جاي به برش خطاي كاهش براي حال

فرمول از آن كاستن و 4 در فوق معادله كردن ضرب با را h/2 عامل :كنيم مي حذف

:داريم نتيجه در

44

22 2/2/)2/()( hchchxf

44

22)()( hchchxf

44

344

44

22

44

2

2

41)(

31)2/(

34)(

43)()2/(4)(3

)()(

2/44

4)2/(4)(4

hchhxf

hchhxf

hchchxf

hchchxf

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

faradars.org/fvmth102

فرادرس

FaraDars.org

14

جديد تقريبي فرمول .يابد مي كاهش 4h مرتبه تا مشتق زدن تخمين خطاي شود مي مشاهده كه طور همان:بود خواهد زير صورت به

و

به .نمايد نزول تر پايين و 6h به 4h از خطا مرتبه كه داد بسط اي گونه به توان مي را يابي برون روش اين :زير قرار به مقاديري كردن محاسبه و α(h) تقريب يك داشتن فرض با منظور همين

:داشت خواهيم را زير بازگشتي فرمول

444

1)(31)2/(

34)( hchhxf

)()2/(31)2/()( hhhxf

hhxfhxfh

2)()()(

,1 1( ), 1, 2, ...2n n

hD a n

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

, 1 , 1,4 1

4 1 4 1

m

n m n m n mm mD D D

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

faradars.org/fvmth102

فرادرس

FaraDars.org

15

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

:است شده داده نشان زير فرم به جدولي در موجود هاي كميت مقادير كردن تنظيم

1, mnD)( 22 mhO

1,1

2,1 2,2

3,2 3,3

,1 ,2 ,

..N N N N

DD D

D DD D D

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

faradars.org/fvmth102

فرادرس

FaraDars.org

16

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

ايستسب مي زماني چه كه پرسش اين به پاسخ . بگيريم درنظر تكرار دفعات تعداد براي را حدي است بهتر ، لذا. باشد نمي مشخص همچنان ، داد پايان تقريب بهترين آوردن بدست براي را عمليات

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

را يابي برون عمليات توان مي ، بود منفي پاسخ چنانچه .خير يا ميماند باقي يكسان بعد مرحله به مرحله يك از.داد خاتمه

NND ,1,1D

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

17

براي h=25.0 و )2,2D( N=2 ازاي به ريچاردسون يابي برون فرمول روش به را f)x(=xe تابع مشتق )مثالf مقدار زدن تقريب ’ .نماييد محاسبه (1)

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

1.25 0.75

1,1

1.125 0.875

2,1

4( ) 2.7466850.5

4( / 2) 2.7253660.25

m

m

e eD a h

e eD a h

2,2 2,1 1,14 1 2.718259

4 1 4 1D D D

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

faradars.org/fvmth102

فرادرس

FaraDars.org

براي فرمول برون يابي ريچاردسون MATLABبرنامه

function derive(f,h,a,n)% Approximate the derivative of a function at x=adisp(' Derivative table')disp('__________________________')disp(' i h Di,1 Di,2 Di,3 ... ')disp('__________________________')D(1,1)=(feval(f,a+h)-feval(f,a-h))/(2*h);fprintf('%2.0f %8.4f %12.4f\n',1,h,D(1,1));for i=1:n-1

h=h/2;

18

D(i+1,1)=(feval(f,a+h)-feval(f,a-h))/(2*h);

fprintf('%2.0f %8.4f %12.4f',i+1,h,D(i+1,1));

for k=1:iD(i+1,k+1)=D(i+1,k)+(D(i+1,k)-

D(i,k))/((4^k)-1);fprintf('%12.4f',D(i+1,k+1));

endfprintf('\n');

end

x=a معلوم اي نقطه در تابع يك عددي گيري مشتق جهتderive.m بنام زيرMATLAB برنامهdf/dx)) تابع ها ورودي .باشد مي ريچاردسون فرمول از استفاده با f، مقدار h، مشخص نقطه a تعداد و

.هستند n يعني ها سطر

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

faradars.org/fvmth102

فرادرس

FaraDars.org

حل مثال فرمول برون يابي ريچاردسون به مربوطه MATLABكمك برنامه

19

>> f = @(x)(exp(x)); % or f=inline(‘exp(x)’)>> derive(f,0.25,1,6)

Derivative table_________________________________________________________i h Di,1 Di,2 Di,3 ...

_________________________________________________________1 0.2500 2.74672 0.125000 2.725366 2.718259673 0.062500 2.720052 2.71828045 2.718281834 0.031250 2.718724 2.71828174 2.71828183 2.718281835 0.015625 2.718392 2.71828182 2.71828183 2.71828183 2.718281836 0.007813 2.718309 2.71828183 2.71828183 2.71828183 2.71828183 2.71828183

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

faradars.org/fvmth102

فرادرس

FaraDars.org

براي مشتق گيري عددي Matlabنحوه نوشتن كد مرتبه اول برداري

بعدي nمشتق گيري مرتبه اول از توابع يك بعدي و دو بعدي تا : gradientدستور •• [fx]=gradient(F) گراديان يا مشتق مرتبه اول يك بعدي تابع • [fx,fy]=gradient(F) تابعبعدي يا مشتق مرتبه اول دو گراديان • ...

: 1مثال•>> F=[2 1 5 -1];>> [fx]=gradient(F) fx = -1 1.5 -1 -6

:2مثال •>> F=[2 3 -1 5; 3 -2 0 1];>> [fx,fy]=gradient(F) fx =[1.0 -1.5 1.0 6.0;-5.0 -1.5 1.5 1.0]

fy =[1 -5 1 -4; 1 -5 1 -4]

20

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

faradars.org/fvmth102

فرادرس

FaraDars.org

براي مشتق گيري عددي مرتبه دوم Matlabكد )الپالسين(

:laplacianدستور •x laplacian(f,x)بر حسب بردار fمحاسبه الپالسين تابع –

>> syms x y z>> f(x, y, z) = 1/x + y^2 + z^3;>> L = laplacian(f, [x y z]) L(x, y, z) = 6*z + 2/x^3 + 2

laplacian(f)به صورت سمبوليك fالپالسين تابع محاسبه –>> syms x y t>> f= 1/x^3 + y^2 - log(t);>>laplacian(f) ans = 1/t^2 + 12/x^5 + 2

):مشتق مرتبه دوم(معادل با محاسبه پالسين Matlabدستورات ديگر •• >> laplacian(f,[x,y]) == divergence(gradient(f(x, y)), [x y])

21

).(2 fff

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

faradars.org/fvmth102

فرادرس

FaraDars.org

براي مشتق گيري Matlabنمونه برنامه هاي دوبعدي و سه بعدي

:و سه بعدي براي مشتق گيري از توابع دوبعدي gradientدستور •• [fx,fy]=gradient(f,hx,hy)• [fx,fy,fz]=gradient(f,hx,hy,hz)

22

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

faradars.org/fvmth102

فرادرس

FaraDars.org

روش هاي انتگرال گيري عددي

23

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

faradars.org/fvmth102

فرادرس

FaraDars.org

روش هاي انتگرال گيري عددي:)ريمان مجموع( مجموع عبارت برمبناي انتگرال تقريب•

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

)مساوي فواصل( كوتز-نيوتن•

Trapezoidal( اي ذوزنقه روش• Numerical Integration Method(سيمپسون•

)نامساوي فواصل( گوس روش•

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

24

n

iiii

b

axfAdxxfI

1)()(

Pn-1(x)

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

faradars.org/fvmth102

فرادرس

FaraDars.org

روش هاي انتگرال گيري عددي:كوتز-نيوتن•

.h مساوي فاصله (n-1) به [a,b] فاصله تقسيم•

.داده نقاط از عبوري (n-1) درجه اي چندجمله تقريب•

الگرانژ اي جمله چند•

الگرانژ اي چندجمله تقريب از استفاده با انتگرال تقريب•

25

b

a ii

n

iii

n

i

b

a ii

b

a n

dxxLAxfA

dxxLxf

dxxPI

)(,)(

)()(

)(

1

1

1

n

iiin xLxfxP

11 )()()(

1

n

abh

Pn-1(x)

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

نقطه n=2 با )Trapezoidal( اي ذوزنقه قاعده•.)n=3( 1/3 سيمپسون•

.)n=4( 3/8 سيمپسون•

:نكته *اي ذوزنقه قاعده روش :روش مهمترين •.شود مي نتيجه رامبرگ گيري انتگرال مفيد روش ريچاردسون، يابي برون روش با تركيب با •

26

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

faradars.org/fvmth102

فرادرس

FaraDars.org

روش هاي انتگرال گيري عدديروش قاعده ذوزنقه اي -1

27

:)n=2 نقطه دو براي( اي ذوزنقه قاعده روش •

2)(

21)(1

2)(

21)(1

22

12

12

21

21

21

habh

dxaxh

Ah

axxxxxl

habh

dxbxh

Ah

bxxxxxl

b

a

b

a

)(12

)(12

)()(

)()(2

3

3

cfh

cfabIdxxfE

bfafhI

b

a

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

faradars.org/fvmth102

فرادرس

FaraDars.org

28

:)نقطه n براي( مركب اي ذوزنقه قاعده روش •

],[,)(12

)(

)()(2)(2

)(,)()(2

2

1

21

1

1

1

bafhabE

xfxfxfh

II

dxxfIxfxfhI

n

n

ii

n

ii

b

aiii

روش هاي انتگرال گيري عددي)ادامه(روش قاعده ذوزنقه اي -1

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

faradars.org/fvmth102

فرادرس

FaraDars.org

ايمثالي از انتگرال گيري به شيوه قاعده ذوزنقه

29

همچنين .بزنيد تقريب را انتگرال حاصل n=1,2 ازاي به مركب اي ذوزنقه قاعده از استفاده با )1مثالكنيد؟ محاسبه I=98.4277 انتگرال حاصل دقيق مقدار ازاي به را نسبي و مطلق خطاهاي مقدار

:داريم زيربازه n=1 تعداد ازاي به مركب اي ذوزنقه قاعده از استفاده با )مثال حل

Eabs=|98.4277-271.1548|=172.7271 Erel=Eabs/Ireal=172.7271/98.4277=1.7549+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

:زيربازه n=2 تعداد ازاي به مركب اي ذوزنقه قاعده از استفاده حال

Eabs=|98.4277-150.7031|=52.2754 Erel=Eabs/Ireal=52.2754/98.4277=0.5311

3

0

2 dxex x

1548.271)3()0(233

0

2 ffdxexI x )()(2

bfafhI

31

03

nabh

7031.150)5.1(23)3()0(

433

0

2 fffdxexI x

)()(2)(2 321 bxfhaxfaxfhI

5.123

203

n

abh

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

faradars.org/fvmth102

فرادرس

FaraDars.org

ايمثالي از انتگرال گيري به شيوه قاعده ذوزنقه

30

.بزنيد تقريب را انتگرال n=5 گرفتن نظر در با و مركب اي ذوزنقه قاعده از استفاده با )2مثال

:داريم زيربازه n=5 تعداد ازاي به و اي ذوزنقه قاعده از استفاده با )مثال حل

1

0

6 )147( dxx

276288.9]21

34.213064.151147.14008.147[101)]1()8.0(2

)6.0(2)4.0(2)2.0(2)0([101)147(

1

0

6

ff

ffffdxxI

2.05

01

nabh

)()(2)(2

1

21 n

n

ii xfxfxfhI

276288.9I

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

faradars.org/fvmth102

فرادرس

FaraDars.org

ايانتگرال گيري به شيوه قاعده ذوزنقه تقريب خطا در

31

:)زيربازه n=2 تعداد براي( اي ذوزنقه قاعده روش در خطا تقريب •

:انتگرالها براي متوسط مقدار قضيه طبق•• Mean value theorem for integral

:داده نقطه n براي كل خطاي •

مطلق قدر M و h=(b-a)/n آن در كه باشد مي زير قرار به مركب اي ذوزنقه گيري انتگرال روش به مربوط برش خطاي• اكسترمم مقدار:باشد مي [a,b] بازه در تابع

1

1

,

))()((!2

1)()( 11

iii

x

x iii

x

x ii

xx

dxxxxxfdxxpxfE i

i

i

i

)(126

)(!2

1))(()(!2

1 33

11

ii

x

x iiii fhhfdxxxxxfE i

i

)(12

)()(112

)()(12

21

1

21

1

31

1 fhabf

nhabfhEE

n

ii

n

ii

n

iitotal

MabhET )(12

2

)(xf

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

faradars.org/fvmth102

فرادرس

FaraDars.org

ايمثال تعداد بازه انتگرال گيري به شيوه قاعده ذوزنقه

32

؟10-10 تدق با و اي ذوزنقه قاعده شيوه به زير انتگرال حاصل تقريب براي الزم فاصله زير تعداد محاسبه مطلوبست )مثال

==================================================================================================:داريم منظور اين براي )حل

آن اكسترمم مقدار و است پيوسته تابع دوم مشتق f يعني x=0 در ”(x=0)=2 دهد مي رخ:

1

0 112ln dx

xI

32 )1(2)(,

)1(1)(,

11)(

xxf

xxf

xxf

]1,0[,2)( f

45102

2

22

100825.41061101

122

12)()(01

12)01()(

12)(

nnn

nff

nfhabE

5min n

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

faradars.org/fvmth102

فرادرس

FaraDars.org

روش انتگرال گيري عددي با قاعده ذوزنقه اي Matlabبرنامه function trapez(f,a,b,n)% Compute the integral of a f from a to b

using the %trapezoid ruleh=(b-a)/n;disp('______________________________')disp([' i xi f(xi)

h=',num2str(h) ])disp('______________________________')S=feval(f,a);fprintf(' %2.0f %12.4f %14.6f\n',0,a,S);

33

for i=1:n-1x=a+h*i;g=feval(f,x);S=S+2*g;fprintf(' %2.0f %12.4f %14.6f\n',i,x,g);

endS=S+feval(f,b);fprintf(' %2.0f %12.4f

%14.6f\n',n,b,feval(f,b));INT=h*S/2;fprintf('\n The intergral of f(x) is

=%16.8f\n',INT);

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

faradars.org/fvmth102

فرادرس

FaraDars.org

34

نقاط در 2 درجه اي جمله چند يك از حاصل يابي درون با را تابع ،)1/3( سيمپسون روش در • داده نشان زير شكل در آنچه مشابه محاسبات انجام در h و n براي دو مقدار گرفتن نظر در با سپس و زده تقريب :آيند مي تبدس روش اين خطاي همراه به زير سيمپسون گيري انتگرال فرمول تيلور، سري از استفاده با و است شده

:باشد مي زير قرار به مركب سيمپسون گيري انتگرال روش به مربوط برش خطاي•:باشد مي ]b,a[ بازه در x()4(f( تابع اكسترمم مقدار مطلق قدر M و =h)n/)a-b آن در كه

2

,...4,2

1

,...3,10

12

432210

0

243

)4(3

)4(3

)4(3

n

ii

n

iin

nnn

n

ffffhI

fffh

fffhfffhI

nxxh

)(xf

11 ,, iii xxx

روش هاي انتگرال گيري عددي1/3روش سيمپسون -2

MhabE180

)( 4

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

faradars.org/fvmth102

فرادرس

FaraDars.org

1/3ون شيوه قاعده سيمپسعددي به گيري براي انتگرال مثال

35

.كنيد حل را معين انتگرال ساده سيمپسون قاعده از استفاده با )مثال

===========================================================================:داريم منظور اين براي )حل

3

0

2 dxex x

55252.110

)3()5.1(4)0(21

)4(3 210

3

0

2

fff

fffhdxex x

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

faradars.org/fvmth102

فرادرس

FaraDars.org

روش انتگرال گيري عددي با قاعده سيمپسون Matlabبرنامه function simpson(f,a,b,n)% Compute the integral of a f from a to b using

Simpson's% composite rule. n must be even.if n/2~=floor(n/2)

disp(' n must be even')break

end; h=(b-a)/n;disp('__________________________________')disp([' i xi f(xi) h=',num2str(h)

])disp('__________________________________')S=feval(f,a);

36

fprintf(' %2.0f %12.4f %14.6f\n',0,a,S);for i=1:n/2

m=2*i-1;x=a+h*m;g=feval(f,x);S=S+4*g;fprintf(' %2.0f %12.4f %14.6f\n',m,x,g);m=2*i;x=a+h*m;g=feval(f,x);if(i==n/2)

S=S+g;else

S=S+2*g;end;fprintf(' %2.0f %12.4f %14.6f\n',m,x,g);

endINT=h*S/3;fprintf('\n The intergral of f(x) is =%16.8f\n',INT);

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

faradars.org/fvmth102

فرادرس

FaraDars.org

37

.باشد مي رومبرگ، )تربيع( سازي چهارم يك الگوريتم گيري، انتگرال مشهور و كاربرد پر هاي روش از ديگر يكي .باشد مي استوار ريچاردسون يابي برون با مركب اي ذوزنقه قانون تركيبي شكل از استفاده بر روش اين اساس

: كنيم مي شروع مركب اي ذوزنقه شيوه به زدن تقريب از ابتد، در -1

: از عبارتند ها پارامتر فوق فرمول درn = ها ذوزنقه تعداد h = ها زيربازه طول

از هايي توان با متناظر هاn كه است اين بر فرض سادگي براي :باشند مي 2

روش هاي انتگرال گيري عدديالگوريتم رومبرگ -3

1

1[ ( ) ( )] ( )

2

n

n ii

hT f a f b h f x

b ahn

( 0,1, ..., )ix a ih i n

12 ( 1, 2, ...)kn k

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

faradars.org/fvmth102

فرادرس

FaraDars.org

38

با هايي بازه زير تا كنيم مي نصف را ]b,a[ بازه كه گرفت نظر در دفعاتي تعداد عنوان به را n توان مي ترتيب اين به.)روبرو شكل( آيند حاصل h)=k2)/a-b-1 طول

فرم رومبرگ، روش به گيري انتگرال بيان و طرح نمايش آغاز براي : گيريم مي نظر در مركب اي ذوزنقه قانون براي را زير جديد نوشتاري

زيربازه k2-1 به را مركب اي ذوزنقه قانون كه آيد مي بدست زماني فوق فرمول كه.باشيم كرده اعمال

روش هاي انتگرال گيري عددي)ادامه(الگوريتم رومبرگ -3

12 1

,1 1 11

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

k

k k k ki

b a b a b aR f a f b f a i k

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

faradars.org/fvmth102

فرادرس

FaraDars.org

39

روش هاي انتگرال گيري عددي)ادامه(الگوريتم رومبرگ -3

:كنيم مي جايگزين را k2-1 و )k2)/a-b-1 ترتيب به n و h جاي به فوق فرمول در حال

براي ليك بازگشتي رابطه استقراء، شيوه به .باشند مي : كه باشيد داشته توجه

12 1

,1 1 11

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

k

k k k ki

b a b a b aR f a f b f a i k

1,1

2,1

3

2,11

[ ( ) ( )]2

[ ( ) ( )] ( )4 2 2

[ ( ) ( )] ( )8 4 2

.i

b aR f a f b

b a b a b aR f a f b f a

b a b a b aR f a f b f a i

etc

1,12,1

32,1

3,11

( )2 2 2

1[ ( )]2 4 2 2

.i

R b a b aR f a

R b a b aR f a i

etc

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

faradars.org/fvmth102

فرادرس

FaraDars.org

40

روش هاي انتگرال گيري عددي)ادامه(الگوريتم رومبرگ -3

زير فرمول صورت به =n,…,3,2k براي kR-1,1 جمالت ازاي به و kR,1 براي كلي بازگشتي رابطه استقراء، شيوه به:آيد مي بدست

.كاربرد به nR,…,1,3R,1,2R,1 مقادير دنباله محاسبه براي 1,1R مقدار داشتن با توان مي را فوق بازگشتي رابطه

رد كه است، نشده وارد محاسبات در كردن گرد از حاصل خطاي هيچگونه كه است شده فرض فوق، هاي فرمول در .است شده سازي پياده و استفاده I انتگرال محاسبه براي ريچاردسون يابيي برون روش اينصورت

31,1

,1 1 21

1[ ( )]2 22 2

kk k k

i

R b a b aR f a i

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

faradars.org/fvmth102

فرادرس

FaraDars.org

41

روش هاي انتگرال گيري عددي)ادامه(الگوريتم رومبرگ -3

قابل زير فرم به انتگرال محاسبه از حاصل خطاي بازه، زير n2-1 تعداد روي بر مركب اي ذوزنقه قانون اعمال با:است نمايش

.هستند آن مشتقات و f(x) از توابعي ... و C، D، E فوق فرمول در كه 1,2R و 1,1R از استفاده با را I انتگرال مقادير نمونه طور به ريچاردسون، يابي درون روش با فوق مراحل انجام براي

:زنيم مي تقريب

2 4 61( ) ( ) ( ) ...

2n

b aC h D h E h with h

2 41,1

2 4

2,1

( ) ( ) ...

( ) ( ) ...4 16

I R C h D h

h hI R C D

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

faradars.org/fvmth102

فرادرس

FaraDars.org

42

روش هاي انتگرال گيري عددي)ادامه(الگوريتم رومبرگ -3

:آيند مي بدست روبرو قرار به I انتگرال براي ديگري تخمين فوق، هاي فرمول تركيب با

آن كه آيد مي بدست جديدي تخمين روش، اين كردن دنبال با .كند مي حذف را 4h(D( خطاي جمله يابي برون اين:دهيم مي نمايش زير بصورت را

خواهد k2h(O( مرتبه از k,iR جمله برش خطاي روش اين در .باشند مي i,…,3,2=k و n,…,3,2=i درآن كه .شود مي هناميد رومبرگ )سازي چهارم يك( تربيع الگوريتم انتگرال، محاسبه براي فوق تقريب ترتيب، بدين .بود

2 41,1

2 4

2,1

( ) ( ) ...

( ) ( ) ...4 16

I R C h D h

h hI R C D

2,1 1,1

2,3

43

R RR

1, 1 1, 1

, 1

44 1

ki k i k

i k k

R RR

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

faradars.org/fvmth102

فرادرس

FaraDars.org

الگوريتم رومبرگگيري به شيوه براي انتگرال مثال

43

تقريب رومبرگ الگوريتم از 2,2R جمله محاسبه با را معين انتگرال عددي مقدار )مثال.بزنيد

===========================================================================:داريم منظور اين براي )حل

3

0

2 dxex x

1,1

2,1

3 [ (0) (3)] 271.15474823 3 3[ (0) (3) ( )] 150.7030754 2 2

R f f

R f f f

2,1 1,12,2

4110.552517

3R R

R

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

faradars.org/fvmth102

فرادرس

FaraDars.org

44

روش هاي انتگرال گيري عددي)ادامه(الگوريتم رومبرگ -3

:باشد مي نمايش قابل زير قرار به رومبرگ )دنباله( آرايه جدول كل در

1,1

2,1 2,2

3,1 3,2 3,3

4,1 4,2 4,3 4,4

,1 ,2 ,3 ,4 ,

. . . . .

. . . . .

. . . . .. ..n n n n n n

RR RR R RR R R R

R R R R R

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

faradars.org/fvmth102

فرادرس

FaraDars.org

الگوريتم رومبرگگيري به شيوه دوم براي انتگرال مثال

45

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

===========================================================================:گيريم مي نظر در را زير فرضيات ابتدا )حل

:گردد مي پذير امكان را محاسبات ادامه 1,2R و 1,1R آغازين مقادير محاسبه با

1

0

6)147( dxxI

6( ) 7 14 , 0, 1, 6f x x a b n

1,11 0 1[ (0) (1)] [7 21] 14

2 2R f f

2,11 0 1 0 1 0[ (0) (1)] (0 ) 10.609375

4 2 2R f f f

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

faradars.org/fvmth102

فرادرس

FaraDars.org

الگوريتم رومبرگگيري به شيوه مثال دوم براي انتگرال

46

و 1,1R مقادير جايگذاري و بازگشتي رابطه از استفاده با حال، )مثال حل ادامه

1,2R داشت خواهيم آن در:

1, 1 1, 1

, 1

44 1

ki k i k

i k k

R RR

2,1 1,12,2

43

4(10.609375) 14 9.47916666673

R RR

2,13,1

1 1 1 1 3[ ( , ) ( , )] 9.428446679692 4 2 2 2 2

RR f f

3,1 2,13,2

49.0348307292

3R R

R

3,2 2,24

9.00520833333

R R 3,3R

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

faradars.org/fvmth102

فرادرس

FaraDars.org

به شيوه الگوريتم رومبرگگيري عددي انتگرال Matlabبرنامه function romberg(f,a,b,n)% Compute the integral of f on [a,b] using

Romberg %integration.fprintf('\n')disp(' Romberg table')disp('_______________________________

_________')disp(' i h Ri,1 Ri,2 Ri,3 ...

')disp('_______________________________

_________')h=b-a;R(1,1)=h*(feval(f,a)+feval(f,b))/2;fprintf('%2.0f %8.4f

%12.4f\n',1,h,R(1,1));m=1;

47

for i=1:n-1h=h/2;S=0;

for j=1:mx=a+h*(2*j-1);S=S+feval(f,x);

end R(i+1,1)=R(i,1)/2+h*S;fprintf('%2.0f %8.4f

%12.4f',i+1,h,R(i+1,1));m=2*m;for k=1:i

R(i+1,k+1)=R(i+1,k)+(R(i+1,k)-R(i,k))/(4^k-1);

fprintf('%12.4f',R(i+1,k+1));end fprintf('\n');

end

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

48

وفقي )سازي چهارم يك( تربيع روش بر مبتني عددي گيري انتگرال منظور به تابعي : integral تابع -1سمبوليك نوع تابع يك از معين نا يا معين تحليلي گيري انتگرال براي دستوري :int تابع -2

Example 1:

>> integral(@(x)(exp(x).*x.^2),0,1) ans = 0.7183

>> syms x; f= exp(x)*x^2; int(f,0,1) subs(exp(x)*(x^2 - 2*x + 2),1)-subs(exp(x)*(x^2 -2*x + 2),0) = exp(1)-2 = 0.7183

Example 2:

>> integral(@(x)(x.^2.*sqrt(1+x.^2)),0,2) ans = 4.8507

>> syms x; f= x.^2.*sqrt(1+x.^2); double(int(f,0,2))

2 2 2

01x x dx

1

0

2 dxex x

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

49

.اي ذوزنقه قاعده روش بر مبتني عددي گيري انتگرال منظور به تابعي : trapz تابع -3Z : تابع اين از استفاده كلي فرم = trapz(X,Y) از منظور آن در كه X و Y مقادير بردار ترتيب به xو ها زيربازه هاي .باشد مي X بردار از درآيه هر با متناظر y مقادير بردار

Example:

:مساوي فواصل با هايx بر مبتني اي ذوزنقه قاعده روش به عددي گيري انتگرال كمك به حل -

>> X= 0:pi/100:pi; Y= sin(X); Z = trapz(X,Y) or Z = trapz(Y) * pi/100 Z = 1.9998

:مساوي نا فواصل با هايx بر مبتني اي ذوزنقه قاعده روش به عددي گيري انتگرال كمك به حل-

>> X= sort(rand(1,101),*pi); Y= sin(X); Z = trapz(X,Y) or Z = trapz(Y) * pi/100 Z = 1.9984

0

2)0cos()cos()sin( dxx

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

50

سيمپسون روش بر مبتني عددي گيري انتگرال منظور به تابعي :quad تابع -4

q : تابع اين از استفاده كلي فرم = quad(fun,a,b,tol) ورودي هاي آرگومان آن در كه fun، a، b و tol ترتيب به .باشند مي عددي گيري انتگرال خاتمه تلورانس و انتگرال باالي حد و انتگرال پايين حد دار، دسته تابع

Example:

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

>> F = @(x)1./(x.^3-2*x-5); Q = quad(F,0,2); Q = -0.4605

2

0 3 4605.052

1 dxxx

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

51

:شده معرفي عددي گيري انتگرال توابع از منشعب MATLAB افزار نرم دستورات از برخي-

• integral2, integral3: دستور مشابه integral گانه سه و دو توابع براي البته

•quad2d: روش به دوگانه انتگرال عددي محاسبه tiled

•quadgk: وفقي رود كرون-گوس تربيع روش به انتگرال عددي محاسبه

•quadv, quadl: تابع توسط شده جايگذاري( انتگرال عددي محاسبه integral جديد هاي نسخه در(

•dblquad: تابع توسط شده جايگذاري( گانه دو انتگرال عددي محاسبه integral2 جديد هاي نسخه در(

•triplequad: تابع توسط شده جايگذاري( گانه سه انتگرال عددي محاسبه integral3 جديد هاي نسخه در(

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

faradars.org/fvmth102

فرادرس

FaraDars.org

52

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

faradars.org/fvmth102

فرادرس

FaraDars.org

53

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

.تهيه شده است

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

faradars.org/fvmth102

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

faradars.org/fvmth102

فرادرس

FaraDars.org

top related