Maple 16 の新規/拡張パッケージ
Maple 16 で新しく追加されたパッケージおよび拡張されたパッケージは次のとおりです。
Physics パッケージ
DifferentialGeometry パッケージ
PDEtools パッケージ
VectorCalculus パッケージ
RegularChains パッケージ
SolveTools[SemiAlgebraic] コマンド
Groebner[IsBasis] コマンド
Statistics パッケージ
Student パッケージ
SCSCP パッケージ
Threads パッケージ
Magma パッケージ
ListTools パッケージ
|
Physics
|
|
•
|
物理計算用の最先端環境を提供するという Maple の目標を実現すべく、Maple 11 での導入以降、Physics パッケージにはさまざまな改良が加えられてきました。Maple 16 では、新しく 17 のコマンドと一般相対性理論の機能が追加されています。
|
|
|
DifferentialGeometry
|
|
•
|
Maple 16 では DifferentialGeometry パッケージに 28 の新しいコマンドが追加されました。これらのコマンドにより、抽象的に定義された微分形式、リー代数、および一般相対性理論を扱うための重要な新機能が提供されています。
|
|
|
PDEtools
|
|
•
|
常微分方程式および偏微分方程式の Maple 16 での主題は、既存の対称性アルゴリズムの完全な改定と、機能強化により非可換変数に関する問題を自動的に扱うことです。この機能強化には、dsolve および pdsolve コマンド、PDEtools[Library] のすべてのコマンドPDEtools の多くの対称性コマンドが含まれます。すべての DE の機能を非可換変数に関する Physics で始めて扱えるようにします。
|
|
|
VectorCalculus
|
|
>
|
H, det := Hessian( cos(x*y), [x,y], determinant);
|
| (1) |
|
|
RegularChains
|
|
•
|
新しい RegularChains パッケージは、効率アップや新しいアルゴリズムを導入するだけでなく、実数や準代数系の計算を行う新規および既存のコマンドも含んでいます。
|
>
|
R := PolynomialRing([x, y]):
|
>
|
p := (x+y)*(x+2*y)^2*(x+3*y)^3:
|
>
|
rc := Chain([y^2+1], Empty(R), R):
|
>
|
p := SparsePseudoRemainder(p, rc, R):
|
>
|
SquarefreeFactorization(p, x, rc, R);
|
| (2) |
•
|
RealTriangularize コマンドに 2 つの新しいオプション method および relaxation が追加されました。method オプションは、使用する分解アルゴリズムを指定します。relaxation オプションは、新しい緩和手法を使用するかどうかを指定します。relaxation=explicit を指定した場合、通常、出力コンポーネント数が削減されます。これは、厳密でない制約は不等式で使用できないためです。
|
>
|
R := PolynomialRing([x, a, b]):
|
>
|
sys := [x^5*a+x*b-a = 0, x-b > 0]:
|
>
|
numelems(RealTriangularize(sys, R, output = list));
|
| (3) |
>
|
numelems(RealTriangularize(sys, R, output = list, relaxation = explicit));
|
| (4) |
>
|
numelems(RealTriangularize(sys, R, output = list, method = incremental));
|
| (5) |
•
|
新しい LinearSolve コマンドは、フーリエモツキンの非推奨アルゴリズムの改良型を実装するための線形準代数システムソルバーです。
|
>
|
with(SemiAlgebraicSetTools):
|
>
|
R := PolynomialRing([z, y, x]):
|
>
|
F := [z+y+x = 0, 0 <= x+y-z, x-y-z < 0]:
|
>
|
T := LinearSolve(F, R);
|
| (6) |
|
|
SolveTools[SemiAlgebraic]
|
|
>
|
SemiAlgebraic({x^2+x-1=0, x+y^2<0});
|
| (7) |
|
|
Groebner[IsBasis]
|
|
>
|
F:=[d^5-e^5, c^5-d^5, b^5-c^5, a^4*b+b^4*c+c^4*d+d^4*e+a*e^4,a^5-b^5]:
|
>
|
G:=Basis(F, tdeg(a,b,c,d,e)):
|
>
|
IsBasis(G, tdeg(a,b,c,d,e));
|
| (8) |
>
|
IsBasis(G, plex(a,b,c,d,e));
|
| (9) |
|
|
Student
|
|
>
|
VolumeOfRevolution(x^2+1, x=0..3, output=region);
|
>
|
VolumeOfRevolution(x^2+1, x=0..3, output=plot, showregion=true);
|
•
|
可視化ルーチンによって生成されるプロットのデフォルトのキャプションは、caption オプションを空文字列にすることにより無効にすることができます。
|
>
|
VolumeOfRevolution(x^2+1, x=0..3, output=plot, caption="");
|
|
|
SCSCP
|
|
•
|
サーバーの設定には MapleNET 15以降が必要です。
|
>
|
CallService("scscp.maplesoft.com", "scscp_transient_maple", "UnivariateRootFinding", [(x^2-4)*(x^2-7)]);
|
| (10) |
|
|
Threads
|
|
•
|
Threads パッケージの Add、Mul、Seq および Map ルーチンは更新され、特に入力が少ないときの並列処理の開発において強化されています。さらに、1 回のタスクで実行される最大要素数を指定することができます。これにより、入力に見合うルーチンの実行を調整できます。たとえば、長時間実行される計算の回数が少ない場合は最大タスクサイズが 1 でも望ましい場合があります。しかし、非常に高速な計算が多くある場合は、タスクサイズが大きいことが望ましくなります。
|
|
|
Magma
|
|
>
|
L := select(IsCrossedSet,Enumerate(3,quandle,output=list));
|
| (11) |
| (12) |
|
|
ListTools
|
|
•
|
ListTools パッケージは新規コマンド Classify を含んでいます。これは、与えられたプロパティに従ってリスト要素をグループ化するための効率的な方法です。
|
| (13) |
>
|
types := Classify(whattype, ["Hello", 1, 2., Pi, x, x+y, exp, "world!"]):
|
| (14) |
|
|