基于MATLAB的奇异性二重积分
我试图执行如下功能的双重集成 我知道如何在MATLAB中编写二重积分。正如你所看到的,这个函数不容易计算,因为变量是分母。假设我称之为积分fun1 我编写了以下代码来解决这个问题基于MATLAB的奇异性二重积分,matlab,integration,Matlab,Integration,我试图执行如下功能的双重集成 我知道如何在MATLAB中编写二重积分。正如你所看到的,这个函数不容易计算,因为变量是分母。假设我称之为积分fun1 我编写了以下代码来解决这个问题 gamma2min=@(gamma1)gamma1; I= integral2(fun1,0,+inf,gamma2min,+inf); 我得到以下错误 在x=0.160784附近达到的最小步长。可能会有一个 奇点,或者公差对于该问题可能太紧 我也知道问题是什么,但我不知道如何解决它 感谢您的帮助Matlab文档
gamma2min=@(gamma1)gamma1;
I= integral2(fun1,0,+inf,gamma2min,+inf);
我得到以下错误
在x=0.160784附近达到的最小步长。可能会有一个
奇点,或者公差对于该问题可能太紧
我也知道问题是什么,但我不知道如何解决它
感谢您的帮助Matlab文档说“
integration2
在奇异点位于积分边界上时表现最佳”[]。因此,由于积分区域是gamma空间上的一个简单矩形,我将它分成两个区域,分别是关于奇点(gamma1==gamma2
)和和:
沿着gamma1=gamma2的奇点看起来非常糟糕;积分将发散,除非函数f使得每当gamma1=gamma2时f(gamma1,gamma2)=0。即使这样也不足以保存积分。你能说明f的性质吗?@George是的,我是说
gamma2min
(抱歉)。你认为“应该是标量”吗?也许我误解了你贴的等式。根据该方程,gamma2
的积分区域从0到无穷大(独立于gamma1
),并且gamma1
从某个下限积分到无穷大。如果是这种情况,所有边界都应该是数字。gamma1从0运行到无穷大,而gamma2从gamma2运行到无穷大@特洛伊哈斯金我会编辑上面的方程式。明白。但是,如果gamma2
的积分下限为常数,则只需输入一个。不需要函数句柄。但它不是常数,gamma2的下限是第一个变量gamma1。
I1 = integral2(fun1, 0 , gamma2min , gamma2min , +Inf);
I2 = integral2(fun1,gamma2min , +Inf , gamma2min , +Inf);
I = I1 + I2;