[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

78. romberg


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

78.1 Functions and Variables for romberg

関数: romberg  
    romberg (expr, x, a, b)  
    romberg (F, a, b)

Romberg法による数値積分を計算します。

romberg(expr, x, a, b)は積分 integrate(expr, x, a, b)の概算を返します。

exprは、 xが浮動小数点値にバインドされた時 浮動小数点値に評価される式でなければいけません。

romberg(F, a, b)は積分 integrate(F(x), x, a, b)の概算を返します。 ここで、 xFの名付けられない唯一の引数を表します; 実際の引数は xと名付けられません。 Fは、引数が浮動小数点値の時、浮動小数点値を返す Maximaか Lispの関数でなければいけません。 Fは翻訳またはコンパイルされた Maxima関数を指定することができます。

グローバル変数 rombergabsrombergtolrombergの精度を決定します。 rombergは、連続する近似の間の絶対差が rombergabsよりも小さい時か、連続する近似に関する相対差が rombergtolよりも小さい時、成功のうちに終了します。 従って、 rombergabsが 0.0 (デフォルト)の時、 相対誤差テストだけが rombergに効果を持ちます。

rombergは、 あきらめる前に、せいぜい rombergit回、ステップサイズを半分にします; それゆえ関数評価の最大回数は 2^rombergitです。 もし rombergabsrombergtolによって確立される誤差基準が満たされないなら、 rombergはエラーメッセージを印字します。 rombergはいつも、少なくとも rombergmin回の繰り返しを行います; これは、被積分関数が振動的な時、見せかけの終了を防ぐつもりの発見的方法です。

rombergは、積分変数を特定の値にバインド(する前ではなく)した後、 被積分関数を繰り返し評価します。 この評価ポリシーは、多次元積分を計算するための rombergの入れ子のコールを可能にします。 しかしながら、誤差計算は入れ子の積分の誤差を考慮しないので、 エラーは過小評価されるかもしれません。 また、多次元問題のために特別に工夫された方法は より少ない関数評価で同じ精度をもたらす可能性があります。

load(romberg)はこの関数をロードします。

QUADPACK、数値積分関数のコレクションも参照してください。

例:

1次元積分。

 
(%i1) load ("romberg");
(%o1)    /usr/share/maxima/5.11.0/share/numeric/romberg.lisp
(%i2) f(x) := 1/((x - 1)^2 + 1/100) + 1/((x - 2)^2 + 1/1000)
              + 1/((x - 3)^2 + 1/200);
                    1                 1                1
(%o2) f(x) := -------------- + --------------- + --------------
                     2    1           2    1            2    1
              (x - 1)  + ---   (x - 2)  + ----   (x - 3)  + ---
                         100              1000              200
(%i3) rombergtol : 1e-6;
(%o3)                 9.9999999999999995E-7
(%i4) rombergit : 15;
(%o4)                          15
(%i5) estimate : romberg (f(x), x, -5, 5);
(%o5)                   173.6730736617464
(%i6) exact : integrate (f(x), x, -5, 5);
(%o6) 10 sqrt(10) atan(70 sqrt(10))
 + 10 sqrt(10) atan(30 sqrt(10)) + 10 sqrt(2) atan(80 sqrt(2))
 + 10 sqrt(2) atan(20 sqrt(2)) + 10 atan(60) + 10 atan(40)
(%i7) abs (estimate - exact) / exact, numer;
(%o7)                7.5527060865060088E-11

rombergの入れ子のコールで実装された 2次元積分。

 
(%i1) load ("romberg");
(%o1)    /usr/share/maxima/5.11.0/share/numeric/romberg.lisp
(%i2) g(x, y) := x*y / (x + y);
                                    x y
(%o2)                   g(x, y) := -----
                                   x + y
(%i3) rombergtol : 1e-6;
(%o3)                 9.9999999999999995E-7
(%i4) estimate : romberg (romberg (g(x, y), y, 0, x/2), x, 1, 3);
(%o4)                   0.81930239628356
(%i5) assume (x > 0);
(%o5)                        [x > 0]
(%i6) integrate (integrate (g(x, y), y, 0, x/2), x, 1, 3);
                                          3
                                    2 log(-) - 1
                    9                     2        9
(%o6)       - 9 log(-) + 9 log(3) + ------------ + -
                    2                    6         2
(%i7) exact : radcan (%);
                    26 log(3) - 26 log(2) - 13
(%o7)             - --------------------------
                                3
(%i8) abs (estimate - exact) / exact, numer;
(%o8)                1.3711979871851024E-10

オプション変数: rombergabs

デフォルト値: 0.0

グローバル変数 rombergabsrombergtolrombergの精度を決定します。 rombergは、連続する近似の間の絶対差が rombergabsよりも小さい時か、連続する近似に関する相対差が rombergtolよりも小さい時、成功のうちに終了します。 従って、 rombergabsが 0.0 (デフォルト)の時、 相対誤差テストだけが rombergに効果を持ちます。

rombergitrombergminも参照してください。

Categories:  Package romberg

オプション変数: rombergit

デフォルト値: 11

rombergは、あきらめる前に、せいぜい rombergit回、ステップサイズを半分にします; それゆえ、関数評価の最大回数は 2^rombergitです。 rombergはいつも、少なくとも rombergmin回の繰り返しを行います; これは、被積分関数が振動的な時、見せかけの終了を防ぐつもりの発見的方法です。

rombergabsrombergtolも参照してください。

Categories:  Package romberg

オプション変数: rombergmin

デフォルト値: 0

rombergはいつも、少なくとも rombergmin回の繰り返しを行います; これは、被積分関数が振動的な時、見せかけの終了を防ぐつもりの発見的方法です。

rombergit, rombergabs, rombergtolも参照してください。

Categories:  Package romberg

オプション変数: rombergtol

デフォルト値: 1e-4

グローバル変数 rombergabsrombergtolrombergの精度を決定されます。 rombergは、連続する近似の間の絶対差が rombergabsよりも小さい時か、連続する近似に関する相対差が rombergtolよりも小さい時、成功のうちに終了します。 従って、 rombergabsが 0.0 (デフォルト)の時、 相対誤差テストだけが rombergに効果を持ちます。

rombergitrombergminも参照してください。

Categories:  Package romberg


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by 市川雄二 on June, 5 2017 using texi2html 1.76.