发布网友 发布时间:2022-04-22 19:58
共1个回答
热心网友 时间:2023-10-27 06:44
实际上polyfit的意义就在于下面方程组的求解,未知数是p(1)~p(n+1)。
p1*x1^n+p2*x1^(n-1)+p3*x1^(n-2)+L+pn*x1+p(n+1)=y1
p1*x2^n+p2*x2^(n-1)+p3*x2^(n-2)+L+pn*x2+p(n+1)=y2
p1*xm^n+p2*xm^(n-1)+p3*xm^(n-2)+L+pn*xm+p(n+1)=ym
那么,上面的系数矩阵就是一个范德蒙矩阵V,矩阵表达式是V*p=y的求解。
背景完毕!了解了以上知识后,再来看这个结果的意义。
s是一个结构体数组(struct),包含了R,df和normr。
R:polyfit函数中,先根据输入的x构建范德蒙矩阵V,然后进行QR分解,得到的上三角矩阵
df:degrees of freedom, df=length(y)-(n+1)。df>0时,为超定方程组的求解,即拟合点数比未知数(p(1)~p(n+1))多
normr:norm of the resials,残差范数,normr=norm(y-V*p),此处的p为求解之后的数值。
mu=[mean(x); std(x)],通过xhat=(x-mu(1))/mu(2)进行中心化和比例缩放,可以改善多项式及拟合算法的数值特征。