计算机代数系统课件.pdf
《计算机代数系统课件.pdf》由会员分享,可在线阅读,更多相关《计算机代数系统课件.pdf(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.计算机代数系统2.Matlab3.Mathematica4.统计软件SAS一、计算机代数系统科学计算可分为两类:-类是纯数值的计算,例如求函数的值,方程的数值解;另一类计算是符号计算,又称代数运算,这是一种智能化的计算,处理的是符号.符号可以代表整数,有理数,实数和复数,也可以代表多项式,函数,还可以代表数学结构如集合,群的表示等等.我们在数学的教学和研究中用笔和纸进行的数学运算多为符号运算.我们知道,从计算机发明到现在的50多年时间里,用计算机进行的科学计算主要是数值计算,如天气预报,油藏模拟,航天等领域的大规模数值计算.长期以来,人们一直盼望有一个可以进行符号计算的计算机系统.早在50
2、年代末,人们就开始了研究.进入80年代后,随着计算机的普及和人工智能的发展,用计算机进行代数运算的研究在国外发展非常迅速,涉及的数学领域也在不断地扩大,相继出现了多种功能齐全的计算机代数系统,这些系统可以分为专用系统和通用系统,专用系统主要是为解决物理,数学和其他科学分支的某些计算问题而设计的,专用系统在符号和数据结构上都适用于相应的领域,而且多数是用低级语言写成的,使用方便,计算速度快,在专业问题的研究中起着重要的作用.通用系统具有多种数据结构和丰富的数学函数,应用领域广泛.其中,REDUCE,RERIVE,Mathematica和Maple是用户教为广泛的通用数学软件.最近的计算机代数系统
3、都是用C语言写成的,这种语言为软件开发者提供了编写有效的可移植的计算机程序的平台,所以这种计算机代数系统可以在绝大多数计算机上使用.Mathematica和Maple就是这样的系统.Mathematica是第一个将符号运算,数值计算和图形显示很好地结合在一起的数学软件,用户能够方便地用它进行多种形式的数学处理.Maple是80年代初就开始研制的计算机代数系统,起初并不为人们所注意,但这个软件发展很快.自从1992年MapleVR2出版后,更多的用户就发现它是一个功能强大而且界面友好的计算机代数系统.尽管不同的数学软件之间有较大的差别,但也有一些共同的特点:1.可以进行符号运算,数值计算和图形显
4、示,这是通用数学软件包的三大基本功能.具有高效的可编程功能.2.多数计算机代数系统都是交互式的,人们通过键盘输入命令,计算机计算后显示结果.好的系统都有Windows操作系统下的版本,人机界面友好,命令输入方便灵活,很容易寻求帮助.结果的输出有多种形式,好的数学软件都提供了人们习惯的数学符号表达形式.3 .各个系统都在不断地发展完善,不断地更新换代,更新的速冻也在逐渐加快.数学软件在向着智能化,自动化方向发展.数学软件的实质是数学方法及其算法在计算机上的实现,这些方法是千百年来无数数学家的工作与智慧的结晶.4 .参与软件开发和应用的人员的数量在不断增加,而且日趋国际化.随着I n t e r
5、n e t的普及,软件用户可以很方便地与软件开发者进行沟通,反映软件中存在的问题,也把新的应用情况和好的程序提供给软件的开发者.软件的开发不再只是软件开发者的事情,也是广大用户的事情.计算机代数系统的优越性主要在于它能够进行大规模的代数运算.通常我们用笔和纸进行代数运算只能处理符号较少的算式,当算式的符号上升到百位数后,手工计算便成为可能而不可行的事,主要原因是在做大量符号运算时,我们很容易出错,并且缺乏足够的耐心.当算式的符号个数上升到四位数后,手工计算便成为不可能的事,这时用计算机代数系统进行运算就可以做到准确,快捷,有效.尽管计算机代数系统在代替人进行繁琐的符号运算上有着无比的优越性,但
6、是,计算机毕竟是机器,它只能执行人们给它的指令.数学软件都有一定的局限性.首先,多数计算机代数系统对计算机硬件有较高的要求,在进行符号运算时,通常需要很大的内存和较长的计算时间,而精确的代数运算以时间和空间为代价的.一些人工计算的简单问题,计算机代数系统却做不出来.用数学软件的第二个问题是计算结果往往很长,人们很难从结果中看到问题的要害.用计算机代数系统进行数值计算,虽然计算精度可以到任意位,但由于计算机代数系统是用软件本身浮点运算代替硬件算术运算,所以在速度要比用F o r t r a n语言算同样的问题慢百倍甚至千倍.另外,虽然计算机代数系统包含大量的数学知识,但这仅仅是数学的一小部分,目
7、前有许多数学领域计算机代数系统还未能涉及.二、M a t l a b()M ATLAB 简介h t t p:/w w w.m a t h w o r k s.c o m/1.MATLAB的概况MATLAB是矩阵实验室(M a t r i x L a b o r a t o r y)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,F O R T R A N等语言完相同的事情简捷得多.当前流行的MATLAB 5.3/Simu
8、link 3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.开放性使MATLAB广受用户欢迎.除内部函数外,所 有 MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.2.MATLAB产生的历史背景在 70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和 U
9、NPACK的 FORTRAN子程序库.EISPACK是特征值求解的 FOETRAN程序库,UNPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.到 70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲授线性代数课程时,想教学生使用EISPACK和 UNPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACK和 UNPACK的接口程序.Cleve Moler给这个接口程序取名 为 MATLAB,该名为矩阵(matrix)和实验室(labotatory)两个英文单词
10、的前三个字母的组合.在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传.1983年春天,Cleve M oler到 Standford大学讲学,MATLAB深深地吸引了工程师John Littlejohn Little敏锐地觉察到MATLAB在工程领域的广阔前景.同年,他 和 Cleve Moler,Steve Bangert 一起,用 C 语言开发了第二代专业版.这一代的MATLAB语言同时具备了数值计算和数据图示化的功能.1984年,Cleve Moler和 John Little成立了 Math Works 公司,正式把MATLAB推向市场,并
11、继续进行MATLAB的研究和开发.在 当 今 3 0 多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类.一类是数值计算型软件,如 MATLAB,Xmath,Gauss等,这类软件长于 数 值 计 算,对 处 理 大 批 数 据 效 率 高;另 一 类 是 数 学 分 析 型 软件,Mathematica,Maple等,这类软件以符号计算见长,能给出解析解和任意精确解,其缺点是处理大量数据时效率较低.MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要
12、求的新一代科技应 用 软 件 MATLAB.经过多年的国际竞争,MATLAB以经占据了数值软件市场的主导地位.在 MATLAB进入市场前,国际上的许多软件包都是直接以FORTRANC语言等编程语言开发的。这种软件的缺点是使用面窄,接口简陋,程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。MATLAB的出现,为各国科学家开发学科软件提供了新的基础。在 MATLAB问世不久的80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB上重建。MathWorks 公司 1993 年推出了 MATLAB 4。0 版,1995 年推出 4。2C 版(for win3o X
13、)1997 年推出 5。0 版。1999 年推出 5。3 版。MATLAB 5。X 较MATLAB 4o X 无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式 和 PDF格式,在 Netscape 3。0 或 正 4。0 及以上版本,Acrobat Reader中可以方便地浏览。时至今日,经 过 MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大大大型软件。在国外,M ATLAB已经经受了多年考验。在欧美等高校,M ATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学
14、位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。在国内,特别是工程界,MATLAB 一定会盛行起来。可以说,无论你从事工程方面的哪个学科,都能在MATLAB里找到合适的功能。2.MATLAB的语言特点一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和 C 等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的M ATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB最突出的特点就是简洁。MATLAB
15、用更直观的,符合人们思维习惯的代码,代替了 C 和 FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。D o 语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用 MATLAB进行科技开发是站在专家的肩膀上。具 有 FORTRAN和 C 等高级语言知识的读者可能已经注意到,如果用FORTRAN或 C 语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。例
16、如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写-个程序块来求解方程,最后再输出计算结果。在求解过程中,最麻烦的要算第二部分。解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试动不容易。即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。解线性方程的程序用 FORTRAN和 C 这样的高级语言编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。以下用MATLAB编写以上两个小程序的具体过程。MATLAB求解下列方程,并求解矩阵A 的特征值。Ax=b淇中:A=32134567237985124
17、323546598347135b=1234解为:x=Ab;设 A 的特征值组成的向量e,e=eig(A)。可见,MATLAB的程序极其简短。更为难能可贵的是,MATLAB甚至具有一定的智能水平,比如上面的解方程,MATLAB会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑MATLAB的准确性。2)运算符丰富。由于MATLAB是 用 C 语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。3)MATLAB既具有结构化的控制语句(如 fo r循环,while循环,break语句 和 if语句),又有面向对象编程的特性。4)程序限制不严
18、格,程序设计自由度大。例如,在 MATLAB里,用户无需对矩阵预定义就可使用。5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。6)MATLAB的图形功能强大。在 FORTRAN和 C 语言里,绘图都很不容易,但 在 MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于 MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。8)功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中
19、有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如control,toolbox,signlproceessing toolbox,commumnication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高,精,尖的研究。9)源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所 有MATLAB的核心文件和工具箱文件都是可
20、读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。(二)MATLAB入门教程1.MATLAB的基本知识1-1、基本运算与函数在 MATLAB下进行基本数学运算,只需将运算式直接打入提示号()之 彳 灸,并按入Enter键即可。例如:(5*2+13-0.8)*10/25ans=4.2000MATLAB会将运算结果直接存入 变数a n s,代表MATLAB运算彳奏的答案(Answer)并显示其数值於萤幕上。小提示:是 MATLAB的提示符号(Prompt),但 在 P C 中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。我们
21、也可将上述运算式的结果设定给另一个变数x:x=(5*2+130.8)*10A2/25x=42此时MATLAB会直接显示x 的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幕次运算(人)。小提示:MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variabledeclaration)MATLAB同时也会自动进行记忆体的使用和回收,而不必像C 语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。若不想让MATLAB每次都显示运算结果,只需在运算式最彳爰
22、加上分号(;)即可,如下例:y=sin(10)*exp(-0.3*4A2);若要显示变数y 的值,直接键入y 即可:yy=-0.0045在上例中,sin是正弦函数,exp是指数函数,这些都是M ATLAB常用到的数学函数。下表即为M ATLAB常用的基本数学函数及三角函数:小整理:M ATLAB常用的基本数学函数abs(x):纯量的绝对值或向量的长度angle(z):复 数 z 的相角(Phase angle)sqrt(x):开平方real(z):复数z的实部imag(z):复数z的虚部conj(z):复数z的共加复数round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整
23、数floor(x):地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示rats(x):将实数x化为多项分数展开sign(x):符号函数(Signum function)o当 x0 时,sign(x)=l o小整理:M ATLAB常用的三角函数sin(x):正弦函数cos(x):馀弦函数tan(x):正切函数a si n(x):反正弦函数a c os(x):反馀弦函数a ta n(x):反正切函数a ta n2(x,y):四象限的反正切函数si nh(x):超越正弦函数c osh(x):超越馀弦函数ta nh(x):超越正切函数a
24、 si nh(x):反超越正弦函数a c osh(x):反超越馀弦函数a ta nh(x):反超越正切函数变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(R ow ve c tor)运算:x=l 3 5 2 ;y=2*x+ly=3 7 1 1 5小提示:变数命名的规则1.第一个字母必须是英文字母2.字母间不可留空格3.最多只能有1 9个字母,MATLAB会忽略多馀字母我们可以随意更改、增加或删除向量的元素:y(3)=2%更改第三个元素y=3 7 2 5y(6)=1 0%加入第六个元素y=37250 1 0y(4)=I J%删除第四个元素,y=3 7 2 0 1 0在上例中,MATL
25、AB会忽略所有在百分比符号()之彼的文字,因此百分比之彳奏的文字均可视为程式的注解(C om m e nts),MATLAB亦可取出向量的一个元素或一部份来做运算:x(2)*3+y(4)%取出x的第二个元素和y的第四个元素来做运算ans=9y(2:4)-l%取出y 的第二至第四个元素来做运算ans=61-1在上例中,2:4代表一个由2、3、4 组成的向量若对MATLAB函数用法有疑问,可随时使用help来寻求线上支援(on-line help):help linspace小整理:MATLAB的查询命令help:用来查询已知命令的用法。例如已知inv是用来计算反矩阵,键入help inv即可得知
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 代数 系统 课件
限制150内