Please help me. I want to integrate the following function from 0 to plus infinity.
Afficher commentaires plus anciens
syms r r0 sg g(r)=r*exp(-(log(r)-log(r0))^2/(2*sg^2));
6 commentaires
John D'Errico
le 1 Fév 2023
I would assume you REALLY want to integrate from r0 to infinity.
El Houssain Sabour
le 1 Fév 2023
Torsten
le 1 Fév 2023
It's the lognormal distribution.
Look here which functions MATLAB supplies:
David Goodmanson
le 2 Fév 2023
Modifié(e) : David Goodmanson
le 2 Fév 2023
Hi ES,
As Torsten has pointed out, you have a log-normal distribution, and that's all you need to start searching around. In your 18.55.57 jpeg expression for zeta, the integral is the log-normal's second moment about the origin. If you go to Wikipedia for example, you can find an algebraic expression for the nth moment..
El Houssain Sabour
le 2 Fév 2023
As you can see under
integral_{r=0}^{r=Inf} r^n * 1/(r*sqrt(2*pi*sigma^2)) * exp(-1/2 * (log(r)-mu)^2 / sigma^2) dr
=
exp( n*mu + 1/2 * n^2*sigma^2)
Both of your two integrals in question follow from this relation for n=2 and n=3.
So your integral becomes
integral_{r=0}^{r=Inf} r^(n-1) * exp(-1/2 * (log(r)-log(r0))^2 / sg^2) dr =
sqrt(2*pi*sg^2) * exp( n*log(r0) + 1/2 * n^2*sg^2)
for n = 2: sqrt(2*pi*sg^2) * r0^2* exp( 2*sg^2)
for n = 3: sqrt(2*pi*sg^2) * r0^3* exp( 4.5*sg^2)
Réponses (1)
Dr. JANAK TRIVEDI
le 2 Fév 2023
Modifié(e) : Torsten
le 2 Fév 2023
syms r r0 sg
g(r) = r * exp(-(log(r) - log(r0))^2 / (2 * sg^2));
int_g = int(g,r,0,inf)
Note that the inf keyword represents infinity. The integral of g(r) is calculated over the interval [0,inf). You can also specify other intervals of integration as needed.
1 commentaire
Torsten
le 2 Fév 2023
I don't see that the integral can be calculated by using "int".
Catégories
En savoir plus sur Configure Simulation Conditions dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
