发现一个奇怪的事情,同时为自定义函数编码数值积分 . MATLAB手册说:
integral3调用积分以在xmin≤x≤xmax上积分 . 它使用'tiles'方法调用integral2来评估双积分...
我已经完成了我的函数的正确(我认为是)矢量化,因此它从integral3获取平铺输入并返回正确的值数组 . 集成通过没有错误,但NaN值由集成返回(尽管集成函数本身总是返回复数数组) .
除此之外,如果我使用相同函数的integral2(平铺方法)的积分(使用'ArrayValued'方法),正如手册所说的integral3所做的那样,返回的值是非NaN,但是复数 .
任何想法,NaN可能来自哪里?
1 回答
不确定它是如何工作的,但是将集成顺序从
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)
解决了这个问题 .