
如果你会Mathematica,重新学一套API是很快的
Maple的社区成熟程度和官方账号粉丝数量,都不能打(
说明Maple这东西是真的小众
目录
- 环境
 - 参考
 - 基础知识
 
- 必会语法
 - maple 有哪些数学相关的包
 - maple 表观数据类型的一个总结
 
- 练习
 
- 绘图
 - 语法练习-杂项
 - 定义函数,调用函数
 - 函数式编程
 - 信号处理
 - 线性代数
 
环境
Maple2022
基础知识
必会语法
%  上一次计算结果
%%  上上次计算结果
:    结尾,计算结果不显示
;    结尾,说明这是一条语句。不然默认认为你是乘法
a:=1 应该这么给变量赋值
maple 有哪些数学相关的包
General Information
Algebra	
Calculus
Differential Equations
Differential-algebraic Equations
Discrete Mathematics	
Evaluation	
Factorization and Solving Equations
Finance	Fractals	
Geometry	
Iterative Maps
Linear Algebra	
Mathematical Functions	
Number Theory	
Numerical Computations
Optimization	
Packages	
Special Functions	
Vector Calculus
Basic Mathematics	
Calculus of Variations	
Conversions	
DifferentialGeometry
Logic	
Power Series	
FunctionAdvisor	
Group Theory
Inert Functions	
Numbers
maple 表观数据类型的一个总结

练习
绘图
c1 := [cos(x) - 2*cos(0.4*y), sin(x) - 2*sin(0.4*y), y];
c2 := [cos(x) + 2*cos(0.4*y), sin(x) + 2*sin(0.4*y), y];
c3 := [cos(x) + 2*sin(0.4*y), sin(x) - 2*cos(0.4*y), y];
c4 := [cos(x) - 2*sin(0.4*y), sin(x) + 2*cos(0.4*y), y];
plot3d({c1, c2, c3, c4}, x = 0 .. 2*Pi, y = 0 .. 10, grid = [25, 15], color = sin(x));
语法练习-杂项
# 包名[函数名]
Optimization[Minimize](x^2 - 3*x - 1)
int(1/x, x = 2 .. 5)
dsolve(3*(D@@4)(x)(t) + 2*(D@@2)(x)(t) + 4*D(x)(t) + x(t) = 0); #dsolve为什么只能解ode???
evalc(1/(3 + a - b*I)) # evalc把里面的变量都当成实数
simplify(sin(x)^3 - 11*sin(x)^2*cos(x) + 3*cos(x)^3 - sin(x)*cos(x) + 2, {sin(x)^2 + cos(x)^2 = 1, cos(x) = 0.5})
{solve([sin(x)*cos(x) = 0, 0 < x, x < 10], x, allsolutions)}; #解方程
定义函数,调用函数
# 定义函数,调用函数
u≔(x::integer,y::integer)↦x+y−igcd(x,y);
u(23,4)
# 写一个递归
F := proc(n) F(n) := F(n-1)+F(n-2) end;
F(0) := 0;
F(1) := 1;
F(3)
# 写一个函数
SqrtNewton:=proc(a::integer) local xk, xkm1;
if a < 0 then ERROR(‘square root of a negative integer‘) fi;
Digits := 55; # add some guard digits
xkm1 := 0;
xk := evalf(a/2); # initial floating point approximation
while abs(xk-xkm1) > abs(xk)*10^(-50) do
xkm1 := xk;
print(xk);
xk := (xk + a/xk)/2;
od;
Digits := 50;
evalf(xk); # round the result to 50 Digits
end;
SqrtNewton(2);
函数式编程
sin~([1, 2, 3]);
信号处理
# 计算DFT
SignalProcessing[DFT](Array([1, 2, 3, 4]));
# 计算CTFT
inttrans[fourier](sin(t), t, Omega);
# 计算离散化的Hilbert变换
SignalProcessing[Hilbert](Array([1, 2, 3, 4]));
# 算法见帮助文档
SignalProcessing[InverseDFT](SignalProcessing[DFT](Array([1, 2, 3, 4]))*Array([1, 2, 1, 0])); #验证结果
线性代数
# Det函数必须和模法一起用
# 使用Determinant函数计算行列式
LinearAlgebra[Determinant](Matrix([[2, 3, 1], [3, 2, 3], [0, 3, 2]]));
LinearAlgebra[Determinant](LinearAlgebra[HilbertMatrix](4));
    
    










