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