Matlab最小二乘法的拟合有个函数叫 polyfit(x,y,n) n代表的是阶次。
多项式为
如果数据符合线性分步,则需要求出 y= ax+b 求出a b的值。
k = polyfit(x,y,n) 求出的K值是个1行N列的数值。如果是一次方式,则a = k(1) b = k(2)
k(1)的数值为最高阶次的系数
>> x = [-0.05;-0.04;-0.03;-0.02;-0.01;0;0.01;0.02;0.03;0.04;0.05];
>> y = [0.0275;0.0275;0.025;0.015;0.0125;0.005;-0.01;-0.0125;-0.0175;-0.03;-0.04];
>> K = polyfit(x,y,1);
>> y2 = x*K1(1) + K1(2);
>> K
K =
-0.7023 0.0002
>> plot(x,y,'o',x,y1) //绘制出拟合直线
拟合直线图如下: