《(精品)matlab在科学计算中的应用1.ppt》由会员分享,可在线阅读,更多相关《(精品)matlab在科学计算中的应用1.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLAB在科学计算中的应用开课单位:数学学院 40学时 1学分张敏洪(数学学院)mh_考试方式:平时作业完成占30,最后上机开卷考占70。有课外上机时间,讲义、作业、作业参考答案、部分参考资料可下载。课程网站课程网站参考资料、讲义、作业、作业部分参考答案可在学校课程网站下载。以前的邮箱: 密码:matlab123 在学校课程网站提交作业。主要参考书:主要参考书:高等应用数学问题的MATLAB求解 薛定宇 陈阳泉 著 清华大学出版社精通MATLAB科学计算 王正林等编著 电子工业出版社科学计算引论基于MATLAB的数值分析 美Shoichiro Nakamura 电子工业出版社MATLAB与
2、科学计算 王谟然 编著 电子工业出版社MATLAB6.0数学手册 蒲俊等编著 蒲东电子出版社数学相关软件程序设计语言:BASIC,Pascal,FORTRAN,C,.数值计算软件:Matlab,Scilab,Octave,.符号计算软件:Mathematica,Maple,.交互式数学软件:MathCAD,Calcwin,.统计软件:SAS,SPSS,Minitab,.数学规划软件:Lingo,Lindo,.工程计算软件:Ansys,Fluent,Phoenics,.其它:几何画板,MathLab,.高数高代常微偏微概率统计规划数值分析、数值计算MATLAB(可编程的高级计算器)其它实用性理论
3、性第一章 计算机数学语言概述1.1 数学问题计算机求解概述数学问题求解数学问题求解手工推导(只解决部分问题)手工推导(只解决部分问题)借助计算机借助计算机用数值分析技术,从底层编写起用数值分析技术,从底层编写起 采用成形的数值分析算法、数值软件包采用成形的数值分析算法、数值软件包与手工编程相结合的求解方法。与手工编程相结合的求解方法。用专门计算机语言来求解用专门计算机语言来求解 MATLAB、Mathematica、Maple等等例:求 方程的解(带参数问题的求解)在 是给定数值时,数值分析的方式是可用。当不是给定数值时,数值分析的方式不可用。必须使用计算机数学语言来求解。例:求 矩阵行列式求
4、解问题(时间复杂性)用代数余子式方法一个 n 阶行列式可以表示成 n 个 n-1 阶行列式的和,可以将高阶矩阵行列式转换成1阶矩阵行列式结论:任意矩阵行列式解析解存在问题:忽略了可计算性n=20,运算次数为 ,用每秒亿次的银河机需3000年.忽略了复杂度和可行性.例:Hilbert 矩阵,n=20(求解精度的问题)传统数值分析:容易得出矩阵奇异的错误结论 用MATLAB:在双精度级别下容易快速得到数值解该矩阵行列式的精确结果H=sym(hilb(20);det(H)det(hilb(20)ans=5.7671e-196 tic;det(hilb(20);toc Elapsed time is
5、0.000711 seconds.近似值近似值计算时间计算时间 0.4 0.4 秒秒1.1.1 数学问题的解析解与数值解数学家和其他科学技术工作者的区别数学家:理论严格证明、存在性工程技术人员:如何直接得出解解析解不能使用的场合不存在数学家解决方法,引入符号erf(a)工程技术人员更感兴趣积分的值数值解解析解不能使用的场合解析解不存在:无理数,无限不循环小数 p数学家:尽量精确地取值工程技术人员:足够精确即可祖充之 3.14159263.1415927解析解存在但不实用或求解不可能高阶矩阵行列式1.1.2 数值解应用场合在力学领域,常用有限元法求解偏微分方程;在航空、航天与自动控制领域,经常用
6、到数值线性代数与常微分方程的数值解法等解决实际问题;工程与非工程系统的计算机仿真中,核心问题的求解也需要用到各种差分方程、常微分方程的数值解法;在高科技的数字信号处理领域,离散的快速Fourier 变换(FFT)已经成为其不可或缺的工具。1.1.3 数学运算问题软件包发展概述享有国际声望的软件包线性代数LINPACK矩阵特征值计算 EISPACKNAG(Oxford:Numerical Algorithm Group)Press W H,Flannery B P,Teukolsky S A,and Vitterling W T.Numerical recipes,the art of scie
7、ntific computing.Cambridge:Cambridge University Press,1986(C,Fortran,Pascal算法语言源程序软件包)线性代数计算 LaPACK软件包作用从历史发展角度,起了不可替代的作用对计算机数学语言的强有力支持但不能过多依赖使用烦琐应该在计算机数学语言的意义下利用之考虑一个实际编程例子如何编写一个能求出两个矩阵相乘的计算机通用子程序?该程序正确吗?错误,未考虑矩阵是否可乘是否正确?错误,未考虑其一为标量加入标量判定,是否就是通用程序了?错误,应考虑其一或二者为复数矩阵MATLAB 实现:C=A*B 可见,用最底层的编程语言需要考虑的内
8、容要多得多,所以调试起来不容易,容易出现漏洞。1.2 计算机数学语言概述计算机数学语言MATLAB 1984 v1 The MathWorks IncMATrix LABoratory1980 Cleve Moler教授,New Mexico University自动控制学科的应用(正赶上状态空间的控制理论的兴起发展阶段)Mathematica(Wolfram Research公司)Maple(Waterloo Maple公司)SciLAB:免费,全部源代码公开三个代表性计算机数学语言MATLAB,Mathematica,MapleMATLAB 数值运算、程序设计,广泛应用Mathematic
9、a、Maple解析运算、数学公式推导、定理证明Matlab+符号运算工具箱+Maple可以推导公式,可以调用Maple功能MATLAB产生的历史背景 MATLAB 是“矩阵实验室”(MATrix LABoratory)的缩写.在70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库.EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.到70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲授线
10、性代数课程时,想教学生使用EISPACK和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,为了让学生方便的调用EISPACK和LINPACK,利用业余时间为学生编写EISPACK和LINPACK的接口程序。Cleve Moler给这个接口程序取名为MATLAB(MATrix LABoratory)。在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。19831983年春天年春天,Cleve,Cleve MolerMoler到到StandfordStandford大学讲学,大学讲学,MATLABMATLAB深深深地吸引了工程师深
11、地吸引了工程师Jack LittleJack Little。Jack LittleJack Little敏锐地觉察到敏锐地觉察到MATLABMATLAB在工程领域的广阔前景,同年,在工程领域的广阔前景,同年,他和他和Cleve Cleve MolerMoler,Steve Steve BangertBangert一一起,用起,用C C语言开发了第二代专业版。语言开发了第二代专业版。这一代的这一代的MATLABMATLAB语言同时具备语言同时具备了数值计算和数据图示化的功能了数值计算和数据图示化的功能 。Jack Little CEO/Founder MATLAB的第一个商业化的版本是1984年
12、推出的是3.0的DOS版本1992年MathWorks 公司于推出了4.0版本,1994年的4.2版本扩充了4.0版本的功能,尤其在图形界面设计方面更提供了新的方法。1997年推出的5.0版允许了更多的数据结构,如单元数据、多维矩阵、对象与类等,使其成为一种更方便编程的语言。1999年推出的 MATLAB 5.3版在很多方面又进一步改进了 MATLAB 语言的功能。2000年10月底推出了其全新的MATLAB 6.0 正式版(Release 12),在核心数值算法、界面 设计、外部接口、应用桌面等诸多方面有了 极大的改进。2002年6月发布了其全新的 MATLAB 6.5正式版(Release
13、 13)2004年5月推出Matlab7.0(Release 14)2005年,Matlab 7.12006年,Matlab 7.2(Matlab R2006a),R2006b2007年,Matlab 7.4(Matlab R2007a),R2007b2008年,Matlab 7.6(Matlab R2008a),R2008b2009年,Matlab 7.8(Matlab R2009a),R2009b 2009.9.42010年,Matlab R2010a,Matlab R2010b,2011年,Matlab R2011a,Matlab R2011b,2012年,Matlab R2012a,M
14、atlab R2012b,时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大的大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。在国内,特别是工程学术界,MATLAB也逐步盛行起来。可以说,无论你从事工程
15、方面的哪个学科,都能在MATLAB里找到合适的功能。Matlab的功能与特点 Matlab 是一个交互式软件系统是一个交互式软件系统输入一条命令,立即就可以得到该命令的运行结果。输入一条命令,立即就可以得到该命令的运行结果。它的优点在于快速开发计算方法,而不在于计算速度。它的优点在于快速开发计算方法,而不在于计算速度。Matlab 具有很强的数值计算功能具有很强的数值计算功能 Matlab 以矩阵作为数据操作的基本单位,以矩阵作为数据操作的基本单位,但无需预先指定矩阵维数(动态定维)。但无需预先指定矩阵维数(动态定维)。按照按照 IEEE(美国电气和电子工程师协会(美国电气和电子工程师协会)的
16、数值计算的数值计算标准进行计算。标准进行计算。提供十分丰富的数值计算函数,方便计算,提高效率提供十分丰富的数值计算函数,方便计算,提高效率。Matlab 命令与数学中的符号、公式非常接近,可读性强,命令与数学中的符号、公式非常接近,可读性强,容易掌握。容易掌握。MATLAB 语言的优势编程简单,效率高,如C。集成度更高,扩展性更好。数学问题数值解能力强大。提供丰富的绘图命令,很 方便实现数据的可视化。由Maple内核构成的符号运算工具箱可以继承Maple所有解析解的求解能力。在数学、工程领域有各种“工具箱”。强大的系统仿真能力,Simulink建模。在控制界是国际首选的计算机语言。MATLAB
17、工具箱MATLABMATLAB包含两个部分:核心部分和各种可选的包含两个部分:核心部分和各种可选的工具箱。工具箱。核心部分中有数百个核心内部函数。核心部分中有数百个核心内部函数。工具箱又分为两类:功能性工具箱和学科性工具箱。工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱可用于多种学科。功能。功能性工具箱可用于多种学科。学科性工具箱是专业的,如学科性工具箱是专业的,如controlcontrol、sign
18、al signal proceessingproceessing 、commumnicationcommumnication toolbox toolbox等。这些工等。这些工具箱都是由该领域内学术水平很高的专家编写的,具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序。所以用户无需编写自己学科范围内的基础程序。MATLAB主工具箱主工具箱符号数学工具箱符号数学工具箱SIMULINK仿真工具箱仿真工具箱控制统工具箱控制统工具箱信号处理工具箱信号处理工具箱图象处理工具箱图象处理工具箱通讯工具箱通讯工具箱系统辨识工具箱系统辨识工具箱神经元网络工具箱神经元网络工具箱
19、金融工具箱金融工具箱Fuzzy Logic Toolbox模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox高阶谱分析工具箱 Image Processing Toolbox图象处理工具箱 computer vision system toolbox-计算机视觉工具箱Model predictive Control Toolbox模型预测控制工具箱 Robust Control Toolbox鲁棒控制工具箱 Spline Toolbox样条工具箱 Statistics Toolbox统计工具箱 Wavele Toolbox小波工具箱 DSP syste
20、m toolbox-DSP处理工具箱 LMI Control Toolbox线性矩阵不等式工具箱-Analysis and Synthesis Toolbox分析工具箱 1.3 MATLAB科学计算的主要内容三大基本功能:数值计算、符号计算、图形处理程序设计与应用程序接口MATLAB科学计算中的应用在数值分析中的应用多项式与插值、数据的曲线拟合数值微分与数值积分线性代数非线性方程求根微分方程在最优化问题中的应用在概率统计中的应用在偏微分方程解法中的应用数学问题的非传统解法神经网络在数据拟合中的应用遗传算法在最优化求解中的应用计算机模拟1.4本课程与其它相关课程的关系和数学的关系(非理论,是如何解决问题)应用数学和纯数学,数学问题机械化侧重直接获得问题的解,而不是存在性和数值分析的关系不是数值分析的MATLAB语言求解,从算法上看,选择的算法更有效,变步长、自适应的算法实现可以求解析解求解的面也更大,更全面和其他后续课程的关系利用计算机数学语言更好解决后续课程中的数学问题和相关计算问题