yudailin 发表于 2010-1-25 23:30

quadl的被积函数限制自变量的幂次吗?

最近在求一个问题的数值积分,其中一句代码如下:
a = quadl(@(x) arrayfun(@(xx) quadl(@(y) ((x1(n)-xx)^2+y^2),-0.0001,0.0001),x),-0.0001,0.0001);
运行后显示的错误代码如下:
??? Error using ==> mpower
Matrix must be square.
Error in ==> @(y)((x1(n)-xx)^2+y^2)

Error in ==> quadl at 70
y = feval(f,x,varargin{:}); y = y(:).';
Error in ==> @(xx)quadl(@(y)((x1(n)-xx)^2+y^2),-0.0001,0.0001)

Error in ==> @(x)arrayfun(@(xx)quadl(@(y)((x1(n)-xx)^2+y^2),-0.0001,0.0001),x)

Error in ==> quadl at 70
y = feval(f,x,varargin{:}); y = y(:).';
Error in ==> example at 11
quadl(@(x) arrayfun(@(xx) quadl(@(y)
((x1(n)-xx)^2+y^2),-0.0001,0.0001),x),-0.0001,0.0001);

请问高手,上面错误代码中的Matrix must be square是什么意思呢?

此外,我发现把我的程序中的y^2换成y,或换成任意关于y的一次方的表达式,运行时都不会错误;但是y的幂次大于等于2以后,就会出现上述错误。请问这是为什么呢? 如果想完成我的积分应该用别的什么函数呢? 多谢!!!!!

ChaChing 发表于 2010-1-25 23:58

常见的程序出错问题整理 (eight), 10F
http://forum.vibunion.com/forum/thread-46001-1-1.html

试试y.^2注意那一点

[ 本帖最后由 ChaChing 于 2010-1-26 00:01 编辑 ]

yudailin 发表于 2010-1-26 00:48

回复 沙发 ChaChing 的帖子

谢谢谢谢,确实是这样,这个问题现在解决了,不过出现了新的问题,我再继续研究。
多谢!
页: [1]
查看完整版本: quadl的被积函数限制自变量的幂次吗?