2015-09-29 48 views
0

我正在試圖製作一個計算器,用於爲方程y = x - x^2生成左邊的黎曼和,從邊界0到2.問題是,我保留所有解決方案都得到0.0。如果有人能告訴我我做錯了什麼,那將非常感激。在Java中創建一個簡單的黎曼求和計算器

import java.lang.Math; 
public class LeftHandSum { 


public static void main(String[] args) { 

    int [] n = {2,10,100,1000,10000}; //number of steps in each summation 
    int a = 0; 
    int b = 2; 
    int H = 0; 
    double x = 0;  

    for (int j = 0; j < 4; j++) 
    { 
     double dX = (b-a)/n[j]; 
     for (int i = 1; i < n[j]; i++) 
     { 
      x = a + (i-1)*dX; 
      H += (x - Math.pow(x,2));    
     } 
     double solution = H*dX; 
     System.out.println(solution); 
    } 
    } 
} 
+0

看起來像dX,除了第一個步驟是0.0之外,因爲你把int(ba)分爲int n [i],它始終給出0.嘗試改變'a'和'b'的類型以加倍 – Nyavro

+0

yep,就是這樣。謝謝 – user3512387

回答

0

您使用整數除法在

(b-a)/n[j]; 

只要N [j]的(B-A)更大,它將始終返回零。 你需要在分割之前將它加倍。