MATLAB工程计算及应用教学基本要求定位:公共基础选修课目标:了解MATLAB,能够熟练掌握数学(矩阵)运算,简单编程,简单的数据处理、符号运算及基本图形绘制。对MATLAB面编程有基本了解。特点:完全不必具备其它语言的基础,各年级各专业的同学都可选修。参考教材:MATLAB程序设计与应用,刘卫国,高等教育出版社学习Matlab的基本原因•不希望学生在编程上化太多时间,课程目的不是学习编程•社会化的运行带来的好处:合理利用可以节约大量的时间•为什么相同的时间别人比自己做出了更多的事情:硕士论文调查结果•面向对象的思想带来巨大的好处•紧密结合科学的前沿•FromBBS:博士论文=Matlab+word课程内容简介•Matlab概述•数据类型和运算•基于Matlab的数值分析•数据和函数的可视化•符号计算•Matlab编程第1章Matlab概述1、Matlab简介2、Matlab的工作环境3、Matlab帮助系统Matlab产生的历史背景CleveMoler博士CleveMolerischairmanandchiefscientistatTheMathWorks.Molerwasaprofessorofmathandcomputerscienceforalmost20yearsattheUniversityofMichigan,StanfordUniversityandtheUniversityofNewMexico.在70年代中期,CleveMoler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库.EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.Matlab产生的历史背景1983年春天,CleveMoler到Standford大学讲学,MATLAB深深地吸引了工程师JohnLittle。JohnLittle敏锐地觉察到MATLAB在工程领域的广阔前景,同年,他和CleveMoler,SteveBangert一起,用C语言开发了第二代专业版。这一代的MATLAB语言同时具备了数值计算和数据图示化的功能。JackLittleCEO/FounderJackLittleispresident,CEO,andaco-founderofTheMathWorks,Inc.Hewasaco-authorandprincipalarchitectofearlyversionsofthecompany'sflagshipMATLABproductaswellastheSignalProcessingToolboxandtheControlSystemsToolbox.Matlab的版本演化MATLAB是“矩阵实验室”(MATrixLABoratory)的缩写,最初版本是由CleveMoler博士用FORTRAN语言开发的矩阵分析软件。•MATLAB的第一个商业化的版本是1984年推出的是3.0的DOS版本•1992年MathWorks公司于推出了4.0版本•1994年的4.2版本扩充了4.0版本的功能,尤其在图形界面设计方面更提供了新的方法•1997年推出的5.0版允许了更多的数据结构,如单元数据、多维矩阵、对象与类等,使其成为一种更方便编程的语言•1999年推出的MATLAB5.3版在很多方面又进一步改进了MATLAB语言的功能Matlab的版本演化•2000年10月底推出了其全新的MATLAB6.0正式版,在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的改进•2002年6月发布了其全新的MATLAB6.5正式版•2004年5月推出Matlab7.0时至今日,经过MathWorks公司的不断完善,Matlab已经发展成为适合多学科,多种工作平台的功能强大的大型软件。在国外,Matlab已经经受了多年考验。在欧美等高校,Matlab已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,Matlab被广泛用于科学研究和解决各种具体问题。在国内,特别是工程学术界,Matlab也逐步盛行起来。可以说,无论你从事工程方面的哪个学科,都能在Matlab里找到合适的功能。MATLAB的主要特点MATLAB是一种交互式的以矩阵为基础的系统计算平台,它用于科学和工程的计算与可视化。它的优点在于快速开发计算方法,而不在于计算速度。MATLAB的基本单位为矩阵:基于矩阵运算的工作平台。多版本:windows/unix/dos/MacintoshMATLAB语言以解释方式工作具有非常友好的人机界面具有强大的作图和数据可视化功能具有极强的可扩展性:MATLAB的函数大多为ASCII文件,可以直接编辑、修改高度适应性、开放性:MATLAB的工具箱可以任意增减,任何人可以自己生成MATLAB工具箱极多的工具箱1.语言简洁紧凑,使用方便灵活,库函数极其丰富;2.运算符丰富;3.兼聚结构化与面向对象编程的特性;4.程序设计自由度大;5.良好的程序可移植性;6.强大的图形功能;7.功能性工具箱和学科性工具箱;8.源程序的开放性。Matlab的语言特点线性方程组求解nnnnnnnnnnbxaxaxabxaxaxabxaxaxa22112222212111212111nnnnnnnnbbbxxxaaaaaaaaa2121212222111211当D=|A|≠0,方程组有解,可用Cramer法则求解。线性方程组求解DDxDDxDDxnn,,,2211nnnnnnaaaaaaaaaD212222111211nninninnniiniiiaabaaaabaaaabaaD1,1,121,221,22111,111,111N阶行列式的计算需要n!次乘法,求解n阶线性方程组,共需要做(n+1)!次乘法。如n=20,则,需做:21!=5.10909×1019线性方程组求解数值求解方法:1.直接法Gauss消去法、Gauss-Jordan消去法、矩阵分解法等。2.迭代法Jacobi迭代法、Gauss-Seidel迭代法和超松弛迭代法等。线性方程组求解Matlab求解过程:4.1541.2426.33321321321xxxxxxxxx数据统计与处理一个工厂生产三种橄榄球用品:防护帽、垫肩、臀垫。需要不同数量的:硬塑料、泡沫塑料尼龙线、劳动力。为监控生产,管理者对它们之间的关系十分关心。为把握这些量的关系,列出下面的表格。原料产品防护帽垫肩臀垫硬塑料422泡沫塑料132尼龙线133劳动力322原料产品关系表订单1订单2订单3订单4防护帽35206045垫肩10155040臀垫20124520•管理者接到四份订单如上表所示。•问应该如何计算每份订单所需的原材料,以便组织生产?204512204050151045602035223331231224BAC=22014647532010589300205125101345225165114370255输入下面Matlab指令A=[423;132;133;322];B=[35206045;10155040;…20124520];C=A*B考虑一个实际编程例子如何编写一个能求出两个矩阵相乘的计算机通用子程序?是否正确?错误,未考虑其一为标量加入标量判定,是否就是通用程序了?错误,考虑其一或二者为复数矩阵MATLAB实现:C=A*B0123456-1-0.8-0.6-0.4-0.200.20.40.60.81例:用简短命令计算并绘制在0x6范围内的sin(2x)、sinx2、sin2x。x=linspace(0,6)y1=sin(2*x),y2=sin(x.^2),y3=(sin(x)).^2;plot(x,y1,x,y2,x,y3)用四种方法描述cos(x)*sin(y)图形-505-4-2024-1-0.500.51-505-4-2024-1-0.500.51-4-2024-4-3-2-101234Matlab能做什么•基本的数据处理•优化和解方程•动态过程仿真:实时的和非实时的•数据来源:Excel、数据库等等•嵌入式的控制:Pc/104和DSP•神经元网络、小波分析等等•虚拟现实仿真Matlab是所有系统工具的基础设计自动化工具一般用途工具信号和图像处理控制系统设计和分析网络资源1.USENET新闻组–MATLAB的新闻组是comp.soft-sys.MATLAB。浏览器指向––网络上的工具箱––与MATLAB相似的软件•Mathmatica数学计算功能。复杂符号计算,主要在理论界•Mathcad数学文字软件。直接写出报告•Maple符号计算功能强大•SciLab免费的matlab科隆体•仿真软件:MATRIXx、VisSim等等Matlab工作环境界面1.MATLAB的启动桌面快捷方式启动开始菜单方式启动2.MATLAB和退出Matlab菜单命令/关闭按钮在Matlab命令窗口输入exit或quitMatlab工作环境界面包含一行标题栏、一行菜单栏、一行工具栏、五个工作窗口。五个工作窗口分别为:发射台(LaunchPad)、工作区(Workspace)、命令历史(CommandHistory)、当前路径(CurrentDirectory)和命令窗口(CommandWindows)。历史命令发射台命令窗口标题栏菜单栏常用工具栏工作区当前路径三.Matlab界面与初步操作workspace指令窗口菜单工作目录选择栏快捷工具栏1、MATLAB菜单项File(文件)菜单Edit(编辑)菜单View(视图)菜单Window(窗口)菜单Web(连网信息)Help(帮助)菜单Matlab工作环境界面Matlab工作环境界面2、MATLAB工具栏用MATLAB的M文件编辑器新建一个M文件;用MATLAB编辑器打开一个文件;将选中的内容剪切到剪贴板;将选中的内容复制到剪贴板;将剪贴板中的内容粘贴到光标指定的位置;撤消最近一次的操作;打开Simulink浏览器;打开MATLAB帮助窗口。当前工作路径例1绘制函数y=2sin(1+x)的图像,并计算当x=0.5时的函数值。Matlab工作环境界面x=(1:0.1:10);%给出自变量x的定义域y=2*sin(1+x);%写出函数形式plot(x,y)%绘出函数图形y=2*sin(1+0.5)%求当x=0.5时的y值,其后不加分号,直接在窗口中给出结果y=1.9950%输出y的计算结果Matlab工作环境界面例2绘制函数y=3x3-10x2+5x-8的图像fori=1:100x(i)=0.1*i;y(i)=3*x(i)^3-10*x(i)^2+5*x(i)-8;endplot(x,y)Matlab工作环境界面MATLAB通用命令MATLAB的基本组成MATLAB主程序、Simulink动态系统仿真和MATLAB工具箱(Toolbox)三大部分组成。主程序包括了MATLAB语言、工作环境、句柄图形、数学函数库和应用程序接口五部分。•MATLAB包含两个部分:核心部分和各种可选的工具箱。•核心部分中有数百个核心内部函数。•工具箱又分为两类:功能性工具箱和学