/ / MATLAB - resolviendo la integral con la función de bessel - matlab, integral

MATLAB - resolviendo la función integral con bessel - matlab, integral

Estoy tratando de resolver la integral de la variable x (de 0 a Inf), que es la función de la variable S. Quiero resolver esta integral y encontrar el vector de resultados dependiente de la variable S. integral

Quiero luego aproximar esta función por polyfit (para tener una función 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

Desafortunadamente, el MATBAL calcula solo el número de NaN. Es muy importante para mí .. Por favor, ayuda.

Respuestas

0 para la respuesta № 1

Como ya he escrito en los comentarios, su función integrand está creciendo hasta el infinito para x grande. Por lo tanto, la integral no puede converger.

El siguiente código

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))

resultados en esta parcela:

enter image description here

No puede integrar una función como esa desde 0 hasta el infinito, ya que el resultado no converge a un número finito.

En su respuesta anterior, usted declara que S (x) dependeen x Sin embargo, en su código S es una constante. Tal vez ese sea el problema: si reemplaza S por una función real de x que va de cero para x hasta el infinito, podría terminar con una integral convergente.