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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数学建模暑期培训课程.docx

1、数学建模暑期培训课程烟台大学数学建模暑期培训陈传军 2010.7.12第一部分 MATLAB 入门1. MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程、科学计算和数学学科中许多问题.2. MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化。3. 矩阵是MATLAB的核心4. MATLAB的进入与运行方式(两种)一、变量与函数1、变量MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后

2、可以是任意字母、数字或下划线,变量名中不允许使用标点符号. 特殊变量表2、数学运算符号及标点符号(1)MATLAB的每条命令后,若为逗号或无标点符号, 则显示命令的结果;若命令后为分号,则禁止显示结果. (2)“%” 后面所有文字为注释. (3) “.”表示续行.3、数学函数二、数组与矩阵1. 数组1、创建简单的数组x=a b c d e f 创建包含指定元素的行向量x=first:last 创建从first开始,加1计数,到last结束的行向量x=first:increment:last 创建从first开始,加increment计数,last结束的行向量x=linspace(first,l

3、ast,n) 创建从first开始,到last结束,有n个元素的行向量x=logspace(first,last,n) 创建从first开始,到last结束,有n个元素的对数分隔行向量. 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). 3、数组的方向前面例子中的数组都是一行数

4、列,是行方向分布的. 称之为行向量. 数组也可以是列向量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示. 产生列向量有两种方法: 直接产生 例 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=a1*c,a2*c,an*c a./c= a1/c,a2/c,an

5、/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/a2,bn/an a.b=a1b1,a2b2,anbn2. 矩阵1、矩阵的建立逗号或空格用于分隔某一行的元素,分号用

6、于区分不同的行. 除了分号,在输入矩阵时,按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特殊矩阵的建立:a= 产生一个空矩阵,当对一项操作无结 果时,返回空矩阵,空矩阵的大小为零. b=zeros(m,n) 产生一个m行、n列的零矩阵c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵d=eye(m,n) 产生一个m行、n列的单位矩阵2、矩阵中元素的操作(1)矩阵A的第r行:A(r,:)(2)矩阵A的第r列:A(:,r)(3)依次提取矩阵A的每一

7、列,将A拉伸为一个列向量:A(:)(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;B3、矩阵的运算(1)标量-矩阵运算 同标量-数组运算。(2)矩阵-矩阵运算1 元素对元素的运算,同数组-数组运算。 2矩阵运算:矩阵加法:A+B矩阵乘

8、法:A*B方阵的行列式:det(A)方阵的逆:inv(A)方阵的特征值与特征向量:V,D=eigA关系与逻辑运算1、关系操作符2、逻辑运算符三、 M文件与程序设计初步1. M文件的特点与形式要说明M文件的特点,就得从MATLAB本身说起。MATLAB实质上是一种解释性语言,就MATLAB(matlab.exe)本身来说,它并不能做任何事情,它就像DOS操作系统的一样,本身没有实现功能而只对用户发出的指令起到解释执行的作用。像前面介绍过的命令行式的操作一样,命令先送到MATLAB系统内解释,再运行得到结果。这样就给用户提供了最大的方便。用户可以把所要实现的指令罗列编制成文件,再统一送入MATLA

9、B系统中解释运行,这就是M文件。只不过此文件必须以m为扩展名,MATLAB系统才能识别。也就是说,M文件其实是一个像命令集一样的ASCII(纯文本)码文件。因此M文件语法简单,调试容易,人机交互性强。用户可以便用任何字处理软件对其进行编写和修改。正是M文件的这个特点造就了MATLAB强大的可开发性和可扩展性,Mathworks公司推出的一系列工具箱就是明证。而正是有了这些工具箱,MATLAB才能被广泛地应用于信号处理、神经网络、鲁棒控制、系统识别、控制系统、实时工作系统、图形处理、光谱分析、模型预测、模糊逻辑、数字信号处理、定点设置、金融管理、小波分析、地图工具、交流通信、模型处理、LMI控制

10、、概率统计、样条处理、工程规划、非线性控制设计、QFT控制设计、NAG等各个领域。对个人用户来说,还可以利用M文件来建造和扩充属于自己的“库”。因此,一个不了解M文件,没有掌握 M文件的MATLAB使用者不能称其为一个真正的 MATLAB用户。由于商用的MATLAB软件用C/C+语言编写而成。因此,M文件的语法与C语言十分相似。对广大的C语言爱好者来说,M文件的编写是相当容易的。M文件有两种形式,命令式(Script)和函数式(Function).两者相同之处在于它们都是以m作为扩展名的文本文件,不进入命令窗口,而是由文本编辑器来创建的外部文本文件。命令式M文件就是命令行的简单叠加,MATLA

11、B会自动按顺序执行文件中的命令,与批处理文件类似,在MATLAB命令窗口直接输入此文件的文件名,MATLAB可逐一执行在此文件内的所有命令,和在命令窗口中逐行输入这些命令一样。这样就解决了用户在命令窗中运行许多命令的麻烦;还可以避免用户做许多重复性的工作。函数式M文件主要用以解决参数传递和函数调用的问题,它的第一句以function语句为引导。另外,值得注意的是,命令式M文件在运行过程中可以调用MATLAB工作域内所有的数据,而且,所产生的所有变量均为全局变量。也就是说,这些变量一旦生成,就一直保存在工作空间中,直到执行clear 或quit时为止。在函数式M文件中的变量除特别声明外,均为局部

12、变量。因为 MATLAB是一种解释性语言,所以即使在某个或某些函数中存在语法错误,但如果没执行到该语句时可能就不会发现该错误,这在一个成功的程序设计中是不能容许的。要查出某目录中所有的M函数语法错误,首先应该用 cd 命令 进入该目录,然后运行 pcode * 命令进行伪代码转换。因为该命令会将 MATLAB 函数转换成伪代码,而在转换过程中该程序将自动翻译每一条语句,所以一旦发现有语法错误,将会停止翻译,给出错误信息。改正了该语法错误后,再重新执行 pcode 命令,直到没有错误为止。至少这样会保证目录下所有的程序不含有语法错误。一个M文件首次被调用时,MATLAB将首先对该M文件进行语法分

13、析。并把生成的相应内部伪代码(P码)存放在内存中。此后当再次调用该M文件时,将直接运行该文件在内存中的P码文件而不会对原码文件重复进行语法分析。P码文件和原码文件具有相同的文件名,但其扩展名为“.p”,并且其运行速度要高于原码文件,但对于规模不大的文件,用户一般察觉不到这种速度上的优势。P码文件不是只有当M文件被调用时才生成,也可被预先生成。2. 命令式M文件由于命令式M文件的运行相当于在命令窗口中逐行输入并运行命令,因此,在编制此类文件时,只需把所要执行的命令按行编辑到指定的文件中,且变量不需要预先定义,也不存在文件名对应问题。例:假设当前目录下有一个命令M文件:%solver.m%used

14、 to solve A*x=b%where A=-1.5 1 2;3 -1 1;-1 3 5,b=2.5;5;8.A=-1.5 1 2;3 -1 1;-1 3 5;b=2.5;5;8;x=Ab在命令窗口中执行solver命令,即可得到方程组的解。+在命令窗口中键入type solver.m即可在命令窗口中看到该文件。在命令窗口中运行help solver,可以得到该文件的注释部分。结合上例,有以下说明:1. 以%引导的行是注释行,不执行,可供help命令查询。2. 不需要end语句作为M文件的结束标志。3. 在运行次文件之前,需要把它所在目录加到MATLAB的搜索路径上去,或将文件所在目录设为

15、当前目录。3. 函数式M文件为了实现计算中的参数传递,需要用到函数式M文件. 函数式M文件的标志是第一行的function关键词。函数式文件可以有返回值,也可以只执行操作而无返回值,大多数函数式文件有返回值。函数式文件在MATLAB中应用十分广泛,MATLAB所提供的绝大多数功能函数都是由函数式文件实现的,这足以说明函数式文件的重要性。函数式文件执行之后,只保留最后结果,不保留中间过程,所定义的变量也仅在函数内部起作用,并随调用的结束而被清除。MATLAB 的 M 函数由 function 语句引导,其基本格式如下:function 返回变量列表 = 函数名 (输入变量列表)注释说明语句段,

16、由 % 引导输入、返回变量格式的检测函数体语句 MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件. 函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始,格式为: function 因变量名=函数名(自变量名)函数值的获得必须通过具体的运算实现,并赋给因变量. M文件建立方法:1. 在Matlab中,点:File-New-M-file 2. 在编辑窗口中输入程序内容 3. 点:File-Save,存盘,M文件名必须与函数名一致。Matlab的应用程序也以M文件保存。例:定义函数 f(x1,x2)

17、=100(x2-x12)2+(1-x1)21.建立M文件:fun.mfunction f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)22. 可以直接使用函数fun.m例如:计算 f(1,2), 只需在Matlab命令窗口键入命令:x=1 2fun(x)4. 控制流MATLAB提供三种决策或控制流结构: for循环、while循环、if-else-end结构. 这些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中,而不是直接加在MATLAB提示符下. 1、for循环:允许一组命令以固定的和预定的次数重复 for x=array commands end在

18、for和end语句之间的命令串commands按数组(array)中的每一列执行一次. 在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)例 对n=1,2,10,求的值例子:如果求1+2+.+100 的值,可以作下列的循环: mysum=0; for i=1:1:100mysum=mysum+i; end; mysum2、While循环 与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值.while expression commands end 只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的

19、命令串commands. 例mysum = 0; i=1; while (iX=0 0.5 0.75 0.95 0.8 0.35; plot(X) %图1X=1+2i,2+4i,3+2i,5+i,6+4i;plot(x) %图2图1 图2(ii). 当plot函数有两个输入变量时:plot(X,Y)当X和Y为向量时,X和Y的维数必须相同,而且同时为行向量或同时为列向量此时以第一个向量的分量为横坐标,第二个向量的分量为纵坐标绘制图形,这是实际应用过程中最为常用的例如:x=0:0.01*pi:pi; y=sin(x).*cos(x); %注意:此处的.*表示两个向量对应元素的乘积plot(x,y)

20、 %图3图3 图4当X,Y为m*n矩阵时,将在同一幅图中绘出n条不同颜色的连线绘制规则为: 以X矩阵的第j列分量作为横坐标,矩阵Y的第j列分量作为纵坐标,绘得第j条连线若在同一幅图中出现多条曲线,MATLAB会自动地把不同曲线绘制成不同的颜色,以进行简单的区别如:x=0:0.01*pi:pi; y=sin(x),cos(x);plot(x,x,y)(iii). 当plot函数有三个输入变量时:plot(X,Y, Linespec)想绘制不同的线型、颜色、标识等的图形时,可以调用此形式,第3个输入变量为图形显示属性的设置选项:线型、颜色、标识线型:-实线; : 点线;-. 虚点线;-虚线;颜色:

21、y 黄;m紫;c青;r 红;g 绿;b 蓝;w 白;k 黑;标识:. 点;o圆点;x 叉号;+ 加号;* 星号;s方形;d菱形;v下三角; 上三角; 右三角;p 五角星;h 六角星应用上述符号的不同组合可以为图形设置不同的线型、颜色、标识在调用时,选项应置于单引号内,当多于一个选项时,各选项直接相连,中间不需要任何的分隔符如:x=1:0.1*pi:2*pi; y=sin(x); z=cos(x); plot(x,y,-k,x,z,-.kd) %图4 (2). fplot命令 前面介绍的plot命令是根据外部输入数据或通过函数数值计算得到的数据进行作图而在实际应用中,我们可能并不知道某一函数随自

22、变量变化的趋势,此时若采用plot命令来绘图,则有可能会因为自变量的取值间隔不合理而使曲线图形不能反映出自变量在某些区域内函数值的变化情况当然我们可以将自变量间隔取得足够小以体现函数值随自变量变化的曲线,但这样会使数据量变大fplot命令可以很好地解决这个问题该命令通过内部的自适应算法来动态决定自变量的取值间隔,当函数值变化缓慢时,间隔取大一点;变化剧烈时,间隔取小一点fplot命令的调用方式:fplot(fun, xmin xmax ymin ymax) 在xmin xmax内画出字符串fun表示的函数的图形,ymin ymax给出了y的限制例如:fplot(sin(x)./x,-20 20

23、 -0.3 1.3) %图5图5 图62、图形处理的基本技术除了提供强大的绘图功能外,MATLAB语言还有极为强大的图形处理能力下面介绍一些图形处理技术,包括图形控制、图形标注、图形保持以及子图的绘制等(1). 图形控制MATLAB语言中较常用的图形控制函数有坐标轴控制函数axis、坐标轴缩放函数zoom和坐标网格函数grid等(i). axis函数控制坐标轴的特征在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有:axis(xmin xmax ymin ymax) 中分别给出了x轴和y轴的最小、最大值;axis equal 或 a

24、xis(equal) x轴和y轴单位长度相同;axis square 或 axis(square) 图框呈方形;axis off 或 axis(off) 清除坐标刻度例如:x=0:0.025:pi/2; plot(x,tan(x),-ko) %使用axis命令设定坐标轴之前的图形 图6axis(0 pi/2 0 5) %使用axis命令设定坐标轴之后的图形 图7图7 图8 (ii). zoom函数控制坐标轴的缩放:zoom函数可以实现对二维图形的缩放,该函数在处理局部较为密集的图形中有很大作用常用的调用格式有:zoom 在zoom on 和zoom off之间切换;zoom on 允许对图形进行缩放;zoom off 禁止对图形进行缩放;zoom xon 允许x 轴缩放;zoom yon 允许y轴缩放;zoom out 恢复进行的一切缩放当zoom处于on 状态时,可以通过鼠标进行图形缩放,单击鼠标左键将光标处的图形放大一倍;而单击鼠标右键将光标处的图形缩小一倍;双击鼠标左键则将会恢复缩放前的状态,即取消一切缩放操作应当注意,对图形的缩放不会影响图形的原始尺寸,也不会影响图形的横纵坐标的比例,即不会改变图形的基本结构(iii). grid函数控制平面图形的坐标网格:MATLAB提供了平面网图

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

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