单纯形法C程序源代码_精品文档Word文件下载.doc

上传人:b****2 文档编号:14115771 上传时间:2022-10-18 格式:DOC 页数:7 大小:22.50KB
下载 相关 举报
单纯形法C程序源代码_精品文档Word文件下载.doc_第1页
第1页 / 共7页
单纯形法C程序源代码_精品文档Word文件下载.doc_第2页
第2页 / 共7页
单纯形法C程序源代码_精品文档Word文件下载.doc_第3页
第3页 / 共7页
单纯形法C程序源代码_精品文档Word文件下载.doc_第4页
第4页 / 共7页
单纯形法C程序源代码_精品文档Word文件下载.doc_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

单纯形法C程序源代码_精品文档Word文件下载.doc

《单纯形法C程序源代码_精品文档Word文件下载.doc》由会员分享,可在线阅读,更多相关《单纯形法C程序源代码_精品文档Word文件下载.doc(7页珍藏版)》请在冰豆网上搜索。

单纯形法C程序源代码_精品文档Word文件下载.doc

/*存放出基与入基的变化情况*/

floatdelta[n];

/*存储检验数矩阵*/

floatx[n];

intnum[m];

/*用于存放出基与进基变量的情况*/

floatZB=0;

/*记录目标函数值*/

voidinput();

voidprint();

intdanchunxing1();

intdanchunxing2(inta);

voiddanchunxing3(inta,intb);

intdanchunxing1()

{

inti,k=0;

intflag=0;

floatmin=0;

for(i=0;

i<

n;

i++)

if(delta[i]>

=0)

flag=1;

else{flag=0;

break;

}

if(flag==1)

return-1;

if(min>

delta[i])

{min=delta[i];

k=i;

returnk;

intdanchunxing2(inta)

inti,k,j;

floatmin;

k=a;

m;

if(A[i][k]<

{printf("

\n该线性规划无最优解!

\n"

);

return-1;

if(A[i][k]>

0)

seta[i]=b[i]/A[i][k];

elseseta[i]=M;

min=M;

=seta[i])

{min=seta[i];

j=i;

num[j]=k+1;

CB[j]=C[k];

returnj;

voiddanchunxing3(intp,intq)

inti,j,c,l;

floattemp1,temp2,temp3;

c=p;

/*行号*/

l=q;

/*列号*/

temp1=A[c][l];

b[c]=b[c]/temp1;

for(j=0;

j<

j++)

A[c][j]=A[c][j]/temp1;

if(i!

=c)

if(A[i][l]!

{

temp2=A[i][l];

b[i]=b[i]-b[c]*temp2;

for(j=0;

A[i][j]=A[i][j]-A[c][j]*temp2;

}

temp3=delta[l];

delta[i]=delta[i]-A[c][i]*temp3;

voidprint()

inti,j=0;

printf("

\n--------------------------------------------------------------------------\n"

printf("

%8.2f\tX(%d)%8.2f"

CB[i],num[i],b[i]);

%8.2f"

A[i][j]);

\t\t\t"

%8.2f"

delta[i]);

voidinput()

inti,j;

/*循环变量*/

intk;

请输入方程组的系数矩阵A(%d行%d列):

m,n);

scanf("

%f"

&

A[i][j]);

\n请输入初始基变量的数字代码num矩阵:

%d"

num[i]);

\n请输入方程组右边的值矩阵b:

b[i]);

\n请输入目标函数各个变量的系数所构成的系数阵C:

C[i]);

delta[i]=C[i];

k=num[i]-1;

CB[i]=C[k];

voidmain()

intp,q,temp;

input();

\tCB\tXB\tb\t"

X(%d)\t"

i+1);

x[i]=0;

while

(1)

q=danchunxing1();

if(q==-1)

print();

\n所得解已经是最优解!

\n最优解为:

temp=num[j]-1;

x[temp]=b[j];

for(i=0;

x%d=%.2f"

i+1,x[i]);

ZB=ZB-x[i]*C[i];

ZB=%.2f"

ZB);

break;

p=danchunxing2(q);

\np=%d,q=%d"

p,q);

if(q==-1)break;

danchunxing3(p,q);

运行结果如下:

请输入方程组的系数矩阵A(3行5列):

12100

40010

04001

请输入初始基变量的数字代码num矩阵:

345

请输入方程组右边的值矩阵b:

81612

请输入目标函数各个变量的系数所构成的系数阵C:

-2-3000

--------------------------------------------------------------------------

CB 

XB 

X

(1) 

X

(2) 

X(3) 

X(4) 

X(5)

0.00 

8.00 

1.00 

2.00 

0.00

16.00 

4.00 

X(5) 

12.00 

1.00

-2.00 

-3.00 

p=2,q=1

-0.50

3.00 

0.25

0.75

p=0,q=0

-4.00 

2.00

-

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

当前位置:首页 > 工程科技 > 能源化工

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

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