northwolves 发表于 2009-3-4 07:18:40

多项式拟合

平面中任意两个点,给定各点处的斜率和曲率半径,如何拟合出通过这两点的多项式曲线?有什么比较简单的办法么?

mathe 发表于 2009-3-4 08:37:00

曲率公式是什么?我记不住了。
不过既然假设多项式,那么就假设是一个三次多项式(4个系数)
然后可以非常容易计算出导数和二阶导数。而斜率和曲率可以用它们表示。
于是4个变量4条方程,解出来就可以了

northwolves 发表于 2009-3-4 08:54:39

不过既然假设多项式,那么就假设是一个三次多项式(4个系数)
-----------------------
选择几次多项式是由什么决定的?三次一定有解么?

northwolves 发表于 2009-3-4 09:02:12

假设曲线y=ax^3+bx^2+cx+d
曲率半径:(1+y'^2)^(3/2)/y''=(1+(3ax^2+2bx+3c)^2)^(3/2)/(6ax+2b)
http://web.tongji.edu.cn/~math/bluebird/zsd/n3/z5/z5.htm

几次多项式的曲线效果最好呢?

mathe 发表于 2009-3-4 09:07:47

当然假设次数越低越好。我觉得如果数据来自现实,只要要求合理,通常应该有解。
我不知道你要做什么拟和,通常拟和会要求给定1阶和2阶导数,(这个实际效果同给定1阶导数和曲率是类似的了)。
就如同你这里的结果,既然斜率和曲率半径给定,就可以直接算出2阶导数,然后直接用2阶导数和1阶导数作为约束,这样就是系数的线性方程了。

northwolves 发表于 2009-3-4 11:09:33

原帖由 mathe 于 2009-3-4 09:07 发表 http://bbs.emath.ac.cn/images/common/back.gif
当然假设次数越低越好。我觉得如果数据来自现实,只要要求合理,通常应该有解。
我不知道你要做什么拟和,通常拟和会要求给定1阶和2阶导数,(这个实际效果同给定1阶导数和曲率是类似的了)。
就如同你这里的结果, ...

多谢mathe.
问题是:
对于y=ax^3+bx^2+cx+d
根据两个端点的斜率和曲率半径,可以得到4个关于a,b,c,d的方程
但曲率半径r的公式r=(1+(3ax^2+2bx+3c)^2)^(3/2)/(6ax+2b) 中,存在a,b,c 的非1次项,有什么更好的解决办法?

mathe 发表于 2009-3-4 11:27:42

其中3ax^2+2bx+3c是斜率,你已经知道的,所以1/r替换斜率以后就是a,b的线性组合

northwolves 发表于 2009-3-4 15:45:06

假设P1(X1,Y1)处斜率sl1,曲率半径r1
       P2(X2,Y2)处斜率sl2,曲率半径r2
多项式曲线方程为:y=ax^3+bx^2+cx+d
则有:
3ax1^2+2bx1+c=sl1
3ax2^2+2bx2+c=sl2
加之:
y1=ax1^3+bx1^2+cx1+d
y2=ax2^3+bx2^2+cx2+d

那么以上四个方程已经决定了各系数的值。
如果加上r1,r2的限制,会不会导致矛盾的产生? 还是题目说明曲线是更高次的曲线?

[ 本帖最后由 northwolves 于 2009-3-4 15:50 编辑 ]

northwolves 发表于 2009-3-4 15:52:20

我的意思是曲率半径的限制是多余的还是另有他意?

mathe 发表于 2009-3-4 15:54:57

哦,还有给定x和y的关系两条方程,那么应该是6条方程。
既然如此应该选择5次方程
页: [1] 2
查看完整版本: 多项式拟合