【问题标题】:Integral3 and integral2 inside integral积分3和积分2内积分
【发布时间】: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)
  • 我明白了,很高兴你让它工作,如果我投票结束这个问题可以吗?您也可以考虑提交答案并接受它,以表明问题已解决。

标签: matlab nan integral


【解决方案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) 解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多