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 Exchange で Get 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