作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 21:09:30
matlab求积分:y=sin(x),t=y^2/(a+b*y),积分范围(0,pi),
我是这样编写的:
syms x a b
y=sin(x);
int(y^2/(b*y+a),0,pi)
结果显示:Warning: Explicit integral could not be found.
求高手指点下,错在哪里,我该怎么求这个积分
首先,你的语句没问题.但这个函数对于MATLAB来说过于复杂,MATLAB的数值计算能力很强,但是符号计算能力有限.所以他警告:Warning: Explicit integral could not be found. (就是说积不出显性表达式).
如果可以的话,把a,b换成数字应该是可以积出数值结果的.
如果一定要积出符号解的话,可以用Mathematica,或maple它们的符号计算能力比较强.下面给出Mathematica积出的结果(Mathematica也积了好久,怪不得MATLAB积不出来)

再问: 我电脑上没有安Mathematica,请问matlab有办法求得出来嘛
再答: 这个还真没办法,直接在MATLAB的符号计算引擎MuPAD里也试过了,积不出来,就是积不出来。MATLAB符号计算能力有限。除非用其他软件或者将a,b换成数字。刚才看了看lhmhz的回答,我又用14a的MuPAD试了一下,还真积出来了,不过对于这样的结果,你能满意吗?输出的结果显然没有Mathematica好,1 没有对a,b的分类讨论结果。2 有复数 i 在结果中
所以个人建议,不要指望MATLAB做复杂符号计算,充分发挥它的数值计算能力