2017-02-26 54 views
-1

我正在實現二分法,作爲第一步我需要評估多項式函數,但我沒有得到正確的結果。二分法:評估一個多項式函數

使用的多項式爲3(x^2)+7(x)+1
x=2,結果應該是27

public static double evaluaFx(int []coef, int grade, int x) { 
    //int x viene siendo los x0,xf.xmenter code here 
    double Fx=0; 
    //System.out.println("grade"+grade+"x"+x); 
    //for (int i = grade; i >=0; i--) { 
    // System.out.println(coef[i]); 
    //} 
    for (int i = grade; i>=0; i--) { 
     Fx= Math.pow((coef[i]*x), grade); 
     // System.out.println(Fx+"mas"+"("+coef[i]+x+") a la grado"+grade); 
    } 
    return Fx; 
} 

有什麼不對上述算法?

+1

您可以加入參數和預期的輸出? –

+0

我使用了下一個多項式f(x)= 3x^2 + 7x + 1,其中f(x)= 27 –

+0

改寫和格式化 –

回答

1

有幾件事情是錯在你的算法:

公式一個等級(步驟i)應爲:

// for instance, if i=2, you want 3 * x^2 which translate to 
Fx = coef[i]*Math.pow(x, i); 

然後在for循環,你不上檔次的連續計算,鬆動在每一個步驟的前一個結果。你應該這樣做(注意+ =,而不是=

Fx += coef[i]*Math.pow(x, i);