# Fitting a curve to data

3 views (last 30 days)
A on 19 Jun 2012
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.

the cyclist on 20 Jun 2012
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,);
% 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')