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