Maple のコマンド、パッケージ、アシスタント、さらにすべてのユーザーインターフェースは、MATLAB® からアクセスできます。主インターフェースとして MATLAB® を使用すると、200 以上ある MATLAB® のネイティブコマンドを使って Maple の数学エンジンとシームレスにリンクし、シンボリック計算を実行することができます。MATLAB® から Maple のグラフィカルインターフェースを起動し、両方のプログラムが同じ変数と状態を共有するように操作します。
最も基本的なシンボリックオブジェクトはシンボルです。Maple を使用するには、MATLAB® で sym オブジェクト x を作成します。シンボリック変数 x を宣言して使うと、より複雑な式を作ることができます。
>> x = sym('x')
x =
x
>> x^3+cos(2*x)-1
ans =
3
x + cos(2 x) - 1
特にシンボル式とシンボル方程式は、Maple コマンドに対して MATLAB® のフロントエンドを使用することで、微分、積分、因数分解、解の計算を厳密に行うことができます。
>> diff(x^3)
ans =
2
3 x
>> int(3*x^2)
ans =
3
x
>> factor(x^4+10*x^3+35*x^2+50*x+24)
ans =
(x + 4) (x + 3) (x + 2) (x + 1)
>> expand(ans)
ans =
4 3 2
x + 10 x + 35 x + 50 x + 24
>> syms x y z
>> solve( 3*x+1*y+4*z-5, 8*x+19*y+11*z-94, x+y/4+z-11)
ans =
x: 39
y: 72/13
z: -382/13
Maple 16 では、シンボリック行列を簡単に作成する機能を新たに導入しました。sym コマンドで、シンボリック入力の入力対象となる行列のサイズと形式を指定するオプションを使用できるようになりました。
>> A = sym('A',[3 3])
A =
[A1_1 A1_2 A1_3]
[ ]
[A2_1 A2_2 A2_3]
[ ]
[A3_1 A3_2 A3_3]
生成された行列を使って、記号解を正確に計算することができます。たとえば上記行列の行列式は、方程式として以下のように計算できます。
>> det(A)
ans =
A1_1 A2_2 A3_3 - A1_1 A2_3 A3_2 + A2_1 A3_2 A1_3 - A2_1 A1_2 A3_3
+ A3_1 A1_2 A2_3 - A3_1 A2_2 A1_3
行列入力の形式は、文字列テンプレートを使ってカスタマイズできます。行列の乗算などの標準の操作はパッケージで自動認識されるため、その操作に合わせて多重定義が行われます。
>> B = sym('B%d%d',[2 3])
B =
[B11 B12 B13]
[ ]
[B21 B22 B23]
>> B * A
ans =
[B11 A1_1 + B12 A2_1 + B13 A3_1 , B11 A1_2 + B12 A2_2 + B13 A3_2 ,
B11 A1_3 + B12 A2_3 + B13 A3_3]
[B21 A1_1 + B22 A2_1 + B23 A3_1 , B21 A1_2 + B22 A2_2 + B23 A3_2 ,
B21 A1_3 + B22 A2_3 + B23 A3_3]