[英]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.