数学实验报告——利用MALTAB进行线性规划
- 格式:docx
- 大小:41.21 KB
- 文档页数:11
运行环境:Windows+MATLAB解决问题:线性规划问题(特定题目)实验简述:MATLAB 可以高效、方便地解决线性规划问题。
线性规划是合理利用、调配资源的一种应用数学的方法。
它的基本思路就是在满足一定的约束条件下,使预定的目标达到最优。
它的研究内容可归纳为两个方面:一是系统的任务已定,如何合理筹划,精细安排,用最少的资源去实现这个任务:二是资源的数量已定,如何利用、分配,使任务完成得最多。
前者是求极小,后者是求极大。
线性规划是在满足企业内、外部的条件下,实现管理目标和极值问题,就是要以尽少的资源输入来实现更多的社会需要的产品的产出。
现在通过专门的数学MATLAB 软件,只要将模型中的目标函数系数、约束条件系数、不等关系输入计算机,就会很快算出结果。
在生活实践中,很多重要的实际问题都是线性的(至少能够用线性函数很好的近似表示),所以我们一般把这些问题化为线性的目标函数和约束条件进行分析,通常将目标函数和约束都是线性表达式的规划问题称为线性规划。
它的一般形式是:),,2,1(0..min 221122222121112121112211n i x b x a x a x a b x a x a x a b x a x a x a t s x c x c x c f i m n mn m m n n n n nn=>=⎪⎪⎩⎪⎪⎨⎧<=+++<=+++<=++++++= 也可以用矩阵形式来表示:0,..min>=<==x b Ax t s x c f T线性规划的可行解是满足约束条件的解;线性规划的最优解是使目标函数达到最优的可行解。
线性规划关于解的情况可以是:1、无可行解,即不存在满足约束条件的解;2、有唯一最优解,即在可行解中有唯一的最有解;3、有无穷最优解,即在可行解中有无穷个解都可使目标函数达到最优;4、有可行解,但由于目标函数值无界而无最优解。
一般求解线性规划的常用方法是单纯形法和改进的单纯形法,这类方法的基本思路是先求得一个可行解,检验是否为最优解;若不是,可用迭代的方法找到另一个更优的可行解,经过有限次迭代后,可以找到可行解中的最优解或者判定无最优解。
应用Matlab 优化工具箱中的linprog 函数求解线性规划时模型要求为如下形式: ⎪⎩⎪⎨⎧≤≤=≤⋅M x x m x dx C b Ax .t .s xc min 其中:M x ,x ,m x 均为列向量,C ,A 为常数矩阵,d ,b ,c '为常数列向量。
函数调用格式如下:);xM ,xm ,d ,C ,b ,A ,c (linprog ]z ,x [= %决策变量有上下界,默认变量非负。
例1-38 用Matlab 求解下面线性规划问题1212121212max 1502102310034120..55150,0z x x x x x x s t x x x x =++≤⎧⎪+≤⎪⎨+≤⎪⎪≥⎩令z1= -zMATLAB 求解程序存为liti2.mc=[-150,-210];A=[2,3;3,4;5,5];b=[100;120;150];C=[];d=[];xm=[0;0];xM=10^10*[1;1];[x,z1]=linprog(c,A,b,C,d,xm,xM)Optimization terminated.在命令窗口键入liti2.m,按回车得最优解和最优值x =0.000030.0000z1 =-6.3000e+003故最优解为 x 1=0,x 2=30; 最优值为z=-z1=6300.通常在LINGO 中建立优化模型由MODEL 语句开始,由END 语句结束。
模型中包含四部分(即四段):集合(SETS )、数据段(DATA )、初始段(INIT )、目标和约束段。
(1) 集合段: 它是以 SETS 开始,ENDSETS 结束,其作用是定义所用集合变量及元素(数组的下标),以及相应的属性(数组)。
(2) 数据段:它是以 DA TA 开始,ENDDATA 结束,其作用是对集合段中定义的属性(数组)赋值(常数)。
数据之间用逗号分开或用空格分开。
(3) 初始段:它是以INIT 开始,ENDINTI 结束,其作用是对集合段中定义的属性(变量数组)赋迭代初值。
§ 15.利用Matlab求解线性规划问题线性规划是一种优化方法,Mat lab优化工具箱中有现成函数linprog对如下式描述的LP问题求解:% min f' x% s・t・(约束条件):Ax<=b% (等式约束条件):Aeqx=beq% lb<=x<=ub1 inprog函数的调用格式如下:x=l inprog (f, A, b)x=l inprog (f, A, b, Aeq, beq)x=l inprog (f, A, b, Aeq, beq, lb, ub)x=l inprog (f, A, b, Aeq, beq, lb, ub, xO)x=l inprog (f, A, b, Aeq, beq, lb, ub, xO, opt io ns)[x, fval]=linprog(--)[x, fval, exitflag]=linprog(…)[x, fval, exitf lag, out put ]=1 inprog (…)[x, fvalj exitflag, output, lambda] =1 inprog (…)其中:x=linprog (f, A, b)返回值x为最优解向量。
x=linprog (f, A, b, Aeq, beq)作有等式约束的问题。
若没有不等式约束,则A=[ ]、b=[ ] ox=linprog (f, A, b, Aeq, beq, lb, ub, xO, options)中]b , ub 为变量x 的下界和上界,xO为初值点,options为指定优化参数进行最小化。
Options的参数描述:Display显示水平。
选择'off'不显示输出;选择'Iter'显示每一步迭代过程的输出;选择'final'显示最终结果。
MaxFunEvals函数评价的最大允许次数Max it er最大允许迭代次数TolX x处的终止容限[x, fval]=linprog(•••)左端fval返回解x处的目标函数值。
用m a t l a b求解线性规划问题Company number:【0089WT-8898YT-W8CCB-BUUT-202108】实验四 用M A T L A B 求解线性规划问题一、实验目的: 了解Matlab 的优化工具箱,能利用Matlab 求解线性规划问题。
二、实验内容:线性规划的数学模型有各种不同的形式,其一般形式可以写为:目标函数: n n x f x f x f z +++= 2211m in约束条件: s n sn s s n n b x a x a x a b x a x a x a ≤+++≤+++221111212111这里nn x f x f x f z +++= 2211称为目标函数,j f 称为价值系数,T n f f f f ),,,(21 =称为价值向量,j x 为求解的变量,由系数ij a 组成的矩阵 称为不等式约束矩阵,由系数ij c 组成的矩阵 称为等式约束矩阵,列向量T n b b b b ),,,(21 =和T n d d d d ),,,(21 =为右端向量,条件0≥j x 称为非负约束。
一个向量Tn x x x x ),,,(21 =,满足约束条件,称为可行解或可行点,所有可行点的集合称为可行区域,达到目标函数值最大的可行解称为该线性规划的最优解,相应的目标函数值称为最优目标函数值,简称最优值。
我们这里介绍利用Matlab 来求解线性规划问题的求解。
在Matlab 中有一个专门的函数linprog()来解决这类问题,我们知道,极值有最大和最小两种,但求z 的极大就是求z -的极小,因此在Matlab 中以求极小为标准形式,函数linprog()的具体格式如下:X=linprog(f,A,b)[X,fval,exitflag,ouyput,lamnda]=linprog(f,A,b,Aeq,Beq,LB,UB,X0,options)这里X 是问题的解向量,f 是由目标函数的系数构成的向量,A 是一个矩阵,b 是一个向量,A ,b 和变量x={x1,x2,…,xn}一起,表示了线性规划中不等式约束条件,A ,b 是系数矩阵和右端向量。
封面作者:PanHongliang仅供个人学习桂林电子科技大学数学与计算科学学院实验报告实验室:实验日期:年月日x附录Ⅱ综合性、设计性实验报告格式桂林电子科技大学数学与计算科学学院综合性、设计性实验报告版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。
版权为潘宏亮个人所有This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliang's personal ownership.用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。
Users may use the contents or services of thisarticle for personal study, research or appreciation, andother non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。
第1篇一、实验背景随着科技的不断发展,数学实验在各个领域中的应用越来越广泛。
数学实验作为一种以计算机为工具,通过模拟、计算和验证等方法,对数学理论进行实践探索和研究的方法,已经成为数学研究的重要手段。
本次实验旨在通过数学实验,加深对数学理论的理解,提高数学应用能力,培养创新意识和团队协作精神。
二、实验目的1. 熟悉数学实验的基本方法,掌握数学实验的基本步骤。
2. 通过实验,加深对数学理论的理解,提高数学应用能力。
3. 培养创新意识和团队协作精神,提高自身综合素质。
三、实验内容本次实验主要包括以下内容:1. 实验一:线性方程组的求解通过编写程序,实现线性方程组的直接法、迭代法等求解方法,并对比分析各种方法的优缺点。
2. 实验二:矩阵运算实现矩阵的加法、减法、乘法、转置等基本运算,以及求逆矩阵、特征值和特征向量等高级运算。
3. 实验三:数值积分通过编写程序,实现定积分、变积分、高斯积分等数值积分方法,并分析各种方法的误差和适用范围。
4. 实验四:常微分方程的数值解法实现欧拉法、龙格-库塔法等常微分方程的数值解法,并对比分析各种方法的稳定性、精度和适用范围。
四、实验过程1. 确定实验内容,明确实验目的。
2. 设计实验方案,包括实验步骤、算法选择、数据准备等。
3. 编写实验程序,实现实验方案。
4. 运行实验程序,收集实验数据。
5. 分析实验数据,得出实验结论。
6. 撰写实验报告,总结实验过程和结果。
五、实验结果与分析1. 实验一:线性方程组的求解通过实验,验证了直接法和迭代法在求解线性方程组时的有效性。
直接法在求解大规模线性方程组时具有较好的性能,而迭代法在求解稀疏线性方程组时具有较好的性能。
2. 实验二:矩阵运算实验结果表明,矩阵运算的程序实现具有较高的精度和效率。
在实际应用中,可以根据具体需求选择合适的矩阵运算方法。
3. 实验三:数值积分通过实验,验证了各种数值积分方法的有效性。
高斯积分具有较高的精度,但在求解复杂函数时,需要调整积分区间和节点。
《最优化方法》实验报告实验序号:01 实验项目名称:线性规划及MATLAB应用《最优化方法》实验报告实验序号:02 实验项目名称:0.618黄金分割法的应用结果分析:根据以上结果可知,在区间[0,3]上,函数g(x)=x^3-2*x+1的最小值点在x=0.9271处,此时最小值为0。
第二题:P50 例题3.1程序:function [t,f]=golden3(a,b) %黄金分割函数的m文件t2=a+0.382*(b-a);f2=2*(t2)^2-(t2)-1;t1=a+0.618*(b-a); %按照黄金分割点赋值,更准确可直接算f1=2*(t1)^2-(t1)-1;while abs(t1-t2)>0.16; %判定是否满足精度if f1<f2a=t2;t2=t1;f2=f1;t1=a+0.618*(b-a);f1=2*(t1)^2-(t1)-1;elseb=t1;t1=t2;f1=f2;t2=a+0.382*(b-a);f2=2*(t2)^2-(t2)-1;endendt=(t1+t2)/2; %满足条件取区间中间值输出第四题:P64 T3程序:function [t,d]=newtow2(t0)t0=2.5;t=t0-(4*(t0)^3-12*(t0)^2-12*(t0)-16)/(12*(t0)^2-24*(t0)-12);k=1;T(1)=t;while abs(t-t0)>0.000005t0=t;t=t0-(4*(t0)^3-12*(t0)^2-12*(t0)-16)/(12*(t0)^2-24*(t0)-12); k=k+1;T(k)=t;endt1=t0;d=(t1)^4-4*(t1)^3-6*(t1)^2-16*(t1)+4;kTend运行结果:当x(0)=2.5当x(0)=3四.实验小结:1.通过这次实验,加深了对0.618法的理解。
2.在学习0.618法的过程中,又巩固了倒数、求解函数值等相关知识。
MATLAB数学实验报告姓名:李帆班级:机械(硕)21学号:2120104008第一次数学实验报告——线性规划问题一,实验问题1,某饲养场饲养动物出售,设每头动物每天至少需要700g蛋白质,30g矿物质,100mg 维生素。
现有五种饲料可供选择,各种饲料的每千克营养成分含量和单价如下表。
是确定既能满足动物生长的营养需要,游客是费用最省的选用饲料方案。
2,某工厂生产甲、乙、丙三种产品,单位产品所需工时分别为2、3、1个;单位产品所需原料分别为3、1、5公斤;单位产品利润分别为2、3、5元。
工厂每天可利用的工时为12个,可供应的原料为15公斤。
为使总利润为最大,试确定日生产计划和最大利润。
二,问题分析1,1)该题属于采用线性规划的方式求出最优解的数学问题。
该题有以下特点,1.目标函数有线性,是求目标函数的最小值;2.约束条件为线性方程组;3.未知变量都有非负限制。
1,2)求解该类问题的方法有图解法,理论解法和软件解法。
图解法常用于解变量较少的线性规划问题。
理论解法要构建完整的理论体系。
目前用于解线性规划的理论解法有:单纯形法,椭球算法等。
在此,我们采用单纯形法的MATLAB软件解法来求解该问题。
1,3)此题中,要求既要满足动物生长的营养需要,又要使费用最省,则使每种饲料的选用量为变量,以总费用的最小值为所求量,同时每种饲料的使用量要符合营养成分的要求。
1,4)在此,首先确定建立线性规划模型。
设饲料i选用量为xi公斤,i=1,2,3,4,5.则有模型:Minz=0.2x1+0.7x2+0.4x3+0.3x4+0.8x5s.t. {3x1+2x2+6x4+18x5>=700;x1+0.5x2+0.2x3+2x4+0.5x5>=300.5x1+x2+0.2x3+2x4+0.8x5>=100Xj>=0,j=1,2,3,4,5解之得:x1=x2=x3=0X4=39.74359X5=25.14603Zmin=32.435902, 1)该问题与第一题分析步骤相似,故只在此写出其线性规划模型Z=2x+3y+5z2x+3y+z<=123x+y+5z<=15三,程序设计流程图第一题:c=[0.2,0.7,0.4,0.3,0.8]A=[3,2,1,6,18;1,0.5,0.2,2,0.5;0.5,1,0.2,2,0.8;1,0,0,0,0;0,1 ,0,0,0;0,0,1,0,0;0,0,0,1,0;0,0,0,0,1]b=[700,30,100,0,0,0,0,0][x,fval]=linprog(c,-A,-b)c =0.2000 0.7000 0.4000 0.3000 0.8000A =3.0000 2.0000 1.0000 6.0000 18.00001.0000 0.5000 0.20002.0000 0.50000.5000 1.0000 0.2000 2.0000 0.80001.0000 0 0 0 00 1.0000 0 0 00 0 1.0000 0 00 0 0 1.0000 00 0 0 0 1.0000b =700 30 100 0 0 0 0 0Optimization terminated.x =0.0000-0.00000.000039.743625.6410fval =32.4359第二题c=[-2 -3 -5]A=[2 3 1;3 1 5]b=[12;15]lb=[0 0 0][x,Z,exitflag,output]=linprog(c,A,b,[],[],lb,[])将上述程序输入matlab。