Numerical Double Integral in Matlab

2 views (last 30 days)
Prerna Mishra
Prerna Mishra on 22 Sep 2022
Commented: Walter Roberson on 23 Sep 2022
I have to do the following integration in matlab
b is log normally distributed and I have a vector of 100 random number for b call b_rand.
a is a vector of numbers that denotes a Markovian transition probability matrix
[0.1680 0.4098 1.0000 2.4400 5.9537]
I wrote the code as follows, but I am not confident I am doing the right thing. Could someone help?
inner_term = W_t./b
outer_term = a
final_term = inner_term.*outer_term
integral = mean(mean(outer_term)
  8 Comments
Torsten
Torsten on 23 Sep 2022
Edited: Torsten on 23 Sep 2022
If I have a sufficiently long vector of log normally distributed random variables, it is possible to use the trapeziod rule, i.e say if I have a vector of 100 variables with the lbounds being the lowest and highest value in the vector.
Sorry, but this is nonsense. How does the fact that the values for b are generated from a lognormal distribution influence the integral ? b is the independent, not the dependent variable. If you use the trapezoidal rule, you will get the same value as if you use a uniform grid between b_l and b_h.
And how can you Markovian transition probability matrix have values greater than 1 ?
Walter Roberson
Walter Roberson on 23 Sep 2022
you will not get the same value, but for a sufficiently dense random sample the value will approach what you would get with a comparably dense uniform grid.

Sign in to comment.

Answers (1)

Chunru
Chunru on 23 Sep 2022
It seems that the integration is separatable into two 1-D integrations:
inner_term = W_t./b
outer_term = a
final_term = inner_term.*outer_term
integral = trapz(b, inner_term) * trapz(a, outer_term)

Community Treasure Hunt

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

Start Hunting!