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

조회 수: 1 (최근 30일)
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?

채택된 답변

Star Strider
Star Strider 2016년 1월 25일
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
Christos
Christos 2016년 1월 26일
편집: Christos 2016년 1월 26일
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Nonlinear Optimization에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by