运行matlab中的polyfit多项式拟合函数,其中S的结果为R:[3x3 double] df:109 normr: 27.2741 都什么意思

发布网友 发布时间: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)进行中心化和比例缩放,可以改善多项式及拟合算法的数值特征。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com