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

FAQMaple での計算時間を短縮させる方法はありますか?

この FAQ では、Maple 上での一般的な処理の高速化について述べています。実際の処理においては、その処理のアルゴリズム自体の高速化を含む改良、または問題設定の変更、より高速なコンピュータ・大きいサイズのメモリ領域などが必要となる場合がありますのでご注意ください。

  1. 多倍長計算を行う場合
必要な桁数を指定することによって計算時間を短縮させることが可能な場合があります。計算時に用いられる精度(桁数)は、Maple の環境変数 Digits を変更して調整します。
Digits:=n (n は整数)
  1. 配列・行列を用いる場合
list 型のデータ(data := [1,2,3,4] 等)を多数用いる場合、可能ならそれらを Array 型や Matrix 型等で置き換えて用いてください。 特に、配列の要素への代入や取り出しなどが頻繁に起こりうるようなコードだと、list 型よりも Array, Matrix 型が非常に高速です。
  1. 数値演算に置き換えられる場合
数値積分などに関しては、evalf(int(…)) と用いるよりも、当初から evalf(Int(…)) と記述して下さい。これにより、Maple は記号的な評価を行わずに、数値積分アルゴリズムを直接適用します。
  1. 記号計算を含む場合
長い数式などに対する記号計算を適用する場合、適宜 simplify コマンドや combine コマンド等を適用することで、数式を簡単にし冗長な変数やその計算を省ける場合もあります。 なお、simplify には size オプション等があり、数式の長さ(単項式の個数)に関して簡単にするための機能も用意されております。
  1. コードの計算の場合
Compilerパッケージを用いて、Maple上で定義したユーザー定義プロシージャを外部実行ライブラリ化し、演算を高速に行うことが可能です。
> p:=proc・・・end proc;
> cp:=Compiler:-Compile(p);


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

モデルベース開発