簡體   English   中英

需要有關梯形規則Java代碼的幫助

[英]Need help on Trapezoidal Rule Java code

需要幫助...我嘗試運行梯形規則的代碼。 這是我的數值方法項目,代碼如下:

static double trapezoidRule (int size, double[] x, double[] y)
   {  double sum = 0.0,
             increment;

      for ( int k = 1; k < size; k++ )
      {//Trapezoid rule:  1/2 h * (f0 + f1)
         increment = 0.5 * (x[k]-x[k-1]) * (y[k]+y[k-1]);
         sum += increment;
      }
      return sum;
   }

   public static void main ( String[] args ) throws Exception
   {  String   fileName = args.length > 0 ? args[0] : "InpData.txt";
      Scanner  inp = new Scanner(new File(fileName));
      int      k, size;
      double[] x, y;
      double   integral;

      size = inp.nextInt();
      System.out.println ("Number of points:  " + size);

      x = new double[size];
      y = new double[size];

      for ( k = 0; k < size; k++ )
      {  x[k] = inp.nextDouble();
         y[k] = inp.nextDouble();
      }
      integral = trapezoidRule (size, x, y);
      System.out.printf ("Integral:  %4.4f\n", integral);
      System.out.printf ("Check:  log(%2.2f) = %8.8f\n",
                         x[size-1], Math.log(x[size-1]) );
   }
}

它不能被編譯,並且我總是得到FileNotFoundException。 我在Javadocs上發現,當路徑名不存在的文件將被拋出。 請幫忙。 謝謝!

InpData.txt可能不在您的工作目錄中。 最簡單的解決方案:嘗試將文件的完整路徑放在文件中,而不僅僅是文件名。 例如: "C:\\\\somefiles\\\\...\\\\InpData.txt"

InpData.txt文件在哪里?

放置一個斷點並調試new File(fileName).getAbsolutePath()以查看其位置。 將文件放在此處。

如果您希望代碼具有可移植性(如果正在另一台計算機上執行),請不要對路徑進行硬編碼。

這是運行時錯誤-您的文件“ InpData.txt”可能不在您的工作目錄中。 嘗試放置完整路徑或將文件移動到您的工作目錄。

暫無
暫無

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

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