Please help me. I want to integrate the following function from 0 to plus infinity.
Show older comments
syms r r0 sg g(r)=r*exp(-(log(r)-log(r0))^2/(2*sg^2));
6 Comments
John D'Errico
on 1 Feb 2023
I would assume you REALLY want to integrate from r0 to infinity.
El Houssain Sabour
on 1 Feb 2023
Torsten
on 1 Feb 2023
It's the lognormal distribution.
Look here which functions MATLAB supplies:
David Goodmanson
on 2 Feb 2023
Edited: David Goodmanson
on 2 Feb 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
on 2 Feb 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)
Answers (1)
Dr. JANAK TRIVEDI
on 2 Feb 2023
Edited: Torsten
on 2 Feb 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 Comment
Torsten
on 2 Feb 2023
I don't see that the integral can be calculated by using "int".
Categories
Find more on Configure Simulation Conditions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!