Fit sum parameters of an overdetermined system

2 visualizaciones (últimos 30 días)
Marco Knobloch
Marco Knobloch el 11 de Dic. de 2019
Comentada: Marco Knobloch el 12 de Dic. de 2019
I have a function that uses 9 inputs (cts(1) to cts (9)) and provides 1 value as result. The function needs 4 parameters (c(1) to c(4)). The code of the function is:
fun = @(c,cts) ((c(1) .* (4-c(4))) ./ (c(2)+c(3) .* 4)) *cts(1) +...
((c(1) .* (5-c(4))) ./ (c(2)+c(3) .* 5)) *cts(2)+ ...
((c(1) .* (6-c(4))) ./ (c(2)+c(3) .* 6)) *cts(3) + ...
((c(1) .* (7-c(4))) ./ (c(2)+c(3) .* 7)) *cts(4) + ...
((c(1) .* (8-c(4))) ./ (c(2)+c(3) .* 8)) *cts(5) + ...
((c(1) .* (9-c(4))) ./ (c(2)+c(3) .* 9)) *cts(6) + ...
((c(1) .* (10-c(4))) ./ (c(2)+c(3) .* 10)) *cts(7) + ...
((c(1) .* (11-c(4))) ./ (c(2)+c(3) .* 11)) *cts(8) + ...
((c(1) .* (12-c(4))) ./ (c(2)+c(3) .* 12)) *cts(9)
I have 11 measured values with each 9 inputs. From this data set I want to fit the parameters c. Is there an algorithm which I can use for this problem? I already tried lsqcurvefit, but that atempt ended with the error:
Error using lsqcurvefit (line 263)
Function value and YDATA sizes are not equal.

Respuesta aceptada

Matt J
Matt J el 11 de Dic. de 2019
Editada: Matt J el 11 de Dic. de 2019
Your xdata should be a 9x11 matrix, your ydata should be a 1x11 vector, and the code for your function should look like this,
fun = @(c,cts) ((c(1) .* (4-c(4))) ./ (c(2)+c(3) .* 4)) *cts(1,:) +...
((c(1) .* (5-c(4))) ./ (c(2)+c(3) .* 5)) *cts(2,:)+ ...
((c(1) .* (6-c(4))) ./ (c(2)+c(3) .* 6)) *cts(3,:) + ...
((c(1) .* (7-c(4))) ./ (c(2)+c(3) .* 7)) *cts(4,:) + ...
((c(1) .* (8-c(4))) ./ (c(2)+c(3) .* 8)) *cts(5,:) + ...
((c(1) .* (9-c(4))) ./ (c(2)+c(3) .* 9)) *cts(6,:) + ...
((c(1) .* (10-c(4))) ./ (c(2)+c(3) .* 10)) *cts(7,:) + ...
((c(1) .* (11-c(4))) ./ (c(2)+c(3) .* 11)) *cts(8,:) + ...
((c(1) .* (12-c(4))) ./ (c(2)+c(3) .* 12)) *cts(9,:)

Más respuestas (0)

Categorías

Más información sobre Get Started with Curve Fitting Toolbox en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by