Optimize two dependent equations

5 visualizaciones (últimos 30 días)
anne
anne el 4 de Dic. de 2017
Editada: Torsten el 7 de Dic. de 2017
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.

Respuestas (2)

Mukul Rao
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.

Torsten
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.

Categorías

Más información sobre Multiobjective Optimization en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by