matlab基础matlab概述_第1页
matlab基础matlab概述_第2页
matlab基础matlab概述_第3页
matlab基础matlab概述_第4页
matlab基础matlab概述_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,MATLAB基础,尚涛,电子信息工程学院 Tel2,通过本课程的学习,使学生初步掌握当前流行的MATLAB语言的基础知识,学会运用MATLAB进行科学数据处理、计算和建模的基本技能,为今后从事毕业设计、工程设计、产品开发和科学研究打下较好的基础。,课程任务,3,教学内容与学时安排,第一节 概述及运算基础(2)第二节 数值运算和符号运算 (2)第三节 MATLAB绘图和程序设计(2)第四节 GUI设计和神经网络应用(2),考试成绩,总学时:16(其中上机学时8),平时成绩(10%)+实验成绩(上机10%+报告20%)+期末考试(60%),上课时间地点安排,4,5,

2、具体安排,平时成绩:出席,每节由教辅统计,实验内容上机时从大班邮箱下载。 实验: 实验结果和实验报告(周一-周四),周五下午2点之前由各班学委将实验报告电子版收齐提交给教辅。 考试:7月17日周五上午3 4节地点(J0-001 J0-002 J0-003) *若个别学生不在名册,与我联系!,6,参考书目,尚涛, MATLAB基础及其应用教程,北京:电子工业出版社, 2014年8月。 张学敏,倪虹霞,MATLAB基础及应用,北京:中国电力出版社,2009 年2月。 刘同娟,郭键,刘军,MATLAB建模、仿真及应用,北京:中国电力出版社,2009 年4月。 胡良剑,孙晓君,MATLAB数学实验,北

3、京:高等教育出版社,2006年6月。 马莉,MATLAB数学实验与建模,北京:清华大学出版社,2010年1月。 Learning MATLAB Using the Control System Toolbox.,什么是仿真? 生活中有没有?,7,8,仿真的定义,9,仿真(Simulation): 利用模型复现实际系统中发生的本质过程,并通过对系统模型的实验来研究存在的或设计中的系统,又称模拟。,10,仿真的分类,按模型分类 1、物理仿真:利用实物或者它的物理模型进行研究 具有效果逼真,精度高等优点,但造价高或耗时长,大多在一些特殊场合下采用(如导弹、卫星一类飞行器的动态仿真,发电站综合调度仿真

4、与培训系统等),优点是直接、形象、可信;缺点是模型受限、易破坏、难以重复利用。 2、计算机仿真:根据相似性原理,利用计算机模拟研究系统。 计算机仿真的三个基本要素:系统、模型、计算机。 与计算机仿真要素相对应工作是:模型的建立、系统的组装、仿真实验。,11,具体的工作过程: 1、建立系统的数学模型; 2、仿真系统的组装,包括设计仿真算法、编制计算机程序使仿真系统的数学模型能为计算机所接受并在计算机上运行; 3、运行仿真模型,进行仿真试验,再根据仿真试验的结果进一步修正系统的数学模型和仿真系统。,12,1、程序编程阶段: 所有问题(如:微分方程求解、矩阵运算、绘图等)都是用高级算法语言(如C、F

5、ORTRAN等)来编写。 2、程序软件包阶段: 出现了“应用子程序库”。 3、交互式语言阶段(仿真语言:仿真语言可用一条指令实现某种功能,如“系统特征值的求解”,使用人员不必考虑什么算法,以及如何实现等低级问题。 4、模型化图形组态阶段:符合设计人员对基于模型图形化的描述。,仿真软件的发展,13,常见的几种仿真软件,PSPICE、ORCAD:通用的电子电路仿真软件,适合于元件级仿真。 SYSTEM VIEW:系统级的电路动态仿真软件 NS2 OPNET GlobeSim:网络协议仿真软件 MATLAB:具有强大的数值计算能力,包含各种工具箱,其程序不能脱离MATLAB环境而运行,所以严格讲,M

6、ATLAB不是一种计算机语言,而是一种高级的科学分析与计算软件。 SIMULINK:是MATLAB附带的基于模型化图形组态的动态仿真环境。,14,电子信息工程学院 信息与网络安全实验室,Ad hoc 网络安全协议仿真软件,15,计算机学院虚拟现实技术与系统国家重点实验室,支持异地分布式虚拟现实研究与开发的支撑环境DVENET、分布交互仿真开发与运行平台BH HLA/RTI,16,仿真技术的应用,1、航空与航天工业 2、电力工业 3、原子能工业 4、石油、化工及冶金工业 5、非工程领域 医学 社会学 宏观经济与商业策略的研究,17,应用仿真技术的意义,1、经济,采用仿真实验仅需成本的1/101/

7、5,而且设备可以重复使用。 2、安全,采用仿真实验可以有效降低危险程度,对系统的研究起到保障作用。 3、快捷,提高设计效率:比如电路设计,服装设计等等。 4、具有优化设计和预测的特殊功能,18,仿真技术的发展趋势,1、硬件方面:基于多CPU并行处理技术的全数字仿真将有效提高仿真系统的速度,大大增强数字仿真的实时性。 2、应用软件方面:直接面向用户的数字仿真软件不断推陈出新,各种专家系统与智能化技术将更深入地应用于仿真软件开发之中,使得在人机界面、结果输出、综合评判等方面达到更理想的境界。 3、分布式数字仿真:充分利用网络技术,协调合作,投资少,效果好。 4、虚拟现实技术:综合了计算机图形技术、

8、多媒体技术、传感器技术、显示技术以及仿真技术等多学科,使人置身于真实环境之中。,19,第1讲 MATLAB概述及运算基础,尚涛,电子信息工程学院 Tel20,本讲目标,了解MATLAB的基本知识 熟悉MATLAB的开发环境 掌握利用MATLAB进行基本运算的方法,21,主要内容,1.1 科学工程计算与MATLAB 1.2 基本运算功能 1.3 基本数据类型 1.4 数学函数,22,1.1 科学工程计算与MATLAB,科学研究和工程实践中的计算问题 简单问题:计算器或直接手工推导 复杂问题:计算机编程 计算机编程 高级编程语言 Microsoft: Visual C+

9、、Visual Basic Borland: Delphi、C+Builder Sun: Java 科学计算软件工具 MathWorks: MATLAB,23,科研和工程技术人员的首选 MATLAB,MATLAB具有用法简单、灵活、结构性强、延展性好等优点,逐渐成为科技计算、视图交互系统和程序中的首选语言工具。 功能强大的数值运算功能 强大的图形处理能力 高级但简单的程序环境 丰富的工具箱与模块集 易于扩充,24,MATLAB是什么?,MATLAB( MATrix LABoratory)是一种以矩阵运算为基础的交互式程序语言,着重针对科学计算、工程计算和绘图的需求。 首创者 Cleve Mol

10、er 教授曾在密西根大学、斯坦福大学和新墨西哥大学任数学与计算机科学教授,和 John Little 等人成立了 The MathWorks 公司。 该公司于1984年推出MATLAB,1988年3.0版,1992年4.0版, 1997年5.0版, 2000年6.0版, 2001年6.5版,最新版本8.0(matlab2015)。,MATLAB环境介绍,命令窗口 Command Window,当前文件夹窗口 Current Folder,工作空间 Workspace,命令历史窗口 Command History,命令窗口,工作空间窗口,用户可以在提示符后输入各种MATLAB命令,并显示命令执行

11、后的结果,显示变量的名称、数值和类型,对MATLAB计算环境中从外部导入的数据和计算过程产生的数据变化进行可视化显示。,当前文件夹窗口,显示在当前工作目录下包含的所有文件,命令历史窗口,记录了在命令窗口中执行的每个命令,27,MATLAB特色举例,例1 矩阵生成与运算 射雕英雄传中的一个“数学问题”,该问题用半数学语言描述就是:如何生成一个 3x3 矩阵, 并将自然数 1, 2, ., 9 分别置成这 9 个矩阵元素,才能使得每一行、每一列、且主、反对角线上元素相加都等于一个相同的数。 魔方矩阵(即九宫算术) A=magic(3) 求矩阵的行列式和特征值 det(A) eig(A) 思考:?,

12、求解数独的简单C语言程序(适合仅有唯一解的数独) #include void print(int a99) /*格式化输出数独*/ int i,j; for(i=0;i9;i+) for(j=0;j9;j+) printf(%d ,aij); printf(n); ,28,void ini_logo(int logo1099,int arr99) /*初始化标志数组*/ int i,j,k,p,r,s,t; for(i=0;i9;+i) for(j=0;j9;+j) if(arrij!=0) for(k=1;k=9;+k)logokij=1; for(i=0;i9;+i) for(j=0;j9

13、;+j) if(arrij!=0) p=arrij; for(r=0;r9;+r) logopir=1;logoprj=1; for(s=(i/3)*3;s(i/3)*3+3;+s) for(t=(j/3)*3;t(j/3)*3+3;+t) logopst=1; ,29,int add(int arr99,int logo1099,int m,int n,int k) /*arrmn插入数字,修改arr,logo数组*/ int i,s,p,t; arrmn=k; for(p=1;p=9;+p) logopmn=1; for(i=0;i9;+i) logokmi=1; logokin=1; f

14、or(s=(m/3)*3;s(m/3)*3+3;+s) for(t=(n/3)*3;t(n/3)*3+3;+t) logokst=1; ,int check(int logo1099,int arr99) /*检测行列和小九宫格*/ int i,j,k,p,q,r,s,t,m,n,tag=0; /*tag标志本轮是否修改*/ for(k=1;k=9;+k) for(i=0;i9;+i) p=0;q=0; for(j=0;j9;+j) if(logokij=0)r=j;p+; /*检测行*/ if(logokji=0)s=j;q+; /*检测列*/ if(p=1)tag=1;add(arr,lo

15、go,i,r,k); if(q=1)tag=1;add(arr,logo,s,i,k); /*满足一个添加的条件,修改arr,logo数组和标志tag*/ for(i=0;i9;i=i+3) /*检测小九宫格*/ for(j=0;j9;j=j+3) t=0; for(m=i;mi+3;+m) for(n=j;nj+3;+n) if(logokmn=0)q=m;s=n;t+; if(t=1)tag=1;add(arr,logo,q,s,k); return(tag); ,30,main() int arr99= 0,0,0,0,0,0,0,0,0, /*数独初始化,其中0表示数字未给出*/ 0,

16、2,3,0,0,0,7,8,0, 1,0,0,4,0,6,0,0,9, 4,0,0,0,5,0,0,0,1, 9,0,0,0,0,0,0,0,6, 0,6,0,0,0,0,0,9,0, 0,0,5,0,0,0,8,0,0, 0,0,0,3,0,1,0,0,0, 0,0,0,0,9,0,0,0,0 , logo1099=0,i,j; ini_logo(logo,arr); while(check(logo,arr)=1) /*当一轮没有检测出,即结束*/ print(arr); ,31,MATLAB特色举例, x,y = meshgrid(-3:1/8:3); z =3*(1-x).2.*exp

17、(-(x.2) - (y+1).2)- 10*(x/5 - x.3 - y.5). .*exp(-x.2-y.2)- 1/3*exp(-(x+1).2 - y.2); surf(x,y,z), shading interp; colorbar,例2 考虑一个二元函数,如何用三维图形的方式表现出这个曲面?,32,MATLAB特色举例,例3 微分方程的数值解法。著名的 Lorenz 模型(蝴蝶效应),33,求解该微分方程,绘制出时间曲线与相空间曲线,如下所示。 t_final=100; x0=0;0;1e-10; t,x=ode45(lorenzeq,0,t_final,x0); plot(t,x

18、), figure; plot3(x(:,1),x(:,2),x(:,3); axis(10 40 -20 20 -20 20);,描述微分方程: function xdot = lorenzeq(t,x)xdot=-8/3*x(1)+x(2)*x(3); -10*x(2)+10*x(3); -x(1)*x(2)+28*x(2)-x(3); end,MATLAB特色举例,由下面的语句生成一组数据 x 和 y,用神经网络进 行数据拟合 x=0:.1:10; y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x); 可知(x, y)是曲线上的点。,M

19、ATLAB特色举例,35,第一种解法:程序 x=0:.1:10; y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x); net=newff(0,10,5,1,tansig,tansig); net.trainParam.epochs=1000; net=train(net,x,y); x0=0:.1:10; figure(1) y1=sim(net,x0); plot(x,y,o, x0,y1,r),MATLAB特色举例,第二种解法:交互式界面 nntool命令产生神经网络图形交互界面如下,MATLAB特色举例,38,MATLAB知识点定位,

20、MATLAB基础,基本运算,数组和矩阵,数值运算,符号运算,图形绘制,程序设计,GUI设计,建模应用,M文件为基础,注意区分图形和图像,从数值到符号的引申,工具箱,39,1.2 基本运算功能,MATLAB的基本运算可分为三类: 算术运算 关系运算 逻辑运算,40,1.2.1 算术运算,41,使用变量来进行更复杂的问题求解, a=15+20-50+3*9 a = 12 b=30 b = 30 c=a*b c = 360 d=a3-b*c d = -9072,42,逗号或分号的区别,x=2, y=3 %逗号隔开,屏幕有回显 x = 2 y = 3 m=2; n=3;%分号隔开,无回显 m %在提示

21、符后直接输入变量名可查看变量的值 m = 2,43,基本算术运算符,44,例1 求解算术表达式的值, (12+2*(7-4)/33 ans = 0.6667,45,format命令,46,1.2.2 关系运算,47,关系运算的结果类型为逻辑量 (0, 1), x=2; x3 ans = 0 x=2 ans = 1,48,1.2.3 逻辑运算,逻辑运算符用于将关系表达式或逻辑量连接起来,构成较复杂的逻辑表达式。逻辑表达式的值也是逻辑量。,49,1.3 基本数据类型,MATLAB数据类型 数值 逻辑 字符串 单元 结构 类,50,1.3.1 数值类型,分类方法一: 双精度型 (系统默认类型) 单精

22、度型 带符号整数 无符号整数 分类方法二 标量 数组 矩阵 分类方法三 实数 复数 z1=1+2i z1 = 1.0000 + 2.0000i z2=3+4j z2 = 3.0000 + 4.0000i,51,1.3.2 字符串类型,字符串:包含在一对单引号中的字符集合 s=hello, MATLAB%定义字符串变量s s = hello, MATLAB,52,MATLAB中的字符串运算功能非常丰富,特别是符号运算功能的加入,使得字符串函数功能得到了极大增强。 在MATLAB中,所有字符串都用英文单引号标识,字符串和字符数组是等价的,字符串中的每个字符(包括空格)都是字符数组的一个元素。,53

23、,字符串与数值数组的相互转换详情请参阅帮助(help),54,字符串的操作与执行详情请参阅帮助(help),55,串检验与进制转换函数详情请参阅帮助(help),56,3.单元型变量,单元型变量是MATLAB中较为特殊的一种数据类型,本质上也是一种数组,但这种数组和传统数组的区别是:传统数组中所有元素只能是同一种数据类型,而单元型数组可以把不同的数据类型组合在一起,从而形成一种比较复杂的数组。,57,(1) 单元型变量的定义,直接赋值法:单元型变量使用大括号标识,元素之间用逗号分隔。也可以直接对单元型变量的元素直接赋值单元型变量的下标用大括号索引。 如A(1,1)=matlab, A1,1=m

24、atlab 。 由cell函数预先分配存储空间,然后逐个元素进行赋值。例如:Bcell(2,3),可在内存空间中建立一个单元型空变量B,然后可逐个对其每个元素赋值。,58,值得注意的是:单元型变量的存储并不是以指针的方式来存储的,因此改变元素的值是不会影响到原来所引用的变量值的。单元型变量还可以嵌套,即单元型变量的元素也可以是单元型变量。,(2) 单元型变量的相关函数,59,4.结构型变量,结构型变量是另外一种可以将不同的数据类型组合在一起的特殊数据类型。与单元型数据类型相同它也不是以指针方式传递数据的。不同的是其作用相当于数据库中的记录,可存储一系列相关数据。同一个数据字段(Field)必须

25、具有相同的数据类型,而单元型数据每个元素彼此可以不同。,60,(1) 结构型变量的定义,直接赋值法:结构型变量的使用必须指出结构的属性名,并以操作符“.”来连接结构变量名与属性名。对该属性直接赋值,MATLAB 会自动生成该结构变量。如A.b1,B(2,3).a3等。结构型数组的不同元素类型可不同。 由struct函数预先分配存储空间方法是: 结构型变量struct(元素名1,元素值1,元素名2,元素值2,) 例如:c=struct(c1,1,c2,b,c3,abcd),61,值得注意的是:结构型变量的存储也不是以指针方式存储的。因此改变元素的值就不会影响到所引用变量的值。结构型变量也可以嵌套

26、使用,即结构型变量的元素也可以是结构型变量。,(2) 结构型变量的相关函数,62,1.3.3 变量和表达式,变量的命名方式: 变量名由字母、数字和下划线组成; 变量名中的英文字母大小写是有区别的; 变量名的最大长度是有规定的 不同版本的系统规定不同:19个字符、31或63个字符等 可调用namelengthmax函数得到系统规定长度,63,MATLAB系统的特殊变量和常数,64,变量的使用,clear%删除工作区中所有定义过的变量 whos%查看当前工作区内变量信息,无显示表示没有定义的变量 xy=1; yx=2; %对变量赋值 xy%查看变量xy的当前数值 xy = 1 whos Name

27、Size Bytes Class xy 1x1 8 double array yx 1x1 8 double array Grand total is 2 elements using 16 bytes clear xy yx%删除变量xy及yx whos xy%这时变量xy已经不存在了 ? Undefined function or variable xy.,65,1.4 数学函数,66,使用函数须注意以下几点,函数一定要出现在等式的右边 函数对其自变量的个数和格式都有一定的要求 函数允许嵌套,67,例 计算下式的结果,其中a=5.67, b=7.811,a=5.67; b=7.811; exp(a+b)/log10(a+b) ans = 6.3351e+005,68,扩展阅读,MATLAB背景 MATLAB历史 MATLAB组成 MATLAB特点 MATLAB应用开发环境,上机指导,MATLAB的安装和使用 安装MATLAB系统 使用MATLAB系统 MATLAB帮助功能,一 “纯文本”帮助 在指令窗中运行help 的示例。 二 “导航/浏览器交互界面”帮助 三 PDF 帮助 四 其他帮助,70,Task(1),执行MATLAB的启动和退出。观看DEMO程序,INTRO程序,HELP文件,练习MATLAB常用命令在命令窗口中计算数学表达式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论