%
% 用正交多项式做最小二乘曲线拟合
%
clear; clc; 
close all;

X = [0, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0];
Y = [1, 1.75, 1.96, 2.19, 2.44, 2.71, 3.00];
n = 2;

p = polyfit(X,Y,n)

fprintf('%d 次最小二乘拟合多项式为: %s\n',n, char(poly2sym(p)));

% 绘图
plot(X, Y, '.k','MarkerSize',12) % 原数据点
hold on;
t = 0:0.01:1;
plot(t, polyval(p,t),'b-'); % 绘拟合曲线
plot(X,polyval(p,X),'bo','MarkerSize',10); % 绘拟合曲线在给定数据点上的近似值
hold off;