在为自定义函数编码数值积分时,发现了一件奇怪的事情。MATLAB手册上说:
integral3调用了集成在xmin≤x≤xmax上的集成。它用“平铺”方法调用integral2来计算双积分。
我已经对函数进行了适当的(我认为是)矢量化,所以它接受了来自integral3的平铺输入,并返回了一个适当的值数组。集成传递没有错误,但是集成返回了NaN值(尽管集成函数本身总是返回一个复数数组)。
此外,如果我使用相同函数的integral2 (平铺法)的积分法(用‘integral2’方法),如手册中所说的integral3,返回的值是非NaN的,而是复数。
知道吗,奶奶可能从哪来的?
发布于 2014-11-29 06:53:51
不确定它是如何工作的,但是将集成顺序从integral3(@(x,y,z) F(x,y,z),x1,x2,y1,y2,z1,z2)更改为integral3(@(z,x,y) F(x,y,z),z1,z2,x1,x2,y1,y2)解决了这个问题。
https://stackoverflow.com/questions/27120611
复制相似问题