【问题标题】:A double integral with singularity MATLAB具有奇异性的二重积分 MATLAB
【发布时间】:2015-02-24 10:06:17
【问题描述】:

我正在尝试执行如下功能的双重集成

我知道如何在 MATLAB 中编写双积分。正如你所看到的,这个函数不是很容易计算,因为变量在分母上。假设我称积分为 fun1。

我写了下面的代码来解决它

gamma2min=@(gamma1)gamma1;

I= integral2(fun1,0,+inf,gamma2min,+inf);

我收到以下错误

在 x = 0.160784 附近达到最小步长。可能有一个 奇异性,或者对于这个问题,公差可能太紧了。

我也明白问题是什么,但我不知道如何解决。

感谢您的帮助

【问题讨论】:

  • 沿 gamma1=gamma2 的奇点看起来很糟糕;除非函数 f 满足当 gamma1=gamma2 时 f(gamma1,gamma2)=0,否则积分将发散。即使这样也可能不足以保存积分。你能指定 f 的性质吗?

标签: matlab integration


【解决方案1】:

Matlab 文档说“integral2 当奇点位于积分边界时表现最佳”[src]。因此,由于您的积分区域是伽马空间上的一个简单矩形,我会将其分成关于奇异点 (gamma1 == gamma2) 和总和的两个区域:

I1 = integral2(fun1,    0     , gamma2min , gamma2min , +Inf);
I2 = integral2(fun1,gamma2min ,   +Inf    , gamma2min , +Inf);
I  = I1 + I2;

【讨论】:

  • @George 是的,我的意思是gamma2min(抱歉)。你认为“它应该是标量”是什么意思?
  • 也许我误解了您发布的方程式。根据该等式,gamma2 的积分区域从 0 到无穷大(独立于 gamma1),gamma1 从某个下限积分到无穷大。如果是这种情况,所有边界都应该是数字。
  • gamma1 从 0 运行到无穷大,而 gamma2 从 gamma2 运行到无穷大...@TroyHaskin 我将编辑上面的等式。
  • 明白。但是,如果gamma2 的积分下限是一个常数,您可以简单地输入为一个。不需要函数句柄。
  • 但它不是一个常数,gamma2的下限是gamma1,它是第一个变量。
猜你喜欢
  • 2012-02-07
  • 2017-10-16
  • 1970-01-01
  • 2020-08-27
  • 2018-05-11
  • 1970-01-01
  • 2015-06-19
  • 2014-11-26
  • 2020-03-22
相关资源
最近更新 更多