评估matlab中的积分

时间:2015-10-22 14:56:47

标签: matlab

我想计算以下积分:

exp(-y^2/(2*a^2))* cosh(y)*log(cosh(y))

y=0y = Inf

我需要为值为a的向量执行此积分吗?我怎么能这样做?

1 个答案:

答案 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]))