Effacer les filtres
Effacer les filtres

How can I add rabdom variables to an ode

1 vue (au cours des 30 derniers jours)
Bill
Bill le 4 Fév 2014
Réponse apportée : Bill le 4 Fév 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 commentaires
Mischa Kim
Mischa Kim le 4 Fév 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 le 4 Fév 2014
Post your ode function

Connectez-vous pour commenter.

Réponses (2)

Paul
Paul le 4 Fév 2014
Modifié(e) : Paul le 4 Fév 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 le 4 Fév 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?

Catégories

En savoir plus sur Programming dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by