2实验1 单纯形法求解线性规划.docx

上传人:b****1 文档编号:12466767 上传时间:2023-04-19 格式:DOCX 页数:13 大小:16.39KB
下载 相关 举报
2实验1 单纯形法求解线性规划.docx_第1页
第1页 / 共13页
2实验1 单纯形法求解线性规划.docx_第2页
第2页 / 共13页
2实验1 单纯形法求解线性规划.docx_第3页
第3页 / 共13页
2实验1 单纯形法求解线性规划.docx_第4页
第4页 / 共13页
2实验1 单纯形法求解线性规划.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

2实验1 单纯形法求解线性规划.docx

《2实验1 单纯形法求解线性规划.docx》由会员分享,可在线阅读,更多相关《2实验1 单纯形法求解线性规划.docx(13页珍藏版)》请在冰豆网上搜索。

2实验1 单纯形法求解线性规划.docx

2实验1单纯形法求解线性规划

实验1单纯形法求解线性规划

成绩

专业班级学号姓名报告日期2012.4.5

实验类型:

●验证性实验○综合性实验○设计性实验

实验目的:

进一步熟练掌握单纯形法求解线性规划。

实验内容:

单纯形法求解线性规划4个

实验原理线性规划单纯形法(线性规划解有四种情形,唯一最优解,无穷多个最解,无界解,无可行解)

实验步骤

1要求上机实验前先编写出程序代码

2编辑录入程序

3调试程序并记录调试过程中出现的问题及修改程序的过程

4经反复调试后,运行程序并验证程序运行是否正确。

5记录运行时的输入和输出。

预习编写程序代码:

实验报告:

根据实验情况和结果撰写并递交实验报告。

参考程序

(1)实验原理

(a)当所有sgma<=0,并且基变量中没有人工变量,非基变量的sgnm均不为0,此时方程对应的唯一解

(b)当所有的sgma<=0,并且基变量中没有人工变量,非基变量中有sgma=0的,此时方程对应的无穷多解

(c)当所有的sgma<=0,并且基变量中有人工变量,此时方程对应的是无可行解情况

(d)存在一个变量的sgma>0,并且p<0,则此时对应方程为无界解

(二)编写程序代码

function[xx,b,fm,sgma,AA,flg]=myprgmh(m1,m,n,A,b,c)

%单纯形法求解性规划函数。

默认标准型人工变量在最前、剩余变量在后构成基本量;

%m1人工变量的个数;m基变量的个数;n所有变量的个数;

%A约束方程的系数矩阵;

%b约束方程右端列向量;输出b基变量的值;

%c目标函数的系数。

cb基变量的系数

%输出xx为基变量的下标;

%fm输出目标函数的值;

%flg表示解得四种情况;

B0=A(:

1:

m);%B0初始可行基矩阵(单位矩阵);

cb=c(:

1:

m);

xx=1:

m;%xx变量的下标;

sgma=c-(cb*B0)*A;%sgma检验数;

h=-1;

sta=ones(m,1);

fori=1:

n

ifsgma(i)>0

h=1;

end

end

vv=0;

whileh>0

[msg,mk]=max(sgma);

fori=1:

m

ifA(i,mk)>0

sta(i)=b(i)/A(i,mk);

else

sta(i)=10000;

end

end

[mst,mr]=min(sta);

ifmst==10000

flg='unboundedsolution';

fm=inf;

xx=[];

b=[];

h=-1;

vv=1;

AA=[];

else

zy=A(mr,mk)

fori=1:

m

ifi==mr

forj=1:

n

A(i,j)=A(i,j)/zy;

end

b(i)=b(i)/zy;

else

end

end

fori=1:

m

ifi~=mr

amk=A(i,mk);

b(i)=b(i)-amk*b(mr);

forj=1:

n

A(i,j)=A(i,j)-amk*A(mr,j);

end

else

end

A;

B1=A(:

1:

m);%B1新基的逆矩阵;

cb(mr)=c(mk);

xx(mr)=mk;

sgma=c-cb*A;

h=-1;

fori=1:

n

ifsgma(i)>0

h=1;

end

end

end

cb

b

fm=sum(cb*b);

if(h==-1)&(vv~=1)

vv=0;

fori=1:

m

ifxx(i)<=m1

vv=vv+2;

end

end

ifvv>=2;

flg='nofeasibel';

xx=[];

fm=[];

b=[];

vv=1;

AA=[];

end

ifvv~=1

AA=A;

ss=size(find(sgma))

ww=ss

(2)

ifww==n-m

flg='Thereisonlyonesolution';

else

flg='Therearemanysolutions';

end

end

end

end

end

end

(1)

>>m1=0

m1=

0

>>m=3

m=

3

>>n=5

n=

5

>>A=[10012;01040;00104]

A=

10012

01040

00104

>>b=[8;16;12]

b=

8

16

12

>>c=[00023]

c=

00023

>>[xx,b,fm,sgma,AA,flg]=myprgmh(m1,m,n,A,b,c)

zy=

4

cb=

003

b=

2

16

3

 

zy=

1

 

cb=

203

b=

2

8

3

zy=

2

cb=

203

b=

4

4

2

ss=

12

ww=

2

 

xx=

435

b=

4

4

2

fm=

14

sgma=

-1.5000-0.1250000

AA=

00.250001.00000

-2.00000.50001.000000

0.5000-0.1250001.0000

 

flg=

Thereisonlyonesolution有唯一解

>>m1=0

m1=

0

>>m=2

m=

2

>>n=4

n=

4

>>A=[10-11;01-0.51]

A=

1.00000-1.00001.0000

01.0000-0.50001.0000

>>b=[1;2]

b=

1

2

>>c=[0022]

c=

0022

>>[xx,b,fm,sgma,AA,flg]=myprgmh(m1,m,n,A,b,c)

xx=

[]

b=

[]

fm=

Inf

sgma=

0022

AA=

[]

flg=

unboundedsolution无界解

>>m1=2

m1=

2

>>m=2

m=

2

>>n=6

n=

6

>>A=[101-1-10;01-310-1]

A=

101-1-10

01-310-1

>>b=[0;3]

b=

0

3

>>c=[-1000-10001100]

c=

-1000-10001100

>>[xx,b,fm,sgma,AA,flg]=myprgmh(m1,m,n,A,b,c)

zy=

1

 

cb=

-10001

 

b=

3

3

 

xx=

[]

 

b=

[]

fm=

[]

sgma=

0-1-19960-1000-999

AA=

[]

flg=

nofeasibel无可行解

 

>>m1=0

m1=

0

>>m=2

m=

2

>>n=5

n=

5

>>A=[10-113;0112410]

A=

10-113

0112410

>>b=[20;90]

b=20

90

>>c=[00-5513]

c=

00-5513

>>[xx,b,fm,sgma,AA,flg]=myprgmh(m1,m,n,A,b,c)

zy=

3

cb=

130

b=

6.6667

23.3333

zy=

0.3333

cb=

50

 

b=

20.0000

10.0000

 

ss=

12

 

ww=

2

xx=

42

b=

20.0000

10.0000

fm=

100.0000

sgma=

-5000-2

AA=

1.00000-1.00001.00003.0000

-4.00001.000016.00000-2.0000

flg=

Therearemanysolutions有无穷解

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1