您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > matlab在科学计算中的应用1
MATLAB在科学计算中的应用•开课单位:数学学院40学时1学分•张敏洪(数学学院)mh_zhang@ucas.ac.cn•考试方式:平时作业完成占30%,最后上机开卷考占70%。有课外上机时间,讲义、作业、作业参考答案、部分参考资料可下载。课程网站•参考资料、讲义、作业、作业部分参考答案可在学校课程网站下载。以前的邮箱:gucasmatlab@163.com密码:matlab123•在学校课程网站提交作业。主要参考书:•高等应用数学问题的MATLAB求解薛定宇陈阳泉著清华大学出版社•精通MATLAB科学计算王正林等编著电子工业出版社•科学计算引论-基于MATLAB的数值分析[美]ShoichiroNakamura电子工业出版社•MATLAB与科学计算王谟然编著电子工业出版社•MATLAB6.0数学手册蒲俊等编著蒲东电子出版社•数学相关软件–程序设计语言:BASIC,Pascal,FORTRAN,C,...–数值计算软件:Matlab,Scilab,Octave,...–符号计算软件:Mathematica,Maple,...–交互式数学软件:MathCAD,Calcwin,...–统计软件:SAS,SPSS,Minitab,...–数学规划软件:Lingo,Lindo,...–工程计算软件:Ansys,Fluent,Phoenics,...–其它:几何画板,MathLab,...高数高代常微偏微概率统计规划数值分析、数值计算MATLAB(可编程的高级计算器)其它实用性理论性第一章计算机数学语言概述•1.1数学问题计算机求解概述–数学问题求解•手工推导(只解决部分问题)•借助计算机–用数值分析技术,从底层编写起采用成形的数值分析算法、数值软件包与手工编程相结合的求解方法。–用专门计算机语言来求解MATLAB、Mathematica、Maple等例:求方程的解(带参数问题的求解)在是给定数值时,数值分析的方式是可用。当不是给定数值时,数值分析的方式不可用。必须使用计算机数学语言来求解。3xaxcd,,acd例:求矩阵行列式求解问题(时间复杂性)•用代数余子式方法–一个n阶行列式可以表示成n个n-1阶行列式的和,…–可以将高阶矩阵行列式转换成1阶矩阵行列式•结论:任意矩阵行列式解析解存在•问题:忽略了可计算性•n=20,运算次数为,用每秒亿次的银河机需3000年.忽略了复杂度和可行性.nn209.707310•例:Hilbert矩阵,n=20(求解精度的问题)•传统数值分析:容易得出矩阵奇异的错误结论•用MATLAB:在双精度级别下容易快速得到数值解•该矩阵行列式的精确结果H=sym(hilb(20));det(H)•det(hilb(20))ans=5.7671e-196•tic;det(hilb(20));tocElapsedtimeis0.000711seconds.近似值计算时间0.4秒1.1.1数学问题的解析解与数值解•数学家和其他科学技术工作者的区别–数学家:理论严格证明、存在性–工程技术人员:如何直接得出解•解析解不存在的场合–不存在–数学家解决方法,引入符号erf(a)–工程技术人员更感兴趣积分的值=数值解•解析解不能使用的场合–解析解不存在:无理数,无限不循环小数p–数学家:尽量精确地取值–工程技术人员:足够精确即可–祖充之3.1415926—3.1415927•解析解存在但不实用或求解不可能–高阶矩阵行列式1.1.2数值解应用场合•在力学领域,常用有限元法求解偏微分方程;•在航空、航天与自动控制领域,经常用到数值线性代数与常微分方程的数值解法等解决实际问题;•工程与非工程系统的计算机仿真中,核心问题的求解也需要用到各种差分方程、常微分方程的数值解法;•在高科技的数字信号处理领域,离散的快速Fourier变换(FFT)已经成为其不可或缺的工具。•…………1.1.3数学运算问题软件包发展概述•享有国际声望的软件包–线性代数LINPACK–矩阵特征值计算EISPACK–NAG(Oxford:NumericalAlgorithmGroup)–PressWH,FlanneryBP,TeukolskySA,andVitterlingWT.Numericalrecipes,theartofscientificcomputing.Cambridge:CambridgeUniversityPress,1986(C,Fortran,Pascal算法语言源程序软件包)–线性代数计算LaPACK软件包作用•从历史发展角度,起了不可替代的作用•对计算机数学语言的强有力支持•但不能过多依赖•使用烦琐•应该在计算机数学语言的意义下利用之考虑一个实际编程例子•如何编写一个能求出两个矩阵相乘的计算机通用子程序?该程序正确吗?错误,未考虑矩阵是否可乘是否正确?错误,未考虑其一为标量加入标量判定,是否就是通用程序了?错误,应考虑其一或二者为复数矩阵MATLAB实现:C=A*B可见,用最底层的编程语言需要考虑的内容要多得多,所以调试起来不容易,容易出现漏洞。1.2计算机数学语言概述•计算机数学语言–MATLAB1984v1TheMathWorksInc•MATrixLABoratory•1980CleveMoler教授,NewMexicoUniversity•自动控制学科的应用(正赶上状态空间的控制理论的兴起发展阶段)–Mathematica(WolframResearch公司)–Maple(WaterlooMaple公司)–SciLAB:免费,全部源代码公开三个代表性计算机数学语言•MATLAB,Mathematica,Maple•MATLAB–数值运算、程序设计,广泛应用•Mathematica、Maple–解析运算、数学公式推导、定理证明•Matlab+符号运算工具箱+Maple–可以推导公式,可以调用Maple功能•MATLAB产生的历史背景MATLAB是“矩阵实验室”(MATrixLABoratory)的缩写.在70年代中期,CleveMoler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库.EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.到70年代后期,身为美国NewMexico大学计算机系系主任的CleveMoler,在给学生讲授线性代数课程时,想教学生使用EISPACK和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,为了让学生方便的调用EISPACK和LINPACK,利用业余时间为学生编写EISPACK和LINPACK的接口程序。CleveMoler给这个接口程序取名为MATLAB(MATrixLABoratory)。在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。1983年春天,CleveMoler到Standford大学讲学,MATLAB深深地吸引了工程师JackLittle。JackLittle敏锐地觉察到MATLAB在工程领域的广阔前景,同年,他和CleveMoler,SteveBangert一起,用C语言开发了第二代专业版。这一代的MATLAB语言同时具备了数值计算和数据图示化的功能。JackLittleCEO/Founder•MATLAB的第一个商业化的版本是1984年推出的是3.0的DOS版本•1992年MathWorks公司于推出了4.0版本,•1994年的4.2版本扩充了4.0版本的功能,尤其在图形界面设计方面更提供了新的方法。•1997年推出的5.0版允许了更多的数据结构,如单元数据、多维矩阵、对象与类等,使其成为一种更方便编程的语言。•1999年推出的MATLAB5.3版在很多方面又进一步改进了MATLAB语言的功能。2000年10月底推出了其全新的MATLAB6.0正式版(Release12),在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的改进。•2002年6月发布了其全新的MATLAB6.5正式版(Release13)•2004年5月推出Matlab7.0(Release14)•2005年,Matlab7.1•2006年,Matlab7.2(MatlabR2006a),R2006b•2007年,Matlab7.4(MatlabR2007a),R2007b•2008年,Matlab7.6(MatlabR2008a),R2008b•2009年,Matlab7.8(MatlabR2009a),R2009b2009.9.4•2010年,MatlabR2010a,MatlabR2010b,•2011年,MatlabR2011a,MatlabR2011b,•2012年,MatlabR2012a,MatlabR2012b,时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大的大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。在国内,特别是工程学术界,MATLAB也逐步盛行起来。可以说,无论你从事工程方面的哪个学科,都能在MATLAB里找到合适的功能。Matlab的功能与特点•Matlab是一个交互式软件系统–输入一条命令,立即就可以得到该命令的运行结果。–它的优点在于快速开发计算方法,而不在于计算速度。•Matlab具有很强的数值计算功能–Matlab以矩阵作为数据操作的基本单位,但无需预先指定矩阵维数(动态定维)。–按照IEEE(美国电气和电子工程师协会)的数值计算标准进行计算。–提供十分丰富的数值计算函数,方便计算,提高效率。–Matlab命令与数学中的符号、公式非常接近,可读性强,容易掌握。MATLAB语言的优势•编程简单,效率高,如C。•集成度更高,扩展性更好。•数学问题数值解能力强大。•提供丰富的绘图命令,很方便实现数据的可视化。•由Maple内核构成的符号运算工具箱可以继承Maple所有解析解的求解能力。•在数学、工程领域有各种“工具箱”。•强大的系统仿真能力,Simulink建模。•在控制界是国际首选的计算机语言。MATLAB工具箱•MATLAB包含两个部分:核心部分和各种可选的工具箱。•核心部分中有数百个核心内部函数。•工具箱又分为两类:功能性工具箱和学科性工具箱。•功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱可用于多种学科。•学科性工具箱是专业的,如control、signalproceessing、commumnicationtoolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序。•MATLAB主工具箱•符号数学工具箱•SIMULINK仿真工具箱•控制统工具箱•信号处理工具箱•图象处理工具箱•通讯工具箱•系统辨识工具箱•神经元网络工具箱•金融工具箱•FuzzyLogicToolbox——模糊逻辑工具箱•Higher-OrderSpectralAnalysisToolbox——高阶谱分析工具箱•ImageProcessingToolbox——图象处理工具箱•computervisionsystemtoolbox----计算机视觉工具箱•ModelpredictiveControlToolbox——模型预测控制工具箱•RobustControlToolbox——鲁棒控制工具箱•SplineToolbox——样条工具箱•StatisticsToolbox——统计工具箱•WaveleToolbox——小波工具箱•DS
本文标题:matlab在科学计算中的应用1
链接地址:https://www.777doc.com/doc-3382932 .html