matlab线性规划实验报告
- 格式:doc
- 大小:27.50 KB
- 文档页数:2
运行环境: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、有可行解,但由于目标函数值无界而无最优解。
一般求解线性规划的常用方法是单纯形法和改进的单纯形法,这类方法的基本思路是先求得一个可行解,检验是否为最优解;若不是,可用迭代的方法找到另一个更优的可行解,经过有限次迭代后,可以找到可行解中的最优解或者判定无最优解。
用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.转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。
《最优化方法》实验报告实验序号: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。
实验三 线性规划程序: linprogc=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6];A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900]; Aeq=[]; beq=[];vlb=[0;0;0;0;0;0]; vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)Exam5:function f=fun3(x);f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2实验目的2、掌握用数学软件包求解线性规划问题。
1、了解线性规划的基本内容。
例1 max 6543216.064.072.032.028.04.0x x x x x x z +++++= 85003.003.003.001.001.001.0..654321≤+++++x x x x x x t s 70005.002.041≤+x x 10005.002.052≤+x x 90008.003.063≤+x x 6,2,10 =≥j x jx0=[1;1];A=[2 3 ;1 4]; b=[6;5]; Aeq=[];beq=[]; VLB=[0;0]; VUB=[];[x,fval]=fmincon('fun3',x0,A,b,Aeq,beq,VLB,VUB)书 求下列非线性规划2221232212322123212223123min 8020..2023,,0x x x x x x x x x s t x x x x x x x +++⎧-+≥⎪++≤⎪⎪--+=⎨⎪+=⎪⎪≥⎩在Matlab 2013软件中输入如下程序: (i )编写M 文件fun1.m 定义目标函数function f=fun1(x); f=sum(x.^2)+8;(ii )编写M 文件fun2.m 定义非线性约束条件 function [g,h]=fun2(x); g=[-x(1)^2+x(2)-x(3)^2x(1)+x(2)^2+x(3)^3-20]; %非线性不等式约束 h=[-x(1)-x(2)^2+2x(2)+2*x(3)^2-3]; %非线性等式约束 (iii )编写主程序文件example2.m 如下:options=optimset('largescale','off');[x,y]=fmincon('fun1',rand(3,1),[],[],[],[],zeros(3,1),[], ... 'fun2', options)就可以求得当1230.5522 1.2033,,0.9478x x x ===时,最小值y =10.6511。
matlab实验报告实验报告:Matlab实验分析1. 实验目的本实验旨在通过Matlab软件完成一系列数值计算和数据分析的任务,包括绘制曲线、解方程、矩阵运算等,以加深对Matlab软件的理解和掌握。
2. 实验内容2.1 绘制函数曲线首先,我们通过在Matlab中输入函数的表达式来绘制函数曲线。
例如,我们可以输入y = sin(x)来绘制正弦函数的曲线。
另外,我们还可以设置曲线的颜色、线型和坐标轴范围等。
2.2 解方程接下来,我们使用Matlab来解方程。
对于一元方程,我们可以使用solve函数来求出方程的解。
例如,我们输入syms x; solve(x^2 - 2*x - 8)来解方程x^2 - 2x - 8 = 0。
而对于多元方程组,我们可以使用solve函数的向量输入形式来求解。
例如,我们输入syms x y; solve(x^2 + y^2 - 1, x - y - 1)来求解方程组x^2 + y^2 - 1 = 0和x - y - 1 = 0的解。
2.3 矩阵运算Matlab也可以进行矩阵运算。
我们可以使用矩阵相乘、相加和取逆等运算。
例如,我们可以输入A = [1 2; 3 4]和B = [5 6;7 8]来定义两个矩阵,然后使用A * B来计算它们的乘积。
3. 实验结果与分析在本实验中,我们成功完成了绘制函数曲线、解方程和矩阵运算等任务。
通过Matlab软件,我们可以快速、准确地进行数值计算和数据分析。
使用Matlab的高级函数和工具箱,我们可以更方便地处理复杂的数值计算和数据分析问题。
4. 实验总结通过本次实验,我们进一步加深了对Matlab软件的理解和掌握。
Matlab提供了丰富的函数库和工具箱,适用于各种不同的数值计算和数据分析任务。
在日常科研和工程实践中,Matlab是一个非常强大和方便的工具,可以帮助我们更高效地完成任务。