数模MATLAB及应用.ppt

上传人:牧羊曲112 文档编号:6297258 上传时间:2023-10-14 格式:PPT 页数:112 大小:3.06MB
返回 下载 相关 举报
数模MATLAB及应用.ppt_第1页
第1页 / 共112页
数模MATLAB及应用.ppt_第2页
第2页 / 共112页
数模MATLAB及应用.ppt_第3页
第3页 / 共112页
数模MATLAB及应用.ppt_第4页
第4页 / 共112页
数模MATLAB及应用.ppt_第5页
第5页 / 共112页
点击查看更多>>
资源描述

《数模MATLAB及应用.ppt》由会员分享,可在线阅读,更多相关《数模MATLAB及应用.ppt(112页珍藏版)》请在三一办公上搜索。

1、数学建模讲稿,Matlab及其应用,第一节 Matlab概述,1、Matlab简介 2、Matlab的工作环境 3、Matlab帮助系统,Matlab简介,1、MATLAB 的起源与发展MATLAB 是“矩阵实验室”(MATrix LABoratory)的缩写,最初版本是由 Cleve Moler 博士用 FORTRAN 语言开发的矩阵分析软件。80 年代初期,由 Cleve Moler 和 John Little采用 C 语言改写了 MATLAB 的内核。成立了 Mathworks 软件开发公司,并于1984 年将 MATLAB 正式推向市场。1992 年初推出了应用于 Windows 操作

2、系统的 MATLAB 4.x 版本。1997 年推出 5.1 版本。1998 年推出 5.2 版本。1999 年推出 MATLAB 5.3 版本,MATLAB 5.3对应于 Release 11。2000 年又推出了更为简便易学的 MATLAB 6.0 版本,MATLAB 6.0 对应于 Release 12。,Matlab简介,2、MATLAB 的主要特点MATLAB 的基本单位为矩阵.MATLAB 语言以解释方式工作.具有非常友好的人机界面。具有强大的作图和数据可视化功能.具有极强的可扩展性。3、MATLAB 的基本组成MATLAB 主程序、Simulink 动态系统仿真和 MATLAB

3、工具箱(Toolbox)三大部分组成。主程序包括了 MATLAB 语言、工作环境、句柄图形、数学函数库和应用程序接口五部分.,MATLAB 重庆邮电大学 数理学院 沈世云,.Matlab 的安装,MATLAB 重庆邮电大学 数理学院 沈世云,Matlab工作环境界面,1.MATLAB 的启动 桌面快捷方式启动 开始菜单方式启动2.MATLAB和退出 Matlab菜单命令/关闭按钮 在Matlab命令窗口输入exit或quit,MATLAB 重庆邮电大学 数理学院 沈世云,Matlab工作环境界面,包含一行标题栏、一行菜单栏、一行工具栏、五个工作窗口和一行注释栏。五个工作窗口分别为:启动平台(L

4、aunch Pad)、工作空间(Workspace)、命令历史(Command History)、当前路径(Current Directory)和命令窗口(Command Windows)。,MATLAB 重庆邮电大学 数理学院 沈世云,1、MATLAB 菜单项File(文件)菜单 Edit(编辑)菜单 View(视图)菜单Window(窗口)菜单Web(连网信息)Help(帮助)菜单,Matlab工作环境界面,MATLAB 重庆邮电大学 数理学院 沈世云,Matlab工作环境界面,2、MATLAB工具栏,用 MATLAB 的 M 文件编辑器新建一个 M 文件;用 MATLAB 编辑器打开一个

5、文件;将选中的内容剪切到剪贴板;将选中的内容复制到剪贴板;将剪贴板中的内容粘贴到光标指定的位置;撤消最近一次的操作;打开 Simulink 浏览器;打开 MATLAB 帮助窗口。,当前工作路径,例 1-1 绘制函数 y=2sin(1+x)的图像,并计算当 x=0.5 时的函数值。,Matlab工作环境界面,x=0:0.1:10;%给出自变量 x 的定义域 y=2*sin(1+x);%写出函数形式plot(x,y)%绘出函数图形 y=2*sin(1+0.5)%求当 x=0.5 时的 y 值,其后不加分号,直接在窗口中给出结果 y=1.9950%输出 y 的计算结果,Matlab工作环境界面,3、

6、MATLAB 通用命令,Matlab帮助系统,1、Matlab联机帮助#工具条中的?按钮;#help菜单栏中前2 项中的任何一项;#在命令窗口中执行 helpdesk或doc。,2、Matlab的网上资源 web菜单栏,MATLAB 重庆邮电大学 数理学院 沈世云,Matlab帮助系统,3、Matlab常用的窗口帮助命令,MATLAB 重庆邮电大学 数理学院 沈世云,Matlab帮助系统,help 命令直接输入 help,MATLAB 将列出所有的帮助主题,每个帮助主题对应于 MATLAB搜索路径中的一个目录;help 后加帮助主题,可获得指定帮助主题的帮助信息;help 后加函数名;help

7、 后加命令名,将得到指定命令的用法;,MATLAB 重庆邮电大学 数理学院 沈世云,Matlab帮助系统,demo 命令,基本矩阵演示窗口,MATLAB 演示窗口,MATLAB 重庆邮电大学 数理学院 沈世云,Matlab帮助系统,helpwin 命令用于打开 MATLAB 的帮助文件窗,MATLAB 重庆邮电大学 数理学院 沈世云,Matlab帮助系统,lookfor 命令允许用户通过完整的或部分关键字来搜索要查找的内容who 和 whos 的作用是列出在 MATLAB 工作内存中驻留的变量名exist 命令用来查找或检查变量和函数的存在性,MATLAB 重庆邮电大学 数理学院 沈世云,第二

8、节 Matlab 编程基础,1 变量2 数组,向量与矩阵的创建和访问3 部分特殊变量和常数4 部分常用运算符5 Matlab的程序设计6 m文件的创建,保存7 基本数学函数和基本绘图函数8 编程举例,MATLAB 重庆邮电大学 数理学院 沈世云,2.1 变量,变量无需定义即可使用。变量名的大小写是敏感的。变量的第一个字符必须为英文字母,而且不超过31个字符。变量名可以包含下连字符、数字,但不能为空格符、标点。,MATLAB 重庆邮电大学 数理学院 沈世云,2.2 数组,向量与矩阵的创建和访问,在Matlab中,这三个概念在创建和显示的时候没有任何区别。向量的创建 要创建一个向量,在命令窗口下输

9、入:t=0:1:10屏幕显示:t=0 1 2 3 4 5 6 7 8 9 10注意:向量的第一个元素的下标是1,而不是0。T=0:1:10产生了010步长为1的共11个数,保存在t(1),t(2),t(11)中。,MATLAB 重庆邮电大学 数理学院 沈世云,矩阵的创建 例如:创建一个33的矩阵,输入:a=1 2 3;4 5 6;7 8 9 屏幕输出a=1 2 3 4 5 6 7 8 9,MATLAB 重庆邮电大学 数理学院 沈世云,访问矩阵的某一个元素:a(3,2)ans=8访问矩阵某行(列)的所有元素:a(3,:)a(:,2)注意:这两个符号分别是1*3行向量和3*1列向量,MATLAB

10、重庆邮电大学 数理学院 沈世云,2.3 部分特殊变量和常数,ans 最近生成的无名结果eps 浮点数的相对误差pi 3.14145926 i 虚数单位 j 虚数单位Inf 无穷大,如n/0,MATLAB 重庆邮电大学 数理学院 沈世云,2.4 部分常用运算符,2.4.1 算术运算符 加 减*乘(包括标量乘,矩阵乘,标量与矩阵乘)/除(包括标量除,矩阵除标量,数组除标量)矩阵求幂(矩阵必须为方阵).*数组相乘./数组相除.数组求幂注意:.*(./)表示两个同维数组中的对应元素做乘(除).表示对数组的每个元素求幂,MATLAB 重庆邮电大学 数理学院 沈世云,2.4.2 关系运算符,大于=大于等于

11、=等于=不等于运算法则:若关系式成立,结果为1;若关系式不成立,结果为0。,MATLAB 重庆邮电大学 数理学院 沈世云,MATLAB 重庆邮电大学 数理学院 沈世云,2.4.3 逻辑运算符,&与|或 非运算法则:若逻辑真,结果为1,若逻辑假,结果为0。,2.4.4 其他常见符号,=变量赋值%注释符 共轭转置符:冒号运算符 n:s:m 产生nm,步长为s的序列,s可以为 正或负或者小数,默认值为1。,MATLAB 重庆邮电大学 数理学院 沈世云,sin 正弦函数 asin 反正弦函数 cos 余弦函数 acos 反余弦函数 tan 正切函数 atan 反正切函数 cot 余切函数 acot 反

12、余切函数 sec 正割函数 asec 反正割函数 csc 余割函数 acsc 反余割函数,sinh 双曲正弦函数 asinh 反双曲正弦函数 cosh 双曲余弦函数 acosh 反双曲余弦函数 tanh 双曲正切函数 atanh 反双曲正切函数 sech 双曲正割函数 asech 反双曲正割函数 csch 双曲余割函数 acsch 反双曲余割函数 coth 双曲余切函数 acoth 反双曲余切函数,三角函数与双曲函数,abs(x)绝对值sqrt(x)开平方conj(z)共轭复数round(x)四舍五入floor(x)舍去正小数rat(x)化为分数表示gcd(x,y)最大公因数exp(x)自然指

13、数log(x)e为底的对数Log10(x)10为底的对数,angle(z)复数z的相角real(z)复数z的实部imag(z)复数z的虚部fix(x)舍去小数取整ceil(x)加入正小数取整sign(x)符号函数rem(x,y)求x除以y的余数lcm(x,y)最小公倍数pow2(x)以2为底的指数log2(x)以2为底的对数,who 列出在MATLAB工作空间中已有的变量whos 列出驻留变量的同时,还给出维数及性质clear 删除内存中的变量(数据)clc 删除命令窗口的内容(已使用过的命令)home 光标移到命令窗口的左上角clf 删除图形窗口的内容 调出刚才使用过的命令quit 退出MA

14、TLAB,11/15,MATLAB 常用函数介绍,MATLAB命令窗口的部分通用命令,二.matlab应用初步,1 用Matlab进行多项式运算与方程求根2 用Matlab进行求导运算3 用Matlab进行求极限,1 Matlab多项式运算与方程求根,1.1 Matlab多项式运算,在 Matlab 中,n 次多项式是用一个长度为 n+1的向量来表示,缺少的幂次项系数为 0。例如:,在 Matlab中表示为相应的向量:,例:,注:系数中的零不能省!,多项式四则运算,多项式加减运算:Matlab没有提供专门进行多项式加减运算的函数,事实上,多项式的加减就是其所对应的系数向量的加减运算。,例:,对

15、于次数相同的多项式,可以直接对其系数向量进行加减运算;如果两个多项式次数不同,则应该把低次多项式中系数不足的高次项用0补足,然后进行加减运算。,多项式四则运算(续),多项式乘法运算:k=conv(p,q),例:计算多项式 和 的乘积,p=2,-1,0,3;q=2,1;k=conv(p,q),多项式除法运算:k,r=deconv(p,q),其中 k 返回的是多项式 p 除以 q 的商,r 是余式。,k,r=deconv(p,q),p=conv(q,k)+r,1.2 多项式的导数:polyder,k=polyder(p):多项式 p 的导数;k=polyder(p,q):p*q 的导数;k,d=p

16、olyder(p,q):p/q 的导数,k是分子,d是分母。,k1=polyder(2,-1,0,3)k2=polyder(2,-1,0,3,2,1)k3,d=polyder(2,-1,0,3,2,1),例:已知,求,1.3 多项式求值,p=2,-1,0,3;x=2;polyval(p,x)x=-1,2;-2,1;polyval(p,x),例:已知,分别取 x=2和一个22矩阵,求 p(x)在 x 处的值,代数多项式求值:,y=polyval(p,x):计算多项式 p 在 x 点的值,注:若 x 是向量或矩阵,则采用数组运算(点运算)!,多项式求值(续),p=2,-1,0,3;x=-1,2;-

17、2,1;polyval(p,x)polyvalm(p,x),例:已知,则,矩阵多项式求值:,Y=polyvalm(p,X):以方阵X为自变量,计算多项式的值,采用矩阵运算。,polyvalm(p,A)=2*A*A*A-A*A+3*eye(size(A);polyval(P,A)=2*A.*A.*A-A.*A+3*ones(size(A),1.4 多项式求根,p=2,-1,0,3;x=roots(p),x=roots(p):若p是n次多项式,则输出x为包含p=0的n个根的n维向量。,例:已知,求p(x)的零点。,2.用Matlab进行求导运算,在Matlab 中,求函数的导数或偏导数的格式为:,

18、表示f对x求一阶导数,表示f对x求n阶导数,例1:求函数 的导数,解,Syms xy=x3+cos(x)+log(2);z=diff(y),例2:求函数 的二阶及三阶导数,解,例3:求函数 的二阶及三阶导数,ans=xx*(log(x)+1)*log(x)+xx/x,Syms xy=exp(-x)*cos(x)Z=diff(y,3),Syms xy=xx*log(x)Z=diff(y,3),n=0:1:63;S=sum(2.n)S=1.8447e+019,例2.计算sin x 在 处的值,clear x=pi./8,6,4,3;y=sin(x)y=0.3827 0.5000 0.7071 0.

19、8660,例1.计算级数:S=1+2+22+23+263=,8/15,例3.衰减振荡曲线函数:y=e-0.5x sin 5x图形.,x=0:0.1:4*pi;y=exp(-0.5*x);y1=y.*sin(5*x);plot(x,y1,x,y,-r,x,-y,-r),3.3 用Matlab进行画图1.常见初等函数的图形2.本实验所用Matlab命令提示:(1)绘制二维的最常用的命令是 plot,基本用法为:plot(x,y):以x为横坐标、y为纵坐标绘制函数或 数据图形plot(y):绘制一个向量的图形,相当于x=1,2,length(y)时的情形在同一图形窗口中绘制多个曲线:可用plot(x

20、,y1;y2;)命令,其中x是横坐标向量,y1;y2;是由几个函数的纵坐标拼成的矩阵,这时Matlab将用不同颜色的曲线表示不同的函数。,(2)图形文字标注命令:xlabel(x轴名称);ylabel(y轴名称);zlabel(z轴名称)title(图形标题);text(说明文字);用鼠标在特定位置输 入文字。legend命令:可用于说明不同函数所使用的线型。(3)绘制三维图形的命令:meshgrid命令:用于形成二维网格点。然后计算在这些网格 上的函数值,为绘制图形做准备。三维绘图命令:plot3(x,y,z)%线条图 mesh(x,y,z)%网格图 meshc(x,y,z)%具有基本等高线

21、的网格图 suef(x,y,z)%表面图 suefc(x,y,z)%具有基本等高线的表面图ezplot3(x,y,z,animate):Matlab6.x提供了ezplot3命令,产生三维动画图形。,(4)条形图 bar(x,y)%竖直条形图 barh(x,y)%水平条形图 bar3(x,y)%三维竖直条形图 barh3(x,y)%三维水平条形图,(5)线条和颜色控制符:.点 y 黄。小圆圈 m 棕色 x x标记 c 青色+加号 r 红色-实线 g 绿色*星号 b 蓝色:虚线 w 白色-.点划线 h 黑色,例1:求在区间0,2*pi画sin(x),解,例2:求在区间0,2*pi用红线画sin(

22、x),用绿线画cos(x),解,x=0:pi/30:2*pi;y=sin(x);plot(x,y),x=0:pi/30:2*pi;y=sin(x);z=cos(x);plot(x,y,r,x,z,c),符号函数画图:,表示在默认区间-2*pix2*pi绘制f=f(x)的函数图,表示在axb绘制显函数f=f(x)的函数图,表示在区间xminxxmax和yminyymax绘制隐函数f(x,y)=0的函数图,表示在区间tminttmax绘制参数方程x=x(t),y=y(t)的函数图,3.1 二维图形绘制,plot(X,Y,s)以X为横坐标,Y为纵坐标,绘制图形,第3个参数控制图形显示属性(线形、颜色

23、及标识等),【例】x=0:0.01*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,rd,x,z,-.k),3.1 二维图形绘制,二维特殊函数图,表:Matlab中常见二维特殊图形函数,3.1 二维图形绘制,例,【例】x=1:10;y=rand(10,1);bar(x,y)subplot(2,1,2)x=11 12 34 35 36 58 59 54 80 81 82 83 84 85 86;hist(x),bar,hist,3.1 二维图形绘制,离散数据图形绘制,x=0:0.25:(3*pi);stem(x,sin(x);%stem(x,sin(x),sr,fill);

24、title(stem(x,sin(x);xlabel(x);,x=0:0.25:(3*pi);%stem(x,sin(x);stem(x,sin(x),sr,fill);title(stem(x,sin(x);xlabel(x);,3.1 二维图形绘制,标题与轴标签对图形加上标题,标明横纵坐标,【例】x=0:0.01*pi:2*pi;y=sin(x);plot(x,y)title(正弦函数,FontSize,15)xlabel(x(0-2pi),FontSize,14)ylabel(y=sin(x),FontSize,14),3.1 二维图形绘制,在标注中如何输入特殊符号?字符转换如:pi 即

25、显示为 Omega 即显示为无须记住,用时会查,会联想即可常见符号转义示例,3.1 二维图形绘制,文本标注text(x,y,标注文本及控制字符串),【例】x=0:0.01*pi:2*pi;plot(x,sin(x)text(3*pi/4,sin(3*pi/4),leftarrow sin(3pi/4)=,num2str(sin(3*pi/4),FontSize,12),3.1 二维图形绘制,将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:title 给图形加标题 xlable 给x轴加标注 ylable 给y轴加标注 text 在图形指定位置加标注 gtext 将标注加到图形任意

26、位置 grid on(off)打开、关闭坐标网格线 legend 添加图例 axis 控制坐标轴的刻度,3.1 二维图形绘制,图形的保持与子图多次绘制得到重叠效果 hold on 开启图形保持功能hold off 关闭图形保持功能坐标限若不一致,自动调整,3.1 二维图形绘制,示例,【例】x=0:0.1*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,-*)hold on%开启plot(x,z,-o)plot(x,y+z,-h)legend(sin(x),cos(x),sin(x)+cos(x),0)hold off%关闭,3.1 二维图形绘制,子图几个图形在同一图形窗口

27、表示出来,subplot,subplot(m,n,p)将一个图形窗口分割成mn个子绘图区域,通过区域编号参数p调用各子区域,3.2 三维图形绘制,常用基本命令plot3()plot3(x,y,z)%x,y,z为3个相同维数的向量plot3(X,Y,Z)%X,Y,Z为3个相同阶数的矩阵plot3(X,Y,Z,s)%s为定义线形的参数,plot3,3.2 三维图形绘制,例:绘制三维螺旋线,【例】x=0:pi/50:10*pi;y=sin(x);z=cos(x);plot3(x,y,z),3.2 三维图形绘制,更进一步:,【例】t=0:0.1:10*pi;x=exp(-t/20).*cos(t);y

28、=exp(-t/20).*sin(t);z=t;plot3(x,y,z);xlabel(x);ylabel(y);zlabel(z);,从不同视角观察,view(az,el)az表示方位角el表示仰角,3.2 三维图形绘制,从不同视角观察,view(az,el)az表示方位角el表示仰角,3.2 三维图形绘制,绘制三维饼状图,【例】x=2,4,6,8;pie3(x,1,1,1,1)%第二个参数控制各块的分离,3.2 三维图形绘制,Matlab中创建三维图形基本步骤1.数据准备2.调用三维图形函数 plot3(),mesh(),surf()等,表:绘制三维图形的函数,3.2 三维图形绘制,Mat

29、lab中主要用mesh,surf命令绘制二元函数mesh(x,y,z)画网格曲面,x,y,z是数据矩阵,分别表示数据点的横坐标、纵坐标和函数值,该命令将数据点在空间中描出,并连成网格surf(x,y,z)画完整曲面,x,y,z是数据矩阵,分别表示数据点的横坐标、纵坐标和函数值,该命令将数据点所表示曲面画出,3.2 三维图形绘制,绘图示例,z=peaks(20);surf(z),t=0:pi/6:4*pi;x,y,z=cylinder(4+cos(t),30);surf(x,y,z),3.2 三维图形绘制,创建3-D网格和表面理解Matlab向量式计算的好处,x=-1 0 1;y=9 10 11

30、 12;X,Y=meshgrid(x,y)Matlab 返回X=-1 0 1-1 0 1-1 0 1-1 0 1Y=9 9 910 10 1011 11 1112 12 12,meshgrid(x,y)生成X,Y矩阵X重复x为行向量Y重复y为列向量,3.2 三维图形绘制,例:使用meshgrid函数,X,Y=meshgrid(linspace(0,2*pi,50),linspace(0,pi,50);Z=sin(X).*cos(Y);mesh(X,Y,Z)xlabel(x);ylabel(y);zlabel(z);axis(0 2*pi 0 pi-1 1),3.2 三维图形绘制,例:马鞍面绘制

31、,%马鞍面函数%z=x2-2y2t2=-30:.3:30;x2,y2=meshgrid(t2);z2=x2.2-2*y2.2;mesh(x2,y2,z2);title(马鞍面),3.2 三维图形绘制,示例:绘制二元函数图形,画出函数,的图形,其中(x,y)属于3,3*3,3,绘制的步骤是?,3.2 三维图形绘制,%准备数据,指定定义域x=-3:0.1:3;y=-3:0.1:3;%将向量x,y指定区域转化为矩阵X,YX,Y=meshgrid(x,y);%产生函数值Z=sqrt(X.2+Y.2);%mesh绘制网格,surf绘制完整表面surf(X,Y,Z),绘制的步骤是?,3.2 三维图形绘制,

32、大功告成,3.2 三维图形绘制,示例:再绘马鞍面,观察两个曲面相交,马鞍面z=x2-2y2和平行于Z轴平面,绘制的步骤是?,3.2 三维图形绘制,%准备数据,指定定义域并转化为矩阵x,yx,y=meshgrid(-10:0.2:10,-10:0.2:10);%产生函数值z1=(x.2-2*y.2)+eps;a=20;z2=a*ones(size(x);%mesh绘制网格,surf绘制完整表面mesh(x,y,z1);hold on;%保持图形mesh(x,y,z2);,绘制的步骤是?,3.2 三维图形绘制,3.2 三维图形绘制,参数方程绘制 ezmesh,ezsurf绘制椭球面,Its ver

33、y easy,3.2 三维图形绘制,u=-2*pi:0.1:2*pi;v=-2*pi:0.1:2*pi;ezmesh(3*cos(u)*sin(v),2*cos(u)*cos(v),sin(u),-2*pi,2*pi,-2*pi,2*pi),3.2 三维图形绘制,示例:绘制正螺面,u,v在-2pi至2pi命令为ezsurf,ezsurf(u*sin(v),u*cos(v),4*v,-2*pi,2*pi,-2*pi,2*pi),3.2 三维图形绘制,示例:绘制圆锥面,u,v在-2pi至2pi命令为ezsurf,ezsurf(u*sin(v),u*cos(v),u,-2*pi,2*pi,-2*pi

34、,2*pi),(6)x=-5:0.5:5;y=x;x,y=meshgrid(x,y);z=x.2+y.2;subplot(2,2,1)mesh(x,y,z);subplot(2,2,2)meshc(x,y,z);subplot(2,2,3)surf(x,y,z);subplot(2,2,4)surfc(x,y,z);,图(6),MATLAB语言编程介绍,MATLAB中各种命令可以完成许多单一的任务,对于某些较为复杂的问题,仅靠现有的命令或函数来解决,往往是难以达到目的。为此,要运用MATLAB编程语言编制程序,形成M-文件。程序是使计算机完成各项运算的命令集,运行一个编制好的程序,计算机会从第

35、一条命令行开始,一行接一行地执行相应的命令,直到终止。程序一般包含:数据输入,数据处理和结果输出三部分,其中数据处理是核心。程序编写调试完成后,需要存盘,形成永久性文件,可以随时对它进行调用或修改。文件 名以字母开头,但不能用专用变量名,如pi等。MATLAB中每一个命令都是一个M-文件。,2.5 Matlab 程序设计,Matlab的工作方式有二种 1.交互式的指令操作方式。即用户在命令窗口中输入命令并按下回车键后,系统执行该指令并立即给出运算结果。2.m文件的编程方式。m文件是由 matlab语句构成的文件,且文件名必须以.m为扩展名,如example.m。用户可以用任何文件编辑器来对M文

36、件进行编辑。,MATLAB 重庆邮电大学 数理学院 沈世云,程序流程控制,顺序结构:Matlab 从上到下依次执行各语句,该结构最简单。循环结构(1)for-end 循环 用于循环次数事先确定的,格式为for i=n:s:m 语句体end s 为步长,可以为正数,负数或小数。,(2)while-end 循环 用于循环次数不能事先确定的,格式为 while 表达式 语句 体 end 只有表达式为真,就执行语句体,表达式为假,终止该循环。,分支结构(1)if 语句 格式为if 表达式1 语句体1elseif 表达式2 语句体2.else 语句体elseend,2.6 m文件的创建,保存,创建【Fi

37、le】菜单下【New】菜单选项的【M-File】命 令 打开matlab的m文件编辑器窗口。,保存 单击M文件编辑器窗口工具栏中的【Save】图标,打开保存对话框,2.7 基本数学函数和基本绘图函数,sin cos tan cot exp log:自然对数log10:产用对数Log2:以二为底的对数abs:取模conj:取共轭real:取实部 imag:取虚部,基本绘图指令,Matlab提供了强大的图形绘制功能。在大多数情况下,用户只需要指定绘图的方式,提供绘图数据,利用Matlab提供的丰富的二维,三维图形函数,就可以绘制出所需的图形。1绘制二维连续函数 Matlab中最常用的绘图函数是pl

38、ot,plot的命令格式有以下几种:,(1)plot(y)当y为一向量时,以y的序号作为x轴,按向量y的值绘制曲线。(2)plot(x,y)x,y均为向量时,以x向量作为X轴,向量y作为Y轴绘制曲线。注意:x和y种元素的个数必须相同!,2.绘制二维离散序列,在Matlab用stem命令实现离散序列的绘制。stem命令的格式有以下几种:(1)stem(y)以x=1,2,3为各点数据的x坐标,以y向量的各个对应元素为y坐标,在(X,Y)坐标面画一个空心小圆圈。(2)stem(x,y,filled)以x向量的各个元素为x坐标,以y向量的各个对应元素为y坐标,在(X,Y)坐标面画一个实心小圆圈,并连接

39、一条线段到X轴。,3.8编程举例,例一:画出衰减震荡曲线 及其包络线 t的取值范围是 程序如下:,程序运行结果如下:,M-文件中输入、输出命令,直接赋值输入:提示对话输入(input命令)x=2;x=input(请输入参数 x=);a=1,2;3,4;a=input(请输入矩阵 a=);s=any string!;s=input(Please input s=);直接输出:格式控制输出(fprintf命令)x fprintf(x=%.0f,y=%.5fn,pi,pi);disp(a,b);fprintf(x=%5g,y=%10.5gn,N,pi);,M-文件中循环控制命令(for命令),格式:

40、for i=n1:(step):n2 commands;end 作用:重复执行命令集commands.,例2:求奇数和:s=1+3+5+(2k-1)n=input(请输入 n=);s=0;for i=1:2:n s=s+i;fprintf(i=%.0f,s=%.0fn,i,s);end,例1:求和:s=1+2+n n=input(请输入 n=);s=0;for i=1:n s=s+i;fprintf(i=%.0f,s=%.0fn,i,s);end,例3:求阶乘:p=12 3 n=n!n=input(请输入 n=);p=1;for i=1:n p=p*i;fprintf(i=%.0f,p=%.0

41、fn,i,p);end,例4:求e:e=1+1+1/2!+1/3!+1/n!n=input(请输入 n=);p=1;e=1;for i=1:n p=p*i;p1=1/p;e=e+p1;fprintf(i=%.0f,p=%.0f,e=%.8f n,i,p,e);end,例5:求pi:pi/4=1-1/3+1/5-1/7+1/9-1/11+n=input(请输入 n=);pi=0;k=-1;for i=1:2:n k=(-1)*k;pi=pi+k*1/i;fprintf(i=%.0f,pi=%.8f n,i,4*pi);end,M-文件中条件循环命令(while命令),格式:while(condi

42、tion is true)commands;end 作用:重复执行命令集commands.,例6:求和:s=1+2+n3000 s=0;k=1;while s3000 s=s+k;fprintf(k=%.0f,s=%.0fn,k,s);k=k+1;end,例7:求e:e=1+1+1/2!+1/3!+(1/n!=1.0e-8 p=p*i;r=1/p;e=e+r;fprintf(i=%.0f,r=%.9f,e=%.9f n,i,r,e);i=i+1;end,M-文件中选择控制命令(if命令),单项选择控制格式:if(condition is true)commands;end 作用:若条件成立,则

43、执行命令集 commands.否则,不执行。,例8:求n个实数中最大的数M.a=input(请输入数组 an=);m,n=size(a);M=a(1);for i=2:n if Ma(i)M=a(i);end fprintf(M=%.5f,a(%.0f)=%.5f n,M,i,a(i);end,M-文件中选择控制命令(if命令),多项选择控制格式:if(condition is true)commands;elseif(condition is true)commands;else commands;end 作用:若条件成立,则执行命令集 commands.否则,不执行。,例9:建立符号函数s

44、ign(x)x=input(x=);if x0 sn=1;elseif x=0 sn=0;else sn=-1;endfprintf(x=%.5f,sn=%.0fn,x,sn);,数值计算问题,问题1:求无理数的近似值 先求 的近似值,再设计通用程序.问题2:用两种方法求Pi的近似值,例10:用二分法求函数x2-2=0的正实根.,输入初值:,输出结果:STOP,No,No,No,Yes,Yes,Yes,例11:用切线法求函数x2-2=0的正实根.,例12:用泰勒公式求pi的近似值。,特点:收敛速度慢,循环次数多.,例13:用梯形求积公式求pi的近似值。,2)梯形公式,3)复化梯形公式,例14:用Simpson求积公式求pi的近似值。,1)辛普生公式,2)辛普生公式与梯形公式的关系,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号