In need of help with ODE45
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Maxxy
am 25 Feb. 2015
Kommentiert: Star Strider
am 28 Feb. 2015
Hi, I'm new to MATLAB and I hope you can enlighten me on the usage of ODE45.
In my main script, 'inputprompts.m', I called a function HCRSK with the ODE45 solver, as follows:
T0 = [Tc,Tsk; Tc,Tsk]; %initial values input by user
[t,T] = ode45(@HCRSK, [Tinit,Tend], T0);
Tinit and Tend are input by the user.
The HCRSK function uses the Tc and Tsk inputs and borrows the output of other functions using the same inputs. Other functions called are alpha, HSCR and HSSK. The code for the function is as follows:
function hcrsk = HCRSK(x,y)
Wt=65;
Ht=1.77;
Cbt=1.28;
Ad = 0.202.*(Wt.^0.425).*(Ht.^0.725);
a = feval(@alpha, x,y);
TCCRA = ((1-a).*Wt.*Cbt)./Ad;
hscr1 = feval(@HSCR,x,y);
Tcdot = hscr1./TCCRA;
TCSKA = (a.*Wt.*Cbt)./Ad;
hssk1 = feval(@HSSK,x,y);
Tskdot = hssk1./TCSKA;
hcrsk = [Tcdot; Tskdot]; %vector of Tc and Tsk rate equations"
Running the main script returns an error like so:
"Error in odearguments (line 87) f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 113) [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
Error in inputprompts (line 64) [t,T] = ode45(@HCRSK, [Tinit,Tend], T0);"
HELP~~~!!
2 Kommentare
Torsten
am 25 Feb. 2015
According to the error message, you call ODE15I instead of ODE45.
This solver has a parameter list different from ODE45.
Best wishes
Torsten.
Akzeptierte Antwort
Star Strider
am 25 Feb. 2015
Your initial conditions vector has to be the same size as the vector returned by your ODE function.
6 Kommentare
Star Strider
am 28 Feb. 2015
My pleasure!
If I solved your problem, I would appreciate it if you Accept my Answer.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Ordinary Differential Equations finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!