MATLAB下n次多项式拟合,且Robust为OFF时的代码实现
% f(x) = a(n)*x^n + a(n-1)*x^(n-1) + ...+ a1*x +a0
% 最小二乘法求拟合曲线系数
% 拟合n次多项式
n = 3;
for k=1:1:(n+1)
for g=1:1:(n+2)
sumdata1 = 0;
for j=1:1:length(x)
if g <= (n+1)
sumdata1 = sumdata1 + (x^(k-1))*(x^(g-1));
else
sumdata1 = sumdata1 + y(j)*(x^(k-1));
end
end
A(k,g) = sumdata1;
end
end
% 多次多项式拟合
% f(x) = a(n)*x^n + a(n-1)*x^(n-1) + ...+ a1*x +a0
% A(1,1)*a0 + A(1,2)*a1 + A(1,3)*a2 + ...+ A(1,n+1)*an= A(1,n+2)
% A(2,1)*a0 + A(2,2)*a1 + A(2,3)*a2 + ...+ A(2,n+1)*an= A(2,n+2)