int2d
求積法および立体求積法により2次元積分を定義
呼び出し手順
[I, err] = int2d(X, Y, f) [I, err] = int2d(X, Y, f, params)
引数
- X
N個の三角形の頂点の横座標軸の値を有する3 行 N 列の配列.
- Y
N個の三角形の頂点の縦座標軸の値を有する3 行 N 列の配列.
- f
被積分関数
f(u,v)
を定義する 外部 (関数またはリストまたは文字列)- params
実数ベクトル
[tol, iclose, maxtri, mevals, iflag]
.デフォルト値は[1.d-10, 1, 50, 4000, 1]
.- tol
誤差の境界の指定値.
iflag=0
の場合,tol
は 相対誤差の境界として解釈されます;iflag=
1の場合, 絶対誤差の境界と解釈されます.- iclose
LQM0 または LQM1の選択を定義する積分パラメータ.
iclose=1
の場合, LQM1 が使用されます.iclose
がその他の値の場合, LQM0 が使用されます. LQM0 は三角形の内部の点における値のみ関数の値を使用します. LQM1 は通常 LQM0 より正確ですが, 三角形の境界点を含む より多くの点で被積分関数を評価します. 通常,被積分関数が三角形の境界において特異とならない限り, LQM1 を使用するのが良いでしょう.- maxtri
領域の最後の三角形分割における三角形の最大数
- mevals
許容される関数評価の回数の最大値. この値は, LQM1の場合には94*
maxtri
未満, LQM0の場合には56*maxtri
未満 とした場合にのみ計算負荷を制限する効果があります.- iflag
- I
積分値
- err
誤差の推定値
説明
int2d
は,
n
個の三角形からなる領域において
関数f
の2次元積分を計算します.
全体の推定誤差が得られ,このサブルーチンへの入力として指定された
許容誤差 tol
と比較されます.
許容誤差はiflag
の入力値に基づき
相対または絶対誤差として扱われます.
'ローカルな求積モジュール'が
各入力三角形に適用され,積分の合計値が推定され,
誤差の合計値が計算されます.
ローカルな求積モジュールは,サブルーチン LQM0 または
サブルーチン LQM1のどちらかで,
入力変数iclose
の値によりどちらを
使うかが定義されます.
誤差推定値の合計が許容誤差を超える場合,
絶対誤差が最大となる三角形は最も長い辺の中点で
2つの三角形に分割されます.
この後,ローカルな求積モジュールが分割された各三角形に
適用され積分値と誤差の新たな推定値が得られます.
この処理は,(1)許容誤差の制約が満たされるか,
(2)生成される三角形の数が入力パラメータmaxtri
を超えるか,(3)被積分関数を評価した数が入力パラメータ
mevals
を超えるか,もしくは(4)
丸め誤差が結果を汚染し始めたとこの関数が検知した場合,
まで繰り返されます.
例
X = [0,0 ; 1,1 ; 1,0]; Y = [0,0 ; 0,1 ; 1,1]; deff('z = f(x,y)', 'z = cos(x+y)') [I,e] = int2d(X, Y, f) // 正方形の区間 [0 1]x[0 1] で被積分関数を計算します
参照
Report an issue | ||
<< impl | 微分方程式 | int3d >> |