Numerical integration with a singularity at the upper limit
Ältere Kommentare anzeigen
How can I numerically integrate a function with a singularity at the upper limit? The 'integral' function is not smooth to changes in the lower limit. Here is a code with my function and a plot that illustrates the instability:
n=20;
h1=@(x) x.^(1/2+n).*(1-x).^(1/2-n);
inth1=@(p) integral(h1,p,0.99);
fplot(inth1,[0.5,0.55])
quadgk does not solve the problem.
Antworten (2)
John D'Errico
am 30 Mär. 2016
3 Stimmen
No matter what numerical methods scheme one chooses to solve this problem, you can always choose a sufficiently large value of n that makes it unstable. NO numerical method will survive your test, IF you are willing to make your function arbitrarily nasty.
Anyway, there is not in fact a singularity at the limits of integration here, but beyond those limits. The singularities are at x=0 and x=1, whereas you have chosen [p,0.99] as the limits of integration. This is a completely different problem than one with a singularity.
If you insist on solving such arbitrarily nearly singular problems, you will probably need to work in a higher precision arithmetic than double precision. So I'd start by looking at the symbolic toolbox.
1 Kommentar
Linas Tarasonis
am 6 Apr. 2016
Torsten
am 30 Mär. 2016
0 Stimmen
Your integral only exists for n < 3/2 (if the lower x-limit is greater 0).
Best wishes
Torsten.
2 Kommentare
Linas Tarasonis
am 6 Apr. 2016
Torsten
am 6 Apr. 2016
0.99 is somewhat arbitrary if the integral does not exist, isn't it ?
Best wishes
Torsten.
Kategorien
Mehr zu Numerical Integration and Differentiation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!