1、数学建模基础数学建模基础前前 言言一、开设数学建模课程的背景一、开设数学建模课程的背景1.开设数学建模开设数学建模是数学教育改革的必然是数学教育改革的必然 现在请各位同学回答下列两个问题:(1)数学重要吗,为什么?(2)数学有用吗?请举出一些用数学知识解决实际问题的例子。对于第一个问题,大家一定会毫不犹豫地回答:数学是非常重要的。至于理由我猜测应该是:从小学、初中到高中、大学,从小升初、中考到高考、考研,数学历来是必考科目,而且在总分中所占的比重相当高。在大学阶段,许多专业的学生都至少要学习高等数学、线性代数、概率统计三门课程,历时一年半,17个学分。事实上,现在的大学数学教育相当不尽如人意。
2、一方面传统数学已演变为数学技术、理论研究和实验研究三足鼎立的现代数学;而另一方面大部分教材、教学内容和教学手段几十年一贯制,过于陈旧,完全没有反映出信息时代数学作为一种技术的新特点,致使学生的科学计算能力和运用数学知识解决实际问题的能力得不到很好的培养。例如,我校工科专业的某些研究生和教师在科研中碰到稍微复杂一点的数学计算问题便束手无策。另外在最近几年的全国大学生数学建模竞赛中,尽管我院大部分参赛选手数学成绩都较好,但他们运用数学知识和数学软件解决实际问题的能力明显不足。因此,数学教育的改革已成了当务之急。为了适应新形势的需要,必须改革现有数学教育模式与内容,增强学生使用计算机与数学软件学习数
3、学和解决实际问题的能力。数学建模课便应运而生了,可以说数学建模是数学教育改革的产物数学建模是数学教育改革的产物。2.开设数学建模开设数学建模是参加竞赛的需要是参加竞赛的需要 我校于2000年首次参加全国大学生数学建模竞赛。由于缺乏指导教师和充足的资金支持、建模活动不普及等原因,我校的数学建模水平与省内同类院校相比相差甚远。一直存在着参赛队少、获奖级别低等问题。据调查,我校数学教师中有不少愿意投身数学建模,但缺乏学习和研究建模的契机;学生中也有一批数学建模爱好者,但平时苦于没有机会接受数学建模知识的系统介绍和培训。安大、安财等建模先进院校的经验表明,开设数学建模选修课是培养指导教师和参赛选手的有
4、效途径。数学建模选修课的开设不仅可以引导教师学习、钻研建模,而且为学生中的建模爱好者提供了接受建模基础学习、培训的机会和场合。3.学分制为学分制为开设数学建模提供了有利条件开设数学建模提供了有利条件 我校从2009级新生开始实行学分制。学分制是以学分为计量单位衡量学生完成学业状况的一种弹性的教学管理制度。学分制的核心和基础是选课制,选课制允许学生在一定范围内自主选择课程、教师、授课时间、修读方式和学习进程。学分制的实行给数学建模选修课的开设提供了极为有利的条件。在全校开设数学建模选修课,为学生中的建模爱好者提供了接受建模基础学习、培训的机会和场合,有助于数学建模活动的普及,可在一定程度上改变我
5、校在数学建模竞赛上的落后状况。二、课程简介二、课程简介1.课程主要内容与授课方式课程主要内容与授课方式 考虑到选修本门课程的大多为非数学专业的学生,他们选修本门课程的主要目的不是学习数学,而是想通过本门课程的学习提高应用数学知识和数学软件解决实际问题的能力。因此,除了少数数学理论问题之外,本门课程重点介绍如何用数学数学软件求解典型数学模型。内容包括:常用数学软件介绍,重点介绍Maple和Lingo;初等模型、微分方程模型、运筹与优化模型、数据处理与统计分析、随机模拟、图论与网络模型等。由于公选课特别是数学建模不太适宜指定教科书,所以数学建模课程拟采用学生自学、学生教师课下讨论与教师课堂讲解相结
6、合的授课方式。首先由学生按教师要求对下次授课内容进行自学,对于疑难问题可通过适当方式与教师进行讨论、交流,然后教师在课堂上对本次授课内容进行讲解、总结,布置作业。2.上机练习、数学软件的使用与编程上机练习、数学软件的使用与编程 数学建模是实践性特别强的课程,与高等数学等课程有很大的不同。数学建模课程中的几乎所有问题都要借助数学软件上机完成。希望同学们对数学建模课堂中所讲例题以及课后练习一定要动手上机演练,这样才能有所收获。在数学建模中,能否熟练运用相关软件往往比熟知数学知识更重要。因为对于许多问题而言选定数学方法并不太难,而能否用相关软件得出正确结果往往是能否解决问题的关键。训练学生比较熟练地
7、掌握各类相关数学软件是数学建模课程的重要内容之一。在充分利用现有软件的同时,我们提倡适当地自己动手编程,因为 Matlab、Maple和Lingo等软件功能的确强大,但它们也不是万能的。首先,对于某些问题,这些工具软件有都求不出正确解的情况。其次不能保证对任何问题都有现成的工具软件,实际上,许多现代计算方法都不可能编制成通用软件。即使使用数学软件时也需要编程将软件的各功能相联结。在一些大型计算中,可能要求计算是“实时计算”,即计算从前一计算环节获取参数,计算结果后立即传送给后一计算环节,所有计算都是在内存中进行的。显然,现成的工具软件对此无能为力。熟练使用相关科技软件、具有一定的编程水平是理工
8、科学生所必须具有的素养,从某种程度上讲,后者更能反映出个人的能力,而编程经验和水平不是凭一朝一夕就可以提高的,要靠大量的编程实践和不断地日积月累。考虑到学生的实际情况,本课程主要要求学生掌握 1,2 种常用数学软件的基本功能,对编程无过多要求。三、学习数学建模应注意的几个问题三、学习数学建模应注意的几个问题 随着高等教育的普及化,高等学校的学生和教师的质量不可避免地有了一定程度的下降。许多大学生知识面狭窄、自学能力差、计算机应用能力和科技论文写作能力不强。在学习数学建模课程时要注意以下几个方面的问题:1.借助于数学建模课程学习尽可能多的应用数学知识和方法,特别是一些现代数学方法。2.在数学建模
9、中着力提高各种动手能力,包括计算能力、编程能力、计算机软件应用能力、科技论文的写作与编辑能力等。3.数学建模课程属于拓宽性的、启发性的、难度较大的课程,学好这门课不仅要有浓厚的兴趣,还要有较强的自学能力和不怕困难的毅力。我们有理由相信,只要你有兴趣、花功夫、不怕难,通过数学建模课程的学习,就一定能拓展知识面,提高应用数学和计算机解决实际问题的能力。最后要说明的是,今年数学建模是首次做为全校公共选修课,面向来自不同专业、学习心态各异的学生,我们缺乏足够的经验。前面提到的一些设想可能只是我们的一厢情愿,不一定得以实现。如果各位能从课堂上学到一点点有用的东西,或者能从课下我们的交流中获得一丝有益的启
10、示,我认为这门课就没有完全失败。四、参考书目四、参考书目 赵静,但琦.数学建模与数学实验(第3版),高等教育出版社,2008;何青,王丽芬.Maple教程,科学出版社,2006;谢金星,薛毅.优化建模与Lingo软件,清华大学出版社,2005;周建兴等.Matlab从入门到精通,人民邮电出版社,2009;数学建模,Matlab,Maple,Lingo电子版资料。邮箱: MM:matlabmaple数学软件数学软件Maple简介简介一、常用数学软件介绍一、常用数学软件介绍 目前在科学研究与工程计算中常用的数学软件约30余个,可分为通用与专用两大类。专用软件主要是为解决数学中某个分支的特殊问题而设
11、计的。常用的专用软件有:1.SAS和SPSS(统计分析);2.Lindo、Lingo和CPLEX(运筹与优化计算);3.Cayley和GAP(群论研究);4.PARI(数论研究);5.Origin(科技绘图与数据分析);6.DELiA(微分方程分析);7.ANSYS(有限元计算)。通用软件一般可以求解数学许多分支中的大部分问题。通用软件又可分为数值计算型与解析计算型。常用的通用型数值计算软件有:Matlab、Xmath、Gauss、MLAB等。常用的通用型解析计算软件有:Maple、Mathematica、Macsyma、Axiom和Reduce等。Matlab、Mathematica、Map
12、le与另一个面向大众的普及型数学软件Mathcad并称数学软件中的“四大天王”。Matlab意思为“矩阵实验室”,是美国计算机科学家Cleve Moler在70年代末开发出的以矩阵数值计算为主的数学软件,如今已发展成为融科技计算、图形可视化与程序语言为一体的功能强大的通用数学软件。Matlab最突出的特点是其带有一系列的“工具包”,可广泛应用于自动控制、信号处理、数据分析、通讯系统和动态仿真等领域。高版本的Matlab也可进行符号计符号计算,不过它的代数运算系统是从解析计算软件Maple移植而来。目前,Matlab的最高版本为R2010b(3.69G)。Mathematica是美国物理学家St
13、ephen Wolfram开发的第一个将符号计算、数值计算和图形显示很好地结合在一起的数学软件,在国内较为流行,拥有广泛的用户。它的最大优点是带有图形用户接口的计算机上Mathematica支持一个专用的Notebook接口。通过 Notebook 接口,可以显示输出结果、图形、动画和声音等。Mathematica的另一个特点是它可以和C、Excel、Word等相互调用。Mathcad是MathSoft公司在80年代开发的一个交互式数学文字软件,与 Matlab 和Mathematica不同的是,该软件的市场定位是:向广大教师、学生、工程技术人员提供一个兼备文字、数学和图形处理能力的集集成工作
14、环境,而并不致力于复杂的数值计算与符号计算问题,具有面向大众普及的特点。不过,现在 Mathcad 的计算能力已远超出了其早期的设计目标。SPSS(社会科学统计软件包)是世界著名的统计分析软件之一。SPSS 的基本功能包括数据管理、统计分析、图表分析、输出管理等。其过程包括描述性统计、均值比较、一般线性模型、相关分析、回归分析、聚类分析、生存分析、时间序列分析等。SPSS中还有专门的绘图系统,可以根据数据绘制各种图形。Origin 是与 Sigma Plot和Axum齐名的科技绘图和数据处理软件。Origin 除了可以很方便地画出各种二维和三维图形外,它的最突出的功能是曲线拟合。它不仅可以用内
15、置的上百种函数很方便地进行曲线拟合,而且可以根据用户的需要添加线型。Lindo是美国芝加哥大学的 Schrage教授开发的专门用于求解数学规划的专用软件包,版权现归属于美国Lindo系统公司。Lindo包含Lindo、Gino、Lingo、Lingo NL和“Whats Best”等多个组件,这些组件统称为Lindo,其中Lindo和Lingo最为常用。Lindo 可求解线性规划、整数规划和二次规划;Lingo除了可以求解线性规划、整数规划和二次规划外,还可以求解非线性规划和线性、非线性方程组。除此之外,Lingo还包含了内置的建模语言和一些常用的数学函数,可以简便、直观地描述大规模优化问题。
16、Lingo 有多种版本,如学生版、演示版、高级版、发行版、工业版等,其主要区别在于对优化规模(变量和约束个数)有不同的限制。Maple是加拿大Waterloo大学符号计算研究小组于80年代初开始研发,1985年才面世的计算机代数软件,起初并不为人们所注意。但Maple V release 2于1992年面世后,人们发现它是一个功能强大、界面友好的计算机代数系统。随着版本的不断更新,Maple已日益得到广泛的承认和欢迎,用户越来越多,声誉越来越高。从1995年二、二、Maple简介简介以后,Maple 一直在IEEE的数学软件评比中居符号计算软件的第1名。目前,Maple的最高版本为Maple
17、V release 14.01。Maple是一个开放的计算机代数系统,主要由用户界面、代数运算器和外部函数库三部分组成。用户界面负责输入数学表达式的初步处理、运算结果和图像的显示等。代数运算器进行输入的编译及基本的代数运算。外部函数库中包括数千个数学函数和过程,几乎涵盖了数学的所有分支 Maple支持函数、序列、集合、列表、数组、表等多种数据结构。用户可以查看其非内部函数的源程序,也可以将自己编和函数、过程添加到函数库中或建立自己的函数库。Maple 的一个突出特点是界面非常友好。它有一个非常好的帮助系统,可以很方便地查找函数和命令的用法。总之,Maple是一个功能强大、容易掌握、不断发展的数
18、学解析软件。有了良好的数学基础加上Maple就能使你如虎添翼,有能力和信心去解决各种各样的数学计算问题。第一章第一章 Maple初步初步 1.1 Maple 的安装与启动的安装与启动 不同版本Maple的安装过程略有不同,有的版本需要序列号。Maple的工作环境是典型的windows界面,下面给出Maple7(序列号1210)的经典界面和Maple14的新界面。1.2 Maple 命令的输入与显示命令的输入与显示 1.命令提示符;大小写敏感。2.Maple命令以;或:结尾,以;结尾显示结果,而以:结尾则不显示结果。3.Maple的赋值号为:=。4.光标放在命令行的任意位置,然后回车即可运行此命
19、令;在书写命令时如需换行,须按Shift+回车。1.3 Maple 的数值与解析计算的数值与解析计算 Maple可进行无误差的符号计算和高精度的数值计算。例如,100!,Pi,sqrt(2),sin(3)。1.4 Maple 的图形显示的图形显示1.一般函数做图p l o t(f(x),x=a.b,o p t i o n);plot3d(f(x,y),x=a.b,y=c.d,option);2.极坐标做图plot(sin(3*x),x,x=-2*Pi.2*Pi,cords=polor);3.隐函数做图implicitplot(表达式,x=a.b,y=c.d);with(plots);impli
20、ciplot(y=sin(x+y),x=1.20,y=-1.1);4.参数方程做图plot(cos(t),sin(t),t=0.2*Pi);5.同一坐标系中做多图方法1:plot(f1(x),fn(x),x=a.b);plot(x3-6*x+2,3*x2-6,x=-5.5):切勿与参数方程做图混淆.方法2:F1:=plot():F2:=plot():Fn:=plot():Display(F1,Fn);with(plots):F:=plot(cos(x),sin(x),x=0.2*Pi):G:=plot(cos(x),sin(x),x=-2*Pi.2*Pi):display(F,G):1.5 M
21、aple 的微积分计算的微积分计算1.解方程solve(f(x),x);求解析解fsolve(f(x),x);求全部实数数值解fsolve(f(x),x,complex);求全部复数数值解2.求极限limit(tan(x)-sin(x)/x3,x=0);limit(sqrt(x2+x)-sqrt(x2-x),x=infinity);3.求导数diff(x/(1+x)x,x);diff(sin(x),x$2);diff(ln(tan(x/y),x,y);simplify(diff(ln(tan(x/y),x,y);implicitdiff(y=sin(x+y),y,x);4.求积分int(exp
22、(-x)*cos(x),x);int(sqrt(1+cos(2*x),x=0.Pi);5.解微分方程dsolve(diff(y(x),x)=x+y(x),y(x);dsolve(diff(y(x),x)=x+y(x),y(0)=2,y(x);1.6 Maple 的线性代数计算的线性代数计算1.矩阵转置 transpose(A);2.矩阵取行列式 det(A);3.矩阵加法 evalm(A+B);4.矩阵乘法 evalm(A&*B);5.求特征值 eigenvals(A);6.求特征向量 eigenvects(A);1.7 Maple 的帮助功能的帮助功能 Maple有非常强大、完善的在线帮助功
23、能。Maple可通过Introduction,Topic Search和键盘命令等方式寻求帮助。例如,?interp;?dsolve;1.8 Maple 的函数库的函数库 Maple有数以千计的函数,这些函数被分成四大类:标准库、混合库、专用软件包和共享软件包。1.标准库 标准库分为内部函数、外部函数和惰性函数三类。内部函数在 Maple 的内核中,不能查看其代码。外部函数和惰性函数可以查看其代码。惰性函数主要用来显示函数名。2.混合库 混合库中存放的是不太常用的函数,系统启动时不自动调入内存。需要用时需用命令readlib(函数名)调入。3.专用软件包 Maple 有几十个专用软件包,分别处
24、理不同数学分支问题。专用软件包在使用时要用命令with(软件包名)调入。4.共享库 共享库是由 Maple 爱好者开发的软件包。这些程序用户可上网搜寻。第一次作业第一次作业1.安装Maple软件;2.自学Maple的相关资料(PPT,word,pdf),初步掌握Maple 基本操作。第二章第二章 Maple语言基础语言基础 Maple 是一个可编程的数学环境。本章介绍 Maple 的符号集、语句、表达式、基本数据类型以及基本的程序语言。2.1 标识符与变量名标识符与变量名2.1.1 标识符标识符 标识符是语言的基本元素。Maple 的标识符由26个大小写字母、10个数字字符以及一些特殊符号组成
25、(P49)。2.1.2 变量名变量名 变量名的第一个符号必须是字母,后面可以跟字母、数字、下划线。Maple 中的关键词是系统内部使用的字符串,不能作为变量名。另外,内部函数名也不能作为变量名。2.2 语句和表达式语句和表达式2.2.1 语句类型语句类型 1.赋值语句 变量名:=表达式注:初学者最容易犯的错误是将赋值号“:=”误写为“=”。2.条件语句 if 条件 then 语句组 fi if 条件 then 语句组 else 语句组 fi if 条件 then 语句组 elif 条件 then 语句组 fi if 条件 then 语句组 elif 条件 then 语句组 else 语句组 f
26、i 3.循环语句 for 循环变量名 from 初值 by 步长 to 终值 do 语句组 od 考察下列程序中的循环和条件语句。restart:n:=10000:count:=0:for i from 1 to n do r1:=rand(0.1):r2:=rand(0.1):if r1()=1 or r2()=1 then count:=count+1:fi:od:prizeA:=1000*evalf(count/n);2.2.2 表达式表达式 Maple的表达式由常数、变量、函数、运算符和括号等组成。例如,1.序列、列表、集合;(第五章)2.特别运算符:复合、自复合、取模mod。例如,(
27、sinln)(x)结果为sin(ln(x);(ln2)(x)结果为ln(ln(x);10 mod 3结果为1。考察下列程序中的复合运算。restart:f:=x-x3-3*x-1:plot(f(x),x=-3.3);fsolve(f(x);x:=-4:n:=9:g:=x-x-(x3-3*x-1)/(3*x2-3):for i from 1 to n do x:=evalf(gi)(x):od;3.布尔表达式和逻辑运算 Maple中的关系运算符为,=,=,;逻辑运算符为and,or,not。“表达式 关系运算符 表达式”称为关系式,其值为true或false。由关系式、逻辑运算符和括号组成的表达
28、式称为布尔表达式。例如,a:=1;b:=2;c:=3;ab,cb;false,true ab and cb false 考察第38张幻灯片程序中的逻辑表达式。4.过程与函数(第五章)2.3 类型与判别类型与判别 Maple 具有丰富的表达式、函数和数据类型,以适应不同数学领域和用户的要求。看一个表达式是什么类型,除凭经验外,还可用命令 type对变量类型进行判别,用命令 whattype对表达式类型进行询问。2.3.1 判别类型命令判别类型命令 函数type(表达式,类型)判别此表达式是否属于该类型。属于时函数值为1,否则为0。例如,type(5,float)的值为false。Maple中所有
29、的表达式类型见P57。2.3.2 类型询问类型询问 函数whattype(表达式)返回表达式的基本数据类型。Maple中的基本数据类型见P57。例如,whattype(x-y)的值为+,whattype(xy)的值为。2.4 基本数据类型基本数据类型 本节介绍一些常用基本数据类型:整数(integer),分数(fraction),浮点数(float),常数(constant),函数(functions),复数(complex),代数数(algebraic number)。下一章将进一步介绍常用复合数据类型。2.4.1 整数、分数整数、分数 Maple可以计算和表示的最大整数长度为219-1=5
30、24279位。常用的整数运算函数见P58。Maple的分数计算是符号计算,Maple在处理含有分数的表达式时,自动地对分数进行约分,将分母表示成正整数。2.4.2 浮点数、符号常数浮点数、符号常数 浮点数通常指带有小数的数,它的运算不属于符号运算。1.浮点数有常规和指数两种表示法。例如,314.5和3.145e2。2.可用命令evalf(表达式,精度)求表达式的浮点数。例如,evalf(22/7,20)。3.Maple 默认的浮点精度为10,可用命令“Digits:=精度”进行重新设置。例如,Digits:=40;evalf(22/7);Maple对数学中的重要常数做了特殊定义。注:Maple
31、各版本中的定义略有不同。2.4.3 复数、代数数复数、代数数 Maple用I代表虚数单位,如1+3*I。复数的常用运算有Re(取实部)、Im(取虚部)、argument(求幅角)、conjugate(求共轭)。代数数是指有理多项式方程的根。代数数的计算是符号计算。2.5 Maple的程序语言的程序语言 用本章介绍的语句可以编制出简单的Maple程序。下面给出用数值积分计算 的程序。因为 ,只要计算出右边的积分,即可得到的值。我们分别采用数值分析中的复化梯形公式和复化Simpson公式计算。复化梯形公式:复化Simpson公式:10214dxx11()2()()2nnkkbaTf af xf b
32、n)()(2)(4)(6111021bfxfxfafnabSnkknkknPi:=evalf(Pi,50);a:=0:b:=1:n:=1000:f:=x-4/(1+x2):Pi1:=evalf(b-a)/n*(sum(f(a+i*(b-a)/n),i=1.n-1)+(f(a)+f(b)/2),50);Pi2:=evalf(b-a)/6/n*(f(a)+f(b)+2*sum(f(a+i*(b-a)/n),i=1.n-1)+4*sum(f(a+(i+1/2)*(b-a)/n),i=0.n-1),50);1.在同一坐标系中作出 和它的Taylor展式前 项构成的多项式图象。对不同的 ,观察多项式逼近
33、 的情形,并通过计算证明 的Taylor级数收敛于 。2.对不同的n,画出 在 上的图象。通过观察图像猜测当时,这个函数趋向于什么函数,并证明之。xycosxycosxycosxycosnnnkkkxky1112)12cos()1(45,5n第三章第三章 Maple的复合数据类型的复合数据类型 本章进一步介绍 Maple 语言的数据结构,包括常用的复合数据类型、函数的定义方法和函数的运算。最后介绍复合数据的三个重要命令:代换(subs),映射(map)和转换(convert)。3.1 序列、集合、列表序列、集合、列表 序列、集合和列表是三种最常用的复合型数据类型。本节介绍它们的使用和相互转换方
34、法。3.1.1 序列序列(sequence)形如下列类型的数据称为序列。表达式1,表达式2,表达式n 例如,1,2,3和x,y,z均为序列。1.序列是 Maple 中的一种基本数据结构,可用于函数、集合、列表等语句中。例如,f(1,2,3)(三元函数),x,y,z(集合),a,b,c(列表)。2.两个序列可用逗号连成一个序列。例如,a:=1,2,3;b:=4,5,6;,则语句c:=a,b;产生的序列是1,2,3,4,5,6。3.可用函数seq、$、op生成序列。(1)seq(f(i),i=m.n)生成序列f(m),f(m+1),f(n)。(2)语句“表达式$n”表示将表达式重复n次,即生成序列
35、“表达式,表达式”。例如,a$3生成序列a,a,a。语句“表达式(i)$i=m.n”表示生成序列“表达式(m),表达式(n)”。例如,i2$i=1.4生成序列1,4,9,16。语句“$m.n”等价于语句“i$i=m.n”,即生成序列“m,m+1,n”。例如,$1.4生成序列1,2,3,4。(3)op(列表)生成列表。例如,op(x,y,z)生成列表x,y,z。(4)可用命令“序列名i”提取序列的第i项。例如,s:=1,2,3;s3;的结果是3。(5)连接算子|可将两个序列按一定法则连接,产生一个新序列。若s为一序列,则a|s可以把a缀于s的每一元素前。例如,s:=1,2,3;a|s;生成序列a
36、1,a2,a3。3.1.2 列表列表(list)用一对方括号括起的以逗号分隔的一组Maple对象即序列称为列表。例如,1,2,3即为一列表。(1)列表的元素是有序的,可以重复。例如,1,2和2,1、1,2和1,2,2是不同的列表。(2)可用“列表名i.j”提取列表的第i到第j个元素。例如,L:=$1.10:L5;L1.3;的结果分别为5和1,2,3。(3)op(L)表示提取列表的所有操作数即元素,亦即将列表转换为序列。(4)nops(L)表示求列表中元素的个数即列表的长度。例如,L:=1,2,3,4:nops(L)结果为4。(5)op(L),x 表示在列表后面附加一个元素x;subsop(i=
37、x,L)表示将列表L中的第i个元素换成x;subsop(i=NULL,L)表示消去列表L中的第i个元素。3.1.3 集合集合(set)用一对花括号括起的以逗号分隔的一组Maple对象即序列称为集合。例如,x,y,z即为一集合。(1)列表的元素是无序的。元素可以重复,但运行后重复的元素只保留一个。例如,1,2和2,1、1,2和1,2,2是相同的集合。(2)可用“集合名i.j”提取集合的第i到第j个元素。(3)可用命令op(S)、op(S)将集合S分别转换为序列和列表,但在转换时去除重复元素。(4)集合的运算有union(并)、intersect(交)、minus(差)、member(成员判别)。