Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
Maple 11 における効率性の改善点
数値
Maple は制限された evalhf 環境に場合であっても機械精度の浮動小数を扱えるようになりました。新しい option hfloat オプションをプロシージャで指定することで、Maple は可能な範囲で機械精度の浮動小数演算を用います。数値計算を多用するプロシージャにおいては、このオプションの使用で計算効率は 2 倍から 10 倍程度は改善されます。 機械精度の浮動小数値も同様に HFloat コンストラクタから直接利用されるようになります。ある表現式における機械精度の浮動小数を含む式は一般に、 Digits および UseHardwareFloats の設定が機械精度以外となっていない限り、機械精度の浮動小数により評価されます。( UseHardwareFloats を参照)
Maple のデフォルトの数値 ODE ソルバが、デフォルトの数値用 stiff/nonstiff DAE ソルバ同様にサイズの大きい問題にも適用できるよう改善されました。
Maple の fsolve コマンドが単変数多項式の実根に対してさらに効率的になりました。以下の例の最初の問題では Maple 10 のアルゴリズムが用いられており、2 番目の例では新しい RootFinding[Isolate] コマンドを採用しています。(その計算結果は Chebyshev 多項式が実根しか持たないことから双方共に等価です)
f := expand(ChebyshevT(100, x)): time(fsolve(f, x, complex));
time(fsolve(f, x));
多項式代数および多項式系の解法
Groebner[Basis] のエンジンは、Jean-Charles Faugere が開発した F4 アルゴリズムの C 言語版実装ライブラリの協力により、劇的に高速化されました。このエンジンは有理係数および適当な多項式次数が指定された系の計算でデフォルトで用いられます。
同様に、 Groebner パッケージのその他のコマンドも高速化されています。
modp1 の多項式に対する Multiply コマンドは、十分高い次数の多項式に対する Karatsuba のアルゴリズムを利用します。
evala コマンドは代数的数を係数に持つ多項式系を含む計算により効率的なデータ構造およびそのためのアルゴリズムを用います。結果として、そのような多項式に対する GCD 演算などは多くの場合において高速化されます。
例題 以下の例題を実行するには、このヘルプページをワークシートとして開いてください。ヘルプシステム上では、ヘルプブラウザのツールバー上の ワークシートに現在のヘルプページを開く ボタンを押してください。
Groebner 基底を求める F4 アルゴリズムによる計算例:
with(Groebner): cyclic6 := [u+v+w+x+y+z, u*v+v*w+w*x+x*y+y*z+z*u, u*v*w+v*w*x+w*x*y+x*y*z+y*z*u+z*u*v, u*v*w*x+v*w*x*y+w*x*y*z+x*y*z*u+y*z*u*v+z*u*v*w, u*v*w*x*y+v*w*x*y*z+w*x*y*z*u+x*y*z*u*v+z*y*w*v*u+z*u*v*w*x, u*v*w*x*y*z-1]: cyclic7 := [t+u+v+w+x+y+z, t*u+u*v+v*w+w*x+x*y+y*z+z*t, t*u*v+u*v*w+v*w*x+w*x*y+x*y*z+y*z*t+z*t*u, t*u*v*w+u*v*w*x+v*w*x*y+w*x*y*z+x*y*z*t+y*z*t*u+z*t*u*v, t*u*v*w*x+u*v*w*x*y+v*w*x*y*z+w*x*y*z*t+x*y*z*t*u+y*z*t*u*v+t*u*v*w*z, t*u*v*w*x*y+u*v*w*x*y*z+v*w*x*y*z*t+w*x*y*z*t*u+x*y*z*t*u*v+y*z*t*u*v*w+z*t*u*v*w*x, t*u*v*w*x*y*z-1]: time(Basis(cyclic6,'tdeg'(u,v,w,x,y,z)));
time(Basis(cyclic7,'tdeg'(t,u,v,w,x,y,z)));
比較のために、 cyclic6 の例題について Buchberger のアルゴリズムを用いて計算時間を計測してみます。( RememberBasis を2番目の引数 forget と共に用いている理由は、キャッシュ機構をオフにし強制的に Groebner 基底を異なる算法で再計算させるためです)
RememberBasis(cyclic6,'forget','tdeg'(u,v,w,x,y,z)): time(Basis(cyclic6,'tdeg'(u,v,w,x,y,z),'method'='buchberger'));
以下の代数的数を係数に持つ 2 つの多項式に対する GCD 計算は、Maple 10 と比較して 10 倍程度高速化されています。
a := (x+2^(1/2)+3^(1/2))^20: b := (2^(1/2)*x+3^(1/2))^20: c := (x^2+x+1+2^(1/3)*3^(1/3))^10: f := expand(a*b): g := expand(a*c): time(gcd(f,g));
線形代数
Matrix および Vector の構文とショートカットである <,> および <|> 構文が効率化されました。これらの構文表現は、密な矩形行列またはベクトルを表現するためのもっとも簡潔で効率的な方法です。
LinearAlgebra[Modular] パッケージには、特性多項式とモジュラーアルゴリズムによる整数行列の行列式の高速計算のための 2 種類の新しいコマンド、 IntegerCharacteristicPolynomial と IntegerDeterminant が提供されています。Maple は特性多項式(行列式)を機械素数列(machine primes)を法として計算します。各素数に対して、Maple はどの場合においても O(n^3) の計算量で計算します。これらのコマンドは、整数の場合を扱うための LinearAlgebra[CharacteristicPolynomial] および LinearAlgebra[Determinant] コマンドに直接統合されています。
最大公約多項式
gcd コマンドは整数上の多変数多項式 GCD のための新しいアルゴリズムを用います。このアルゴリズムにより効率は 3 変数またはそれ以上の変数に関して注目に値します。
プログラミング
Maple の引数処理およびその引数処理の際のメモリ確保方法の変更により、パフォーマンスの向上および事実上すべての Maple の関数呼出しで必要となるメモリ量が削減されました。これらの利点はユーザ定義関数やライブラリ関数にも高速化などをもたらします。
マルチスレッド・プログラミング
Maple 11 では、マルチスレッド(multi-threaded)のコードの記述およびその実行が可能です。これにより、複数 CPU 上でパラレルにコードを実行することが可能になると同時に、各種の計算の高速化を実現します。Maple におけるマルチスレッドの概要および詳細は、 multi-threaded Maple のヘルプページを参照してください。 Threads パッケージはマルチスレッド化コードを記述するためのユーザインターフェイスなども提供しています。
動的ガーベジコレクション
メモリのガーベジコレクションの頻度は、常に使用済のメモリ総量に基づいた間隔になります。現在、kernelopts コマンドの gcfreq の設定では、より多目のメモリが動的に確保され、コレクションの頻度に余裕を持たせられるように秒単位のパラメータを指定できます。
参照
Maple 11 新機能
Download Help Document