Matlab数据拟合-----使用polyfit 和polyval函数
数据拟合的目的是使用一个较为简单的函数去逼近一个复杂的、未知的函数,在MATLAB中数据拟合的原理是最小拟合的最小二乘原理,其中polyfit与polyval是最基本的拟合方法,除此之外,MATLAB还提供了更为直接简单的数据拟合工具,cftool。
下面介绍polyfit函数和polyval函数的用法:
1、首先,polyfit函数的调用格式如下:
P=polyfit(X,Y,n)
[P,S]=polyfit(X,Y,n)
[P,S,mu]=polyfit(X,Y,n)
函数polyfit将根据采样点X和采样点的函数值Y,产生一个n次的多项式P,S为采样点的误差向量
,mu(1)是mean(X)(平均值),mu(2)是std(X)(方差)。
P的返回值为幂次从高到低的多项式系数向量。
2、其次,polyval函数的调用格式如下:
y=polyval(p,x);
[y,delta]=polyval(p,x,s);
y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。
[y,DELTA]=polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计Y DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则Y DELTA将至少包含50%的预测值。
两个函数的区别是:polyfit函数是根据最小二乘法对X,Y拟合得到的多项式的系数向量;
polyval函数是根据polyfit函数得到的多项式系数向量求得的y值
所以说,polyfit和polyval两个函数一般是成对出现的。
下面以一个例子进行演示两个函数的使用方法:
(1)首先输入测得的数据
(2)使用polyfit函数得到多项式系数向量
(3)使用polyval函数得到理论数据值
(4)画图
>> plot(t,y,'r*',t,y1,'--')
(5)对图形进行修饰操作
比如添加坐标轴标题,图形标题