我试图解决变量x的积分(从0到Inf),这是变量S的函数。我想解决这个积分并找到依赖于变量S的结果向量。{{3 }}
我想通过polyfit(具有函数E(S))近似这个函数
nu=0; int_val=zeros([255,1]); for i=1:10 S=i/100; %besselj(0,S*2) fun = @(x)log(abs(x-(pi/2)^2.*(-S.^2/2))).*x.*exp((x.^2+S.^2)/2).*besselj(nu,S.*x); int_val(i) = integral(fun,0,Inf); end
不幸的是,MATBAL只计算NaN数。这对我来说非常重要..请帮忙。
答案 0 :(得分:0)
正如我在评论中已经写过的那样,对于大x,你的被积函数正在增长到无穷大。因此,积分不能收敛。
以下代码
nu=0;
int_val=zeros([255,1]);
i = 1;
S=i/100;
fun = @(x)log(abs(x-(pi/2)^2.*(-S.^2/2))).*x.*exp((x.^2+S.^2)/2).*besselj(nu,S.*x);
x = 0:0.1:100;
semilogy(x, fun(x))
导致这个情节:
你不能将这样的函数从0整合到无穷大,因为结果不会收敛到有限数。
在上面的回答中,您声明S(x)取决于x。但是,在你的代码中,S是一个常量。也许这就是问题所在 - 如果你用一个x的实际函数替换S,从x到无穷大为零,你可能会得到一个收敛积分。