- 締切済み
数値積分について
私が作成した下記のJavaの数値解析の矩形法のプログラムで、区間分割数nを10から100まで10ずつ増やして計算値を求め、面積の計算誤差を(計算値-真値(0.68269))/真値(0.68269)*100 (%)として計算するプログラムがまったくわかりません。Javaで数値解析をするのは初めてなのでどこが足りないのか、どこを直したら動くのか教えてください public class Kukei { static double f(double x) { // ここに任意の被積分関数を記述 double y = Math.exp(- x * x / 2) / Math.sqrt(2.0 * Math.PI); return y; } public static void main(String[] args) { double a = - 1.0, b = 1.0; // 積分範囲 int n = 10; // 区間分割数 double suti= (n-0.68269)/(0.68269*100); for(int j=0; j<n; j++){ double h = (b - a) / (double)n; // 分割幅 double s = 0.0; n=n; for (int i=0; i < n; i++) { s += f(a + i * h); } s *= h; System.out.println("区間分割数 =" + n); System.out.println("矩形法による計算値 =" + s); System.out.println("矩形法による計算誤差 =" +suti+"\n"); } } }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
単純に「まったくわからない」と書いてますが, より具体的には「どこが (どのように) わからない」のですか? たとえば, 「矩形法が分からない」とか「矩形法はわかるけど Java が分からない」など, いろいろ考えられますよね. そして, ここに挙げられているプログラムは何を意図したものであり, その中の各変数やメソッドは何を意味しているのですか? 「どこが足りないのか、どこを直したら動くのか」と書いているということは「何か足りないものがある」「何か動作がおかしいところがある」と想定しているんですよね? そこには当然何かしら理由があるはずですよね? では, その「理由」とはなんですか?
補足
つーか回答してくる時間早いなあーーーーー!!!