matlab求积分:y=sin(x),t=y^2⼀(a+b*y),积分范围(0,pi),

2024-10-28 09:40:57
推荐回答(2个)
回答1:

首先,你的语句没问题。

但这个函数对于MATLAB来说过于复杂,MATLAB的数值计算能力很强,但是符号计算能力有限。所以他警告:Warning: Explicit integral could not be found. (就是说积不出显性表达式)。


如果可以的话,把a,b换成数字应该是可以积出数值结果的。


如果一定要积出符号解的话,可以用Mathematica,或maple它们的符号计算能力比较强。

下面给出Mathematica积出的结果(Mathematica也积了好久,怪不得MATLAB积不出来)


回答2:

可以解。
>> syms x a b
>> y=sin(x)
y =
sin(x)
>> s=int(y^2/(b*y+a),0,pi)
s =
-(-i*a^2*log(-i*a/(a^2-b^2)^(1/2))+i*a^2*log(i*a/(a^2-b^2)^(1/2))+a*(a^2-b^2)^(1/2)*pi+2*a^2*atan(1/(a^2-b^2)^(1/2)*b)-2*b*(a^2-b^2)^(1/2))/b^2/(a^2-b^2)^(1/2)