matlab基础 matlab概述.ppt

上传人:sccc 文档编号:6206639 上传时间:2023-10-05 格式:PPT 页数:78 大小:2.28MB
返回 下载 相关 举报
matlab基础 matlab概述.ppt_第1页
第1页 / 共78页
matlab基础 matlab概述.ppt_第2页
第2页 / 共78页
matlab基础 matlab概述.ppt_第3页
第3页 / 共78页
matlab基础 matlab概述.ppt_第4页
第4页 / 共78页
matlab基础 matlab概述.ppt_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《matlab基础 matlab概述.ppt》由会员分享,可在线阅读,更多相关《matlab基础 matlab概述.ppt(78页珍藏版)》请在三一办公上搜索。

1、1,MATLAB基础,尚涛,电子信息工程学院Tel:010-82317222,2,通过本课程的学习,使学生初步掌握当前流行的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数学实验,北京:高等教育出版社,2

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

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

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

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

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

8、,19,第1讲 MATLAB概述及运算基础,尚涛,电子信息工程学院Tel:010-82317222,20,本讲目标,了解MATLAB的基本知识熟悉MATLAB的开发环境掌握利用MATLAB进行基本运算的方法,21,主要内容,1.1 科学工程计算与MATLAB1.2 基本运算功能1.3 基本数据类型1.4 数学函数,22,1.1 科学工程计算与MATLAB,科学研究和工程实践中的计算问题简单问题:计算器或直接手工推导复杂问题:计算机编程计算机编程高级编程语言 Microsoft:Visual C+、Visual BasicBorland:Delphi、C+BuilderSun:Java科学计算软

9、件工具MathWorks:MATLAB,23,科研和工程技术人员的首选 MATLAB,MATLAB具有用法简单、灵活、结构性强、延展性好等优点,逐渐成为科技计算、视图交互系统和程序中的首选语言工具。功能强大的数值运算功能 强大的图形处理能力 高级但简单的程序环境丰富的工具箱与模块集 易于扩充,24,MATLAB是什么?,MATLAB(MATrix LABoratory)是一种以矩阵运算为基础的交互式程序语言,着重针对科学计算、工程计算和绘图的需求。首创者 Cleve Moler 教授曾在密西根大学、斯坦福大学和新墨西哥大学任数学与计算机科学教授,和 John Little 等人成立了 The

10、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命令,并显示命令执行后的结果,显示变量的名称、数值和类型,对MATLAB计算环境中从外部导入的数据和计算过程产生的数据变化进行可视化显示。,当前文件夹窗口,显

11、示在当前工作目录下包含的所有文件,命令历史窗口,记录了在命令窗口中执行的每个命令,27,MATLAB特色举例,例1 矩阵生成与运算射雕英雄传中的一个“数学问题”,该问题用半数学语言描述就是:如何生成一个 3x3 矩阵,并将自然数 1,2,.,9 分别置成这 9 个矩阵元素,才能使得每一行、每一列、且主、反对角线上元素相加都等于一个相同的数。魔方矩阵(即九宫算术)A=magic(3)求矩阵的行列式和特征值det(A)eig(A)思考:?,求解数独的简单C语言程序(适合仅有唯一解的数独)#include void print(int a99)/*格式化输出数独*/int i,j;for(i=0;i

12、9;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;+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)

13、*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;for(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)/*检测行列和小九宫格*/in

14、t 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,logo,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=

15、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,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,log

16、o1099=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(-(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 微分方程的数值解法

17、。著名的 Lorenz 模型(蝴蝶效应),33,求解该微分方程,绘制出时间曲线与相空间曲线,如下所示。t_final=100;x0=0;0;1e-10;t,x=ode45(lorenzeq,0,t_final,x0);plot(t,x),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特色举例,由下面的语句生

18、成一组数据 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)是曲线上的点。,MATLAB特色举例,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);

19、plot(x,y,o,x0,y1,r),MATLAB特色举例,第二种解法:交互式界面nntool命令产生神经网络图形交互界面如下,MATLAB特色举例,38,MATLAB知识点定位,MATLAB基础,基本运算,数组和矩阵,数值运算,符号运算,图形绘制,程序设计,GUI设计,建模应用,M文件为基础,注意区分图形和图像,从数值到符号的引申,工具箱,39,1.2 基本运算功能,MATLAB的基本运算可分为三类:算术运算关系运算逻辑运算,40,1.2.1 算术运算,41,使用变量来进行更复杂的问题求解,a=15+20-50+3*9a=12b=30 b=30 c=a*bc=360 d=a3-b*cd=-

20、9072,42,逗号或分号的区别,x=2,y=3%逗号隔开,屏幕有回显x=2y=3m=2;n=3;%分号隔开,无回显m%在提示符后直接输入变量名可查看变量的值m=2,43,基本算术运算符,44,例1 求解算术表达式的值,(12+2*(7-4)/33 ans=0.6667,45,format命令,46,1.2.2 关系运算,47,关系运算的结果类型为逻辑量(0,1),x=2;x3ans=0 x=2ans=1,48,1.2.3 逻辑运算,逻辑运算符用于将关系表达式或逻辑量连接起来,构成较复杂的逻辑表达式。逻辑表达式的值也是逻辑量。,49,1.3 基本数据类型,MATLAB数据类型数值逻辑字符串单元

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

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

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

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

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

26、es Class xy 1x1 8 double array yx 1x1 8 double arrayGrand 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+

27、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常用命令在命令窗口中计算数学表达式,输入简单矩阵,查看工作空间中的变量,命令窗口显示清除,语句、变量及数据的表示,搜索路径设置。,71,

28、Task(2),计算星球之间的万有引力。G=6.67E-11;%引力恒量 sun=1.987E30;%太阳质量1.9871030千克 earth=5.975E24;%地球质量5.9751024千克 d1=1.495E11;%太阳和地球的距离1.4951011米 g1=G*sun*earth/d12%太阳和地球的引力g1=3.5431e+022 moon=7.348E22;%月亮质量7.3481022千克 d2=3.844E5;%月亮和地球两者间距3.844105米 g2=G*moon*earth/d22%月亮和地球的引力g2=1.9818e+026,72,Task(3),设三个复数a34i,b

29、12i,,计算x=ab/c a=3+4i;b=1+2i;c=2*exp(i*pi/6);x=a*b/cx=0.3349+5.5801i,73,Task(4),已知三角形的三边长分别为3、4、5,求其面积。a=3;b=4;c=5;%三角形的三个边长s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c)area=6,74,Task(5),用两种方法创建一个二维数组,掌握二维数组的创建方法,以及数据的修改方法,尽量考虑计算效率。,75,Task(6),计算下式的结果,其中x=45 x=pi/180*(45);%将角度单位由度转换为函数要求的弧度值z=(sin(x)+sqrt(35)/72(1/5)z=2.8158,76,Task(7),使用函数创建字符串数组,掌握char、str2mat、strvcat、strcat之间的区别。,77,思考问题,仿真是否”真”?如何生成任意参数的魔方矩阵?,78,上机操作,上机指导时间:13-16日上午34 节上机地点:实验楼机房按着学号每5人一组,第3节上机,第4节检查。每次上机实验内容结束后,完成实验报告,周五统一将4份报告电子版统一提交到教辅,由老师批阅登记,记作实验成绩。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号