53
م افزارمک نردی به ک محاسبات عد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

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

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

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

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

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

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

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

3

12

1

0

2

)(

1)(

dxexf

dxexf

x

x

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

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

4

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

11

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

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

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

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

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

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

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

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

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

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

16

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

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

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

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

NND ,1,1D

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

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

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

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

براي فرمول برون يابي ريچاردسون 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

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

حل مثال فرمول برون يابي ريچاردسون به مربوطه 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

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

براي مشتق گيري عددي 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

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

براي مشتق گيري عددي مرتبه دوم 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

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

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

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

22

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

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

23

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

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

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

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

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

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

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

24

n

iiii

b

axfAdxxfI

1)()(

Pn-1(x)

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

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

.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

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

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

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

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

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

26

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

روش هاي انتگرال گيري عدديروش قاعده ذوزنقه اي -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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

روش انتگرال گيري عددي با قاعده ذوزنقه اي 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

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

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

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

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

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

روش انتگرال گيري عددي با قاعده سيمپسون 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

به شيوه الگوريتم رومبرگگيري عددي انتگرال 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

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

به منظور انتگرال گيري عددي 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

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

به منظور انتگرال گيري عددي 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

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

به منظور انتگرال گيري عددي 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

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

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

51

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

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

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

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

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

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

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

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

52

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

faradars.org/fvmth102

فرادرس

FaraDars.org

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

53

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

.تهيه شده است

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

faradars.org/fvmth102

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

faradars.org/fvmth102

فرادرس

FaraDars.org