《2022年Maple入门教程Part_数据结构 .pdf》由会员分享,可在线阅读,更多相关《2022年Maple入门教程Part_数据结构 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、( 2. 1. 3)( 2. 1. 4)( 2. 1. 1)( 2. 1. 2)Part 6 :数据结构 西希安工程模拟软件(上海)有限公司,20086.0 介绍第六部分:数据结构,学习Maple的数据结构。6.1 数据结构Maple 有多种数据结构,提供用于任务的工具。前面你已经接触了矩阵,其他数据结构包括:列表、集合、序列、矩阵、数组、表、模块等。熟悉数据结构和它们之间的区别非常重要,这样可以针对不同的问题选择恰当的结构和操作,这里仅介绍一些最常用的数据结构。序列操作步骤结果序列是一个用逗号隔开的任意对象集合,一个序列也可以由若干个序列复合而成。例子: 表示命名 被赋值为一个序列。在Map
2、le中,序列是许多数据类型的基础。特别是,他们出现在函数调用、列表、集合、下标。 使用索引符号提取序列中的元素:指向序列 s 中的第 个元素。也可以使用下标符号,引用第 个元素。使用下划线 (_) 输入下标。12a名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - ( 2. 2. 1)( 2. 2. 3)( 2. 2. 2)( 2. 2. 4)( 2. 1. 5)( 2. 1. 4)( 2. 1. 6)提示: 可使用 2-D 数学
3、编辑器输入索引和下标符号。seq 命令seq 命令用于构建一个序列值。调用格式是 seq(f(i), i=1.n),生成序列 f(1), f(2), ., f(n). 更多信息,参考帮助seq 。集合操作步骤结果集合是用一对花括号, ,括起的以逗号分隔的一组无序、不重复的表达式。提示: Maple不保持集合中元素的顺序和重复次数,因此 Maple 的集合与数学的集合具有相同的性质。序列可以是空的,因此 表示一个空集合。注意对集合 求值时,a 的重复项被移除。集合计算使用常用符号面板中的符号,或者, , 和 算子完成集合计算。例子:求集合 S1 和 S2 的并集、交集、差集。测试集合的成员关系例
4、子:使用 member 命令测试集合的成员关系。 = = = = = = 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - ( 2. 2. 3)( 2. 2. 9)( 2. 2. 6)( 2. 2. 8)( 2. 3. 1)( 2. 2. 5)( 2. 3. 2)( 2. 3. 3)( 2. 2. 7)( 2. 2. 10)( 2. 2. 4)可选操作,使用集合符号组成语句 ,然后使用 evalb (布尔求值 ) 对表达式求值得
5、到 true 或 false 。可用关键词 代替 符号。方括号可以用来获取集合中的元素,但这种操作有一定的限制。其它的命令例如remove 和 select。如果需要顺序,或者将集合转换为列表。truefalsetruefalse选择元素序列使用相同的选择符号: 和 都表示提取集合 s 中第 个元素。例子:选择 S1 中第一个和第三个元素。axMaple 的类型检查函数。 命令 whattype 返回 Maple 类型,命令type 实现类型检查。 提示:类型检查在 Maple程序编程中非常有用。settrue列表操作步骤结果列表是有序的表达式序列,用一对方括号 括起来。列表的顺序与表达式的序
6、列相同。与集合不同的是,重复的项在列表中得到保留。 表示一个空列表。可以用方括号封装序列创建列表。例子:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - ( 2. 3. 4)( 2. 3. 5)( 2. 3. 8)( 2. 3. 17)( 2. 3. 16)( 2. 3. 11)( 2. 3. 12)( 2. 3. 15)( 2. 3. 7)( 2. 3. 9)( 2. 3. 2)( 2. 3. 3)( 2. 3. 6)( 2.
7、 3. 14)( 2. 3. 10)( 2. 3. 13)从列表 s 创建一个列表。列表中的元素可以是任意表达式,甚至是其他列表。Maple 中一个特殊的内嵌列表, listlist,它内部的列表有相同数量的元素。listtruefalse选择元素列表与序列和集合的选择符号相同:和 都表达提取列表 s 中第 个元素。可以用组合使用选择操作提取内嵌列表中的元素。选择部分列表使用 定义索引值的范围,选择列表中一定范围的元素。范围的端点可以空白,表达式“从开始”或“到结尾”。zb测试列表成员关系例子:使用命令 member 测试列表成员关系。可以发现列表中元素的位置。如果 true名师资料总结 -
8、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - ( 2. 3. 18)( 2. 3. 22)( 2. 3. 21)( 2. 3. 27)( 2. 3. 28)( 2. 3. 30)( 2. 3. 17)( 2. 3. 16)( 2. 3. 20)( 2. 3. 24)( 2. 3. 25)( 2. 3. 29)( 2. 3. 23)( 2. 3. 26)( 2. 3. 19)member 返回 true ,并且调用格式中使用了第三个参数,这里是
9、 i,元素在列表中的位置将被赋值给参数 i 。true2op 和 nops 命令命令 op 的功能是从任意的 Maple数据结构中提取元素,包括列表。特别当修改已有的列表时非常有用。命令 nops 返回算子的数量。例子:从列表 L1 提取所有的元素。求 L1 中元素的数目。连接列表使用命令 op 提取单个列表中提取表达式序列,连接两个列表创建一个新的列表。添加元素到列表用相同的方法添加元素到列表。4替换列表中的元素分配一个新的值到那个位置,替换列表中原来的元素。如果列表有重复的元素,可用命令 eval 替换所有的相同元素。例子:用 A 替换列表 L4 中的所有 a 。名师资料总结 - - -精
10、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - ( 2. 3. 28)( 2. 3. 30)( 2. 4. 4)( 2. 3. 31)( 2. 4. 6)( 2. 3. 29)( 2. 4. 3)( 2. 4. 1)( 2. 4. 2)( 2. 4. 5)( 2. 4. 7)列表排序命令 sort 按照升序排列数值列表中的元素。应用函数到集合或列表中的元素操作步骤结果使用 map 或 zip 命令,将一个函数或程序作用到集合或列表中的元素。例子:应用
11、sin 到 S1 中所有的元素。对 S1 中所有的元素求平方。使用命令 zip ,将关于两个变量的函数 f(x,y) 作用到两个列表中的元素。使用格式是 zip(f, list1, list2).例子:A1 和 A2 中的元素相乘。求 A1 和 A2 的成对公约数。求整数最大公约数的命令是 igcd 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - ( 2. 4. 10)( 2. 4. 9)( 2. 4. 7)( 2. 4.
12、8)使用 for 循环也可以使用条件语句 for . do . 完成重复操作,结果会显示在屏幕上。for 循环可作用在整个序列上。提示:Maple 的内置命令,例如 map 和zip ,的计算效率要比 for 循环更快。更多信息,请参考 efficiency。提示:条件语句的更多信息和范例,请参阅用户手册中的 do 部分。0数组,矩阵,向量数组、矩阵、向量在 Maple中表示为相同的结构, rtable ,存储为可变密度数组。当需要改版参数时,使用数组或其他基于 rtable 的数据结构。关于矩阵或向量的介绍见教程 5-WorkingWithMatrices 。本段落的剩余部分会使用数组操作。
13、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - ( 2. 5. 6)( 2. 5. 5)( 2. 5. 1)( 2. 5. 3)( 2. 5. 2)( 2. 5. 8)( 2. 5. 7)( 2. 5. 4)操作步骤结果定义一个数组。例子:用一列项定义一个数组。例子:用 1 到 9 的值定义一个 3 x 3 矩阵。调用格式是 Array(rows, columns, entries),这里行和列用范围给出,元素项通过内嵌列表给
14、出。索引和动态增加的数组提取项例子: 从 A1 中提取一个项。提取 A2 中第二行第一列的项。使用 或 () 括号提取项。 前面已经介绍了使用第一种方法对其他数据结构进行索引选择,例如列表。第二种方法,() ,仅适用于 rtable,称之为programmer indexing 。Programmer indexing 常用于更灵活和强大的索引。例如,可以通过分配新的元素到数组,增加数组的初始范围。动态增加数组例子:使用 () 括号增加数组。1.241.2名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
15、- - - - 第 8 页,共 11 页 - - - - - - - - - ( 2. 5. 9)( 2. 5. 12)( 2. 5. 11)( 2. 5. 10)( 2. 5. 13)( 2. 5. 8)( 2. 5. 7)关于索引的更多信息,请参阅rtable_indexing。使用一个初始化函数创建数组使用一个用于填充项的函数,创建一个数组或矩阵。例子:使用函数 定义一个 5 5 的矩阵。 首先使用表达式面板中的函数模板 。使用 Tab 键在占位符之间切换,用近似值替换所有的占位符。然后给出行和列的范围,以及初始函数名,从而定义一个数组。矩阵矩阵是元素的长方形数组,以行和列显示。例:使用
16、矩阵面板创建一个矩阵,手工填入数值,或选择选择矩阵类型为随机值。你也可使用 Matrix() 命令创建矩阵。 例:看右边的例子。使用索引获取其中的元素。例:使用索引提取 中第一行第三列的元素,并赋值给一个变量名。例:使用索引提取 第一行中的第一个和第二个元素。8向量名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - ( 2. 5. 15)( 2. 5. 16)( 2. 5. 14)向量看起来像列表,但是它们是两个不同的数据类型。例
17、:从矩阵面板中创建一个向量,设置矩阵维数为 1 。例:使用 Vector 命令定义一个向量。方括号索引符号可用来提取元素。例:获取序列中的第三项。99表如果你想用一个对象而不是一个数对数据索引,可以用表。例如,使用表存储关联对。操作步骤结果定义一个关联对的表:项用索引用 a, b, 和 c 。 使用命令 eval ,查看表中的所有项。( 2. 6. 1)( 2. 6. 2)( 2. 6. 3)( 2. 6. 4)K( 2. 6. 5)( 2. 6. 6)Maple 的 Introductory Programming Guide 有更多数据结构的介绍。名师资料总结 - - -精品资料欢迎下载
18、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 模块是一种编程结构,让你关联相关的数据和程序。大部分Maple程序包是用模块实现的。Maple 的 Advanced Programming Guide 有跟多关于模块的介绍。相关帮助Array, list, map, seq详细信息见“ Maple数据结构和表达式操作”教程。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -