Maple

Confusion grey.svg
提示:本条目的主题不是 楓樹
Maple
Maple12 Screenshot.jpg
Maple界面
開發者 Waterloo Maple Inc. (Maplesoft)枫软
穩定版本 18(2014年3月)
编程语言 C语言, Java, Maple language
操作系统 跨平台
类型 计算机代数系统
许可协议 私有
網站 www.maplesoft.com/products/maple/
加拿大滑铁卢枫软总部

Maple是一个通用型的商用计算机代数系統。Maple起源于1988年,由 加拿大 安大略 滑铁卢的一家公司,Waterloo Maple Inc.(亦称 Maplesoft枫软)进行开发和商业销售。最新版是Maple 18。它的主要竞争者是 Mathematica

目前共有五個版本:Personal(個人版),Professional(專業版),Academic(學術版),Government(政府版)和Student(學生版)。

2009年,枫软被日本软件商Cybernet Systems收购。

總覽

核心功能

用戶能够直接使用傳統數學符號进行輸入,也可以定制个性化的界面。对于数值计算有额外的支持,能够扩展到任意精度,同时亦支持符號演算及可视化。符號演算的例子参见下文。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 );

开方

evalf[100](2^1/12)

1.059463094359295264561825294946341700779204317494185628559208431458761646063255722383768376863945569

12throotof2threethousanddigits.JPG

求根

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

solve(f,x);

,

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

solve(f,x);

RootOf(, index = 1),
RootOf(, index = 2),
RootOf(, index = 3),
RootOf(, index = 4),
RootOf(, index = 5),
RootOf(, index = 5),
RootOf(, 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;


> solve(f, x);


RootOf(

> evalf(%);

0.2873691672 - 1.111497506 I

求解方程和不等式

根据,寻找的所有整数解。

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

答案:

方程组

代数方程组
> 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]]);  # 矩阵样例

with(LinearAlgebra)

m:=Determinant(M); 答案:

朗斯基行列式

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]);

积分

.

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

答案:

.

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

答案:

注意:Maple在积分时不提供常数项C,必须自行补上。

定积分

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


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

求解线性微分方程

计算以下线性常微分方程的一个精确解初始条件为

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

答案:

非线性常微分方程

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

解:

y(x)=BesselI(,) +BesselK(,)

级数展开

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

f:=int(exp^cosh(x),x)

series(f,x=0,15);

拉普拉斯变换

with(inttrans);

拉普拉斯变换

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

> laplace(f, t, s);

反拉普拉斯变换

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

z := y(t);

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

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);

傅里叶变换

with(inttrans);

fourier(sin(x),x,w)

*(Dirac(w-1)+Dirac(w+1))

绘制单变量函数图形

绘制函数

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

Mathematica1DPlot.svg

绘制双变量函数

绘制函数的范围为 -1到1

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

Mapleplot.jpg

绘制函数动画

Wikibooks-logo.svg
您可以在 維基教科書中查找此百科条目的相關電子教程:
二维动画

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)

求解偏微分方程组

求解 偏微分方程

条件为.

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(%);

答案: 

积分方程

寻找函数满足 积分方程 .

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

答案:

其他语言
čeština: Maple
dansk: Maple
فارسی: میپل
suomi: Maple
français: Maple
עברית: Maple
Bahasa Indonesia: Maple (perangkat lunak)
italiano: Maple
日本語: Maple
lietuvių: Maple
Nederlands: Maple
polski: Maple
português: Maple
русский: Maple
Simple English: Maple (CAS)
slovenščina: Maple
српски / srpski: Maple (софтвер)
svenska: Maple
українська: Maple
Tiếng Việt: Maple