انتگرال ها به دو حالت زیر تقسیم می شود.
در نوع اول، مشتق یک تابع داده شده و تابع را پیدا می کنیم. بنابراین وارون روابط مشتق عمل می کنیم. این روابط وارون پاد مشتق نام دارند و تابع اولیه آن ها را پیدا می کنند به عبارت دیگر به آن انتگرال نامعین می گوییم.
نوع دوم مسائل با اضافه شدن تعداد خیلی زیاد از مقادیر خیلی کوچک به وجود می آید و گرفتن حد در اندازه مقادیر نزدیک به صفر که تعداد این تقسیمات به بینهایت میل می کند. به این نوع، انتگرال معین می گوییم.
از انتگرال معین برای مساحت، حجم، مرکز ثقل، ممان اینرسی ، کار تولید شده توسط نیرو در نرم افزار های متعدد استفاده می شود.
حل انتگرال های نامعین در متلب
اگر f'(x) مشتق تابع f(x) باشد، آنگاه انتگرال نامعین f'(x) نسبت به متغیر x، تابع f(x) می باشد. برای مثال، مشتق x2، تابع 2x می باشد. می توانیم بگوییم که انتگرال نامعین 2x تابع x2 می باشد.
به صورت زیر
f'(x2) = 2x
بنابراین
∫ 2xdx = x2
انتگرال نا معین منحصر به فرد نمی باشد زیرا مشتق تابع x2 + c برای مقادیر ثابت c، تابع 2x می باشد.
این به صورت زیر بیان می شود.
∫ 2xdx = x2 + c
که c ثابت اختیاری نامیده می شود.
متلب برای محاسبه انتگرال یک عبارت از دستور int استفاده می کند. برای بدست آوردن انتگرال نامعین یک تابع، به صورت زیر می نویسیم.
int(f);
مثال
با استفاده از مثال قبلی
1 |
<span style="font-size: 14pt;">syms x </span> |
1 |
<span style="font-size: 14pt;">int(2*x)</span> |
متلب عبارت بالا را اجرا کرده و نتیجه زیر را بر می گرداند.
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
<span style="font-size: 14pt;"> x^2</span> |
مثال
یک فایل اسکریپت ایجاد کرده و کد های زیر را در آن می نویسیم.
1 |
<span style="font-size: 14pt;">syms x n</span> |
1 |
<span style="font-size: 14pt;">int(sym(x^n))</span> |
1 |
<span style="font-size: 14pt;">f = 'sin(n*t)'</span> |
1 |
<span style="font-size: 14pt;">int(sym(f))</span> |
1 |
<span style="font-size: 14pt;">syms a t</span> |
1 |
<span style="font-size: 14pt;">int(a*cos(pi*t))</span> |
1 |
<span style="font-size: 14pt;">int(a^x)</span> |
وقتی متلب اجرا می کند، نتیجه را به صورت زیر می نویسد.
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
<span style="font-size: 14pt;"> piecewise([n == -1, log(x)], [n ~= -1, x^(n + 1)/(n + 1)])</span> |
1 |
<span style="font-size: 14pt;">f =</span> |
1 |
<span style="font-size: 14pt;">sin(n*t)</span> |
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
<span style="font-size: 14pt;"> -cos(n*t)/n</span> |
1 |
<span style="font-size: 14pt;"> ans =</span> |
1 |
<span style="font-size: 14pt;"> (a*sin(pi*t))/pi</span> |
1 |
<span style="font-size: 14pt;"> ans =</span> |
1 |
<span style="font-size: 14pt;"> a^x/log(a)</span> |
مثال
یک فایل اسکریپت ایجاد کرده و کد های زیر را در آن می نویسیم.
1 |
<span style="font-size: 14pt;">syms x n</span> |
1 |
<span style="font-size: 14pt;">int(cos(x))</span> |
1 |
<span style="font-size: 14pt;">int(exp(x))</span> |
1 |
<span style="font-size: 14pt;">int(log(x))</span> |
1 |
<span style="font-size: 14pt;">int(x^-1)</span> |
1 |
<span style="font-size: 14pt;">int(x^5*cos(5*x))</span> |
1 |
<span style="font-size: 14pt;">pretty(int(x^5*cos(5*x)))</span> |
1 |
<span style="font-size: 14pt;">int(x^-5)</span> |
1 |
<span style="font-size: 14pt;">int(sec(x)^2)</span> |
1 |
<span style="font-size: 14pt;">pretty(int(1 - 10*x + 9 * x^2))</span> |
1 |
<span style="font-size: 14pt;">int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2)</span> |
1 |
<span style="font-size: 14pt;">pretty(int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2))</span> |
توجه کنیم که تابعpretty ، یک عبارت را در یک فرمت خواندنی بر می گرداند.
وقتی فایل را اجرا می کنیم، داریم.
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
1 |
<span style="font-size: 14pt;">sin(x)</span> |
1 |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
1 |
<span style="font-size: 14pt;">exp(x)</span> |
1 |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
1 |
<span style="font-size: 14pt;">x*(log(x) - 1)</span> |
1 |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
1 |
<span style="font-size: 14pt;">log(x)</span> |
1 |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
1 |
<span style="font-size: 14pt;">(24*cos(5*x))/3125 + (24*x*sin(5*x))/625 - (12*x^2*cos(5*x))/125 + (x^4*cos(5*x))/5 - (4*x^3*sin(5*x))/25 + (x^5*sin(5*x))/5</span> |
1 |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;"> 2 4 </span> |
1 |
<span style="font-size: 14pt;"> 24 cos(5 x) 24 x sin(5 x) 12 x cos(5 x) x cos(5 x) </span> |
1 |
<span style="font-size: 14pt;"> ----------- + ------------- - -------------- + ----------- - </span> |
1 |
<span style="font-size: 14pt;"> 3125 625 125 5 </span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;"> 3 5 </span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;"> 4 x sin(5 x) x sin(5 x) </span> |
1 |
<span style="font-size: 14pt;"> ------------- + ----------- </span> |
1 |
<span style="font-size: 14pt;"> 25 5</span> |
1 |
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
1 |
<span style="font-size: 14pt;">-1/(4*x^4)</span> |
1 |
<span style="font-size: 14pt;"> ans =</span> |
1 |
1 |
<span style="font-size: 14pt;">tan(x)</span> |
1 |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;"> 2 </span> |
1 |
<span style="font-size: 14pt;"> x (3 x - 5 x + 1)</span> |
1 |
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
1 |
<span style="font-size: 14pt;">- (7*x^6)/12 - (3*x^5)/5 + (5*x^4)/8 + x^3/2</span> |
1 |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;"> 6 5 4 3 </span> |
1 |
<span style="font-size: 14pt;"> 7 x 3 x 5 x x </span> |
1 |
<span style="font-size: 14pt;"> - ---- - ---- + ---- + -- </span> |
1 |
<span style="font-size: 14pt;"> 12 5 8 2</span> |
پیدا کردن انتگرال معین در متلب
اساسا، انتگرال معین، حد مجموع می باشد. از انتگرال های معین برای پیدا کردن مساحت ها، مانند مساحت بین منحنی و محور x ها و مساحت بین دو منحنی استفاده می کنیم. انتگرال معین در زمینه های دیگر هم به کار می رود.
رابطه ی زیر، فرمول انتگرال معین می باشد.
![clip_image001[4]](http://articles.tahlildadeh.com/image.axd?picture=clip_image001%5B4%5D_thumb_88.jpg)
دستور آن در متلب به صورت زیر می باشد.
1 |
<span style="font-size: 14pt;">int(x, a, b)</span> |
مثال
مقدار انتگرال زیر را بدست آورید.
![clip_image002[4]](http://articles.tahlildadeh.com/image.axd?picture=clip_image002%5B4%5D_thumb_61.jpg)
کد زیر را در متلب می نویسیم.
1 |
<span style="font-size: 14pt;">int(x, 4, 9)</span> |
متلب عبارت بالا را اجرا کرده و نتیجه زیر را بر می گرداند.
1 |
<span style="font-size: 14pt;">ans =</span> |
1 |
<span style="font-size: 14pt;"> 65/2</span> |
کد هم ارز آن در Octave، به صورت زیر است.
1 |
<span style="font-size: 14pt;">pkg load symbolic</span> |
1 |
<span style="font-size: 14pt;">symbols</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">x = sym("x");</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">f = x;</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">c = [1, 0];</span> |
1 |
<span style="font-size: 14pt;">integral = polyint(c);</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">a = polyval(integral, 9) - polyval(integral, 4);</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">display('Area: '), disp(double(a));</span> |
Octave کد بالا را اجرا کرده و نتیجه را به صورت زیر بر می گرداند.
1 |
<span style="font-size: 14pt;">Area: </span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;"> 32.500</span> |
یک راه حل جایگزین در Octave، استفاده از تابع quad() می باشد.
1 |
<span style="font-size: 14pt;">pkg load symbolic</span> |
1 |
<span style="font-size: 14pt;">symbols</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">f = inline("x");</span> |
1 |
<span style="font-size: 14pt;">[a, ierror, nfneval] = quad(f, 4, 9);</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">display('Area: '), disp(double(a));</span> |
Octave برنامه را اجرا کرده و به صورت زیر نتیجه را نشان می دهد.
1 |
<span style="font-size: 14pt;">Area: </span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;"> 32.500</span> |
مثال
فرض کنیم می خواهیم مساحت بین محور x ها و منحنی y = x3−2x+5 و خطوط x = 1 و x = 2 را بدست آورید.
به عبارت دیگر می خواهیم انتگرال زیر را حل کنیم.

یک فایل اسکریپت ایجاد کرده و کد های زیر را در آن بنویسید.
1 |
<span style="font-size: 14pt;">f = x^3 - 2*x +5;</span> |
1 |
<span style="font-size: 14pt;">a = int(f, 1, 2)</span> |
1 |
<span style="font-size: 14pt;">display('Area: '), disp(double(a));</span> |
وقتی فایل را اجرا می کنید، نتیجه زیر حاصل می شود.
1 |
<span style="font-size: 14pt;">a =</span> |
1 |
<span style="font-size: 14pt;">23/4</span> |
1 |
<span style="font-size: 14pt;">Area: </span> |
1 |
<span style="font-size: 14pt;"> 5.7500</span> |
هم ارز کد بالا در Octave، کد های زیر می باشد.
1 |
<span style="font-size: 14pt;">pkg load symbolic</span> |
1 |
<span style="font-size: 14pt;">symbols</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">x = sym("x");</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">f = x^3 - 2*x +5;</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">c = [1, 0, -2, 5];</span> |
1 |
<span style="font-size: 14pt;">integral = polyint(c);</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">a = polyval(integral, 2) - polyval(integral, 1);</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">display('Area: '), disp(double(a));</span> |
Octave، کد بالا را اجرا کرده و به صورت زیر بر می گرداند.
1 |
<span style="font-size: 14pt;">Area: </span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;"> 5.7500</span> |
راه حل جایگزین در Octave، با استفاده از تابع quad()
1 |
<span style="font-size: 14pt;">pkg load symbolic</span> |
1 |
<span style="font-size: 14pt;">symbols</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">x = sym("x");</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">f = inline("x^3 - 2*x +5");</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">[a, ierror, nfneval] = quad(f, 1, 2);</span> |
1 |
<span style="font-size: 14pt;">display('Area: '), disp(double(a));</span> |
Octave کد بالا را اجرا کرده و نتیجه زیر را بر می گرداند.
1 |
<span style="font-size: 14pt;">Area: </span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;"> 5.7500</span> |
مثال
مساحت زیر منحنی f(x) = x2 cos(x) را در بازه −4 ≤ x ≤ 9 بدست آورید.
یک فایل اسکریپت ایجاد کرده و کد های زیر را در آن بنویسید.
1 |
<span style="font-size: 14pt;">f = x^2*cos(x);</span> |
1 |
<span style="font-size: 14pt;">ezplot(f, [-4,9])</span> |
1 |
<span style="font-size: 14pt;">a = int(f, -4, 9)</span> |
1 |
<span style="font-size: 14pt;">disp('Area: '), disp(double(a));</span> |
وقتی متلب فایل را اجرا می کند، نتیجه را به صورت نمودار زیر نشان می دهد.

خروجی به صورت زیر خواهد بود.
1 |
<span style="font-size: 14pt;">a =</span> |
1 |
1 |
<span style="font-size: 14pt;">8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)</span> |
1 |
1 |
<span style="font-size: 14pt;">Area: </span> |
1 |
<span style="font-size: 14pt;"> 0.3326</span> |
هم ارز محاسبات بالا در Octave، کد های زیر می باشد.
1 |
<span style="font-size: 14pt;">pkg load symbolic</span> |
1 |
<span style="font-size: 14pt;">symbols</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">x = sym("x");</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">f = inline("x^2*cos(x)");</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">ezplot(f, [-4,9])</span> |
1 |
<span style="font-size: 14pt;">print -deps graph.eps</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">[a, ierror, nfneval] = quad(f, -4, 9);</span> |
1 |
<span style="font-size: 14pt;"> </span> |
1 |
<span style="font-size: 14pt;">display('Area: '), disp(double(a));</span> |