Y=kx+b;形式的线性拟合(基于最小二乘法)
方法一:
x=[1,1.5,2,2.5,3]; y=[0.9,1.7,2.2,2.6,3];
p=polyfit(x,y,1);
x1=linspace(min(x),max(x));
y1=polyval(p,x1);
plot(x,y,'*',x1,y1); %将两个图画到一块
结果:p = 1.0200 0.0400
即y=1.0200 *x+0.0400
所用函数解释:
Polyfit--调用方法:polyfit(x,y,n)。用多项式求过已知点的表达式,其中x为源数据点对应的横坐标,可为行向量、矩阵,y为源数据点对应的纵坐标,可为行向量、矩阵,n为你要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况而定。
polyfit 做出来的值从左到右表示从高次到低次的多项式系数,给出系数的个数是n+1。
方法二:
x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];
p=fittype('poly1')
f=fit(x,y,p)
plot(f,x,y);
输出结果
p =
Linear model Poly1:
p(p1,p2,x) = p1*x +p2
f =
Linear model Poly1:
f(x) = p1*x + p2
Coefficients (with 95%confidence bounds):
p1 = 1.02 (0.7192, 1.321)
p2 = 0.04 (-0.5981, 0.6781)
转载本文请联系原作者获取授权,同时请注明本文来自张瑞龙科学网博客。
链接地址:http://blog.sciencenet.cn/blog-1019795-820038.html
上一篇:matlab中text函数的用法