ماشین حساب
انتگرال ها به دو حالت زیر تقسیم می شود.
در نوع اول، مشتق یک تابع داده شده و تابع را پیدا می کنیم. بنابراین وارون روابط مشتق عمل می کنیم. این روابط وارون پاد مشتق نام دارند و تابع اولیه آن ها را پیدا می کنند به عبارت دیگر به آن انتگرال نامعین می گوییم.
نوع دوم مسائل با اضافه شدن تعداد خیلی زیاد از مقادیر خیلی کوچک به وجود می آید و گرفتن حد در اندازه مقادیر نزدیک به صفر که تعداد این تقسیمات به بینهایت میل می کند. به این نوع، انتگرال معین می گوییم.
از انتگرال معین برای مساحت، حجم، مرکز ثقل، ممان اینرسی ، کار تولید شده توسط نیرو در نرم افزار های متعدد استفاده می شود.
حل انتگرال های نامعین در متلب
اگر 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);
مثال
با استفاده از مثال قبلی
syms x
int(2*x)
متلب عبارت بالا را اجرا کرده و نتیجه زیر را بر می گرداند.
ans =
x^2
مثال
یک فایل اسکریپت ایجاد کرده و کد های زیر را در آن می نویسیم.
syms x n
int(sym(x^n))
f = 'sin(n*t)'
int(sym(f))
syms a t
int(a*cos(pi*t))
int(a^x)
وقتی متلب اجرا می کند، نتیجه را به صورت زیر می نویسد.
ans =
piecewise([n == -1, log(x)], [n ~= -1, x^(n + 1)/(n + 1)])
f =
sin(n*t)
ans =
-cos(n*t)/n
ans =
(a*sin(pi*t))/pi
ans =
a^x/log(a)
مثال
یک فایل اسکریپت ایجاد کرده و کد های زیر را در آن می نویسیم.
syms x n
int(cos(x))
int(exp(x))
int(log(x))
int(x^-1)
int(x^5*cos(5*x))
pretty(int(x^5*cos(5*x)))
int(x^-5)
int(sec(x)^2)
pretty(int(1 - 10*x + 9 * x^2))
int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2)
pretty(int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2))
توجه کنیم که تابعpretty ، یک عبارت را در یک فرمت خواندنی بر می گرداند.
وقتی فایل را اجرا می کنیم، داریم.
ans =
sin(x)
ans =
exp(x)
ans =
x*(log(x) - 1)
ans =
log(x)
ans =
(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
2 4
24 cos(5 x) 24 x sin(5 x) 12 x cos(5 x) x cos(5 x)
----------- + ------------- - -------------- + ----------- -
3125 625 125 5
3 5
4 x sin(5 x) x sin(5 x)
------------- + -----------
25 5
ans =
-1/(4*x^4)
ans =
tan(x)
2
x (3 x - 5 x + 1)
ans =
- (7*x^6)/12 - (3*x^5)/5 + (5*x^4)/8 + x^3/2
6 5 4 3
7 x 3 x 5 x x
- ---- - ---- + ---- + --
12 5 8 2
پیدا کردن انتگرال معین در متلب
اساسا، انتگرال معین، حد مجموع می باشد. از انتگرال های معین برای پیدا کردن مساحت ها، مانند مساحت بین منحنی و محور x ها و مساحت بین دو منحنی استفاده می کنیم. انتگرال معین در زمینه های دیگر هم به کار می رود.
رابطه ی زیر، فرمول انتگرال معین می باشد.
clip_image001[4]
دستور آن در متلب به صورت زیر می باشد.
int(x, a, b)
مثال
مقدار انتگرال زیر را بدست آورید.
clip_image002[4]
کد زیر را در متلب می نویسیم.
int(x, 4, 9)
متلب عبارت بالا را اجرا کرده و نتیجه زیر را بر می گرداند.
ans =
65/2
کد هم ارز آن در Octave، به صورت زیر است.
pkg load symbolic
symbols
x = sym("x");
f = x;
c = [1, 0];
integral = polyint(c);
a = polyval(integral, 9) - polyval(integral, 4);
display('Area: '), disp(double(a));
Octave کد بالا را اجرا کرده و نتیجه را به صورت زیر بر می گرداند.
Area:
32.500
یک راه حل جایگزین در Octave، استفاده از تابع quad() می باشد.
pkg load symbolic
symbols
f = inline("x");
[a, ierror, nfneval] = quad(f, 4, 9);
display('Area: '), disp(double(a));
Octave برنامه را اجرا کرده و به صورت زیر نتیجه را نشان می دهد.
Area:
32.500
مثال
فرض کنیم می خواهیم مساحت بین محور x ها و منحنی y = x3−2x+5 و خطوط x = 1 و x = 2 را بدست آورید.
به عبارت دیگر می خواهیم انتگرال زیر را حل کنیم.
clip_image003
یک فایل اسکریپت ایجاد کرده و کد های زیر را در آن بنویسید.
f = x^3 - 2*x +5;
a = int(f, 1, 2)
display('Area: '), disp(double(a));
وقتی فایل را اجرا می کنید، نتیجه زیر حاصل می شود.
a =
23/4
Area:
5.7500
هم ارز کد بالا در Octave، کد های زیر می باشد.
pkg load symbolic
symbols
x = sym("x");
f = x^3 - 2*x +5;
c = [1, 0, -2, 5];
integral = polyint(c);
a = polyval(integral, 2) - polyval(integral, 1);
display('Area: '), disp(double(a));
Octave، کد بالا را اجرا کرده و به صورت زیر بر می گرداند.
Area:
5.7500
راه حل جایگزین در Octave، با استفاده از تابع quad()
pkg load symbolic
symbols
x = sym("x");
f = inline("x^3 - 2*x +5");
[a, ierror, nfneval] = quad(f, 1, 2);
display('Area: '), disp(double(a));
Octave کد بالا را اجرا کرده و نتیجه زیر را بر می گرداند.
Area:
5.7500
مثال
مساحت زیر منحنی f(x) = x2 cos(x) را در بازه −4 ≤ x ≤ 9 بدست آورید.
یک فایل اسکریپت ایجاد کرده و کد های زیر را در آن بنویسید.
f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));
وقتی متلب فایل را اجرا می کند، نتیجه را به صورت نمودار زیر نشان می دهد.
clip_image004
خروجی به صورت زیر خواهد بود.
a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
Area:
0.3326
هم ارز محاسبات بالا در Octave، کد های زیر می باشد.
pkg load symbolic
symbols
x = sym("x");
f = inline("x^2*cos(x)");
ezplot(f, [-4,9])
print -deps graph.eps
[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));