资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MATLAB在科学计算中的应用,开课单位:数学学院 40学时 1学分,张敏洪数学学院,考试方式:平时作业完成占30,,最后上机开卷考占70。,有课外上机时间,讲义、作业、作业参考答案、局部参考资料可下载。,课程网站及 Office hour,参考资料、讲义、作业、作业局部参考答案可在学校课程网站下载。,去年的邮箱:gucasmatlab163,密码:matlab123,在学校课程网站提交作业。,Office hour,每周四下午3:205:00 教学楼10层1007 房间。,主要参考书:,高等应用数学问题的MATLAB求解 薛定宇 陈阳泉 著 清华大学出版社,精通MATLAB科学计算 王正林等编著 电子工业出版社,科学计算引论基于MATLAB的数值分析 美Shoichiro Nakamura 电子工业出版社,MATLAB与科学计算 王谟然 编著 电子工业出版社,MATLAB6.0数学手册 蒲俊等编著 蒲东电子出版社,数学相关软件,程序设计语言:BASIC,Pascal,FORTRAN,C,.,数值计算软件:Matlab,Scilab,Octave,.,符号计算软件:Mathematica,Maple,.,交互式数学软件:MathCAD,Calcwin,.,统计软件:SAS,SPSS,Minitab,.,数学规划软件:Lingo,Lindo,.,工程计算软件:Ansys,,Fluent,Phoenics,.,其它:几何画板,MathLab,.,第一章 计算机数学语言概述,1.1 数学问题计算机求解概述,数学问题求解,手工推导只解决局部问题,借助计算机,用数值分析技术,从底层编写起,采用成形的数值分析算法、数值软件包与手工编程相结合的求解方法。,用专门计算机语言来求解,MATLAB、Mathematica、Maple等,例:求 方程的解带参数问题的求解,在 是给定数值时,数值分析的方式是可用。,当不是给定数值时,数值分析的方式不可用。,必须使用计算机数学语言来求解。,例:求 矩阵行列式求解问题时间复杂性,用代数余子式方法,一个 n 阶行列式可以表示成 n 个 n-1 阶行列式的和,,可以将高阶矩阵行列式转换成1阶矩阵行列式,结论:任意矩阵行列式解析解存在,问题:忽略了可计算性,n=20,运算次数为 ,用每秒亿次的银河机需3000年.忽略了复杂度和可行性.,例:Hilbert 矩阵,n=20 求解精度的问题,传统数值分析:容易得出矩阵奇异的错误结论,用MATLAB:在双精度级别下容易快速得到数值解,该矩阵行列式的精确结果,H=sym(hilb(20);detH,近似值,计算时间,0.4,秒,1.1.1 数学问题的解析解与数值解,数学家和其他科学技术工作者的区别,数学家:理论严格证明、存在性,工程技术人员:如何直接得出解,解析解不能使用的场合,不存在,数学家解决方法,引入符号erf(,a,),工程技术人员更感兴趣积分的值数值解,解析解不能使用的场合,解析解不存在:无理数,无限不循环小数,p,数学家:尽量精确地取值,工程技术人员:足够精确即可,祖充之 3.14159263.1415927,解析解存在但不实用或求解不可能,高阶矩阵行列式,1.1.2 数值解应用场合,在力学领域,常用有限元法求解偏微分方程;,在航空、航天与自动控制领域,经常用到数值线性代数与常微分方程的数值解法等解决实际问题;,工程与非工程系统的计算机仿真中,核心问题的求解也需要用到各种差分方程、常微分方程的数值解法;,在高科技的数字信号处理领域,离散的快速Fourier 变换(FFT)已经成为其不可或缺的工具。,1.1.3 数学运算问题软件包开展概述,享有国际声望的软件包,线性代数LINPACK,矩阵特征值计算 EISPACK,NAG(Oxford:Numerical Algorithm Group),Press W H,Flannery B P,Teukolsky S A,and Vitterling W T.Numerical recipes,the art of scientific computing.Cambridge:Cambridge University Press,1986(C,Fortran,Pascal算法语言源程序软件包),线性代数计算 LaPACK,软件包作用,从历史开展角度,起了不可替代的作用,对计算机数学语言的强有力支持,但不能过多依赖,使用烦琐,应该在计算机数学语言的意义下利用之,考虑一个实际编程例子,如何编写一个能求出两个矩阵相乘的计算机通用子程序?,该程序正确吗?错误,未考虑矩阵是否可乘,是否正确?,错误,未考虑其一为标量,参加标量判定,是否就是通用程序了?,错误,应考虑其一或二者为复数矩阵,MATLAB 实现:C=A*B,可见,用最底层的编程语言需要考虑的内容要多得多,所以调试起来不容易,容易出现漏洞。,1.2 计算机数学语言概述,计算机数学语言,MATLAB 1984 v1 The MathWorks Inc,MATrix LABoratory,1980 Cleve Moler教授,New Mexico University,自动控制学科的应用正赶上状态空间的控制理论的兴起开展阶段,MathematicaWolfram Research公司),MapleWaterloo Maple公司,SciLAB:免费,全部源代码公开,三个代表性计算机数学语言,MATLAB,Mathematica,Maple,MATLAB,数值运算、程序设计,广泛应用,Mathematica、Maple,解析运算、数学公式推导、定理证明,Matlab+符号运算工具箱+Maple,可以推导公式,可以调用Maple功能,MATLAB产生的历史背景,MATLAB 是“矩阵实验室 MATrix LABoratory的缩写.,在70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库.EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.,到70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲授线性代数课程时,想教学生使用EISPACK和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,为了让学生方便的调用EISPACK和LINPACK,利用业余时间为学生编写EISPACK和LINPACK的接口程序。Cleve Moler给这个接口程序取名为MATLAB(MATrix LABoratory)。在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向群众的免费软件广为流传。,1983年春天,Cleve Moler到Standford大学讲学,MATLAB深深地吸引了工程师John Little。John Little敏锐地觉察到MATLAB在工程领域的广阔前景,同年,他和Cleve Moler,Steve Bangert一起,用C语言开发了第二代专业版。这一代的MATLAB语言同时具备了数值计算和数据图示化的功能。,John Little,CEO/Founder,MATLAB的第一个商业化的版本是1984年推出的是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),2004年5月推出Matlab7.0 Release 14,2005年,Matlab 7.1,2006年,Matlab R2006a,R2006b,2007年,Matlab R2007a,R2007b,2021年,Matlab R2021a,R2021b,2021年,Matlab R2021a,,2021年,Matlab R2021a,,时至今日,经过MathWorks公司的不断完善,MATLAB已经开展成为适合多学科,多种工作平台的功能强大的大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的根本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的根本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。在国内,特别是工程学术界,MATLAB也逐步盛行起来。可以说,无论你从事工程方面的哪个学科,都能在MATLAB里找到适宜的功能。,Matlab的功能与特点,Matlab 是一个交互式软件系统,输入一条命令,立即就可以得到该命令的运行结果。,它的优点在于快速开发计算方法,而不在于计算速度。,Matlab 具有很强的数值计算功能,Matlab 以矩阵作为数据操作的根本单位,但无需预先指定矩阵维数动态定维。,按照 IEEE 的数值计算标准进行计算。,提供十分丰富的数值计算函数,方便计算,提高效率。,Matlab 命令与数学中的符号、公式非常接近,可读性强,容易掌握。,MATLAB 语言的优势,编程简单,效率高,如C。,集成度更高,扩展性更好。,数学问题数值解能力强大。,提供丰富的绘图命令,很,方便实现数据的可视化。,由Maple内核构成的符号运算工具箱可以继承Maple所有解析解的求解能力。,在数学、工程领域有各种“工具箱。,强大的系统仿真能力,Simulink建模。,在控制界是国际首选的计算机语言。,MATLAB工具箱,MATLAB包含两个局部:核心局部和各种可选的工具箱。,核心局部中有数百个核心内部函数。,工具箱又分为两类:功能性工具箱和学科性工具箱。,功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱可用于多种学科。,学科性工具箱是专业的,如control、signal proceessing、commumnication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的根底程序。,MATLAB主工具箱,符号数学工具箱,SIMULINK仿真工具箱,控制统工具箱,信号处理工具箱,图象处理工具箱,通讯工具箱,系统辨识工具箱,神经元网络工具箱,金融工具箱,1.3 MATLAB科学计算的主要内容,三大根本功能:数值计算、符号计算、图形处理,程序设计与应用程序接口,MATLAB科学计算中的应用,在数值分析中的应用,多项式与插值、数据的曲线拟合,数值微分与数值积分,线性代数,非线性方程求根,微分方程,在最优化问题中的应用,在概率统计中的应用,在偏微分方程解法中的应用,数学问题的非传统解法,神经网络在数据拟合中的应用,遗传算法在最优化求解中的应用,在建模仿真中的应用,1.4本课程与其它相关课程的关系,和数学的关系非理论,是如何解决问题,应用数学和纯数学,数学问题机械化,侧重直接获得问题的解,而不是存在性,和数值分析的关系,不是数值分析的MATLAB语言求解,从算法上看,选择的算法更有效,变步长、自适应的算法实现,可以求解析解,求解的面也更大,更全面,和其他后续课程的关系,利用计算机数学语言更好解决后续课程中的数学问题和相关计算问题,
展开阅读全文