Maple 9 の新規パッケージ
•
|
Maple 9 には、多くの新規パッケージがあります。
|
|
Student パッケージ
|
|
•
|
Student[Precalculus] パッケージは、計算に先立ち習得が必要な基本概念をビジュアライズする maplets のセットから構成されます。接線と極限の入門 、直線、多項式、有理関数、他の標準的な関数、関数の合成などがあります。各mapletに対して、種々のパラメータを適用したり、選択する関数を変更することができ、学習すべき概念について実験を行うことができます。
|
•
|
Student[LinearAlgebra] パッケージには、3つのコンポーネント、computation, visualization, interaction があります。computation コンポーネント は、(Studentではない) 最上位レベルの LinearAlgebraパッケージと 多くの同じコマンドをもち、より簡単なコーリングシークエンス と制限のある computation domain があります。visualization コンポーネントには、 ベクトル、あるいは、ベクトルの集合への行列の作用、線形システムまたは最小2乗問題の解、固有値問題の解など、線形代数の基本的な概念をグラフィカルに説明するコマンドがあります。interaction コンポーネントでは、maplet インタフェースによりこれらの概念の多くを表し、パラメータ変更の効果をより容易にみることができます。
|
|
|
ScientificErrorAnalysis
|
|
•
|
新規の ScientificErrorAnalysis パッケージは、中央値 と 関連する 不確かさ すなわち 誤差 をもつ、数量を表現し構成します。誤差は、量の値が既知のとき、精度についてのある種の尺度です。誤差解析の1次の計算は、これらの量に関して行われます。
|
•
|
ScientificErrorAnalysis パッケージは、相関を考慮しています。たとえば、電磁気モーメント異常 (a[e]) と 微細構造定数 (alpha) の比を求めてみます。
|
>
|
with(ScientificConstants):
emma := Constant( a[e] );
|
| (2.1) |
>
|
fsc := Constant( alpha );
|
| (2.2) |
>
|
combine( emma/fsc, errors );
|
| (2.3) |
>
|
combine( emma/fsc, errors, correlations = false );
|
| (2.4) |
|
同じことを、誤差を伴うユーザ定義の量について行うこともできます。
|
|
|
DiscreteTransforms
|
|
|
このパッケージは、利用可能なストレージ (メモリ) によってのみ制限される、任意の長さをもつ列の高速フーリエ変換を計算することができるため、Mapleの 制限された FFT と iFFT コマンドを置き換えます。
|
>
|
Z := Vector(100000,
i->evalhf(sin(i/1000))+I*evalhf(i/1000),
datatype=complex[8]):
tt := time():
DiscreteTransforms[FourierTransform](Z,inplace=true):
time()-tt;
|
| (3.1) |
|
|
ArrayTools
|
|
•
|
新規パッケージ ArrayTools は、rectangular Arrays (Vectors, Matrices), rectangular Array (Vector, Matrix) データエイリアシングの低レベルの操作を行います。 このパッケージは、主にプログラミングの目的で提供されています。
|
|
このパッケージが提供する機能の例は、つぎのものです。
|
|
|
FileTools
|
|
•
|
新規パッケージ FileTools は、ファイル I/O とファイル操作を実行するインタフェースを提供します。新機能には、ファイルロッキング、統計ファイルへのアクセス、ハードウェアデータタイプバイトの再配列があります。同様に、これはまた、Copy, Rename, Remove などの基本関数を提供します。
|
|
|
CodeTools
|
|
•
|
新規パッケージ CodeTools は、Maple プログラマが、コードの質を改善するための関数を提供します。現在、CodeTools は、Profiling サブパッケージを提供しますが 、これは、Mapleコードのステートメントレベルのプロファイルを実行します。Profiling パッケージには、また、Maple コードのカバレッジ解析を実行する関数があります。 プログラマは、Coverage 解析により、コード実行中にどのステートメントが利用されたかをみることができます。
|
|
|
IntegerRelations
|
|
•
|
新規パッケージ IntegerRelations は、2 つのルーチン LLL と PSLQ を含みます。 これらは、特定の計算をします。関数 LLL は、Lenstra-Lenstra-Lovasz lattice basis reduction です。 関数 PSLQ は、最小二乗アルゴリズムの Bailey and Fegusson's partial sum です。
|
|
identify
|
|
•
|
新規関数 identify は、IntegerRelations パッケージに非常に関連します。この関数は、浮動小数点数のシンボリック値への変換を試みます。
|
| (7.1.1) |
|
|
OrderBasis
|
|
•
|
新規関数 OrderBasis は、関数の集合に対して order basis を計算します。一般に、これは、つぎの形の恒等式
|
f1(x) v1(x) + ... + fn(x) vn(x) = 0
|
を与えるすべての多項式係数を、有界な各次数viの項まで見つけます。これは、浮動小数点数に対して整数関係を見つけるためにアルゴリズムIntegerRelations[PSLQ] が行うことに類似しています。
|
|
|
|
gfun
|
|
•
|
新規パッケージ gfun は、関数の生成と操作を行います。
|
•
|
パッケージには、方程式により定義される生成関数に関する計算を行うツールがあります。たとえば、多項式係数をもつ線形微分方程式により定義される 2 つの生成関数が与えられるとき、それらの積が満たす微分方程式を計算するプロシージャがあります。
|
|
|
Q差分方程式
|
|
新規パッケージ QDifferenceEquations は、 つぎのタイプの問題を解く場合に有効です。
|
1. 多項式係数をもつ線形 q- 差分方程式の多項式解を見つけます。
|
|
2. 多項式係数をもつ線形 q- 差分方程式の有理解を見つけます。
|
|
3. 多項式係数をもつ線形 q- 差分方程式の有理解の universal denominator を見つけます。
|
|
4. 2 つの多項式の q-dispersion を計算します。
|
•
|
多項式係数をもつ与えられた線形 q- 差分方程式に対して、このパッケージの主な機能は、与えられた方程式の閉じた式の解 (すなわち、多項式解 あるいは 有理解) を検索することです。有理解の探索に対して、パッケージは、そのような解の universal denominator を構成します。universal denominator の構成は、2 つの多項式の q-dispersion の計算に基づきます。
|
>
|
with(QDifferenceEquations);
|
![[AreSameSolution, IsSolution, PolynomialSolution, QDispersion, QECreate, RationalSolution, UniversalDenominator]](/support/helpjp/helpview.aspx?si=2580/file01580/math362.png)
| (10.1) |
>
|
eq1 := (1-q^10-(q-q^10)*x)*y(q^2*x)-(1-q^20-(q^2-q^20)*x)*y(q*x) +
q^10*(1-q^10-(q^2-q^11)*x)*y(x) = (q^21-q^20-q^12+q^10+q^2-q)*x;
|

| (10.2) |
>
|
sol1 := PolynomialSolution(eq1, y(x));
|
| (10.3) |
>
|
IsSolution(sol1, eq1, y(x));
|
| (10.4) |
>
|
eq2 := q^3*(q*x+1)*y(q^2*x) - 2*q^2*(x+1)*y(q*x)+y(x)*(x+q)
= (q^6-2*q^3+1)*x^2+x*(q^5-2*q^3+q);
|
| (10.5) |
>
|
sol2 := RationalSolution(eq2, y(x));
|
| (10.6) |
>
|
IsSolution(sol2, eq2, y(x));
|
| (10.7) |
|
|
LREtools[HypergeometricTerm]
|
|
新規のサブパッケージ LREtools[HypergeometricTerm] は、つぎの問題を解きます。
|
1. 超幾何項に依存する多項式係数をもつ線形微分方程式の多項式解を見つけます。
|
|
2. 超幾何項に依存する 2 つの多項式の hypergeometric dispersion を見つけます。
|
|
3. 軌道問題 (orbit problem) の解を検索します。
|
|
4. 超幾何項に依存する多項式係数をもつ線形微分方程式の有理解の universal denominator を見つけます。
|
|
5. 超幾何項に依存する多項式係数をもつ線形微分方程式の有理解を見つけます。
|
•
|
線形微分方程式の超幾何項は、たとえば、t などのある名前により与えられます。これは、たとえば、t=factorial(n) など、方程式の形で直接与えられるか、あるいは、たとえば、[t,n+1] など、項変数の名前と 2 つの続く項の値の比の組により与えられます。 同様に、ある方程式は、(特別な名前ではなく) 直接表される超幾何項 を含むことができます。プロシージャが方程式から項を抽出する場合、方程式を超幾何項を表す名前をもつ形式に変換します。その後、変換された方程式を解きます。
|
>
|
eq:=(t+n^2)*z(n+1)-(2*n*t+2*t+n^2+2*n+1)*z(n);
|
| (11.1) |
>
|
(sol,r) := LREtools[HypergeometricTerm][PolynomialSolution](eq,z(n),t=(2^n)*n!);
|
| (11.2) |
>
|
LREtools[HypergeometricTerm][SubstituteTerm](sol,r,n);
|
| (11.3) |
>
|
eq:=y(n+2)-(n!+n)*y(n+1)+n*(n!-1)*y(n);
|
| (11.4) |
>
|
(sol, r) := LREtools[HypergeometricTerm][PolynomialSolution](eq,y(n));
|
| (11.5) |
>
|
LREtools[HypergeometricTerm][SubstituteTerm](sol,r,n);
|
| (11.6) |
>
|
p:=(x+2+2^2*s)*(x+100+e^100*v);q:=s*(x+s)*(v+x);ext:=[s=2^x,v=e^x];
|
>
|
LREtools[HypergeometricTerm][HGDispersion](p,q,x,ext);
|
| (11.8) |
|
|
参照
|
|
->, ArrayTools, CodeTools, curry, Digits, DiscreteTransforms, Maple 9 の改良されたパッケージ: Part 1, Maple 9 の改良されたパッケージ: Part 2, evalhf, FFT, FileTools, FunctionAdvisor, gfun, identify, iFFT, Maple 9 の新機能インデックス, IntegerRelations, LinearFunctionalSystems[PolynomialSolution], LinearFunctionalSystems[RationalSolution], LREtools[HypergeometricTerm], Maplets, MathematicalFunctions, Matrix, OrderBasis, QDifferenceEquations, Student, time, Using Packages, Vector, with
|
|