Nonlinear data fitting using lsqnonlin for multiple variables

52 visualizaciones (últimos 30 días)
Hello I am trying to fit multiple variables with multiple parameters and objective functions to experimental data using lsqnonlin function and I am having difficulty to generalize the code for this.
For example consider x1, x2, x3 and x4 as the 4 variables that I want to fit. The input data/parameters is a matrix 10x2 where each column is a independent variable a and b having 10 data points corresponding to the output data Y. further I have 2 objective functions f1 and f2.
The first 5 datapoints correspond to the output with respect to variables x1 x2 and their objective function f1. The next 5 data points correspond to the output with respect to variables x3 x4 and their objective function f2 as below
f1 = (x1 + x2*a(1:5) + b*x2(1:5)^3) - y(1:5)
f2 = (x3 + x4*a(5:10) + x4*b(5:10)^2) - y(5:10)
The number of variables, parameters and functions in this expample is just for explanation and in practice may be more.
Kindly suggest how I can generalize to code to accept multiple variables, parameters and functions.Also the function above is hypothetical, so you may use a different function in your answers
Thank you
  1 comentario
Matt J
Matt J el 19 de Jun. de 2019
Editada: Matt J el 19 de Jun. de 2019
In your example, f1 and f2 don't share any unknown parameters. Therefore, there is no need to fit them jointly. You could run lsqnonlin once to fit f1 and a second time to fit f2.

Iniciar sesión para comentar.

Respuesta aceptada

Matt J
Matt J el 19 de Jun. de 2019
Editada: Matt J el 19 de Jun. de 2019
There's nothing special involved,
a=___
b=___
y=___
x0=___
xlsq =lsqnonlin(@(x) modelfun(x,a,b,y), x0)
function F=modelfun(x,a,b,y)
f1 = (x(1) + x(2)*a(1:5) + x(2)*b(1:5)^3) - y(1:5);
f2 = (x(3) + x(4)*a(5:10) + x(4)*b(5:10)^2) - y(5:10);
F=[f1,f2];
end
  6 comentarios
Zaheer Shariff
Zaheer Shariff el 20 de Jun. de 2019
thank you. I will try it out.
Matt J
Matt J el 20 de Jun. de 2019
You're welcome, but please Accept-click the answer if it addressed your question.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Fit Postprocessing 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!

Translated by