Message: 1
Date: Sat, 22 Nov 2008 13:10:42 -0500
From: "William Christopher Carleton" <address@hidden>
Subject: lsode and random term
To: address@hidden
Message-ID: <address@hidden>
Content-Type: text/plain; charset="UTF-8"
Hi all,
I have a function (below), which includes a random term (I wrote a
function 'random(x)' that just uses rand() to produce a value
between -x and x b/c I couldn't find such an existing function in
Octave's manual) and when I use lsode to solve it occasionally
works, but often produces as error about convergence;
LSODE-- AT T (=R1) AND STEP SIZE H (=R2), THE
CORRECTOR CONVERGENCE FAILED REPEATEDLY
OR WITH ABS(H) = HMIN
In above, R1 = 0.3220694060927D+03 R2 = 0.1207113904987D-05
error: lsode: repeated convergence failures (t = 322.069perhaps bad
jacobian supplied or wrong choice of integration method or tolerances)
error: evaluating assignment expression near line 10, column 2
Can anyone tell me why the random term has caused this problem and
what I can do about it? I want the random term, or I suppose an
unpredictable function with magnitude of fluctuations determined by
a variable selected before solving, to simulate unpredictable
environmental fluctuations. Thanks,
Chris
Octave Code:
function xdot=f(x,t);
k=0.01;
c=.9;
p=0.025;
l=0.5;
C=1000;
r=0.001;
s=1.1;
d=0.002;
v=1;
E=random(1) * v;
xdot(1)=x(1) * (k * (x(3) - x(1)));
xdot(2)=(x(2) * -d * x(1) * E) + (r * x(2) * ((C - x(2)) / x(2)));
xdot(3)=x(2) * (x(1) * l) * p * (((x(2) * s) - x(3)) / (x(2) * s))
- (c * x(1));
endfunction