我想计算以下积分:
exp(-y^2/(2*a^2))* cosh(y)*log(cosh(y))
从y=0
到y = Inf
我需要为值为a
的向量执行此积分吗?我怎么能这样做?
答案 0 :(得分:4)
正如IKavanagh已经注意到的那样,你无法使用integral
来计算积分,因为它超出了浮点值的范围。因此,使用符号工具箱可能是唯一的可能性。
%define your function:
syms a y
f=exp(-y^2/(2*a^2))* cosh(y)*log(cosh(y))
现在你可以计算积分:
iF=int(f,y,0,inf);
至少在我的matlab版本中,找不到显式解决方案,会发出警告。因此,我们需要两个步骤,用预期值替换a,然后使用vpa
求解它。如果最近的matlab版本找到了一个明确的解决方案,那么vpa
的使用是不可靠的。
solution=vpa(subs(iF,a,[1,2,3,4]))