How can I make definite integral to Bessel function in the interval from 0 to infinite

조회 수: 2 (최근 30일)
i used the commend 'guadgk' to make definite integral to Bessel function in the interval from 0 to infinite, the result turns out to be that it's not a good way to solve it.
the code:
clc;
clear;
f=@(q)BESSELJ(0,q);
n=quadgk(f,0,inf)
the result displayed in the commend window:
Warning: Reached the limit on the maximum number of intervals in use.
Approximate bound on error is 1.0e+007. The integral may not exist, or
it may be difficult to approximate numerically. Increase MaxIntervalCount
to 712 to enable QUADGK to continue for another iteration.
> In quadgk>vadapt at 317
In quadgk at 216
In test_4 at 4
n =
1.3759e+007
what should i do ?

답변 (1개)

Mike Hosea
Mike Hosea 2013년 7월 1일
I'm not sure I understand the problem. The answer is 1, so use 1 instead of quadgk(f,0,inf). However, if you are concerned about the results over a finite range of 0 to b, I would not be concerned unless b is large. The improper integral of f, or the integral over a large interval, is just one of those problems that needs to be approached analytically or with a highly specialized numerical method tailored in some sense to that particular problem.

카테고리

Help CenterFile Exchange에서 Special Functions에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by