ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:311.12KB ,
资源ID:10116606      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10116606.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matlab入门2.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

matlab入门2.docx

1、matlab入门2 应用数学软件-MATLAB入门在科学和工程应用中,往往要进行大量的科学计算,其中包括以矩阵为基础的数学计算;这些计算一般来说难以用手工精确和快捷地进行,而且众多工程问题一般只要求得到满足精度的近似解即可,从而借助于计算机编写相应的程序进行近似计算就显得很有必要。目前用Basic、Fortran和C编制计算程序较多,但其既需要对有关算法有深刻的了解,还需要熟练掌握所用语言的语法和编程技巧;这对较多科学和工程技术人员而言,同时具备这两方面的技能就很有难度;而且用上述语言编制程序不但复杂,一般需要大量的人力和物力,而且影响工作进程和效率,为此,美国Mathwork公司于1967年

2、推出了“Matrix Laboratory”(即矩阵实验室,缩写为Matlab)软件包,并不断进行更新和扩充,目前已成为全球应用最广泛最流行的软件之一。目前最新的2012b版本(windows环境)是一种功能强、效率高便于进行科学和工程计算的交互式软件包。其中包括:一般数值分析、矩阵运算、概率统计、建模与系统控制和优化等应用程序。集应用程序和图形于一体便于使用的集成环境中,在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程,就可解决工程、科学计算和数学学科中的许多问题。不过,Matlab作为一种新的计算机语言,要想运用自如,充分发挥它的威力,必须先系统地学

3、习它。首先应该相信的是,由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,从而学习Matlab语言不象学习其它高级语言如Basic、Fortran和C等那样难以掌握。1 MATLAB语言基础MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化,矩阵是MATLAB的核心。1.1 变量与函数1.1.1 变量MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号。1.1.2 特殊变量表特殊变量

4、取 值ans用于结果的缺省变量名pi圆周率eps计算机的最小数,当和1相加就产生一个比1大的数inf无穷大,如1/0NaN不定量,如0/0i,ji=j=realmin最小可用正实数realmax最大可用正实数1.1.3 数学运算符号及标点符号+加法运算,适用于两个数或两个同阶矩阵相加减法运算*乘法运算.*点乘运算/除法运算./点除运算乘幂运算.点乘幂运算反斜杠表示左除(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示该条命令运行的结果;若命令后为分号,则运行结果不显示;(2)“%” 后面所有文字为注释;(3)“.”表示续行。1.1.4 数学函数函 数名 称函 数名 称sin(x)正弦

5、函数asin(x)反正弦函数cos(x)余弦函数acos(x)反余弦函数tan(x)正切函数atan(x)反正切函数abs(x)绝对值max(x)最大值min(x)最小值sum(x)元素的总和sqrt(x)开平方exp(x)以e为底的指数log(x)自然对数log10(x)以10为底的对数sign(x)符号函数fix(x)取整1.1.5 M文件MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件. 函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始;格式为:function 因变量名=函数名(自变

6、量名)函数值的获得必须通过具体的运算实现,并赋给因变量. M文件建立方法:(1) 在Matlab中,点:File-New-M-file (2) 在编辑窗口中输入程序内容 (3) 点:File-Save,存盘,M文件名必须与函数名一致。Matlab的应用程序也以M文件保存。例1.1 定义函数 (1)建立M文件:fun.mfunction f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)2(2)可以直接使用函数fun.m例1.2 计算f(1,2),只需在Matlab命令窗口键入命令:x=1 2fun(x)1.2 数组1.2.1 创建简单的数组x=a b c d e f 创建包

7、含指定元素的行向量x=first:last 创建从first开始,加1计数,到last结束的行向量x=first:increment:last 创建从first开始,加increment计数,last结束的行向量x=linspace(first,last,n) 创建从first开始,到last结束,有n个元素的行向量x=logspace(first,last,n) 创建从first开始,到last结束,有n个元素的以10为底的对数分隔行向量.程序:x=1 2 3 4 5 8 7 18y=1:7z=3:2:9v=y zu=linspace(2,9,11)结果:x =1 2 3 4 5 8 7 1

8、8y =1 2 3 4 5 6 7z =3 5 7 9v =1 2 3 4 5 6 7 3 5 7 9u =2.00 2.70 3.40 4.10 4.80 5.50 6.20 6.90 7.60 8.30 9.001.2.2 数组元素的访问(1)访问一个元素: x(i)表示访问数组x的第i个元素. (2)访问一块元素: x(a :b :c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但不超过c),b可以为负数,b缺省时为1. (3)直接使用元素编址序号: x(a b c d) 表示提取数组x的第a、b、c、d个元素构成一个新的数组x(a) x(b) x(c) x(d). 程序:

9、 x=1:9y=x(2:2:8)z=x(1) x(6) x(8)结果:x=1 2 3 4 5 6 7 8 9y=2 4 6 8z=1 6 8 1.2.3 数组的方向前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量. 数组也可以是列向量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示;产生列向量有两种方法: 直接产生 例 c=1;2;3;4 转置产生 例 b=1 2 3 4; c=b说明:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素。1.2.4 数组的运算(1) 标量-数组运算(2) 数组对标量的加、减、乘、除、乘方是数组的每个元

10、素对该标量施加相应的加、减、乘、除、乘方设:a=a1,a2,an, c=标量则:a+c=a1+c,a2+c,an+ca.*c=a1*c,a2*c,an*ca./c= a1/c,a2/c,an/c(右除)a.c= c/a1,c/a2,c/an (左除)a.c= a1c,a2c,ancc.a= ca1,ca2,can 程序: a=1 2 3 4;c=2;a1=a+ca2=a*ca3=a./ca4=a.ca5=a.ca6=c.a结果:a1=3 4 5 6a2=2 4 6 8a3=0.5000 1.0000 1.5000 2.0000a4=2.0000 1.0000 0.6667 0.5000a5=1

11、 4 9 16a6=2 4 8 16(2) 数组-数组运算 当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的.设:a=a1,a2,an, b=b1,b2,bn则:a+b= a1+b1,a2+b2,an+bna.*b= a1*b1,a2*b2,an*bna./b= a1/b1,a2/b2,an/bna.b=b1/a1,b2/a2,bn/ana.b=a1b1,a2b2,anbn程序: a=2 2 2;b=3 3 3;c1=a+bc2=a.*bc3=a./bc4=a.bc5=a.b结果:c1=5 5 5c2=6 6 6c3=0.6667 0

12、.6667 0.6667c4=1.5000 1.5000 1.5000c5=8 8 81.3 矩阵1.3.1 矩阵的建立逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列. 例1.3 m=1 2 3 4 ;5 6 7 8;9 10 11 12p=1 1 1 12 2 2 23 3 3 3特殊矩阵的建立:a= 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零; b=zeros(m,n) 产生一个m行、n列的零矩阵;c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵;d=

13、eye(m,n) 产生一个m行、n列的单位矩阵。程序: m=1 2 3 4;5 6 7 8;9 10 11 12p=1 1 1 1 2 2 2 2 3 3 3 3a=b=zeros(2,3)c=ones(2,3)d=eye(2,3)e=eye(3,3)结果:m =1 2 3 4 5 6 7 8 9 10 11 12p =1 1 1 1 2 2 2 2 3 3 3 3a =b =0 0 0 0 0 0c =1 1 1 1 1 1d =1 0 0 0 1 0e =1 0 0 0 1 0 0 0 11.3.2 矩阵的运算(1)标量-矩阵运算同标量-数组运算。(2)矩阵-矩阵运算 1 元素对元素的运算

14、,同数组-数组运算。2矩阵运算:矩阵加法:A+B矩阵乘法:A*B方阵的行列式:det(A)方阵的逆:inv(A)方阵的特征值与特征向量:V,D=eigA程序: a=1 2 3 4 5 6;b=1 2 1 2 1 2;c1=a+ac2=a*bc=2 7 3;3 9 4;1 5 3c3=det(c)c4=inv(c)v,d=eig(c)结果:c1 =2 4 6 8 10 12c2 = 6 12 15 30c =2 7 3 3 9 4 1 5 3c3 =-3c4 =-2.3333 2.0000 -0.3333 1.6667 -1.0000 -0.3333 -2.0000 1.0000 1.0000v

15、 =-0.5515 -0.7857 -0.2743 -0.7309 0.4412 -0.3391 -0.4020 -0.4337 0.8999d =3.4635 0 0 0 -0.2747 0 0 0 0.81121.4 关系与逻辑运算1.4.1 关系操作符关系操作符说明小于大于=大于或等于= =等于=不等于1.4.2 逻辑运算符逻辑操作符说明与或非1.4.3 控制流 MATLAB提供三种决策或控制流结构:for循环、while循环、if-else-end结构. 这些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中,而不是直接加在MATLAB提示符下.a、for循环:允许一组

16、命令以固定的和预定的次数重复 for x=array commands end在for和end语句之间的命令串commands按数组(array)中的每一列执行一次. 在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)例1.4 对,求的值;程序: for n=1:10 x(n)=sin(n*pi/10);endx结果:x =0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000x=0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0

17、.5878 0.3090 0.0000b、While循环与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值.while expression commands end只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串commands. 例1.5 设银行年利率为11.25%。将10000元钱存入银行,问多长时间会连本带利翻一番?程序: money=10000;years=0;while money1 f=x2+1endif x1 f=x2+1else if x=0 f=x3 else f=2*x endend输入:fun2(

18、2),fun2(0.5),fun2(-1)结果:5 1 -1作业:对以下问题,编写M文件:(1)对随机所给的10个数由小到大排序. (2)对随机所给的一个4行5列的矩阵,编程求出其最大值及其所处的位置.(3)编程求(4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下. 求它在第10次落地时,共经过多少米?第10次反弹有多高?(5)有一函数 ,编写一程序,输入自变量的值,输出函数值.2 MATLAB作图2.1 二维图形2.1.1 曲线图Matlab作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传

19、给Matlab函数画图. 命令为:plot(X,Y,S)plot(X,Y)-画实线plot(X,Y1,S1,X,Y2,S2,X,Yn,Sn)-将多条线画在一起X,Y是向量,分别表示点集的横坐标和纵坐标,plot(X,Y,S)描绘该点集所表示的曲线,其线型S确定如下:y 黄色 . 点 - 连线m 洋红 o 圈 : 短虚线c 蓝绿色 x x-符号 -. 长短线r 红色 + 加号 - 长虚线例2.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, bo)结果:2.1.2

20、符号函数(显函数、隐函数和参数方程)画图(1) ezplotezplot(f(x,y),xmin,xmax,ymin,ymax)表示在区间xminxxmax和 yminyymax绘制隐函数f(x,y)=0的函数图ezplot(x(t),y(t),tmin,tmax)表示在区间tminttmax绘制参数方程x=x(t),y=y(t)的函数图例2.2 在0,pi上画y=sin(x)的图形.程序: ezplot(sin(x),0,pi)结果:例2.3 在0,2*pi上画,星形图.程序: ezplot(cos(t)3,sin(t)3,0,2*pi)结果:例2.4在-2,0.5,0,2上画隐函数图.程序

21、: ezplot(exp(x)+sin(x*y),-2,0.5,0,2)结果:2.2 三维图形空间曲线2.2.1 一条曲线plot3(x,y,z,s) x,y,z是n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值;s指定颜色、线型等例2.5 在区间0,10*pi画出参数曲线x=sin(t),y=cos(t),z=t.程序: t=0:pi/50:10*pi;plot3(sin(t),cos(t),t)rotate3d %旋转结果:2.2.2 多条曲线plot3(x,y,z) 其中x,y,z是都是m*n矩阵,其对应的每一列表示一条曲线.例2.6 画多条曲线观察函数Z=(X+Y).2. 程序:x

22、=-3:0.1:3;y=1:0.1:5;X,Y=meshgrid(x,y);Z=(X+Y).2;plot3(X,Y,Z) 结果:(这里meshgrid(x,y)的作用是产生一个以向量x为行、向量y为列的矩阵)2.3 三维空间曲面(1) surf(x,y,z):画出数据点(x,y,z)表示的曲面。例2.7 画函数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 %将当前图形变得平滑结果:(2) Mesh(x,y,z):画网格曲面。例2.8 画出曲面Z=(X+Y).2在

23、不同视角的网格图程序:x=-3:0.1:3; y=1:0.1:5;X,Y=meshgrid(x,y);Z=(X+Y).2;mesh(X,Y,Z)结果:(3) meshz(X,Y,Z) 在网格周围画一个curtain图(如,参考平面)。例2.9 绘peaks的网格图程序: X,Y=meshgrid(-3:.125:3);Z=peaks(X,Y);Meshz(X,Y,Z)结果:2.4 图形处理2.4.1 图形上加格栅、图例和标注(1)grid on: 加格栅在当前图上; grid off: 删除格栅;(2)hh = xlabel(string): 在当前图形的x轴上加图例string;hh = y

24、label(string): 在当前图形的y轴上加图例string;hh = zlabel(string): 在当前图形的z轴上加图例string;hh = title(string): 在当前图形的顶端上加图例string。例2.10 在区间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结果:(3)hh = gtext(string)运行命令gtext(string)时,屏幕上出

25、现当前图形,在图形上出现一个交叉的十字,该十字随鼠标的移动而移动,当按下鼠标左键时,该标注string放在当前十交叉的位置。例2.11 在区间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)结果:02.4.2 定制坐标Axis(xmin xmax ymin ymax zmin zmax) 定制图形坐标Axis auto 将坐标轴返回到自动缺省值例2.12 在区间0.005,0.01显示sin(1/x)的图形

26、。程序: x=linspace(0.0001,0.01,1000);y=sin(1./x);plot(x,y)axis(0.005 0.01 1 1)结果:另:程序:x=1:10000;plot(1./x,sin(x),b*)axis(0.0005 0.01 -1 1)结果:2.4.3 图形保持(1) hold on 保持当前图形, 以便继续画图到当前图上。hold off 释放当前图形窗口。例2.13 将y=sin(x)、y=cos(x)分别用点和线画出在同一屏幕上。程序: x=linspace(0,2*pi,30);y=sin(x);z=cos(x)plot(x,z,:)hold onplot(x

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1