MATLAB基础及其在数学建模中的应用_第1页
MATLAB基础及其在数学建模中的应用_第2页
MATLAB基础及其在数学建模中的应用_第3页
MATLAB基础及其在数学建模中的应用_第4页
MATLAB基础及其在数学建模中的应用_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB基础及其在数学建模中的应用MATLAB基础及其在数学建模中的应用工欲善其事,必先利其器讲座目标初步了解MATLAB;掌握其相关规则、常用函数;能进行简单的画图、计算;能解决一些现实问题。工欲善其事,必先利其器讲座目标目录MATLAB简介MATLAB 数据类型基本命令数学函数简单语句图形操作常见作图函数符号表达式与数值计算应用举例目录MATLAB简介1、MATLAB简介MATLAB是MAtrix LABoratory(矩阵实验室)的缩写;MATLAB是美国新墨西哥大学Clever Moler博士首创,采用FORTRAN语言编写,其初衷是解决线性代数课程中繁琐的矩阵运算。20世纪80年

2、代后出现了MATLAB的第二版,全部采用C语言编写;1984年Moler博士和一批数学家及软件专家创建了MathWorks公司,专门开发MATLAB。 1、MATLAB简介MATLAB是MAtrix LABora1、MATLAB简介MATLAB可以进行数学计算、算法开发、数据采集;建模、仿真;数据分析、开发和可视化;科学和工程图形应用程序的开发,包括图形用户界面的创建。1、MATLAB简介MATLAB可以进行数学计算、算法开发、1、MATLAB简介MATLAB的主要应用领域(1)数值分析;(2)数值和符号计算;(3)工程与科学绘图;(4)控制系统的设计与仿真;(5)数字图像处理;(6)数字信号

3、处理;(7)通讯系统设计与仿真;(8)财务与金融工程。1、MATLAB简介MATLAB的主要应用领域1、MATLAB简介MATLAB优势强大易用的科学计算语言; 全面的图形功能;独立开放的平台;实用的程序接口。1、MATLAB简介MATLAB优势1、MATLAB简介命令窗口(Command Window)工作空间管理窗口(Workspace)历史命令窗口(Command History)MATLAB主要窗口1、MATLAB简介命令窗口(Command Window)MATLAB基础及其在数学建模中的应用 1、MATLAB简介 命令窗口 命令窗口位于MATLAB默认桌面的中间,显示命令提示符为“

4、”,可在“”之后输入命令,按下Enter键后MATLAB会立即显示结果并将结果自动赋予变量ans,例如: (3.14*32+3)/2 ans = 15.6300 1、MATLAB简介 命令窗口MATLAB基础及其在数学建模中的应用MATLAB基础及其在数学建模中的应用知识点:一、变 量 与 函 数二、数 组三、 矩 阵四、 MATLAB编程*五、 MATLAB绘图知识点:一、变 量 与 函 数二、数 组 1、变量 MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过32个字符;(4)变量名必须以字母打头,之后可以是 任意字母、数字或

5、下划线,变量名中 不允许使用标点符号. 一、变 量 与 函 数 特殊变量表特殊变量表2、数学运算符号及标点符号(1)MATLAB的每条命令后,若为逗号或无标点符号, 则显示命令的结果;若命令后为分号,则禁止显示结果. (2)“%” 后面所有文字为注释. (3) “.”表示续行.2、数学运算符号及标点符号(1)MATLAB的每条命令后,若3赋值语句(1) 变量=表达式 (2) 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。变量的赋值实数赋值 x=5复数赋值 x=5+10j (或 x=5+10i) 向量的赋值行向量赋值:x=1 2 3 (或 x=1, 2 ,3) 列向量赋

6、值:y=1;2;3矩阵的赋值:x=1 2 3; 4 5 6; 7 8 93赋值语句(1) 变量=表达式 (2) 表达式其中例1 计算表达式的值,并显示计算结果。在MATLAB命令窗口输入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y)其中pi和i都是MATLAB预先定义的变量,分别代表代表圆周率和虚数单位。输出结果是:z =-0.3488 + 0.3286i例1 计算表达式的值,并显示计算结果。在MATLAB命令4、数学函数4、数学函数获得帮助如果你知道一个函数名,想了解它的用法,你可以用“help”命令得到它的帮助

7、文档: help functionname 如果你了解含某个关键词的函数,你可以用lookfor命令得到相关的函数: lookfor keyword 获得帮助如果你知道一个函数名,想了解它的用法,你可以用“hehelp 显示help 主题一览表help help 显示help 的帮助信息虽然help可以随时提供帮助,但必须知道准确的函数名称。当不能确定函数名称时,help就无能为力了。help 显示help 主题一览表2lookfor命令help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。lookfor命令只对M文件的第一行进行关键

8、字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。2lookfor命令help命令只搜索出那些关键字完全匹配3模糊查询Matlab 6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。3模糊查询Matlab 6.0以上的版本提供了一种类似模糊 MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件. 函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始,格式为: function 因变量名

9、=函数名(自变量名)函数值的获得必须通过具体的运算实现,并赋给因变量. 5、M文件M文件建立方法:1. 在Matlab中,点:File-New-M-file 2. 在编辑窗口中输入程序内容 3. 点:File-Save,存盘,M文件名必须 与函数名一致。Matlab的应用程序也以M文件保存。 MATLAB的内部函数是有限的,有时为了研究某新建M文件新建M文件MATLAB基础及其在数学建模中的应用RunRun例2:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2function f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)21.建立M文件:fun.m

10、2. 可以直接使用函数fun.m例如:计算 f(1,2), 只需在Matlab命令窗口键入命令:x=1 2fun(x) 返回例2:定义函数 f(x1,x2)=100(x2-x12)2+x=logspace(first,last,n) 创建从开始,到结束,有n个元素的对数分隔行向量. 1、创建简单的数组二、数 组x=a b c d e f 创建包含指定元素的行向量x=first:last 创建从first开始,加1计数,到last结束的行向量x=first:increment:last 创建从first开始,加increment计数,last结束的行向量x=linspace(first,last

11、,n) 创建从first开始,到last结束,有n个元素的行向量x=logspace(first,last,n) 1、创建简 2、 数组元素的访问(3)直接使用元素编址序号. x(a b c d) 表示提取数组x的第a、b、c、d个元素构成一个新的数组x(a) x(b) x(c) x(d). (2)访问一块元素: x(a :b :c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但不超过c),b可以为负数,b缺损时为1. (1)访问一个元素: x(i)表示访问数组x的第i个元素. 2、 3、数组的方向 前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量. 数组也可以是列向

12、量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示. 产生列向量有两种方法: 直接产生 例 c=1;2;3;4 转置产生 例 b=1 2 3 4; c=b 说明:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素. 3、数组的方向 4、数组的运算 (1)标量-数组运算 数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算. 设:a=a1,a2,an, c=标量则:a+c=a1+c,a2+c,an+c a.*c=a1*c,a2*c,an*c (=a*c) a./c= a1/c,a2/c,an/c (右除,从右到

13、左斜 /) a.c= c/a1,c/a2,c/an (左除,从左到右斜) a.c= a1c,a2c,anc c.a= ca1,ca2,can 4、数组的运算 (1)标量-数组运算设:a=a1,(2)数组-数组运算 当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的. 设:a=a1,a2,an, b=b1,b2,bn则:a+b= a1+b1,a2+b2,an+bn a.*b= a1*b1,a2*b2,an*bn a./b= a1/b1,a2/b2,an/bn a.b=b1/a1,b2/a2,bn/an a.b=a1b1,a2b2,anbn

14、 返回(2)数组-数组运算设:a=a1,a2,an, b=三、 矩 阵 逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列. 例 m=1 2 3 4 ;5 6 7 8;9 10 11 12 p=1 1 1 1 2 2 2 2 3 3 3 31、矩阵的建立三、 矩 阵 逗号或空格用于分隔某一行的元特殊矩阵的建立:. d=eye(m,n) 产生一个m行、n列的单位矩阵c=ones(m,n) 产生一个m行、n列的元素 全为1的矩阵b=zeros(m,n) 产生一个m行、n列的零矩阵a= 产生一个空矩阵

15、,当对一项操作无结 果时,返回空矩阵,空矩阵的大小为零. 特殊矩阵的建立:. d=eye(m,n) 产生一个m2、矩阵中元素的操作(1)矩阵A的第r行:A(r,:) (: 就是所有的)(2)矩阵A的第r列:A(:,r)(4)取矩阵A的第i1i2行、第j1j2列构成新矩阵:A(i1:i2, j1:j2)(5)以逆序提取矩阵A的第i1i2行,构成新矩阵:A(i2:-1:i1,:)(6)以逆序提取矩阵A的第j1j2列,构成新矩阵:A(:, j2:-1:j1 )(7)删除A的第i1i2行,构成新矩阵:A(i1:i2,:)= (8)删除A的第j1j2列,构成新矩阵:A(:, j1:j2)= (9)将矩阵

16、A和B拼接成新矩阵:A B;A;B(3)依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:)2、矩阵中元素的操作(1)矩阵A的第r行:A(r,:) (2)矩阵-矩阵运算 1 元素对元素的运算,同数组-数组运算。 3、矩阵的运算(1)标量-矩阵运算 同标量-数组运算。 2矩阵运算:矩阵加法:A+B矩阵乘法:A*B (保证可乘才行,A的列数=B的行数;点乘是要求A与B同型)方阵的行列式:det(A)方阵的逆:inv(A)方阵的特征值与特征向量:V,D=eigA 返回 (2)矩阵-矩阵运算3、矩阵的运算(1)标量-矩阵关系与逻辑运算 1、关系操作符关系与逻辑运算 1、关系操作符2、逻辑运算符2、逻

17、辑运算符矩阵的行列操作 A=1,2,3;4,5,6;7,8,9A = 1 2 3 4 5 6 7 8 9A(2,2)ans = 5矩阵操作矩阵的行列操作矩阵操作矩阵的行列操作 A=1 2 3;4 5 6;7 8 9 A(1,:)ans = 1 2 3 A(:,1)ans = 1 4 7矩阵的行列操作矩阵的行列操作 A=1 2 3;4 5 6;7 8 9 A(2:3,1:2)ans = 4 5 7 8 A(1,1)=10A = 10 2 3 4 5 6 7 8 9矩阵的行列操作常用的矩阵 名 称 调用格式zeros zeros(n)或zeros(n,m)ones ones(n) 或ones(n,

18、m)eye eye(n) 或eye(n,m)常用的矩阵矩阵运算 + 两矩阵相加 - 两矩阵相减 * 两矩阵相乘 / 右除 左除 乘方 转置矩阵运算数组运算 + 两数组相加 - 两数组相减 .* 两数组相乘 ./ 对应元素相除 . 乘方数组运算 A=1,2,3;4,5,6;7,8,9 A.*A %(点乘:对应元素分别相乘)ans = 1 4 9 16 25 36 49 64 81注意以下操作结果的区别 A=1,2,3;4,5,6;7,8,9注意以下操作 A=1,2,3; 4,5,6; 7,8,9 A*Aans = 30 36 42 66 81 96 102 126 150 mean(A)ans

19、= 4 5 6 %(默认是对各列分别求平均)MATLAB基础及其在数学建模中的应用 x=1,2,3 mean(x)ans = 2常用函数:meansumsort注意:若这些函数作用在矩阵上,其默认状态是对列操作 x=1,2,3示例: x=linspace(0,pi,10) %(从0到,平均往上增加,共10个数)x =0 0.3491 0.6981 1.0472 1.3963 1.7453 2.0944 2.4435 2.7925 3.1416 sin(x)ans =0 0.3420 0.6428 0.8660 0.9848 0.9848 0.8660 0.6428 0.3420 0.0000示

20、例:1、for循环:允许一组命令以固定的和预定的次数重复 for x=array commands end 在for和end语句之间的命令串commands按数组(array)中的每一列执行一次. 在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)控制流MATLAB提供三种决策或控制流结构: for循环、while循环、if-else-end结构. 这些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中,而不是直接加在MATLAB提示符下. 例 对n=1,2,10,求xn= 的值1、for循环:允许一组命令以固定的和预定的次数重复控制流M代码:

21、n = 1 : 10; xn=sin(n*pi./10); %或xn=sin(n.*pi./10); plot(n,xn) 代码: while expression commands end 只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串commands. 2、While循环 与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值. 例 设银行年利率为11.25%。将10000元钱存入银行,问多长时间会连本带利翻一番? while expression 2money=10000;years=0;while money1 f

22、=x2+1endif x1 f=x2+1else if x factorial(100)ans = 9.3326e+157简单语句例:自己编辑程序计算100的阶乘;简单作图绘制sin和cos曲线。 x=-2*pi:0.05:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,-b,x,y2,-m); %-表示实线,m表示品红色title(sinx and cosx); xlabel(x); ylabel(y); text(0,0,zero); legend(sin,cos) grid on %加网格简单作图绘制sin和cos曲线。 title(sinx aMATLAB基

23、础及其在数学建模中的应用图形控制坐标控制:axis ylim ylim 网格控制:grid on/off grid minor 多子图: subplot 补 充: xlabel ylabel linewidth makersize 图形控制坐标控制:axis ylim ylim 图形控制多子图:subplot (m,n,i)subplot(2,2,1)fplot(sin(x),-pi,pi)subplot(2,2,2)fplot(cos(x),-pi,pi)subplot(2,2,3)fplot(tan(x),-pi,pi)subplot(2,2,4)fplot(cot(x),-pi,pi)图

24、形控制多子图:作图函数fplot f函数图polar 极坐标图bar 柱状图pie 饼状图作图函数fplot f函数图作图函数fplot fplot(sin(x), -pi,pi)作图函数fplot作图函数polar t=0:0.01:4*pi; s=abs(sin(2*t).*cos(2*t); polar(t,s,r)作图函数polar作图函数bar p=21 15 41 10 8 8 3 6 2 30; t=0:9; bar(t,p)作图函数bar作图函数pie x=59 15 15 10 8 8 8; pie(x);作图函数pieMatlab作图二维图形三维图形图形处理Matlab作图

25、二维图形三维图形图形处理 Matlab作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传给Matlab函数画图. 命令为:PLOT(X,Y,S)PLOT(X,Y)-画实线PLOT(X,Y1,S1,X,Y2,S2,X,Yn,Sn) -将多条线画在一起X,Y是向量,分别表示点集的横坐标和纵坐标线型y 黄色 . 点 - 连线m 洋红 o 圈 : 短虚线c 蓝绿色 x x-符号 -. 长短线 r 红色 + 加号 - 长虚线1.曲线图 Matlab作图是通过描点、连线来实现的,故在画一个曲线图例 在0,2*pi用红线画si

26、n(x),用绿圈画cos(x). x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,r,x,z,go)解例 在0,2*pi用红线画sin(x),用绿圈画cos(2.符号函数(显函数、隐函数和参数方程)画图(1) ezplotezplot(x(t),y(t),tmin,tmax) 表示在区间tminttmax绘制参数方程 x=x(t),y=y(t)的函数图ezplot(f(x),a,b) 表示在axb绘制显函数f=f(x)的函数图ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在区间xminxxmax和 yminyymax

27、绘制隐函数f(x,y)=0的函数图2.符号函数(显函数、隐函数和参数方程)画图(1) ezpl例 在0,pi上画y=cos(x)的图形解 输入命令 ezplot(sin(x),0,pi)解 输入命令 ezplot(cos(t)3,sin(t)3,0.2*pi)解 输入命令ezplot(exp(x)+sin(x*y),-2,0.5,0,2)例 在0,pi上画y=cos(x)的图形解 输入命令(2) fplot注意:1 fun必须是M文件的函数名或是独立变量为x的字符串. 2 fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形。fplot(fun,lims) 表示绘制字符串fun

28、指定的函数在lims=xmin,xmax的图形.(2) fplot注意:fplot(fun,lims) 解 先建M文件myfun1.m: function Y=myfun1(x) Y=exp(2*x)+sin(3*x.2)再输入命令:fplot(myfun1,-1,2)解 输入命令: fplot(tanh(x),sin(x),cos(x),2*pi*-1 1 1 1)例 在-2,2范围内绘制函数tanh的图形解 fplot(tanh,-2,2)解 先建M文件myfun1.m:再输入命令:解 输入命令:3. 对数坐标图 在很多工程问题中,通过对数据进行对数转换可以更清晰地看出数据的某些特征,在对

29、数坐标系中描绘数据点的曲线,可以直接地表现对数转换.对数转换有双对数坐标转换和单轴对数坐标转换两种.用loglog函数可以实现双对数坐标转换,用semilogx和semilogy函数可以实现单轴对数坐标转换.loglog(Y) 表示 x、y坐标都是对数坐标系semilogx(Y) 表示 x坐标轴是对数坐标系semilogy() 表示y坐标轴是对数坐标系plotyy 有两个y坐标轴,一个在左边,一个在右边3. 对数坐标图 在很多工程问题中,通过对数据例 用方形标记创建一个简单的loglog解 输入命令: x=logspace(-1,2); loglog(x,exp(x),-s) grid on

30、%标注格栅例 创建一个简单的半对数坐标图解 输入命令: x=0:.1:10; semilogy(x,10.x)返回例 用方形标记创建一个简单的loglog解 输入命令三维图形1、空间曲线2、空间曲面返回三维图形1、空间曲线2、空间曲面返回PLOT3(x,y,z,s) 空 间 曲 线 1、 一条曲线 例 在区间0,10*pi画出参数曲线x=sin(t),y=cos(t), z=t. 解 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) rotate3d %旋转n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值指定颜色、线形等PLOT3(x,y,z,s) 空 间 曲

31、 线 1、 一 PLOT3(x,y,z)2、多条曲线例 画多条曲线观察函数Z=(X+Y).2. (这里meshgrid(x,y)的作用是产生一个以向量x为行、向量y为列的矩阵)其中x,y,z是都是m*n矩阵,其对应的每一列表示一条曲线.解 x=-3:0.1:3;y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; plot3(X,Y,Z)返回 PLOT3(x,y,z)2、多条曲线例 画多条曲线观空 间 曲 面例 画函数Z=(X+Y).2的图形. 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; surf(X

32、,Y,Z) shading flat %将当前图形变得平滑(1) surf(x,y,z)画出数据点(x,y,z)表示的曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值空 间 曲 面例 画函数Z=(X+Y).2的图形.(2) Mesh(x,y,z) 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; mesh(X,Y,Z) 例 画出曲面Z=(X+Y).2在不同视角的网格图. 画网格曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值(2) Mesh(x,y,z) 解 x=-3:0.1:(3)meshz(X,Y,Z) 在网格周围画一个c

33、urtain图(如,参考平面)解 输入命令: X,Y=meshgrid(-3:.125:3); Z=praks(X,Y); Meshz(X,Y,Z)例 绘peaks的网格图返回(3)meshz(X,Y,Z) 在网格周围画一个curtai在图形上加格栅、图例和标注定制坐标图形保持分割窗口缩放图形改变视角图形处理返回动 画在图形上加格栅、图例和标注定制坐标图形保持分割窗口缩放图形改1、在图形上加格栅、图例和标注(1)GRID ON: 加格栅在当前图上 GRID OFF: 删除格栅处理图形(2)hh = xlabel(string): 在当前图形的x轴上加图例stringhh = ylabel(st

34、ring): 在当前图形的y轴上加图例stringhh = title(string): 在当前图形的顶端上加图例stringhh = zlabel(string): 在当前图形的z轴上加图例string1、在图形上加格栅、图例和标注(1)GRID ON: 加格栅例 在区间0,2*pi画sin(x)的图形,并加注图例“自变量 X”、“函数Y”、“示意图”, 并加格栅.解 x=linspace(0,2*pi,30); y=sin(x); plot(x,y) xlabel(自变量X) ylabel(函数Y) title(示意图) grid on例 在区间0,2*pi画sin(x)的图形,并加注图例

35、“ (3) hh = gtext(string) 命令gtext(string)用鼠标放置标注在现有的图上.运行命令gtext(string)时,屏幕上出现当前图形,在图形上出现一个交叉的十字,该十字随鼠标的移动移动,当按下鼠标左键时,该标注string放在当前十交叉的位置. 例 在区间0,2*pi画sin(x),并分别标注“sin(x)” ”cos(x)”.解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(sin(x);gtext(cos(x)返回 (3) hh = gtext(string) 命令2、定制坐标A

36、xis(xmin xmax ymin ymax zmin zmax)例 在区间0.005,0.01显示sin(1/x)的图形。解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis(0.005 0.01 1 1)返回定制图形坐标将坐标轴返回到自动缺省值Axis autox、y、z的最大、最小值2、定制坐标Axis(xmin xmax ymin yma3、图形保持(1) hold on hold of例 将y=sin(x)、y=cos(x)分别用点和线画出在同一屏幕上。解 x=linspace(0,2*pi,30); y=sin(x

37、); z=cos(x) plot(x,z,:) hold on Plot(x,y)保持当前图形, 以便继续画图到当前图上释放当前图形窗口3、图形保持(1) hold on例 将y=sin(x)(2) figure(h)例 区间0,2*pi新建两个窗口分别画出y=sin(x); z=cos(x)。解 x=linspace(0,2*pi,100); y=sin(x);z=cos(x); plot(x,y); title(sin(x); pause figure(2); plot(x,z); title(cos(x);返回新建h窗口,激活图形使其可见,并把它置于其它图形之上(2) figure(h)

38、例 区间0,2*pi新4、分割窗口h=subplot(mrows,ncols,thisplot) 划分整个作图区域为mrows*ncols块(逐行对块访问)并激活第thisplot块,其后的作图语句将图形画在该块上。 激活已划分为mrows*ncols块的屏幕中的第thisplot块,其后的作图语句将图形画在该块上。命令Subplot(1,1,1)返回非分割状态。subplot(mrows,ncols,thisplot) subplot(1,1,1)4、分割窗口h=subplot(mrows,ncols,th 解x=linspace(0,2*pi,100); y=sin(x); z=cos(x

39、); a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps) subplot(2,2,1);plot(x,y),title(sin(x) subplot(2,2,2);plot(x,z),title(cos(x) subplot(2,2,3);plot(x,a),title(sin(x)cos(x) subplot(2,2,4);plot(x,b),title(sin(x)/cos(x)例 将屏幕分割为四块,并分别画出y=sin(x),z=cos(x),a=sin(x)*cos(x),b=sin(x)/cos(x)。返回 解x=linspace(0,2*pi,100);

40、例 将屏5、缩放图形zoom on 单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为中心的图形放大2倍;单击鼠标右键,则缩小2倍解 x=linspace(0,2*pi,30); y=sin(x); Plot(x,y) zoom on 例 缩放y=sin(x)的图形zoom off为当前图形打开缩放模式关闭缩放模式返回5、缩放图形zoom on 单击鼠标左键,则在当6. 改变视角view (1)view(a,b) 命令view(a,b)改变视角到(a,b),a是方位角,b为仰角。缺省视角为(-37.5,30)。 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y

41、); Z=(X+Y).2; subplot(2,2,1), mesh(X,Y,Z) subplot(2,2,2), mesh(X,Y,Z),view(50,-34) subplot(2,2,3), mesh(X,Y,Z),view(-60,70) subplot(2,2,4), mesh(X,Y,Z),view(0,1,1)例 画出曲面Z=(X+Y).2在不同视角的网格图. view用空间矢量表示的,三个量只关心它们的比例,与数值的大小无关,x轴view(1,0,0),y轴view(0,1,0),z轴view(0,0,1)。(2)view(x,y,z)返回6. 改变视角view (1)view

42、(a,b) 解 x7. 动画 Moviein(),getframe,movie() 函数Moviein()产生一个帧矩阵来存放动画中的帧;函数getframe对当前的图象进行快照;函数movie()按顺序回放各帧。返回 例 将曲面peaks做成动画。 解 x,y,z=peaks(30); surf(x,y,z) axis(-3 3 -3 3 -10 10) m=moviein(15); for i=1:15 view(-37.5+24*(i-1),30) m(:,i)=getframe; end movie(m)7. 动画 Moviein(),getframe,mov10、应用举例如右图,有1

43、0个点,其坐标集合为:data=2,4,5,6,3,4,5,1,4,3;3,4,7,1,0,3,5,3,6,10;求图上任意两点间的距离;数学表达式为:10、应用举例如右图,有10个点,其坐标集合为:data=10、应用举例data=2,4,5,6,3,4,5,1,4,3; 3,4,7,1,0,3,5,3,6,10; %坐标集合x=data(1,:); %X轴坐标y=data(2,:); %Y轴坐标n=length(x); %求X中元素个数 for i=1:n for j=1:n dis(i,j)=sqrt(x(i)-x(j).2+. (y(i)-y(j).2); %求出i,j两点间距离 en

44、dend10、应用举例data=2,4,5,6,3,4,5,1,4应用举例从txt或xls导入数据load data1.txt % data1就是数据变量, %存储了data1.txt里的数据high=data1(:,1:2:9);high(:)weight=data1(:,2:2:10);weight(:)data = xlsread(C:UsersAdministratorDesktop建模培训讲座(matlab)works data1.xls);x1=data(:,1); x2=data(:,2);x3=data(:,3); y=data(:,4);应用举例从txt或xls导入数据loa

45、d data1.t数据拟合有如下数据:x=1 2 3 4 5 6 7 8;Y=4.5 3 5 7.6 4 7 10 7;如右图:请对其进行5次拟合拟合函数:polyfit(x,y,n)方程求解函数:polyval(P,xx)10、应用举例数据拟合10、应用举例axis(0 9 0 11) %对坐标进行设置hold on %保持当前图形y=4.5 3 5 7.6 4 7 10 7; x=1:8;plot(x,y,o) %画出原始数据P=polyfit(x,y,5); %对原始数据进行5次拟合xx=1:0.1:length(y); %取值点yy=polyval(P,xx); %求取值点的函数值pl

46、ot(xx,yy,r-) %画出新图像title(5次拟合图像) %图形名称10、应用举例axis(0 9 0 11) %对10、应用举例10、应用举例数据插值有如下数据:x=1 2 3 4 5 6 7 8;Y=4.5 3 5 7.6 4 7 10 7;如右图:请对其进行插值运算插值函数:interp1(x,y,xx,method)10、应用举例数据插值10、应用举例插值函数nearst 最近点差值linear 线性插值spline 三次样条插值cubic 三次多项式插值插值函数axis(0 9 0 11) %对坐标进行设置hold on %保持当前图形y=4.5 3 5 7.6 4 7 10

47、 7; x=1:8;plot(x,y,o) %画出原始数据xx=1:0.1:length(y); %插值点yy=interp1(x,y,xx,cubic) %进行三次多项式插值plot(xx,yy,r-) %画出新图像title(三次多项式插值) %图形名称10、应用举例axis(0 9 0 11) %对坐标进行设10、应用举例10、应用举例例2 利用指令 diag 产生对角阵ar=rand(4,4) %产生4 4的0-1 均匀分布随即矩阵ard=diag(ar) %用矩阵的主对角线元素形成向量dD=diag(d) %用向量d 构成对角矩阵Dar =0.9501 0.8913 0.8214 0

48、.92180.2311 0.7621 0.4447 0.73820.6068 0.4565 0.6154 0.17630.4860 0.0185 0.7919 0.4057d =0.95010.76210.61540.4057D =0.9501 0 0 00 0.7621 0 00 0 0.6154 00 0 0 0.4057例2 利用指令 diag 产生对角阵符号计算功能符号表达式的创建命令形式: sym(x)例:r=sym(1+sqrt(x)/2)r =(1+sqrt(x)/2命令形式: syms a b c x k t y例: f=a*(2*x-t)3+b*sin(4*y)f =a*(2

49、*x-t)3+b*sin(4*y)符号计算功能例:创建符号矩阵法1:A=sym( sin(x), 1/x ; abc , y2 )法2:syms x y a b c; A= sin(x) , 1/x ; a*b*c , y2 ;例:创建符号矩阵微积分运算1 导数diff(f) 函数f 对符号变量x 或字母表上最接近字母x 的符号变量求导数diff(f,t) 函数f 对符号变量t 求导数例 syms a b t x y f=sin(a*x)+cos(b*t); g=diff(f) gg=diff(f,t) %可以看作二元函数求偏导数结果:g =cos(a*x)*a gg= -sin(b*t)*b

50、微积分运算用 diff(f,2)求二阶导数例 syms a b t x y f=sin(a*x)+cos(b*t); f=sin(a*x*t)+cos(b*t*x2)-2*x*t3; diff(f,2) diff(f,t,2)ans = -sin(a*x*t)*a2*t2- 4*cos(b*t*x2)*b2*t2*x2-2*sin(b*t*x2)*b*tans = -sin(a*x*t)*a2*x2-cos(b*t*x2)*b2*x4-12*x*t用 diff(f,2)求二阶导数当微分运算作用于符号矩阵时 是作用于矩阵的每个元素如syms a xa=sin(a*x),cos(a*x);-cos

51、(a*x),-sin(a*x)dy=diff(a)a = sin(a*x), cos(a*x) -cos(a*x), -sin(a*x)dy = cos(a*x)*a, -sin(a*x)*a sin(a*x)*a, -cos(a*x)*a当微分运算作用于符号矩阵时 是作用于矩阵的每个元素如2 积分 int(f) 函数f 对符号变量x 或接近字母x 的符号变量求不定积分 int(f,t) 函数f 对符号变量t 求不定积分 int(f,a,b) 函数f 对符号变量x 或接近字母x 的符号变量求从a 到b 的定积分(a,b控制上下线) int(f,t,a,b) 函数f 对符号变量t 求从a 到b

52、的定积分2 积分例syms a xf=sin(a*x)g=int(f)gg=int(f,a)f =sin(a*x)ff =sin(x3)g =-1/a*cos(a*x)gg =-1/x*cos(a*x)例例syms a xf=sin(a*x)g=int(f,0,pi)f =sin(a*x)g =-(cos(pi*a)-1)/a例3 极限limit(f) 当符号变量x 或最接近字母x 的符号变量趋于0 时函数f 的极限limit(f,t,a) 当符号变量t 趋于a 时函数f 的极限左右极限的求法例:sym x limit(1/x) limit(1/x,x,0,left) left左极限 limi

53、t(1/x,x,0,right) 右ans =xans =NaNans =-infans =inf3 极限例syms x t af=sin(x)/xg=limit(f)limit(cos(x+a)-cos(x)/a,a,0)limit(1+x/t)t,t,inf)f =sin(x)/xg =1ans =-sin(x)ans =exp(x)例4 求级数和symsum(s,t,a,b) 表示s 中的符号变量t 从a 到b 的级数和t 缺省时设定为x 或最接近 x 的字母例 syms x k symsum(1/x,1,3)ans =11/6 s1=symsum(1/x2,1,inf) s2=symsum(xk,k,0,inf)s1 =1/6*pi2s2 =-1/(x-1)4 求级数和5 泰勒 T

温馨提示

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

评论

0/150

提交评论