Apache common math lib имеет класс AkimaSplineInterpolator, который может быть использован для вычисления кубической сплайновой интерполяции для набора данных с использованием алгоритма Akima.
http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/analysis/interpolation/AkimaSplineInterpolator.html
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
Код ниже не в полном объеме для вашего требования. Однако вы можете принять это как отправную точку и продолжить дальше. Надеюсь это поможет!
public static void main(String[] main) {
double [] xDouble = new double [] {24.0, 35.0, 67.0, 78.0,79.0};
double [] yDouble = new double [] {13.0, 45.0, 8.0, 45.0, 23.0};
AkimaSplineInterpolator asi = new AkimaSplineInterpolator();
PolynomialSplineFunction psf = asi.interpolate(xDouble, yDouble);
for (PolynomialFunction pf : psf.getPolynomials()) {
System.out.println(pf.polynomialDerivative());
}
}
Обе из этих библиотек не включают в себя «сплайн» – Mavie