Example: The Kochanek-Bartels cubic spline interpolant
This example interpolates to a set of points. At x = 3, the continuity and tension parameters are -1. At all other points, they are zero. Interpolated values are then printed.
import java.text.*;
import com.imsl.math.*;
public class CsTCBEx1 {
public static void main(String args[]) {
double[] xdata = {0., 1., 2., 3., 4., 5.};
double[] ydata = {5., 2., 3., 5., 1., 2.};
double[] continuity = {0., 0., 0., -1., 0., 0.};
double[] tension = {0., 0., 0., -1., 0., 0.};
CsTCB cs = new CsTCB(xdata, ydata);
cs.setContinuity(continuity);
cs.setTension(tension);
cs.compute();
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(4);
nf.setMinimumFractionDigits(4);
System.out.println(" x " +" value ");
for (int k = 0; k < 11; k++) {
double x = (double)k/2.0;
double y = cs.value(x);
System.out.println(" "+nf.format(x) + " " +nf.format(y));
}
}
}
Output
x value
0.0000 5.0000
0.5000 3.4375
1.0000 2.0000
1.5000 2.1875
2.0000 3.0000
2.5000 3.6875
3.0000 5.0000
3.5000 2.1875
4.0000 1.0000
4.5000 1.2500
5.0000 2.0000
Link to Java source.