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

我是这样编写的:symsxaby=sin(x);int(y^2/(b*y+a),0,pi)结果显示:Warning:Explicitintegralcouldnotbef... 我是这样编写的:
syms x a b
y=sin(x);
int(y^2/(b*y+a),0,pi)
结果显示:Warning: Explicit integral could not be found.
求高手指点下,错在哪里,我该怎么求这个积分
展开
 我来答
匿名用户
推荐于2016-12-01
展开全部

首先,你的语句没问题。

但这个函数对于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做复杂符号计算,充分发挥它的数值计算能力

lhmhz
高粉答主

2014-10-03 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17021

向TA提问 私信TA
展开全部
可以解。
>> 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)
追问
>> syms x a b
>> y=sin(x)

y =

sin(x)

>> s=int(y^2/(b*y+a),0,pi)
Warning: Explicit integral could not be found.

s =

int(sin(x)^2/(a + b*sin(x)), x = 0..pi)
为什么我的计算不出来呢?
追答
这跟Matlab的版本有关,我用的是R14.。可能Matlab2008以上都会出现这个警告语。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式