我正在使用其中一种提议的算法,但结果非常糟糕.
我实现了wiki算法
在Java中(代码如下).x(0)是points.get(0),y(0)是values[points.get(0)],?是alfa和?是mi.其余部分与wiki伪代码相同.
public void createSpline(double[] values, ArrayList<Integer> points){
a = new double[points.size()+1];
for (int i=0; i <points.size();i++)
{
a[i] = values[points.get(i)];
}
b = new double[points.size()];
d = new double[points.size()];
h = new double[points.size()];
for (int i=0; i<points.size()-1; i++){
h[i] = points.get(i+1) - points.get(i);
}
alfa = new double[points.size()];
for (int i=1; i <points.size()-1; i++){
alfa[i] = (double)3 / h[i] * (a[i+1] …Run Code Online (Sandbox Code Playgroud)