测试求导
import java.util.Arrays; public class FindTurningPoints { public static void main(String[] args) { // 定义函数 f(x) double[] x = {-1, 0, 1}; double[] y = {-2, -1, 2}; // 求函数的二阶导数 double[][] dydx = new double[x.length][x.length]; for (int i = 1; i < x.length; i++) { dydx[i][i] = (y[i+1] - y[i]) / (x[i+1] - x[i]); } // 找到二阶导数为零的点 int[] indices = new int[2]; for (int i = 1; i < x.length - 1; i++) { if (dydx[i][i] == 0 && dydx[i+1][i+1] != 0) { indices[0] = i; break; } } // 判断这些点的两侧的符号是否相反 for (int i = 0; i < indices.length; i++) { if ((dydx[indices[i]+1][indices[i]+1] * dydx[indices[i]-1][indices[i]-1]) < 0) { System.out.println("Turning point: (" + x[indices[i]] + ", " + y[indices[i]] + ")"); } } } }
###
QQ 3087438119