Maple

MAPLE 是一個符號運算和數值計算軟體平臺

## 總覽

### 核心功能

使用者能夠直接使用傳統數學符號進行輸入，也可以客製化個性化的介面。對於數值計算有額外的支援，能夠擴充到任意精度，同時亦支援符號演算及視覺化。符號演算的例子參見下文。Maple 內建有一種動態的命令列風格的程式語言，該語言支援具有作用域的變數。同時亦有其他語言的介面（C、FORTRAN、Java、Matlab 和 Visual Basic）。還具有與 Excel 進行互動的介面。

### 架構

Maple 由一個很小的由 C 語言編寫的核心提供 Maple 語言。許多功能由各種來源的函式庫提供。許多數值計算由 NAG 數值計算庫，ATLAS 庫，GNU 多精度庫提供。大部分庫由 Maple 語言編寫，並且可檢視原始碼。

Maple 中不同的功能需要不同格式的數值資料。符號表達式在記憶體中以有向無環圖的形式儲存。標準介面和計算介面由 Java 語言編寫。經典介面由 C 語言編寫。

 

## 版本

## Maple 代碼範例

簡單指令式程式的構造：

一些簡單的函式也可以使用直觀的箭頭表示法表示

```
myfac := n -> product( i, i=1..n );
```

### 開方

evalf[100](2^1/12)

1.059463094359295264561825294946341700779204317494185628559208431458761646063255722383768376863945569

### 求根

f:=x^2-63\*x+99=0;

solve(f,x);

$$
{\frac {63}{2}}+{\frac {3}{2}}*{\sqrt {(}}397)$ , ${\frac {63}{2}}-{\frac {3}{2}}*{\sqrt {(}}397)
$$

f := x^7+3\*x = 7;

solve(f,x); 

　
: RootOf( $Z^{7}+3Z-7$ , index = 1),

　
: RootOf( $Z^{7}+3Z-7$ , index = 2),

　
: RootOf( $Z^{7}+3Z-7$ , index = 3),

　
: RootOf( $Z^{7}+3Z-7$ , index = 4),

　
: RootOf( $Z^{7}+3Z-7$ , index = 5),

　
: RootOf( $Z^{7}+3Z-7$ , index = 5),

　
: RootOf( $Z^{7}+3Z-7$ , index =7),

evalf(%);

* (1.1922047171828134),
* (0.8658388666792263) + (0.9230818802764879) I,
* (0.2099602786426775) + (1.3442579297631496) I,
* (1.2519809466279554) + (0.6424819505558892) I,
* (1.2519809466279554) - (0.6424819505558892) I,
* (0.2099602786426775) - (1.3442579297631496) I,
* (0.8658388666792263) - (0.9230818802764879) I

 

f := sin(x)^3+5\*cosh(x) = 0;

$$
sin^{3}(x)+5cosh(x)=0
$$

> solve(f, x);

 
  
RootOf( $sin^{3}(Z)-arccosh({\frac {-1}{5}}sin(Z)))$

> evalf(%);

　
: 0.2873691672 - 1.111497506 I

### 求解方程式和不等式

根據 $x-y>6$ ，尋找 $(x+y)^{5}=9$ 的所有整數解。 

```
solve({x-y > 6, (x+y)^5 = 9}, [x, y])[];
```

答案： $[x=3^{2/5}-y,\quad y<{\frac {1}{2}}3^{2/5}-3]$

### 方程組

**代數方程組**
: > p1 := x\*y\*z-x\*y^2-z-x-y; p2 := x\*z-x^2-z-y+x; p3 := z^2-x^2-y^2;

　
: > sys := {p1, p2, p3};

　
: > var := {x, y, z};

　
: 

　
: > solve(sys, var);

　
: {x = 0, y = y, z = -y}, {x = 3, y = 4, z = 5}, {x = 1, y = 0, z = -1}

**三角方程組**
: > f1 := cos(x)+sin(3\*y)+tan(5\*z) = 0;

　
: 

　
: > f2 := cos(3\*z)+tan(3\*y^2)-sin(2\*z^3) = 33;

　
: > f3 := tan(4\*x+y)-sin(5\*y-4\*z) = 2\*x;

　
: 

　
: > sys1 := {f1, f2, f3};

　
: > var1 := {x, y, z};

　
: {x, y, z}

　
: > fsolve(sys1, var1);

　
: {x = -10.77771790, y = -2.397849343, z = -7.382158103}

### 超幾何函式

### 矩陣與行列式

計算矩陣的行列式。 

```
M:= Matrix([[1,2,3]], [a,b,c], [[x,y,z]]);  # 矩阵样例
```

　
: ${\begin{bmatrix}1&2&3\\a&b&c\\x&y&z\end{bmatrix}}$

```
with(LinearAlgebra)
```

```
m:=Determinant(M);
```

答案： $bz-cy+3ay-2az+2xc-3xb$

**朗斯基行列式**

with(VectorCalculus);

w:=Wronskian([1,x,x^3+x-1],x)

Matrix(3, 3, {(1, 1) = 1, (1, 2) = x, (1, 3) = x^3+x-1, (2, 1) = 0, (2, 2) = 1, (2, 3) = 3\*x^2+1, (3, 1) = 0, (3, 2) = 0, (3, 3) = 6\*x})

d:=Determinant(w);

　
: 6x

**雅可比矩陣**

J := Jacobian([r\*sin(t)), r^2\*cosh(t)], [r, t]);

m:=Matrix(2, 2, {(1, 1) = cos(t), (1, 2) = -r\*sin(t), (2, 1) = sinh(t), (2, 2) = r\*cosh(t)})

d:=Determinant(m);

sin(t)\*r^2\*sinh(t)-2r^2cos(t)cosh(t)

**海森矩陣**

f := x^3+y\*cos(x)+t\*tan(y))

with(VectorCalculus);

h:=hessian(f,[x,y,t]);

$$
{\begin{bmatrix}6*x-y*cos(x)&-sin(x)&0\\-sin(x)&2*t*tan(y)*(1+tan(y)^{2})&1+tan(y)^{2}\\0&1+tan(y)^{2}&0\end{bmatrix}}
$$

### 積分

求 $\int \cos \left({\frac {x}{a}}\right)dx$ . 

```
int(cos(x/a), x);
```

答案： $a\sin \left({\frac {x}{a}}\right)$

求 $\int \sin \left({\frac {x}{a}}\right)dx$ . 

```
int(sin(x/a), x);
```

答案： $-a\cos \left({\frac {x}{a}}\right)$

注意：Maple 在積分時不提供常數項 C，必須自行補上。

**定積分**

> int(cos(x/a), x = 1 .. 5);

 

　
: 16 a sin（1/a)\* cos^4(1/a) - 12 a sin^2(1/a)

### 求解線性微分方程式

計算以下線性常微分方程式的一個精確解 ${\frac {d^{2}y}{dx^{2}}}(x)-3y(x)=x$ 初始條件為 $y(0)=0,\quad \left.{\frac {dy}{dx}}\right|_{x=0}=2$ 

```
dsolve( {diff(y(x),x,x) - 3*y(x) = x, y(0)=0, D(y)(0)=2}, y(x) );
```

答案： $y(x)={\frac {7}{18}}{\sqrt {3}}e^{{\sqrt {3}}x}-{\frac {7}{18}}{\sqrt {3}}e^{-{\sqrt {3}}x}-{\frac {1}{3}}x$

### 非線性常微分方程式

```
dsolve(diff(y(x), x, x) = x^2*y(x))
```

解：

　
: $y(x)=C_{1}{\sqrt {(}}x)$ BesselI( $1 \over 4$ , $1 \over 2$ $x^{2}$ )

+ $C_{2}{\sqrt {(}}x)$ BesselK( $1 \over 4$ , $1 \over 2$ $x^{2}$ )

### 級數展開

```
series(tanh(x),x=0,15)
```

　
: $x-{\frac {1}{3}}\,x^{3}+{\frac {2}{15}}\,x^{5}-{\frac {17}{315}}\,x^{7}$

　
: $+{\frac {62}{2835}}\,x^{9}-{\frac {1382}{155925}}\,x^{11}+{\frac {21844}{6081075}}\,x^{13}+{\mathcal {O}}(x^{15})$

```
f:=int(exp^cosh(x),x)
series(f,x=0,15);
```

　
: $ex+{\frac {1}{6}}ex^{3}+{\frac {1}{30}}ex^{5}+{\frac {31}{5040}}ex^{7}+{\frac {379}{362880}}ex^{9}$

　
: $+{\frac {149}{907200}}ex^{11}+{\frac {150349}{6227020800}}ex^{13}+{\frac {4373461}{1307674368000}}ex^{15}+{\mathcal {O}}(x^{17})$

### 拉普拉斯轉換

with(inttrans);

**拉普拉斯轉換**

> f := (1+A\*t+B\*t^2)\*exp(c\*t);

$$
(1+A*t+B*t^{2})*e^{c*t}
$$

> laplace(f, t, s);

$$
{\frac {1}{s-c}}+{\frac {A}{(s-c)^{2}}}+{\frac {2B}{(s-c)^{3}}}
$$

**反拉普拉斯轉換**

invlaplace(1/(s-a),s,x)

$$
e^{ax}
$$

z := y(t);

　
: : : y(t)

　
: f := diff(z, t, t)+a\*(diff(z, t)) = b\*z;

$$
{\frac {d^{2}}{dt^{2}}}y(t)+a{\frac {d}{dt}}y(t)=by(t)
$$

with(inttrans);

 

　
: g := laplace(f, t, s);

　
: 

　
: s^2\*laplace(y(t), t, s) - D(y)(0) - s y(0)

　
: 

　
: + a s^2 laplace(y(t), t, s) - a y(0) = b laplace(y(t), t, s)

　
: invlaplace(g, s, t);

$$
{\frac {d^{2}}{dt^{2}}}y(t)+a{\frac {d}{dt}}y(t)=by(t)
$$

### 傅立葉轉換

with(inttrans);

fourier(sin(x),x,w)

 $\Pi $ \*(Dirac(w-1)+Dirac(w+1))

### 繪製單變數函式圖形

繪製函式 $y=x\cdot \sin x$ ， $x\in (-10,10)$

```
plot(x*sin(x),x=-10..10);
```

### 繪製雙變數函式

繪製函式 $x^{2}+y^{2}$ ， $x$ 和 $y$ 的範圍為 -1 到 1 

```
plot3d(x^2+y^2,x=-1..1,y=-1..1);
```

### 繪製函式動畫

**二維動畫**

$$
f:=2*k^{2}/cosh(k*(x-4*k^{2}*t))^{2}
$$

with(plots);

animate(subs(k = .5, f), x = -30 .. 30, t = -10 .. 10, numpoints = 200, frames = 50, color = red, thickness = 3);

**三維動畫**

with(plots)

animate3d(cos(t\*x)\*sin(3\*t\*y), x = -Pi .. Pi, y = -Pi .. Pi, t = 1 .. 2)

### 求解偏微分方程組

求解偏微分方程式組

　
: ${\frac {\partial }{\partial x}}v\left(x,t\right)=-u\left(x,t\right)v\left(x,t\right)$

　
: ${\frac {\partial }{\partial t}}v\left(x,t\right)=-v\left(x,t\right){\frac {\partial }{\partial x}}u\left(x,t\right)+v\left(x,t\right)\left(u\left(x,t\right)\right)^{2}$

　
: ${\frac {\partial }{\partial t}}u\left(x,t\right)+2\,u\left(x,t\right){\frac {\partial }{\partial x}}u\left(x,t\right)-{\frac {\partial ^{2}}{\partial {x}^{2}}}u\left(x,t\right)=0$

條件為 $v(x,t)\neq 0$ .

```
eqn1:= diff(v(x, t), x) = -u(x,t)*v(x,t):
eqn2:= diff(v(x, t), t) = -v(x,t)*(diff(u(x,t), x))+v(x,t)*u(x,t)^2:
eqn3:= diff(u(x,t), t)+2*u(x,t)*(diff(u(x,t), x))-(diff(diff(u(x,t), x), x)) = 0:
pdsolve({eqn1,eqn2,eqn3,v(x,t)<>0},[u,v]): op(%);
```

答案： $v\left(x,t\right)={e^{{\sqrt {{\it {\_c}}_{1}}}x}}{\it {\_C3}}\,{e^{{\it {\_c}}_{1}t}}{\it {\_C1}}+{\frac {{\it {\_C3}}\,{e^{{\it {\_c}}_{1}t}}{\it {\_C2}}}{e^{{\sqrt {{\it {\_c}}_{1}}}x}}},\ \ u\left(x,t\right)=-{\frac {{\sqrt {{\it {\_c}}_{1}}}\left({\it {\_C1}}\,\left({e^{{\sqrt {{\it {\_c}}_{1}}}x}}\right)^{2}-{\it {\_C2}}\right)}{{\it {\_C1}}\,\left({e^{{\sqrt {{\it {\_c}}_{1}}}x}}\right)^{2}+{\it {\_C2}}}}$

### 積分方程式

尋找函式 $f$ 滿足積分方程式 $f(x)-3\int _{-1}^{1}(xy+x^{2}y^{2})f(y)dy=h(x)$ . 

```
eqn:= f(x)-3*Integrate((x*y+x^2*y^2)*f(y), y=-1..1) = h(x):
intsolve(eqn,f(x));
```

答案： $f\left(x\right)=\int _{-1}^{1}\!\left(-15\,{x}^{2}{y}^{2}-3\,xy\right)h\left(y\right){dy}+h\left(x\right)$

## 注釋

* 現在，MATLAB 已改用 MuPAD 替代了 matlab 的 Maple 符號計算核心。

## 參考文獻

* 何青 王麗芬編著《Maple 教程》 科學出版社 2010 ISBN 9787030177445
* David Betounes, Partial Differential Equations for Computational Science: With Maple and Vector Analysis Springer, 1998 ISBN 9780387983004
* George Articolo Partial Differential Equations & Boundary Value Problems with Maple V Academic Press 1998 ISBN 9780120644759

## 外部連結

* Maple 首頁 （頁面存檔備份，存於網際網路檔案館）

## 參見

* Maxima
* MATLAB
* GNU Octave
* Scilab
* Mathematica

Template: 統計軟體
Template: 碎形軟體