Curve Fitting with Individual trial function

Hello,
matlab offers the possibility to approximate numerical data by a function like polynomials, exponential function etc! Is there a way to do this with an individual trial function like f(x)= a*sqrt(x)*(b*x^2+exp(c*x) or something like that. If the number of (x,y) pairs is the same like the number of coefficients to be determined in my trial equotation, it could be done with a nonlinear equotation system but i want the curve it to be approximated!
Thanks for your help

1 commentaire

Star Strider
Star Strider le 13 Juil 2012
See ‘lsqcurvefit’ or ‘nlinfit’. If you don't have access to these, you can use ‘fminsearch’ to do nonlinear curve fitting.

Connectez-vous pour commenter.

 Réponse acceptée

Tom Lane
Tom Lane le 13 Juil 2012
If you are talking about the Curve Fitting Toolbox, try this:
f = @(a,b,c,x) a*sqrt(x).*(b*x.^2+exp(c*x))
y = f(1,2,-3,x) + randn(size(x))/100;
plot(x,f(1,2,-3,x),'b.')
fit(x,y,f)
You could also enter the expression into the cftool window. Notice that I vectorized your expression, for example changing "^" to ".^" to get element-by-element operations on the vector x.

Plus de réponses (0)

Catégories

En savoir plus sur Get Started with Curve Fitting Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by