Optimize two dependent equations
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I am trying to fit two curves that are dependent on each other. Following are the equations:
y1(t+1) = (param1 * y1(t) * (param2-y1(t))) + (param3 * y2(t) * (param2-y1(t)))
y2(t+1) = (param4 * y2(t) * (param5-y2(t))) + (param6 * y1(t) * (param5-y2(t)))
Our aim is to optimize the values of all the parameters such that we are able to model y1 and y2 sequence close to observed. We have ground truth to compute error (SSE).
How can we optimize two sets of questions that are dependent on each other? I have been looking at lsqnonlin but I am not sure how to optimize in this setup.
0 comentarios
Respuestas (2)
Mukul Rao
el 6 de Dic. de 2017
Hi, if you are looking to optimize both equations together, I would recommend looking at some of the multi-objective optimization functions in MATLAB.
Your goal would be to minimize a vector of [SSE(y1) ; SSE(y2) ], unlike a scalar which is typical of single objective optimization problems.
0 comentarios
Torsten
el 7 de Dic. de 2017
Editada: Torsten
el 7 de Dic. de 2017
Use lsqnonlin with the f-vector defined as
f=[y1(t1)-y1_obs(t1),y1(t2)-y1_obs(t2),...,y1(tn)-y1_obs(tn),y2(t1)-y2_obs(t1),y2(t2)-y2_obs(t2),...,y2(tn)-y2_obs(tn)]
Here, given the parameters from lsqnonlin, y1(t1),...,y1(tn),y2(t1),...,y2(tn) are calculated from your above formulae starting from y1(t0) and y2(t0).
If y1(t0) and y2(t0) are also unknown, you can include them in the vector of unknown parameters.
Best wishes
Torsten.
0 comentarios
Ver también
Categorías
Más información sobre Multiobjective Optimization en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!