数学建模M对ATLAB培训.ppt

上传人:本田雅阁 文档编号:2871179 上传时间:2019-05-31 格式:PPT 页数:255 大小:3.53MB
返回 下载 相关 举报
数学建模M对ATLAB培训.ppt_第1页
第1页 / 共255页
数学建模M对ATLAB培训.ppt_第2页
第2页 / 共255页
数学建模M对ATLAB培训.ppt_第3页
第3页 / 共255页
数学建模M对ATLAB培训.ppt_第4页
第4页 / 共255页
数学建模M对ATLAB培训.ppt_第5页
第5页 / 共255页
点击查看更多>>
资源描述

《数学建模M对ATLAB培训.ppt》由会员分享,可在线阅读,更多相关《数学建模M对ATLAB培训.ppt(255页珍藏版)》请在三一文库上搜索。

1、MATLAB在数学建模中的应用,上海电机学院 武文佳 2013.7.8,全国大学生数学建模竞赛(CUMCM) China Undergraduates Mathematical Contest in Modeling,1992年由中国工业与应用数学学会(CSIAM)组织第一次竞赛,1994年起由教育部高教司和CSIAM共同举办,每年一次(9月),2012 年,来自全国33个省/市/自治区(包括香港和澳门特区)及新加坡的1284所院校、21219个队(其中本科组17741队、专科组3478队)、63600多名大学生报名参加本项竞赛。,网址:http:/,奖励:证书 (“一次参赛,终身受益”),

2、等级:全国一等奖3%、二等奖 7%;赛区一、二等奖1/3,2013年高教社杯全国大学生数学建模竞赛时间: 2013年9月13日上午8:00,竞赛内容与形式,内容,赛题:工程技术、管理科学等科学领域的实际问题,答卷:一篇包含模型假设、建立、求解、计算方法设计和计算机实现、结果分析和检验、模型改进等方面的论文,形式,3名大学生组队,在3天内完成“队长”,可使用任何材料(图书、计算机、软件、互联网等),但不得与队外任何人讨论(包括上网讨论),宗旨,创新意识 团队精神 重在参与 公平竞争,标准,假设的合理性,建模的创造性,结果的正确性,表述的清晰性,数学建模过程,表述,(归纳),求解,(演绎),解释,

3、验证,现实对象与数学模型的关系,数学建模步骤,1)模型准备: 了解问题的实际背景,明确建模目的, 掌握对象的各种信息如统计数据等,弄清实际对象的特征。 -查找资料,读懂题意,建模步骤,2)模型假设:根据实际对象的特征和建模目的,对问 题进行必要地合理地简化。不同的假设会得到不同的模型。 过度的简化而得到模型可能无实用价值 舍不得简化又可能导致得到一个无法求解的模型或模型 的解非常复杂,以致无法应用。,注意:对于一个假设,最重要的是它是否符合实际情况,而不是为了解决问题的方便。,有些假设在建模过程中才会发现。因此在建模是要注意调整假设。,3)模型建立: 分清变量类型,恰当使用数学工具; 抓住问题

4、的本质,简化变量之间的关系; 要有严密的数学推理,模型本身要正确; 要有足够的精确度。 4)模型求解:选择恰当的方法求解所建立的数学模型,包括画图等。 编程求解:MATLAB,Lingo/Lindo,Mathematica等,建模步骤,6)模型检验: 把模型分析的结果“翻译”回到实 际对象中,用实际现象、数据等检验模型的合理性 和适应性。如果模型不实用,必须从模型假设那里 重新开始,直到得到可用模型。 7)模型应用和推广:应用中可能发现新问题,需继 续完善;所建立的模型稍加处理可推广到其他领域。,5)模型分析:结果分析、数据分析。 变量之间的依赖关系或稳定性态;数学预测;最优 决策控制。,建模

5、步骤,从论文评阅看学生参加竞赛中的问题,吃透题意方面的不足; 就事论事,形成数学模型的意识和能力欠缺; 不管具体条件,套用现成的方法,导致错误; 对结果的分析不够,怎样符合实际考虑不周; 写作方面的问题(摘要、简明、优缺点、参考文献)。,要想在数学建模竞赛中取得好成绩,要注意,1. 建立好的数学模型,不在于用了什么高深的方 法,而要能有效、简便、恰当的解决实际问题。,2. 好的求解方法:算法和编程实现。假期要注意多看优秀论文,熟悉建模常用算法并编程训练。,3. 高质量的论文:描述清晰,让评委知道你如何分析问题,数学模型是什么,用了什么方法,最后结论是什么。-把问题描述清楚。,注意事项:,1.充

6、分的准备和训练:通过培训和自学,熟悉常见模型和方法,多积累建模案例。 -量变到质变。,2.重视建模论文的排版和技巧:建模论文是最后决定是否获奖的关键,注意固定的规范,平时多看建模论文。 软件准备:Office,Mathtype,MATLAB,3.项目管理和时间管理:制定好三天时间的规划,队长必须具有好的协调组织和进程控制能力。一旦选题,尽量不要中途换题目。,4.团队合作能力:一个人再厉害,在三天内也无法做出很好的建模论文。 切勿自己只管自己那部分,要大家一起讨论。 队长-相当于计算机中的CPU,一定要给力。 互相讨论,各有侧重,互相帮助。,5.要有勇争第一的意识和勇气 数学建模对队员的意志力要

7、求比较高。 信心,相信自己能做好。 遇到困难不轻言放弃,很多时候,只要再坚持一下,就可以克服一些难题。,注意事项:,13,数学建模软件 MATLAB, MATLAB 基础,14,主要内容,Matlab 介绍 Matlab 的基本用法,15,培训要求:听课+课后作业,将所有文件作为附件,以邮件形式发给 主题为:数学建模-三位同学姓名 两字段之间用英文状态下的减号连接 每个 M 文件的第一行添加一条注解语句: % 数学建模-三位同学姓名-作业题号 交作业截止日期:2013年7月15日,课后作业要求,16,数学建模软件,程序设计语言:BASIC,Pascal,FORTRAN,C,. 数值计算软件:

8、 Matlab,Scilab,Octave,. 符号计算软件:Mathematica,Maple,. 交互式数学软件:MathCAD,Calcwin,. 统计软件:SAS,SPSS,Minitab,. 数学规划软件:Lingo,Lindo,. 工程计算软件:Ansys,Fluent,Phoenics,. 其它:几何画板,MathLab, .,数学相关软件,17,Matlab 介绍,在欧美各高等院校,Matlab 是线性代数、数值分析、数理统计、自动控制、数字信号处理、动态系统仿真、图像处理等课程的基本教学工具,已成为大学生必须掌握的基本技能之一。,Matlab是一种广泛应用于工程计算及数值分析

9、领域的新型高级语言,自 1984 年推向市场以来,经过多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。,Matrix Laboratory 矩阵实验室,Matlab,18,Matlab 的发展,Matlab 的发展,1980年,Moler 教授用 Fortran 语言编写了集命令翻译、 科学计算于一身的一套交互式软件系统。,1984年,Moler 等成立了 The MathWorks 的公司,用 C 语言完全改写 Matlab,并推出第一个商业版。,到九十年代,在国际上 30 几个数学类科技应用软件中, Matlab 在数值计算方面独占鳌头。,目前,Matlab 已成为世界顶尖的

10、数学应用软件就影响而言, 至今仍然没有一个别的计算软件可与 Matlab 匹敌。,19,Matlab 的发行版本,1984年,Matlab 1.0 (DOS版,182K,20多个函数) 1992年,Matlab 4.0 (93年推出Windows版,加入 simulink) 1994年,Matlab 4.2(得到广泛重视和应用) 1999年,Matlab 5.3(真正实现32位运算) 2002年,Matlab 6.5(采用JIT加速器) 2004年,Matlab 7.0 自2006年起,Matlab每年更新两次 目前最新版为 R2013a (2013年3月发布),Matlab 的发展,20,M

11、atlab 的功能与特点,Matlab 具有很强的数值计算功能,Matlab 以矩阵作为数据操作的基本单位, 但无需预先指定矩阵维数(动态定维),按照 IEEE 的数值计算标准进行计算,提供十分丰富的数值计算函数,方便计算,提高效率,Matlab 命令与数学中的符号、公式非常接近, 可读性强,容易掌握,Matlab 是一个交互式软件系统,输入一条命令,立即就可以得到该命令的运行结果,21,Matlab 的特点与功能,Matlab 的符号计算功能,Matlab 可以进行一些常见的符号计算,Matlab 的编程功能,Matlab具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征

12、,且简单易学、编程效率高,Matlab 的绘图功能,Matlab提供丰富的绘图命令, 很方便实现数据的可视化,22,Matlab 丰富的工具箱(toolbox),Matlab 的特点与功能,根据专门领域中的特殊需要而设计的各种可选工具箱,Matlab 的 Simulink 动态仿真集成环境,提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能,Symbolic Math PDE Optimization,Signal process Image Process Statistics,Control System System Ident

13、ification ,23,获取 Matlab 软件,Matlab 的安装,插入光盘,自动运行; 或点击安装程序 setup.exe,24,Matlab 的基本用法,Matlab 的启动,使用 Windows “开始” 菜单 运行 Matlab 系统启动程序 matlab 双击 Matlab 快捷图标,Matlab 的退出,在 Matlab 主窗口 File 菜单中选择 Exit Matlab 在 Matlab 命令窗口输入 exit 或 quit 单击 Matlab 主窗口的“关闭”按钮,25,Matlab 的工作界面,当前工作空间,当前目录中的文件,命令窗口,命令 历史记录,命令行提示符,

14、当前目录,直观认识Matlab-基本数学运算,在MATLAB下进行基本数学运算,只需将运算式直接打在提示号 后面,并按Enter键。 MATLAB将计算 的结果以ans显示。 【例】求 的算术运算结果。 (1)用键盘在MATLAB指令窗中输入以下内容 (12+2*(7-4)/32 (2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果。 ans = 2 我们也可给运算式的结果设定一个变量x: x = (5*2+1.3-0.8)*102/25 x = 42 变量x的值可以在下个语句中调用: y= 2*x+1 y = 85,MAT

15、LAB提供基本的算术运算有: 加 (+)、减 (-)、乘 (*)、除 (/)、幂次方 (), 范例为:5+3, 5-3, 5*3, 5/3, 53,MATLAB书写表达式的规则与“手写算式”差不多相同,但要求所有表达式都是以纯文本形式输入。 如果一个指令过长可以在结尾加上.(代表此行指令与下一行连续), 例如: 1*2+3*4+5*6+7*8+9*10+11*12+. 13*14+15*16 ans = 744,MATLAB常用数学函数-三角函数和双曲函数,指数函数,复数函数,其他函数,31,Matlab 变量的命名规则,一.Matlab 变量,以字母开头 后面可以跟 字母、数字 和 下划线

16、长度一般不要超过 63 个字符 字母区分 大小 写,Matlab 语句的通常形式,变量 = 表达式,表达式是用运算符将有关运算量连接起来的式子 计算表达式的结果,并赋给赋值号“=”左边的变量,Matlab 命令的执行:回车,输出格式,Matlab 的输出,Matlab 以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量 “ans”,Matlab 中数的输出格式可以通过 format 命令指定,format 只改变变量的输出格式, 但不会影响变量的值!,各种 format 格式,变量的存储,存储当前工作空间中的变量,save 将所有变量存

17、入文件 matlab.mat,save mydata 将所有变量存入指定文件 mydata.mat,存储指定的变量,save mydata.mat 将所有变量存入文件 mydata.mat,save 文件名 变量名列表,例: save mydata A x z,变量名列表中各变量之间用空格分隔,变量的读取,清除当前工作空间中的变量,clear 清除当前工作空间中的所有变量,clear A x 清除指定的变量,36,查看已定义的变量:who、whos,变量的查看,清除变量:clear,37,特殊变量 ans,注:应尽量避免给系统预定义变量重新赋值!,系统预定义的变量,系统预定义变量,38,Mat

18、lab 数值运算,默认是双精度实数,可用浮点数或科学计数法表示,例:3, 0.4, 1.603e-12,浮点运算的相对误差为 eps,大约为 2.210-16,浮点数表示范围为:10-308 10308,Matlab 中的数与算术表达式,注:复数作为矩阵元素输入时,加号两边不要加空格!,39,命令分隔符,算术运算,Matlab 数值运算,一行可以写多个语句,语句间用逗号或分号隔开,若不想在屏幕上输出结果,可以在语句最后加分号,如果语句很长,可用续行符 “”(三个点)续行 续行符的前面最好留一个空格,分号的作用,续行符,分号和续行符的作用,Matlab 数值运算,若不想在屏幕上输出结果,可以在语

19、句最后加分号,如果语句很长,可用续行符 “”(三个点)续行 续行符的前面最好留一个空格,例:,41,几个小技巧,Matlab 的命令记忆功能:上下箭头键,命令补全功能: Tab 键,用 Esc 键 删除命令行,命令 home、clc,可以先输入命令的前几个字符,再按上下键缩小搜索范围,42,Matlab帮助系统,如何寻找帮助,help size doc size,例:,查找命令,其它相关命令,cd、dir、more,更多 Matlab 命令,参见课程主页,43,定义矩阵:直接输入法,矩阵用方括号 “ ” 括起 矩阵同一行中的元素之间用 空格 或 逗号 分隔 矩阵行与行之间用 分号 分开,也可以

20、用 回车 代替,A=1 2 3; 4 5 6; 7 8 9,二.矩阵的输入,Matlab 的操作对象 矩阵,例:,44,矩阵元素可以是任何数值表达式,例:x=-1.3, sqrt(3), (1+2+3)*4/5,矩阵元素赋值,矩阵元素的单独赋值,例:x(2)=6.8,例:x(5)=abs(x(6) ?,动态定维功能:Matlab 会自动扩展向量的长度, 并将没有赋值的部分置零,例:x(5)=abs(x(1),45,大矩阵可以把小矩阵作为其元素,矩阵元素赋值,例: A=A ; 11 12 13,在原矩阵的下方加一行,思考:如何在原矩阵的右边添加一列?,空矩阵,例: B=,46,单个元素的引用,例

21、: x=A(2,3)+A(1,2),矩阵元素的引用,多个元素的引用:冒号的特殊用法,a:b:c,产生一个由等差序列组成的向量 a 是首项,b 是公差,c 确定最后一项 若 b = 1,则 b 和其前面的冒号可以省略,例:x=1:2:5 y=1:2:6,例:x=2:1:5 y=2:5,例:x=3:1:0,47,例:y=x(1:3),矩阵元素的引用,多个元素的引用(续),例:B=A(2:3,1:3) y=A(1,1:3),48,矩阵元素的引用,多个元素的引用(续),49,矩阵元素的引用,多个元素的引用:不连续元素的选取,例:A(1,3,4, 2,3),例:A(1,4,3, 2,3),删除指定的行或

22、列,50,特殊矩阵,Matlab 提供了一些函数,用于生成一些常见的特殊矩阵,例:,A=magic(3) B=ones(4),特殊矩阵的生成,A=magic(5) a1=diag(A) a2=diag(A,1) a3=diag(A,-2),a=1,2,3,4 A1=diag(a) A2=diag(a,1) A3=diag(a,-2),注意 diag 的用法,51,常见矩阵生成函数,52,矩阵基本运算,矩阵的加减:对应分量进行运算,矩阵的普通乘法,参与加减运算的矩阵具有 相同的维数!,A=1,2; 3,4; B=5,6; 7,8 C=A+B D=B-A,例:,参与运算的矩阵须满足线性代数中矩阵相

23、乘的原则!,A=1,2,3; 4,5,6; B= 2,1; 4,3 C=B*A,例:,53,矩阵基本运算,矩阵的除法:若 A 可逆方阵,则,AB A 的逆左乘 B inv(A)*B,B/A A 的逆右乘 B B*inv(A),矩阵的幂:若 A 是方阵,p 是正整数,则,Ap = A 的 p 次幂,即 p 个 A 相乘,右除,左除,矩阵的转置与共轭转置,A = 1, 2-3i; 3, 1+4i B = A C = A.,例:,54,翻转与旋转,矩阵的翻转与旋转,例:,注意矩阵旋转与转置的区别!,A = 1 2 3;4 5 6 B = fliplr(A) C = flipud(A) D = rot

24、90(A) E = rot90(A,-1),55,改变矩阵的形状,改变矩阵的形状:reshape(A,m,n),将矩阵元素按 列方向 进行重新排列成一个 mn 的新矩阵,新矩阵的元素个数必须与原矩阵元素个数相等!,A=1,2,3; 4,5,6; 7,8,9; 10,11,12 B=reshape(A,4,3),例:,C=reshape(A,2,6),C=reshape(A,5,2),56,查看矩阵的大小,查看矩阵的大小:size、length,A=1,2,3; 4,5,6 size(A) size(A,1) size(A,2) length(A), numel(A) x=1:5; length

25、(x),例:,57,Matlab应用(一), 矩阵运算,58,本讲主要内容,数组运算 函数的使用 变量的输入输出,59,矩阵的数组运算,数组运算:对应元素进行运算,数组运算包括:点乘、点除、点幂,相应的四个数组运算符为: .* ./ . .,点与算术运算符之间不能有空格!,参与运算的对象必须具有相同的形状!,A=1,2,3; 4,5,6; B=3,2,1; 6,5,4; C=A.*B D=A./B E=A.B,例:,60,函数取值,设 x 是变量, f 是一个函数,当 x = a 是标量时,f(x) = f(a) 也是一个标量,当 x = x1, x2, , xn 是向量时,则 f(x) =

26、f(x1), f(x2), , f(xn) 是一个与 x 长度相同的向量,函数作用在矩阵上的取值,若 A 是矩阵,则 f (A) 是一个与 A 同形状的矩阵,f 作用在 x 的每个分量上!,x=0:pi/4:pi; A=1,2,3; 4,5,6; y1=sin(x) y2=exp(A) y3=sqrt(A),例:,61,矩阵的超越函数,Matlab 提供的矩阵函数:expm、sqrtm、logm,详情参见联机帮助(help expm / sqrtm / logm ),更一般的矩阵函数: funm,funm(A, fun),fun 可以是 exp, log,cos,sin,. .,怎样计算 eA

27、 ?,矩阵函数,将矩阵作为一个整体参与运算,62,矩阵与数的运算,加减:矩阵的每个元素都与数作加减运算 数乘:矩阵的每个元素都与数作乘法运算 矩阵除以一个数:每个元素都除以这个数 数与矩阵的点幂运算:采用数组运算,矩阵与数的运算,例:,x=1 2 3; x.2=12,22,32=1,4,9 2.x=21,22,23=2,4,8,Matlab中所有标点符号必须在英文状态下输入!,63,常用数学函数,64,常用数学函数,65,常用数学函数,若参数 x 是矩阵,则作用在其各列上,66,输出格式,Matlab 的输出格式,Matlab 以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量

28、;若无指定变量,则系统会自动将结果赋给变量 “ans”,在屏幕上输出运算结果时,可以通过 format 命令指定输出格式,format 只改变输出格式,不会改变变量的值!,67,各种 format,68,变量的存储,将变量保存到 mat 文件中,可同时保存多个变量,各变量之间用空格隔开,例:,x=2:5; A=magic(3); a=2.4; save mydata A x;,从 mat 文件中读取变量,69,Matlab应用(二), 二维平面作图 三维空间作图,70,本讲主要内容,二维平面作图 三维空间作图 符号作图 Matlab 绘图过程/原理,71,手工作图,如何画出 ysin(x) 在

29、 0, 2 上的图像?,72,Matlab 作图,找点: x = 0, pi/4, pi/3, pi/2, pi, . 求值: y = sin(0), sin(pi/4), sin(pi/3), . 描点:在坐标系中画出这些离散点 连线:用直线或曲线连接这些点,得到函数的大致图形,手工作图,Matlab 作图,找点: x=0:pi/10:2*pi; 求值: y=sin(x); 描点、连线:使用 Matlab 提供的绘图函数 plot,x=0:pi/10:2*pi; y=sin(x); plot(x,y);,例:,73,二维作图命令,平面曲线绘图命令: plot,这里 x, y 都是向量,长度必

30、须相同 以 x 的分量为横坐标, y 的分量为纵坐标,作平面曲线,x=0:pi/10:4*pi; y=cos(x); plot(x,y);,例:作 y = cos(x) 在 0, 4 上的图像,plot(x,y),74,二维作图命令,平面曲线绘图命令: plot,绘制向量 y 的线性图 即以下标为横坐标,y 的分量为纵坐标,等价于:,y=0,0.4,0.8,1.0,0.9,6.1; plot(y);,例:,plot(y),x=1:length(y); plot(x,y);,思考:plot(y) 与 plot(x,y) 有什么区别?,75,图形的属性,这里的 str 是用 单引号 括起来的字符串

31、,用来指定图形的属性:点、线的形状和颜色,指定点和线的属性,plot(x,y,str),x=0:pi/20:2*pi; plot(x,cos(x),r+:);,例:,红色、虚线、 点用加号表示,x=0:pi/20:2*pi; plot(x,cos(x),bo-);,蓝色、间断线、 点用圆圈表示,颜色,线型,点标记:可以全部指定,也可以部分指定,顺序任意,76,点和线的基本属性,help plot,77,标题和坐标轴标注,title(str),添加标题,这里的 str 是用 单引号 括起来的字符串,添加坐标轴标注,xlabel(str) ylabel(str),x=0:pi/20:2*pi; p

32、lot(x,cos(x); title(y=cos(x) 的图像); xlabel(x 轴); ylabel(y 轴);,例:,78,绘制多个函数图像,plot(x1,y1, x2,y2, .),另一中实现方法:hold on,hold on plot(x1,y1,str1) plot(x2,y2,str2) . hold off,在同一个绘图窗口绘制多个图像,plot(x1,y1,str1, x2,y2,str2, .),也可以同时指定每条曲线的属性,x=0:pi/20:2*pi; y1=sin(x); y2=cos(x); plot(x,y1, x,y2);,例:,hold on; plo

33、t(x,y1); plot(x,y2);,79,图例,legend(str1,str2, .),添加图例,x=0:pi/20:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,bo-, x,y2,ks-); legend(sin(x),cos(x),例:,在任何指定的地方添加文本,text(x,y,str),将 str 放到由 (x,y) 坐标指定的地方,直观方法:可以直接在绘图窗口进行编辑,80,划分绘图窗口,subplot(m,n,p),将一个绘图窗口分割成 mn 个子区域,并 按行 从左至右 依次编号 ,p 表示第 p 个绘图子区域。,x=-pi:pi/20:p

34、i; subplot(2,2,1); plot(x,sin(x); subplot(2,2,2); plot(x,cos(x); subplot(2,2,3); plot(x,x.2); subplot(2,2,4); plot(x,exp(x);,例:,划分绘图窗口,81,其他相关命令,保留当前绘图窗口中的图像,hold on / hold off,新建绘图窗口/选取绘图窗口,figure(n),显示网格,grid on / grid off,关闭绘图窗口,close / close all,82,本讲主要内容,二维平面作图 三维空间作图 符号作图 Matlab 绘图过程/原理,83,三维曲

35、线,三维曲线绘图命令 : plot3,设三维曲线的参数方程为:x=x(t),y=y(t),z=z(t), 则其图形可由下面的命令绘出:,例:三维螺旋线,plot3 只能绘制用参数方程表示的三维曲线 plot3 的用法与 plot 类似,t=0:pi/10:10*pi; x=sin(t); y=cos(t); z=2*t; plot3(x,y,z);,plot3(x,y,z),84,三维曲面示例,85,三维曲面,绘制曲面的网格图,绘制由矩阵 X,Y,Z 所确定的曲面的网格图,mesh(X,Y,Z),X,Y=meshgrid(-3:1/8:3); Z=peaks(X,Y); mesh(X,Y,Z)

36、;,例:,86,三维曲面绘制过程,绘制空间曲面 z = z(x,y) 网格图的步骤:,(1) 对 x 的取值区域和 y 的取值区域进行分割, 得到离散的点 (xij, yij),这些离散的点称为网格点 (2) 这些网格点构成了网格矩阵,即矩阵 X 和 Y (3) 计算 z 在这些网格点上的函数值,即可得矩阵 Z (4) 调用 Matlab 的绘图命令 mesh 绘出曲面图形,怎样得到网格矩阵 X 和 Y ?, 利用 Matlab 的网格生成函数: meshgrid,87,网格生成函数,若 y = x, 则可简写为:X, Y=meshgrid(x),X,Y=meshgrid(x,y),x,y 是

37、分别对 x 取值区域和 y 取值区域进行分割后 得到的向量 X, Y 即为我们所需要的网格矩阵,网格生成函数,88,例:绘制墨西哥帽子,墨西哥帽子,a = 8 时的曲面图形,x=-8:0.5:8; y=-8:0.5:8; X,Y=meshgrid(x,y); r=sqrt(X.2+Y.2)+eps; Z=sin(r)./r; mesh(X,Y,Z);,x 方向与 y 方向可以取不同的步长 注意要使用数组运算,89,meshc 和 meshz,绘制带等高线的空间曲面:meshc,使用方式与 mesh 相同,在 mesh 基础上增加等高线,其它网格曲面绘制函数:meshc、meshz,绘制带屏蔽面

38、的空间曲面:meshz,使用方式与 mesh 相同,在 mesh 基础上屏蔽边界面,meshc,meshz,90,Mesh 绘图,显式方程绘图:,x=a:h1:b; y=c:h2:d; % 区域划分 X,Y=meshgrid(x,y); % 生成网格 Z=z(X,Y); % 计算网格上的函数值 mesh(X,Y,Z); % 调用绘图命令,参数方程绘图:,u=a:h1:b; v=c:h2:d; % 区域划分 U,V=meshgrid(u,v); % 生成网格 X=x(U,V); Y=y(U,V); Z=z(U,V); % 计算函数值 mesh(X,Y,Z); % 调用绘图命令,91,Mesh 绘

39、图举例,例:绘制马鞍面,x=-2:0.1:2; y=-3:0.1:3; X,Y=meshgrid(x,y); Z=X.2/4-Y.2/9; mesh(X,Y,Z);,显式方程绘图,92,Mesh 绘图举例,例:绘制椭圆抛物面,t=0:pi/20:2*pi; r=0:0.1:5; T,R=meshgrid(t,r); X=3*R.*cos(T); Y=4*R.*sin(T); Z=R.2; mesh(X,Y,Z);,参数方程绘图,93,曲面作图其它命令,空间曲面其它作图命令,注:mesh 绘制网格图,surf 绘制着色表面图,绘制带颜色的表面图 (surface),参数含义同 mesh,注:sp

40、here 只能画单位球面!,surf(X,Y,Z),sphere(n),绘制单位球面,n 代表网格的多少,94,surf 作图举例,X,Y=meshgrid(-8:0.5:8); r=sqrt(X.2+Y.2)+eps; Z=sin(r)./r; surf(X,Y,Z);,surf,mesh,95,如果没有给出 n 的值, 则系统默认为 n=20,sphere 作图,sphere;, sphere(60); axis equal;,96,其它调用方式:,坐标轴控制,axis(xmin,xmax, ymin,ymax, zmin,zmax),作用:指定坐标轴的显示范围,坐标轴控制命令,axis

41、on/off % 显示/不显示坐标轴,97,s 为字符串,表示所采用的色系,常用的值有,图像的着色方案,colormap(s),图形的着色方案,98,绘图小结,平面曲线绘图:,X=a:h:b;,(1) 绘图区域划分,y=f(x); %,(2) 计算分割点上的函数值,plot(x,y);,(3) 调用 Matlab 绘图命令,99,绘图小结,三维曲面绘图:,x=a:h1:b; y=c:h2:d;,(1) 绘图区域划分,X,Y=meshgrid(x,y);,(2) 生成网格,Z=z(X,Y); % 数组运算,(3) 计算在网格点上的函数值,mesh(X,Y,Z);,(4) 调用 Matlab 绘图

42、命令,100,绘图小结,三维曲面参数方程绘图:,u=a:h1:b; v=c:h2:d;,(1) 绘图区域划分,U,V=meshgrid(u,v);,(2) 生成网格,X=x(U,V); Y=y(U,V); Z=z(U,V); % 数组运算,(3) 计算在网格点上的函数值,mesh(X,Y,Z);,(4) 调用 Matlab 绘图命令,101,本讲主要内容,二维平面作图 三维空间作图 符号作图 Matlab 绘图过程/原理,102,二维曲线 ezplot,二维曲线符号绘图函数,ezplot(f(x),a,b),绘制 y = f (x) 在区域 a x b 上的图形,ezplot(f(x,y),a

43、,b,c,d),绘制 f (x, y) = 0 在区域 a x b, c y d 上的图形,ezplot(x(t),y(t),a,b),绘制 x = x(t), y = y(t) 在区域 a t b 上的图形,103,二维曲线 ezplot,ezplot(f(x),绘制 y = f (x) 在区域 -2 x 2 上的图形,ezplot(f(x,y),绘制 f (x, y) = 0 在区域 -2 x, y 2 上的图形,ezplot(x(t),y(t),绘制 x = x(t), y = y(t) 在区域 0 t 2 上的图形,缺省的绘图区间为 -2, 2,缺省的绘图区间为 -2, 2,缺省的绘图

44、区间为 0, 2,104,ezplot 作图,ezplot(sin(x);,ezplot(sin(x),-pi,pi);,符号作图时要注意使用 单引号!,105,Matlab 符号作图,空间曲线符号作图,ezplot3(x(t),y(t),z(t),a,b),绘制空间曲线:x = x (t) , y = y (t) , z = z (t) , a t b,ezplot3(x(t),y(t),z(t),绘制空间曲线:x = x (t) , y = y (t) , z = z (t) , 0 t 2,缺省的绘图区间为 0, 2,ezplot3(2*t,sin(t),cos(t),0,20),例:,

45、106,Matlab 符号作图,空间曲面符号绘图函数: ezmesh、ezsurf,ezmesh(z(x,y),a,b,c,d),ezmesh(z(x,y),a,b),ezmesh(z(x,y),ezsurf 的用法 与 ezmesh 相同,107,Matlab 符号作图,空间曲面符号绘图函数: ezmesh、ezsurf,ezmesh(x(s,t),y(s,t),z(s,t),a,b,c,d),ezmesh(x(s,t),y(s,t),z(s,t),a,b),ezmesh(x(s,t),y(s,t),z(s,t),108,本讲主要内容,二维平面作图 三维空间作图 符号作图 Matlab 绘图

46、过程/原理,109,曲线作图过程,基本原理:点 线,即先画点,后连线,110,线: 分别沿 x 方向和 y 方向 连接这些点即可得到,三维曲面作图,先画点,后连线,构成曲面网格图,111,Matlab应用(三), Matlab 符号运算,112,主要内容,Matlab 符号运算介绍 符号对象与基本符号运算 symvar、 subs 和 vpa 常见的符号计算,113,符号运算,计算以推理方式进行,不受计算误差累积所带来的困扰,符号计算指令的调用比较简单,与教科书上的公式相近,符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时 ),符号计算所需的运行时间相对较长,符号运算的特点

47、,114,Matlab 符号运算,Matlab 符号运算是通过符号数学工具箱(Symbolic Math Toolbox)来实现的。,Matlab 的符号数学工具箱可以完成几乎所有得符号运算功能,如:符号表达式的运算,符号矩阵的运算,符号微积分,符号作图,符号代数方程求解,符号微分方程求解等。 此外,该工具箱还支持可变精度运算,即支持以指定的精度返回结果。,Matlab 符号运算,115,符号运算举例,求一元二次方程 ax2 + bx + c = 0 的根,solve(a*x2+b*x+c=0),求的根 f (x) = (cos x)2 的一次导数,x=sym(x); diff(cos(x)2

48、),计算 f (x) = x2 在区间 a, b 上的定积分,syms a b x; int(x2,a,b),116,内容提要,Matlab 符号运算介绍 符号对象与基本符号运算 symvar、 subs 和 vpa 常见的符号计算,117,在进行符号运算时,必须先定义基本的符号对象,可以是 符号变量、符号表达式等 符号对象是一种数据结构,符号对象,符号表达式:含有符号对象的表达式,符号矩阵/数组:元素为符号表达式的矩阵/数组,Matlab 符号对象,118,sym 用来建立单个符号对象,一般调用格式为:,符号对象的定义/声明:sym、syms,符号对象的建立,符号变量 = sym(x),参数 x 可以是一个数或数值矩阵,也可以是字符串,b=sym(1/3),C=sym(1 ab; c d),119,符号对象的建立,syms 符号变量1 符号变量2 . 符号变量n,a=sym(a); b=sym(b);

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1