【发布时间】:2015-01-23 02:18:44
【问题描述】:
在编写自定义函数的数值积分时发现了一件奇怪的事情。 MATLAB 手册说:
integral3 调用integral 对xmin ≤ x ≤ xmax 进行积分。它使用“平铺”方法调用integral2来评估双积分...
我已经对我的函数进行了正确的(我认为是)矢量化,因此它从integral3 获取平铺输入并返回正确的值数组。积分通过没有错误,但积分返回的是 NaN 值(尽管积分函数本身总是返回一个复数数组)。
除此之外,如果我使用同一函数的integral2(平铺方法)的积分(使用'ArrayValued'方法),正如手册所说的integral3那样,返回的值不是NaN,而是复数。
任何想法,NaN 可能来自哪里?
【问题讨论】:
-
复数积分有点棘手。我可以看看你的功能和你的尝试吗?如果你觉得函数太长写在这里,别担心,它不会造成任何伤害。如果你的函数真的很长,我会用一个简单但仍然具有代表性的函数重新进行相同的集成,以确认集成是否正常工作。
-
谢谢,但这几乎不可能 - 该函数使用了许多其他子函数,但基本上可以归结为两个复杂指数的倍数,无论如何我已经克服了这个问题(这有点令人困惑再次)通过从:
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) -
我明白了,很高兴你让它工作,如果我投票结束这个问题可以吗?您也可以考虑提交答案并接受它,以表明问题已解决。