运筹学上机实验报告 MATLAB语言基础

合集下载

运筹学matlab语言基础

运筹学matlab语言基础

2、命令行编辑器 (1)方向键和控制键可以编辑修改已输入的命令 :回调上一行命令 :回调下一行命令 (2)命令窗口的分页输出 • more off:不允许分页 more on:允许分页 • more(n):指定每页输出的行数 • 回车前进一行,空格键显示下一页,q结束当前显 示。 (3)多行命令(…) • 如果命令语句超过一行或者太长希望分行输入,则 可以使用多行命令继续输入。 • S=1-12+13+4+… 9-4-18;
二、MATLAB命令窗口
1、启动MATLAB命令窗口 • 计算机安装好MATLAB之后,双击MATLAB图标, 就可以进入命令窗口,此时意味着系统处于准备接 受命令的状态,可以在命令窗口中直接输入命令语 句。 • MATLAB语句形式 》变量=表达式; 通过等于符号将表达式的值赋予变量。当键入回车 键时,该语句被执行。语句执行之后,窗口自动显 示出语句执行的结果。如果希望结果不被显示,则 只要在语句之后加上一个分号(;)即可。此时尽 管结果没有显示,但它依然被赋值并在MATLAB 工作空间中分配了内存。
b=
-2.3333 0.3333 1.0000 2.6667 0.3333 -2.0000
-0.6667 -0.3333 1.0000
》det(a) ans =
-3
三、矩阵的操作
1、矩阵下标
•MATLAB通过确认矩阵下标,可以对矩阵进行插入子块,提取 子块和重排子块的操作。 • • • • A(m,n):提取第m行,第n列元素 A(:,n):提取第n列元素 A(m,:):提取第m行元素 A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到 第n2列的所有元素(提取子块)。 • A(:):得到一个长列矢量,该矢量的元素按矩阵的列进行排列。 • 矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数 (赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个 数,而且在其他没有指定的位置补零。 • 消除子块:如果将矩阵的子块赋值为空矩阵[ ],则相当于消除了 相应的矩阵子块。

实验一 MATLAB基本操作及运算(含实验报告)

实验一 MATLAB基本操作及运算(含实验报告)

实验一 MATLAB基本操作及运算(含实验报告)实验一matlab基本操作及运算(含实验报告)实验一matlab基本操作及运算一、实验目的1、理解matlab数据对象的特点;2、掌握基本matlab运算规则;3、掌握matlab帮助的使用方法;二、实验的设备及条件计算机一台(带有matlab7.0以上的软件环境)。

三、实验内容要求建立一个名为experiment01.m的,把与实验内容1-7相关的实验命令都放入该文件中,题与题之间用相应注释分割。

注意对实验中出现的相关函数或变量,请使用help 或doc查询相关帮助文档,学习函数的用法。

1、创建以下标量:1)a=102)b=2.5×10233)c=2+3i,(i为虚数单位)4)d=ej2?/3,(j为虚数单位,这里要用到exp,pi)2、建立以下向量:1)avec=[3.1415926]2.7182)bvec=??28182??3)cvec=[54.8…-4.8-5](向量中的数值从5到-5,步长为-0.2)4)dvec=[100100.01…100.99101](产生1至10之间的等对数间隔向量,参照logspace,特别注意向量的长度)3、建立以下矩阵:221)amat2?2??amat一个9×9的矩阵,其元素全系列为2;(参照ones或zeros)10??10??0?02)bmat050??0?0?01??0?bmat是一个9×9的矩阵,除主对角上的元素为[123454321]外,其余元素均为0。

(参考diag)。

111?129192?2?3)cmat?1020?100cmat为一个10×10的矩阵,可有1:100的向量来产生(参考reshape)nan4)dmatnan??nannannannannannannannan?nan??nan??dmat为3×4的nan矩阵,(参照nan)13155)emat2210?87?6)产生一个5×3随机整数矩阵fmat,其值的范围在-3到3之间。

Matlab上机操作实验报告1

Matlab上机操作实验报告1

Matlab上机操作实验报告电工四班吕及时一、实验目的通过上机编程实验,使自己熟悉对MATLAB软件平台的使用、掌握MATLAB的编程技巧,让自己对MATLAB软件平台在科学计算中的重要作用有深入了解。

二、实验内容1. 熟练掌握矩阵的生成、加、减、乘、除、转置、行列式、逆、范数等运算操作。

(用.m 文件和Matlab函数编写一个对给定矩阵进行运算操作的程序)2. 熟练掌握算术符号操作和基本运算操作,包括矩阵合并、向量合并、符号转换、展开符号表达式、符号因式分解、符号表达式的化简、代数方程的符号解析解、特征多项式、函数的反函数、函数计算器、微积分、常微分方程的符号解、符号函数的画图等。

(用.m文件编写进行符号因式分解和函数求反的程序)3. 掌握Matlab函数的编写规范。

4、掌握Matlab常用的绘图处理操作,包括:基本平面图、图形注释命令、三维曲线和面的填充、三维等高线等。

(用.m文件编写在一个图形窗口上绘制正弦和余弦函数的图形,并给出充分的图形注释)5. 熟练操作MATLAB软件平台,能利用M文件完成MATLAB的程序设计。

四、实验过程矩阵运算和Matlab编程五、程序设计实验题目1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。

并以x,y为坐标显示图像x(n+1) = a*x(n)-b*(y(n)-x(n)^2);y(n+1) = b*x(n)+a*(y(n)-x(n)^2)解:2.编程实现奥运5环图像,允许用户输入环的直径。

解:3.实现对输入任意长度向量元素的冒泡排序的升序排列。

不允许使用sort函数。

解:。

matlab上机实验报告

matlab上机实验报告

MATLAB上机指导书上机一 MATLAB编程环境一、上机目的1.熟悉MATLAB的操作环境及基本操作方法2.熟悉MATLAB的通用参数设置3.熟悉 MATLAB的搜索路径及设置方法4.熟悉MATLAB帮助信息的查阅方法二、上机内容和结果1.利用菜单设置MATLAB的Command Window中字体大小,并更改输出格式。

示例:结果:2.在硬盘上创建以自己名字命名的文件夹,将当前路径修改为此文件夹示例:结果:4.完成下列操作:(1)在MATLAB命令窗口输入以下命令>> x=0:pi/10:2*pi;>> y=sin(x);(2)在工作空间选择变量y,在在工作空间窗口选择绘图菜单命令或在工具栏中单击绘图命令按钮,绘制变量y的图形。

结果:5.利用帮助学习save,load命令的用法,将在工作区中变量全部保存在mypath.mat中,清空工作区,重载变量x,y查看变量信息,并把它们保存在mypath.mat中结果:6. 计算y=1.3^3*sin(pi/3)*sqrt(26)(1)结果用format命令按不同格式输出。

(2)观察在进行上述命令计算后历史窗口的变化,用功能将实现回调刚才的计算语句。

(3)回调计算语句,把sin改为sn运行,观察反馈信息,若回调语句在语句后面加“;”,看输出有何不同结果:上机二 Matlab的计算可视化一、上机目的1、理解MATLAB绘图方法2、掌握绘制二维数据曲线图的方法3、掌握用plot函数和fplot函数绘制曲线的方法4、通过练习掌握绘制二维数据曲线图的方法和plot 函数和fplot 函数的使用5、通过练习熟悉三维曲线和曲面图的绘制方法二、上机内容和步骤1.上机内容(1)绘制下列曲线:①33x x y -= ②2221x e y π= ③64222=+y x1.>> x=0:5; >> y=x-x.^3/3; >> plot(y); >>2.>> x=0:0.3:1;>> y=1/(2*pi)*exp(x.^2/2); >> plot(y);3.>> ezplot('x.^2-2*y.^2-64',[-50 50]);(2)通过用plot 和fplot 函数绘制xy 1sin 的曲线,并分析其区别。

上机实验1:熟悉matlab基本操作

上机实验1:熟悉matlab基本操作

上机实验1:熟悉matlab基本操作实验目的:熟悉matlab的基本操作,掌握一些常用命令的用法。

实验内容:1.编写matlab命令(函数),可以完成以下任务:(1)matlab中的PI?(=Pi)大约等于?(2)如何使用sum命令?(3)函数max的作用?举例说明。

(4)命令help,lookfor,demo的用法?102? 5.Sin6(5)计算7.Tan62。

回答以下问题:(1)matlab是什么意思?(2)matlab命令who与whos有什么区别?(3)matlab命令clear与clc有什么区别?(4)命令:与linspace,logspace的区别?计算机实验2:矩阵运算与matlab命令实验目的:熟悉matlab矩阵运算命令。

实验内容:1.请直接在Matlab下输入以下常数,查看它们的值:(1)I,J,EPS(2)inf,Nan,PI(3)realmax(4)realmin2、使用lookfor指令,找出具有下列功能的matlab指令。

(1)求矩阵的大小(即行维度和列维度)(2)找出矩阵每一直行的最大值(3)对矩阵的每一直行进行排序(4)逆矩阵(inversematrix)的计算(5)求矩阵的rank几个常见的matlab命令:*zerooneseyelinspaceranddiag\\/detinveigrank计算机实验3:MATLAB程序设计实验目的:熟悉matlab程序控制结构,掌握用m文件或函数的编写方法。

实验内容:x2x6,x0且x??4?1、f(x)的定义如下:f(x)??x2?5x?6,0?x?10,x?2且x?3,写一个matlab函x2?十、1.其他人?数字func1实现该函数,并在区间[?10,15]内绘制该函数的图像。

2.编写一个matlab函数myfun M来计算以下方程式:y=0.5*exp(x/3)-x*x*sin(x)其中x是函数的输入,Y是函数的输出。

实验1 MATLAB语言上机操作实践

实验1  MATLAB语言上机操作实践

实验报告通信工程 1101学号:********* 姓名:李*实验1MATLAB语言上机操作实践一、实验目的:㈠、了解MATLAB语言的主要特点、作用。

㈡、学会MATLAB主界面简单的操作使用方法。

㈢、学习简单的数组赋值、运算、绘图、流程控制编程。

二、实验内容:㈠、简单的数组赋值方法MATLAB中的变量和常量都可以是数组(或矩阵),且每个元素都可以是复数。

1.在MATLAB指令窗口输入数组A=[1 2 3;4 5 6;7 8 9],观察输出结果。

然后,键入:A(4,: )=[1 3 5]键入:A (5,2) = 7键入:A(4,3)= abs (A(5,1))键入:A ([2,5],:) = [ ]键入:A/2键入:A (4,:) = [sqrt(3) (4+5)/6*2 –7]观察以上各输出结果。

将A式中分号改为空格或逗号,情况又如何?请在每式的后面标注其含义。

A=[1 2 3;4 5 6;7 8 9]A =1 2 34 5 67 8 9>> A(4,: )=[1 3 5]A =1 2 34 5 67 8 91 3 5>> A(5, 2)=7A =1 2 34 5 67 8 91 3 50 7 0>> A(4, 3)=abs(A(5, 1))A =1 2 34 5 67 8 91 3 00 7 0>> A([2, 5],: )=[]A =1 2 37 8 91 3 0>> A/2ans =0.5000 1.0000 1.50003.50004.0000 4.50000.5000 1.5000 0>> A(4,: )=[sqrt(3) (4+5)/6*2 -7]A =1.00002.00003.00007.0000 8.0000 9.00001.0000 3.0000 01.7321 3.0000 -7.0000A=[1 2 3,4 5 6,7 8 9]A =1 2 3 4 5 6 7 8 92.在MATLAB指令窗口输入B=[1+2i,3+4i;5+6i ,7+8i], 观察输出结果。

运筹学实验报告(1)

运筹学实验报告(1)

运筹学实验报告一、实验目的:通过实验熟悉单纯形法的原理,掌握matlab循环语句的应用,提高编程的能力和技巧,体会matlab在进行数学求解方面的方便快捷。

二、实验环境:Matlab2012b,计算机三、实验内容(包含参数取值情况):构造单纯形算法解决线性规划问题Min z=cxs.t. Ax=bxj>=0,j=1,…,n函数功能如下:function[S,val]=danchun(A1,C,N)其中,S为最优值,Val为最优解,A1为标准形式LP问题的约束矩阵及最后一列为资源向量(注:资源向量要大于零),A1=[A+b];C是目标函数的系数向量,C=c;N为初始基的下标(注:请按照顺序输入,若没有初始基则定义N=[])。

先输入A1,C,N三个必要参数,然后调用danchun(A1,C,N)进行求解。

在此函数中,首先判断N的长度是否为空,若为空,则flag=1,进入初始解问题的迭代求值,添加辅助问题,构建单纯形表,求g所对应的RHS值,若其>0,则返回该问题无解,若其=0,则返回A1,C,N三个参数,继续构造单纯形表求解。

A1为经过变换后的系数及资源向量,C为单纯形表的第一行,N为经过辅助问题求解之后的基的下标。

否则,直接构建单纯形表,对该问题进行求解,此时flag=2,多次迭代后找到解。

另外,若在大于零的检验数所对应的系数均小于零时,会显示“此问题无界”。

若找到最优解和最优值时,会输出“val”和“S=”以及具体数值。

四、源程序(在matlab中输入edit后回车,写在.M文件中,并保存为danchun.M)function[S,val]=danchun(A1,C,N)if(length(N)==0)gN=zeros(1,length(A1(:,1)));gC=[-C,gN,0];%原文题的检验数的矩阵G=[zeros(1,length(C)),-ones(1,length(gN)),0];val=zeros(1,length(C));%val为最优解;for i=(length(C)+1):length(C)+length(A1(:,1))%生成基变量gN(i-length(C))=i;endNn=gN;%%%%%%%ll=zeros(1,length(N));%比值最小原则%生成除了最上端两行的表的矩阵gb=A1(:,length(C)+1);A1(:,length(C)+1)=[];l=zeros(length(gN),length(gN));gA=[A1,l,gb];for i=1:length(gb)gA(i,gN(i))=1;endfor i=1:length(gN)%J为基本可行基所对应的检验数J(i)=G(gN(i));endfor i=1:length(gN)%找到基本可行基的检验数,将其赋值为0 if(J(i)~=0)G=G-(J(i)/gA(i,gN(i)))*gA(i,:);endendflag=1;elseflag=2;A=A1;Z=[-C,0];%单纯形表的第一行val=zeros(1,length(C));%val为最优解;ll=zeros(1,length(N));%比值最小原则end%%初始解问题while flag==1for i=1:length(gN)%J为基本可行基所对应的G的检验数J(i)=G(gN(i));JZ(i)=Z(gN(i));%JZ为基本可行基所对应的Z的检验数endfor i=1:length(gN)%找到基本可行基的检验数,将其赋值为0 if(J(i)~=0)G=G-(J(i)/gA(i,gN(i)))*gA(i,:);Z=Z-(JZ(i)/gA(i,gN(i)))*gA(i,:);endG1=G;%G1为检验数G1(:,length(G1))=[];D=max(G1);%找到检验数的最大值if(D<=0)%检验数都小于0if(G(length(G))>=1)disp('此情况无解');flag=0;elseif(G(length(G))>=0)for i=1:length(gN)if(max(gN)<=length(A1(1,:)));flag=2;for j=1:length(Nn)a=Nn(1);gA(:,a)=[];Z(a)=[];endA=gA;N=gN;break;endendendendelse%检验数大于0for i=1:length(G)if(G(i)==D)%找到最大的那个检验数所对应的元素for j=1:length(gN)if(gA(j,i)>0)ll(j)=gA(j,length(G))/gA(j,i);%求比值elsell(j)=10000;endendd=min(ll);for k=1:length(ll)%找到进基和离基if(ll(k)==d)gN(k)=i;gA(k,:)=gA(k,:)/gA(k,i);for m=1:k-1gA(m,:)=-(gA(m,i)/gA(k,i))*gA(k,:)+gA(m,:);endfor n=k+1:length(ll)gA(n,:)=-(gA(n,i)/gA(k,i))*gA(k,:)+gA(n,:);endbreak;endendendendendendwhile(flag==2)for i=1:length(N)%J为基本可行基所对应的检验数J(i)=Z(N(i));endfor i=1:length(N)%找到基本可行基的检验数,将其赋值为0if(J(i)~=0)Z=Z-(J(i)/A(i,N(i)))*A(i,:);endendZ1=Z;%Z1为检验数Z1(:,length(Z1))=[];D=max(Z1);%找到检验数的最大值if(D<=0)%检验数都小于0disp('已找到最优解和最优值')for i=1:length(N)val(N(i))=A(i,length(Z));endS=Z(length(Z));disp('val');disp(val);flag=0;else%检验数大于0for i=1:length(Z)if(Z(i)==D)%找到最大的那个检验数所对应的元素for j=1:length(N)if(A(j,i)>0)ll(j)=A(j,length(Z))/A(j,i);%求比值elsell(j)=10000;endendd=min(ll);if(d==10000)disp('此问题无界')flag=0;break;endfor k=1:length(ll)%找到进基和离基if(ll(k)==d)N(k)=i;A(k,:)=A(k,:)/A(k,i);for m=1:k-1A(m,:)=-(A(m,i)/A(k,i))*A(k,:)+A(m,:);endfor n=k+1:length(ll)A(n,:)=-(A(n,i)/A(k,i))*A(k,:)+A(n,:);endbreakendendendendendend五、运行结果与数据测试参考例题:例1:Min z=3x1+x2+x3+x4s.t. -2x1+2x2+x3=43x1+2x+x4=6Xj>=0,j=1,2,3,4在workspace中写入,形式如下:>> A=[-2 2 1 0 43 1 0 1 6]A =-2 2 1 0 43 1 0 1 6>> C=[3 1 1 1]C =3 1 1 1>> N=[3 4]N =3 4>> danchun(A,C,N)已找到最优解和最优值val0 2 0 4ans =6例2:初始解问题Min z=5x1+21x3s.t. x1-x2+6x3-x4=2x1+x2+2x3-x5=1xj>=0,j=1,…,5在workspace中写入,形式如下:>> A=[1 -1 6 -1 0 21 12 0 -1 1]A =1 -1 6 -1 0 21 12 0 -1 1 >> C=[5 0 21 0 0]C =5 0 21 0 0>> N=[]N =[]>> danchun(A,C,N)已找到最优解和最优值val0.5000 0 0.2500 0 0ans =7.7500六、求解实际问题(即解决附件中的实验题目)实验题目列出下列问题的数学模型,并用你自己的单纯形算法程序进行计算,最后给出计算结果。

MATLAB上机实验报告

MATLAB上机实验报告

MATLAB上机实验报告实验一、实验目的--------------------------------------------------------------------------------------------------------3二、实验内容--------------------------------------------------------------------------------------------------------3三、实验步骤--------------------------------------------------------------------------------------------------------31. M 文件的编辑----------------------------------------------------------------------------------------------32. 程序流程控制结构---------------------------------------------------------------------------------------31) for 循环结构-----------------------------------------------------------------------------------------42) while 循环结构----------------------------------------------------------------------------------------5练习-----------------------------------------------------------------------------------------------------------53)if-else-end分支结构---------------------------------------------------------------------------------54)switc-case结构----------------------------------------------------------------------------------------63. 子函数和参数传递------------------------------------------------------------------------------------------6练习-----------------------------------------------------------------------------------------------------------74. 局部变量和全局变量--------------------------------------------------------------------------------------8 MATLAB上机练习6.1 M 文件--------------------------------------------------------------------------------------------8(1)脚本文件-----------------------------------------------------------------------------------------------------8(2)函数文件-----------------------------------------------------------------------------------------------------9(3)函数调用-----------------------------------------------------------------------------------------------------9 6.2 MATLAB 的程序控制结构( 1) for 循环----------------------------------------------------------------------------------------------------9(2) while 循环----------------------------------------------------------------------------------------------------12(3)if语句---------------------------------------------------------------------------------------------------------12(4)switch 语句-------------------------------------------------------------------------------------------------13(5)try 语句-----------------------------------------------------------------------------------------------------14(6)程序流的控制--------------------------------------------------------------------------------------------14 6.3 数据的输入与输出-----------------------------------------------------------------------------------14(1)键盘输入语句------------------------------------------------------------------------------------------14(2)屏幕输出语句---------------------------------------------------------------------------------------------14 6.4 MATLAB文件操作(1)fopen 语句-----------------------------------------------------------------------------------------------------15(2) fclose 语句-----------------------------------------------------------------------------------------------------15 6.5 面向对象编程--------------------------------------------------------------------------------------------15(1)创建类目录----------------------------------------------------------------------------------------------------15(2) 建立类的数据结构-----------------------------------------------------------------------------------------15(3)创建类的基本方法---------------------------------------------------------------------------------------------16 6.6 MATLAB 程序优化-----------------------------------------------------------------------------------------17 6.7程序调试------------------------------------------------------------------------------------------------------17 6.8 习题----------------------------------------------------------------------------------------------------------17实验五MATLAB 程序设计一、实验目的掌握MATLAB 程序设计的主要方法,熟练编写MATLAB 函数。

实验一 MATLAB语言基础(报告完整版)

实验一  MATLAB语言基础(报告完整版)

%
[t,Y]=ode45('fun',[0 12],[0;1]); %因为为非刚性方程,运用4、5
%阶龙格-库塔法求解 plot(t,Y(:,1),'',t,Y(:,2),'r.') %运用plot()函数绘制 %x(t),y(t)的曲线,画出图像 %如下图所示
%6. 用LU分解求解下列线性方程组
function dy=fun(t,y) dy=zeros(2,1); dy(1)=3*sin(y(1))+5*cos(y(2));
%函数定义, %预定义列向量 %
dx 3 sin x 5 cos y dt dy 5 cos y 7 sin y dt
dy(2)=5*cos(y(2))-7*sin(y(2)); 然后在命令窗口输入下面代码:
A=[2 1 -5 1;1 -5 0 7;2 0 1 -1;1 6 -1 -4];%线性方程组系数矩阵 B=[13 -9 6 0]'; [L,U]=lu(A); x=U\(L\B) %不带主元交换的LU分解,L通常不是下三角矩阵 %求解线性方程组的解,L*y=B,U*x=y
代码执行结果:
lu2 x =
2.4351 -3.9008 -3.2901 -4.4198
三、 实验代码
%1.输入A=[7 1 5;2 5 6;3 1 5],B=[1 1 1;2 2 2;3 3 3] %在命令窗口中执行下列表达式,掌握其含义 % A(2,3) A(:,2) A(3,:) A(:,1:2:3) A(:,3)*B(:,2) % A(:,3)*B(2,:) A.*B A^2 A.^2 B/A B./A
ff 输入一个数值n为:0.5 y = 0.5000 >> ff 输入一个数值n为:1.5 y = 0.5000 >> ff 输入一个数值n为:-1 y = 0

实验二十四 MATLAB语言基础实验报告

实验二十四 MATLAB语言基础实验报告

实验二十四 MATLAB语言基础年级专业:10级计算机科学与技术2班姓名: 完成时间:2011.11.23(一)、实验目的了解Matlab语言及其在理工科课程中的应用。

(二)、实验仪器装有Matlab软件的计算机一台。

(三)、实验内容1、矩阵运算。

(1)矩阵的输入。

输入矩阵最简单的方法是把矩阵的元素直接排列在括号中。

每行内的元素间用空格或逗号公开,行与行的内容间用分号隔开。

例如输入:>>A=[1 1 1;2 2 2;3 3 3] 截图如下:(2)矩阵转置。

矩阵的转置用符号“’”来表示和实现。

例如输入:>>A=[1 1 1;2 2 2;3 3 3] 截图如下:(3)矩阵加减。

矩阵的加减运算使用的是“+”和“-”运算符。

而矩阵必须具有相同阶数才进行加、减运算。

例如A是3X3矩阵,D是3X1矩阵,就不能进行A+D运算。

例如输入A=[1 3 5;7 9 11;13 15 17] B=[2 4 6;8 10 12;14 16 18]则截图如下:加法:减法:(4)矩阵乘法用*表示,当两矩阵中前一矩阵的列数和后一矩阵和行数相同,可以进行乘法运算,这与数学上的形式是一致的,两个相同维数向量的内积也可用这种乘法来实现。

例如输入A=[1 2 3]’,B=[4 5 6]’。

截图如下:(5) 矩阵的行列式。

N阶矩阵A的行列式由det(A)给出,如A=[1 2 3;4 5 6;7 8 9]截图如下:(6)矩阵求逆,非奇异矩阵A的逆矩阵由inv(A)给出。

例如A=[1 2 3;4 5 6;7 8 0]结果为:(7)特征性。

如果A是n阶矩阵,满足式Ax=λx的λ称为A的特征值,x为A的特征向量。

例如A=[0 1;-1 0]截图如下:2、绘图(1)二维数据作图如果y是一个向量,那么plot(y)绘制一个y元素和y元素序号之间关系的线性坐标图,例如要画出y元素的序号1,2,3,4,5,6,7,对应的y元素分别为0,0.48,0.84,1,0.91,0.6,0.14的图形,则输入命令>>y[0,0.48,0.84,1.0,0.91,0.6,0.14]>> plot(y)坐标x、y的刻度是自动给出的。

MATLAB第一次上机实验报告

MATLAB第一次上机实验报告

第一章上机实验一.实验内容(一)熟悉Matlab的基本命令(1)工作空间管理:①Who和whos:显示当前工作空间的变量情况,例如想查询A和B两个变量的空间占用情况,则可以用命令whos A B。

如果只给出whos命令,则将显示工作空间中全部变量的变量名称、大小、内存占用情况及变量类型。

Who命令给出的结果是简单的,只显示当前工作空间中的变量名称。

②clear:删除工作空间中的变量。

Clear A B表示删除A和B两个变量;若只给出clear命令,则将删除工作空间内的所有变量。

③which:显示出某个MATLAB文件所在目录,如which xxure将给出xxure.m 文件所在目录。

④quit:退出⑤workspace:该命令将打开工作空间浏览器窗口。

(2)路径编辑:①path:显示MATLAB包含路径。

②cd:返回上一级目录。

③addpath:将一个新的字符串表示的子目录名添加到MATLAB包含的路径下。

④rmpath:从当前MATLAB包含的路径下清除某个字符串表示的子目录。

(3)显示格式:①format long:双精度数表示小数点后14位有效数字,单精度数表示小数点后7位有效数字。

②short e:5位科学计数表示。

③short g:从format short和format short e中自动选择最佳计数方式(默认设置)④long g:从format long和format long e中自动选择最佳计数方式⑤hex:十六进制表示⑥rat:近似有理数表示(4)窗口清理:①clc:命令窗口清屏。

②cla:可以清除当前坐标系下的内容。

③clf:图形窗口清屏。

④close:用于关闭所有的图形窗口。

(5)操作系统命令:①copyfile:复制文件②pwd(Identify current directory):显示当前的工作目录名称。

(6)熟悉Matlab的联机帮助命令:①help:可以达到帮助信息目录。

MATLAB 上 机 实 习 报 告

MATLAB 上 机 实 习 报 告

MATLAB上机实习报告学院: 电子信息学院班级:学号:姓名20 年月日Matlab上机实习报告在我们考试的前一周,我们进行了为期一个星期的Matlab上机实习.可能我们的专业与计算机联系比较紧密,以前我从没有听说过Matlab,更没有接触过.也可以说我们都是从零开始的.经过了一个星期的学习,对Matlab有了最基本的了解,Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

一个星期的时间,我们主要对Matlab的五个内容进行了学习.一、MATLAB基本操作二、数值数组及其运算三、MATLAB图形绘制基础四、STMULINK仿真基础五、句柄图形和图形用户界面制作内容一MATLAB基本操作在内容一中我们主要学习了MA TLAB的启动和退出,熟悉了各种命令窗口和工具栏.进入MATLAN的开发环境的三种方法:1)直接点击桌面上的快捷方式.2)开始→所有程序→MATLAB7.0→MATLAB7.0.EXE.3)点击matlab\bin\win32文件夹下的matlab.exe.我们在实习中最常用的是前两种,因为它比较方便,能快速进入开发环境中.退出MATLAB开发环境的几种方法:1)在MA TLAB命令窗口的”File”菜单下选择”Exit Matlab”;2)快捷键”Ctrl+q”;3)在命令窗口输入”MA TLAB”quit”命令;4)在命令窗口输入”exit”命令;5)用鼠标单击命令窗口右下角的”X”按钮;熟悉MATLAB的desktop的操作桌面:1)熟悉指令窗(command window)2)熟悉当前目录浏览器(Current Directory)3)熟悉工作空间浏览器(Workspace Browser)4)熟悉数组编辑器(Array Editor)5)熟悉脚本文件编辑器及运行一个简单的程序.t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,'-r',t,y0,':b',t,-y0,':b')运行结果:6)设置文件存路径.7)了解MATLAB帮助系统.内容二数值数组及其运算在内容二中我们学习了一维数组和二维数组的创建和寻访,掌握了MATLAB的矩阵和数组的运算和MATLAB的关系操作和逻辑操作.一、常量和变量系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合.此外,系统内部预先定义了几个有特殊意义和用途的变量.二、数值型向量(矩阵)的输入任何矩阵(向量),可以直接按行方式输入每个元素;同一行中的元素用逗号或者空格符来分隔行行之间用分号分隔。

matlab上机实验心得

matlab上机实验心得

MATLAB上机实验心得1. 引言在学习MATLAB课程期间,我们进行了一系列的上机实验。

通过这些实验,我深刻体会到了MATLAB在数学建模和数据分析方面的强大功能。

本文将详细介绍我在实验中的学习心得和体会,并分享一些使用MATLAB进行数据处理和可视化的技巧。

2. 实验一:MATLAB基础在第一次实验中,我们掌握了MATLAB的基本操作和语法。

通过编写简单的脚本,我学会了如何定义变量、进行算术运算、使用条件语句和循环结构等。

我还学会了如何使用MATLAB自带的函数库来解决常见的数学问题。

这次实验让我对MATLAB有了初步的认识,并为后续实验打下了坚实的基础。

3. 实验二:数据处理与可视化在第二次实验中,我们探索了MATLAB在数据处理和可视化方面的能力。

我们使用了一些常见的数据处理函数,如读取文件、筛选数据、计算统计量等。

我们还学习了如何使用plot函数绘制线图、scatter函数绘制散点图以及histogram函数绘制直方图等。

通过这次实验,我意识到MATLAB在数据处理和可视化方面的高效和便捷。

使用MATLAB,我们可以快速地对大量数据进行处理和分析,并通过可视化方式直观地展示数据的特征和规律。

4. 实验三:数学建模第三次实验是最具挑战性的一次,我们需要运用MATLAB解决实际问题并进行数学建模。

在实验中,我们学习了如何将实际问题转化为数学模型,并使用MATLAB求解。

我们通过编写脚本来解决最优化问题、微分方程求解等。

这次实验让我深刻理解了数学建模的重要性,并提高了我的问题解决能力。

MATLAB 的强大计算能力和丰富的函数库为数学建模提供了极大的便利。

5. 实验四:图像处理在第四次实验中,我们学习了MATLAB在图像处理方面的应用。

我们掌握了如何读取、显示、修改和保存图像。

我们还学会了一些常见的图像处理算法,如灰度变换、直方图均衡化、滤波器等。

这次实验让我对图像处理有了初步的认识,并意识到MATLAB在该领域有着广泛应用。

MATLAB基础学习实验报告

MATLAB基础学习实验报告

MATLAB实验报告题目:第一次实验报告学生姓名:学院:专业班级:学号:年月MATLAB第一次实验报告————入门第一次上机实验刘老师就MATLAB软件进行了大致的讲解,并讲了如何建立M文件,定义函数数组矩阵,如何绘图。

先就老师讲解及自己学习的情况做汇报。

一、建立M文件<1>M文件建立方法:1. 在MATLAB中,点:File→New →M-file2. 在编辑窗口中输入程序内容3. 点File →Save,存盘,M文件名必须与函数名一致<2>课上实例例:定义函数f(x1,x2)=100(x2-x12)2+(1-x1)2 答:建立M文件:fun.mfunction f=fun(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^2如此便可以直接使用函数fun.m例如计算f(1,2), 只需在MATLAB命令窗口键入命令:x=[1 2]fun(x)得f =100.题目:有一函数,写一程序,输入自变量的值,输出函数值.解答:建立M文件:zuoye1.mfunction f=zuoye1(x,y)f=x^2+sin(x*y)+2*y命令行输入x=1,y=1zuoye1(x,y)得ans =3.8415经验算答案正确,所以程序正确。

二、定义数组、矩阵<1>说明逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按Enter 键也表示开始新一行. 输入矩阵时,严格要求所有行有相同的列题目:有一个4x5矩阵,编程求出其最大值及其所处的位置.解答:a=round(10*rand (4,5))[temp I]=max(a)[am II]=max(temp)p=[I(II) II]运行得一随机矩阵a =7 7 7 3 70 8 2 0 38 7 7 1 109 4 0 8 0temp =9 8 7 8 10I =4 2 1 4 3am =10II =5p = 3 5即最大值为10,位置为第三行第五列。

MATLAB上机实习报告

MATLAB上机实习报告

Matlab上机实习实习报告十八周我们进行了本学期的第二次实习——Matlab上机实习。

本次实习一星期,共实习了五个部分。

分别是:一,Matlab基本操作;二,数值数组及其运算;三,Matlab图形绘制基础;四:SIMULINK仿真基础;五:句柄图形和图形用户界面制作。

下面分别介绍各部分内容:实习内容一Matlab基本操作1.实习目的:●掌握Matlab的启动和退出;●熟悉的命令窗口;●熟悉其它常用窗口和工具栏;2.输入一段程序:t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,’-r’,t,y0,’:b’,t,-y0,’:b’)输出结果:3.了解文件中的一些功能和指令.例如:clear 清除当前工作区中所有变量clc 清除指令窗内容clf 清除图形窗口cd 设置当前工作目录exit,quit 退出MATLAB实习内容二数值数组及其运算1.实习目的●掌握一维数组的创建和寻访●掌握二维数组的创建和寻访●掌握MATLAB的矩阵和数组的运算●熟悉MATLAB关系操作和逻辑操作2.要求在闭区间[0,2pi]上产生50个等距采样的一维数组A,试用两种不同的指令实现。

要访问1到5元素如何实现;寻访7到最后一个元素如何实现;寻访第2.6.8个元素如何实现;寻访大于2的元素如何实现;给第3.5.9个元素赋值100如何实现:(1)>> A=linspace(0,2*pi,50);>> A=0:(50/49):50;>> AA =Columns 1 through 90 1.0204 2.0408 3.0612 4.0816 5.1020 6.1224 7.1429 8.1633Columns 10 through 189.1837 10.2041 11.2245 12.2449 13.2653 14.2857 15.3061 16.3265 17.3469Columns 19 through 2718.3673 19.3878 20.4082 21.4286 22.4490 23.4694 24.4898 25.5102 26.5306Columns 28 through 3627.5510 28.5714 29.5918 30.6122 31.6327 32.6531 33.6735 34.6939 35.7143Columns 37 through 4536.7347 37.7551 38.7755 39.7959 40.8163 41.8367 42.8571 43.8776 44.8980Columns 46 through 5045.9184 46.9388 47.9592 48.9796 50.0000(2)>> whos A>> A(1:5)ans =0 1.0204 2.0408 3.0612 4.0816(3)>> A(7:50)ans =Columns 1 through 86.12247.14298.16339.1837 10.2041 11.2245 12.2449 13.2653Columns 9 through 1614.2857 15.3061 16.3265 17.3469 18.3673 19.3878 20.4082 21.4286Columns 17 through 2422.4490 23.4694 24.4898 25.5102 26.5306 27.5510 28.5714 29.5918Columns 25 through 3230.6122 31.6327 32.6531 33.6735 34.6939 35.7143 36.7347 37.7551Columns 33 through 4038.7755 39.7959 40.8163 41.8367 42.8571 43.8776 44.8980 45.9184Columns 41 through 4446.9388 47.9592 48.9796 50.0000(4)>> A([2 6 8])ans =1.0204 5.1020 7.1429(5)>> poison=find(A>2)poison =Columns 1 through 143 4 5 6 7 8 9 10 11 12 13 14 15 16Columns 15 through 2817 18 19 20 21 22 23 24 25 26 27 28 29 30Columns 29 through 4231 32 33 34 35 36 37 38 39 40 41 42 43 44Columns 43 through 4845 46 47 48 49 50 (6)>> A([3 5 9])=100 (7)>> A=[1 2 3;4 5 6] A =1 2 3 4 5 63. 在指令窗口输入A=[1 2 3;4 5 6] 观察结果:分别用“全坐标”“单坐标”来寻访第2行第1列的元素,并说明二维数组元素的存储顺序。

MATLAB上机实验实验报告

MATLAB上机实验实验报告

MATLAB上机实验一一、实验目的初步熟悉MATLAB 工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息; 命令窗口二、实验内容1 熟悉MATLAB 平台的工作环境;2 熟悉MATLAB 的5 个工作窗口;3 MATLAB 的优先搜索顺序;三、实验步骤1. 熟悉MATLAB 的5 个基本窗口①Command Window 命令窗口②Workspace 工作空间窗口③Command History 命令历史记录窗口④Current Directory 当前目录窗口⑤Help Window 帮助窗口1 命令窗口Command Window;在命令窗口中依次输入以下命令:>>x=1>> y=1 2 34 5 67 8 9;>> z1=1:10,z2=1:2:5;>> w=linspace1,10,10;>> t1=ones3,t2=ones1,3,t3=ones3,1>> t4=ones3,t4=eye4x =1z1 =1 2 3 4 5 6 7 8 9 10t1 =1 1 11 1 11 1t2 =1 1 1t3 =111t4 =1 1 11 1 11 1 1t4 =1 0 0 00 1 0 00 0 1 00 0 0 1思考题:①变量如何声明,变量名须遵守什么规则、是否区分大小写;答:1变量声明1.局部变量每个函数都有自己的局部变量,这些变量只能在定义它的函数内部使用;当函数运行时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量将不复存在;脚本没有输入输出参数,由一系列MATLAB命令组成的M文件没有单独的工作空间,只能共享调用者的工作空间;当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中;2.全局变量在函数或基本工作空间内,用global声明的变量为全局变量;例如声明a为全局变量:>>global a声明了全局变量的函数或基本工作空间,共享该全局变量,都可以给它曲赋值;如果函数的子函数也要使用全局变量,也必须用global声明;3.永久变量永久变量用persistent声明,只能在M文件函数中定义和使用,只允许声明它的函数存取;当声明它的函数退出时,MATLAB不会从内存中清除它,例如声明a为永久变量:>>persistent a2变量命名规则如下:始于字母,由字母、数字或下划线组成;区分大小写;可任意长,但使用前N个字符;N与硬件有关,由函数namelengthmax返回,一般N=63;不能使用关键字作为变量名关键字在后面给出;避免使用函数名作为变量名;如果变量采用函数名,该函数失效;3区分大小写②试说明分号、逗号、冒号的用法;答:分号:加上分号“;”其作用是将计算机结果存入内存,但不显示在屏幕上,反之,语句结尾若不加“;”,则表示在语句执行后,在将计算结果存入内存的同时,还将运算结果显示出来;逗号:分割列表冒号:从什么到什么,比如1:10意思是——1到10③linspace 称为“线性等分”函数,说明它的用法;可使用help命令,格式如下:>>help linspace④说明函数ones 、zeros 、eye 的用法;答;1ones函数:全部元素都为1的常数矩阵; 2zeros函数:全部元素都为0的矩阵; 3eye函数:单位矩阵;4linspace函数:如a=linspacen1,n2,n3,表示在线性空间上,行矢量的值从n1到n22 工作空间窗口Workspace;单击工作空间窗口右上角的按钮,将其从MATLAB 主界面分离出来;①在工作空间查看各个变量,或在命令窗口用who, whos注意大小写查看各个变量;②在工作空间双击变量,弹出Array Editor 窗口数组编辑器窗口,即可修改变量;③使用save 命令把工作空间的全部变量保存为文件;>>save④输入下列命令:>>clear all %清除工作空间的所有变量观察工作空间的变量是否被清空;使用load 命令把刚才保存的变量载入工作空间;>>load⑤清除命令窗口命令:>>clc3 历史命令窗口Command History;打开历史命令窗口,可以看到每次运行MATLAB 的时间和曾在命令窗口输入过的命令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法;①在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Copy,然后再Paste 到命令窗口;②在历史命令窗口中双击要执行的一行命令,或者选中要重复执行的一行或几行命令后,用鼠标将其拖动到命令窗口中执行;③在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Evaluate Selection,也可以执行;④或者在命令窗口使用方向键的上下键得到以前输入的命令;例如,按方向键“↑”一次,就重新将用户最后一次输入的命令调到MATLAB 提示符下;重复地按方向上键“↑”,就会在每次按下的时候调用再往前一次输入的命令;类似地,按方向键“↓”的时候,就往后调用一次输入的命令;按方向键“←”或者方向键“→”就会在提示符的命令中左右移动光标,这样用户就可以用类似于在字处理软件中编辑文本的方法编辑这些命令;4 当前目录命令窗口Current Directory;MATLAB 的当前目录即是系统默认的实施打开、装载、编辑和保存文件等操作时的文件夹;打开当前目录窗口后,可以看到用“save”命令所保存的文件是保存在目录C:\MATLAB6p5\work 下;5 帮助窗口Help Window;单击工具栏的图标,或选择菜单View|Help,或选择菜单Help|MATLAB Help 都能启动帮助窗口;①通过Index 选项卡查找log2函数的用法,在Search index for 栏中输入需要查找的词汇“log2”,在左下侧就列出与之最匹配的词汇条目,选择“log21”,右侧的窗口就会显示相应的内容;②也可以通过Search 选项卡查找log2 函数的用法;Search 选项卡与Index 选项卡不同,Index 只在专用术语表中查找,而Search 搜索的是整个HTML 帮助文件;2. MATLAB 的数值显示格式设置屏幕显示方式有紧凑Compact和松散Loose两种,其中Loose 为默认方式;>>a=ones1,30>>format compact>>a数字显示格式有short、long、short e、long e 等,请参照教材的列表练习一遍;>>format long>>pi>>format short>>pi>>format long>>pi>>format +>>pi>>-pi3. 变量的搜索顺序在命令窗口中输入以下指令:>>pi>>sinpi;>>exist'pi'>>pi=0;>>exist'pi'>>pi>>clear pi>>exist'pi'>>pi思考题:① 3 次执行exist'pi'的结果一样吗如果不一样,试解释为什么答:不一样,pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为②圆周率pi 是系统的默认常量,为什么会被改变为0答:pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为实验二 MATLAB语言基础一、实验目的基本掌握MATLAB向量、矩阵、数组的生成及其基本运算区分数组运算和矩阵运算、常用的数学函数;交接字符串的操作;二、实验内容1 向量的生成和运算;2 矩阵的创建、引用和运算;3 多维数组的创建及运算;4 字符串的操作;三、实验步骤1.向量的生成和运算1 向量的生成直接输入法:A =2 3 4 5 6>> B=1;2;3;4;5B =12345冒号生成发:>> A=1:2:10 ,B=1:10 ,C=10:-1:1A =1 3 5 7 9B =1 2 3 4 5 6 7 8 9 10C =10 9 8 7 6 5 4 3 2 1函数法:Linspace 是线性等分函数,logspace 是对数等分函数;>> A=linspace1,10 ,B=linspace1,30,10A =Columns 1 through 9Columns 10 through 18Columns 19 through 27Columns 28 through 36Columns 37 through 45Columns 46 through 54Columns 55 through 63Columns 64 through 72Columns 73 through 81Columns 82 through 90Columns 91 through 99Column 100B =Columns 1 through 9Column 10>> A=logspace0,4,5A =1 10 100 1000 10000练习:使用logspace 创建1-4 的有10个元素的行向量;答案:>> A=logspace1,10,4piA =+010Columns 1 through 9Columns 10 through 122 向量的运算维数相同的行向量只见可以相加减,维数相同的列向量也可以相加减,标量可以与向量直接相乘除;>> A=1 2 3 4 5, B=3:7,A =1 2 3 4 5B =3 4 5 6 7>> AT=A', BT=B',AT =12345BT =34567>> E1=A+B, E2=A-BE1 =4 6 8 10 12E2 =-2 -2 -2 -2 -2 >> F=AT-BT,F =-2-2-2-2-2>> G1=3A, G2=B/3,G1 =3 6 9 12 15G2 =向量的点积与叉积运算;>> A=ones1,10;B=1:10; BT=B';>> E1=dotA,BE1 =55>> E2=ABTE2 =55>> clear>> A=1:3,B=3:5,A =1 2 3B =3 4 5>> E=crossA,BE =-2 4 -22.矩阵的创建、引用和运算1 矩阵的创建和引用矩阵是由nm 元素构成的矩阵结构,行向量和列向量是矩阵的特殊形式;直接输入法:>> A=1 2 3;4 5 6A =1 2 3 4 5 6 >> B= 1 4 72 5 83 6 9B =1 4 72 5 83 6 9 >> A1ans =1>> A4:endans =5 36 >> B:,1ans =123>> B:ans =123456789>> B5ans =5抽取法>> clear>> A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16A =1 2 3 45 6 7 89 10 11 1213 14 15 16>> B=A1:3,2:3B =2 36 710 11>> C=A1 3,2 4C =2 410 12>> A1 3;2 4ans =1 95 13函数法:>> A=ones3,4A =1 1 1 11 1 1 11 1 1 1>> B=zero3Undefined function or method 'zero' for input arguments of type 'double'. >> B=zeros3B =0 0 00 0 00 0 0>> C=eyes3,2Undefined function or method 'eyes' for input arguments of type 'double'. >> C=eye3,2C =1 00 10 0>> D=magic3D =8 1 63 5 74 9 2拼接法>> clear>> A=ones3,4A =1 1 1 11 1 1 1>> B=zeros3B =0 0 00 0 00 0 0>> C=eye4C =1 0 0 00 1 0 00 0 1 00 0 0 1>> D=A BD =1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 >> F=A;CF =1 1 1 11 1 1 11 1 1 10 1 0 0 0 0 1 0 0 0 0 1 拼接函数和变形函数法:>> clear>> A=0 1;1 1A =0 11 1>> B=2ones2B =2 22 2>> cat 1,A,B,Aans =0 11 12 22 20 11 1>> cat 2 A,B,Acat 2 A,B,AError: Unexpected MATLAB expression.>> cat2,A,B,Aans =0 1 2 2 0 11 12 2 1 1>> repmatA,2,2ans =0 1 0 11 1 1 10 1 0 11 1 1 1>> repmatA,2ans =0 1 0 11 1 1 10 1 0 11 1 1 1练习:使用函数法、拼接法、拼接函数法和变形函数法,按照要求创建以下矩阵:A为43⨯的3⨯的单位矩阵、D为33⨯的0矩阵/C为33⨯的全1矩阵、B为3魔方阵、E由C 和D纵向拼接而成,F抽取E的2---5行元素生成、G由F经变形为46⨯的大3⨯的矩阵而得、以G为子矩阵用复制函数repmat生成8矩阵H;答案:>> A=ones3,4A =1 1 1 11 1 1 11 1 1 1>> B=zeros3,3B =0 0 00 0 00 0 0>> C=eye3C =1 0 00 1 00 0 1>> D=magic3D =8 1 63 5 74 9 2>> E=C;DE =1 0 00 1 00 0 18 1 63 5 74 9 2>> F=2:5,:F=2:5,:Error: Expression or statement is incorrect--possibly unbalanced , {, or . >> F=E2:5,:F =0 1 00 0 18 1 63 5 7>> G=respaceE,3,4Undefined command/function 'respace'.>> G=respaceF,3,4Undefined command/function 'respace'.>> G=reshapeF,3,4G =0 3 1 10 1 5 68 0 0 7>> H=repmatG,2,2H =0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 2)矩阵的运算矩阵的加减、数乘与乘法已知矩阵:>> A=1 23 -1,A =1 23 -1>> B=-1 01 2B =-1 01 2>> A+Bans =0 24 1>> 2Aans =2 46 -2>> 2A-3Bans =5 43 -8>> ABans =1 4-4 -2矩阵的逆矩阵>> format rat;A=1 0 1;2 1 2;0 4 61 0 12 1 2 0 4 6 >> A1=invAA1 =-1/3 2/3 -1/6 -2 1 0 4/3 -2/3 1/6 >> AA1ans =1 0 0 0 1 0 0 0 1 矩阵的除法>> a=1 2 1;3 1 4;2 2 1,b=1 1 2,d=b'a =1 2 1 3 1 42 2 1b =1 1 2112>> c1=binva,c2=b/ac1 =6/7 3/7 -4/7 c2 =6/7 3/7 -4/7 >> c3=invad, c4=a\bc3 =12/7-4/7Error using ==> mldivideMatrix dimensions must agree.>> c3=invad, c4=a\dc3 =12/7-4/7c4 =12/7-4/7练习:按下列要求求出各种的矩阵运算的值求矩阵的秩、特征值和特征向量、矩阵的乘幂与开方;矩阵的指数与对数矩阵的提取与翻转答案:>> A=6 3 4 3-2 5 7 -48 -1 -3 -7A =6 3 4 3-2 5 7 -48 -1 -3 -7>> B=rankAB =3>> rb=rankArb =3>> X,Lamda=eigAError using ==> eigMatrix must be square.>> X,Lamda=eigsAError using ==> eigsA must be a square matrix or a function which computes Ax. >> C=6 3 4-2 5 78 -1 -3C =6 3 4-2 5 78 -1 -3>> X,Lamda=eigsCX =Lamda =0 00 00 0>> X,Lamda=eigCX =Lamda =0 0 0 0 0 0 >> X,Lamda=eigCX =Lamda =0 0 0 0 0 0 >> D=A^2Error using ==> mpower Matrix must be square. >> D=C^2D =34 12 626 22 34>> E=sqrtmCE =+ - -+ - -- + +>> F=expmCF =+004>> G=logmCWarning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrix logarithm is returned.> In funm at 153In logm at 27G =+ - -- + + >> H=fliplrCH =4 3 6 75 -2 -3 -1 8 >> I=triuCI =6 3 4 0 57 0 0 -3 >> J=trilCJ =6 0 0 -2 5 0 8 -1 -3 >> K=diagCK =65-33.多维数组的创建及运算1)多维数组的创建>> A1=1,2,3;4 5 6;7,8,9;A2=reshape10:18,3,3 A2 =10 13 1611 14 1712 15 18>> T1:,:,1=ones3;T1:,:,2=zeros3T1:,:,1 =1 1 11 1 11 1 1T1:,:,2 =0 0 00 0 00 0 0>> T2=ones3,3,2T2:,:,1 =1 1 11 1 11 1 1T2:,:,2 =1 1 11 1 11 1 1>> T3=cat3,A1,A2,T4=repmatA1,1,1,2T3:,:,1 =1 2 34 5 67 8 9T3:,:,2 =10 13 1611 14 1712 15 18T4:,:,1 =1 2 34 5 67 8 9T4:,:,2 =1 2 34 5 67 8 92)多维数组的创建数组运算用小圆点加在运算符的前面表示,以区分矩阵的运算;特点是两个数组相对应的元素进行运算;>> A=1:6;B=ones1,6;>> C1=A+B,C2=A-BC1 =2 3 4 5 6 7C2 =0 1 2 3 4 5 >> C3=A.B,C4=B./A,C5=A.\BC3 =1 2 3 4 5 6C4 =C5 =关系运算或逻辑运算的结果都是逻辑值;>> I=A>3,C6=AII =0 0 0 1 1 1C6 =4 5 6>> A1=A-3,I2=A1&AA1 =-2 -1 0 1 2 3 I2 =1 1 0 1 1 1>> I3=~II3 =1 1 1 0 0 0 4.字符串的操作1 字符串的创建>> S1='Ilike MATLAB'S1 =Ilike MATLAB>> S2='I''m a stuent.'S2 =I'm a stuent.>> S3=S2,'and',S1S3 =I'm a MATLAB2)求字符串长度>> lengthS1ans =12>> sizeS1ans =1 123)字符串与一维数值数组的相互转换>> CS1=absS1CS1 =73 108 105 107 101 32 77 65 84 76 65 66>> CS2=doubleS1CS2 =73 108 105 107 101 32 77 65 84 76 65 66>> charCS2ans =Ilike MATLAB>> setstrCS2ans =Ilike MATLAB练习:用char 和向量生成的方法创建如下字符串AaBbCc......XxYyZz.>> S1=65:90;S2=97:122;>> C=S1;S2;>> C=C:';>> S3=doubleC;charS3ans =AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvWwXxYyZz实验三 MALTAB数值运算一、实验目的掌握MATLAB的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作;二、实验内容1)多项式运算;2)多项式插值和拟合;3)数值为积分;4)结构数组和细胞数组;三、实验步骤1、多项式运算1)多项式表示;在MATLAB中,多项式表示成向量的形式;如:432S S S+-+在MATLAB中表示为359>> s=1 3 -5 0 92)多项式的加减法相当于向量的加减法,但必须注意阶次要相同;如不同,低阶次的要补0;如多项式23547+-++相加;s s s s++与多项式432239s s>> s1=0 0 2 3 11>> s2=1 2 -5 4 7>> s3=s1+s2答;s1 =0 0 2 3 11s2 =1 2 -5 4 7s3 =1 2 -3 7 183)多项式的乘、除法分别用函数conv和的deconv实现; >> s1=2 3 11>> s2=1 3 -5 4 7>> s3=convs1,s2>> s4=deconvs3,s1答;s1 =2 3 11s2 =1 3 -5 4 7s3 =2 9 10 26 -29 65 77s4 =1 3 -5 4 74)多项式求根用函数roots;>> s1=2 4 2>> rootss1答;s1 =2 4 2ans =-1-15)多项式求值用函数polyval>> s1=2 4 1 -3>> polyvals1,3>> x=1:10>> y=polyvals1,x答;s1 =2 4 1 -3ans =90x =1 2 3 4 5 6 7 8 9 10y =Columns 1 through 84 31 90 193 352 579 886 1285 Columns 9 through 10练习:求23(1)(3)(1)21s s ss s+++++的“商”及余数;>> s1=1 0 1;s2=1 3;s3=1 1;>> s4=1 0 2 1;>> q,r=deconvconvconvs1,s2,s3,s4答;q =1 4r =0 0 2 -5 -12、多项式插值和拟合有一组实验数据如附表1-1所示;附表1-1分别用拟合二阶至三阶和插值线性和三次样条的方法来估算X=时Y的值;以下是实现一阶拟合的语句;>> x=1:10>> y=16 32 70 142 260 436 682 1010 1342 1960>> p1=polyfitx,y,1 %一阶拟合>> y1=polyvalp1, %计算多项式P1在x=的值答;x =1 2 3 4 5 6 7 8 9 10y =Columns 1 through 816 32 70 142 260 436 682 1010Columns 9 through 101342 1960p1 =y1 =+0033、数值微积分1)差分使用diff函数实现;>> x=1:2:9>> diffx答;x =1 3 5 7 9ans =2 2 2 22)可以用因变量和自变量差分的结果相处得到数值微分;>> x=linspace0,2pi,100;>> y=sinx;>> plotx,y>> y1=diffy./diffx;>> plotx1:end-1,y1答;3)cumsum函数求累计积分,trapz函数用梯形法求定积分,即曲线的面积;>> x=ones1,10>> cumsumx>> x=linspace0,pi,100;>> y=sinx;>> trapzx,y>> p=cumsumy;>> p100pi/100-1答;x =1 1 1 1 1 1 1 1 1 1ans =1 2 3 4 5 6 7 8 9 10ans =ans =练习:图A1是瑞士地图,为了算出其国土面积,首先对地图作如下测量:以由西向东方向为X轴,由南向北方向为Y 轴,选择方便的原点,并将从最西边界点到最东边界点在X轴上的区间适当划分为若干段,在每个分点的Y方向测出南边界点和北边界点的Y坐标Y1和Y2,这样就得到表1,根据地图比例尺回到18mm相当于40Km,试由测量数据计算瑞士国km比较;地图的数据见附表1-2单位mm;土近似面积,与其精确值412282附表1-2X 7 13 34 48 56 61 91Y1 44 45 47 50 50 38 30 30 34 36 34 41 45 46续表提示:由高等数学的知识,一条曲线的定积分是它与x轴所围成的面积,那么两条曲线所围成的面积可由两条曲线的定积分相减得到;4、结构数组与细胞数组1)机构数组的创建;>> ='Jack';>> student2.n>> ='Lucy';>> student或者用struct函数创建;>> student=struct'number',{'001','002'},'name',{'Jack','Lucy'};答;student =1x2 struct array with fields:numbername2)机构数组的操作;>> student1.subject= %添加subject域并赋予空值>> student1.score=>> filednamesstudeng>>fieldnamesstudeng>>fieldnamesstudent>> getfieldstudent,{2},'name'>> student=rmfieldstudent,'subject' %删除subject域>> student=setfieldstudent,{1},'score',90;>> student2.score=88; %比较和上一条语句是否效果一样答;student =1x2 struct array with fields:numbernamesubjectstudent =1x2 struct array with fields:numbernamesubjectscoreUndefined function or variable 'studeng'.练习:创建一结构数组stusorce,其域为:No,Name,English,Math,Chinese,Total,Average;结构数组的大小为2×2;3)细胞数组的创建;>> A={'How are you',ones3;1 2;3 4,{'cell'}}; %直接创建>> B1,1={'Hello world'}; %由各个细胞元素创建>> B1,2={magic3};>> B2,1={1 2 3 4};答或者用cell函数先创建空的细胞数组,然后再给各个元素赋值c=cell1,2;>> c1,1={'Hello world'};>> c1,2={magic3};>> c1,3={1 2 3 4};4)细胞数组的操作;>> ans1=A1,1>> ans2=A1,1>> whos ans1 ans2>> celldispA>> a1=A{2,1}1,2>> a2 a3=dealA{1:2}答;ans1 ='How are you'ans2 ='How are you'Name Size Bytes Class Attributesans1 1x1 84 cellans2 1x1 84 cellA{1,1} =How are youA{2,1} =1 23 4A{1,2} =1 1 11 1 11 1 1A{2,2}{1} =cella1 =2a2 =How are youa3 =1 23 4实验四 MALTAB符号运算一、实验目的掌握符号变量和符号表达式的创建,掌握MALTAB的symbol工具箱的一些基本运用;二、实验内容1)符号变量、表达式、方程及函数的表示; 2)符号微积分运算;3)符号表达式的操作和转换;4)符号微分方程求解;三、实验步骤1、符号运算的引入在数值运算中如果求x xxπsinlim→,则可以不断让的让x趋近0,一球的表达式趋近什么数,但终究不能令x=0,因为在数值运算中0不是能作除数的;MATLAB的符号运算能解决这内问题;输入如下命令:>> f=sym'sinpix/x'>> limitf,'x',0答;f =sinpix/xans =pi2、符号常量、符号变量、符号表达式的创建1)使用sym创建输入以下命令,观察Workspace中A、B、f是什么内性的数据,占用多少字节的内存空间;>> A=sym'1' %符号常量>> B=sym'x' %符号变量>> f=sym'2x^2+3x-1' %符号表达式>> clear>> f1=sym'1+2' %有单引号,表示字符串>> f2=sym1+2 %无单引号>> f2=sym1+2>> f4=sym'2x+3' %为什么出错>> x=1>> f4=sym2x+3答;A =1B =x2x^2+3x-1f1 =1+2f2 =3f2 =3f4 =2x+3x =1f4 =5通过看MATLAB的帮助可知,sym的参数可以使字符串或是数值类型,无论是哪种类型都会生成符号类型数据; 2)使用syms创建>> clear>> syms x y z>> x,y,z>> f1=x^2+2x+1>> f2=expy+expz^2>> f3=f1+f2答;x =xy =yz =zf1 =x^2+2x+1f2 =expy+expz^2f3 =x^2+2x+1+expy+expz^23、符号矩阵创建>> syms a1 a2 a3 a4>> A=a1 a2;a3 a4>> A1,A3答;A =a1, a2a3, a4ans =a1a24、符号算术运算1)符号向量相乘、相除符号量相成和数值量相乘一样,分成矩阵乘和数组乘;>> a=sym5;b=sym7;>> c1=ab>> c2=a/b>> a=sym5;B=sym3 4 5;>> C1=aB,C2=a\B>> syms a b>> A=5 a;b 3;B=2a b;2b a;>> C1=AB,C2=A.B>> C3=A\B,C4=A./B答;c1 =35c2 =5/7C1 =15, 20, 25C2 =3/5, 4/5, 1C1 =10a+2ab, 5b+a^22ab+6b, b^2+3aC2 =10a, ab2b^2, 3aC3 =2ab-3/-15+ab, a^2-3b/-15+ab2ba-5/-15+ab, -5a-b^2/-15+abC4 =5/2/a, a/b1/2, 3/a2)符号数值任意精度控制和运算任意精度的VPA运算可以使用命令digits设定默认的精度和vpa对指定对象以新的精度进行计算来实现; >> a1=sym'2sqrt5+pi'>> a=sym'2sqrt5+pi'>> b=sym2sqrt5+pi>> digits>> vpaa>> digits15>> c1=vpaa,56>> c2=vpab,56答a1 =2sqrt5+pia =2sqrt5+pib =Digits = 32ans =ans =c1 =c2 =注意观察c1和c2的数值类型,c1和c2是否相等;3) 符号类型与数值类型的转换使用命令sym 可以把数值型对象转换成有理数性符号对象,命令vpa 可以讲数值型对象转换为任意精度的VPA 型符号对象;使用double,numeric 函数可以将有理数型和VPA 型符号对象转换成数值对象.>> clear>> a1=sym'2sqrt5+pi'>> b1=doublea1 %符号转数值>> b2=isnumericb1 %判断是否转换成了数值>> a2=vpaa1,70 %数值转符号答;a1 =2sqrt5+pib1 =b2 =1a2 =85、 符号表达式的操作和转换1独立变量的确定原则独立变量的确定原则:在符号表达式中默认变量是惟一的;MATLAB 会对单个英文小写字母除i 、j 外进行搜索,且以x 为首选独立变量;如果表达式中字母不唯一,且无x,就选在字母表最接近x 的字母;如果有相连的字母,则选择在字母表中较后的那一个;例如:'*3'z y +中,y 是默认独立变量;)'*sin('b t a +,t 是默认独立变量;输入以下命令,观察并分析结果;>> clear>> f=sym'a+b+i+j+x+y+xz'>> findsymf>> findsymf,1>> findsymf,2>> findsymf,3>> findsymf,4>> findsymf,5>> findsymf,6答;f =a+b+i+j+x+y+xzans =a, b, j, x, xz, yans =xans =x,xzans =x,xz,yans =x,xz,y,jans =x,xz,y,j,bans =x,xz,y,j,b,a2符号表达式的化简符号表达式化简主要包括表达式美化pretty 、合并同类项collcet 、多项式展开expand 、因式分解factor 、化简simple 或simplify 等函数;①合并同类项collect;分别按x 的同幂项和e 指数同幂项合并表达式: 2(1)()t t x xe x e --+++;>> syms x t;>> f=x^2+x^exp-t+1x+exp-t;>> f1=collectf>> f2=collectf,'exp-t'答;f1 =x^3+exp-tx^2+x^exp-t+1x+x^exp-t+1exp-tf2 =x^2+x^exp-t+1exp-t+x^2+x^exp-t+1x②对显示格式加以美化pretty;针对上例,用格式美化函数可以使显示的格式更符合数学书写习惯;>> prettyf1>> prettyf2答;f1 =x^3+exp-tx^2+x^exp-t+1x+x^exp-t+1exp-tf2 =x^2+x^exp-t+1exp-t+x^2+x^exp-t+1x>> prettyf1prettyf23 2 exp-t exp-tx + exp-t x + x + 1 x + x + 1 exp-t2 exp-t 2 exp-tx + x + 1 exp-t + x + x + 1 x注意与直接输出的f1和f2对比;③多项式展开expand;展开12x-成x不同次幂的多项式.(1)>> syms x>> f=x-1^12;>> expandf>> prettyexpandf答;ans =1+x^12-12x^11+66x^10-220x^9+495x^8-792x^7+924x^6-792x^5+495x^4-220x^3+66x^2-12x 12 11 10 9 8 7 6 51 + x - 12 x + 66 x - 220 x + 495 x - 792 x + 924 x - 792 x4 3 2+ 495 x - 220 x + 66 x - 12 x④因式分解factor;将表达式121x-做因式分解;>> syms x;f=x^12-1;>> prettyfactorf答;ans =1+x^12-12x^11+66x^10-220x^9+495x^8-792x^7+924x^6-792x^5+495x^4-220x^3+66x^2-12x 12 11 10 9 8 7 6 51 + x - 12 x + 66 x - 220 x + 495 x - 792 x + 924 x - 792 x4 3 2+ 495 x - 220 x + 66 x - 12 x>> syms x;f=x^12-1;prettyfactorf2 2 2 4 2x - 1 1 + x + x 1 + x 1 - x + x 1 + x x - x + 1⑤化简simple或simplify;将函数f=;>> clear>> syms x;f=1/x^3+6/x^2+12/x+8^1/3;>> g1=simplef>> g2=simplifyf答;g1 =2x+1/xg2 =2x+1^3/x^3^1/36、符号表达式的变量替换subs函数可以对符号表达式中的符号变量进行替换>> clear>> f=sym'x+y^2+4x+10'>> f1=subsf,'x','s' %使用s替换x>> f2=subsf,'x+y','z'答;f =x+y^2+4x+10f1 =s+y^2+4s+10f2 =z^2+4x+107、符号极限、符号积分与微分1)求极限函数的调用格式limitF,x,a %返回符号对象F当x→a时的极限limitF,a %返回符号对象F当独立变量→a时的极限limitF %返回符号对象F当独立变量→0a=0时的极限limitF,x,a,’right’ %返回符号对象F当x→a时的右极限limitF,x,a,’left’ %返回符号对象F当x→a时的左极限例一:>> clear>> f=sym'sinx/x+ax'>> limitf,'x',0 %以x为自变量求极限>> limitf,'a',0 %以a为自变量求极限>> limitf %在默认情况下以x为自变量求极限>> findsymf %得到变量并且按字母表顺序排列答‘f =sinx/x+axans =1ans =sinx/xans =1ans =a, x例二:>> clear>> f=sym'sqrt1+1/n;>> limitf,n,inf %求n趋于无穷大时的极限2)求积分函数的调用格式intF %求符号对象F关于默认变量的不定积分intF,v %求符号对象F关于指定变量v的不定积分intF,a,b %求符号对象F关于默认变量的从a到b的定积分intF,v,a,b %求符号对象F关于指定变量的从a到b的定积分3)求微分方程的调用格式diffF %求符号对象F关于默认变量的微分diffF,v %求符号对象F关于指定变量v的微分diffF,n %求符号对象F关于默认变量的n阶微分,n为自然数1、2、3……diffF,v,n %求符号对象F关于指定变量v的n阶微分8、符号方程求解1常规方程求解函数的调用格式g=solveeq %求方程或表达式或字串eq关于默认变量的解g=solveeq,var %求方程或表达式或字串eq关于指定变量var的解g=solveeq1,eq2,….,eqn,var1,var2,…,varn %求方程或表达式或字串eq1,eq2,eq3,……eqn关于指定变量组var1,var2,……,varn的解求一元二次方程20++=的解;其求解方法有多种形式:ax bx c①seq=solve'ax^2+bx+c'②seq=solve'ax^2+bx+c=0'③eq=’ax^2+bx+c’;④eq=’ax^2+bx+c=0’;seq=solveeq⑤sym x a b ceq=ax^2+bx+cseq=solveeq2常微分方程求解求解常微分方程的函数是dsolve;应用此函数可以求得常微分方程组的通解,以及给定边界条件或初始条件后的特解;常微分方程求解函数的调用格式:r=dsolve’eq1,eq2,…’,’cond1,cond2,…’,’v’r=dsolve’eq1’,’eq2’,…,’cond1’,’cond2’,…,’v’说明:①以上两式均可给出方程eq1,、qeq2对应初始条件cond1、cond2之下的一v 作为解变量的各微分方程的解; ②常微分方程解的默认变量为t;③第二式中最多可接受的输入式是12个;④微分方程的表达方法;在用MATLAB 求解常微分方程时,用大写字母Dy 表示dxdy ,用D2y 表示22d y dx ,依此类推; 边界条件以类似于ya=b 给出;其中y 为因变量,a 、b 为常数.如果初始条件给的不够,求出的解为含有C1、C2等待定常数的通解;例一 求微分方程x dx dy 2=的通解. 练习:1求222132lim x x x x →--+; 2求函数()cos 2sin 2f x x x =-的积分;求函数()g x =3计算定积分60(sin 2)x dx π+⎰ 4求下列线性方程组的解5求解但y0=2,在z0=7时,微分方程组的解;实验五 MATLAB 程序设计一、实验目的掌握MATLAB 程序设计的主要方法,熟练编写MATLAB 函数.二、 实验内容1M 文件的编辑;。

利用MATLAB计算运筹学模型实验

利用MATLAB计算运筹学模型实验

利用MATLAB计算运筹学模型实验一、基本信息
时数:4 学时
适用专业:信息学院各专业学完运筹学的同学
二、教学方法与手段
在教师的指导下分组或单独完成。

三、实验目的
1.了解MATLAB工具,掌握MATLAB在运筹学中的使用函数
2.利用MATLAB解决运筹中的具体问题
3.初步掌握MATLAB编程
四、实验环境
MATLAB工具
五、实验内容/步骤
1、熟悉MATLAB函数
2、利用MATLAB解决线性规划问题
1)线性规划指令linprog()了解
2)线性规划的应用
●设备配置
●下料问题
●生产计划安排
●配料问题
●投资问题
3、利用MATLAB解决运输问题
4、利用MATLAB解决整数规划
5、利用MATLAB解决指派问题
6、利用MATLAB解决网络最大流问题
7、利用MATLAB解决网络最短路求法
六、考核方式
实验报告。

指导教师:陈沛帅。

运筹学上机实验报告利用Matlab求解整数线性规划word参考模板

运筹学上机实验报告利用Matlab求解整数线性规划word参考模板

数学与软件科学学院 实验报告学期:__2011_至__2012__ 第___一__ 学期 2011年11月9日 课程名称:__ 运 筹 学 ________ 专业:_信息与计算科学___ 级__班实验编号: 4 实验项目_利用Matlab 求解整数线性规划 指导教师__黄娟___ 姓名:_ ____ 学号: __ 实验成绩:_____一、实验目的及要求利用Matlab 求解整数线性规划,掌握相关函数的调用格式和参数的具体含义。

二、实验内容把优化问题转化为Matlab 能识别的矩阵运算, 调用Matlab 提供的优化函数, 编写相应的M 文件,并执行相应的程序。

三、实验步骤(该部分不够填写.请填写附页)整数线性规划的求解步骤<1> 把整数线性规划化为要求的格式<2> 将程序BranchBound.m 放到当前目录中。

<3> 编写M 文件(ILP.m),并保存。

>> f=[-3 -2]';>> a=[-1 2;5 2;-1 -1];>> b=[4;16;1];>> [x,f_opt]=BranchBound(f,a,b,[],[])<4> 运行M 文件。

在》后输入ILP ,按“Enter”键。

结果参见附页0-1规划的求解步骤<1> 把0-1规划化为要求的格式⎪⎪⎪⎩⎪⎪⎪⎨⎧≤--≤+≤+---=为整数2121212121,1162542..23min x x x x x x x x t s x x z<2> 编写M 文件(ILP01.m),并保存。

>> f=[0;0;0;0;0;0;-30;-30;-45;-45;-55;-55;-50;-50];>> a=[400 0 320 0 560 0 250 0 330 0 500 0 450 0;0 400 0 320 0 560 0 250 0 330 0 500 0 450;0 0 0 0 0 0 1 1 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 1 1 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 1 1 0 0 ;0 0 0 0 0 0 0 0 0 0 0 0 1 1];>> b=[1000;1500;1;1;1;1];>> aeq=[1 1 0 0 0 0 0 0 0 0 0 0 0 0;0 0 1 1 0 0 0 0 0 0 0 0 0 0;0 0 0 0 1 1 0 0 0 0 0 0 0 0];>> beq=[1;1;1];>> [x,f_opt,flag]=bintprog(f,a,b,aeq,beq),answer=180+f_opt<3> 运行M 文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学与软件科学学院 实验报告
学期:__2011_至__2012__ 第___一__ 学期 2011年11月9日 课程名称:__ 运 筹 学 ________ 专业:_信息与计算科学___ 级_班
实验编号:01 实验项目___ MATLAB 语言基础_____ 指导教师___黄娟___ 姓名:_ ____ 学号: __ 实验成绩:_____
一、实验目的及要求
了解Matlab 的语言基础, 掌握变量的命名规则和矩阵的输入与运算。

二、实验内容
如何进行变量的命名,矩阵的输入和运算。

三、实验步骤(该部分不够填写.请填写附页)
<1> 根据标准型LP 问题
Min z=)(431x x x --
s.t.
x x x x 5431)(2--- =-2 ()x x x x 64
312+-- =2
()x x x x 7431+-+ =5 0,,,,,,7654321≥x
x x x x x x
输入矩阵a,b,c : >> a=[2 -1 1 -1 0 0;1 -2 2 0 1 0;1 1 -1 0 0 1], b=[-2 2 5]',c=[1 -1 1]
<2>按Enter 键,电脑输出结果。

实验结果参见附页。

实验报告附页
四、实验结果分析与评价(该部分不够填写.请填写附页)
a =
2 -1 1 -1 0 0
1 -
2 2 0 1 0
1 1 -1 0 0 1
b =
-2
2
5
c =
1 -1 1
>>
注:实验成绩等级分为(90-100分)优,(80-89分)良,(70-79分)中,(60-69分)及格,(59分)不及格。

相关文档
最新文档