一般情况下:给定一组本身单调的任意数据,如何计算额外的n个点以强制非单调三次插值(我必须使用,没有其他选择)是单调的?
特别是对我来说:我有一个需要计算两个伺服系统之间关系的项目。由于机器设计,伺服系统不应该备份。我希望我能发布一张图片,但我刚刚注册并且还没有声誉。一组有代表性的要点如下:
0:[0,0](直线到1)
1:[37.5,45](立方曲线为2)
2:[?,?](三次曲线为3)
3:[180,60](立方曲线为4)
4:[?,?](立方曲线为5)
5:[322.5,75](直线到6)
6:[360,120](N / A)
我想要的行为以点0,1,3,5和6为特征。点0是固定的;其余的在运行时计算,并保证单调增加。整个图保证在点3周围对称。需要添加点2和4,以便我必须使用的第三方线性/立方插值器产生尽可能平滑的单调曲线。 (最小二阶导数)
任何人都知道怎么做?
答案 0 :(得分:0)
为了节省时间,我自己推出了一个解决方案:
将绘图翻译为关于原点的对称。 (第3点变为[0,0])
找到抛物线段(恒定加速度),它将第1点的斜率在[x,0]处平坦。
如果x与点1具有相同的符号,则点2 = [x,0],点4 = [-x,0],其间的段应为线性。
< / LI>如果x的符号相反或为零,则默认插值已经是单调的。无需额外积分。
一旦确定了抛物线段,在任何一种情况下,每侧增加一个点以将它们转换为立方段。 (恒定加速斜坡加速度)