EDA365电子论坛网

标题: MATLAB 线性拟合小结 —— polyfit [打印本页]

作者: haidaowang    时间: 2020-4-20 11:06
标题: MATLAB 线性拟合小结 —— polyfit

[p,S,mu]=polyfit(X,y,n)

或[p,S]=polyfit(X,y,n)

或p=polyfit(X,y,n)

mu=[mean(X); std(X)],mean(X)求X每一列的均值,std(X)求X的标准差。

矩阵S用于生成预测值的误差估计。 S是一个结构体数组(struct),用来估计预测误差,包含了R,df和normr。 $ g$ j9 l. Z& k
R:polyfit函数中,先根据输入的x构建范德蒙矩阵V,然后进行QR分解,得到的上三角矩阵。
/ X5 ]; ?2 d6 Jdf:自由度, df=length(y)-(n+1)。df>0时,为超定方程组的求解,即拟合点数比未知数(p(1)~p(n+1))多。
0 T6 ^2 p9 Y0 b2 J* K/ P$ mnormr:标准偏差、残差范数,normr=norm(y-V*p),此处的p为求解之后的数值。


4 P+ N. [2 _6 s5 Q# `" k5 D: L+ e

利用polyval函数利用polyfit得到的多项式系数拟合x出的预测值。

y = polyval(p,x)
9 f4 Y0 _! P. C8 k' P0 W0 g' ^( ^- ]或[y,delta] = polyval(p,x,S)
$ G/ o' U6 }( \( p5 {- F或y = polyval(p,x,[],mu)" J, Z: X8 G2 C' o3 w6 b* t. }
或[y,delta] = polyval(p,x,S,mu)

注:还不确定polyconf(p,x,s) 和polyval(p,x,S)的区别

1 Z) p/ M" M" I

利用polyconf函数求polyfit所得的回归多项式在x处的预测值Y及预测值的显著性为1-alpha的置信区间Y±DELTA,alpha缺省时为0.05。

polyconf()函数的调用格式为:

Y=polyconf(p,x,s)

或[Y,DELTA]=polyconf(p,x,s,alpha)

说明:Y=polyconf(p,x,s)使用polyfit函数的选项输出s给出Y的95%置信区间Y±DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数,1-alpha为置信度。

举例:>> plot(x,y,'k+',x,Y,'r * ',x,Y +DELTA,'r o ',x,Y -DELTA,'r o ')

, H' d  ^5 C  [, k% q
2 j$ C) r5 t$ C3 Y2 T" Q9 a+ p

作者: yin123    时间: 2020-4-20 13:40
MATLAB 线性拟合小结 —— polyfit




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2