www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/ModelDataWithPolynomialExample.m

    %% Model Data with Polynomial
%

% Copyright 2015 The MathWorks, Inc.


%% Section 1
% This example shows how to model data with a polynomial.
%%
% Measure a quantity |y| at several values of time
% |t|.
t = [0 0.3 0.8 1.1 1.6 2.3];
y = [0.6 0.67 1.01 1.35 1.47 1.25];
plot(t,y,'o')
title('Plot of y Versus t')

%%
% You can try modeling this data using a second-degree polynomial function,
%
% $$y=a_{2}t^{2} + a_{1}t + a_{0}.$$

%%
% The unknown coefficients, $a_{0}$, $a_{1}$, and $a_{2}$, are computed by minimizing the sum of the squares of the deviations of the data from the model (least-squares fit).

%%
% Use |polyfit| to find the polynomial coefficients.
p = polyfit(t,y,2)

%%
% MATLAB calculates the polynomial coefficients in descending powers.

%%
% The second-degree polynomial model of the data is given by the
% equation
%
% $$y = -0.2942t^{2}+1.0231t+0.4981.$$

%%
% Evaluate the polynomial at uniformly
% spaced times, |t2|. Then, plot the original data and the model on the same plot.
t2 = 0:0.1:2.8;
y2 = polyval(p,t2);
figure
plot(t,y,'o',t2,y2)
title('Plot of Data (Points) and Model (Line)')

%%
% Evaluate model at the data time vector
y2 = polyval(p,t);

%%
% Calculate the residuals.
res = y - y2;

%%
% Plot the residuals.
figure, plot(t,res,'+')
title('Plot of the Residuals')

%%
% Notice that the second-degree fit roughly follows the basic shape of the
% data, but does not capture the smooth curve on which the data seems to
% lie. There appears to be a pattern in the residuals, which indicates that
% a different model might be necessary. A fifth-degree polynomial (shown
% next) does a better job of following the fluctuations in the data.

%%
% Repeat the exercise, this time using a fifth-degree polynomial from
% |polyfit|.
p5 = polyfit(t,y,5)

%%
% Evaluate the polynomial at |t2| and plot the fit on top of the data in a
% new figure window.
y3 = polyval(p5,t2);   
figure
plot(t,y,'o',t2,y3)
title('Fifth-Degree Polynomial Fit')