Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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_Integral_Numerical Integration - Fatal编程技术网

Matlab 如何避免数值积分中的奇异性

Matlab 如何避免数值积分中的奇异性,matlab,integral,numerical-integration,Matlab,Integral,Numerical Integration,我想用Matlab对以下内容进行数值集成: fun=@(t)((1-(-1)^n*cos(n*pi*t/R))/t); hn=积分(fun,0,(sqrt(R^2-x^2)); 现在,我只是避免计算0中的积分,它们是否会在这一点上遇到奇点。如果您使用eps而不是0作为积分的下限,我想您也可以得到它 R=101; X=linspace(0,R,1001)'; 对于n=1:10 对于c=1:长度(X) x=x(c); 乐趣=@(t)((1-(-1)n*cos(n*pi*sqrt(t.^2+x.^2

我想用Matlab对以下内容进行数值集成:

fun=@(t)((1-(-1)^n*cos(n*pi*t/R))/t);
hn=积分(fun,0,(sqrt(R^2-x^2));

现在,我只是避免计算0中的积分,它们是否会在这一点上遇到奇点。

如果您使用
eps
而不是
0
作为
积分的下限,我想您也可以得到它

R=101;
X=linspace(0,R,1001)';
对于n=1:10
对于c=1:长度(X)
x=x(c);
乐趣=@(t)((1-(-1)n*cos(n*pi*sqrt(t.^2+x.^2)/R))/sqrt(t.^2+x.^2));
hn(c,n)=积分(fun,eps,(sqrt(R^2-x^2));
结束
结束

感谢您的快速回答。这无助于解决问题problem@user11822932你能说明处理奇点与不处理奇点的区别吗?否则,仅通过您的描述r=101就不清楚了;X=linspace(0,R,1001)”,对于n=1:10,对于c=1:length(X)X=X(c);乐趣=@(t)((1-(-1)^NCO(npi*sqrt(t.^2+x.^2)/R))。/sqrt(t.^2+x^2));hn(c,n)=积分(fun,0,(sqrt(R^2-x^2));结束结束这是我处理奇点时的代码(在本例中,我有以下警告:已达到使用的最大间隔数限制)一旦我将内部for循环更改为for c=1:lenght(x)-1 x=x(c+1),我将避免奇点,但忽略x=0时积分的计算@用户11822932请查看我的更新解决方案。函数
integral
无法规避奇点,因此您需要使用一些技巧手动避免它…它给出了完全相同的结果,我稍微修改了分母,如下1/sqrt(t^2+epqilon^2+x^2)以避免奇点。如果
n
为偶数,则函数在0处没有奇点。