How can I add rabdom variables to an ode

1 visualización (últimos 30 días)
Bill
Bill el 4 de Feb. de 2014
Respondida: Bill el 4 de Feb. de 2014
So i have these two differential equations that I can solve but I want to add a noisy term to one of the variables, the options are to either have a random number between -1 and 1 or just a sin/cos term that varies between this, the code runs fine until i attempt to add this noise then it gets errors can anyone help i am just not sure how to add this noisy term
h=0.01;
ti=0;
tf=5;
N=floor(tf/h);
t=linspace(ti, tf, N);
b = 2;
a = 0.5;
x(1)=0.1;
y(1)=0.1;
noise=rand(-1,1);
for i=1:(N-1)
x_tmp = x(i)+h*a*x(i)*(8-x(i))*(x(i)*x(i)-16);
y_tmp = y(i)+h*(6+b^2) +h*noise;
x(i+1) = x(i)+h/2*(a*x(i)*(8-x(i))*(x(i)*x(i)-16))+a*x_tmp*(8-x_tmp)*(x_tmp*x_tmp-16);
y(i+1) = y(i)+h/2*(6+b*b+y_tmp);
end
  2 comentarios
Mischa Kim
Mischa Kim el 4 de Feb. de 2014
Without having gone through your code, what makes you think that the code does not work "fine" anymore when adding noise?
Azzi Abdelmalek
Azzi Abdelmalek el 4 de Feb. de 2014
Post your ode function

Iniciar sesión para comentar.

Respuestas (2)

Paul
Paul el 4 de Feb. de 2014
Editada: Paul el 4 de Feb. de 2014
rand gives a random value between 0 and 1. The arguments of rand are not the boundaries but the size (of the matrix) of the output. change
noise=rand(-1,1);
to:
noise = -1 + 2*rand(1)

Bill
Bill el 4 de Feb. de 2014
Thanks it runs now, but it doesn't seem to actually do anything i.e add noise, is it changing with iteration or is it because the amplitude h is so small that any effect is removed?

Categorías

Más información sobre Ordinary Differential Equations en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

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

Start Hunting!

Translated by