我遇到类似问题找到你的提问,自己又研究了一下,应该是这样:
[p,s,mu] = polyfit(X,Y,N)里面mu有两个数,mean(X)和std(X),整个式子做拟合的时候把X根据公式XHAT = (X-mu(1))/mu(2)做了一下中心及比例变换,用XHAT和Y进行N阶拟合,所以结果会不一样。是说这样做能同时提高多项式和拟合算法的数值特性,这个本质有什么好处我不是太懂。
只要在 输出参数中 写这样的形式把
[P,S,MU] = polyfit(X,Y,N) finds the coefficients of a polynomial in XHAT = (X-MU(1))/MU(2) where MU(1) = MEAN(X) and MU(2) = STD(X). This centering and scaling transformation improves the numerical properties of both the polynomial and the fitting algorithm.
[p,S,mu] = polyfit(x,y,n)和p = polyfit(x,y,n)本质上都是函数polyfit的调用,拟合次数不高时,第一种和第二种它运行后的结果肯定是一样的,只不过函数polyfit的返回值第一个比第二个多而已。事实上,第二个运行后也会产生S,mu,只不过没有将他们返回而已。
但次数越高越不准,特别是高次拟合的特点是失之毫厘谬以千里,有时候会产生很大的误差,所以此时会有不一样甚至相差甚远的情况。