Nonlinear data fitting using lsqnonlin for multiple variables
    14 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
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 commentaire
Réponse acceptée
  Matt J
      
      
 le 19 Juin 2019
        
      Modifié(e) : Matt J
      
      
 le 19 Juin 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 commentaires
  Matt J
      
      
 le 20 Juin 2019
				You're welcome, but please Accept-click the answer if it addressed your question.
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Linear and Nonlinear Regression dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


