物流定量技术教案物流管理系.doc_第1页
物流定量技术教案物流管理系.doc_第2页
物流定量技术教案物流管理系.doc_第3页
物流定量技术教案物流管理系.doc_第4页
物流定量技术教案物流管理系.doc_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

课程引言本课研究物流管理的关键问题:物流管理决策。著名管理大师西蒙曾说:“管理就是决策;决策就是管理”,可见,本课在物流管理学科的重要地位。学习意义:1、应用所学数学知识,包括高数、线性代数、概率与数理统计、运筹学等,分析和解决物流管理决策问题,总结和提高对物流科学的认识能力;2、应用所学计算机知识,包括高级语言程序设计、MIS及系统开发、MATLAB等来完成物流决策问题的系统设计,提高对系统设计的认识与实践能力;3、学习和掌握物流管理决策的工程技术知识,为科学研究或进一步学习深造奠定基础。学习指导思想:围绕物流管理决策的中心问题,包括物流需求预测、库存控制、运输优化、物流网点布局等4大版块对建模和决策需要来学习相关知识和应用MATLAB。系统设计上,侧重于用户界面设计、数据文件设计、数据分析及图形化界面、线性规划、函数优化及图形分析等知识的学习。学习方式:理论讲授、上机实验课程学习内容讲授部分:第1章 物流定量分析与MATLAB第2章 MATLAB数值计算与程序设计第3章 物流需求预测第4章 运输决策第5章 库存控制第6章 选址决策实验部分:实验内容见实验指导书;课程报告见课程报告指导书。学习特点:上机多练,同时要理解定量分析方法考核:报告成绩占80%、平时成绩占20% 注:课程报告30%、实验报告50%;平时成绩包括考勤(10%)、作业(10%)。推荐参考书:1、张瑞丰,精通MATLAB 6.5,中国水利水电出版社,2004年; 2、蔡希贤,物流合理化的数量方法,中国纺织出版社,2004年;3、JERSINE(译),物料搬运与库存控制原理,中国物资出版社。第1章 物流定量分析与MATLAB物流定量技术是研究计算机技术、数学方法应用于物流管理决策过程的一门经济管理科学 本章主要学习内容: 1.1 物流定量分析的概念 1.2 管理中的模型方法 1.3 MATLAB基础 1.1 物流定量分析的概念1、管理科学与定量分析 在业务中使用定量方法,常称之为管理科学或运筹学。定量分析常常需要大量的数学计算,这些复杂的计算,单纯地靠人工是不可能完成的,管理科学未来的发展一定联系到计算机硬件和软件的进步,管理科学和计算机技术的进展将使得愈来愈多的管理决策问题可以用管理科学的方法来进行分析。 因此,本课中管理科学、定量分析或定量技术有相似的含义。2、决策 管理活动的核心决策就是作决定、选满意方案;广义的决策还包括选择前设计、构造,提出多种可行方案,事后对选定的方案进行实施、监测、评价和鉴定。现代管理决策是一个复杂的系统工程。3、决策过程发现问题 确定目标 收集资料 制定方案 评估和优选方案 贯彻实施反馈及追踪检查4、决策类型 确定型决策与不确定型决策 5、定性分析与定量分析 定量分析则是在定性分析的基础上进行量度、分析,以得出细致精确、深刻的判断。定性分析是基础,定量分析则是定性分析的深化与精确化。定性分析与定量分析两者各有所长,不可偏废。随着经济的高速发展和竞争的日趋激烈,仅仅靠定性分析已经越来越不适应现代管理的要求。6、定量分析程序选定指标 收集数据 建立模型求解或仿真 进行预测 作出决策 1.2 管理中的模型方法模型是现代经济管理的基本工具,其中定量模型则是管理中定量分析的一个基础部分,包括针对确定型决策的运筹学模型与针对不确定型决策的统计学模型。管理者必须始终记住,模型方法是他进行预测、决策、评估的工具,他要考虑的是如何用好这个工具,而不是构造这些工具。 模型:是一种用来描述“对象” 的特殊方式或者“语言”,如实物、数学语言、自然语言或图形语言等1、管理中的统计方法管理统计:描述统计和推断统计 描述统计是统计的基础,推断统计是现代统计的核心 2、管理中的运筹 运筹学:Operational Research,对作战资源“运用”的研究。后来,人们把研究运用、经营、管理这类问题的数量分析理论、模型与方法都归入Operational Research 运筹学内容:线性规划,整数规划,非线性规划与最优化方法,动态规划,多目标规划,网络分析与统筹法,排队论,决策论,存储论,对策论等1.3 MATLAB基础1、MATLAB概述在MATLAB进入市场之前,国际上的许多学科软件都是直接以Fortran或C语言等编程语言开发的,缺点是使用面窄、程序接口差,程序结构不开放,很难适应各学科共同的需求。美国Mathworks公司美国的几位数学教授开办自20世纪80年代中期推出数学软件MATLAB后,以其强大的数值什算和数据图形可视化功能在数学软件中独占鳖头。经过多年来的不断改进,MATLAB已经成为适合多学科、多种工作平台的功能强大的数学工具软件,集成了计算功能、符号运算、数据可视化以及图形用户界面设计技术和应用程序接口技术,被称为第四代计算机语言,是各国科学家开发学科软件共同的开发平台。MATLAB :取自英文matrix+laboratory,矩阵实验室附MATLAB的发展:1984年,MATLAB第1版(DOS版)、92年MATLAB4.0版、94年,MATLAB 4.2版、97年,MATLAB 5.0版、99年,MATLAB 5.3版、00年MATLAB 6.0版、01年MATLAB 6.1版、02年MATLAB 6.5版、04年MATLAB 7.0版MATLAB6.5的应用主要集中在以下几个方面:数值计算、算法开发、符号表达式运算和推导、数学建模与仿真、数据分析和可视化、科学与工程绘图、应用开发等。其可视化编程能力较强,如运用DDE和OLE,实现了MATLAB与Word的无缝连接,为专业科技工作者创造了融科学计算、图形可视、文宇处理于一体的高水准环境。通过他可以设计出功能强大、界面优美、稳定可靠的高质量软件包。迈入20世纪90年代后,MATLAB已经成为国际公认的标准计算软件,至今没有一个别的计算软件可以与MATLAB匹敌。MATLAB的主要功能:数值计算和符号计算功能以矩阵作为数据操作的基本单位;绘图功能对图形句柄进行的低层绘图操作和建立在低层绘图操作之上的高层绘图操作、编程语言具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,简单易学、 MATLAB工具箱功能性工具箱和学科性工具箱。硬件环境要点:(1) CPU Pentium或更高(2) 内存 至少128M(3) 硬盘 至少预留200MB以上的空间(4) CD-ROM 至少为20倍速以上软件环境要点:(1) Windows 98/NT/2000 或Windows XP、IE4.0以上(2) 其他软件根据需要选用,如OFFICE97以上MATLAB的安装:MATLAB 6.5的安装:运行系统安装程序setup.exe,按照安装提示依次操作。例1-1 绘制正弦曲线和余弦曲线。x=0:0.5:360*pi/180;plot(x,sin(x),x,cos(x);例1-2 求方程 3x4+7x3 +9x2-23=0的全部根。p=3,7,9,0,-23; %建立多项式系数向量x=roots(p) %求根2、MATLAB集成环境MATLAB系统的启动:(1)使用Windows“开始”菜单;(2)运行MATLAB系统启动程序matlab.exe;(3)利用快捷方式。首次启动MATLAB后,展现在屏幕上的界面为MATLAB的默认界面。启动后进入MATLAB 6.5集成环境,包括MATLAB主窗口、命令窗口(Command Window)、工作空间窗口(Workspace)、命令历史窗口(Command History)、当前目录窗口(Current Directory)。MATLAB系统的退出:(1)在MATLAB主窗口File菜单中选择Exit MATLAB命令;(2)在MATLAB命令窗口输入Exit或Quit命令;(3)单击MATLAB主窗口的“关闭”按钮。MATLAB主窗口MATLAB主窗口是MATLAB的主要工作界面,主要包括菜单栏和工具栏。菜单栏在MATLAB 6.5主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help 6个菜单项。File菜单项:File菜单项实现有关文件的操作。Edit菜单项:对选中的当前窗口进行操作,编辑功能类似WINDOW的其它应用程序。其中,Paste SPecial选项,打开导入数据向导,该向导引导用户把存放在缓冲区中的内容按特定格式存放到剪贴板变量中。View菜单项:View菜单项用于设置MATLAB集成环境的显示方式。Web菜单项:用于设置MATLAB在Web上的链接、交流等操作。Window菜单项:只包含一个子菜单Close all,用于关闭所有打开的编辑器窗口。Help菜单项:提供帮助信息,其中DEMOS选项打开演示文档。File菜单:new选项,包含4个选项:M_File、Figure、Model和GUI,单击他们可打开相应的编辑窗口。Open选项,单击他可打开一个Open对话框,用户可以在对话框中选择相应的文件,然后MATLAB将用相应的编辑器打开该文件。Close选项,该选项后面将跟随某个打开的视窗名,单击该选项将关闭该视窗。import data选项,单击该选项将打开一个import对话框,用户可以选择相应的数据文件,然后将该数据文件中的数据导入到MATLAB工作空间。Save workspace As选项,单击该选项将打开一个Save tO MAT_File对话框,用户需要为保存的工作空间命名。Set Path选项,单击该选项将会打开设置路径对话框,通过该对话框可以更改MATLAB执行命令时搜索的路径。Page Setuppreferences选项,设置页面布局、页眉、页面所用的字体。Print选项,用于打印预定义好的页画内容,也可以设置一些打印参数。Print Selection选项,当选中命令窗口内的一部分内容后,该选项将处于檄活状态,此时单击该选项,将打开打印对话框打印选中的内容。Exit MATLAB选项,单击该选项将关闭MATLAB。也可以通过快捷键CTRL+Q 来关闭。View菜单:Desktop Layout选项,包含6个选顶:默认布局、只显示命令窗口、简单布局(命令窗口和命令历史记录窗口)、窄的历史记录窗口、高的历史记录窗口、同时显示5个窗口。Undock Command Window选项,选择该菜单将使命令窗口以新的窗口形式显示,而不是作为主窗口的一个浮动窗口形式显示。几个可选的复选框菜单:Command Window选项、Command History选项、Current directory选顶、Workspace选项、Launch Pad选项、Profiler选项和 Help选项。选中后会打开相应窗口,再次选择就关闭。Current Directory Filter选项,选择相应的文件类型、所有文件或文件夹。Workspace view opitions选项,设置工柞空间视窗的显示方式。工具栏MATLAB 6.5主窗口的工具栏共提供了10个常用命令按钮。这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便,体现了window风格。2、命令窗口命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。MATLAB命令窗口中的“”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号或分号分隔。例如p=15,m=35如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。3、工作空间窗口、当前目录窗口、搜索路径工作空间是MATLAB用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,单击鼠标右键可对变量进行编辑、保存和删除。当前目录是指MATLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。将用户目录设置成当前目录也可使用cd命令。例如,将用户目录c:mydir设置为当前目录,可在命令窗口输入命令:cd c:mydir当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。基本的搜索过程是:(1)检查该命令是不是一个变量。(2)检查该命令是不是一个内部函数。(3)检查该命令是否当前目录下的M文件。(4)检查该命令是否MATLAB搜索路径中其他目录下的M文件。用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。设置搜索路径的方法有:(1) 用path命令设置搜索路径。例如,将用户目录c:mydir加到搜索路径下,可在命令窗口输入命令:path(path,c:mydir)(2)用对话框设置搜索路径 在MATLAB的File菜单中选Set Path命令或在命令窗口执行pathtool命令,将出现搜索路径设置对话框。通过Add Folder或Add with Subfolder命令按钮将指定路径添加到搜索路径列表中。在修改完搜索路径后,则需要保存搜索路径。4、命令历史记录窗口、启动平台窗口和Start按钮命令历史记录窗口:在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择Edit菜单中的 Clear Command History命令。MATLAB 6.5的启动平台窗口:即查询便捷簿窗口,用来随时向用户说明软件中包含的内容及功能,用户可以通过该窗口查看已经安装的各种工具箱。MATLAB 6.5主窗口左下角的Start按钮,单击该按钮会弹出一个菜单,选择其中的命令可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源。1.3 MATLAB帮助系统1、进入帮助窗口的方法(1)单击MATLAB主窗口工具栏中的Help按钮。(2)在命令窗口中输入helpwin、helpdesk或doc。(3)选择Help菜单中的“MATLAB Help”选项。2、MATLAB帮助命令MATLAB帮助命令包括help、lookfor以及模糊查询。help命令:在MATLAB 6.5命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,可以通过help加函数名来显示该函数的帮助说明。lookfor命令:help命令只搜索出那些关键字完全匹配的结果,lookfor命令条件比较宽松,可搜索与关键字匹配的相关主题。what命令:用子当前路径文件列表who命令:用子当前内存变量列表whos命令:显示当前内存变量详细信息模糊查询:MATLAB 6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。3、演示系统在帮助窗口中选择演示系统(Demos)选项卡,然后在其中选择相应的演示模块,或者在命令窗口输入Demos,或者选择主窗口Help菜单中的Demos子菜单,打开演示系统。4、远程帮助系统在MathWorks公司的主页()上可以找到很多有用的信息,国内的一些网站也有丰富的信息资源。实验一 MATLAB操作基础10第2章 MATLAB数值计算与分析数值计算与相关分析技术在现代科学技术、科学研究顿域中发挥着极为重要的作用,MATLAB为此握供了方便的、功能强大的计算和分析平台,将入们从以前繁琐的手工计算中彻底解脱出来。MATLAB,或称“矩阵实验室”,是以矩阵为基本运算单元进行计算处理的,所涉及的应用领域包括高数、线性代数、概率与数理统计、数值分析、数据处理等。 2.1 变量和数据操作 2.2 MATLAB矩阵及其基本运算 2.3 数据统计处理与多项式计算 2.4 方程(组)的解法 2.5 函数极值 2.6 MATLAB程序设计2.1 变量和数据操作1、变量与赋值变量命名:在MATLAB 6.5中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。在MATLAB中,变量名区分字母的大小写。赋值语句:变量=表达式 或表达式,此时将自动赋值给变量ANS其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。常数为11的矩阵例 计算表达式的值,并显示计算结果。在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注意:MATLAB提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算结果是一个与自变量同维数的矩阵;一般情况下,MATLAB内部每一个数据元素都是用双精度数有效位为十六位来表示和存储的。预定义变量:在MATLAB工作空间中,还驻留几个由系统本身定义的变量。例如,用pi表示圆周率的近似值,用I、j表示虚数单位,用NaN表示非数0/0,用inf表示无穷大。预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。再如:Realmax、realmin2、内存变量的管理内存变量的删除与修改:在工作空间窗口中,当选中某些变量后,再单击Delete按钮,就能删除这些变量;当选中某些变量后,再单击Open按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素;clear命令用于删除MATLAB工作空间中的变量,who和whos用于显示在工作空间中已经驻留的变量名清单。利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。MAT文件的生成和装入由save和load命令来完成。常用格式为:save 文件名 变量名表 -append-asciiload 文件名 变量名表 -ascii 其中,文件名可以带路径,但不需带扩展.mat,变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理。save命令中的-append选项控制将变量追加到MAT文件中。2.2 MATLAB矩阵及其基本运算1、矩阵的建立直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。 如利用M文件建立M矩阵:(1)启动MATLAB文本编辑器,并输入待建矩阵:(2)存盘(设文件名为m.m);(3)在MATLAB命令窗口中输入m,即运行该M文件,就会自动建立一个名为M的矩阵,供以后使用。利用冒号表达式建立一个行向量:e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值。用linspace函数产生行向量:linspace(a,b,n) 其中a和b是生成向量的第一个和最后一个元素,n是元素总数。linspace(a,b,n)与a:(b-a)/(n-1):b等价。空矩阵:在MATLAB中,定义为空矩阵。给变量X赋空矩阵的语句为X=。注意空矩阵存在于工作空间中,只是维数为0。产生一些特殊矩阵的函数:zeros(m,n)产生零矩阵、ones产生全1矩阵、eye产生单位矩阵、rand产生01间均匀分布的随机矩阵、randn产生均值为0,方差为1的标准正态分布随机矩阵。注意:可以用size(A)建立一个与矩阵A同样大小的特殊矩阵,如zeros(size(A))例 建立在区间20,50内均匀分布的5阶随机矩阵机矩阵。命令如下: x=20+(50-20)*rand(5)魔方矩阵:魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。例 将101125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。M=100+magic(5)帕斯卡矩阵:二次项(x+y)n展开后的系数矩阵称为帕斯卡(Pascal)矩阵。函数pascal(n)生成一个n阶帕斯卡矩阵。例 求(x+y)5的展开式。在MATLAB命令窗口,输入命令:pascal(6)矩阵次对角线上的元素1,5,10,10,5,1即为展开式的系数。2、矩阵的分解矩阵元素引用:通过矩阵元素的序号或下标来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如A=1,2,3;4,5,6A(3)ans = 2 注意:习惯上使用下标A(1,2)来引用矩阵的拆分:利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。 A(i:i+m,:)表示取A矩阵第ii+m行的全部元素; A(:,k:k+m)表示取A矩阵第kk+m列的全部元素; A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。 3、 MATLAB运算(1) 算术运算MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。运算规则服从线性代数矩阵运算规则。如:假定有两个矩阵A和B,若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵维数不匹配;假定有两个矩阵A和B,若A为mn矩阵,B为np矩阵,则C=A*B为mp矩阵。注意:运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例点运算: 在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。(2)关系运算MATLAB提供了6种关系运算符:(小于)、(大于)、=(大于或等于)、=(等于)、=(不等于)。关系运算符的运算法则为: A 当两个比较量是标量11的矩阵时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。 B 当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。 C 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。(3)逻辑运算MATLAB有3种逻辑运算符:&(与)、|(或)和(非)。 逻辑运算的运算法则为: A 在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。 如 设参与逻辑运算的是两个标量a和b,那么:a&b a,b全为非零时,运算结果为1,否则为0a|b a,b中只要有一个非零,运算结果为1。a 当a是零时,运算结果为1;当a非零时,运算结果为0。 B 若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成。 C 若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1或0组成。D 在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。例 建立矩阵A,然后找出大于4的元素的位置。建立矩阵A:A=4,-65,-54,0,6;56,0,67,-45,0找出大于4的元素的位置:find(A4)(4)矩阵的转置运算与矩阵运算函数矩阵的转置:转置运算符是单撇号()。矩阵的左右翻转:对矩阵A实施左右翻转的函数是Fliplr(A)矩阵的上下翻转:对矩阵A实施上下翻转的函数是flipud(A)。求方阵A的逆矩阵:调用函数inv(A)。4、字符串在MATLAB中,字符串是用单撇号括起来的字符序列。MATLAB将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。也可以建立多行字符串矩阵。字符串是以ASCII码形式存储的。abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。相反,char函数可以把ASCII码矩阵转换为字符串矩阵。例 建立一个字符串向量,然后对该向量做如下处理:(1) 取第15个字符组成的子字符串。(2) 将字符串倒过来重新排列。(3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。(4) 统计字符串中小写字母的个数。解:ch=ABc123d4e56Fg9;subch=ch(1:5) %取子字符串revch=ch(end:-1:1) %将字符串倒排k=find(ch=a&cha=1 0 2 5;4 1 8 7;3 2 6 3 a(:,:,1)=3 5 4 1;2 6 2 1;4 2 3 0 a(:,:,2)=6 1 4 3;3 9 0 2;1 2 3 4 a(2,1,3)=5 a(:,:,3)=5? 使用cat命令建立多维数组: 命令的一般格式:Z=cat(dim,A,B,C) dim=1时,将数组A,B,C上下垂直排列成新数组; dim=2时,将数组A,B,C左右水平并排成新数组; dim=3时,将数组A,B叠起来得到一个三维数组。 如:a=1 2;3 4; b=1 0;0 1; Z1=cat(1,a,b),Z2=cat(2,a,b) Z3=cat(3,a,b)(2)异质素组异质素组:即前述的单元矩阵。可直接使用大括号设定元素内容或取用其元素: 如: b=james bnd,1 2;3 4;pi,magic(5)查看其实际内容:cellplot(a),celldisp(a)(3)结构数组结构数组:即前述的结构矩阵。结构数组中包含数个字段,而每个字段可包含各个不同类型的数据。建立结构数组:使用建立结构矩阵的方法,即直接给其成员赋值或使用STRUCT命令。 struct_array=struct(field1,value1,) 如:建立一个学生资料Student的结构数组,包括:760124张三800123李红EnglishscoreidnameStudent=struct(name,李红,张三,id,0123,0124, Englishscore,80,76)Student(1)Student(1).Englishscore也可以一条一条地建立Student结构数组:Clear StudentStudent(1)=struct(name,李红,id,0123,Englishscore,80)Student(2)= 结构数组数据的取用:结构数组名(序号).字段名结构数组数据的修改:结构数组名(序号).字段名=表达式结构数组字段数值的合并:结构矩阵名.字段名 功能说明:返回字段值水平排列的结果 如: all_name=S all_scores= Student.Englishscore 另一种并排字段的方法是使用cat命令:命令格式:A=cat(dim,stucture_field) Dim=1时,返回水平排列的结果(同上); Dim=2时,返回垂直排列的结果。 如: a=cat(2,Student.Englishscore) b=mean(a)注意:以上运算是结构数组的向量运算,速度非常快。若要求的运算无法用向量运算来完成,就只好使用速度较慢的for循环了。(比如增加课程字段,求一个学生各科的平均成绩、打印学生姓名等)结构数组字段名的返回: fieldnames(结构数组名) 如: c=fieldnames(Student)结构数组字段的增加与删除如结构矩阵所述。2.3 数据统计处理与多项式计算1、数据统计处理(1)求最大值和最小值函数A 求向量的最大值和最小值y=max(X):返回向量X的最大值存入y。y,I=max(X):返回向量X的最大值存入y,最大值的序号存入I。求向量X的最小值的函数是min(X),用法和max(X)完全相同。例 求向量x的最大值。命令如下:x=-43,72,9,16,23,47;y=max(x) %求向量x中的最大值y,l=max(x) %求向量x中的最大值及其该元素的位置B 求矩阵的最大值和最小值求矩阵A的最大值的函数有3种调用格式,分别是:max(A):返回一个行向量,向量的第i个元素是矩阵A的第I列上的最大值。Y,U=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。max(A,dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。 求最小值的函数是min,其用法和max完全相同。C 对两个同型的向量或矩阵进行比较,调用格式为:U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。U=max(A,n):n是一个标量,结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。min函数的用法和max完全相同。(2)求和与求积函数设X是一个向量,A是一个矩阵,函数的调用格式为:sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘积。sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。prod(A):返回一个行向量,其第i个元素是A的第I列的元素乘积。sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。(3)求平均值和中值函数设X是一个向量,A是一个矩阵,函数的调用格式mean(X):返回向量X的算术平均值。median(X):返回向量X的中值。mean(A):返回一个行向量,其第i个元素是A的第I列的算术平均值。median(A):返回一个行向量,其第i个元素是A的第i列的中值。mean(A,dim):当dim为1时,该函数等同于mean(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的算术平均值。median(A,dim):当dim为1时,该函数等同于median(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的中值。(4)累加和与累乘积设X是一个向量,A是一个矩阵,函数的调用格式为:cumsum(X):返回向量X累加和向量。cumprod(X):返回向量X累乘积向量。cumsum(A):返回一个矩阵,其第i列是A的第i列的累加和向量。cumprod(A):返回一个矩阵,其第i列是A的第i列的累乘积向量。cumsum(A,dim):当dim为1时,该函数等同于cumsum(A);当dim为2时,返回一个矩阵,其第i行是A的第i行的累加和向量。cumprod(A,dim):当dim为1时,该函数等同于cumprod(A);当dim为2时,返回一个矩阵,其第i行是A的第i行的累乘积向量。(5)标准方差与相关系数求标准方差:对于向量X,std(X)返回一个标准方差;对于矩阵A,std(A)返回一个行向量,它的各个元素便是矩阵A各列或各行的标准方差。std函数的一般调用格式为:Y=std(A,flag,dim)其中dim取1或2。当dim=1时,求各列元素的标准方差;当dim=2时,则求各行元素的标准方差。flag取0或1,当flag=0时,按1所列公式计算标准方差,当flag=1时,按2所列公式计算标准方差。缺省flag=0,dim=1。求相关系数:corrcoef(X)返回从矩阵X形成的一个相关系数矩阵。此相关系数矩阵的大小与矩阵X一样。它把矩阵X的每列作为一个变量,然后求它们的相关系数。曲线拟合;在MATLAB中,用polyfit函数来求得最小二乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给出的点上的函数近似值。polyfit函数的调用格式为: P,S=polyfit(X,Y,m)函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。其中X,Y是两个等长的向量,P是一个长度为m+1的向量,P的元素为多项式系数。polyval函数的功能是按多项式的系数计算x点多项式的值。(6)排序sort(X):返回一个对X中的元素按升序排列的新向量。Y,I=sort(A,dim) 其中dim指明对A的列还是行进行排序。若dim=1,则按列排;若dim=2,则按行排。Y是排序后的矩阵,而I记录Y中的元素在A中位置。2、多项式计算多项式的表示:多项式是通过其系数的行向量表示的。对于多项式P(x)a0xna1xn-1 an-1xan,可以通过以下的行向量表示:p= a0 a1 an-1 an多项式P1和P2的乘积:调用函数conv(P1,P2)。例 求多项式x4+8x3-10与多项式2x2-x+3的乘积。多项式P1和P2的除法:调用函数Q,r=deconv(P1,P2) 其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。这里,Q和r仍是多项式系数向量。对多项式求导数:调用函数p=polyder(P)代数多项式的求值:Y=polyval(P,x)若x为一数值,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。MATLAB提供的roots函数用于求多项式的全部根,其调用格式为:x=roots(P) 即解单变量方程其中P为多项式的系数向量,求得的根赋给向量x,即x(1),x(2),x(n)分别代表多项式的n个根。例 求多项式x4+8x3-10的根。命令如下:A=1,8,0,0,-10;x=roots(A)若已知多项式的全部根,则可以用poly函数建立起该多项式,其调用格式为:P=poly(x)若x为具有n个元素的向量,则poly(x)建立以x为其根的多项式,且将该多项式的系数赋给向量P。2.4 方程(组)的解法1、线性方程组求解利用左除运算符的直接解法:对于线性方程组Ax=b,可以利用左除运算符“”求解,即 x=Ab 或 例 用直接解法求解下列线性方程组。命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;x=Ab利用矩阵的分解求解线性方程组:MATLAB提供的lu函数用于对矩阵进行LU分解。L,U=lu(X):产生一个上三角阵U和一个变换形式的下三角阵L(行交换),使之满足X=LU。注意,这里的矩阵X必须是方阵。实现LU分解后,线性方程组Ax=b的解x=U(Lb),这样可以大大提高运算速度。例 用LU分解求解上例中的线性方程组。命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;L,U=lu(A);x=U(Lb)2、非线性方程求解单变量非线性方程求解:用fzero函数求单变量非线性方程的根。z=fzero(fname,x0,tol,trace)其中fname是待求根的函数文件名,x0为搜索的起点。一个函数可能有多个根,但fzero函数只给出离x0最近的那个根。tol控制结果的相对精度,缺省时取tol=eps,trace指定迭代信息是否在运算中显示,为1时显示,为0时不显示,缺省时取trace=0。例 求f(x)=x-10x+2=0在x0=0.5附近的根。步骤如下:(1)建立函数文件funx.m。 function fx=funx(x) fx=x-10.x+2; (2)调用fzero函数求根:z=fzero(funx,0.5) z =0.3758注意:funx还可是字符串函数表达式或内联函数。2.5 函数极值MATLAB求解函数极值的函数fmin和fmins,分别用于单变量函数和多变量函数的最小值。 x=fmin(fname,x1,x2) x=fmins(fname,x

温馨提示

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

评论

0/150

提交评论