MATLAB基础及其在数学建模中的应用ppt课件.ppt

上传人:牧羊曲112 文档编号:1968611 上传时间:2022-12-28 格式:PPT 页数:127 大小:1.67MB
返回 下载 相关 举报
MATLAB基础及其在数学建模中的应用ppt课件.ppt_第1页
第1页 / 共127页
MATLAB基础及其在数学建模中的应用ppt课件.ppt_第2页
第2页 / 共127页
MATLAB基础及其在数学建模中的应用ppt课件.ppt_第3页
第3页 / 共127页
MATLAB基础及其在数学建模中的应用ppt课件.ppt_第4页
第4页 / 共127页
MATLAB基础及其在数学建模中的应用ppt课件.ppt_第5页
第5页 / 共127页
点击查看更多>>
资源描述

《MATLAB基础及其在数学建模中的应用ppt课件.ppt》由会员分享,可在线阅读,更多相关《MATLAB基础及其在数学建模中的应用ppt课件.ppt(127页珍藏版)》请在三一办公上搜索。

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

2、和一批数学家及软件专家创建了MathWorks公司,专门开发MATLAB。,1、MATLAB简介,MATLAB可以进行,数学计算、算法开发、数据采集;建模、仿真;数据分析、开发和可视化;科学和工程图形应用程序的开发,包括图形用户界面的创建。,1、MATLAB简介,MATLAB的主要应用领域(1)数值分析;(2)数值和符号计算;(3)工程与科学绘图;(4)控制系统的设计与仿真;(5)数字图像处理;(6)数字信号处理;(7)通讯系统设计与仿真;(8)财务与金融工程。,1、MATLAB简介,MATLAB优势强大易用的科学计算语言; 全面的图形功能;独立开放的平台;实用的程序接口。,1、MATLAB简

3、介,命令窗口(Command Window)工作空间管理窗口(Workspace)历史命令窗口(Command History),MATLAB主要窗口,1、MATLAB简介,命令窗口 命令窗口位于MATLAB默认桌面的中间,显示命令提示符为“”,可在“”之后输入命令,按下Enter键后MATLAB会立即显示结果并将结果自动赋予变量ans,例如: (3.14*32+3)/2 ans = 15.6300,知识点:,一、变 量 与 函 数,二、数 组,三、 矩 阵,四、 MATLAB编程*,五、 MATLAB绘图,1、变量 MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变

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

5、 3 (或 x=1, 2 ,3) 列向量赋值:y=1;2;3矩阵的赋值:x=1 2 3; 4 5 6; 7 8 9,例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,4、数学函数,获得帮助,如果你知道一个函数名,想了解它的用法,你可以用“help”命令得到它的帮助文档: help functionname 如果你了解含某个关键词的

6、函数,你可以用lookfor命令得到相关的函数: lookfor keyword,help 显示help 主题一览表help help 显示help 的帮助信息虽然help可以随时提供帮助,但必须知道准确的函数名称。当不能确定函数名称时,help就无能为力了。,2lookfor命令,help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。lookfor命令只对M文件的第一行进行关键字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。,3模糊查询,Matlab 6.0以上的版本提供了一种类似模糊查询的命令查询方法,用

7、户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。,MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件. 函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始,格式为: function 因变量名=函数名(自变量名)函数值的获得必须通过具体的运算实现,并赋给因变量.,5、M文件,M文件建立方法:1. 在Matlab中,点:File-New-M-file 2. 在编辑窗口中输入程序内容 3. 点:File-Save,存盘,M文件名必须 与函数名一致。,Matlab

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

9、ast结束的行向量,x=first:increment:last 创建从first开始,加increment计数,last结束的行向量,x=linspace(first,last,n) 创建从first开始,到last结束,有n个元素的行向量,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)表示访问数组

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

11、a1*c,a2*c,an*c (=a*c) a./c= a1/c,a2/c,an/c (右除,从右到左斜 /) a.c= c/a1,c/a2,c/an (左除,从左到右斜) a.c= a1c,a2c,anc c.a= ca1,ca2,can,(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/a

12、2,bn/an a.b=a1b1,a2b2,anbn,返回,三、 矩 阵,逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按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 3,1、矩阵的建立,特殊矩阵的建立:.,d=eye(m,n) 产生一个m行、n列的单位矩阵,c=ones(m,n) 产生一个m行、n列的元素 全为1的矩阵,b=zeros(m,n) 产生一个m行、n列的零矩阵,a= 产生一个空矩阵,当对一项操作无结 果时,返回

13、空矩阵,空矩阵的大小为零.,2、矩阵中元素的操作,(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)将矩阵A和B拼接成新矩阵:A B;A;B,(3)依次提取矩阵A的每一列,

14、将A拉伸为一个列向量:A(:),(2)矩阵-矩阵运算 1 元素对元素的运算,同数组-数组运算。,3、矩阵的运算,(1)标量-矩阵运算 同标量-数组运算。,2矩阵运算:矩阵加法:A+B矩阵乘法:A*B (保证可乘才行,A的列数=B的行数;点乘是要求A与B同型)方阵的行列式:det(A)方阵的逆:inv(A)方阵的特征值与特征向量:V,D=eigA,返回,关系与逻辑运算,1、关系操作符,2、逻辑运算符,矩阵的行列操作 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,

15、:)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,m)eye eye(n) 或eye(n,m),矩阵运算 + 两矩阵相加 - 两矩阵相减 * 两矩阵相乘 / 右除 左除 乘方 转置,数组运算 + 两数组相加 - 两数组相减 .* 两数组相乘 ./ 对应元素相除 . 乘方, A=1,2,3;4,5,

16、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*Aans = 30 36 42 66 81 96 102 126 150 mean(A)ans = 4 5 6 %(默认是对各列分别求平均), x=1,2,3 mean(x)ans = 2常用函数:meansumsort注意:若这些函数作用在矩阵上,其默认状态是对列操作,示例: x=linspace(0,pi,10) %(从0到,平均往上增加,共10个数)x =0 0.3491 0.6981 1.0472 1

17、.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,1、for循环:允许一组命令以固定的和预定的次数重复 for x=array commands end 在for和end语句之间的命令串commands按数组(array)中的每一列执行一次. 在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n),控制流,MATLAB提供三种决策或控制流结构: for循环、while循环、if-els

18、e-end结构. 这些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中,而不是直接加在MATLAB提示符下.,例 对n=1,2,10,求xn= 的值,代码: 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.

19、25%。将10000元钱存入银行,问多长时间会连本带利翻一番?,money=10000;years=0;while money20000 years=years+1; money=money*(1+11.25/100);endyearsmoney,3、If-Else-End结构(1)有一个选择的一般形式是: if expression commands end 如果在表达式(expression)里的所有元素为真,就执行if和end语句之间的命令串commands.,先建立M文件fun1.m定义函数f(x),再在Matlab命令窗口输入fun1(2),fun1(-1)即可。,function

20、f=fun1(x) % fun1是函数名, % 定义完命令窗口可直接调用if x1 f=x2+1endif x=1 f=2*xend,2) 有三个或更多的选择的一般形式是: if (expression1) commands1 else if (expression2) commands2 else if (expression3) commands3 else if elsecommands endendend end,先建立M文件fun2.m定义函数f(x),再在Matlab命令窗口输入fun2(2),fun2(0.5), fun2(-1)即可。,返回,function f=fun2(x)

21、if x1 f=x2+1else if x=0 f=x3 else f=2*x endend,简单语句,例:自己编辑程序计算100的阶乘;Sum=1;for i=1:100 Sum=Sum*i;end factorial(100)ans = 9.3326e+157,简单作图,绘制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,

22、cos) grid on %加网格,图形控制,坐标控制:axis ylim ylim 网格控制:grid on/off grid minor 多子图: subplot 补 充: xlabel ylabel linewidth makersize,图形控制,多子图: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),作图函数,fplot f函数图p

23、olar 极坐标图bar 柱状图pie 饼状图,作图函数,fplot fplot(sin(x), -pi,pi),作图函数,polar t=0:0.01:4*pi; s=abs(sin(2*t).*cos(2*t); polar(t,s,r),作图函数,bar p=21 15 41 10 8 8 3 6 2 30; t=0:9; bar(t,p),作图函数,pie x=59 15 15 10 8 8 8; pie(x);,Matlab作图,二维图形,三维图形,图形处理,Matlab作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然

24、后将该点集的坐标传给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.曲线图,例 在0,2*pi用红线画sin(x),用绿圈画cos(x).,x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,r,x,z,go),解,2.符号函数(显函数、隐函数和参数方程)画图

25、,(1) ezplot,ezplot(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绘制隐函数f(x,y)=0的函数图,例 在0,pi上画y=cos(x)的图形,解 输入命令 ezplot(sin(x),0,pi),解 输入命令 ezplot(cos(t)3,sin(t)3,0.2*pi),解 输入命令ezplot(exp(x

26、)+sin(x*y),-2,0.5,0,2),(2) fplot,注意:1 fun必须是M文件的函数名或是独立变量为x的字符串. 2 fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形。,fplot(fun,lims) 表示绘制字符串fun指定的函数在lims=xmin,xmax的图形.,解 先建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范围内

27、绘制函数tanh的图形解 fplot(tanh,-2,2),3. 对数坐标图,在很多工程问题中,通过对数据进行对数转换可以更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可以直接地表现对数转换.对数转换有双对数坐标转换和单轴对数坐标转换两种.用loglog函数可以实现双对数坐标转换,用semilogx和semilogy函数可以实现单轴对数坐标转换.,loglog(Y) 表示 x、y坐标都是对数坐标系semilogx(Y) 表示 x坐标轴是对数坐标系semilogy() 表示y坐标轴是对数坐标系plotyy 有两个y坐标轴,一个在左边,一个在右边,例 用方形标记创建一个简单的logl

28、og,解 输入命令: x=logspace(-1,2); loglog(x,exp(x),-s) grid on %标注格栅,例 创建一个简单的半对数坐标图解 输入命令: x=0:.1:10; semilogy(x,10.x),返回,三维图形,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 %旋转,PLOT3(x,y,z),2、多条曲线,例 画多条曲线观察函数Z=

29、(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),返回,空 间 曲 面,例 画函数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,Y,Z) shading flat %将当前图形变得平滑,(1) surf(x,y,z),画出数据点(x,y,z)表示的

30、曲面,(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在不同视角的网格图.,画网格曲面,(3)meshz(X,Y,Z) 在网格周围画一个curtain图(如,参考平面),解 输入命令: X,Y=meshgrid(-3:.125:3); Z=praks(X,Y); Meshz(X,Y,Z),例 绘peaks的网格图,返回,在图形上加格栅、图例和标注,定制坐标,图形保持,分割窗口,缩放图形,改变视角,图形处理,返回,动 画,1、在图形上加格栅、图例和标

31、注,(1)GRID ON: 加格栅在当前图上 GRID OFF: 删除格栅,处理图形,(2)hh = xlabel(string): 在当前图形的x轴上加图例string,hh = ylabel(string): 在当前图形的y轴上加图例string,hh = title(string): 在当前图形的顶端上加图例string,hh = zlabel(string): 在当前图形的z轴上加图例string,例 在区间0,2*pi画sin(x)的图形,并加注图例“自变量 X”、“函数Y”、“示意图”, 并加格栅.,解 x=linspace(0,2*pi,30); y=sin(x); plot(x

32、,y) xlabel(自变量X) ylabel(函数Y) title(示意图) grid on,(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);

33、gtext(cos(x),返回,2、定制坐标,Axis(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 auto,3、图形保持,(1) hold on hold of,例 将y=sin(x)、y=cos(x)分别用点和线画出在同一屏幕上。,解 x=linspace(0,2*pi,30); y=sin(x); z=co

34、s(x) plot(x,z,:) hold on Plot(x,y),保持当前图形, 以便继续画图到当前图上,释放当前图形窗口,(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窗口,激活图形使其可见,并把它置于其它图形之上,4、分割窗口,h=subplot(mrows,ncols,thisplot),划

35、分整个作图区域为mrows*ncols块(逐行对块访问)并激活第thisplot块,其后的作图语句将图形画在该块上。,激活已划分为mrows*ncols块的屏幕中的第thisplot块,其后的作图语句将图形画在该块上。,命令Subplot(1,1,1)返回非分割状态。,subplot(mrows,ncols,thisplot),subplot(1,1,1),解x=linspace(0,2*pi,100); y=sin(x); z=cos(x); a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps) subplot(2,2,1);plot(x,y),title(sin(

36、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)。,返回,5、缩放图形,zoom on,单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为中心的图形放大2倍;单击鼠标右键,则缩小2倍,解 x=linspace(0,2*pi,30); y=sin(x); Pl

37、ot(x,y) zoom on,例 缩放y=sin(x)的图形,zoom off,为当前图形打开缩放模式,关闭缩放模式,返回,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); 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,7

38、0) 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),返回,7. 动画,Moviein(),getframe,movie() 函数Moviein()产生一个帧矩阵来存放动画中的帧;函数getframe对当前的图象进行快照;函数movie()按顺序回放各帧。,返回,例 将曲面peaks做成动画。,解 x,y,z=peaks(30);

39、 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),10、应用举例,如右图,有10个点,其坐标集合为:,data=2,4,5,6,3,4,5,1,4,3;3,4,7,1,0,3,5,3,6,10;求图上任意两点间的距离;数学表达式为:,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,:);

40、%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两点间距离 endend,应用举例从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.

41、xls);x1=data(:,1); x2=data(:,2);x3=data(:,3); y=data(:,4);,数据拟合有如下数据: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、应用举例,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:len

42、gth(y); %取值点yy=polyval(P,xx); %求取值点的函数值plot(xx,yy,r-) %画出新图像title(5次拟合图像) %图形名称,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、应用举例,插值函数nearst 最近点差值linear 线性插值spline 三次样条插值cubic 三次多项式插值,axis(0 9 0 11) %对坐标进行设置hold on %保持当前图形y=4.5 3 5 7.

43、6 4 7 10 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、应用举例,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.92180.2311 0.7621

44、 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,符号计算功能符号表达式的创建命令形式: 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*x-t)3+b*sin(4*y),例:创建符号矩阵法1:A=sym(

45、 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,用 diff(f,2)求二阶导数例 syms a b t x y f=sin(a*x)+co

46、s(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,当微分运算作用于符号矩阵时 是作用于矩阵的每个元素如syms a xa=sin(a*x),cos(a*x);-cos(a*x),-sin(a*x)dy=diff(a)a = sin(a*x), cos(a*x) -cos(a*x), -sin(a*

47、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 的定积分,例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*c

48、os(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左极限 limit(1/x,x,0,right) 右ans =xans =NaNans =-infans =inf,例syms x t af=sin(x)/xg=limit(f)limit(cos(x+a

49、)-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),5 泰勒 Taylor 多项式(n阶泰勒展式)taylor(f,n,a) 函数f 对符号变量x 或最接近字母x 的符号

50、变量在a点的n-1 阶泰勒多项式,n 缺省时值为6 ,a 缺省值为0例 taylor(sin(x)ans =x-1/6*x3+1/120*x5 f=log(x) s=taylor(f,4,2)f =log(x)s =log(2)+1/2*x-1-1/8*(x-2)2+1/24*(x-2)3,三 解方程1 代数方程solve(f,t) 对f 中的符号变量t 解方程f=0 ,t 缺省值为x 或最接近x 的字母例 syms a b x c f=a*x2+b*x+c s=solve(f) ss=solve(f,b)f =a*x2+b*x+cs = 1/2/a*(-b+(b2-4*a*c)(1/2) 1

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号