西希安工程模拟软件(上海)有限公司,20086.0 介绍
第六部分:数据结构,学习Maple的数据结构。
6.1 数据结构
Maple 有多种数据结构,提供用于任务的工具。前面你已经接触了矩阵,其他数据结构包括:列表、集合、序列、矩阵、数组、表、模块等。熟悉数据结构和它们之间的区别非常重要,这样可以针对不同的问题选择恰当的结构和操作,这里仅介绍一些最常用的数据结构。
序列
操作步骤序列是一个用逗号隔开的任意对象集合,一个序列也可以由若干个序列复合而成。例子: 表示命名 被赋值为一个序列。在Maple中,序列是许多数据类型的基础。特别是,他们出现在函数调用、列表、集合、下标。 使用索引符号提取序列中的元素:向序列 s 中的第 个元素。指2a(2.1.3)(2.1.4)(2.1.1)结果1(2.1.2)也可以使用下标符号,,引用第 个元素。使用下划线 (_) 输入下标。(2.1.4)提示: 可使用 2-D 数学编辑器输入索引和下标符号。seq 命令seq 命令用于构建一个序列值。调用格式是 seq(f(i), i=1..n),生成序列 f(1), f(2), ..., f(n). 更多信息,参考帮助seq。(2.1.5)(2.1.6)集合
操作步骤集合是用一对花括号,{},括起的以逗号分隔的一组无序、不重复的表达式。(2.2.1)提示: Maple不保持集合中元素的顺序和重复次数,因此Maple 的集合与数学的集合具有相同的性质。序列可以是空的,因此{} 表示一个空集合。注意对集合 时,a 的重复项被移除。集合计算使用常用符号面板中的符号,或者, , 和 算子完成集合计算。例子:求集合 S1 和 S2 的并集、交集、差集。 = = = = = = 测试集合的成员关系例子:使用 member 命令测试集合的成员关系。 求值(2.2.2)结果(2.2.3)(2.2.4)true可选操作,使用集合符号组成语句 ,然后使用 evalb (布尔求值) 对表达式求值得到 true 或 false。可用关键词 代替 ∈符号。false(2.2.3)(2.2.4)truefalse(2.2.5)(2.2.6)方括号可以用来获取集合中的元素,但这种操作有一定的限制。其它的命令例如remove 和 select。如果需要顺序,或者将集合转换为列表。选择元素序列使用相同的选择符号:示提取集合 s 中第 个元素。例子:选择 S1 中第一个和第三个元素。 和 都表ax(2.2.7)(2.2.8)Maple 的类型检查函数。 命令 whattype 返回 Maple 类型,命令type 实现类型检查。 settrue(2.2.9)(2.2.10)提示:类型检查在Maple程序编程中非常有用。列表操作步骤列表是有序的表达式序列,用一对方括号[ ] 括起来。列表的顺序与表达式的序列相同。与集合不同的是,重复的项在列表中得到保留。[ ] 表示一个空列表。可以用方括号封装序列创建列表。例子:结果(2.3.1)(2.3.2)(2.3.3)从列表 s 创建一个列表。(2.3.2)(2.3.3)列表中的元素可以是任意表达式,甚至是其他列表。Maple 中一个特殊的内嵌列表,listlist,它内部的列表有相同数量的元素。(2.3.4)(2.3.5)listtruefalse选择元素列表与序列和集合的选择符号相同: 和 都表达提取列表 s 中第 个元素。(2.3.6)(2.3.7)(2.3.8)(2.3.9)z(2.3.10)(2.3.11)b(2.3.12)可以用组合使用选择操作提取内嵌列表中的元素。选择部分列表使用 定义索引值的范围,选择列表中一定范围的元素。范围的端点可以空白,表达式“从开始”或“到结尾”。(2.3.13)(2.3.14)(2.3.15)测试列表成员关系例子:使用命令 member 测试列表成员关系。可以发现列表中元素的位置。如果 true(2.3.16)(2.3.17)(2.3.16)member 返回 true,并且调用格式中使用了第三个参数,这里是 'i',元素在列表中的位置将被赋值给参数 i。true2(2.3.17)(2.3.18)op 和 nops 命令命令 op 的功能是从任意的Maple数据结构中提取元素,包括列表。特别当修改已有的列表时非常有用。命令 nops 返回算子的数量。例子:从列表 L1 提取所有的元素。求 L1 中元素的数目。4(2.3.19)(2.3.20)(2.3.21)连接列表使用命令 op 提取单个列表中提取表达式序列,连接两个列表创建一个新的列表。(2.3.22)(2.3.23)(2.3.24)(2.3.25)添加元素到列表用相同的方法添加元素到列表。替换列表中的元素分配一个新的值到那个位置,替换列表中原来的元素。(2.3.26)如果列表有重复的元素,可用命令 eval 替换所有的相同元素。例子:用 \"A\" 替换列表 L4 中的所有 \"a\"。(2.3.27)(2.3.28)(2.3.29)(2.3.30)(2.3.28)(2.3.29)(2.3.30)列表排序命令 sort 按照升序排列数值列表中的元素。(2.3.31)应用函数到集合或列表中的元素操作步骤使用 map 或 zip 命令,将一个函数或程序作用到集合或列表中的元素。(2.4.1)(2.4.2)例子:应用 sin 到 S1 中所有的元素。(2.4.3)对 S1 中所有的元素求平方。结果(2.4.4)使用命令 zip,将关于两个变量的函数 f(x,y) 作用到两个列表中的元素。使用格式是 zip(f, list1, list2).例子:A1 和 A2 中的元素相乘。(2.4.5)求 A1 和 A2 的成对公约数。求整数最大公约数的命令是 igcd。(2.4.6)(2.4.7)使用 for 循环也可以使用条件语句 for ... do ... 完成重复操作,结果会显示在屏幕上。(2.4.7)for 循环可作用在整个序列上。(2.4.8)(2.4.9)0提示:Maple 的内置命令,例如 map 和zip,的计算效率要比 for 循环更快。更多信息,请参考 efficiency。(2.4.10)提示:条件语句的更多信息和范例,请参阅用户手册中的 do 部分。数组,矩阵,向量
数组、矩阵、向量在Maple中表示为相同的结构,rtable,存储为可变密度数组。当需要改版参数时,使用数组或其他基于 rtable 的数据结构。
关于矩阵或向量的介绍见教程 5-WorkingWithMatrices。本段落的剩余部分会使用数组操作。
操作步骤定义一个数组。例子:用一列项定义一个数组。结果(2.5.1)例子:用 1 到 9 的值定义一个 3 x 3 矩阵。调用格式是 Array(rows, columns, entries),这里行和列用范围给出,元素项通过内嵌列表给出。(2.5.2)索引和动态增加的数组提取项例子: 从 A1 中提取一个项。提取 A2 中第二行第一列的项。1.24(2.5.3)(2.5.4)使用 [] 或 () 括号提取项。 1.2前面已经介绍了使用第一种方法对其他数据结构进行索引选择,例如列表。第二种方法,(),仅适用于 rtable,称之为programmer indexing。Programmer indexing 常用于更灵活和强大的索引。例如,可以通过分配新的元素到数组,增加数组的初始范围。动态增加数组(2.5.7)例子:使用 () 括号增加数组。(2.5.8)(2.5.5)(2.5.6)(2.5.7)(2.5.8)关于索引的更多信息,请参阅rtable_indexing。使用一个初始化函数创建数组使用一个用于填充项的函数,创建一个数组或矩阵。例子:使用函数 5 的矩阵。 定义一个 5 × 首先使用表达式面板中的函数模板 。使用 [Tab] 键在占位符之间切换,用近似值替换所有的占位符。然后给出行和列的范围,以及初始函数名,从而定义一个数组。矩阵矩阵是元素的长方形数组,以行和列显示。例:使用矩阵面板创建一个矩阵,手工填入数值,或选择选择矩阵类型为随机值。你也可使用 Matrix() 命令创建矩阵。 例:看右边的例子。使用索引获取其中的元素。例:使用索引提取 中第一行第三列的元素,并赋值给一个变量名。例:使用索引提取第一个和第二个元素。 第一行中的8(2.5.9)(2.5.10)(2.5.11)(2.5.12)(2.5.13)向量向量看起来像列表,但是它们是两个不同的数据类型。例:从矩阵面板中创建一个向量,设置矩阵维数为 1。例:使用 Vector 命令定义一个向量。(2.5.15)(2.5.14)方括号索引符号可用来提取元素。例:获取序列中的第三项。99(2.5.16)表如果你想用一个对象而不是一个数对数据索引,可以用表。例如,使用表存储关联对。操作步骤定义一个关联对的表:结果(2.6.1)项用索引用 a, b, 和 c。 (2.6.2)(2.6.3)(2.6.4)K(2.6.5)(2.6.6)使用命令 eval,查看表中的所有项。Maple 的 Introductory Programming Guide 有更多数据结构的介绍。
模块是一种编程结构,让你关联相关的数据和程序。大部分Maple程序包是用模块实现的。Maple 的 Advanced Programming Guide 有跟多关于模块的介绍。相关帮助Array, list, map, seq详细信息见“Maple数据结构和表达式操作”教程。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务