How to introduce a random variable in ode45?

8 views (last 30 days)
Hi to all, I am quite new in Matlab, thanks in advance for your help. I am trying to solve a system of differential equations similar to:
r1'(t)=f(r1,r2,t)+g(r1,r2,t)*z(t);
r2'(t)=j(r1,r2,t)+h(r1,r2,t)*z(t);
I am using ode45 by defining a function file with f, g, j and h. Now my problem is to introduce z(t) as a random number for a normal distribution. This random numbers can be obtained using normrnd(mu,sigma), however, I need my program to take on different random number for each time but use the same at each time for r1' and r2'. Thanks a lot for your help.

Accepted Answer

Paul
Paul on 2 Mar 2014
Edited: Paul on 2 Mar 2014
Add
rng('shuffle')
before calling normrnd.
  3 Comments
Paul
Paul on 2 Mar 2014
Edited: Paul on 2 Mar 2014
function z=f(t,r)
z=zeros(2,1);
rng('shuffle')
z(1)=f(r1,r2,t)+g(r1,r2,t)*normrnd(mu,sigma); z(2)=j(r1,r2,t)+h(r1,r2,t)*normrnd(mu,sigma);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!