On 4/24/2013 4:22 PM, iam49erfreak wrote:
> I am trying to solve a system of ODEs and when I follow an
>example on how to use ode45 I keep getting an error saying that
>I don't have enough input arguments and that 't' isnt being used.
>What am I doing wrong? Any help is greatly appreciated!
>
> function dy = rigid(t,y)
> dy = zeros(3,1);
> dy(1) = (16.38124)*(y(2)  ((y(1))*(y(2))) + y(1)  (.008376*((y(1))^2)));
> dy(2) = (.0027436)*(y(3)  y(2)  (x*(y(2))));
> dy(3) = (.034132)*(y(1)  y(3));
>
> options = odeset('RelTol',1e4,'AbsTol',[1e4 1e4 1e5]);
> [T,Y] = ode45(@rigid,[0 610],[4 1.1 4],options);
>
> plot(T,Y(:,1),'',T,Y(:,2),'.',T,Y(:,3),'.')
>
Why not try ode45 on simple examples first, to learn well,
before you go to more advanced ones?
I do not understand what you have above. Is this all in one
function? or rigid() is in it own function and the rest of
the code is in different function?
Also, just look at the code in rigid(). I see an 'x', where
did this 'x' come from? I see no 'x' defined any where in
the code you have there. In Matlab, if you use a variable
on the RHS of an expression, then it needs to have a numerical
value, unless it is a syms.

EDU>> clear x
EDU>> y=x
Undefined function or variable 'x'.

Nasser
