Fitting a curve to data
1 回表示 (過去 30 日間)
古いコメントを表示
Hello,
I am trying to test out the validity of Taylor-Sedov analytical solution to an experimental data set.
I want to fit curves of the form
y=At^2
y=At^3
to some data points, where A is malleable and will be changed to achieve the best fit.
Advice is greatly appreciated.
0 件のコメント
回答 (1 件)
the cyclist
2012 年 6 月 20 日
If you have the Statistics Toolbox, you can use the nlinfit() function. Here is an example of doing the fit with Ax^2. It should be obvious how to adapt it for Ax^3.
% Here is an example of using nlinfit(). For simplicity, none of
% of the fitted parameters are actually nonlinear!
% Define the data to be fit
x=(0:1:10)'; % Explanatory variable
y = 7*x.^2; % Response variable (if response were perfect)
y = y + 15*randn((size(x)));% Add some noise to response variable
% Define function that will be used to fit data
% (F is a vector of fitting parameters)
f = @(A,x) A.*x.^2;
A_fitted = nlinfit(x,y,f,[1]);
% Display fitted coefficients
disp(['A = ',num2str(A_fitted)])
% Plot the data and fit
figure(1)
plot(x,y,'*',x,f(A_fitted,x),'g');
legend('data','fit')
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Interpolation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!