maple演示ppt


Maple 操作演示
@2011, CYBERNET China

输入文字

点击工具栏上的“ 文字” ,开始输入
输入数学

点击工具栏上的“ 数学” ,开始输入
如何执行命令 5 按回车键。 (1.1)

关联菜单
输入一个数学表达式 使用右键菜单积分 绘图

(1.1.1)
integrate w.r.t. x

1 K x2 1 C x2

图形

6

图形Kx C 2 arctan x
4

2

0

5 x

10

使用面板
面板介绍 求逆矩阵。 将矩阵中的一个元素改为变量 重新计算 鼠标右击,转换为 LaTeX

inverse

to LaTeX

\left[ \begin

{array}{ccc} 3307\, \left( -416533+3307\,a \right) ^{-1

}&-2585\, \left( -416533+3307\,a \right) ^{-1}&-5737\, \left( -416533+ 3307\,a \right) ^{-1}\\ \noalign{\medskip}-2675\, \left( -416533+3307 \,a \right) ^{-1}&{\frac {67\,a-6348}{-416533+3307\,a}}&{\frac {31\,a+ 736}{-416533+3307\,a}}\\ \noalign{\medskip}-1649\, \left( -416533+3307 \,a \right) ^{-1}&-11\,{\frac {4\,a-621}{-416533+3307\,a}}&{\frac {29 \,a-792}{-416533+3307\,a}}\end {array} \right]

向导、任务模板、分析助手

初始条件:y(0)=1, y’(0)=Pi

(2.1)
solve DE interactively

(2.2)

画布
菜单“ 插入”

显示结果和过程

(2.2.1)

= = =

=

(2.2.2)

=

= = =

= = = = (2.2.3)

= =

=

=

=

= =

向导
Maple 内置超过50个向导,见菜单“ 工具0 向导” 。 复变量向导

任务模板
内置~1000个任务模板。 例如:Vector Calculus Task Templates Integrate Planar Vector Field
Plot Window

Insert Defaults:
,

Vector Field

Component 1:

Erase Graph
Component 2:

Clear All

Coordinates

System:

Cartesian

Variables:
Path Parameter

Insert Defaults:

Enter Data

交互式探索
1. 探索器:a: 1..10, b: 1..10, skip x.

操作:从右键菜单选择“ 探索器” 。 2. 探索器:a: 1..10, skip x and y.

3. 探索器:a: 1..10, b: 1..10

探索助手
3D 图形:传统的Maple方法调查包含两个变量的函数。 使用绘图器 ( ,并添加做坐标轴。

新的方式:2D 图形探索 (

。注意当

时,什么发生了。

更近一点检查相应表达式 ( 是另一个例子,您可以直接进入数学。

。注意到

时,得到除以

的结果。这

技术文件
积分 等于 ,求解过程一目了然。

Maple 常规操作
1. 如何在同一行输出计算结果 =5 =5 =8
按组合键 CTRL 和 =

2. 如何将窗口一分为二 选择菜单“ 插入” 表格” 和“

16

(5.1) (5.2) (5.3)

232333 232323

(5.4) (5.5) (5.6)

(5.1) (5.2) 2323 (5.3) 32323

(5.4) (5.5) (5.6)

3. 如何输入同时执行的多行命令

(5.7) 注意语句后面的符号:restart ; 和 c :

按SHIFT ENTER换行。 4. 显示输出 ;
(5.8)

5. 隐藏输出

6. 命令名补全 输入命令起始的字母,按 CTRL 和 空格键,或者按 ESC 键。

7. 如何赋值(定义)一个变量

(5.10) 或者

(5.11) 或者

(5.12)

8. 如何取消变量的定义/赋值

x

(5.13)

9. 不计算表达式 = ' '

(5.14)

10. 字符串符号 " "

"Hallo Hallo" true

(5.15)

11. 清除定义

x

(5.16)

12. 上标

按 SHIFT 和 _

x

(5.17)

13. 上标
按 SHIFT 和 ^

x

(5.18)

14. 四舍五入到最近的整数

0 0 1 1

(5.19)

15. 如何求解两个方程中的两个未知量

(5.20)

16. 进入帮助系统

或者用鼠标选中plot,然后按 F2 键。

17. 从字符串 " " 到浮点数或者从浮点数到字符串 ""

"1" 1

(5.21)

18. 列表中元素项出现次数/个数/频率

2 19. 当前工作表的路径?

(5.22)

"D:\Maple 14\演示资料" 20. 检验等式

(5.23)

true

(5.24)

21. Procedures

或者:

或者:

(5.25) 或者:

(5.26)

或者构建一个阶乘:

24 24

(5.27)

22. 结果赋值给变量

2 (5.28)

或者:

10.0

(5.29)

23. 累计求和

24. 显示精度

(5.30)

(5.31)

25. 引用前一行的输出

(5.32) (5.33) (5.34)

26. 从表达式中提取算子

(5.35) (5.36)

27. 替换

4 代数替换:

(5.38)

(5.39)

28. 定义一个函数

(5.40) 15 (5.41)

29. 使用列表元素
(5.42) (5.43)

30. 求微分 f ( x, y ),相对于第二个变量 y

(5.44)

(5.45)

31. 如何并排显示图形

1

1

0 1 2 3 x 4 5 6

0

1 y

2

3

1

1

0 1 2 3 x 4 5 6

0

1 y

2

3

1

1

0 1 2 3 x 4 5 6

0

1 y

2

3

32. 水平二叉树

0.5 0.5 3 0.5 0.5 0.5 6 7

18

0.5 1 7 0.5 16 15

0.5 1 4 1 5 0.5 0.5 2 0.5 4 0.5 0.5 9 8 0.5 10 13

0.5

0.5 1 2 0.5 11

33. 垂直二叉树

1

0.5 0.5 2 3

0.5 0.5 4 5 6 0.5

0.5

7

0.5 0 . 50 . 5 8 9 10 11

0.5 0 . 50 . 5 12 13 14

0.5 0.5 15 16

0.5 0 . 50 . 5 17 18

绘图向导:Plotting Guide

含单位的图形
例子 1:

2

m

1

0 2 rad 2

例子 2: 概率密度函数的正态分布图:

0

10 m yr

20

30

x = K10.

mm

0

10 m yr

20

30

可视化质量和相互作用
Visual Quality & Interaction

图形注释和排版数学

例子 1:

A Wireframe

x sin x cos y x2 cos x cos y x2 sin y

例子 2:

Vase Plot

inner pot outer pot

例子 3:

(8.1)

zero pole plot

system poles

The system has 4 poles & 1 zero

z e 0 1

交互式照明模式
Cylinder

含观察轨迹的动画
内置动画路径

自定义动画路径
管道幻灯片

沿着预定义的轨迹

Bouncing Cube

使用顶层命令和程序包中的命令
Top Level 命令列表: 一些常用的命令归类为顶层命令,如前面介绍的 sin, taylor, int, exp, dsolve, solve, fsolve, rhs, eval, factor, expand, simplfiy 等。您可以随时使用顶层命令,更多信息,请参阅Maple的顶层命 令列表 Index of Functions。 例子:

(11.2) 程序包列表: 如何使用程序包中的命令,有两种调用格式:长格式和短格式。 1. 长格式: PackageName[CommandName],任何情况都可以使用这种格式。 例如 CurveFitting[PolynomialInterpolation](表达式,参数项)。

2. 短格式: 首先在当前工作表中调用程序包 with(PackageName) ,然后直接用 CommandName 完成计算。

详细介绍见:A3-命令和程序包

常微分方程
常微分方程 (线性,符号解)
直接使用鼠标求解。不要担心结果里面的常数。 可以通过在表达式中定义初始条件
solve DE

,重新求解。

solve DE

solve DE

solve DE

system of ODEs
考虑两个耦合的2次常微分方程组: 首先定义微分方程组: 和 。

(12.1.1.1)

(12.1.1.2) 用dsolve求解方程和初始条件,以集合的形式返回关于 和 的解。

(12.1.1.3)

(12.1.1.4)

(12.1.1.5)

常微分方程 (初始值,数值解)

(12.2.1)

Solve DE

2

y

1

0 1000 t 2000 3000

微分代数方程
举例:含逻辑条件的微分代数方程。 考虑一个弹性球问题,球与地面的碰撞(在 y=0 ),假设重新弹起的速度为命中速度的 70%,碰撞时在 方向上的速度仅仅是反方向。系统方程如下(初始位置是 (0, 1),初始速度 是 (1, 0) ):

(13.1)

(13.2)

弹性球

y

0

1

2 x

3

4

5

微分方程
微分方程

常微分方程数值解 (IVP, BVP) 微分代数方程数值解 偏微分方程数值解 常微分方程的封闭解 偏微分方程的封闭解

矩阵
inverse

characteristic polynomial

solve

积分
数值积分、符号积分、重积分、复积分、含特殊函数的积分、各种积分变换等。 特别的功能,积分法的透明和选择:

(16.1)

Definite Integration: Integrating expression on t=0..1 Definite Integration: Using the integrators [distribution, piecewise, series, o, polynomial, ln, lookup, cook, ratpoly, elliptic, elliptictrig, meijergspecial, improper, asymptotic, ftoc, meijerg, contour, ftocms] LookUp Integrator: unable to find the specified integral in the table Definite Integration: Method elliptic succeeded. Definite Integration: Finished sucessfully. (16.2)

Definite Integration: Definite Integration: Definite Integration: Definite Integration:

Integrating expression on t=0..1 Using the integrators Elliptic Method Elliptic succeeded. Finished sucessfully. (16.3)

包含特殊函数的表达式积分
例子:对包含特殊函数(例如 erf, Ci, Si, FresnelS, FresnelC)的积分:

(16.1.1)

(16.1.2)

特殊函数
Maple 内置 200 多个特殊函数的数据库,包括 Hypergeometric, Bessel, Mathieu, Heun and Legendre families of functions. Special Function Assistant

优化
Maple 提供Optimization程序包和Global Optimization Toolbox工具箱。 Linear Programming Quadratic Programming Non-Linear Optimization Non-Linear Least Squares Global Optimization

统计
Statistics 程序包程序包提供数学统计和数据分析的函数集和交互式工具,支持广泛的统计任 务,例如定量和图形数据分析、模拟、曲线拟合等。 各种连续和离散分布 概率计算和随机变量 描述性统计和数据分析 数据处理和数据平滑 假设检验和统计推断 回归 估计 可视化 模拟 过程控制

控制系统设计
Control Systems Design

系统定义

(20.1.1)

(2

(20.1.3)

分析

3

Im(s) Re(s)

2

1

0

Magnitude [dB]

Freq [rad/s]

75 50 25 0 Phase [deg.]

Freq [rad/s]

y1

0 2 4 t 6 8 10

(20.2.1)

(20.2.2)

true true

(20.2.3) (20.2.4)

convert to differential equation

1

root locus plot

Im(s) 0 Re(s)

5

impulse response plot

1

0 2 4 t 6 8 10

0

例子 - 反馈控制系统



是典型的多项式有理函数。在这个例子中,考虑



- 定义 - 计算



.

- 从菜单完成简化表达式 - 从菜单完成 Inverse Laplace transform

- 使用图形生成器画图,范围 到 10 - 鼠标右击输出结果,使用 Optimization 菜单发现最小值

(20.3.1)

1

(20.3.2)

(20.3.3)
simplify

=

(20.3.4)
inverse Laplace transform

(20.3.5)

1

0 2 4 t 6 8 10

minimize

(20.3.6)

单位和公差

(21.1)

CAD 系统双向连接

Example

Maple Toolbox for MATLAB
详细介绍见产品主页:http://www.cybernet.sh.cn/cca/cn/maple/maplematlab/index.asp FAQ: 如何在MATLAB使用Maple的全部命令(包括工具箱)? 如何在Maple中使用MATLAB命令,或者调用MATLAB完成计算? 通过使用 Maple's Matlab link,您可以在Maple工作表中使用Matlab完整的功能。 注意:为了允许本段中所有的范例,您必须已经安装Matlab程序。

例子

生成数据用于分析。

4 3 2 1 0 10 20 30 40

添加噪声到数据。

4

3 2

1 0 10 20 30 40

使用Matlab计算傅里叶变换。 检查它是否是一个复数矢量。 complex 分割为两部分: (23.1.1)

返回值的大小? (23.1.2) 长度与定义的变量 'num'相同。放到Matlab内存。 为了计算功率谱,您需要 ft * conj(ft) /n。为了能够在Matlab中实现,首先需要把 'ft' 和 'n'放到Matlab内存中。

使用 evalM 计算期望的结果,确保结果分配给一个变量,这样可以使用 Matlab[getvar] 命 令。 得到结果。 注意到这个结果不是复数。 float 绘制功率谱的图形。在这里需要将 'pwr' 转换为一个列表。 由于是对称的,您只需要画出半边图。 (23.1.3)

1000

800

600

400

200

0 0 2 4 6 8 10 12 14 16

这里有两个很明显的频率。主频率是:

(23.1.4) 周期是:

(23.1.5) 计算的频率。

(23.1.6) 第二个周期是:

(23.1.7) 注意到 T1 和 T2 接近于原方程中的角度乘数,是期望的结果。

MapleSim
提取MapleSim多领域模型的系统方程,完成深度数学分析。

编程
Maple内置完整的程序语言,编写Maple程序实际上是非常简单的,只要在你每天使用的一系 列命令前后分别加上proc()及end即可。利用Maple自带的函数程序构造应用程序,是一件极为 容易的事情。

介绍
例子:

(25.1.1) (25.1.2)

参数,局部和全局变量
例子

(25.2.1) 5 a b 8 如何引用Procedure中的多个变量(全局 vs 局部变量) (25.2.3) (25.2.4) (25.2.5)

a b

(25.2.6)

A B

(25.2.7)

if 语句
例子:

(25.3.1) if..else 语句

-12 是一个负整数。

for循环
例子

1. 1.414213562 1.732050808 2. 2.236067977 多个i f语句的for循环

(25.4.1)

(25.4.2) For/Do循环和Break

2

(25.4.3)

Do循环

(25.5.1) For 和 Do 循环

(25.5.2)

也可以用procedure求解

(25.5.3)

或者

(25.5.4)

While循环

9

(25.6.1)

调试命令和工具
交互式Maple程序调试器:

调试命令

查看函数的源代码

然后用函数“ print”。 示例:

注意:您不能使用该方法查看Maple内核的源代码。

代码生成
介绍
代码生成是Maple中非常有用的工具之一,用于部署它的结果到其他系统。Maple转换公 式、数值程序、数据集和矩阵到编译语言。Maple支持转换到C、MATLAB、Java、Visual Basic、和 Fortran。

(26.1.1)

使用 CodeGeneration 程序包,您可以转换Maple公式、一组代表计算序列的方程、一个程 序体、或者一个 rtable 到任意的目标语言。 Maple表达式和rtable元素被转换,并赋值给目标语言中的变量,变量名是自动生成的。 Maple方程列表被转换为目标语言中的一组赋值语句。 Maple编程程序体被转换为目标语言中的等效程序。 使用代码生成工具可实现的任务: 从方程(组)到源代码。

自动化模型推导和编程过程

3.1 转换 Maple 公式

例子:计算一个包含符号项的 3x3 矩阵的逆矩阵,将结果转换为高效的C代码。 输入一个包含符号项的 3×3 矩阵:

计算 M 的逆:

输出逆矩阵到C代码: cg[0][0] = b / (3 - c * b + a * b); cg[0][1] = -3 / (3 - c * b + a * b); cg[0][2] = (-6 + c * b) / (3 - c * b + a * b); cg[1][0] = 1 / (3 - c * b + a * b); cg[1][1] = (a - c) / (3 - c * b + a * b); cg[1][2] = (2 * a - c) / (3 - c * b + a * b); cg[2][0] = -b / (3 - c * b + a * b); cg[2][1] = 3 / (3 - c * b + a * b); cg[2][2] = -(-3 + a * b) / (3 - c * b + a * b); 这段代码可以正常工作,但计算效率低,这是因为它多次重复计算表达式(-3 + b * c - a * b) 。这个表达式可以仅计算一次,然后存储在一个变量中供其他表达式引用。我们可以使用 C输出命令中的optimize选项实现这个目的。 通常情况下,optimize选项会优化输出代码中算法运算的数目。 t1 = (int) ((double) c * (double) b); t2 = (int) ((double) a * (double) b); t4 = 1 / (3 - t1 + t2); t5 = b * t4; t6 = 3 * t4; cg0[0][0] = t5; cg0[0][1] = -t6; cg0[0][2] = (-6 + t1) * t4; cg0[1][0] = t4; cg0[1][1] = (a - c) * t4; cg0[1][2] = (2 * a - c) * t4; cg0[2][0] = -t5; cg0[2][1] = t6; cg0[2][2] = -(-3 + t2) * t4; 现在可以发现这段代码的效率有了显著提高。

3.2 转换 Maple 程序体

例子:将Maple中实现牛顿方法的程序转换为 C, Java, Matlab, Fortran 和 Visual Basic. 下面的Maple程序使用牛顿方法计算 和 ,和起始点。 f := proc(a::integer, b::integer, x::float) local x0, x1, v, vp; x1 := x; x0 := x+1; while abs(x1-x0)>10^(-3) do v := cos(a*x1+b); vp := -a*sin(a*x1+b); x0 := x1; x1 := x1-v/vp; end do; x1; end proc: 0.8561944904 (26.3.1) (26.3.2) 转换程序到C代码。注意Maple包含 C's math.h 库。它也赋予输入变量为 int 和 doulble,对 应于Maple的数据类型 integer 和 float。 #include <math.h> double f (int a, int b, double x) { double x0; double x1; double v; double vp; x1 = x; x0 = x + 0.1e1; while (0.1e1 / 0.1000e4 < fabs(x1 - x0)) { v = cos((double) a * x1 + (double) b); vp = -(double) a * sin((double) a * x1 + (double) b); x0 = x1; x1 = x1 - v / vp; } return(x1); } 转换程序到Fortran。 靠近给定起始点的一个根。用户输入整数

转换程序到 Java。注意到代码包含一个 Java 输入 java.lang.Math 类。 转换程序到V B。 转换程序到MATLAB。

转换为新的目标语言(可选) 使用选项修整生成的代码

OpenMaple API
Maple allows you to call external functions written in C, Java, and Fortran. Results are returned to Maple where you can continue to work with them. Through the OpenMaple API, you can also call Maple from an external program. This means that you can take advantage of all of the mathematical power available in Maple, from your own programs. The OpenMaple API currently supports programs written in C, Java, and Visual Basic.

OpenMaple API: C Example
/* initialize Maple */ if((kv=StartMaple(argc,argv,&cb,NULL,NULL,err))==NULL ){ fprintf(stderr,"Fatal error, %s\n",err); return( 1 ); } printf("Evaluate an integral: \n\t"); r = EvalMapleStatement(kv,"int(1/(x^4+1),x);"); /* assign x a value and reevaluate the integral */ MapleAssign(kv, ToMapleName(kv,"x",TRUE), ToMapleInteger(kv,0)); r = MapleEval(kv,r); MapleALGEB_Printf(kv, "\nEvaluated at x=0, the integral is: %a\n",r);

External Calling
The define_external command links in an externally defined function (for example, from a DLL under Windows, or from a shared library under UNIX), and produces a Maple procedure that acts as an interface to this external function.

External Calling to C External Calling to Fortran External Calling to Java

The Maple Compiler
技术支持:maple@cca-es.com www.maplesoft.com.cn


相关文档

更多相关文档

maple教程
Maple13入门教程
Maple高级应用1-11
Maple提高教程B3- Maple中的偏微分方程求解
Maple高级应用和经典实例
电脑版