MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi
Opportunities for recent engineering grads.
New to MATLAB?
The same as my title. Thanks a lot!
No products are associated with this question.
Inside the ODE function you can do what ever you want, as long as the output is numerical and has a certain degree of smoothness.
Direct link to this comment:
Thanks for the quick reply. Actually, I have a number of odes.
y1' = f(y1,y2,y3,t,a,b,c)
y3' = h(y1,y2,y3,t,a,b,c)
And have some observed values of y1, y2, y3 at differnt times t. What I want to accomplish is to estimate the parameters a, b, c. My plan is to first establish some relationships(functions) between a, b, c and y1, y2, y3. And then use least squares minimization method to estimate a, b, c.
Do you think my logic of problem solving feasible in MatLab?
If you have known values at selected points for an ODE, but you do not know the form of the ODE, then I do not think it is possible to reconstruct the ODE uniquely without an infinite number of samples.
@Weiwei: It sound feasible. This is actually a standard parameter estimation of a boundary value problem on the subintervals. So start with a good coice of a,b,c, calculate the ODE and find better a,b,c by a variation or the evaluation of the sensitivity matrix. If your trajectories explode if a,b,c are far apart from the solution, use a multiple shooting method. The objective of your parameter estimation is than the distance between your trajectory from all mesaurements *and* the steps at each measurement point.
As far as I know, the lsqnonlin function in Matlab is able to do parameter estimation using least square minimization. However, it requires an input of function definition. I cannot find a way to couple ode45 with lsqnonlin to do the above described work.
Direct link to this answer: