实验二:MATLAB编程单纯形法求解
单纯形法matlab

数学软件与实验数学与信息科学学院信息与计算科学单纯形法的Matlab程序如下:function [xx,fm]=myprgmh(m,n,A,b,c)B0=A(:,1:m);cb=c(:,1:m);xx=1:n;sgm=c-cb*B0^-1*A;h=-1;sta=ones(m,1);for i=m+1:nif sgm(i)>0h=1;endendwhile h>0[msg,mk]=max(sgm);for i=1:msta(i)=b(i)/A(i,mk);end[mst,mr]=min(sta);zy=A(mr,mk);for i=1:mif i==mrfor j=1:nA(i,j)=A(i,j)/zy;endb(i)=b(i)/zy;endendfor i=1:mif i~=mrfor j=1:nA(i,j)=A(i,j)-A(i,mk)*A(mr,j);endb(i)=b(i)-A(i,mk)*b(mr);endendB1=A(:,1:m);cb(mr)=c(mk);xx(mr)=mk;sgm=c-cb*B1*A;for i=m+1:nif sgm(i)>0h=1;endendendfm=c*xx;例题:编写下列求解如下线性规划问题的单纯形法函数min f'xs.t ax<=b(其中b>=0)函数形式function [x,fval,it,op]=singl(f,a,b) 输出中x为最优解fval为最优值it为迭代次数无最优解op=0有最优解op=1编写程序如下:function [x,fval,it,op]=singl(f,a,b)[m,n]=size(a);c=[a eye(m) b;f' zeros(1,m+1)];fval=0;x=zeros(m+n,1);op=1;it=0;e=zeros(1,m);lie=find(f<0);l=length(lie);while(l>0)for j=1:ld=find(c(:,lie(j)));d_l=length(d);if d_l>0for i=1:mif c(i,lie(j))>0e(i)=c(i,end)/c(i,lie(j));elsee(i)=inf;endend[g,h]=min(e);for w=1:m+1if w==hc(w,:)=c(w,:)/c(h,lie(j));elsec(w,:)=c(w,:)-c(h,:)*c(w,lie(j))/c(h,lie(j));endendit=it+1;elseop=0;endendlie=find(c(end,:)<0);l=length(lie);endfor i=1:(m+n)ix=find(c(:,i));if(length(ix)==1)&(ix<=m)&(c(ix,i)==1) x(i)=c(ix,end)elsex(i)=0endendfval=-c(end,end);。
单纯形法MATLAB程序(线性与非线性规划大作业)

单纯形法程序整理.txt [hB,lB]=size(B);%测算B的行、列数 for j=1:hB if(A(B(j,1),B(j,2))~=1)%如果主元不为1,将对应行除以主元化为1 A(B(j,1),:)=A(B(j,1),:)/A(B(j,1),B(j,2)); end for i=1:hA%将其他元化为零 if(i==B(j,1)) continue; end A(i,:)=A(i,:)-A(B(j,1),:)*A(i,B(j,2)); end end end %————————————————% %% 子程序-选主元 function [r,s]=SubFc_XuanZhuYuan(TableK,h,l) %选主元素 % 选出表矩阵TableK中的主元素 %% 选列主元 t=0; for i=1:l if(TableK(h+1,i)<=t) t=TableK(h+1,i);%记录判别数最小值 s=i;%记录下标 end end if(t==0) error('判别数全为正'); end %% 选行主元 for i=1:h%检查元素是否为负,并赋予t初值 if(TableK(i,s)>0) t=TableK(i,l+1)/TableK(i,s); break; end if(i==h)%若元素全为负,则报错 error('主列元素全为非正,规划问题有无界解!'); end end %k=1; for i=1:h %若未知数出现负值,则是初始迭代标准性表产生的,应更换初始主元; if(TableK(i,l+1)<0) error('b向量出现负值,更换初始主元'); end if(TableK(i,s)<=0)%排除A表负元素 continue; end if(TableK(i,l+1)/TableK(i,s)<=t) t=TableK(i,l+1)/TableK(i,s);%记录判别数最小值 r=i;%记录下标 end end %补充判据 k=1; 第 2 页
Matlab单纯形法

• 线性规划问题 • 解决这一问题我们用的是linprog函数,linprog 函数求的是最小值,线性规划是求最大,所以 要在目标函数前加一个负号. • x = linprog( c , A , b , Aeq , beq , lb , ub , x0 )是求 解线性规划问题的命令。 • c是目标函数的系数向量,A是不等式约束 AX<=b的系数矩阵,b是不等式约束AX<=b的常 数项,Aeq是等式约束AeqX=beq的系数矩阵, beq是等式约束AeqX=beq的常数项,lb是X的下 限,ub是X的上限,X是向量[x1,x2,...xn]即决策 变量。
Matlab单纯形法
• 运行matlab会显示三个窗口,分别是变量窗 口,命令窗口和历史窗口。 • 在命令窗口中出现命令提示符 “>>”,就 可以输入命令,按回车键完成运算。 • 命令窗口的说明: • 1.在命令中,空格不参与运算。 • 2.几条命令可以写在同一行,用逗号隔开。 • 3.在命令窗口中不能返回到前面的命令行 进行修改后在重新执行。
• 如果模型中不包含不等式约束条件,可用 []代替A和b表示缺省;如果没有等式约 束条件,可用[]代替Aeq和beq表示缺省; 如果某个xi无下界或上界,可以设定lb(i) =-inf或ub(i)=inf; 用[x , Fval]代替上述各命令行中左边的x, 则可得到在最优解x处的b中,用[1 2 3]表示行向量;[1;2;3] 表示列向量;[1 2 3;4 5 6;7 8 9]表示矩阵。 • 矩阵按行输入,元素之间用空格或“,” 隔开,行与行之间用“;”隔开。 • 特殊命令创建矩阵a=[m:q:n],m是起始值;n 是终止值;q是增量。如a=[1:2:13] • 特殊矩阵建立:eye创建一个单位矩阵,如 eye(4);ones创建一个元素全是1的矩阵,如 ones(1,4);zeros创建一个全是0的矩阵,如 zeros(1,4).
实验二:MATLAB编程单纯形法求解

北京联合大学实验报告项目名称:运筹学专题实验报告学院:自动化专业:物流工程班级: 1201B 学号:2012100358081 姓名:管水城成绩:2015 年 5 月 6 日实验二:MATLAB 编程单纯形法求解一、实验目的:(1)使学生在程序设计方面得到进一步的训练;,掌握Matlab (C 或VB)语言进行程序设计中一些常用方法。
(2)使学生对线性规划的单纯形法有更深的理解. 二、实验用仪器设备、器材或软件环境 计算机, Matlab R2006三、算法步骤、计算框图、计算程序等本实验主要编写如下线性规划问题的计算程序:⎩⎨⎧≥≥≤0,0..min b x b Ax t s cx 其中初始可行基为松弛变量对应的列组成. 对于一般标准线性规划问题:⎩⎨⎧≥≥=0,0..min b x b Ax t s cx1.求解上述一般标准线性规划的单纯形算法(修正)步骤如下:对于一般的标准形式线性规划问题(求极小问题),首先给定一个初始基本可行解。
设初始基为B,然后执行如下步骤: (1).解B Bx b=,求得1B x B b -=,0,N B B x f c x ==令计算目标函数值 1(1,2,...,)i m B b i -=i 以b 记的第个分量(2).计算单纯形乘子w,BwB C =,得到1B wC B -=,对于非基变量,计算判别数1i i i B i i z c c B p c σ-=-=-,可直接计算σ=1B A c c B --令max{}k i Rσσ∈=,R 为非基变量集合若判别数0k σ≤ ,则得到一个最优基本可行解,运算结束;否则,转到下一步 (3).解k kBy p =,得到1k k y B p -=;若0k y ≤,即k y 的每个分量均非正数, 则停止计算,问题不存在有限最优解,否则,进行步骤(4).确定下标r,使{}:0min ,0t rrktktk b b tk y y t y y >=>且rB x 为离基变量,,r k B x p k 为进基变量,用p 替换得到新的基矩阵B,还回步骤(1);2、计算框图为:图1 3.计算程序(Matlab):A=input('A=');b=input('b=');c=input('c=');format rat%可以让结果用分数输出[m,n]=size(A);E=1:m;E=E';F=n-m+1:n;F=F';D=[E,F]; %创建一个一一映射,为了结果能够标准输出X=zeros(1,n); %初始化Xif(n<m) %判断是否为标准型fprintf('不符合要求需引入松弛变量')flag=0;elseflag=1;B=A(:,n-m+1:n); %找基矩阵cB=c(n-m+1:n); %基矩阵对应目标值的cwhile flagw=cB/B; %计算单纯形乘子,cB/B=cB*inv(B),用cB/B的目的是,为了提高运行速度。
单纯形法MATLAB程序

单纯形法(Mat lab程序)%%单纯形法(Mat lab程序)a= input (' input the major matrix A '); b=input (' input the matrix b '); n=input C input the judgement ');%%为计数器(确定循环次数)萨0;while g<40%%确定非负alength=max(size(n));blength二max(size(b));m=0;for i=l:alength辻n(i)〉=0m二m+1;endend;if m==alengthx=b;breakend;%%找Ks二min(n);for i=l:alengthif n(i) ==sk二i;breakend;end;%%a[i,k]的非负性m=0;for i=l:blengthif a(i, k)<0m二m+1;end;end;if m==blengthdisp('x does not exit');judge二1;breakend;%%找L确定主元cc=100000;for i=l:blengthif a (i, k) >0if(b(i)/a(i, k))<cccc=b(i)/a(i, k);endend end; for i=l:blengthif a(i, k)~=0if (b(i)/a(i, k))==cc1二i;breakendend end; %%计算,a 标准化zu=a(l, k); aa=a; for i=l:1-1 for j=l:alength aa(i, j)=a(i, j)-a(l, j)*a(i, k)/a(l, k);end end; for i=l+l:blengthfor j=l :alength aa(i, j)=a(i, j)-a(l, j)*a(i, k)/a(l, k);end end; for j=l:alengthaa(l, j)=a(l, j)/zu; end;%%b 勺判别bb=b; bb(l)=b(l)/zu;for i=l: 1~1 bb(i)=b(i)~b⑴*a(i, k)/a(l, k);end;for i=l+l:blength bb(i)二b(i)-b(l)*a(i, k)/a(l, k);end;b二bb; %%确定判别数tt 二n;for j=l:alength11 (j) =n(j)-a(1, j)*n(k)/a(1, k) ; end; n=tt;a=aa;%%显示单纯形表sa sa二[b' aa;0 n];dispC单纯表示例’);disp(g+1);disp(sa);g二g+l;judge=2;end;if judge==2q二0; result=zeros (alength, 2); for j=l+q:alengthif n(j)=0 t=a(:, j) ; zu=find( t) ; resu lt( j, l)=j ; result (j, 2)=x(zu) ; q 二q+1 ;endif n(j)>0 result(j,l)=q+l; q=q+l;endend;dispC最优解’);disp (result);dispC循环次数');end。
实验二:MATLAB编程单纯形法求解

北京联合大学实验报告工程名称:运筹学专题实验报告学院:自动化专业:物流工程班级:1201B 学号:姓名:管水城成绩:2021 年 5 月 6 日 实验二:MATLAB 编程单纯形法求解一、实验目的:(1)使学生在程序设计方面得到进一步的训练;,掌握Matlab (C 或VB)语言进展程序设计中一些常用方法。
(2)使学生对线性规划的单纯形法有更深的理解. 二、实验用仪器设备、器材或软件环境 计算机, Matlab R2006三、算法步骤、计算框图、计算程序等本实验主要编写如下线性规划问题的计算程序:⎩⎨⎧≥≥≤0,0..min b x b Ax t s cx 其中初始可行基为松弛变量对应的列组成. 对于一般标准线性规划问题:⎩⎨⎧≥≥=0,0..min b x b Ax t s cx 1.求解上述一般标准线性规划的单纯形算法〔修正〕步骤如下: 对于一般的标准形式线性规划问题(求极小问题),首先给定一个初始根本可行解。
设初始基为B,然后执行如下步骤: (1).解B Bx b=,求得1Bx B b -=,0,N B B x f c x ==令计算目标函数值 1(1,2,...,)i m B b i -=i 以b 记的第个分量(2).计算单纯形乘子w, B wB C =,得到1B wC B -=,对于非基变量,计算判别数1i i i B i i z c c B p c σ-=-=-,可直接计算σ=1B A c c B --令max{}k i Rσσ∈=,R 为非基变量集合假设判别数0k σ≤ ,那么得到一个最优根本可行解,运算完毕;否那么,转到下一步(3).解k k By p =,得到1k k y B p -=;假设0k y ≤,即k y 的每个分量均非正数, 那么停顿计算,问题不存在有限最优解,否那么,进展步骤(4).确定下标r,使{}:0min ,0t rrktktk b b tk y y t y y >=>且rB x 为离基变量,,r k B x p k 为进基变量,用p 替换得到新的基矩阵B,还回步骤(1);2、计算框图为:⎭⎬⎫⎩⎨⎧>=0|min ik ik i rk ry y b y b图13.计算程序(Matlab):A=input('A=');b=input('b='); c=input('c=');format rat %可以让结果用分数输出 [m,n]=size(A);E=1:m;E=E'; F=n-m+1:n;F=F';D=[E,F]; %创立一个一一映射,为了结果能够标准输出 X=zeros(1,n); %初始化Xif (n<m) %判断是否为标准型 fprintf('不符合要求需引入松弛变量') flag=0; elseflag=1;B=A(:,n-m+1:n); %找基矩阵cB=c(n-m+1:n); %基矩阵对应目标值的c while flagw=cB/B; %计算单纯形乘子,cB/B=cB*inv(B),用cB/B 的目的是,为了提高运行速度。
单纯形法的matlab编程

单纯形法的matlab实现首先输入三个值系数矩阵A目标函数系数行向量C列向量b根据大M法进行扩列A,C,b.使得行数不变,列数增加M 进行的到基向量的坐标,非基变量的坐Cb,Cn,Xb,Xn,此时的值便是典式,不在需要进行进一步化简,只需求解检验变量delta的值迭代过程输入上一步得到A,C,b,Cb,Cn,Xb,Xn,输出值为最优解为X,得到目标函数的最优解Z的值迭代循化用while循环当找到解时结束循环break或者当发现循化结果没有最优解时跳出循环,这里涉及两个判断,两个判断量初始值都可以写在循环外,两者的值共同决定循环的执行与否循化最开始进行判断初始可行解是否为最最优解,若是直接跳出循化,若上面的判断不成立,接下来进行下一个判断,若不符合进行下面入基和出基变量的选值入基和出基变量的循化是两次循化,第一次找到k的值,第二次根据上一次的k找r的值注意因为值有约束,而且是找函数最小值,需要对这个列向量进行变换一下将小于等于0的都变成无穷大,接下来进形下一次的循化,进而找到转轴元将A,b,delta合成一个新的矩阵,进行旋转变化,得到值后反变回相应的值,接下来需要对Xb,Xn的值进行交换这个步骤要两个循环,第一个循化对Ark的所在行进行变化,接下来进行对整个矩阵进行行变换,包括两种情况,两次循化嵌套分别是r==1时和r~=1的时候建立总体X的坐标列向量发生交换时出基变量找Xb,入基变量从X中找有先后顺序先解决Xn的变化。
在解决Xb的值直接解决基变量其他为0A=input('输入系数矩阵\n');b=input('输入列向量b\n');C=input('输入目标函数行向量\n');M=5200;global m;global n;global X;[m,n]=size(A);I=eye(m);A=[A,I];Xb=[];Xn=[];for i=1:mC(i+n)=-M;Xb(i)=n+i;endXb=Xb';Cb=C(1,n+1:n+m);for i=1:nXn(i)=i;endXn=Xn';X=[Xn;Xb];[m,n]=size(A);diedai(A,C,b,Cb,Xb);function[Z]=diedai(A,C,b,Cb,Xb)delta=C-Cb*A;global m;global n;global X;while1s2=0;s1=0;for j=1:nif delta(j)>0s1=1;for i=1:mif A(i,j)>0s2=1;endendendendif s1==0disp('目标函数最优解')Z=Cb*b;disp(Z)disp('基变量为');[Xb,index]=sort(Xb);disp(Xb)b=b(index);disp('基可行解为');disp(b)break;endif s2==0disp('目标函数无界,无最优解');break;end[~,k]=max(delta);p=A(:,k);zhuan=[];for i=1:mzhuan(i)=b(i)/p(i);if zhuan(i)<=0zhuan(i)=inf;endend[~,r]=min(zhuan);b(m+1)=0;Z=[A;delta];Z=[Z,b];z=Z;ark=A(r,k);for j=1:n+1Z(r,j)=Z(r,j)/ark;endif r==1for i=2:m+1for j=1:n+1Z(i,j)=Z(i,j)-z(i,k)*Z(r,j);endendelse for i=[1:r-1,r+1:m+1]for j=1:n+1Z(i,j)=Z(i,j)-z(i,k)*Z(r,j);endendendA=Z(1:m,1:n);delta=Z(m+1,1:n);b=Z(1:m,n+1);Cb(r)=C(k);Xb(r)=X(k);endend。
单纯形算法实验报告

x disp('输出线性规划问题的最优值') minf case 0 %有可行解但没有最优值 disp('输出可行解对应的单纯形表') optmatrx disp('输出可行解') x disp('输出线性规划问题的最优值') minf case -1 %没有可行解 disp('没有可行解') disp('输出最优解对应的单纯形表') optmatrx=[] disp('输出最优解') x=[] disp('输出线性规划问题的最优值') minf=-inf end
1 0 0 s = 2 1 0 0 >> dcxsf() 请输入约束中的系数矩阵 A=[-1 0 1 0 0;0 1 0 1 0;-1 2 0 0 1] 请输入约束中的常数向量 b=[4 3 8] 请输入目标函数中的系数向量 c=[-2 -5 0 0 0] i= 1 j= 3 输入的约束中的常数向量b为单行矩阵,已将其转化为单列矩阵 有可行解但没有最优值 flag =
end end A1(x1,1)=i; %将列数既对应的非基变量转换为基变量 decide=find(g1(1,[1:m+n])>0); %再进行查找 end if g1(1,s1)>0 %无解情况 flag=-1; end if g1(1,s1)==0 g1(1,:)=[]; for i6=1:m A(:,n+1)=[]; end for i6=1:m c(n+1)=[]; end decide=find(A1(1:m,1)>n); %查找是否有人工变量 if ~isempty(decide) while ~isempty(decide) x1=decide(1); %存放的是人工变量的行数 text=find(A(x1,1:n)~=0); %该行的所有元素都不为零的列坐标 if isempty(text) decide(1)=[]; A1(x1,:)=[]; A(x1,:)=[]; m=m-1; else i=text(1); %i保存的是列数 A(x1,:)=A(x1,:)/A(x1,i); A1(x1,1)=i; c(1,:)=c(1,:)+(-1*c(1,i)*A(x1,:)); for i1=1:m if i1~=x1 A(i1,:)=A(i1,:)+(-1*A(i1,i)*A(x1,:));
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京联合大学
实验报告
项目名称:运筹学专题实验报告
学院:自动化专业:物流工程
班级: 1201B 学号:************* 姓名:管水城成绩:
2015 年 5 月 6 日
实验二:MATLAB 编程单纯形法求解
一、实验目的:
(1)使学生在程序设计方面得到进一步的训练;,掌握Matlab (C 或VB)语言进行程序设计中一些常用方法。
(2)使学生对线性规划的单纯形法有更深的理解. 二、实验用仪器设备、器材或软件环境 计算机, Matlab R2006
三、算法步骤、计算框图、计算程序等
本实验主要编写如下线性规划问题的计算程序:
⎩⎨
⎧≥≥≤0
,0..min b x b Ax t s cx 其中初始可行基为松弛变量对应的列组成. 对于一般标准线性规划问题:
⎩⎨
⎧≥≥=0
,0..min b x b Ax t s cx 1.求解上述一般标准线性规划的单纯形算法(修正)步骤如下:
对于一般的标准形式线性规划问题(求极小问题),首先给定一个初始基本可行解。
设初始基为B,然后执行如下步骤: (1).解
B Bx b
=,求得
1
B x B b -=,0,N B B x f c x ==令计算目标函数值 1(1,2,...,)i m B b i -=i 以b 记的第个分量
(2).计算单纯形乘子w,
B
wB C =,得到1
B w
C B -=,对于非基变量,计算判别
数1i i i B i i z c c B p c σ-=-=-,可直接计算σ
=1
B A c c B --令
max{
}k i R
σσ
∈=,R 为非基变量集合
若判别数0k σ≤ ,则得到一个最优基本可行解,运算结束;否则,转到下一步 (3).解
k k
By p =,得到
1
k k y B p -=;若0k y ≤,即k y 的每个分量均非正数, 则停止计算,问题不存在有限最优解,否则,进行步骤(4).确定下标r,使
{
}:0
min ,0
t r
rk
tk
tk b b tk y y t y y >=>且r
B x 为离基变量,
,r k B x p k 为进基变量,用p 替换得到新的基矩阵B,还回步骤(1)
;
2、计算框图为:
图1 3.计算程序(Matlab):
A=input('A=');
b=input('b=');
c=input('c=');
format rat%可以让结果用分数输出
[m,n]=size(A);
E=1:m;E=E';
F=n-m+1:n;F=F';
D=[E,F]; %创建一个一一映射,为了结果能够标准输出
X=zeros(1,n); %初始化X
if(n<m) %判断是否为标准型
fprintf('不符合要求需引入松弛变量')
flag=0;
else
flag=1;
B=A(:,n-m+1:n); %找基矩阵
cB=c(n-m+1:n); %基矩阵对应目标值的c
while flag
w=cB/B; %计算单纯形乘子,cB/B=cB*inv(B),用cB/B的目的是,为了提高运行速度。
panbieshu=w*A-c %计算判别数,后面没有加分号,就是为了计算后能够显示出来。
[z,k]=max(panbieshu); % k作为进基变量下标。
fprintf('b''./(B\\A(:,%d))为',k);
b'./(B\A(:,k))
if(z<0.000000001)
flag=0; %所有判别数都小于0时达到最优解。
fprintf(' 已找到最优解!\n');
xB=(B\b')';
f=cB*xB';
for i=1:n
mark=0;
for j=1:m
if (D(j,2)==i)
mark=1;
X(i)=xB(D(j,1)); %利用D找出xB与X之间的关系。
end
end
if mark==0
X(i)=0; %如果D中没有X(i),则X(i)为非基变量,所以X(i)=0。
end
end
fprintf('基向量为:'); X
fprintf('目标函数值为:') ; f
else
if(B\A(:,k)<=0) % 如果B\A(;,k)中的每一个分量都小于零。
flag=0;
fprintf(' \n 此问题不存在最优解!\n'); %若B\A(:,k)的第k列均不大于0,则该问题不存在最优解。
else
b1=B\b';
temp=inf;
for i=1:m
if ((A(i,k)>0) && (b1(i)/(A(i,k)+eps))<temp ) temp=b1(i)/A(i,k); %找退基变量
r=i;
end
end
fprintf('x(%d)进基,x(%d)退基\n',k,D(r,2)); %显示进基变量和退基变量
B(:,r)=A(:,k);
cB(r)=c(k); %确定进基退基变量后,相应的基矩阵及新基对应的目标值的c也相应改变
D(r,2)=k; %改变D中的映射关系
end
end
end
end
程序保存为danchunxin.m文件
四.数值实验及其结果:
打开matlab软件,点击运行danchunxin.m,出现命令符要求输入相应矩阵命令。
1.求解:
输入数据矩阵如下:
A=[9 4 1 0 0;4 5 0 1 0;3 10 0 0 1]
b=[360 200 300]
c=[-7 -12 0 0 0]
点击运行得如下图:
图2
由实验结果可知,该问题的最优解为:x1=100,x2=0,x3=540,x4=200,x5=0,最大值为700。
2.求解:
输入数据矩阵如下:
A=[-3 -2 -1 -6 -18 1 0;-1 -0.5 -0.2 -2 -0.5 0 1;0.5 1 0.2 2 0.8 0 0] b=[-700 -30 200]
c=[2 7 4 9 5 0 0]
点击运行得如下图:
图3
由实验结果可知,该问题的最优解为:
x1=15200/33,x2=0,x3=0,x4=0,x5=1250/33,x6=0,最小值为:1235/3。
3.求解:
输入数据矩阵如下:
A=[1 -2 1 1 0;4 -1 -2 0 1;-2 0 1 0 0]
b=[11 -3 1]
c=[3 -1 -1 0 0]
点击运行得如下图:
图4
由实验结果可知,该线性问题不存在最优解。
五.实验总结
通过该实验,加深了对线性规划问题的理解,并加深了将实际问题进行数学建模转化为可利用MATLAB软件处理的线性规划问题,通过使用该软件,能充分的将复杂的线性规划问题通过编写程序实现相应的逻辑求解线性规划问题,在实际操作过程中,大大的减少了线性规划问题的运算的复杂性。
编写函数程序代码是遇到了很多问题,但在老师的帮助下,逐一的解决了,为进行下面的实验奠定了一定的基础。