Matlab教学教材教案教材资料.doc

上传人:小** 文档编号:630271 上传时间:2019-04-22 格式:DOC 页数:33 大小:210KB
返回 下载 相关 举报
Matlab教学教材教案教材资料.doc_第1页
第1页 / 共33页
Matlab教学教材教案教材资料.doc_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《Matlab教学教材教案教材资料.doc》由会员分享,可在线阅读,更多相关《Matlab教学教材教案教材资料.doc(33页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-_MatlabMatlab 简易教程简易教程前言前言Matlab 是 matrix laboratory 的缩写,是矩阵实验室的意思,它是一个功能强大的数学工具软件。Matlab 的产生是与数学计算紧密联系在一起的,1980年美国新墨西哥大学计算机科学系主任 cleve Moler 在给学生讲授线性代数课程时,发现学生利用高级语言编程解决线性代数问题花费很多时间,为了减轻学生编程的负担,用高级语言编写了最早的 MATLAB。Matlab 语言是一种用于工程计算的高性能语言,它主要包括两大内容:核心函数和工具箱。Matlab 的典型应用包括以下几个方面:数学计算、算法开发、建模及仿真、数据分析

2、及可视化、科学及工程绘图、应用开发。第第 1 1 章章 matlabmatlab 的工作环境的工作环境1 1启动和退出启动和退出 matlabmatlab启动 matlab 程序与启动其它 windows 程序一样,通常通过单击桌面上的相应图标来执行。当然,也可以通过“开始”菜单中相应命令启动。退出 matlab 时,也可以像退出其它 windows 程序一样操作,也可以在命令窗口中键入 quit 或 exit 来退出。2 2菜单和工具栏菜单和工具栏Matlab 的菜单和工具界面与 windows 程序的界面类似,用户只要稍加实践就可以掌握其功能和使用方法。菜单的内容会随着在命令窗口执行不同命

3、令而作出相应改变。3 3命令窗口命令窗口命令窗口是 matlab 的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。Matlab 命令窗口中的“”为运算提示符,表示 matlab 处于准备状态。当在提示符后输入一段程序或一段运算式后按“回车”键,matlab会给出计算结果,并再次进入准备状态。单击命令窗口右上角的箭头按钮可以使命令窗口脱离主窗口而成为一个独立的窗口。常用控制命令及其功能:clc:清除命令窗口中的内容clear:清除工作空间中的变量-_clf:清除图形窗type :显示指定的 M 文件的内容exit/quit:结束 matlab 会话,程序完成,如果没有明确保存,则变量

4、中的数据丢失help :获取在线帮助4 4历史命令窗口历史命令窗口该窗口主要用于记录所有执行过的命令,在默认设置下,该窗口会保留自安装后所有使用过命令的历史记录,并标明使用时间。同时,用户可以通过用鼠标双击某一历史命令来重新执行该命令。与命令窗口类似,该窗口也可以成为一个独立的窗口。选中该窗口,然后单击鼠标右键,弹出一个菜单,用户可以通过此菜单删除或粘贴历史记录,也可以为选中的表达式或命令创建一个 M 文件。5 5当前工作目录窗口当前工作目录窗口当前工作目录是指 matlab 运行文件时的目录。只有在当前工作目录或搜索路径下的文件、函数可以被运行或调用。在窗口中可显示或改变当前工作目录,还可以

5、显示当前工作目录下的文件。6 6工作空间窗口工作空间窗口在工作空间窗口中将显示目前内存中所有的 matlab 变量的变量名、数据结构、字节数以及类型等信息。第第 2 2 章章 基本运算与函数基本运算与函数在 MATLAB 下进行基本数学运算,只需将运算式直接打入提示号()之后,并按入 Enter 键即可。例如: (5*2+1.3-0.8)*10/25 ans =4.2000 又如:求 10 的阶乘 factorial(10) 求可用15 30C nchoosek(30,15) -_MATLAB 会将运算结果直接存入一变量 ans,代表 MATLAB 运算后的答案(Answer)并显示其数值于屏

6、幕上。我们也可将上述运算式的结果设定给另一个变量 x: x = (5*2+1.3-0.8)*102/25 x = 42 此时 MATLAB 会直接显示 x 的值。由上例可知,MATLAB 认识所有一般常用到的加(+) 、减(-) 、乘(*) 、除(/)的数学运算符号,以及幂次运算() 。 若不想让 MATLAB 每次都显示运算结果,只需在运算式最后加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*42); 若要显示变量 y 的值,直接键入 y 即可: y y =-0.0045 在上例中,sin 是正弦函数,exp 是指数函数,这些都是 MATLAB 常用到的数学函数,函数

7、里的参数必须用圆括号括起来。1 1三角函数三角函数MATLAB 常用的三角函数 名名 称称含含 义义名名 称称含含 义义名名 称称含含 义义 s in正 弦a sin反 正弦s ec正 割 c os余 弦a cos反 余弦c sc余 割 t an正 切a tan反 正切a sec反 正割 c ot余 切a cot反 余切a csc反 余割pi:常数2.2.指数和对数函数指数和对数函数名称含义名称含义名称含义 expE 为底的指数log1010 为底的对数pow22 为底的指数 log自然对数log22 为底的对数sqrt平方根-_3 3复数函数复数函数名 称含义名称含义名称含义ab s模con

8、j复数共轭real复数实部an gle相角imag复数虚部complex用实部和虚部构造一个复数第第 3 3 章章 数组、矩阵及其运算数组、矩阵及其运算数组或矩阵是 matlab 最基础的内容之一,几乎所有的数据都是用数组的形式存储的,这就是 matlab 又被称为矩阵实验室的原因。3.13.1 向量的创建向量的创建3.1.13.1.1 一维数组(向量)的创建一维数组(向量)的创建一维数组(向量)创建有直接输入法、步长生成法、定数线性采样法和定数对数采样法等。1 1直接输入法直接输入法(1)使用分号,创建一维列向量 x1=pi;log10(100);7*2;23x1 =3.14162.0000

9、14.00008.0000(2)使用空格或逗号,创建一维行数组 x2=pi log10(100) 7*2 23x2 =3.1416 2.0000 14.0000 8.00002 2步长生成法步长生成法采用通用格式 a:step:b。其中 a 表示数组的第一个元素;step 表示数组的间隔,即步长;b 表示数组的最后一个元素。如果省略 step,默认值为 1。-_ x3=1:2:10x3 =1 3 5 7 93.3.定数线性采样法定数线性采样法在设定了总个数的条件下,均匀采样分布生成一维行向量。采用通用格式:x=linspace(a,b,n)x=linspace(a,b,n)其中 a,b 分别是

10、数组的第一个和最后一个元素,n 表示采样点数。例如: x=linspace(1,10,5)x =1.0000 3.2500 5.5000 7.7500 10.00004 4定数对数采样法定数对数采样法在设定了总个数的条件下,通过“常用对数”采样分布生成一维行向量。采用通用格式:x=logspace(a,b,n)x=logspace(a,b,n)其中 a,b 分别是数组的第一个和最后一个元素,n 表示采样点数。3.1.23.1.2 一维向量元素寻访和赋值一维向量元素寻访和赋值1 1子向量的寻访子向量的寻访 x=linspace(1,10,5) %定义向量x =1.0000 3.2500 5.50

11、00 7.7500 10.0000 x(2) %查看向量第二个元素ans =3.2500 x(1 3 5) %查看向量第一、三、五个元素组成的子向量ans =1.0000 5.5000 10.0000-_ x(3:5) %查看向量第三到第五个元素组成的子向量ans =5.5000 7.7500 10.0000 x(find(x6) %查看大于 6 的元素组成的子向量ans =7.7500 10.00002 2子向量的赋值子向量的赋值 x(2)=5x =1.0000 5.0000 5.5000 7.7500 10.0000 x(4) = % 删除第四个元素MATLAB 亦可取出向量的一个元素或一

12、部份来做运算: y=x(2)*3+x(4) % 取出 x 的第二个元素 3 倍后和 x 的第四个元素来相加,最后赋给变量 y。 3.23.2 矩阵的创建矩阵的创建3.2.13.2.1 矩阵的创建矩阵的创建1 1采用直接输入法创建矩阵采用直接输入法创建矩阵采用矩阵构造符“” 。将各元素依次输入构造符内,并且以空格或者逗号分隔,行与行之间用分号分隔。例:构造一个 2*3 矩阵,第一行各元素依次为 1,2,3,第一行各元素依次为 4,5,6。 A=1 2 3;4 5 6A =1 2 34 5 62 2利用内部函数创建矩阵利用内部函数创建矩阵1)零矩阵命令:zeros(i,j)可以创建 i 行 j 列

13、的全零矩阵。-_2)全 1 矩阵命令:ones(i,j)可以创建 i 行 j 列的全 1 矩阵3)对角线为 1 的矩阵命令:eye(i,j)可以创建 i 行 j 列的对角线为 1 的矩阵。当然,如果想创建单位矩阵,只需要用命令 eye(i)即可。4)randn(n) n 阶随机矩阵,元素服从正态分布5)rand(n) 产生 0-1 均匀分布的随机数矩阵6)magic(n) n 阶魔方矩阵3.2.23.2.2 矩阵的寻访和赋值矩阵的寻访和赋值用冒号访问矩阵时:A(i,j)表示 A 中的第 i 行第 j 列所在位置的元素;A(:,j)表示 A 的第 j 列;A(i,:)表示 A 的第 i 行;A(

14、i:j)表示 A 中的第 i 个元素到第 j 个元素;A(:,i:j)表示第 i 列到第 j 列;A(i:j,:)表示第 i 行到第 j 行;A(I J,:)表示第 i、j 两行。 A = 1 2 3 4; 5 6 7 8; 9 10 11 12 A =1 2 3 45 6 7 89 10 11 12 A(2,3) = 5 % 改变位于第二行,第三列的元素值A =1 2 3 45 6 5 89 10 11 12 B = A(2,1:3) % 取出部份矩阵 B B =5 6 5 A = A B % 将 B 转置后以列向量并入 A A =1 2 3 4 5-_5 6 5 8 69 10 11 12

15、 5 A(:, 2) = % 删除第二列(:代表所有行) A =1 3 4 55 5 8 69 11 12 5 A = A; 4 3 2 1 % 加入第四行 A =1 3 4 55 5 8 69 11 12 54 3 2 1 A(1 4, :) = % 删除第一和第四行(:代表所有列)A =5 5 8 69 11 12 53.33.3 向量与矩阵的运算向量与矩阵的运算3.3.13.3.1 向量与矩阵的代数运算向量与矩阵的代数运算运算符用法功能描述+ +A+BA+BA 和 B 对应元素的相加,要求 A 和 B 有相同的长度。常数也可以和矩阵相加.- -A-BA-BA 和 B 对应元素的相减,要求

16、 A 和 B 有相同的长度。常数也可以和矩阵相减。* *A*BA*B矩阵乘法,要求 A 的列数要与 B 的行数相同,常数也可以和矩阵相乘。/ /A/BA/B(右除)相当于 B*inv(A),方程 X*A=B 的解。 ABAB(左除)相当于 inv(A)*B,方程 A*X=B 的解。 AnAn相当于 A*A*AA(n 个 A 相乘)-_AA矩阵的转置.*.*A.*BA.*BA 和 B 对应元素的相乘, 要求 A 和 B 有相同的长度././A./BA./B(右除)矩阵 A 除以矩阵 B 的对应元素, 要求 A 和 B 有相同的长度,常数也可以和矩阵相除.A.BA.B(左除)矩阵 B 除以矩阵 A

17、 的对应元素, 要求 A 和 B 有相同的长度,常数也可以和矩阵相除。.A.nA.n矩阵 A 每个元素都作 n 次方运算例如: A=1 2 3;4 5 6;7 8 9,B=9 8 7;6 5 4;3 2 1 A =1 2 34 5 67 8 9B =9 8 76 5 43 2 1 A-5ans =-4 -3 -2-1 0 12 3 4 3-Aans =2 1 0-1 -2 -3-4 -5 -6 72./A-_ans =72.0000 36.0000 24.000018.0000 14.4000 12.000010.2857 9.0000 8.0000例 2:求解以下方程组121210 4xx

18、xx A=1 1;1 -1; B=10 4; X=AB3.3.23.3.2 向量与矩阵的关系运算向量与矩阵的关系运算运算符功能描述大于=大于等于=等于=不等于例如: magic(3)4*ones(3)ans =1 0 10 1 10 1 03.3.33.3.3 矩阵的运算矩阵的运算1 1矩阵的转置与逆矩阵的转置与逆矩阵的转置运算符:“ ” 。求解矩阵的逆矩阵的命令格式为:y=inv(x)要求矩阵 x 有逆矩阵-_ A=1 1;2 1A =1 12 1 B=inv(A)B =-1 12 -1 A*Bans =1 00 12 2方阵的行列式方阵的行列式命令格式:d=det(x) A=1 1;2 1

19、A =1 12 1 det(A)ans =-13 3矩阵的秩矩阵的秩命令格式:k=rank(A)4 4矩阵的迹矩阵的迹矩阵对角线元素之和称为迹,求矩阵的迹的命令格式为:B=trace(A)5 5矩阵的特征值和特征向量矩阵的特征值和特征向量命令格式:V,D=eig(A)例:求矩阵 A =-_-2 1 10 2 0-4 1 3的特征值和特征向量解: A=-2 1 1;0 2 0;-4 1 3A =-2 1 10 2 0-4 1 3 V,D=eig(A)V =-0.7071 -0.2425 0.30150 0 0.9045-0.7071 -0.9701 0.3015(注意这里对应的特征向量是列向量)

20、D =-1 0 00 2 00 0 26 6向量的常用函数向量的常用函数min(x): 向量 x 的元素的最小值 max(x): 向量 x 的元素的最大值 mean(x): 向量 x 的元素的平均值 median(x): 向量 x 的元素的中位数 std(x): 向量 x 的元素的标准差 diff(x): 向量 x 的相邻元素的差 sort(x): 对向量 x 的元素进行排序length(x): 向量 x 的元素个数 sum(x): 向量 x 的元素总和 -_prod(x): 向量 x 的元素总乘积 dot(x, y): 向量 x 和 y 的内 积 第第 4 4 章章 MatlabMatlab

21、 程序设计基础程序设计基础Matlab 作为一种广泛应用于科学计算的工具软件,不仅提供丰富的函数库,还可以像其它高级语言程序设计一样进行程序设计,编写扩展名为.m 的 M 文件,实现各种程序设计功能。由于 matlab 是由 C 语言开发现来的,因些 M 文件的语法规则与 C 语言几乎一致,简单易学。4.14.1 M M 文件基础文件基础M 文件可再细分为脚本(Scripts)及函数(Functions)两类,二者相同之处是它们都是以.m 作为扩展名的文本文件,但二者的语法和使用上略有不同。脚本其效用和将命令逐一输入完全一样,而函数在使用有严格要求。4.1.14.1.1 M M 文件的创建文件

22、的创建当需要创建一个 M 文件时,可以通过 file|new|M-file 菜单进入文本编辑器界面,并打开一空白文档,进而可以编辑和编译运行它的内容。4.1.24.1.2 自定义函数自定义函数自定义函数 M 文件的第一行有特殊的要求,其必须遵循如下的形式:function =()其他的各行为程序运行语句,没有特殊要求。但这个 M 文件的文件名必须是.m例 1、编写一个函数文件,计算 n!可以编写阶乘计算函数 njc(n):function y=njc(x) y=1; k=1;while k njc(4)ans =244.24.2 matlabmatlab 程序控制结构程序控制结构matlab

23、语言的程序结构与其它高级语言是一致的,分为顺序结构,循环结构,分支结构。(1)顺序结构 依次顺序执行程序的各条语句(2)循环结构 被重复执行的一组语句,循环是计算机解决问题的主要手段。(3)分支结构根据一定条件来选择执行各条语句。4.2.14.2.1 循环语句循环语句1 1forfor endend 循环循环语法为:for i = 表达式 (表达式为一个向量)可执行语句end例:利用 for 循环求 1+2+3+4+5 的值sum=0;for i=1:5sum=sum+i;end2.while2.while endend 循环循环while 循环将循环体中的语句循环执行不定次数。语法为:whi

24、le 表达式-_循环体语句end表达式一般是由逻辑运算和关系运算以及一般运算组成的,以判断循环的进行和停止;只要表达式的值 非 0,继续循环;直到表达式值为 0,循环停止。例:用 while 循环求 1 到 100 间整数的和sum=0;i=1;while isym(x)%定义变量 x 为符号变量sym(x+1)%定义表达式 x+1 为符号表达式格式 2: syms 变量名 1 变量名 2 变量名 n功能:定义变量名 1、变量 2、变量名 n 为符号变量。注意是变量名之间要用空格或分号隔开5.25.2 符号方程的求解符号方程的求解1.1.方程的解方程的解命令格式X=solve(eqn) %直接

25、求出方程 eqn 的根X=solve(eqn,x) %直接求关于指定变量的方程 eqn 的根例如:求方程的根2560xx syms x X=solve(x2+5*x+6=0)以如:求方程的解220xax如果 x 是未知数,则 syms a x X=solve(x2-a*x+2=0,x)如果 a 是未知数,则 syms a x X=solve(x2-a*x+2=0,a)2.2.方程组的解方程组的解-_命令格式直接求出方程组的根:x,y,z,=solve(eqn1 , eqn2 ,, eqnn) 直接求出关于指定变量的方程组的根:x,y,z,=solve(eqn1 , eqn2 ,, eqnn,x

26、,y,z.) 例如:求方程组的解231231221 4122xx xxxxx syms x1 x2 x3 x1,x2,x3=solve(x2+2*x3=1,x1+x2+4*x3=1,2*x1-x2=2)又如求解方程组的解22280 4xy x syms x y x,y=solve(x2+y2-8=0,x2=4)5.35.3 极限极限格式:limit (f, t, a, leftorright)功能:求符号变量 t 趋近 a 时,求左极限,函数 f 的(左或右)极限。right表示求右极限,left表示左极限,省略时表示求一般极限;a 省略时变量 t 趋近 0。例子:32lim(1)xxt x

27、s=sym(1+2*t/x)(3*x)s =(1+2*t/x)(3*x) syms x t limit(s,x,inf)ans =exp(6*t)5.45.4 导数和微分导数和微分-_5.4.15.4.1 导数导数diff 函数用以演算一函数的微分,相关的函数语法有下列 4 个: diff(f) 传回 f 对预设独立变量的一次微分值 diff(f,t) 传回 f 对独立变量 t 的一次微分值 diff(f,n) 传回 f 对预设独立变量的 n 次微分值 diff(f,t,n) 传回 f 对独立变量 t 的 n 次微分值 diff(diff(f,x,m),y,n) 高阶混合偏导数先定义下列三个方

28、程式,接著再演算其微分项: s1 =sym( 6*x3-4*x2+b*x-5); diff(s1) ans=18*x2-8*x+b diff(s1,2) ans= 36*x-8 diff(S1,b) ans= x 5.4.25.4.2 积分积分int 函数用以演算一函数的积分,这个函数要找出一符号式 F 使得diff(F)=f。如果积分式的解析式不存在的话或是 MATLAB 无法找到,则 int 传回原输入的符号式。相关的函数语法有下列 4 个: int(f) 传回 f 对预设独立变量的积分值 int(f,t) 传回 f 对独立变量 t 的积分值 int(f,a,b) 传回 f 对预设独立变量

29、的积分值,积分区间为a,b int(f,t,a,b) 传回 f 对独立变量 t 的积分值,积分区间为a,b int(f,m,n) 传回 f 对预设变量的积分值, 积分区间为m,n,m 和n 为符号式 我们示范几个例子: S1 = sym(6*x3-4*x2+b*x-5); S2 = sym(sin(a); S3 =sym( sqrt(x); -_int(S1) ans= 3/2*x4-4/3*x3+1/2*b*x2-5*x int(S2) ans= -cos(a) int(S3) ans= 2/3*x(3/2) int(S3,a,b) ans= 2/3*b(3/2)- 2/3*a(3/2) i

30、nt(S3,0.5,0.6) ans= 2/25*15(1/2)-1/6*2(1/2) numeric(int(S3,0.5,0.6) % 使用 numeric 函数可以计算积分的数值 ans= 0.0741 练习:计算1、 (22/3)402 21xdxx 2、11221(1) xyxy dy dx s=sym(y*sqrt(1+x2-y2)s =y*sqrt(1+x2-y2) syms x y int(int(s,y,x,1),x,-1,1)ans =1/25.55.5 函数的零点函数的零点利用命令 ezplot 函数画出函数的图像并画出网格图,观察函数大概在哪有根。由图中观察 y=f(x

31、)在何处附近与 x 轴相交,再用函数 fzero()求解。命令格式:fzero(function,x0) 即可求出在 x0 附近的根,其中 function 是先前已定义的函数名称。如果从函数分布图看出根不只一个,则须再代入另一个在根附近的 x0,再求出下-_一个根。 例:求函数在区间-5,5中的零点2( )cos2f xxxx f=sym(x2*cos(x)-x+2)f =x2*cos(x)-x+2 ezplot(f,-5 5),grid fzero(x2*cos(x)-x+2,2)ans =1.68305.65.6 一元函数的极值一元函数的极值格式:x=fminbnd(fun,x1,x2)

32、x,y=fminbnd(fun,x1,x2)其中:fun 是函数字符串或函数文件创建的函数;x1,x2 是区间端点;x,y是所求的极小值点坐标和函数值。例如:求函数在区间1.5 2.5的极值3229123yxxx y=2*x3-9*x2+12*x-3y =2*x3-9*x2+12*x-3 ezplot(y,0 4),grid xmin,ymin=fminbnd(y,1.5,2.5)xmin =2.0000ymin =1.00005.75.7 级数级数1 1级数的求和级数的求和格式:symsum (s, t, a, b)功能:求级数 s(级数的通式)中的符号变量 t 从第 a 项到第 b 项的级

33、数和。-_例如:求级数 1/1+1/2+1/3+1/n 的前三项的和,命令及结果为sym nsymsum(1/n, n,1, 3) ans=11/62.2.泰勒展开泰勒展开命令格式:taylor(fun,n,变量,a)其中: fun 为待展函数,n 为展开阶数,缺省是 6 阶;变量声明 fun 中的变量,省略变量则对默认变量展开;a 为变量求导的取值点,缺省为 0,即麦克劳林展开。例:将展开成幂级数21( )1f xx syms x;f=1/(1+x2)f =1/(1+x2) taylor(f,20)ans =1- x2+x4-x6+x8-x10+x12-x14+x16-x18 taylor(

34、f,20,x,1)ans =1-1/2*x+1/4*(x-1)2-1/8*(x-1)4+1/8*(x-1)5-1/16*(x-1)6+1/32*(x-1)8-1/32*(x-1)9+1/64*(x-1)10-1/128*(x-1)12+1/128*(x-1)13-1/256*(x-1)14+1/512*(x-1)16-1/512*(x-1)17+1/1024*(x-1)185.85.8 微分方程问题的计算微分方程问题的计算5.8.15.8.1 微分方程的求解微分方程的求解MATLAB 解常微分方程式的语法是y=dsolve(equ,condition,x),其中 equation 代表常微分方

35、程式即 y=g(x,y),且须以 Dy 代表一阶微分项 y,D2y 代表二阶微分项 y.,最后一个参数有指定变量的作用,condition 则为初始条件。y=2xcos2(y), y(0)=0.25 -_ syms x y y= dsolve(Dy = 2*x*cos(y)2,y(0) = pi/4,x)5.8.25.8.2 微分方程组的解微分方程组的解两条方程方程组的语法是x,y=dsolve(equ1, equ2,t),例如:求解微分方程组, 的解( )( )tx txyey ty (0)1,(0)1xy syms x y t x,y=dsolve(Dx=x+y+exp(-t),Dy=y,

36、x(0)=-1,y(0)=1,t)5.95.9 多项式运算多项式运算1.1.多项式的生成多项式的生成在 Matlab 里,多项式由一个行向量表示,它的系数按降序排列的。多项式用以下的方法定义表示成 P=1 011( ).nn nnP xa xa xaxa 01.na aa比如:p=3*x3+2*x2-4*x+5除系数法外,还可以用命令 poly()函数来创建多项式格式:poly()01.na aa功能:生成以向量中元素为根的多项式的系数向量即生成的多项式的系数向量为的展开式对应项的系数。01)()().(nxaxaxa2 2多项式求根多项式求根Matlab 使用 roots 函数解决这个问题。

37、3.3. 多项式示值多项式示值polyval(p,a)当 a 为常数时,求多项式 p 在 a 的值,当 a 为向量时,求 x 分别等于 a(i)时多项式的值。第第 6 6 章章 matlabmatlab 图视化功能图视化功能-_6.16.1 二维图形二维图形plot 是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的 x 及 y 坐标。下例可画出一条正弦曲线: close all; x=linspace(0, 2*pi, 100); % 100 个点的 x 坐标 y=sin(x); % 对应的 y 坐标 plot(x,y); 若要画出多条曲线,只需将坐标对依次放入 plo

38、t 函数即可: plot(x, sin(x), x, cos(x); 若要改变颜色,在坐标对后面加上相关字串即可Plot 绘图函数的参数参数意义参数意义r红色-实线g绿色-虚线b蓝色:点线y黄色-.点划线m洋红色o圆圈c青色x叉号w白色+加号k黑色s正方形*星号d菱形.点号H六角星右三角符P五角星上三角符此外,MATLAB 也可对图形加上各种注解与处理: -_x=linspace(0, 2*pi, 100); % 100 个点的 x 坐标 y=sin(x); % 对应的 y 坐标 plot(x,y, g);xlabel(x 轴); % x 轴注解 ylabel(y 轴); % y 轴注解 ti

39、tle(函数的图像); % 图形标题 legend(y = sin(x); % 图形注解 grid on; % 显示格线 我们可用 subplot 来同时画出数个小图形于同一个视窗之中: subplot(2,2,1); plot(x, sin(x); subplot(2,2,2); plot(x, cos(x); subplot(2,2,3); plot(x, sinh(x); subplot(2,2,4); plot(x, cosh(x); 思考:如何绘制一个多项式的曲线6.26.2 三维图形三维图形6.2.16.2.1 三维直线绘图三维直线绘图命令格式:plot3(X,Y,Z,linety

40、pe)例如:t=0:pi/100:20*pix=sin(t),y=cos(t),z=t.*sin(t).*cos(t)plot3(x,y,z);title(line in 3-D space)xlabel(x);ylabel(y);zlabel(z);grid on6.2.26.2.2 三维曲面三维曲面1 1产生三维数据产生三维数据以 meshgrid 产生在 x-y 平面的二维的网络数据命令格式:x=a :d1 :b ;y=c :d2 :d ;X,Y=meshgrid(x,y)-_2.2.绘制三维曲面的函数绘制三维曲面的函数 mesh,surfmesh,surfmesh(X,Y,Z,line

41、type)surf(X,Y,Z,linetype)此命令可画出立体网状图,其产生的图形都会依高度而有不同颜色。Matlab 中以 Meshgrid 配合 mesh 或 surf(用来绘制立方体曲面图)指令来绘制一个三维的曲面。先要以 meshgrid 产生在 x-y 平面的二维的网络数据,再以一组 z 轴的数据对应到二维的网格,即可画出三维的曲面。例如:,2222sinxyz xy 7.5,7.5x yx=-7.5:0.5:7.5;y= x;X,Y=meshgrid(x,y);R=sqrt(X.2+Y.2);Z=sin(R)./R+eps; %eps 是为了防止 0/0 情)mesh(X,Y,

42、Z)当然也可以用 surf(X,Y,Z)又如:z=peaks(50);mesh(z); 3.3.柱面图和球面图柱面图和球面图为了一些专业用户可以更方便地绘制出三维旋转体,MATLAB 专门提供了 2 个函数:柱面函数 cylinder 和球面函数 sphere1 1) 柱面图柱面图柱面图绘制由函数 cylinder 实现.X,Y,Z=cylinder(R,N) 此函数以母线向量 R 生成单位柱面.母线向量 R 是在单位高度里等分刻度上定义的半径向量.N 为旋转圆周上的分格线的条数. 例.柱面函数演示举例x=0:pi/20:pi*3;r=5+cos(x);a,b,c=cylinder(r,30)

43、;mesh(a,b,c)-_例.旋转柱面图. t=0:pi/12:3*pi;r=abs(exp(-0.25*t).*sin(t);X,Y,Z=cylinder(r,30);mesh(X,Y,Z) 2)2)球面图绘制由函数球面图绘制由函数 spheresphere 来实现来实现X,Y,Z=sphere(N) 此函数生成 3 个(N+1)*(N+1)的矩阵,利用函数surf(X,Y,Z) 可产生单位球面.X,Y,Z=sphere 此形式使用了默认值 N=20.Sphere(N) 只是绘制了球面图而不返回任何值.例.绘制地球表面的气温分布示意图.a,b,c=sphere(40);surf(a,b,c);axis(equal) %此两句控制坐标轴的大小相同.axis(square)colormap(hot)4 4 MatlabMatlab 图形处理图形处理下面综合应用 Matlab 函数命令来进行一些图形的透视、镂空、剪切和裁切处理等,详见 wu.mx0,y0,z0=sphere %产生单位球面的三维坐标x=2*x0y=2*y0z=2*z0clfsurf(x0,y0,z0) %画单位球面shading interp %采用插补明暗处理hold on mesh(x,y,z)colormap(hot) %产生 hot 色图hold off-_hidden off %产生透视效果

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com