How can I use for loop to input values when solving ODEs using ode45?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dursman Mchabe
am 13 Feb. 2019
Kommentiert: Dursman Mchabe
am 26 Dez. 2020
Hi everyone
On the attached code, I am trying to use a for loop to iteratively input values while solving ODEs using ode45. I think I am making a mistake somewhere. I get the error message:
Not enough input arguments.
Error in SlurryCaseODE45Feb14/kinetics (line 31)
[T,Cv]=ode45(@DifEq,t,c0,Options);
Error in lsqcurvefit (line 213)
initVals.F = feval(funfcn_x_xdata{3},xCurrent,XDATA,varargin{:});
Error in SlurryCaseODE45Feb14 (line 166)
[theta,Rsdnrm,Rsd,ExFlg,OptmInfo,Lmda,Jmat]=lsqcurvefit(@kinetics,theta0,t,c);
Caused by:
Failure in initial objective function evaluation. LSQCURVEFIT cannot continue.
Please help.
0 Kommentare
Akzeptierte Antwort
aara
am 13 Feb. 2019
You have to define the initial and final time for the ode45 function rather than just typing t, use [t0 tf].
I suggest editting the function function dC=DifEq(t,c) as it has some missing matrix multiplication operators (.*) and revising the matrix formations that you used. Check line 39 for example.
7 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!