您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > Matlab基础及其应用
Matlab基础及其应用主讲教师:李浩刘大刚holly@uestc.edu.cn物理电子学院教师简介MATLAB课程介绍定位:公共基础选修课目标:了解MATLAB,能够熟练掌握数学(矩阵)运算,简单编程,简单的数据处理、符号运算及基本图形绘制.对MATLAB面向对象编程与simulink有基本了解。参考教材:MATLAB基础及应用参考书目:《Matlab程序设计教程》,李海涛、邓樱,高等教育出版社/2005.5.1《精通MATLAB6.5版》,张志涌,北京航空航天大学出版社/2003.3《科学运算语言MATLAB5.3程序设计及应用》,薛定宇,清华大学出版社/2000《数值方法和MATLAB实现与应用》,拉克唐瓦尔德(美),机械工业出版社/2004.9特点:完全不必具备其它语言的基础,各年级各专业的同学都可选修。MATLAB课程安排学时:32学时(基于matlab6.5版本)安排:讲课16学时,上机16学时考核要求:实验报告必须齐备。考核方式:实验报告上机安排从9月21日(也就是下个星期四)起,每个星期四安排为上机时间。上机地点:主楼东312(物电机房)上机时间:18:00~20:0020:00~22:00主要内容1.Matlab概述与入门;2.数据类型和运算;3.数值计算;4.符号运算;5.数据和函数的可视化;6.Matlab编程;第一章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的第一个商业化的版本是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时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大的大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。在国内,特别是工程学术界,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包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱可用于多种学科。学科性工具箱是专业的,如(control、signalproceessing、commumnication)toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序。matlab工具箱MATLAB主工具箱符号数学工具箱SIMULINK仿真工具箱控制系统工具箱信号处理工具箱图象处理工具箱通讯工具箱系统辨识工具箱神经元网络工具箱金融工具箱三.Matlab界面与初步操作workspace指令窗口菜单工作目录选择栏快捷工具栏Commandwindow运行入门最简单的计算器使用法;数值、变量和表达式;指令行中的标点符号;计算结果的图形表示;求的运算结果。23)]47(212[(12+2*(7-4))/3^2ans=2指令输入提示符Answer的缩写简单矩阵的输入步骤:A=[1,2,3;4,5,6;7,8,9]A=123456789指令续行输入S=1-1/2+1/3-1/4+...1/5-1/6+1/7-1/8S=0.6345续行符号数值、变量和表达式数值的记述;变量命名规则;Matlab默认的预定义变量;运算符和表达式;复数和复数矩阵;Matlab采用习惯的十进制表示:-990.0011.3e-34.5e33数值范围:10e-308~10e308大小写敏感;首字母为英文(少于63个字符);变量名不包含空格、标点;画出衰减振荡曲线及其它的包络线。的取值范围是。teyt3sin330tey]4,0[t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,'-r',t,y0,':b',t,-y0,':b')grid051015-1-0.500.512222)sin(yxyxz画出所表示的三维曲面,的取值范围是[-8,8]clear;x=-8:0.5:8;y=x';X=ones(size(y))*x;Y=y*ones(size(x));R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;surf(X,Y,Z);colormap(cool)xlabel('x'),ylabel('y'),zlabel('z')-10010-10010-0.500.51xyzMatlab编辑器界面
本文标题:Matlab基础及其应用
链接地址:https://www.777doc.com/doc-3175636 .html