1.问题定义
假设采用n次多项式对m个采样点进行最小二乘法拟合,分别为m个采样点的坐标,根据这m个采样点拟合的n次多项式为
我们的目的是通过m个采样点的坐标数据,求得n次多项式中的系数,即
2.求解方法
令
在处采样的y值分别为,而经过n次多项式计算得到的y值为,定义误差函数为y值之间差值的平方和(即下式中E(A))
求n次多项式的系数(即A)为何值时,误差函数E(A)最小,根据如下所示矩阵求导公式
可得
3.举例说明
在自动驾驶中通常使用三次多项式进行车道线拟合
%5个采样点,x1到x5
x=[1;2;3;4;5];
y=zeros(5,1);
for i=1:5
%生成y1到y5,加入随机数
y(i)=1+0.5*x(i)+0.25*x(i)*x(i)+rand(1,1)*0.5;
end
%X矩阵
X=[1 x(1) x(1)^2 x(1)^3;
1 x(2) x(2)^2 x(3)^3;
1 x(3) x(3)^2 x(3)^3;
1 x(4) x(4)^2 x(4)^3;
1 x(5) x(5)^2 x(5)^3;];
%A矩阵,即为所求的C0到C3,对应A矩阵中的A(1)到A(4)
A=(X'*X)\(X'*y);
%由于rand(1,1)*0.5所带来的干扰,A(1)到A(4)分别为1.7507,0.0876,03524,-0.0068
%画图
xA=0.1:0.1:6;
yA=zeros(60,1);
for i=1:60
yA(i)=A(1)+A(2)*xA(i)+A(3)*xA(i)^2+A(4)*xA(i)^3;
end
%三次多项式拟合曲线
plot(xA,yA);
hold on;
%5个采样点的散点图
scatter(x,y);