运行matlab中的polyfit多项式拟合函数,其中S的结果为R:[3x3 double] df:109 normr:27.2741
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/05 17:30:17
运行matlab中的polyfit多项式拟合函数,其中S的结果为R:[3x3 double] df:109 normr:27.2741
运行matlab中的polyfit多项式拟合函数,其中S的结果为R:[3x3 double] df:109 normr:27.2741
运行matlab中的polyfit多项式拟合函数,其中S的结果为R:[3x3 double] df:109 normr:27.2741
实际上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 residuals,残差范数,normr=norm(y-V*p),此处的p为求解之后的数值.
mu=[mean(x); std(x)],通过xhat=(x-mu(1))/mu(2)进行中心化和比例缩放,可以改善多项式及拟合算法的数值特征.
matlab里面如何实现选择和比较不同的拟合函数? 2 假设选用多项式拟合.二次结果: p = 1.0072 0.0091 0.0439 s = R: [3x3 double] df: 18
as