Cómo resolver ecuaciones con java?

Tengo tres ecuaciones como las siguientes:

  • x + y + z = 100;
  • x + y – z = 50;
  • x – y – z = 10;

¿Cómo puedo encontrar los valores de x, y y z con Java?

String equation1="x+y+z=100;"; String equation2="x+yz=50;"; String equation3="xyz=10;"; int[] SolveEquations(equation1,equation2,equation3) { // to do // how to do? } 

¿Tiene alguna posible solución u otro marco común?

Puede usar determinante para calcular los valores de xy y z. La lógica se puede encontrar aquí http://www.intmath.com/Matrices-determinants/1_Determinants.php

Y luego debes implementarlo en Java usando matrices tridimensionales.

Como está escribiendo Java, puede usar el paquete JAMA para resolverlo. Recomendaría un buen método de descomposición de LU.

Es un problema de álgebra lineal simple. Debería poder resolverlo a mano o usando algo como Excel con bastante facilidad. Una vez que tenga eso, puede usar la solución para probar su progtwig.

No hay garantía, por supuesto, de que haya una solución. Si su matriz es singular, eso significa que no hay intersección de esas tres líneas en el espacio 3D.

puedes usar el paquete de matriz java JAMA . Vea la página completa de este ejemplo a continuación aquí

 /* *Solving three variable linear equation system * 3x + 2y - z = 1 ---> Eqn(1) * 2x - 2y + 4z = -2 ---> Eqn(2) * -x + y/2- z = 0 ---> Eqn(3) */ import Jama.Matrix; import java.lang.Math.*; public class Main { public Main() { //Creating Arrays Representing Equations double[][] lhsArray = {{3, 2, -1}, {2, -2, 4}, {-1, 0.5, -1}}; double[] rhsArray = {1, -2, 0}; //Creating Matrix Objects with arrays Matrix lhs = new Matrix(lhsArray); Matrix rhs = new Matrix(rhsArray, 3); //Calculate Solved Matrix Matrix ans = lhs.solve(rhs); //Printing Answers System.out.println("x = " + Math.round(ans.get(0, 0))); System.out.println("y = " + Math.round(ans.get(1, 0))); System.out.println("z = " + Math.round(ans.get(2, 0))); } public static void main(String[] args) { new Main(); } } 

Crea un analizador usando ANTLR . Luego evalúe el AST usando la eliminación gaussiana .

También puedes usar Commons Math . Tienen una sección de esto en su guía de usuario (ver 3.4)

Usar Gaussian_elimination es increíblemente fácil, pero hay algunos valores que puede tener una vida difícil de calcular.

Ejemplo de código

Intereting Posts