با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن. و کاربرانی که دوره کامل آموزش متلب را دنبال می کنند. متلب به عنوان یک نرم افزار فنی و مهندسی و محاسباتی قدرتمند، توابع فراوانی را برای حل انواع معادلات درجه ۲ ، ۳ و بالاتر را در اختیار شما قرار می دهد. یکی از قابلیت های محاسباتی و تخصصی متلب ، قابلیت حل انواع انتگرال های ریاضی ساده تا پیچیده می باشد. در این بخش برای آشنایی شما با چگونگی استفاده از توابع حل انتگرال در متلب ،در ادامه ی این بخش به آموزش حل انتگرال در متلب مانند انتگرال نامحدود در متلب پرداخته ایم.
انتگرال ها برای پیدا کردن منطقه، حجم، مرکز جاذبه، نیرو، و در بسیاری از برنامه های کاربردی دیگر استفاده می شود.
اگر مشتق تابع (f (x تابع ( f ‘(x باشد، می توان گفت که انتگرال نامحدودی از (f’ (x با توجه به مقدار (x f (x وجود دارد.
به عنوان مثال، از آنجا که مشتق x2 برابر ۲x است، می توانیم بگوییم یک انتگرال نامحدود ۲x برابر x2 است.
و بطور نمادین:
∫ ۲xdx = x2
یک انتگرال نامحدود منحصر به فرد نیست، زیرا مشتق x2 + c برای هر مقدار یک ثابت c برابر ۲x است.
حالت نمادین آن بصورت ∫ ۲xdx = x2 + c
می باشد.
همچنین مقدار C نیز یک “ثابت دلخواه” می باشد.
MATLAB دستور int را برای محاسبه انتگرال یک عبارت فراهم می کند.
برای بیان عبارت برای انتگرال نامحدودی از یک تابع در متلب بصورت زیر می نویسیم:
1 | int(f); |
به عنوان مثال :
1 2 | syms x int(2*x) |
متلب برای کد فوق نتیجه ی زیر را نمایش می دهد:
1 2 | ans = x^2 |
مثال ۱ – فایل اسکریپتی ایجاد کرده و کد زیر را در آن قرار دهید:
1 2 3 4 5 6 7 8 | 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) |
نتیجه ی اجرای کد فوق در متلب:
1 2 3 4 5 6 7 8 9 10 | 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) |
مثال ۲- فایل اسکریپتی ایجاد کرده و کد زیر را در آن قرار دهید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 بیانگر یک فرمت قابل خواندن است.
با اجرای فایل فوق، نتیجه ی زیر را مشاهده خواهید کرد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 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 و منطقه بین دو منحنی استفاده می کنیم.
انتگرال های انتزاعی نیز می توانند در دیگر موقعیت ها استفاده شوند.
جایی که مقدار مورد نیاز می تواند به عنوان حد یک بیان شود.
از تابع int می توان برای حل انتگرال های محدود استفاده کرد.
برای نمونه اگر بخواهیم انتگرال زیر را محاسبه کنیم:
حالا بصورت زیر می نویسیم:
1 | int(x, a, b) |
برای مثال برای حل انتگرال زیر :
حالا بصورت زیر می نویسیم:
1 | int(x, 4, 9) |
نتیجه ی اجرای کد فوق در متلب بصورت زیر خواهد بود:
1 2 | ans = 65/2 |
در Octave نیز بصورت زیر می نویسیم:
1 2 3 4 5 6 7 | x = sym("x"); f = x; c = [1, 0]; integral = polyint(c); a = polyval(integral, 9) - polyval(integral, 4); display('Area: '), disp(double(a)); |
نتیجه ی اجرای کد فوق بصورت زیر خواهد بود:
1 2 3 | Area: 32.500 |
را حل دیگر استفاده از تابع () quad ارائه شده توسط Octave بصورت زیر است:
1 2 3 4 | f = inline("x"); [a, ierror, nfneval] = quad(f, 4, 9); display('Area: '), disp(double(a)); |
نتیجه ی اجرای کد فوق بصورت زیر خواهد بود:
1 2 | Area: 32.500 |
مثال ۱- برای نمونه منحنی y = x3-2x + 5 و ordinates x = 1 و x = 2 را محاسبه کنیم:
انتگرال مورد نظر بصورت زیر است:
در قدم اول فایل اسکریپتی ایجاد کرده . کد زیر را در آن وارد می کنیم:
1 2 3 | f = x^3 - 2*x +5; a = int(f, 1, 2) display('Area: '), disp(double(a)); |
با اجرای کد فوق نتیجه ی زیر را مشاهده خواهید کرد:
1 2 3 4 | a = 23/4 Area: 5.7500 |
در محیط Octave معادلات فوق بصورت زیر است:
1 2 3 4 5 6 7 | 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)); |
نتیجه ی اجرای کد فوق بصورت زیر است:
1 2 3 | Area: 5.7500 |
همچنین می توانید از تابع ()quad ارائه شده توسط Octave بصورت زیر استفاده کنید:
1 2 3 4 5 | x = sym("x"); f = inline("x^3 - 2*x +5"); [a, ierror, nfneval] = quad(f, 1, 2); display('Area: '), disp(double(a)); |
نتیجه ی اجرای کد فوق در Octave:
1 2 | Area: 5.7500 |
مثال ۲- می خواهیم انتگرال (f(x) = x2 cos(x را در محدوده ی −۴ ≤ x ≤ ۹ محاسبه کنیم.
ابتدا فایل اسکریپت را ایجاد کرده و کد زیر را در آن تایپ می کنیم:
1 2 3 4 | f = x^2*cos(x); ezplot(f, [-4,9]) a = int(f, -4, 9) disp('Area: '), disp(double(a)); |
در زمان اجرا متلب رسم زیر را نمایش خواهد داد:
خروجی زیر را دریافت خواهید کرد:
1 2 3 4 5 | a = 8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9) Area: 0.3326 |
کدهای فوق در Octave بصورت زیر خواهد بود:
1 2 3 4 5 6 7 8 | 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)); |
همانطور که اشاره کردیم یکی از قابلیت های ویژه و کاربردی در نرم افزار فنی و مهندسی متلب ، قابلیت حل انواع و اقسام معادلات انتگرال در متلب می باشد. از این رو مباحث این بخش را نیز به آموزش حل انتگرال در متلب اختصاص دادیم.
رضا قربانپور طاهری
بسمه و تعالی و با سلام و با تشکر لطفا در رابطه با حل انتگرال زیر با مطلب اینجانب را راهنمایی فرمایید:
int(sinint(x)/cos(x)^2)