强大的数学专业工具Maple快速上手

前言

目前数学软件国内常用的是Matlab或Mathematics,但是还有一款非常强大的来自加拿大的软件Maple,是笔者非常喜欢的一款数学软件。它是目前世界上最为通用的数学和工程计算软件之一,在数学和科学领域享有盛誉。

Maple的功能比起Matlab更加简单易用,它内置常用的各类数学运行公式、建模和仿真工具等。能够使用各类强大的符号计算、高精度数值计算等。同时内置超过6000个计算命令,覆盖微积分、微分方程、特殊函数、线性代数、图像声音处理、统计、动力系统等几乎所有方面。

[百度百科] Maple不仅仅提供编程工具,更重要的是提供数学知识。Maple是教授、研究员、科学家、工程师、学生们必备的科学计算工具,从简单的数字计算到高度复杂的非线性问题,Maple都可以帮助您快速、高效地解决问题。用户通过Maple产品可以在单一的环境中完成多领域物理系统建模和仿真、符号计算、数值计算、程序设计、技术文件、报告演示、算法开发、外部程序连接等功能,满足各个层次用户的需要,从高中学生到高级研究人员。

使用Maple,我们可以快速计算大部分常见的内容,比如:

# 求100以内素数的和
add(ifelse(isprime(x), x, 0), x in [seq(x, x = 2 .. 100)]);
                              1060

1 基本运算

1.1 常用变量

infinity:         ∞
pi:   圆周率

其他

2+4;
                               6
12*34567890;
                           414814680
134^39; 
       9059143440314737055251638566206777129140235091118703742385647407\
       4097423209059057664
 3/5 + 5/9 + 7/12;
                              313
                              ---
                              180
sqrt(24); 
                              2*sqrt(6)   
4*(3+Pi); 
                           12 + 4*Pi
sin(5*Pi/3); 
                           -sqrt(3)/2     
sec(Pi/4); 
                              sqrt(2)   
arcsin(-1); 
                             -Pi/2 
tan(Pi/2);
    Error, (in tan) numeric exception: division by zero
exp(x); 
                             exp(x)
abs(x); 
                              |x|
abs(-3); 
                               3
abs(exp(1)-Pi); 
                          -exp(1) + Pi
p:=3/5+5/9+7/12; 
							p := 313/180
evalf(p);
                          1.738888889
w:=4*(3+Pi); 
                         w := 12 + 4 Pi
evalf(w); 
                          24.56637062
evalf(w,4); 
                             24.57
evalf(w,45);
         24.5663706143591729538505735331180115367886776
         
result:=seq(sqrt(k),k=1..10); 
              result := 1, sqrt(2), sqrt(3), 2, sqrt(5), sqrt(6), sqrt(7), 2*sqrt(2), 3, sqrt(10)
evalf(result); 
         1., 1.414213562, 1.732050808, 2., 2.236067977, 2.449489743, 2.645751311, 2.828427124, 3., 3.162277660
         
3/5+5/9+7/12;
                              313/180
evalf(%); 
                          1.738888889
Pi;
                               Pi
evalf(%); 
                          3.141592654
%+5; 
                          8.141592654
p; h; 
                              313/180
                               32
restart;  
p; h;   // 重启后 p 和 h的值都没了
                               p
                               h

2 代数

3 函数

3.1 函数的定义

函数的定义有两种情况。第一种为一般性定义,格式为 y := f(x), 如 w1:=3*x^2+8,这种方式为一般性定义,不能直接计算,如:

w1 := 3*x^2 + 8; 
w1(3);
        3x(3) + 8 
subs(x = 3, w1);   // 等效于 subs(x=4, 3*x^2+8);
          35

第二种方式可以直接计算,格式为 y = x -> f(x),如 w2:=x->3*x^2+8,求值的时候直接代入即可,如:

w2 := x -> 3*x^2 + 8;
          w2 := x → 3*x^2+8 end proc
w2(3);
          35 

3.2 常用函数

多项式展开

expand((x + 1)^4);
                x^4 + 4*x^3 + 6*x^2 + 4*x + 1
expand(exp(a + ln(b)));
                e^a * b

因式分解

factor(3*x^2-10*x-8);
         (3*x + 2)*(x - 4)

解一元方程

solve(2*x = 3, x);
        3/2
solve(x^2 - 2x + 1 = 0);
       1, 1
solve((a^2*c^2 - 4*b^2)/b = a^6*b - 4*a^3*b, c);
       -b*(a^3 - 2)/a, b*(a^3 - 2)/a

解多元方程:

eq1 := 2*x + 2*y +   z = 2;
eq2 :=   x + 2*y +   z = 1;
eq3 := 3*x + 4*y + 5*z = 6;
solve({eq1, eq2, eq3}, {x, y, z});
          { x = 1, y = -1/2, z = 1 }

序列函数 seq

seq(i, i = 0 .. 6);
                     [0, 1, 2, 3, 4, 5, 6]
seq(k^2,k=1..100); 
   1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 
   256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 
   784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 
   1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 
   2401, 2500, 2601, 2704, 2809, 2916, 3025, 3136, 3249, 3364, 
   3481, 3600, 3721, 3844, 3969, 4096, 4225, 4356, 4489, 4624, 
   4761, 4900, 5041, 5184, 5329, 5476, 5625, 5776, 5929, 6084, 
   6241, 6400, 6561, 6724, 6889, 7056, 7225, 7396, 7569, 7744, 
   7921, 8100, 8281, 8464, 8649, 8836, 9025, 9216, 9409, 9604, 
   9801, 10000
X := [seq(i, i = 0 .. 6)];
                   X := [0, 1, 2, 3, 4, 5, 6]
X;
                     [0, 1, 2, 3, 4, 5, 6]                     

连乘 product(f, x=x1…x2)

product(x^2, x = 1 .. 10);
                13168189440000
product(x^2, x);
                GAMMA(x)^2

求和 sum(f, x=x1…x2)

f := x^2;
                            f := x^2 
sum(f, x);
                  1/3*x^3 - 1/2*x^2 + 1/6*x
sum(f, x = 1 .. 5);
                               55

映射 map

f := x -> x^2 + 3;
map(f, [1, 2, 3, 9]);
                           [4, 7, 12, 84]
map(f, [seq(i^2, i = 3 .. 6)]);
                      [84, 259, 628, 1299]
map(x -> x^2, sum(k, k = 1 .. 3));
                               36                    

其他函数

X := [seq(i, i = 0 .. 6)];
F := x -> x^2 + 2*x + 10;
map(F, X);
       [10, 13, 18, 25, 34, 45, 58]

simplify(表达式),
convert(表达式,形式,选项),
取分子numer(分式),
取分母 denom(分式)

# 2D绘制

## 绘制多条二维曲线
e1 := 2*x^2 + 3*x + 4;
e2 := 3*x^2 + 2*x + 3;
e3 := 4*x^2 + 6*x - 2;
plot({e1, e2, e3}, x = -10 .. 10)

在这里插入图片描述

4 微积分 Calculas

求导

diff(x^2, x);
           2x
diff(ln(x), x);
           1/x

积分

int(x^2, x);  # 不定积分
           x^3/3
int(x^2, x=1..3); #  定积分
           26/3

9 嵌入编程

for i to 10 do
    printf("i=%+2d and i^(1/2)=%+6.3f\n", i, eval(sqrt(i)));
end do
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值