簡體   English   中英

用Java解決兩個代數方程

[英]Solving two algebraic equations in java

我有兩個方程需要在Java中評估

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

這些方程本質上是動態的

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

y在這些方程式中是已知的,我需要確定x的值

用Java編寫程序的最佳簡便方法是什么?

似乎有兩種方法可以解決此問題。 我的第一個想法(一如既往地過於復雜,除了有趣之外,很可能不值得做),是使用創建語法來解析操作順序,可以求出變量與常量的結果等。然后以編程方式解決方程。 但是,這並非易事。 如果這是針對編譯器類的,則可能值得一看,否則將其忽略。

我的第二個想法是只使用蠻力。 雖然您將需要弄清楚如何處理x的負值。

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

幾年后,希望這對某人有幫助,使它變得更簡單,我將使用庫exp4j( https://www.objecthunter.net/exp4j/ )和IDE netbeans 8.2( https://netbeans.org/ ) 。 創建這樣的框架

稍后在按鈕上添加代碼:

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,並通過代碼驗證這實際上是答案。
恭維

其他功能也一樣。 (對不起我的技術英語)

如果通過說方程是“動態的”,我們可以推斷出您正在嘗試構建一個程序來求解任意代數方程(或方程組)中的x,那么這已經超出了本論壇的討論范圍。 有完整的軟件包設計用於執行此類操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM