我尝试使用来自http://mathworld.wolfram.com/CubicSpline.html的自然样条形式并使用http://www.cse.unsw.edu.au/~lambert/splines/natcubic.html中的Java编码,从给定x值的自然三次样条计算特定y值。
不幸的是,对于样条的每个片段,此样条形式在0-> 1的范围内取t值,以便计算沿每个片段的x和y坐标。我想输入一个给定的x坐标并获得相应的y坐标,但我不确定如何从我的x坐标获得一个t值。即,样条的系数被存储为y = f(t)和x = f(t),但是我希望得到y = f(x)。如果没有创建查找表,是否有任何精确的解决方案可以从这种样条曲线中获得y = f(x)?
我已经尝试过采用x值并返回y值的其他实现(例如,apache commons math,Flanagan的科学库),但上面网站的spline版本似乎表现得很好在我的申请中有利。
感谢。
答案 0 :(得分:0)
你想要的并不总是可能的。 可以有一个样条曲线段,它通过两个不同的点来获得单个x值。
如果你确实需要它作为x的函数,你可以求解t的三次方程X(t)= x0(使用例如Cardano的公式)然后用Y的值代替t的值(吨)。