Download - آموزش محاسبات عددی - بخش چهارم
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