How to use LSQNONLIN or LSQCURVEFIT when the function has a derivative form ?

1 view (last 30 days)
I would like to use the least squares method to determine specific parameters. Knowing the time step, dt, time,t(i), and displacement, u(i), for every step i, the equation is the following:
F0(i)=k1*u(i)^k2
F1(i)=(F1(i-1)+k3*u(i)-k3*u(i-1))*(k4/(k4+k3*dt))
Y(i)=F0(i)+F1(i)=(k1*u(i)^k2)+(F1(i-1)+k3*u(i)-k3*u(i-1))*(k4/(k4+k3*dt))
or if it is more convenient for anyone (assuming that dF1(i)/dt=(F1(i)-F1(i-1))/dt) :
Y(i)=(k1*u(i)^k2)+(k4*u(i)-(k4/k3)*dF1(i)/dt)
Y_exp is the expected output, and the parameters I want to determine are the k1,k2,k3,k4. The thing that worries me the most, is the dependence of time step i on i-1 time step.
ANY IDEAS?

Accepted Answer

Star Strider
Star Strider on 25 Jan 2016
It’s difficult for me to follow what you’re doing. If you want to fit a (perhaps kinetic) differential equation to data, you can use the techniques in Monod kinetics and curve fitting.
  1 Comment
Christos
Christos on 26 Jan 2016
Edited: Christos on 26 Jan 2016
Thank you for your reply. Just imagine that I have a system with a non linear spring with a stiffness parameter k1, and the displacement at the power of k2 (so its behaviour is described by F0(i)=k1*u(i)^k2 for every time step), and linear spring in series with a linear dashpot with a stiffness and dashpot parameters k3, and k4 respectively
(so its behaviour is described by: F1(i)=k4*u(i)-(k4/k3)*dF1(i)/dt).
The displacement of the non linear spring and the linear spring in series with the dashpot is the same, u). So, the total force can be determined as Y(i)=Fo(i)+F1(i).
I am trying to use the lsqnonlin command in order to optimize the k1,k2,k3,k4 parameters and I can't find any way to do that. So any help will be good. Thank you again

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!