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 件のコメント

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

サインインしてコメントする。

 採用された回答

Tom Lane
Tom Lane 2012 年 7 月 13 日

0 投票

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.

1 件のコメント

Christian
Christian 2012 年 7 月 13 日
Thank you very much!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeGet Started with Curve Fitting Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by