数模MATLAB及应用课件_第1页
数模MATLAB及应用课件_第2页
数模MATLAB及应用课件_第3页
数模MATLAB及应用课件_第4页
数模MATLAB及应用课件_第5页
已阅读5页,还剩219页未读 继续免费阅读

下载本文档

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

文档简介

数学建模讲稿Matlab及其应用数学建模讲稿Matlab及其应用1第一节Matlab概述

1、Matlab简介

2、Matlab的工作环境

3、Matlab帮助系统

第一节Matlab概述1、Matlab简介2Matlab简介1、MATLAB的起源与发展MATLAB是“矩阵实验室”(MATrixLABoratory)的缩写,最初版本是由CleveMoler博士用FORTRAN语言开发的矩阵分析软件。80年代初期,由CleveMoler和JohnLittle采用C语言改写了MATLAB的内核。成立了Mathworks软件开发公司,并于1984年将MATLAB正式推向市场。1992年初推出了应用于Windows操作系统的MATLAB4.x版本。1997年推出5.1版本。1998年推出5.2版本。1999年推出MATLAB5.3版本,MATLAB5.3对应于Release11。2000年又推出了更为简便易学的MATLAB6.0版本,MATLAB6.0对应于Release12。Matlab简介1、MATLAB的起源与发展3Matlab简介2、MATLAB的主要特点MATLAB的基本单位为矩阵.MATLAB语言以解释方式工作.具有非常友好的人机界面。具有强大的作图和数据可视化功能.具有极强的可扩展性。3、MATLAB的基本组成MATLAB主程序、Simulink动态系统仿真和MATLAB工具箱(Toolbox)三大部分组成。主程序包括了MATLAB语言、工作环境、句柄图形、数学函数库和应用程序接口五部分.MATLAB重庆邮电大学数理学院沈世云Matlab简介2、MATLAB的主要特点MATLAB4.Matlab的安装MATLAB重庆邮电大学数理学院沈世云.Matlab的安装MATLAB重庆邮电大学5Matlab工作环境界面1.MATLAB的启动

桌面快捷方式启动开始菜单方式启动2.MATLAB和退出

Matlab菜单命令/关闭按钮在Matlab命令窗口输入exit或quitMATLAB重庆邮电大学数理学院沈世云Matlab工作环境界面1.MATLAB的启动MATL6Matlab工作环境界面包含一行标题栏、一行菜单栏、一行工具栏、五个工作窗口和一行注释栏。五个工作窗口分别为:启动平台(

LaunchPad)、工作空间(Workspace)、命令历史(CommandHistory)、当前路径(CurrentDirectory)和命令窗口(CommandWindows)。历史命令启动平台命令窗口

标题栏

菜单栏

常用工具栏

工作空间当前路径MATLAB重庆邮电大学数理学院沈世云Matlab工作环境界面包含一行标题栏、一行菜单栏、一行工具71、MATLAB

菜单项File(文件)菜单Edit(编辑)菜单View(视图)菜单Window(窗口)菜单Web(连网信息)Help(帮助)菜单Matlab工作环境界面MATLAB重庆邮电大学数理学院沈世云1、MATLAB菜单项Matlab工作环境界面MATLAB8Matlab工作环境界面2、MATLAB工具栏

用MATLAB的M文件编辑器新建一个M文件;用MATLAB编辑器打开一个文件;将选中的内容剪切到剪贴板;将选中的内容复制到剪贴板;将剪贴板中的内容粘贴到光标指定的位置;撤消最近一次的操作;打开Simulink浏览器;打开MATLAB帮助窗口。当前工作路径Matlab工作环境界面2、MATLAB工具栏用MATL9例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的计算结果例1-1绘制函数y=2sin(1+x)的图像,并计算当10Matlab工作环境界面3、MATLAB通用命令Matlab工作环境界面3、MATLAB通用命令11Matlab帮助系统1、Matlab联机帮助

#工具条中的?按钮;

#help菜单栏中前2

项中的任何一项;

#在命令窗口中执行

helpdesk或doc。2、Matlab的网上资源web菜单栏MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统1、Matlab联机帮助2、Matlab12Matlab帮助系统3、Matlab常用的窗口帮助命令MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统3、Matlab常用的窗口帮助命令MAT13Matlab帮助系统help命令直接输入help,MATLAB将列出所有的帮助主题,每个帮助主题对应于MATLAB搜索路径中的一个目录;help后加帮助主题,可获得指定帮助主题的帮助信息;help后加函数名;help后加命令名,将得到指定命令的用法;MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统help命令MATLAB重庆14Matlab帮助系统demo命令基本矩阵演示窗口MATLAB演示窗口MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统demo命令基本矩阵演示窗口MATLA15Matlab帮助系统helpwin命令用于打开MATLAB的帮助文件窗MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统helpwin命令用于打开MATLA16Matlab帮助系统lookfor命令允许用户通过完整的或部分关键字来搜索要查找的内容who和whos的作用是列出在MATLAB工作内存中驻留的变量名exist命令用来查找或检查变量和函数的存在性MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统lookfor命令允许用户通过完整的或17第二节Matlab编程基础1变量2数组,向量与矩阵的创建和访问3部分特殊变量和常数4部分常用运算符5Matlab的程序设计6m文件的创建,保存7基本数学函数和基本绘图函数8编程举例MATLAB重庆邮电大学数理学院沈世云第二节Matlab编程基础1变量MATLAB182.1变量变量无需定义即可使用。

变量名的大小写是敏感的。变量的第一个字符必须为英文字母,而且不超过31个字符。变量名可以包含下连字符、数字,但不能为空格符、标点。MATLAB重庆邮电大学数理学院沈世云2.1变量变量无需定义即可使用。MATLAB192.2数组,向量与矩阵的创建和访问在Matlab中,这三个概念在创建和显示的时候没有任何区别。向量的创建要创建一个向量,在命令窗口下输入:

t=0:1:10屏幕显示:t=012345678910注意:

向量的第一个元素的下标是1,而不是0。T=0:1:10产生了0~10步长为1的共11个数,保存在t(1),t(2),┉t(11)中。MATLAB重庆邮电大学数理学院沈世云2.2数组,向量与矩阵的创建和访问在Matlab中,这三个20矩阵的创建例如:创建一个3×3的矩阵,输入:

a=[123;456;789]

屏幕输出a=123456789MATLAB重庆邮电大学数理学院沈世云矩阵的创建MATLAB重庆邮电大学数理学院21访问矩阵的某一个元素:

a(3,2)ans=8访问矩阵某行(列)的所有元素:a(3,:)a(:,2)注意:这两个符号分别是1*3行向量和3*1列向量

MATLAB重庆邮电大学数理学院沈世云访问矩阵的某一个元素:MATLAB重庆邮电大学222.3部分特殊变量和常数ans最近生成的无名结果eps浮点数的相对误差pi3.14145926i虚数单位

j虚数单位Inf无穷大,如n/0MATLAB重庆邮电大学数理学院沈世云2.3部分特殊变量和常数ans最近生成的无名结果MA232.4部分常用运算符2.4.1算术运算符+加-减*乘(包括标量乘,矩阵乘,标量与矩阵乘)/除(包括标量除,矩阵除标量,数组除标量)^矩阵求幂(矩阵必须为方阵)

.*数组相乘

./数组相除

.^数组求幂注意:.*(./)表示两个同维数组中的对应元素做乘(除)

.^表示对数组的每个元素求幂MATLAB重庆邮电大学数理学院沈世云2.4部分常用运算符2.4.1算术运算符MATLAB242.4.2关系运算符<小于<=小于等于

>大于

>=大于等于

==等于

~=不等于运算法则:若关系式成立,结果为1;若关系式不成立,结果为0。MATLAB重庆邮电大学数理学院沈世云MATLAB重庆邮电大学数理学院沈世云2.4.2关系运算符<小于MATLAB重庆252.4.3逻辑运算符&与|或~非运算法则:若逻辑真,结果为1,若逻辑假,结果为0。2.4.4其他常见符号

=变量赋值%注释符‘共轭转置符:冒号运算符n:s:m产生n~m,步长为s的序列,s可以为正或负或者小数,默认值为1。MATLAB重庆邮电大学数理学院沈世云2.4.3逻辑运算符&与|或26sin正弦函数

asin反正弦函数

cos余弦函数

acos反余弦函数

tan正切函数

atan反正切函数

cot余切函数

acot反余切函数

sec正割函数

asec反正割函数

csc余割函数

acsc反余割函数

sinh双曲正弦函数

asinh反双曲正弦函数

cosh双曲余弦函数

acosh反双曲余弦函数

tanh双曲正切函数

atanh反双曲正切函数

sech双曲正割函数

asech反双曲正割函数

csch双曲余割函数

acsch反双曲余割函数

coth双曲余切函数

acoth反双曲余切函数

三角函数与双曲函数sin正弦函数sinh双曲27abs(x)绝对值sqrt(x) 开平方conj(z) 共轭复数round(x)四舍五入floor(x)舍去正小数rat(x) 化为分数表示gcd(x,y)最大公因数exp(x)自然指数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为底的对数abs(x)绝对值angle(z) 复数28who

列出在MATLAB工作空间中已有的变量whos

列出驻留变量的同时,还给出维数及性质clear

删除内存中的变量(数据)clc

删除命令窗口的内容(已使用过的命令)home

光标移到命令窗口的左上角clf

删除图形窗口的内容↑

调出刚才使用过的命令quit

退出MATLAB11/15————MATLAB常用函数介绍————MATLAB命令窗口的部分通用命令who列出在MATLAB工作空间中已有的变量11/29二.matlab应用初步1用Matlab进行多项式运算与方程求根2用Matlab进行求导运算3用Matlab进行求极限二.matlab应用初步1用Matlab进行多项式运算301Matlab多项式运算与方程求根1.1Matlab多项式运算

在Matlab中,n次多项式是用一个长度为n+1的向量来表示,缺少的幂次项系数为0。例如:在Matlab中表示为相应的向量:例:注:系数中的零不能省!1Matlab多项式运算与方程求根1.1Matlab31多项式四则运算多项式加减运算:Matlab没有提供专门进行多项式加减运算的函数,事实上,多项式的加减就是其所对应的系数向量的加减运算。例:对于次数相同的多项式,可以直接对其系数向量进行加减运算;如果两个多项式次数不同,则应该把低次多项式中系数不足的高次项用0补足,然后进行加减运算。多项式四则运算多项式加减运算:Matlab没有提供专门进32多项式四则运算(续)多项式乘法运算: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<==>多项式四则运算(续)多项式乘法运算:k=conv(p331.2多项式的导数:

polyderk=polyder(p):多项式

p

的导数;k=polyder(p,q):p*q

的导数;[k,d]=polyder(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.2多项式的导数:

polyderk=polyder(341.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

是向量或矩阵,则采用数组运算(点运算)!1.3多项式求值p=[2,-1,0,3];例:已知35多项式求值(续)p=[2,-1,0,3];x=[-1,2;-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))多项式求值(续)p=[2,-1,0,3];例:已知361.4多项式求根p=[2,-1,0,3];x=roots(p)x=roots(p):若p是n次多项式,则输出x为包含p=0的n个根的n维向量。例:已知,求p(x)的零点。1.4多项式求根p=[2,-1,0,3];x=root372.用Matlab进行求导运算在Matlab中,求函数的导数或偏导数的格式为:表示f对x求一阶导数表示f对x求n阶导数例1:求函数的导数解Symsxy=x^3+cos(x)+log(2);z=diff(y)2.用Matlab进行求导运算在Matlab中,求函数38例2:求函数的二阶及三阶导数解例3:求函数的二阶及三阶导数ans=x^x*(log(x)+1)*log(x)+x^x/xSymsxy=exp(-x)*cos(x)Z=diff(y,3)Symsxy=x^x*log(x)Z=diff(y,3)例2:求函数的二阶39

n=0:1:63;S=sum(2.^n)S=1.8447e+019例2.

计算sinx

处的值clearx=pi./[8,6,4,3];y=sin(x)y=0.38270.50000.70710.8660例1.计算级数:S=1+2+22+23+···+263=n=0:1:63;S=sum(2.^n)例2.计算sin408/15例3.衰减振荡曲线函数:y=e-0.5x

sin5x图形.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')8/15例3.衰减振荡曲线函数:y=e-0.5x41

3.3用Matlab进行画图1.常见初等函数的图形2.本实验所用Matlab命令提示:(1)绘制二维的最常用的命令是plot,基本用法为:plot(x,y):以x为横坐标、y为纵坐标绘制函数或数据图形plot(y):绘制一个向量的图形,相当于x=[1,2,…,length(y)]时的情形在同一图形窗口中绘制多个曲线:可用plot(x,[y1;y2;…])命令,其中x是横坐标向量,[y1;y2;…]是由几个函数的纵坐标拼成的矩阵,这时Matlab将用不同颜色的曲线表示不同的函数。3.3用Matlab进行画图42(2)图形文字标注命令:xlabel(‘x轴名称’);ylabel(‘y轴名称’);zlabel(‘z轴名称’)title(‘图形标题’);text(‘说明文字’);用鼠标在特定位置输入文字。legend命令:可用于说明不同函数所使用的线型。(3)绘制三维图形的命令:meshgrid命令:用于形成二维网格点。然后计算在这些网格上的函数值,为绘制图形做准备。三维绘图命令:

plot3(x,y,z)%线条图

mesh(x,y,z)%网格图

meshc(x,y,z)%具有基本等高线的网格图

suef(x,y,z)%表面图

suefc(x,y,z)%具有基本等高线的表面图ezplot3(x,y,z,’animate’):Matlab6.x提供了ezplot3命令,产生三维动画图形。(2)图形文字标注命令:43(4)条形图

bar(x,y)%竖直条形图

barh(x,y)%水平条形图

bar3(x,y)%三维竖直条形图

barh3(x,y)%三维水平条形图(5)线条和颜色控制符:.点y黄。小圆圈m棕色

xx标记c青色

+加号r红色

-实线g绿色*星号b蓝色:虚线w白色

-.点划线h黑色(4)条形图(5)线条和颜色控制符:.点44例1:求在区间[0,2*pi]画sin(x)解例2:求在区间[0,2*pi]用红线画sin(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')例1:求在区间[0,2*pi]画sin(x)解例2:求在区间45符号函数画图:表示在默认区间-2*pi<x<2*pi绘制f=f(x)的函数图表示在a<x<b绘制显函数f=f(x)的函数图表示在区间xmin<x<xmax和ymin<y<ymax绘制隐函数f(x,y)=0的函数图表示在区间tmin<t<tmax绘制参数方程x=x(t),y=y(t)的函数图符号函数画图:表示在默认区间-2*pi<x<2*pi绘制f=463.1二维图形绘制plot(X,Y,s)以X为横坐标,Y为纵坐标,绘制图形,第3个参数控制图形显示属性(线形、颜色及标识等)【例】x=0:0.01*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,'rd',x,z,'-.k')3.1二维图形绘制plot(X,Y,s)以X为横坐标,Y473.1二维图形绘制二维特殊函数图表:Matlab中常见二维特殊图形函数3.1二维图形绘制二维特殊函数图表:Matlab中常见二维483.1二维图形绘制例【例】x=1:10;y=rand(10,1);bar(x,y)subplot(2,1,2)x=[111234353658595480818283848586];hist(x)barhist3.1二维图形绘制例【例】barhist493.1二维图形绘制离散数据图形绘制x=0:0.25:(3*pi);stem(x,sin(x));%stem(x,sin(x),’sr’,’fill’);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.25:(503.1二维图形绘制标题与轴标签对图形加上标题,标明横纵坐标【例】x=0:0.01*pi:2*pi;y=sin(x);plot(x,y)title('正弦函数','FontSize',15)xlabel('x(0-2\pi)','FontSize',14)ylabel('y=sin(x)','FontSize',14)3.1二维图形绘制标题与轴标签【例】513.1二维图形绘制在标注中如何输入特殊符号θφψαβΩ?字符转换如:\pi即显示为π\Omega即显示为Ω无须记住,用时会查,会联想即可常见符号转义示例3.1二维图形绘制在标注中如何输入特殊符号θφψαβΩ?523.1二维图形绘制文本标注text(x,y,’标注文本及控制字符串’)【例】>>x=0:0.01*pi:2*pi;>>plot(x,sin(x))>>text(3*pi/4,sin(3*pi/4),['\leftarrowsin(3\pi/4)=',num2str(sin(3*pi/4))],'FontSize',12)3.1二维图形绘制文本标注【例】533.1二维图形绘制将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:

title——给图形加标题xlable——给x轴加标注ylable——给y轴加标注text——在图形指定位置加标注gtext——将标注加到图形任意位置gridon(off)——打开、关闭坐标网格线legend——添加图例axis——控制坐标轴的刻度3.1二维图形绘制将标题、坐标轴标543.1二维图形绘制图形的保持与子图多次绘制得到重叠效果holdon开启图形保持功能holdoff关闭图形保持功能坐标限若不一致,自动调整3.1二维图形绘制图形的保持与子图553.1二维图形绘制示例【例】x=0:0.1*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,'-*')holdon%开启plot(x,z,'-o')plot(x,y+z,'-h')legend('sin(x)','cos(x)','sin(x)+cos(x)',0)holdoff%关闭3.1二维图形绘制示例【例】563.1二维图形绘制子图几个图形在同一图形窗口表示出来subplotsubplot(m,n,p)将一个图形窗口分割成m×n个子绘图区域,通过区域编号参数p调用各子区域3.1二维图形绘制子图subplotsubpl573.2三维图形绘制常用基本命令plot3()plot3(x,y,z)%x,y,z为3个相同维数的向量plot3(X,Y,Z)%X,Y,Z为3个相同阶数的矩阵plot3(X,Y,Z,s)%s为定义线形的参数plot33.2三维图形绘制常用基本命令plot3()plot3583.2三维图形绘制例:绘制三维螺旋线【例】x=0:pi/50:10*pi;y=sin(x);z=cos(x);plot3(x,y,z)3.2三维图形绘制例:绘制三维螺旋线【例】593.2三维图形绘制更进一步:【例】t=0:0.1:10*pi;x=exp(-t/20).*cos(t);y=exp(-t/20).*sin(t);z=t;plot3(x,y,z);xlabel('x');ylabel('y');zlabel('z');3.2三维图形绘制更进一步:【例】60从不同视角观察view(az,el)az表示方位角el表示仰角zyx-y视点az方位角el仰角从不同视角观察view(az,el)zyx-y视点az方位角613.2三维图形绘制从不同视角观察view(az,el)az表示方位角el表示仰角3.2三维图形绘制从不同视角观察view(az,el)623.2三维图形绘制绘制三维饼状图【例】>>x=[2,4,6,8];>>pie3(x,[1,1,1,1])%第二个参数控制各块的分离3.2三维图形绘制绘制三维饼状图【例】633.2三维图形绘制Matlab中创建三维图形基本步骤1.数据准备2.调用三维图形函数plot3(),mesh(),surf()等表:绘制三维图形的函数3.2三维图形绘制Matlab中创建三维图形基本步骤表:643.2三维图形绘制Matlab中主要用mesh,surf命令绘制二元函数mesh(x,y,z)画网格曲面,x,y,z是数据矩阵,分别表示数据点的横坐标、纵坐标和函数值,该命令将数据点在空间中描出,并连成网格surf(x,y,z)画完整曲面,x,y,z是数据矩阵,分别表示数据点的横坐标、纵坐标和函数值,该命令将数据点所表示曲面画出3.2三维图形绘制Matlab中主要用mesh,surf命653.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三维图形绘制绘图示例>>z=peaks(20);>>663.2三维图形绘制创建3-D网格和表面理解Matlab向量式计算的好处x=[-101];y=[9101112];[X,Y]=meshgrid(x,y)Matlab返回X=-101-101-101-101Y=999101010111111121212meshgrid(x,y)生成X,Y矩阵X重复x为行向量Y重复y为列向量3.2三维图形绘制创建3-D网格和表面x=[-10673.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([02*pi0pi-11])3.2三维图形绘制例:使用meshgrid函数[X,Y]683.2三维图形绘制例:马鞍面绘制%马鞍面函数%z=x^2-2y^2t2=-30:.3:30;[x2,y2]=meshgrid(t2);z2=x2.^2-2*y2.^2;mesh(x2,y2,z2);title('马鞍面')3.2三维图形绘制例:马鞍面绘制%马鞍面函数693.2三维图形绘制示例:绘制二元函数图形画出函数的图形,其中(x,y)属于[-3,3]*[-3,3]绘制的步骤是?3.2三维图形绘制示例:绘制二元函数图形画出函数的图形,其703.2三维图形绘制%准备数据,指定定义域x=-3:0.1:3;y=-3:0.1:3;%将向量x,y指定区域转化为矩阵X,Y[X,Y]=meshgrid(x,y);%产生函数值Z=sqrt(X.^2+Y.^2);%mesh绘制网格,surf绘制完整表面surf(X,Y,Z)绘制的步骤是?3.2三维图形绘制%准备数据,指定定义域绘制的步骤是?713.2三维图形绘制大功告成3.2三维图形绘制大功告成723.2三维图形绘制示例:再绘马鞍面观察两个曲面相交,马鞍面z=x^2-2y^2和平行于Z轴平面绘制的步骤是?3.2三维图形绘制示例:再绘马鞍面观察两个曲面相交,马鞍面733.2三维图形绘制%准备数据,指定定义域并转化为矩阵x,y[x,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);holdon;%保持图形mesh(x,y,z2);绘制的步骤是?3.2三维图形绘制%准备数据,指定定义域并转化为矩阵x,743.2三维图形绘制3.2三维图形绘制753.2三维图形绘制参数方程绘制ezmesh,ezsurf绘制椭球面It’sveryeasy3.2三维图形绘制参数方程绘制ezmesh,ezsu763.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=-2*pi:0.1:2*pi;773.2三维图形绘制示例:绘制正螺面u,v在-2pi至2pi命令为ezsurfezsurf('u*sin(v)','u*cos(v)','4*v',[-2*pi,2*pi,-2*pi,2*pi])3.2三维图形绘制示例:绘制正螺面u,v在-2pi至2pi783.2三维图形绘制示例:绘制圆锥面u,v在-2pi至2pi命令为ezsurfezsurf('u*sin(v)','u*cos(v)','u',[-2*pi,2*pi,-2*pi,2*pi])3.2三维图形绘制示例:绘制圆锥面u,v在-2pi至2pi79(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)x=-5:0.5:5;80图(6)图(6)81MATLAB语言编程介绍MATLAB中各种命令可以完成许多单一的任务,对于某些较为复杂的问题,仅靠现有的命令或函数来解决,往往是难以达到目的。为此,要运用MATLAB编程语言编制程序,形成M-文件。程序是使计算机完成各项运算的命令集,运行一个编制好的程序,计算机会从第一条命令行开始,一行接一行地执行相应的命令,直到终止。程序一般包含:数据输入,数据处理和结果输出三部分,其中数据处理是核心。程序编写调试完成后,需要存盘,形成永久性文件,可以随时对它进行调用或修改。文件名以字母开头,但不能用专用变量名,如pi等。MATLAB中每一个命令都是一个M-文件。MATLAB语言编程介绍MATLAB中各种命令可以完成许多单822.5Matlab程序设计

Matlab的工作方式有二种

1.交互式的指令操作方式。即用户在命令窗口中输入命令并按下回车键后,系统执行该指令并立即给出运算结果。

2.m文件的编程方式。m文件是由matlab语句构成的文件,且文件名必须以.m为扩展名,如example.m。用户可以用任何文件编辑器来对M文件进行编辑。

MATLAB重庆邮电大学数理学院沈世云2.5Matlab程序设计Matlab的工作方式有二83程序流程控制顺序结构:Matlab从上到下依次执行各语句,该结构最简单。循环结构(1)for-end循环

用于循环次数事先确定的,格式为fori=n:s:m

语句体ends为步长,可以为正数,负数或小数。

程序流程控制顺序结构:Matlab从上到下依次执行各语句,84(2)while-end循环

用于循环次数不能事先确定的,格式为

while表达式

语句

end

只有表达式为真,就执行语句体,表达式为假,终止该循环。(2)while-end循环85分支结构(1)

if语句

格式为if表达式1

语句体1elseif表达式2

语句体2………..else

语句体elseend分支结构862.6m文件的创建,保存

创建

【File】菜单下【New】菜单选项的【M-File】命令打开matlab的m文件编辑器窗口。

2.6m文件的创建,保存创建87保存

单击M文件编辑器窗口工具栏中的【Save】图标,打开保存对话框

保存882.7基本数学函数和基本绘图函数sincostancotexplog:自然对数log10:产用对数Log2:以二为底的对数abs:取模conj:取共轭real:取实部imag:取虚部2.7基本数学函数和基本绘图函数sincost89基本绘图指令Matlab提供了强大的图形绘制功能。在大多数情况下,用户只需要指定绘图的方式,提供绘图数据,利用Matlab提供的丰富的二维,三维图形函数,就可以绘制出所需的图形。1.绘制二维连续函数

Matlab中最常用的绘图函数是plot,plot的命令格式有以下几种:基本绘图指令Matlab提供了强大的图形绘制功能。在大多数情90(1)

plot(y)

当y为一向量时,以y的序号作为x轴,按向量y的值绘制曲线。(2)

plot(x,y)x,y均为向量时,以x向量作为X轴,向量y作为Y轴绘制曲线。注意:x和y种元素的个数必须相同!(1)

plot(y)912.绘制二维离散序列在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)坐标面画一个实心小圆圈,并连接一条线段到X轴。2.绘制二维离散序列923.8编程举例例一:画出衰减震荡曲线及其包络线

t的取值范围是程序如下:

3.8编程举例例一:画出衰减震荡曲线93程序运行结果如下:程序运行结果如下:94M-文件中输入、输出命令

直接赋值输入:提示对话输入(input命令)x=2;x=input('请输入参数x=');a=[1,2;3,4];a=input('请输入矩阵a=');s='anystring!';s=input('Pleaseinputs=');直接输出:格式控制输出(fprintf命令)xfprintf('x=%.0f,y=%.5f\n',pi,pi);disp([a,b]);fprintf('x=%5g,y=%10.5g\n',N,pi);M-文件中输入、输出命令直接赋值输入:提示对话输95M-文件中循环控制命令(for命令)格式:fori=n1:(step):n2 commands;end作用:重复执行命令集commands.M-文件中循环控制命令(for命令)格式:fori=96例2:求奇数和:s=1+3+5+…+(2k-1)n=input('请输入n='); s=0;fori=1:2:n s=s+i;fprintf('i=%.0f,s=%.0f\n',i,s);end例1:求和:s=1+2+…+nn=input('请输入n='); s=0;fori=1:n s=s+i;fprintf('i=%.0f,s=%.0f\n',i,s);end例2:求奇数和:s=1+3+5+…+(2k-1)例1:求和:97例3:求阶乘:p=1×2×3×…×n=n!n=input('请输入n='); p=1;fori=1:n p=p*i;fprintf('i=%.0f,p=%.0f\n',i,p);end例4:求e:e=1+1+1/2!+1/3!+…+1/n!n=input('请输入n='); p=1;e=1;fori=1:n p=p*i;p1=1/p;e=e+p1;fprintf('i=%.0f,p=%.0f,e=%.8f\n',i,p,e);end

例3:求阶乘:p=1×2×3×…×n=n!例4:98例5:求pi:pi/4=1-1/3+1/5-1/7+1/9-1/11+……n=input('请输入n='); pi=0;k=-1;fori=1:2:n k=(-1)*k;pi=pi+k*1/i;fprintf('i=%.0f,pi=%.8f\n',i,4*pi);end例5:求pi:pi/4=1-1/3+1/5-1/7+1/9-99M-文件中条件循环命令(while命令)格式:while(conditionistrue) commands;end作用:重复执行命令集commands.M-文件中条件循环命令(while命令)格式:whil100例6:求和:s=1+2+…+n<3000 s=0;k=1;whiles<3000 s=s+k;fprintf('k=%.0f,s=%.0f\n',k,s);k=k+1;end例7:求e:e=1+1+1/2!+1/3!+…(1/n!<1.0e-8) p=1;e=1;r=1;i=1;whiler>=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例6:求和:s=1+2+…+n<3000例7:求e:e=1+101M-文件中选择控制命令(if命令)单项选择控制格式:if(conditionistrue) commands;end作用:若条件成立,则执行命令集

commands.否则,不执行。M-文件中选择控制命令(if命令)单项选择控制102例8:求n个实数中最大的数M.a=input('请输入数组a[n]=');[m,n]=size(a);M=a(1); fori=2:n ifM<a(i)M=a(i);endfprintf('M=%.5f,a(%.0f)=%.5f\n',M,i,a(i));end例8:求n个实数中最大的数M.103M-文件中选择控制命令(if命令)多项选择控制格式:if(conditionistrue) commands;elseif(conditionistrue)commands;elsecommands;end作用:若条件成立,则执行命令集

commands.否则,不执行。M-文件中选择控制命令(if命令)多项选择控制104例9:建立符号函数sign(x)x=input('x=');ifx>0sn=1;elseifx==0sn=0;elsesn=-1;endfprintf('x=%.5f,sn=%.0f\n',x,sn);例9:建立符号函数sign(x)105数值计算问题问题1:求无理数的近似值

先求的近似值,再设计通用程序.问题2:用两种方法求Pi的近似值数值计算问题问题1:求无理数的近似值106例10:用二分法求函数x^2-2=0的正实根.例10:用二分法求函数x^2-2=0的正实根.107输入初值:输出结果:STOPNoNoNoYesYesYes输入初值:输出结果:STOPNoNoNoYesYesYes108例11:用切线法求函数x^2-2=0的正实根.例11:用切线法求函数x^2-2=0的正实根.109例12:用泰勒公式求pi的近似值。特点:收敛速度慢,循环次数多.例12:用泰勒公式求pi的近似值。特点:收敛速度慢,循环次数110例13:用梯形求积公式求pi的近似值。2)梯形公式3)复化梯形公式例13:用梯形求积公式求pi的近似值。2)梯形公式3)复化梯111例14:用Simpson求积公式求pi的近似值。1)辛普生公式2)辛普生公式与梯形公式的关系例14:用Simpson求积公式求pi的近似值。1)辛普生112数学建模讲稿Matlab及其应用数学建模讲稿Matlab及其应用113第一节Matlab概述

1、Matlab简介

2、Matlab的工作环境

3、Matlab帮助系统

第一节Matlab概述1、Matlab简介114Matlab简介1、MATLAB的起源与发展MATLAB是“矩阵实验室”(MATrixLABoratory)的缩写,最初版本是由CleveMoler博士用FORTRAN语言开发的矩阵分析软件。80年代初期,由CleveMoler和JohnLittle采用C语言改写了MATLAB的内核。成立了Mathworks软件开发公司,并于1984年将MATLAB正式推向市场。1992年初推出了应用于Windows操作系统的MATLAB4.x版本。1997年推出5.1版本。1998年推出5.2版本。1999年推出MATLAB5.3版本,MATLAB5.3对应于Release11。2000年又推出了更为简便易学的MATLAB6.0版本,MATLAB6.0对应于Release12。Matlab简介1、MATLAB的起源与发展115Matlab简介2、MATLAB的主要特点MATLAB的基本单位为矩阵.MATLAB语言以解释方式工作.具有非常友好的人机界面。具有强大的作图和数据可视化功能.具有极强的可扩展性。3、MATLAB的基本组成MATLAB主程序、Simulink动态系统仿真和MATLAB工具箱(Toolbox)三大部分组成。主程序包括了MATLAB语言、工作环境、句柄图形、数学函数库和应用程序接口五部分.MATLAB重庆邮电大学数理学院沈世云Matlab简介2、MATLAB的主要特点MATLAB116.Matlab的安装MATLAB重庆邮电大学数理学院沈世云.Matlab的安装MATLAB重庆邮电大学117Matlab工作环境界面1.MATLAB的启动

桌面快捷方式启动开始菜单方式启动2.MATLAB和退出

Matlab菜单命令/关闭按钮在Matlab命令窗口输入exit或quitMATLAB重庆邮电大学数理学院沈世云Matlab工作环境界面1.MATLAB的启动MATL118Matlab工作环境界面包含一行标题栏、一行菜单栏、一行工具栏、五个工作窗口和一行注释栏。五个工作窗口分别为:启动平台(

LaunchPad)、工作空间(Workspace)、命令历史(CommandHistory)、当前路径(CurrentDirectory)和命令窗口(CommandWindows)。历史命令启动平台命令窗口

标题栏

菜单栏

常用工具栏

工作空间当前路径MATLAB重庆邮电大学数理学院沈世云Matlab工作环境界面包含一行标题栏、一行菜单栏、一行工具1191、MATLAB

菜单项File(文件)菜单Edit(编辑)菜单View(视图)菜单Window(窗口)菜单Web(连网信息)Help(帮助)菜单Matlab工作环境界面MATLAB重庆邮电大学数理学院沈世云1、MATLAB菜单项Matlab工作环境界面MATLAB120Matlab工作环境界面2、MATLAB工具栏

用MATLAB的M文件编辑器新建一个M文件;用MATLAB编辑器打开一个文件;将选中的内容剪切到剪贴板;将选中的内容复制到剪贴板;将剪贴板中的内容粘贴到光标指定的位置;撤消最近一次的操作;打开Simulink浏览器;打开MATLAB帮助窗口。当前工作路径Matlab工作环境界面2、MATLAB工具栏用MATL121例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的计算结果例1-1绘制函数y=2sin(1+x)的图像,并计算当122Matlab工作环境界面3、MATLAB通用命令Matlab工作环境界面3、MATLAB通用命令123Matlab帮助系统1、Matlab联机帮助

#工具条中的?按钮;

#help菜单栏中前2

项中的任何一项;

#在命令窗口中执行

helpdesk或doc。2、Matlab的网上资源web菜单栏MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统1、Matlab联机帮助2、Matlab124Matlab帮助系统3、Matlab常用的窗口帮助命令MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统3、Matlab常用的窗口帮助命令MAT125Matlab帮助系统help命令直接输入help,MATLAB将列出所有的帮助主题,每个帮助主题对应于MATLAB搜索路径中的一个目录;help后加帮助主题,可获得指定帮助主题的帮助信息;help后加函数名;help后加命令名,将得到指定命令的用法;MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统help命令MATLAB重庆126Matlab帮助系统demo命令基本矩阵演示窗口MATLAB演示窗口MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统demo命令基本矩阵演示窗口MATLA127Matlab帮助系统helpwin命令用于打开MATLAB的帮助文件窗MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统helpwin命令用于打开MATLA128Matlab帮助系统lookfor命令允许用户通过完整的或部分关键字来搜索要查找的内容who和whos的作用是列出在MATLAB工作内存中驻留的变量名exist命令用来查找或检查变量和函数的存在性MATLAB重庆邮电大学数理学院沈世云Matlab帮助系统lookfor命令允许用户通过完整的或129第二节Matlab编程基础1变量2数组,向量与矩阵的创建和访问3部分特殊变量和常数4部分常用运算符5Matlab的程序设计6m文件的创建,保存7基本数学函数和基本绘图函数8编程举例MATLAB重庆邮电大学数理学院沈世云第二节Matlab编程基础1变量MATLAB1302.1变量变量无需定义即可使用。

变量名的大小写是敏感的。变量的第一个字符必须为英文字母,而且不超过31个字符。变量名可以包含下连字符、数字,但不能为空格符、标点。MATLAB重庆邮电大学数理学院沈世云2.1变量变量无需定义即可使用。MATLAB1312.2数组,向量与矩阵的创建和访问在Matlab中,这三个概念在创建和显示的时候没有任何区别。向量的创建要创建一个向量,在命令窗口下输入:

t=0:1:10屏幕显示:t=012345678910注意:

向量的第一个元素的下标是1,而不是0。T=0:1:10产生了0~10步长为1的共11个数,保存在t(1),t(2),┉t(11)中。MATLAB重庆邮电大学数理学院沈世云2.2数组,向量与矩阵的创建和访问在Matlab中,这三个132矩阵的创建例如:创建一个3×3的矩阵,输入:

a=[123;456;789]

屏幕输出a=123456789MATLAB重庆邮电大学数理学院沈世云矩阵的创建MATLAB重庆邮电大学数理学院133访问矩阵的某一个元素:

a(3,2)ans=8访问矩阵某行(列)的所有元素:a(3,:)a(:,2)注意:这两个符号分别是1*3行向量和3*1列向量

MATLAB重庆邮电大学数理学院沈世云访问矩阵的某一个元素:MATLAB重庆邮电大学1342.3部分特殊变量和常数ans最近生成的无名结果eps浮点数的相对误差pi3.14145926i虚数单位

j虚数单位Inf无穷大,如n/0MATLAB重庆邮电大学数理学院沈世云2.3部分特殊变量和常数ans最近生成的无名结果MA1352.4部分常用运算符2.4.1算术运算符+加-减*乘(包括标量乘,矩阵乘,标量与矩阵乘)/除(包括标量除,矩阵除标量,数组除标量)^矩阵求幂(矩阵必须为方阵)

.*数组相乘

./数组相除

.^数组求幂注意:.*(./)表示两个同维数组中的对应元素做乘(除)

.^表示对数组的每个元素求幂MATLAB重庆邮电大学数理学院沈世云2.4部分常用运算符2.4.1算术运算符MATLAB1362.4.2关系运算符<小于<=小于等于

>大于

>=大于等于

==等于

~=不等于运算法则:若关系式成立,结果为1;若关系式不成立,结果为0。MATLAB重庆邮电大学数理学院沈世云MATLAB重庆邮电大学数理学院沈世云2.4.2关系运算符<小于MATLAB重庆1372.4.3逻辑运算符&与|或~非运算法则:若逻辑真,结果为1,若逻辑假,结果为0。2.4.4其他常见符号

=变量赋值

温馨提示

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

评论

0/150

提交评论