2013-05-04 69 views
0

我已經做了一個搜索,但沒有任何可用的代碼在Java中,因此我寫我自己的,我遇到了一些問題。我實際上從C++源代碼中獲得了這些代碼,並努力將其轉換爲可行的java程序。在JAVA中的拉格朗日插值

http://ganeshtiwaridotcomdotnp.blogspot.sg/2009/12/c-c-code-lagranges-interpolation.html

public static void main(String[] args) { 

    int n; 
    int i, j; 
    int a; 
    int x[] = null; 
    int f[] = null; 
    int sum = 0; 
    int mult; 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter number of point: "); 
    n = input.nextInt(); 

    System.out.println("Enter value x for calculation: "); 
    a = input.nextInt(); 

    for (i = 0; i < n; i++) { 

     System.out.println("Enter all values of x and corresponding functional vale: "); 
     x = input.nextInt(); 
     f = input.nextInt(); 
    } 

    for (i = 0; i <= n - 1; i++) { 
     mult = 1; 
     for (j = 0; j <= n - 1; j++) { 

      if (j != i) { 
       mult *= (a - x[j])/(x[i] - x[j]); 

      } 
      sum += mult * f[i]; 
     } 

    } 
    System.out.println("The estimated value of f(x)= " + sum); 

} 
+0

在源上方他創建了一個大小爲[10] 的數組,然而我應該如何在java編碼中實現這個 – newbieprogrammer 2013-05-04 14:10:15

+0

所以你不知道如何在java中創建一個數組? – Kevin 2013-05-04 14:12:01

+0

自己編寫算法通常比翻譯別人做的更容易:你不會繼承他的錯誤。 – dasblinkenlight 2013-05-04 14:13:16

回答

0
int x[] = null; 
int f[] = null; 
... 
for (i = 0; i < n; i++) { 
    .... 
    x = input.nextInt(); 
    f = input.nextInt(); 
} 

看起來不夠清晰。

x = new int[n]; 
f = new int[n]; 

某處後:簡單地對於x和f創建數組實例

n = input.nextInt(); 

之前上述for環,以及修改for體:在C++

... 
x[i] = input.nextInt(); 
f[i] = input.nextInt(); 
+0

他正在給一個整數賦一個數組,他顯然意味着x [i] = input ...等 – arynaq 2013-05-04 14:26:24