ラボから取得:
この演習の目的は、関数の数値積分のための中点規則 (長方形法とも呼ばれます) を実装することです。
ジェネリック インターフェイス関数を次のように宣言します。
public インターフェイス Function {B apply(A arg); }
次に、等間隔の n ステップで lowerBound と upperBound の間で統合される > 関数 f の中点ルールを実装するメソッド integrate を持つクラス Maths を作成します。
public static double integrate(Function f, double lowerBound, double upperBound, int n)
0 と 1 の間の 2 乗関数の数値積分によってコードをテストします (結果は約 1.0/3.0 になるはずです)。
0 と PI/2 の間の正弦関数 (クラス java.lang.Math を参照。結果は > 約 1.0 になるはず)必要に応じて、匿名のローカル クラスを使用することもできます。
私はウィキペディアのページを見ましたが、コンセプト全体 (特に上限と下限の意味) を理解することはできません。Afaik は、線上の各接点の面積を取得するために使用される N 個の四角形を考えると、線の下の面積を取得する方法にすぎません。それを上記の関数に関連付ける方法がわかりません-再帰かもしれませんか?また、次のようなものも見たことがありません:
B apply(A 引数)
--
これまでのところ、私はこの進歩を遂げました:
public class MidPointRule {
public MidPointRule() {
}
public static double integrate(Function<Double,Double> f, double lowerBound,double upperBound, int n){
double width = upperBound-lowerBound/n; // width is current width-nextwidth/n?
return integrate(f,lowerBound,upperBound,n);
}
public static void main(String[] args) {
// sq function between 0 and 1, sinus function between 0 and PI/2.
}
}