关于符号积分出现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 编辑 ]
回复 楼主 的帖子
尝试用数值积分试试 您好,请问如何用数值积分呢?我是初学,能否在我的源码上修改下?多谢 我也在算类似的一个积分,被积函数有两个参数a、b,对参数a积分,积分上下限是另外一个参数b的函数。也遇到你说的warning(这个警告貌似可以给出正确结果),对于特定的b值,整个积分int有时候能给出结果,有时候提示错误、需要推出重启。我的问题是:int积分和quadl积分的区别在哪里?我知道的是int是符号积分、quadl就是闭型的定积分了。谢谢
回复 4楼 的帖子
quadl是数值积分回3楼
请搜索论坛,本版的xjzuo版主有很不错的总结 请养成发贴前先搜索的习惯
页:
[1]