burkbai 发表于 2008-1-16 11:03

关于符号积分出现Explicit integral could not be found的问题

源代码如下
syms E X Nrd r t Rd Rr P0 r1 r2 N1 N2 Sec G d;
d=0.666;
p=8/pi;
Rr=1;
Rd=2*Rr;
X=(Rd^2+r^2-Rr^2)/(2*r);
Sec=(Rd^2*acos(X/Rd)+Rr^2*acos((r-X)/Rr)-r*(Rd^2-X^2)^0.5);
P1=Sec/pi/Rr^2;
r1=d*cos(G)+((d*cos(G))^2-d^2+Rd^2)^0.5
r2=Rd+Rr;
N1=int(p*r*P1,'r',r1,r2)
N2=double(int(N1,'G',0,2*pi))


我昨天在自己电脑上运行这个程序,matlab 7,内存2G,第一次当d=0.5时算出来了,N2大约等于8,可惜没来的及保存,机器就死掉了,其实我想算的是d=0.666,但是现在怎么算都出错,
出现了下面的错误信息:
Warning: Explicit integral could not be found.
> In sym.int at 58

??? Error using ==> reshape
To RESHAPE the number of elements must not change.

Error in ==> sym.maple at 94
result = reshape(result,size(varargin{3}));

Error in ==> sym.int at 51
r = reshape(maple('map','int',f(:),),size(f));
参考前面的贴,有人说是因为机器配置不够,我没有更好的机器了,请哪位大侠帮忙算一下结果,多谢!

[ 本帖最后由 eight 于 2008-1-21 20:16 编辑 ]

sigma665 发表于 2008-1-16 12:41

回复 楼主 的帖子

尝试用数值积分试试

burkbai 发表于 2008-1-16 22:27

您好,请问如何用数值积分呢?我是初学,能否在我的源码上修改下?多谢

dhp 发表于 2008-1-17 08:31

我也在算类似的一个积分,被积函数有两个参数a、b,对参数a积分,积分上下限是另外一个参数b的函数。也遇到你说的warning(这个警告貌似可以给出正确结果),对于特定的b值,整个积分int有时候能给出结果,有时候提示错误、需要推出重启。

我的问题是:int积分和quadl积分的区别在哪里?我知道的是int是符号积分、quadl就是闭型的定积分了。谢谢

sigma665 发表于 2008-1-17 09:18

回复 4楼 的帖子

quadl是数值积分

回3楼
请搜索论坛,本版的xjzuo版主有很不错的总结

eight 发表于 2008-1-21 20:17

请养成发贴前先搜索的习惯
页: [1]
查看完整版本: 关于符号积分出现Explicit integral could not be found的问题