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 comentario

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

Iniciar sesión para comentar.

 Respuesta aceptada

Tom Lane
Tom Lane el 13 de Jul. de 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.

Más respuestas (0)

Categorías

Más información sobre Get Started with Curve Fitting Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 13 de Jul. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by