在java中求解两个代数方程

时间:2013-03-05 15:05:49

标签: java algebra equations

我有两个需要在java中评估的方程

y=(x+1)*2-3
y=5

这些方程本质上是动态的

y= x*8x6-5*5
y= 3

y在这些等式中已知,我需要确定x

的值

用java编写程序的最佳和最简单的方法是什么?

3 个答案:

答案 0 :(得分:1)

似乎有几种方法可以解决这个问题。我的第一个想法(一如既往是过于复杂,最有可能不值得做,除了有趣),是使用创建语法来解析操作的顺序,可以评估变量与常量等的事情。然后以编程方式解决方程。然而,这并非易事。如果这是一个编译器类,这可能值得一看,否则忽略它。

我的第二个念头就是使用蛮力。虽然您需要弄清楚如何处理x的负值。

public int solve(int y){
    int x=0;
    while(y>(x+1)*2-3)
        x++;
}

答案 1 :(得分:0)

几年后,希望这对某人有帮助,使它变得更简单,我将使用库exp4j(https://www.objecthunter.net/exp4j/)和IDE netbeans 8.2(https://netbeans.org/)。 Create a frame like this

稍后在按钮上添加代码:

try { net.objecthunter.exp4j.Expression e = new ExpressionBuilder(txtFunc.getText()) .variables("x") .build() .setVariable("x", Double.parseDouble(txtVar.getText())); double result = e.evaluate(); txtRes.setText("" + result); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Revisa la función o la variable, Posibles errores de operación: División entre 0"); }

注意:这是为了评估“ x” 因此,具体地讲,这样做将有点复杂,因此我们将做一些数学运算,如果所求函数的值是5,则我们将“ x”的值隔离出来。 x =(y + 1)/ 2,然后重新评估,x =(5 + 1)/ 2 = 3,x = 3,并通过代码验证这实际上是答案。
Comprobation

其他功能也有相同之处。 (对不起我的技术英语)

答案 2 :(得分:-1)

如果通过说方程是“动态的”,我们推断你正在尝试构建一个程序来解决任意代数方程(或方程组)中的x,这远远超出本论坛的范围。有完整的软件包旨在做这样的事情。