Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于MATLAB的奇异性二重积分_Matlab_Integration - Fatal编程技术网

基于MATLAB的奇异性二重积分

基于MATLAB的奇异性二重积分,matlab,integration,Matlab,Integration,我试图执行如下功能的双重集成 我知道如何在MATLAB中编写二重积分。正如你所看到的,这个函数不容易计算,因为变量是分母。假设我称之为积分fun1 我编写了以下代码来解决这个问题 gamma2min=@(gamma1)gamma1; I= integral2(fun1,0,+inf,gamma2min,+inf); 我得到以下错误 在x=0.160784附近达到的最小步长。可能会有一个 奇点,或者公差对于该问题可能太紧 我也知道问题是什么,但我不知道如何解决它 感谢您的帮助Matlab文档

我试图执行如下功能的双重集成

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

我编写了以下代码来解决这个问题

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;