Maple
開發者 | 楓軟 |
---|---|
首次發佈 | 1982年 |
目前版本 | 2020.1(2020年6月10日[±][1] | )
程式語言 | C語言, Java, Maple language |
作業系統 | 跨平台 |
類型 | 電腦代數系統 |
許可協定 | 私有 |
網站 | www.maplesoft.com/products/maple/ |
總覽
[編輯]核心功能
[編輯]用戶能夠直接使用傳統數學符號進行輸入,也可以客製化個性化的介面。對於數值計算有額外的支援,能夠擴充到任意精度,同時亦支援符號演算及視覺化。符號演算的例子參見下文。Maple內建有一種動態的命令列風格的程式語言,該語言支援具有作用域的變數。同時亦有其他語言的介面(C、FORTRAN、Java、Matlab和Visual Basic)。還具有與Excel進行互動的介面。
架構
[編輯]Maple由一個很小的由C語言編寫的內核提供Maple語言。許多功能由各種來源的函式庫提供。許多數值計算由NAG數值計算庫, ATLAS庫, GNU多精度庫提供。大部分庫由Maple語言編寫,並且可檢視原始碼。
Maple中不同的功能需要不同格式的數值數據。符號表達式在主記憶體中以有向無環圖的形式儲存。標準介面和計算介面由Java語言編寫。經典介面由C語言編寫。
版本
[編輯]版本 | 年份 |
---|---|
Maple 1.0 | 1982年1月 |
Maple 1.1 | 1982年 |
Maple 2.0 | 1982年5月 |
Maple 2.1 | 1982年6月 |
Maple 2.15 | 1982年8月 |
Maple 2.2 | 1982年12月 |
Maple 3.0 | 1983年5月 |
Maple 3.1 | 1983年10月 |
Maple 3.2 | 1984年4月 |
Maple 3.3 | 1985年3月(第一個公開版本) |
Maple 4.0 | 1986年4月 |
Maple 4.1 | 1987年5月 |
Maple 4.2 | 1987年12月 |
Maple 4.3 | 1989年3月 |
Maple V | 1990年8月 |
Maple V R2 | 1992年11月 |
Maple V R3 | 1994年3月15日 |
Maple V R4 | 1996年1月 |
Maple V R5 | 1997年11月1日 |
Maple 6 | 2000年1月31日 |
Maple 6.01 | ?年?月 |
Maple 6.02 | ?年?月 |
Maple 7.00 | 2001年5月28日 |
Maple 7.01 | ?年?月 |
Maple 8.00 | 2002年4月22日 |
Maple 9.00 | 2003年6月30日 |
Maple 9.01 | 2003年7月10日 |
Maple 9.02 | 2003年?月 |
Maple 9.03 | 2003年11月5日 |
Maple 9.50 | 2004年4月7日 |
Maple 9.51 | 2004年8月17日 |
Maple 9.52 | 2005年1月21日 |
Maple 10 | 2005年5月13日 |
Maple 10.01 | 2005年?月 |
Maple 10.02 | 2005年11月8日 |
Maple 10.03 | ?年?月 |
Maple 10.04 | 2006年5月30日 |
Maple 10.05 | 2006年6月9日 |
Maple 10.06 | 2006年10月2日 |
Maple 11.0 | 2007年2月17日 |
Maple 11.01 | 2007年7月10日 |
Maple 11.02 | 2007年11月10日 |
Maple 12.0 | 2008年4月10日 |
Maple 12.01 | 2008年10月 |
Maple 12.02 | 2008年12月 |
Maple 13.0 | 2009年4月13日 |
Maple 13.01 | 2009年7月8日 |
Maple 13.02 | 2009年7月8日 |
Maple 14.00 | 2010年4月5日 |
Maple 14.01 | 2010年10月28日 |
Maple 15 | 2011年4月13日 |
Maple 15.01 | 2011年6月2日 |
Maple 16 | 2012年3月28日 |
Maple 16.01 | 2012年5月16日/8月27日 |
Maple 16.02 | 2012年11月18日 |
Maple 17.00 | 2013年2月21日/3月13日/4月10日 |
Maple 18.00 | 2014年3月6日 |
Maple 18.01 | 2014年5月 |
Maple 18.01a | 2014年7月 |
Maple 18.02 | 2014年11月 |
Maple 2015 | 2015年3月 |
Maple 2015.1 | 2015年11月 |
Maple 2016 | 2016年3月2日 |
Maple 2016.1 | 2016年4月20日 |
Maple 2016.1.a | 2016年4月27日 |
Maple 2017 | 2017年5月25日 |
Maple 2017.1 | 2017年6月28日 |
Maple 2017.2 | 2017年8月2日 |
Maple 2017.3 | 2017年10月3日 |
Maple 2018.0 | 2018年3月21日 |
Maple 2019.0 | 2019年3月14日 |
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
求根
[編輯]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))
解:
- 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);
繪製雙變數函數
[編輯]繪製函數,和的範圍為 -1到1
plot3d(x^2+y^2,x=-1..1,y=-1..1);
繪製函數動畫
[編輯]- 二維動畫
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));
答案:
註釋
[編輯]- 現在,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 Product History. [2020-03-20].