Mapleトップページ
サポート・マニュアル

数値積分の手法

Maple で数値積分を行うには evalf コマンドと Int コマンドを合わせて使用します。
数値積分を行う際コマンドは、evalf(Int(式, 範囲)) と指定します。

> evalf(Int(sin(x), x=0..1));

0.4596976941

ここで、intInt では計算の際の評価のタイミングが変わる為計算時間に影響します。

> time(evalf(int(sin(x), x=0..1)));

0.210

> time(evalf(Int(sin(x), x=0..1)));

0.079

数値積分の手法や計算精度の指定

また、数値積分の手法や計算精度を指定して計算を実行することもできます。

> eq1 := 1/GAMMA(x);

指数関数法

> t1 := time():
evalf(Int(eq1, x=0..1, digits=20, method=_Dexp));
time() - t1;

0.54123573432867053015

1.192

ガウス求積法

> t2 := time():
evalf(Int(eq1, x=0..1, digits=20, method=_Gquad));
time() - t2;

0.54123573432867053015

0.611

ニュートン・コーツ法

> t3 := time():
evalf(Int(eq1, x=0..1, digits=20, method=_NCrule));
time() - t3;

0.54123573432867053015

0.671

手法の指定無し

手法を指定しない場合には、計算精度が倍精度以下なら NAG の積分ルーチンが使用され、倍精度以上なら Clenshaw-Curtis 求積法が使用されます。

> t4 := time():
evalf(Int(eq1, x=0..1, digits=20));
time() - t4;

0.54123573432867053015

0.772

今回は計算結果の下に処理時間を計っています。
式に合った手法を指定することで計算時間を高速に行うことができます。



お問い合わせ サイバネットシステム株式会社 システムCAE事業部
TEL: 03-5297-3299 (受付時間 9:00〜12:00 / 13:00〜17:30 ※土日祝及び弊社休業日を除く)
メールでのお問い合わせ  お問い合わせフォーム  お問い合わせ一覧

モデルベース開発