Trouble evaluating integral where function is made of huge and tiny values
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi there,
I'm trying to integrate a function which is the product of one tiny and one large value. Analytically, this makes the integrand work out but numerically I am running into problems. Say I have the following parameters:
ChiSq = @(x,y) a.*x.^2 + b.*x.*y + c ;
Chi = @(x,y) sqrt(a.*x.^2 + b.*x.*y + c );
n = 840; %degrees of freedom, a fixed number
a = 1e6;
b = -1.5e5;
c = 837; %a,b,c are parameters fit from experimental data
I plug these functions into the main function I want to integrate:
Zfun = @(x,y) (Chi(x,y).^(n/2-1)).*exp(-1/2*ChiSq(x,y));
The problem is, I can't integrate Zfun because Chi(x,y)^n/2-1 returns INF and exp(-1/2ChiSq) returns 0. If they could all be evaluated together the integrand would be reasonable, but due to numerical limitations this breaks.
How can I get around this?
UPDATE: I've tried the following but vpaintegral doesn't work with polar coordinates as far as I can tell. I'm confused about if the algorithm would integrate over a circular area if I transform into cartesian coordinates.
n = sym(840);
Zfun = @(x,y) (Chi(x,y).^(n/2-1)).*exp(-sym(1/2)*ChiSq(x,y));
polarZfun = @(theta,r) Zfun(r.*cos(theta),r.*sin(theta)).*r;
I(i) = vpaintegral(vpaintegral(polarZfun, theta, [0 2*pi]), r, [0 big_r]);
4 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differentiation finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!