ممنون جناب admin
راستش را بخواهید فرمول اصلی بصورت زیر است که جواب آنرا نمیتوانم بگیرم. ممنون میشم اگر بتونید این را جواب بدهید.
کد:
int((1/(sqrt(2*pi))*exp(-((z-50)^2)/4)*sin(2*pi*z/10)))
سلام.
من کد متلب زیر را که گفته بودید اجرا کردم :
کد:
clear all
close all
clc
syms z
int(exp(2*z-z^2))
نتیجه اجرا به صورت زیر می باشد :
کد:
ans =
(pi^(1/2)*erf(z - 1)*exp(1))/2
که در آن، تابع erf وجود دارد. اگر این تابع را در help متلب جستجو کنید، فرمول آن به صورت زیر ذکر شده است :
حالا فرض کنید که این بار، مقدار z=5 را در نظر بگیریم، بنابراین، کدهای متلب زیر را می نویسیم :
کد:
clear all
close all
clc
syms z
H = int(exp(2*z-z^2))
subs(H,z,5)
نتیجه اجرای کد متلب بالا :
کد:
H =
(pi^(1/2)*erf(z - 1)*exp(1))/2
ans =
2.4090
ممنون جناب admin
راستشو بخواهید من فرمول را درست وارد نکردم و یک جا را هم جا انداختم.فرمول اصلی را وارد می کنم ببینید میتونید این مشکل را حل کنید؟ ممنون و متشکر
کد:
int((1/(sqrt(2*pi))*exp(-((z-50)^2)/4)*sin(2*pi*z/10)))
برای مواردی که انتگرال گیری با دستور int ، پاسخ را محاسبه نمی کند، باید از دستورات مربوط به انتگرال گیری عددی استفاده کنید (البته باید حد بالا و پایین انتگرال، به صورت عدد شخص باشد).
همچنین هنگام استفاده از اینگونه دستورها، توصیه می کنم که منطقی بودن پاسخ را هم چک کنید. مثلا کد متلب زیر را ببینید :
کد:
clear all
close all
clc
syms z
f=2*z
quad(vectorize(f),0,1)
نتیجه اجرای کد متلب بالا :
پاسخ برابر 1 شده است، در صورتی که ما انتظار مقدار 2 را داشتیم (جواب 1 غلط است). این مورد را بنده در نسخه R2011a از نرم افزار متلب مشاهده کردم (اگر کدنویسی من مشکل دارد، خوشحال می شوم دوستان تذکر بدهند).