Este artículo describe la función de ajuste de la curva de orden n implementada por Java. Compártelo para su referencia, como sigue:
En el artículo anterior, Java implementa un método para resolver un único polinomio de orden N. Después de poder resolver un polinomio, es necesario usar qué clase predecir datos futuros basados en varios datos de puntos de muestra. La matriz ajustada se ha publicado en el artículo anterior, por lo que no hablaré de eso aquí. Este artículo se centra principalmente en cómo calcular la matriz del coeficiente en función del punto de muestra y calcular el valor del punto predicho.
El principio es muy simple, y la fórmula también se encontró en el artículo anterior. Publicaré el código aquí directamente.
Se utiliza la clase commonAlgorithm.PolynomiaSoluter escrita en el artículo anterior.
Paquete CommonAlgorithm; import CommonAlgorithm.PolynomialSluter; import java.lang.math; public class Lightsquare {private double [] [] matrixa; Doble privado [] Arrayb; factores privados dobles []; orden privada int; public letrSquare () {} / * * Después de la instancia, antes del cálculo, primero debe ingresar parámetros y generar la fórmula ArrayX como coordenadas del eje X del punto de muestreo, y organizarlos en el orden de muestreo * en el orden de ajuste. Al ajustar las curvas de alto orden con pedidos bajos, puede ser inexacto, pero el orden demasiado alto causará cálculos lentos*/ public Boolean GenerateFormula (Double [] ArrayX, Double [] Arrayy, Int Order) {if (Arrayx.length! = Arrayy.length) return False; this.order = orden; int len = arrayx.length; // La matriz x e matriz y en la operación de ajuste matrixa = new double [orden + 1] [orden + 1]; arrayb = nuevo doble [orden + 1]; // Generar la matriz y y la parte de la potencia <= orden en la matriz x para (int i = 0; i <orden+1; i ++) {doble sumx = 0; for (int j = 0; j <len; j ++) {double tmp = math.pow (arrayx [j], i); sumx += tmp; arrayb [i] += tmp * arrayy [j]; } para (int j = 0; j <= i; j ++) matrixa [j] [i - j] = sumx; } // Generar la parte de la potencia> orden en la matriz x para (int i = orden+1; i <= orden * 2; i ++) {doble sumx = 0; para (int j = 0; j <len; j ++) sumx+= math.pow (arrayx [j], i); for (int j = i - orden; j <orden+1; j ++) {matrixa [i - j] [j] = sumx; }} // instancia polinomiasuluter y resuelve el sistema de ecuaciones para obtener secuencias de coeficientes de cada orden factores polinomialsuluter soluter = new Polynomialsuluter (); factores = soluter.getResult (matrixa, arrayb); if (factores == nulo) return false; de lo contrario devolver verdadero; } // El resultado de calcular las coordenadas especificadas basadas en las coordenadas de entrada y los factores de secuencia del coeficiente Public calcule (doble x) {double resultado = factores [0]; para (int i = 1; i <= orden; i ++) resultado+= factores [i] * math.pow (x, i); resultado de retorno; }}PD: Aquí hay algunas herramientas de cálculo para que se consulte:
Herramientas de ajuste de la función polinómica en línea y de ajuste de la función de curva:
http://tools.vevb.com/jisuanqi/create_fun/
Dibujar herramientas de gráficos de curva polinomial/de función en línea:
http://tools.vevb.com/jisuanqi/fun_draw
Herramienta de cálculo de la solución de la función unary (ecualización):
http://tools.vevb.com/jisuanqi/equ_jisuanqi
Calculadora científica en línea use_advanced calculadora en línea:
http://tools.vevb.com/jisuanqi/jsqkeexue
Calculadora en línea_standard Calculadora:
http://tools.vevb.com/jisuanqi/jsq
Para obtener más información sobre los algoritmos de Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación de Java DOM", "Resumen de Java Archivo y TIPS de operación de directorio" y "Summary of Java Cache Operation Tips" TIPS ""
Espero que este artículo sea útil para la programación Java de todos.