MAPLE是一個符號计算和數值計算軟體平臺。
總覽
核心功能
用戶能够直接使用傳統數學符號进行輸入,也可以定制个性化的界面。对于数值计算有额外的支持,能够扩展到任意精度,同时亦支持符號演算及可视化。符號演算的例子参见下文。Maple内建有一种动态的命令行风格的编程语言,该语言支持具有作用域的变量。同时亦有其他語言的接口(C、FORTRAN、Java、Matlab和Visual Basic)。还具有与Excel进行交互的接口。
架构
Maple由一个很小的由C语言编写的内核提供Maple语言。许多功能由各种来源的函数库提供。许多数值计算由NAG数值计算库, ATLAS库, GNU多精度库提供。大部分库由Maple语言编写,并且可查看源代码。
Maple中不同的功能需要不同格式的数值数据。符号表达式在内存中以有向无环图的形式存储。标准界面和计算界面由Java语言编写。经典界面由C语言编写。
版本
Maple代码示例
简单指令式程序的构造:
myfac := proc(n::nonnegint)
local out, i;
out := 1;
for i from 2 to n do
out := out * i
end do;
out
end proc;
一些简单的函数也可以使用直观的箭头表示法表示
myfac := n -> product( i, i=1..n );
开方
evalf100
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 + 3 Z - 7, index = 1),
: RootOf(Z^7 + 3 Z - 7, index = 2),
: RootOf(Z^7 + 3 Z - 7, index = 3),
: RootOf(Z^7 + 3 Z - 7, index = 4),
: RootOf(Z^7 + 3 Z - 7, index = 5),
: RootOf(Z^7 + 3 Z - 7, index = 5),
: RootOf(Z^7 + 3 Z - 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) + 5 cosh(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
方程组
;代数方程组
:> p1 := xyz-xy^2-z-x-y; p2 := xz-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(3y)+tan(5z) = 0;
:
:> f2 := cos(3z)+tan(3y^2)-sin(2*z^3) = 33;
:> f3 := tan(4x+y)-sin(5y-4z) = 2x;
:
:> 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) = 3x^2+1, (3, 1) = 0, (3, 2) = 0, (3, 3) = 6x})
d:=Determinant(w);
: 6x
;雅可比矩阵
J := Jacobian([rsin(t)), r^2cosh(t)], [r, t]);
m:=Matrix(2, 2, {(1, 1) = cos(t), (1, 2) = -rsin(t), (2, 1) = sinh(t), (2, 2) = rcosh(t)})
d:=Determinant(m);
sin(t)r^2sinh(t)-2r^2cos(t)cosh(t)
;海森矩阵
f := x^3+ycos(x)+ttan(y))
with(VectorCalculus);
h:=hessian(f,[x,y,t]);
\begin{bmatrix}
6x-ycos(x) & -sin(x) & 0 \\
-sin(x) & 2ttan(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^2y}{dx^2}(x) - 3 y(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 2x^2)
+C_{2}\sqrt(x)BesselK(1 \over 4,1 \over 2x^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);
:e x+\frac{1}{6}e x^3+\frac{1}{30}e x^5+\frac{31}{5040}e x^7+\frac{379}{362880}e x^9
:+\frac{149}{907200}e x^{11}+\frac{150349}{6227020800}e x^{13}+\frac{4373461}{1307674368000} e x^{15}+\mathcal{O}(x^{17})
拉普拉斯变换
with(inttrans);
;拉普拉斯变换
f := (1+At+Bt^2)exp(ct);
(1+At+Bt^2)e^{ct}
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)) = bz;
\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:=2k^2/cosh(k(x-4k^2t))^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(tx)sin(3ty), 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)+2u(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}_}x}}{\it \_C3
}\,{e^{{\it \_c}_t}}{\it \_C1}+{\frac {{\it \_C3}\,{e^{{\it \_c}_
t}}{\it \_C2}}{{e^{\sqrt {{\it \_c}_}x}}}}, \ \ u \left( x,t
\right) =-{\frac {\sqrt {{\it \_c}_} \left( {\it \_C1}\, \left(
{e^{\sqrt {{\it \_c}_}x}} \right) ^{2}-{\it \_C2} \right) }{{\it
\_C1}\, \left( {e^{\sqrt {{\it \_c}_}x}} \right) ^{2}+{\it \_C2}} }
积分方程
寻找函数f满足积分方程
f(x)-3\int_{-1}^1(xy+x^2y^2)f(y)dy = h(x).
eqn:= f(x)-3Integrate((xy+x^2y^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
外部链接
- [http://www.maplesoft.com/ Maple主页]
参见
*Maxima
*MATLAB
*GNU Octave
*Scilab
*Mathematica
评论 (0)