Maple 16での処理効率の改善
Maple 16 では、多項式の計算について多くの効率性の改善が行われています。
|
多項式算術
|
|
過去の数回のリリースにおいて、Maple における多項式算術の効率は劇的に改善されています。
これは、さまざまなテクニックの組み合わせにより実現されています。
•
|
新規の高速ヒープベースかつ C でインプリメントされた効率的なアルゴリズム
|
これらの改善により、Maple の過去のリリースの 22 倍、Mathematica® の最新版の 1800 倍の高速化を実現しています。
Maple の並列インプリメンテーションはさらなる高速化をもたらし、複数コアに対応することができます。
計算時間
|
乗算、密、3 変数、30 次
|
M14: 0.65 秒
M15: 0.73 秒
M16: 0.52 秒
Mathematica 8: 110 秒
|
高速化 M16/M14: 1.3
高速化 M16/Mathematica8: 210
|
|
除算、密、3 変数、
(60 次 / 30 次)
|
M14: 0.88 秒
M15: 0.75 秒
M16: 0.54 秒
Mathematica 8: 84 秒
|
高速化 M16/M14: 1.6
高速化 M16/Mathematica8: 160
|
|
単変量乗算、疎、100000 次、1000 項
|
M14: 0.27 秒
M15: 0.28 秒
M16: 0.21 秒
Mathematica 8: 3.0 秒
|
高速化 M16/M14: 1.3
高速化 M16/Mathematica8: 14
|
|
単変量除算、疎、
(200000 次) / (100000 次)、
(180000 項) / (1000 項)
|
M14: 0.27s
M15: 0.25s
M16: 0.20s
Mathematica 8: 78s
|
高速化 M16/M14: 1.4
高速化 M16/Mathematica8: 390
|
|
非整除性テスト、密、3 変数、
|
M14: 0.99 秒
M15: 0.090 秒
M16: 0.046 秒
Mathematica 8: 84 秒
|
高速化 M16/M14: 22
高速化 M16/Mathematica8: 1800
|
|
モジュラー除算、密、4 変数、
512 bit prime、
|
M14: 2.0 秒
M15: 0.16 秒
M16: 0.11 秒
Mathematica 8: 2.5 秒
|
高速化 M16/M14: 18
高速化 M16/Mathematica8: 23
|
|
単変量べき乗、多項式および31ビット素数のモジュロ、密、1024 次
|
M14: 0.7 秒
M15: 0.26 秒
M16: 0.11 秒
Mathematica 8: コンピュータフリーズ
|
高速化 M16/M14: 6.4
|
|
|
|
複数コアでの計算時間
|
乗算、密、4 変数、20 次
|
M16, 1 コア: 13 秒
M16, 2 コア: 7.5 秒
M16, 4 コア: 4.8 秒
|
高速化 4 コア: 2.7
|
|
除算、密、4 変数、(20 次) / (10 次)
|
M16, 1 コア: 14 秒
M16, 2 コア: 7.7 秒
M16, 4 コア: 4.4 秒
|
高速化 4 コア: 3.2
|
|
|
|
|
|
多項式因数分解
|
|
Maple には多項式因数分解用の 2 つのコマンドがあります。多変量多項式をそれ以上分解不可能な既約因子へ乗法分解します。
最も簡単なのは、factor コマンドを使用した整数係数を持つ単変量多項式の場合です。
| (2.1) |
結果の因子の係数も整数であることに注意してください。たとえば、 は には分解できません。より精密な分解を得るために、係数で使用する第二引数を指定することができます。
| (2.2) |
ほとんどの場合で、多項式は複数の変数を持ち、 や または などの非有理数式を含むことが可能です。入れ子形式または係数にパラメータを含む (例では など) ことができます。そのような場合は、コマンド evala(Factor(...)) によって処理します。しかし、このコマンドは、通常すべての累乗根が RootOf 形式で表される必要があります。
| (2.3) |
| (2.4) |
| (2.5) |
Maple 16 では evala(Factor(...)) コマンドの計算効率は、特に複数の入れ子形式の RootOf がある場合に劇的に改善されています。高速化は新規の効率的疎モジュラーアルゴリズムによるものです。たとえば、つぎの例の実行時間は、同一マシンで Maple 15 よりも 約 20 倍高速になっています。
| (2.6) |
| (2.7) |
| (2.8) |
| (2.9) |
| (2.10) |
memory used=15.91MiB, alloc change=19.21MiB, cpu time=516.00ms, real time=4.50s
| |
つぎの表は、Maple 15 と比較したベンチマークを示しています。
変数
|
RootOfs
|
パラメータ
|
indets の総数
|
次数
|
項
|
Maple 15
|
Maple 16
|
高速化
|
|
|
−
|
5
|
10
|
36
|
|
|
|
|
|
|
5
|
10
|
36
|
|
|
|
|
|
|
5
|
10
|
134
|
|
|
|
|
|
|
5
|
10
|
276
|
|
|
|
|
|
|
5
|
20
|
36
|
|
|
|
|
|
|
5
|
30
|
36
|
|
|
|
|
、
|
|
5
|
10
|
36
|
|
|
|
|
、、
|
|
6
|
10
|
36
|
|
|
|
|
|
|
6
|
10
|
36
|
|
|
|
|
|
|
|
多項式のイデアル分解
|
|
単一の多項式を乗法既約因子へ分解する概念の一般化は、有限量の多変量多項式によって生成される多項式イデアルの素因数分解です。Maple の PolynomialIdeals パッケージは多項式イデアルの操作解析用の多くの有用なコマンドやツールに加えて、多項式イデアルの平方因子を含まない部分を計算する PrimeDecomposition コマンドや Radical コマンドを用意しています。これら 2 つのコマンドの計算効率は Maple 15 で改善され、場合によっては 700 倍の高速化となりました。
主な改善点は、システムをより頻繁に分割するための新規アルゴリズムや経験則システムと、場合によっては Buchberger 分解アルゴリズムを実行することです。これらの改善は、特に正の次元をもつシステム、つまりに虚数解が無限に存在する適用されます。
たとえば、つぎの計算は、同一マシンで Maple 15 と比較して約 50 倍高速化されています。
| (3.1) |
memory used=36.06MiB, alloc change=23.01MiB, cpu time=1.20s, real time=4.08s
| |
つぎの表は、Maple 15 と比較したベンチマークを示しています。
タスク
|
問題
|
変数の数
|
次元
|
最大次数
|
Maple 15
|
Maple 16
|
高速化
|
素因数分解
|
円
|
|
|
|
|
|
|
素因数分解
|
vermeer
|
|
|
|
|
|
|
素因数分解
|
wang92c
|
|
|
|
|
|
|
素因数分解
|
ctoa
|
|
|
|
|
|
|
素因数分解
|
butcher
|
|
|
|
|
|
|
累乗根
|
butcher
|
|
|
|
|
|
|
|
|
|
|
コンパイルによる数値 PDF の解
|
|
•
|
compile オプションが数値pdsolve コマンドに追加され、PDE 数値解の効率的な計算ができます。詳細は、pdsolve[numeric] を参照してください。
|
|
|
Download Help Document
Was this information helpful?