常用数学软件及其应用.ppt

上传人:本田雅阁 文档编号:2116784 上传时间:2019-02-18 格式:PPT 页数:75 大小:310.01KB
返回 下载 相关 举报
常用数学软件及其应用.ppt_第1页
第1页 / 共75页
常用数学软件及其应用.ppt_第2页
第2页 / 共75页
常用数学软件及其应用.ppt_第3页
第3页 / 共75页
亲,该文档总共75页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《常用数学软件及其应用.ppt》由会员分享,可在线阅读,更多相关《常用数学软件及其应用.ppt(75页珍藏版)》请在三一文库上搜索。

1、常用数学软件简介,Maple在若干领域内的应用,第一部分 常用数学软件,目前在科学研究与工程计算中常用的数学软件约30余个,可分为通用与专用两大类。 专用软件主要是为解决数学中某个分支的特殊问题而设计的。 常用的专用软件有: 1. SAS和SPSS(统计分析); 2. Lindo、Lingo和CPLEX(运筹与优化计算);,3. Cayley和GAP(群论研究); 4. PARI(数论研究); 5. Origin (科技绘图与数据分析); 6. DELiA (微分方程分析) ; 7. ANSYS(有限元计算)。 通用软件一般可以求解数学许多分支中的大部分问题。通用软件又可分为数值计算型与解析计

2、算型。,常用的通用型数值计算软件有: Matlab、Xmath、Gauss、MLAB等。 常用的通用型解析计算软件有: Maple、Mathematica、Macsyma、 Axiom和Reduce等。 Matlab、Mathematica、Maple与另一个面向大众的普及型数学软件Mathcad并称数学软件中的“四大天王”。,Matlab意思为“矩阵实验室”,是美国计算机科学家Cleve Moler在70年代末开发出的以矩阵数值计算为主的数学软件,如今已发展成为融科技计算、图形可视化与程序语言为一体的功能强大的通用数学软件。Matlab最突出的特点是其带有一系列的“工具包”,可广泛应用于自动

3、控制、信号处理、数据分析、通讯系统和动态仿真等领域。高版本的Matlab也可进行符号计,符号计算,不过它的代数运算系统是从解析计算软件Maple移植而来。目前, Matlab的最高版本为7.2。 Mathematica是美国物理学家Stephen Wolfram开发的第一个将符号计算、数值计算和图形显示很好地结合在一起的数学软件,在国内较为流行,拥有广泛的用户。它的最大优点是带有图形用户接口的计算机上Mathematica支持一个专用的Notebook,接口。通过 Notebook 接口,可以显示输出结果、图形、动画和声音等。 Mathematica的另一个特点是它可以和C、Excel、Wor

4、d等相互调用。 Mathcad是MathSoft公司在80年代开发的一个交互式数学文字软件,与 Matlab 和Mathematica不同的是,该软件的市场定位是:向广大教师、学生、工程技术人员提供一个兼备文字、 数学和图形处理能力的集,集成工作环境,而并不致力于复杂的数值计算与符号计算问题,具有面向大众普及的特点。不过,现在 Mathcad 的计算能力已远超出了其早期的设计目标。 SPSS(社会科学统计软件包)是世界著名的统计分析软件之一。 SPSS 的基本功能包括数据管理、统计分析、图表分析、输出管理等。其过程包括描述性统计、均值比较、一般线性模型、相关分析、回归,分析、聚类分析、生存分析

5、、时间序列分析等。SPSS中还有专门的绘图系统,可以根据数据绘制各种图形。 Origin 是与 Sigma Plot和Axum齐名的科技绘图和数据处理软件。 Origin 除了可以很方便地画出各种二维和三维图形外, 它的最突出的功能是曲线拟合。它不仅可以用内置的上百种函数很方便地进行曲线拟合,而且可以根据用户的需要添加线型。,Lindo是美国芝加哥大学的 Schrage教授开发的专门用于求解数学规划的专用软件包,版权现归属于美国Lindo系统公司。Lindo包含Lindo、Gino、Lingo、Lingo NL和“Whats Best”等多个组件,这些组件统称为Lindo,其中Lindo和Li

6、ngo最为常用。 Lindo 可求解线性规划、整数规划和二次规划;Lingo除了可以求解线性规划、 整数规划和二次规划外,还可以求解非线,性规划和线性、非线性方程组。除此之外, Lingo还包含了内置的建模语言和一些常用的数学函数,可以简便、直观地描述大规模优化问题。 Lingo 有多种版本,如学生版、演示版、高级版、发行版、工业版等,其主要区别在于对优化规模 (变量和约束个数) 有不同的限制。,第二部分 Maple及应用,Maple是加拿大Waterloo大学符号计算研究小组于80年代初开始研发,1985年才面世的计算机代数软件,起初并不为人们所注意,但Maple V release 2于1

7、992年面世后,人们发现它是一个功能强大、界面友好的计算机代数系统。随着版本的不断更新,Maple已日益得到广泛的承认和欢迎,用户越来越多,声誉越来越高,从1995年以后,Maple一直在IEEE的数学软件评比,中居符号计算软件的第一名。目前,Maple的最高版本为Maple V release 11.2。 Maple是一个对大众公开的计算机代数系统,主要由三部分组成: 用户界面、代数运算器和外部函数库。用户界面负责输入数学表达式的初步处理、运算结果和图像的显示等。代数运算器进行输入的编译及基本的代数运算。外部函数库中包括数千个数学函数和过程,几乎涵盖了数学中的,所有分支。 Maple支持函数

8、、序列、集合、列表、数组、表等多种数据结构。 用户可以查看Maple的非内部函数的源程序,也可以将自己编和函数、过程添加到Maple的函数库中或建立自己的函数库。 Maple的一个突出特点是它的界面非常友好。它有一个非常好的帮助系统,可以很方便地查找函数和 命令的用法。,总之,Maple是一个功能强大、容易掌握、不断发展的数学解析软件。有了良好的数学基础加上Maple就能使你如虎添翼,有能力和信心去解决各种各样的数学计算 问题。,1. Maple在核磁共振研究中的应用 弛豫的计算是核磁共振中非常重要的工作。长期以来,由于计算方法、计算软件和计算工具所限,许多学者在计算弛豫时都做了不同程度的简化

9、,这就使得计算结果不够精细,缺乏说服力。 本人根据核磁共振弛豫理论和相关数学知识提出了“改进的矩阵计算方法”。应用此方法,借助于Maple 软件,本人计算,出了多种重要核磁共振体系完整的弛豫方程组,已发表相关论文十余篇,其中五篇被 SCI 检索,并被中国、印度和美国多名学者引用。 上述计算是极为复杂的,不借助功能强大的解析计算软件和高档的计算机是难以完成的。,2. Maple在溅射物理研究中的应用 我校张竹林老师是研究溅射物理的国际知名专家。张老师在与俄罗斯物理学家Glazov 论战时需要用到大量复杂的解析计算和高精度的数值计算。张老师和我共同指导张莱 (张老师之子,本人的研究生) 应用 Pa

10、d 逼近和 Maple,分别用解析和数值两种方法,计算了动量和能量淀积空间分分布,从而证明了Glazov推导出的方程是,不正确的。所得结果被美国权威学者称为张公式,研究成果被中科院、清华大学、复旦大学五位学者鉴定为国际领先水平,并已在Physical Review B、Radiation Effects and Defects in Solids等国际知名期 刊上发表。 本工作中的数据高达600位小数,由最新版的Maple和高档计算机完成。,3. Maple在石油测井研究中的应用 核磁共振在石油勘探测井中有着非常重要的应用。本人与中石油科学技术研究院测井研究所合作了一个项目球管孔隙模型的弛豫机

11、制及核磁实验数据研究。 项目内容为 : 1. 油水两相球管孔隙模型的弛豫机制理论研究,要求给出 Bloch 方程完整的求解过程;,2. 应用化学位移及油气扩散识别孔隙结构和油气的方法研究,须考虑分子键共振频率与核磁共振频率之间的关系,并提供可供编程的算法; 3. 根据对甲方提供的实验数据,提出油水弛豫信号的分离方法,要求提供可供编程的算法; 4. 根据甲方提供的实验数据,进行 N OE识别岩石孔隙结构和流体应用方法的探,探索性研究,并提供可行的实验方案。 项目中的第一和第二个工作已完成,其中第一个工作现已被用于现场测井,并取得了较好的效果。 本项目除了需要一定的专业背景和数学知识外,较高的计算

12、技能和先进的计算软件起到了至关重要的作用。 本项目中所有的解析计算和数值模拟均由Maple完成。,4. Maple在研究生数学建模中的应用 本人在2006和2007年分别指导我校研究生参加了全国第三、第四届研究生数学建模。竞赛论文“确定高精度参数问题” (2 006)和“六纬度机械臂运动路径设计问题” (2007)分别获得三等奖和二等奖。 竞赛中所采用的计算软件为Matlab和Maple。,今年建模中我校采用的方法是其它获奖队所没有采用的,而且是仿真做得最好的一个队。在颁奖大会上,出题人华中科技大学的王以治教授特别提到这一点 。 注:本来安徽理工大学获得的是一等奖,但由于某些技术原因,最后调整

13、为二等奖,可惜!,5. Maple在其它方面的应用 Maple软件还被用于解决我校教师和学生在科研和学生中遇到的各类计算问题。例如,“空间巷道最短距离的计算”(新集三矿工程硕士)、“高性能混凝土的强度与渗透性的关系” (张集矿)、“齿轮间面积的计算”、“超越方程的求解”(机械学院)、“微分方程的求解”(化工学院)、“实习经费的合理 分配”(财务处)等。,最后,需要指出的是,尽管数学软件功能强大,但它毕竟只是一种纯粹的计算工具,只有将其应用于有意义的实际问题才能体现出它的价值。 另外,数学软件不是万能的。再好的数学软件也有局限性。例如, Maple存在着占用内存大、计算时间长、数值计算速度较慢、

14、部分数学领域问题未涉及等问题。,第一次作业,1、安装Maple、Lingo、Origin、Matlab; 2、浏览上述软件的相关资料; 3、自学范红兵著数学软件Maple 及其应用,初步掌握Maple 基本操作; 4、给出 “导弹追踪问题” 的数学模型,用Maple求出模型的解析解与数学解,并画出导弹的轨迹图。,导弹追踪问题,某导弹基地发现正北方向120km处海面上有敌舰一艘以90km/h的速度向正东方向行驶。该导弹基地立即发射一枚导弹跟踪追击敌舰,导弹速度为450km/h,自动导航系统使导弹在任一时刻都能对准敌舰。 试问导弹在何时何处击中敌舰?,如果发射导弹时,敌舰立即由仪器觉察。假定敌舰为

15、一高速快艇,它即刻以135 km/h 的速度与导弹方向成一夹角逃逸,问导弹何时何地击中敌舰?根据计算结果,你能否指出敌舰与导弹方向成何夹角逃逸 才好? 提示:可假设导弹与敌舰相距足够近时敌 舰即被击中。,第三章 Maple简介,3.1 Maple 的安装与启动 不同版本Maple的安装过程略有不同,有的版本需要序列号。 Maple的工作环境是典型的 windows 界面,下面给出Maple7的经典界面和Maple11的新界面。,3.2 Maple 命令的输入与显示 1、 命令提示符;大小写敏感。 2、Maple命令以;或:结尾,以;结尾显示结果,而以:结尾则不显示结果。 3、Maple的赋值号

16、为:=。 4、光标放在命令行的任意位置,然后回车即可运行此命令;在书写命令时如需换行,须按Shift+回车。,3.3 Maple 的数值与解析计算 Maple可进行无误差的符号计算和高精度的数值计算。例如, 100!, Pi, sqrt(2), sin(3)。 3.4 Maple 的图形显示 1、一般函数做图 plot(f(x),x=ab,option); plot3d(f(x,y),x=ab,y=cd,option);,2、极坐标做图 plot(sin(3*x),x,x=-2*Pi2*Pi,cords=polor); 3、隐函数做图 implicitplot(表达式,x=ab,y=cd);

17、with(plots); impliciplot(y=sin(x+y),x=120,y=-11); 4、参数方程做图 plot(cos(t),sin(t),t=02*Pi);,5、同一坐标系中做多图 方法1: plot(f1(x),fn(x),x=ab); plot(x3-6*x+2,3*x2-6,x=-55): 切勿与参数方程做图混淆. 方法2:F1:=plot(): F2:=plot(): Fn:=plot(): Display(F1,Fn);,with(plots): F:=plot(cos(x),sin(x),x=02*Pi): G:=plot(cos(x),sin(x),x=-2*P

18、i2*Pi): display(F,G): 3.4 Maple 的微积分计算 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); impl

19、icitdiff(y=sin(x+y),y,x); 4、求积分 int(exp(-x)*cos(x),x); int(sqrt(1+cos(2*x),x=0Pi); 5、解微分方程 dsolve(diff(y(x),x)=x+y(x),y(x); dsolve(diff(y(x),x)=x+y(x),y(0)=2,y(x);,3.5 Maple 的帮助功能 Maple有非常强大、完善的在线帮助功能。Maple可通过Introduction, Topic Search和键盘命令等方式寻求帮助。 例如,?inter; ?dsolve;,3.6 Maple 的函数库 Maple有数以千计的函数,这些

20、函数被分成四大类: 标准库、混合库、专用软件包和共享软件包。 1、标准库 标准库分为内部函数、外部函数和惰性函数三类。见P3839。 内部函数在 Maple 的内核中,不能查看其代码。外部函数和惰性函数可以查看,其代码。惰性函数主要用来显示函数名。 2、混合库 混合库中存放的是不太常用的函数,系统启动时不自动调入内存。需要用时需用命令readlib(函数名)调入 。见P39。 3、专用软件包 Maple 有几十个专用软件包,分别处理不同数学分支问题。见P40。,专用软件包在使用时要用命令with(软件包名)调入。 4、共享库 共享库是由 Maple 爱好者开发的软件包。这些程序用户可上网搜寻。

21、,第四章 Maple语言基础,Maple 是一个可编程的数学环境。本章介绍 Maple 的符号集、语句、表达式、基本数据类型以及基本的程序语言。 4.1 标识符与变量名 4.1.1 标识符 标识符是语言的基本元素。 Maple 的,标识符由26个大小写字母、10个数字字符以及一些特殊符号组成(P49)。 4.1.2 变量名 变量名的第一个符号必须是字母,后面可以跟字母、数字、下划线。 Maple 中的关键词是系统内部使用的字符串,不能作为变量名(P50)。另外,内部函数名也不能作为变量名(P38)。,4.2 语句和表达式 4.2.1 语句类型 1、赋值语句 变量名:=表达式 注:初学者最容易犯

22、的错误是将赋值号“:=”误写为“=”。 2、条件语句 if 条件 then 语句组 fi,if 条件 then 语句组 else 语句组 fi if 条件 then 语句组 elif 条件 then 语句组 fi if 条件 then 语句组 elif 条件 then 语句组 else 语句组 fi 3、循环语句 for 循环变量名 from 初值 by 步长 to 终值 do 语句组 od,考察下列程序中的循环和条件语句。 restart: n:=10000: count:=0: for i from 1 to n do r1:=rand(01): r2:=rand(01): if r1()

23、=1 or r2()=1 then count:=count+1: fi: od: prizeA:=1000*evalf(count/n);,4.2.2 表达式 Maple的表达式由常数、变量、函数、运算符和括号等组成。例如, 1、序列、列表、集合;(第五章) 2、特别运算符:复合、自复合 、取模mod。例如, (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=-33); fsolve(f(x); x:=-4: n:=9: g:

24、=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。,由关系式、逻辑运算符和括号组成的表达式称为布尔表达式。例如, a:=1; b:=2; c:=3; ab, cb; false, true ab and cb false 考察第38张幻灯片程序中的逻辑表达式。 4、过程与函数 (第五章),4.3 类型与判别 Maple 具有丰富的表达式

25、、函数和数据类型,以适应不同数学领域和用户的要求。看一个表达式是什么类型,除凭经验外,还可用命令 type对变量类型进行判别,用命令 whattype对表达式类型进行询问。 4.3.1 判别类型命令 函数type(表达式, 类型)判别此表达式,是否属于该类型。属于时函数值为1,否则为0。 例如,type(5,float)的值为false。 Maple中所有的表达式类型见P57。 4.3.2 类型询问 函数whattype(表达式)返回表达式的基本数据类型。 Maple中的基本数据类型见P57。,例如,whattype(x-y)的值为+, whattype(xy)的值为。 4.4 基本数据类型

26、本节介绍一些常用基本数据类型:整数(integer), 分数(fraction), 浮点数(float), 常数(constant),函数(functions),复数(complex),代数数(algebraic number)。下一章将进一步 介绍常用复合数据类型。,4.4.1 整数、分数 Maple可以计算和表示的最大整数长度为219-1=524279位。 常用的整数运算函数见P58。 Maple的分数计算是符号计算, Maple在处理含有分数的表达式时,自动地对分数进行约分,将分母表示成正整数。 4.4.2 浮点数、符号常数,浮点数通常指带有小数的数,它的运算不属于符号运算。 1、浮点数

27、有常规和指数两种表示法。 例如,314.5和3.145e2。 2、可用命令evalf(表达式,精度)求表达式的浮点数。 例如,evalf(22/7,20)。 3、Maple默认的浮点精度为10,可用,命令“Digits:=精度”进行重新设置。 例如,Digits:=40; evalf(22/7); Maple对数学中的重要常数做了特殊定义,见P61。 注: Maple各版本中的定义略有不同。 4.4.3 复数、代数数 Maple用I代表虚数单位,如1+3*I。 复数的常用运算有Re(取实部)、 Im(,取虚部)、argument(求幅角)、conjugate(求共轭)。 代数数是指有理多项式方

28、程的根。代数数的计算是符号计算。 4.5 Maple的程序语言 用本章介绍的语句可以编制出简单的Maple程序。 下面给出用数值积分计算 的程序。,因为 ,只要计算出右边的积分,即可得到的值。 我们分别采用数值分析中的复化梯形公式和复化Simpson公式计算。 复化梯形公式 : 复化Simpson公式 :,Pi:=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=1n-1)+(f(a)+f(b)/2),50); Pi2:=evalf(b-a)/6/n*(f(a)+f

29、(b)+2*sum(f(a+i* (b-a)/n),i=1n-1)+4*sum(f(a+(i+1/2)*(b-a)/n), i=0n-1),50);,1.在同一坐标系中作出 和它的Taylor展式前 项构成的多项式图象。对不同的 ,观察多项式逼近 的情形,并通过计算证明 的Taylor级数收敛于 。 2.对不同的n,画出 在 上的图象。通过观察图像猜测当 时,这个函数趋向于什么函数,并证明之。,第五章 Maple的复合数据类型,本章进一步介绍 Maple 语言的数据结构,包括常用的复合数据类型、函数的定义方法和函数的运算。最后介绍复合数据的三个重要命令:代换(subs),映射(map)和转换(

30、convert)。,5.1 序列、集合、列表 序列、集合和列表是三种最常用的复合型数据类型。本节介绍它们的使用和相互转换方法。 5.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、

31、$、op生成序列。,(1)seq(f(i),i=mn)生成序列f(m),f(m+1), ,f(n)。 (2)语句“表达式$n”表示将表达式重复n次,即生成序列“表达式,表达式”。 例如,a$3生成序列a,a,a。 语句“表达式(i)$i=mn”表示生成序列“表达式(m),表达式(n) ”。 例如,i2$i=14生成序列1,4,9,16。,语句“$mn”等价于语句“i$i=mn”,即生成序列“m,m+1,n ”。 例如,$14生成序列1,2,3,4。 (3)op(列表)生成列表。 例如,op(x,y,z)生成列表x,y,z。 (4)可用命令“序列名i”提取序列的第i项。 例如,s:=1,2,3;

32、 s3; 的结果是3。,(5)连接算子|可将两个序列按一定法则连接,产生一个新序列。若s为一序列,则a|s可以把a缀于s的每一元素前。 例如,s:=1,2,3; a|s;生成序列a1,a2,a3。 5.1.2 列表(list) 用一对方括号括起的以逗号分隔的一组Maple对象即序列称为列表。 例如,1,2,3即为一列表。,(1)列表的元素是有序的,可以重复。 例如,1,2和2,1、1,2和1,2,2是不同的列表。 (2)可用“列表名ij” 提取列表的第i到第j个元素。 例如,L:=$110: L5; L13;的结果分别为5和1,2,3。 (3)op(L)表示提取列表的所有操作数即,元素,亦即将

33、列表转换为序列。 (4)nops(L)表示求列表中元素的个数即列表的长度。 例如,L:=1,2,3,4: nops(L)结果为4。 (5)op(L),x 表示在列表后面附加一个元素x;subsop(i=x,L)表示将列表L中的第i个元素换成x;subsop(i=NULL,L)表示消去列表L中的第i个元素。,5.1.3 集合(set) 用一对花括号括起的以逗号分隔的一组Maple对象即序列称为集合。 例如,x,y,z即为一集合。 (1)列表的元素是无序的。元素可以重复,但运行后重复的元素只保留一个。 例如,1,2和2,1 、1,2和1,2,2是相同的集合。,(2)可用“集合名ij” 提取集合的第i到第j个元素。 (3)可用命令op(S)、op(S) 将集合S分别转换为序列和列表,但在转换时去除重复元素。 (4)集合的运算有union (并)、intersect (交)、minus(差)、member(成员判别)。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1