how can I fit a composite function
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have (x,y) data and i would like to fit the function of parameter()
with
with
How can I do it?
Réponses (1)
Dheeraj Singh
le 24 Juil 2019
Modifié(e) : Dheeraj Singh
le 24 Juil 2019
There are many ways of fitting parameters to the data.
Firstly, you can form the equations in the following manner:
z= @(x0,w,x) (x-x0)/w;
X= @(x0,w,m,x) 1-z(x0,w,x).^2+m^2;
r= @(x0,w,m,x) sqrt(X(x0,w,m,x).^2+4*z(x0,w,x).^2);
S1= @(a0,x0,w,m,x) (1- a0*sqrt(r(x0,w,m,x)+X(x0,w,m,x))./r(x0,w,m,x));
S2= @(a0,x0,w,m,x) a0.*(-z(x0,w,x).*sqrt(r(x0,w,m,x)+X(x0,w,m,x))+sign(z(x0,w,x)).*sqrt(r(x0,w,m,x)-X(x0,w,m,x)))./(m*r(x0,w,m,x));
yfunc= @(params,x) params(1)*S1(params(3),params(4),params(5),params(6),x) + params(2)*S2(params(3),params(4),params(5),params(6),x);
For fitting the parameters, you can do in the following manner depending upon your data:
%size of x and y =200
y=linspace(0,200,200);
x=rand(200,1);
%initial values of parameters
params0=rand(6,1);
params=fminsearch(@(params) norm(y-yfunc(params,x)),params0);
For more information on Parameter fitting refer to the following link:
Parameter fitting: https://in.mathworks.com/help/curvefit/parametric-fitting.html
You can also refer to the Curve Fitting Toolbox:
Curve Fitting Toolbox: https://in.mathworks.com/products/curvefitting.html
0 commentaires
Voir également
Catégories
En savoir plus sur Get Started with Curve Fitting Toolbox 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!