落花时节 发表于 2008-6-21 20:49

求助 关于matlab求积分问题

我想求这个含参量t的积分:
syms s t
>> int(1/(1+abs(s-t)^3),s,0,inf)

ans =

-1/6*(-3^(1/2)*pi*signum(t)-2*log(t*signum(t)+1)+log(1-t*signum(t)+t^2*signum(t)^2)-2*3^(1/2)*atan(1/3*(-1+2*t*signum(t))*3^(1/2)))/signum(t)
t=1;subs(ans)%取参量t=1代入的结果



ans =

2/9*3^(1/2)*pi+1/3*log(2)
而如果验证一下(特别的取参量t=1)
syms s
>> int(1/(1+(abs(s-1)^3)),s,0,inf)

ans =

1/3*3^(1/2)*pi+1/3*log(2)
发现两个结果有出入啊,这是为什么呢?我matlab应用很生疏,请大家不吝赐教,谢谢!

[ 本帖最后由 落花时节 于 2008-6-21 20:57 编辑 ]

sogooda 发表于 2008-6-22 12:03

楼主用的什么版本?我用7.04得出的结果:
syms t;r=int(1/(1+abs(s-t)^3),s,0,inf)
r =
NaN
看来版本高就是好啊,呵呵。。。

落花时节 发表于 2008-6-22 14:18

回复 2楼 的帖子

谢谢你的回复!你在定义变量用symst(是把t定义为符号变量);我用的是语句symsst;(把s和t都定义为符号变量了再对s求含参量t的积分);我想结果可能和这句有关吧.
我用的是版本6.5的,我手算出来结果是5/18*3^(1/2)*pi+1/3*log(abs(t+1))-1/6*log(t^2-t+1)+1/3*3^(1/2)*atan((2*t-1)/3^(1/2)).哪个对啊?困惑啊...

[ 本帖最后由 落花时节 于 2008-6-22 14:42 编辑 ]

sigma665 发表于 2008-6-22 16:21

不管是symst 还是symsst
结果都是
ans =

NaN

messenger 发表于 2008-6-22 19:17

回复 楼主 的帖子

你这个积分只能分两种情况计算

你手算的是s-t<0的情况,还有一种s-t>0的情况

落花时节 发表于 2008-6-22 21:57

回复 5楼 的帖子

我是分积分区间来积分的,s从0到t,再从t到正无穷大(t是要求大于等于0的,我忘了注明了,不好意思)从而去掉绝对值得到两个积分式的和,得到上面结果的。

落花时节 发表于 2008-6-22 22:05

回复 4楼 的帖子

请问你用的是什么版本的matlab啊?

sigma665 发表于 2008-6-23 10:05

回复 7楼 的帖子

2008a

落花时节 发表于 2008-6-23 10:38

呵呵,我身边的同学有用6.5的,7.0的,这个版本我头次听说,太落伍了,不过我手算有结果啊?这又是为什么呢?

FAI_gavin 发表于 2008-6-23 14:40

比较奇怪,我运行syms s t 的时候,结果也是NAN,为什么呢?我运行了下syms s,即取t=1时,和楼主的结果是一样的。于是我想看看是不是有什么奇异点,导致积分结果为NAN。ezplot(1/(1+abs(s-1)^3))(t取1时);ezplot(1/(1+abs(s-t)^3))。发现前者的曲线是连续的,后者的曲线压根就没有。不明白其间的道理。望各位指正。

sigma665 发表于 2008-6-23 15:05

ezplot(1/(1+abs(s-t)^3))
当然没有了
s t 都在变

FAI_gavin 发表于 2008-6-23 20:25

我之后help ezplot了,ezplot(fun2)含两个参数,它的意思是画fun2=0的曲线。因为/(1+abs(s-t)^3))>0。所以没图像了。刚学matlab多指正。
页: [1]
查看完整版本: 求助 关于matlab求积分问题