物流定量技术实验报告.docx
- 文档编号:18917100
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:27
- 大小:121.34KB
物流定量技术实验报告.docx
《物流定量技术实验报告.docx》由会员分享,可在线阅读,更多相关《物流定量技术实验报告.docx(27页珍藏版)》请在冰豆网上搜索。
物流定量技术实验报告
实验一Matlab操作基础
实验二Matlab数值计算与分析
实验三Matlab程序设计
实验四Matlab绘图
实验六线性回归分析
实验一Matlab操作基础
一、实验目的
通过实验熟悉Matlab软件平台,包括:
(一)熟悉Matlab软件的用户环境;
(二)学会Matlab用户环境的一般操作命令。
二、主要操作及命令
Matlab启动与退出、主窗口及命令窗口的使用、Matlab帮助系统的用法。
三、实验任务
(一)Matlab启动与退出
1、启动Matlab
利用快捷方式或运行Matlab.exe启动Matlab,观察Matlab的界面组成,包括主窗口、命令窗口、工作空间窗口、当前目录窗口、命令历史窗口和Start按钮。
2、退出Matlab
在主窗口File菜单中选择ExitMatlab命令;在Matlab命令窗口输入Exit或Quit命令;单击Matlab主窗口的“关闭”按钮。
(二)界面操作
1、主窗口的用法
在Matlab6.5主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help6个菜单项。
File菜单项项实现有关文件的操作,Edit菜单项对选中的当前窗口进行操作,View菜单项用于设置Matlab集成环境的显示方式,Web菜单项用于设置Matlab在Web上的链接、交流等操作,Window菜单项用于关闭所有打开的编辑器窗口,Help菜单项提供帮助信息,其中DEMOS选项打开演示文档。
File菜单:
new选项,包含4个选项M_File、Figure、Model和GUI,单击他们可打开相应的编辑窗口;Open选项,单击他可打开一个Open对话框,用户可以在对话框中选择相应的文件,然后Matlab将用相应的编辑器打开该文件;Close选项,该选项后面将跟随某个打开的视窗名,单击该选项将关闭该视窗;importdata选项,单击该选项将打开一个import对话框,用户可以选择相应的数据文件,然后将该数据文件中的数据导入到Matlab工作空间;SaveworkspaceAs选项,单击该选项将打开一个SavetoMAT_File对话框,用户需要为保存的工作空间命名;SetPath选项,单击该选项将会打开设置路径对话框,通过该对话框可以更改Matlab执行命令时搜索的路径;PageSetup[preferences]选项,设置页面布局、页眉、页面所用的字体;Print选项,用于打印预定义好的页画内容,也可以设置一些打印参数;PrintSelection选项,当选中命令窗口内的一部分内容后,该选项将处于檄活状态,此时单击该选项,将打开打印对话框打印选中的内容;ExitMatlab选项,单击该选项将关闭Matlab。
也可以通过快捷键CTRL+Q来关闭。
View菜单:
DesktopLayout选项,包含6个选顶,即默认布局、只显示命令窗口、简单布局、窄的历史记录窗口、高的历史记录窗口、同时显示5个窗口;UndockCommandWindow选项,选择该菜单将使命令窗口以新的窗口形式显示,而不是作为主窗口的一个浮动窗口形式显示;几个可选的复选框菜单,包括CommandWindow选项、CommandHistory选项、Currentdirectory选顶、Workspace选项、LaunchPad选项、Profiler选项和Help选项,选中后会打开相应窗口,再次选择就关闭。
工具栏:
Matlab6.5主窗口的工具栏共提供了10个常用命令按钮。
这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便,体现了window风格。
2、命令窗口的使用
命令窗口是Matlab的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。
Matlab命令窗口中的“>>”为命令提示符,表示Matlab正在处于准备状态。
在命令提示符后键入命令并按下回车键后,Matlab就会解释执行所输入的命令,并在命令后面给出计算结果。
一般来说,一个命令行输入一条命令,命令行以回车结束。
但一个命令行也可以输入若干条命令,各命令之间以逗号分隔。
例如:
>>p=15,m=35
如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。
3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。
在Matlab里,有很多的控制键和方向键可用于命令行的编辑。
请作如下练习:
键入以下命令绘制正弦曲线和余弦曲线:
x=[0:
0.5:
360]*pi/180;plot(x,sin(x),x,cos(x));
键入以下命令求方程3x4+7x3+9x2-23=0的全部根:
p=[3,7,9,0,-23];x=roots(p)
3、工作空间窗口、当前目录窗口、搜索路径
工作空间是Matlab用于存储各种变量和结果的内存空间。
在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,单击鼠标右键可对变量进行编辑、保存和删除。
当前目录是指Matlab运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。
在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。
将用户目录设置成当前目录也可使用cd命令。
例如,将用户目录c:
\mydir设置为当前目录,可在命令窗口输入命令:
cdc:
\mydir
当用户在Matlab命令窗口输入一条命令后,Matlab按照一定次序寻找相关的文件。
基本的搜索过程是:
(1)检查该命令是不是一个变量。
(2)检查该命令是不是一个内部函数。
(3)检查该命令是否当前目录下的M文件。
(4)检查该命令是否Matlab搜索路径中其他目录下的M文件。
用户可以将自己的工作目录列入Matlab搜索路径,从而将用户目录纳入Matlab系统统一管理。
设置搜索路径的方法有:
(1)用path命令设置搜索路径。
例如,将用户目录c:
\mydir加到搜索路径下,可在命令窗口输入命令:
path(path,’c:
\mydir’)
(2)用对话框设置搜索路径,在Matlab的File菜单中选SetPath命令或在命令窗口执行pathtool命令,将出现搜索路径设置对话框。
通过AddFolder或AddwithSubfolder命令按钮将指定路径添加到搜索路径列表中。
在修改完搜索路径后,则需要保存搜索路径。
4、命令历史记录窗口、启动平台窗口和Start按钮
命令历史记录窗口:
在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。
而且,通过双击命令可进行历史命令的再运行。
如果要清除这些历史记录,可以选择Edit菜单中的ClearCommandHistory命令。
Matlab6.5的启动平台窗口,即查询便捷簿窗口,用来随时向用户说明软件中包含的内容及功能,用户可以通过该窗口查看已经安装的各种工具箱。
Matlab6.5主窗口左下角的Start按钮,单击该按钮会弹出一个菜单,选择其中的命令可以执行Matlab产品的各种工具,并且可以查阅Matlab包含的各种资源。
5、Matlab帮助系统
进入帮助窗口的方法:
(1)单击Matlab主窗口工具栏中的Help按钮。
(2)在命令窗口中输入helpwin、helpdesk或doc。
(3)选择Help菜单中的“MatlabHelp”选项。
MATLAB帮助命令包括help、lookfor以及模糊查询。
help命令,在MATLAB6.5命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称,同样,可以通过help加函数名来显示该函数的帮助说明;lookfor命令,help命令只搜索出那些关键字完全匹配的结果,lookfor命令条件比较宽松;what命令,用于当前路径文件列表;who命令,用子当前内存变量列表;whos命令,显示当前内存变量详细信息;模糊查询:
MATLAB6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。
演示系统:
在帮助窗口中选择演示系统(Demos)选项卡,然后在其中选择相应的演示模块,或者在命令窗口输入Demos,或者选择主窗口Help菜单中的Demos子菜单,打开演示系统。
在演示系统中,我们可以获得有关Matlab的各种介绍。
请选择子文件夹,如Desktopoverview,runthisdemo,学习主窗口的有关知识。
远程帮助系统:
通过MathWorks公司的主页(),可以找到很多有用的信息。
四、实验心得体会
体会一:
学习MATLAB软件的相关操作,这样可以更好的运用到以后的实验中,简化学习中的复杂问题,直接得到答案。
运用MATLAB软件可以很好的简化一些中间环节,直接运用到实际中。
很大的程度上体现了计算机的简单的运用,解决实际生活中的问题。
体会二:
命令窗口输入命令,得到输入命令产生的结果。
如果在命令窗口输入的错误命令,那按下回车键后,就会有红色的提示语产生。
并且有红色的指线指示输入的命令中存在错误的位置,这样提示用户修改错误。
这样的情况下,很大程度上减少了用户的修改操作,很大程度上方便了用户,这样的设计更人性化。
实验二MATLAB数值计算与分析
一、实验目的
㈠熟悉MATLAB基本命令与操作;
㈡熟悉MATLAB的矩阵运算;
㈢学会MATLAB的多项式运算,数据统计处理;
㈣学会用MATLAB求解线性方程组。
二、主要操作及命令
㈠打开软件MATLAB操作平台
㈡利用帮助了解inline,size,max,sum,numel,length,prod,mean,std,corrcoef,sort,conv,fmin的功能和用法。
㈢利用MATLAB命令窗口,输入实验项所需的命令;
㈣观察和理解命令执行的结果,修改出现错误的命令,直到窗口得到正确的实验结果。
㈤记录主要的实验项和结果,并记下实验心得。
三、实验任务
㈠变量和数据操作
1、数的输入及运算
如:
a=5回车以后显示的值是a=5,当直接输入数值后,显示的数值就是ans=5。
输入数据是复数时,如果输入b=2-5i,显示的结果是b=2.0000-5.0000i,在窗口中输入数学运算式,显示的结果是运算后的结果。
例如输入:
5*9输出的结果是:
ans=45,输入函数代数式:
log(9),得到的结果是ans=2.1972。
2、数组输入
例如,数组的输入:
a=[1,3,5,7,9,11]和a=1:
2:
11得到的最后的值是一样的。
a=1357911,相比之下,要得到一样的结果通过a=1:
2:
11这种方式的输入,更快捷有效。
3、变量的存储和调用
变量的存储通过命令:
savedataab存储变量ab到data文件中,loaddata是将data文件中的变量加载到工作空间,whos是显示工作空间的所有变量的相关信息。
㈡Matlab矩阵及基本运算
1、矩阵的输入
通过直接的赋值方式进行,例如:
a=[2,3,5;1,5,6;8,6,9]得到的矩阵值在窗口以完整显示,再输入的a=(2,3)得到的数值是矩阵的第2列第3行的数值,输入a(7)得到的结果是以第一列开始计数到第7位的数值。
2、矩阵大小测试和定位
先输入矩阵值后,运用合适的函数表达式计算矩阵的相应的值。
例如矩阵:
a=[4,5,6;7,8,9;9,10,11;12,16,18;]得到标准的矩阵表达式,numel(a)=12求的值为整个矩阵的元素个数,[n,m]=size(a)的值为:
n=5,m=3表示矩阵由4行3列构成,[j,k]=find(a>10)表示从第一列开始查询满足不小于10的元素的位置;n=length(a);表示行数和列数的最大的值。
3、矩阵的块操作
在矩阵的整体中取出部分元素矩阵,a(2,:
),表示在矩阵中取出第2行的整个元素组;a([1,4],:
),表示在矩阵中取出第1行和第4行两行整体元素;a(2:
4,1:
2),表示取矩阵中第2行到4行和第1列到2列同时满足的元素。
a([1,3],:
)=a([3,1],:
)表示在矩阵中将第1行和第3行将换位置得到的新矩阵;a(:
[2,3])=a(:
[3,2])使矩阵的2,3列互换。
a(2,:
)=4是将矩阵的第2行的值全部用4代替;a(2,:
)=[]是表示删除a矩阵中的第2行;a(4,5)=7表示将矩阵构造成4*5的矩阵,未定元素为0,最后的元素为7;
小矩阵构造大矩阵:
先定义小矩阵a的值,再编写构成大矩阵,最后运行结果。
a=[4,5,6;7,8,9;9,10,11;12,16,18;];构建大矩阵方式:
[a(1:
3,2:
3),a(2:
4,1:
2);a,a(:
2)],显示的结果为:
4、矩阵的翻转操作
矩阵的上下翻转:
flipud(a)实现矩阵中每列的数值倒序排列,矩阵a的左右翻转:
fliplr(a)显示为每行的数值倒序显示结果,矩阵的逆时针旋转90°:
rot90(a),将矩阵的结果逆时针旋转90°显示。
5、特殊矩阵的产生
单位矩阵的产生:
a=eye(4),产生4维的单位矩阵,产生4×5维1矩阵:
a=ones(4,5);产生3×4维0矩阵:
A=zeros(3,4);随机n×m维矩阵:
A=rand(n,m),(产生的元素是0~1之间的随机元素)。
产生一个区间[10,20]内均匀分布的4阶随机矩阵:
>>x=10+(20-10)*rand(4);产生m×n的正态分布随即矩阵:
>>randn(m,n);产生1~m之间整数随机排列:
>>randperm(m);产生魔方矩阵:
magic(n);
6、矩阵计算
求矩阵的转置:
>>a';求矩阵的行列式:
>>det(b),(矩阵b是行列相等的方阵);求矩阵的秩:
>>rank(a);求矩阵的逆:
>>inv(b);求矩阵的迹:
>>trace(a),(即是求矩阵的对角线数值的和值);求矩阵与常数的运算:
矩阵除以常数的值:
>>a/8,矩阵与矩阵的运算:
矩阵直接的加减必须在同阶的基础上实现,矩阵之间的乘除就不需要要求是同维矩阵。
同矩阵的幂运算:
2次幂运算:
>>a.^2相当于>>a.*a的值(这是Matlab中的特殊运算,称作点运算。
)。
7、结构矩阵
建立学生信息数据表对数据表结构元素进行修改、删除、增加、取用。
建立数据表结构和初始数据:
Student=struct('xm',{'李红','张三','汪峰','李杰'},'xh',{0123,0124,0125,0126},'sxcj',{80,76,88,86});修改数据表中的数据值:
Student(3)=struct('xm',{'刀郎'},'xh',{0128},'sxcj',{96})这样将表中的第三条数据替换,得到新的数据;数据表的删除:
Student=rmfield(Student,'xh')表示删除数据表中的xh这一列,得到新的数据表。
(三)数据统计处理与多项式计算
1、数据统计处理
首先输入数据:
a=a=[459,362,…,310,85l];再对输入的数据进行运算,求平均值,中位数,方差,标准差,四分位极差,平均绝对偏差数:
b=a(:
)将数据改改变成一纵列数;mean(b),median(b),var(b),std(b),iqr(b),mad(b)直接得到所要求的值。
2、多项式计算
对多项式p=x4+2x3-5x+6和s=x2+2x+3求和、差、积、商。
P=[1,2,0,-5,6],S=[0,0,1,2,3],P+S=[1,2,1,-3,9];P-S=[1,2,-1,-7,3];P.*S=[0,0,0,-10,18];P/S=0.5714;多项式乘积:
conv(P,S)=[0,0,1,4,7,1,-4,-3,18];多项式P的根:
(四)方程(组)的解法
多项式w=x2+2x+6;w=[1,2,6];r=roots(w),求的结果为:
图
(1)
求线性方程组Ax=b的解:
R=rank(A);x=A\b求的结果为:
图
(2)
(五)函数极值
求函数
在区间(0,1)内的最小值。
首先新建一个M文件,在新文件中编写:
fx=inline('(x.^3+cos(x)+x*log(x))/exp(x)')
[x,fval]=fminbnd(fx,0,1)
运行命令得到答案:
x=0.5223;fval=0.3974
四、实验心得体会
体会一:
在针对矩阵运算时,可以任意的取矩阵的不同位置的值,进行运算,但是有些运算必须是要满足一定的运算规则才可以。
实验二主要是对矩阵的相关运用,矩阵实用的范围更广,更有学习价值。
对于矩阵的计算,以前线性代数学习过,但是不借助计算机,很多复杂的运算很费时,费力,在计算机上计算很便捷,几秒钟就能得到答案。
运用到实际生活中将节省很多人力物力财力,为企业降低成本。
体会二:
对于这次试验的建立表结构,以前在计算机课程VF中学习过,建立表单,建立数据库进行查询。
也学习过类似的输入过程,一种就是直接输入表全部的数据,二是,一条一条的输入表的数据最终得到完整的数据表,但是相对比较复杂。
只是每个软件输入、增加、修改等命令不一样,但是方法基本都是相似的。
体会三:
在解决多项式问题上,以前学习相关章节就能感到,有些函数只知道解法,但是计算过程很复杂,不容易计算得到答案。
但是借助Matlab就可以轻松的解决问题,很简洁快速的得到答案,节省了很多过程时间。
而且还可以根据函数的表达式得到相关的图形图线,更清楚的了解函数的波动规律。
实验三MATLAB程序设计
一、实验目的
(一)熟悉关系运算、逻辑运算、M函数和M文件编制方法;
(二)掌握MATLAB语言的几种循环、条件和开关选择结构;
(三)学会编写一般性程序。
二、主要操作及命令
(一)开启软件平台—MATLAB;
(二)在D盘上以自己的学号,如860101、860110(前者代表1班学号为1号的同学;后者代表1班学号为10号的同学)建立一个文件夹,并利用文件菜单中的“SETPATH…”选项,把自己的文件夹加入到MATLAB的搜索路径中(注意保存),改变当前路径为自己的文件夹;
(三)利用帮助了解命令disp、num2str、fix、break、int2Str、rem、var等语句的用法及功能;
(四)利用MATLAB文本编辑窗口,编写和调试实验项程序;注意给实验程序(尤其是思考与练习中自编的程序)取一个易记忆的名称,将程序代码及运行结果保存到自己的WORD文档,准备平时的实验检查;
(五)观察和理解程序执行的结果,若出现错误,修改、直到输出正确结果;
(六)记录2~3个你认为重要的实验项及结果,1~3条学习心得体会。
三、实验任务
(一)关系运算与逻辑运算
数与数、矩阵与矩阵之间的关系运算,其中主要的关系运算符包括:
〉大于、<小于、>=大于等于、<=小于等于、==等于、~=不等于,如果关系成立则返回的值是1,不成立返回的值为0。
例如:
2〉4,返回的值是:
ans=1;如果输入:
4>=7,返回的值就是:
ans=0;
逻辑运算包括:
与(&)、或(|)、非(~)、异或(xor),变量中非零数逻辑量为“真”,逻辑运算的结果还是,如果是真就显示值为1,逻辑假显示结果为0。
例如:
a=3&1得到值为:
a=1,a=0&1得到值为0;a=-1|5得到值是:
1,而或运算中只有同时为零时才显示结果为a=0;异或运算中,只有一个是非零,一个是零显示值才是1,其余的全部为0。
a=xor(3,0)和a=xor(0,5)显示值为:
a=1;a=xor(3,1)和a=xor(0,0)显示的值为:
a=0;非(~)运算是将真变假,假变真。
a=~0,0是假,但是显示的变化后显示的结果为真,a=~1,1为真变化后显示的结果为假。
如果是矩阵中运算a=1:
5,b=3:
7,t1=(a-2>2)=[0,0,0,0,1];t2=(a>3)-b=[-3,-4,-5,-5,-6];t3=~t1-2=[-1,-1,-1,-1,-2]。
(二)M文件
1、M文件的建立
创建新M文件,在M文件中输入以下命令:
function[v,s]=ff(v0,a,t)%定义函数名和输入、输出变量
v=v0+a*t;%给出输入、输出变量之间的关系
s=v0*t+a*t^2/2;
命令窗口中输入:
[v,s]=ff(2,5,10)得到的答案是:
v=52,s=270;
用函数命令inline也可以实现M文件的部分功能,例如:
>>fu=inline('2*x^2+3*x+l')
显示的结果为:
一个M文件中可以包括一个以上的函数,其中有个是主函数,其他的为子函数,子函数只能被同一文件的的主函数调用,不能被不同的文件的其他函数调用。
主函数必须在最前面,后面接子函数,秩序没有限制。
在M文件中输入:
functionout=func5(x)
recip=reciproc(x);
out=sum(recip);
functionoutput=reciproc(input)
output=1./input;
命令窗口输入:
func5([2,2,5])得到的结果是:
ans=1.2000
(三)程序流程控制
1、if条件语句
创建M文件,输入下列程序,比较两数的大小。
a=4;
b=3;
ifa>b;
max=a;
disp(['最大值为:
',num2str(max)]);
elseifa==b;
max='两数相等';
else;
max=b;
disp(['最大值为:
',num2str(max)]);
end
最终得到的结果为:
最大值为:
4。
2、for循环语句
利用for循环求出100-200之间的所有素数。
form=101:
2:
200
k=fix(sqrt(m));
fori=2:
k+1
ifrem(m,i)==0;
break;
end;
end;
ifi>=k+1
disp(int2Str(m))
end;
end;
得到的答案是:
101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199;
建立M文件:
A=[2,5,0;2,4,7;3,1,9];
fori=A
y=i
(1)-i
(2)+i(3)
end
得到的答案是:
Y=3,y=2,y=2;
3、while循环
sum=0;
i=1;
whilei<=100;
sum=sum+i;
i=i+1;
end;
sum
利用whlie循环求得1-100之间的和,值为:
sum=5050
4、switch分支选择语句
求输入的数的奇偶性:
(要求输入的数必须是整数)新建一个M文件,在其中输入以下命令:
clearall
x=input('inputanumber:
');
switchfix(mod(x,2))
case{0}
disp('偶数')
otherwise
disp('奇数')
end
根据输入的整数判别输入的数是奇数还是偶数。
(四)程序代码保护
1一般M文件都是文本文件,为了保护自己编写的代码,不愿向别人提供源代码,可以将M文件转化成p-code文件。
利用命令pcodefilename.m得到的文件就是转换成的filen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 物流 定量 技术 实验 报告