dirac 发表于 2006-4-8 09:59

【求助】偶次多项式的曲线拟合

<P>对读取的面型轮廓进行曲线拟合,已知的是该轮廓曲线是偶次多项式的形式,最高阶次为6,也就是说可以表达为:f(x)=a*x^6+b*x^4+c*x^2,顶点在原点,故没有常数项。<BR>但是读取的轮廓与实际轮廓肯定不完全相等,而是大小成比例;而且所读取的坐标并非完全对称的。也就是说读取到的曲线多项式应该为:<BR><BR>F(x)=A*(E*x+F)^6+B*(E*x+F)^4+C*(E*x+F)^2+D<BR><BR>MATLAB的多项式拟合后的表达式是从高阶到低阶的依次展开式,而要想得到我所需要的上述形式的话,可以利用各阶次系数相等来得到一组非线性方程。但是非线性方程组的求解需要对其赋初值x0,因为x0的选择对结果是有很大影响的。所以,请问,在这种情况下,如何选择x0比较合适呢?<BR>或者,还有别的办法可以得到我所需要的表达式吗?<BR>谢谢!</P>

happy 发表于 2006-4-8 14:56

回复:(dirac)【求助】偶次多项式的曲线拟合

可以取x1=x^2<BR>这样你的拟合方程可以变成3次方程,求解就方便多了

dirac 发表于 2006-4-8 19:19

回复:(happy)回复:(dirac)【求助】偶次多项式的...

对啊,我怎么没想到。谢谢啦!

dirac 发表于 2006-4-8 21:17

<P>再请教,取x1=x^2以后,拟合的曲线好像非常失真啊,与数据非常不符。怎么回事?<BR>帮忙看看:<BR>xdata=;<BR>ydata=;<BR>polytool(xdata.^2,ydata,3)<BR>这样得到的曲线有问题。为什么?</P>

happy 发表于 2006-4-9 14:46

回复:(dirac)【求助】偶次多项式的曲线拟合

你这个数据最好能够采用分段拟合

dirac 发表于 2006-4-9 18:44

回复:(happy)回复:(dirac)【求助】偶次多项式的...

我的数据就是直接从一条6阶曲线读出来的啊<BR>曲线方程:y=3*x^6+8*x^4+11*x^2<BR>不需要分段拟合吧<BR>
页: [1]
查看完整版本: 【求助】偶次多项式的曲线拟合