线性规划VB求解2.doc

线性规划VB求解2.doc

ID:55754846

大小:36.50 KB

页数:7页

时间:2020-06-05

线性规划VB求解2.doc_第1页
线性规划VB求解2.doc_第2页
线性规划VB求解2.doc_第3页
线性规划VB求解2.doc_第4页
线性规划VB求解2.doc_第5页
资源描述:

《线性规划VB求解2.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Rem定义动态数组Dima()AsSingle,c()AsSingle,b()AsSingle,cb()AsSingleDimaa()AsSingle,cba()AsSingle,xcb()AsInteger,xb()AsIntegerDimmAsInteger,nAsInteger,lAsInteger,kAsInteger,ccAsInteger,cmAsInteger,kaAsIntegerDimqqAsSingle,ttAsSingle,zAsSinglePrivateSubCommand1_Click()Shown=Val(InputBox("请输入线性规划典范型方程变量的个数N=

2、?","输入数据",0))m=Val(InputBox("请输入线性规划典范型方程约束条件的个数M=?","输入数据",0))Rem给数组分配空间ReDima(0Tom+1,0Ton+2)ReDimaa(1Tom+1,1Ton+2)ReDimc(n)ReDimb(m)ReDimcb(m)ReDimcba(n)ReDimxcb(n)ReDimxb(m)Rem对线性规划约束方程增广矩阵A()进行归零计算Fori=0Tom+1Forj=0Ton+2a(i,j)=0NextjNextiRem输入线性规划约束方程系数矩阵A()Fori=1TomForj=1Tona(i,j)=Val(InputBox(

3、"请输入典范型方程约束条件矩阵的系数a("&Str(i)&","&Str(j)&"):","输入数据",0))NextjNextiRem输入线性规划约束方程右端常数B()Fori=1Tomb(i)=Val(InputBox("请输入典范型方程约束条件右端的常数b("&Str(i)&"):","输入数据",0))NextiRem把右端常数写入增广矩阵A()中Fori=1Toma(i,n+1)=b(i)NextiRem输入线性规划目标函数的系数C()Fori=1Tonc(i)=Val(InputBox("请输入典范型方程目标函数的系数c("&Str(i)&"):","输入数据",0))Nexti

4、Rem把目标函数的系数写入增广矩阵A()中Fori=1Tona(0,i)=c(i)NextiRem输入线性规划单纯形初始表中基变量在目标函数中的系数CB()Fori=1Tomcb(i)=Val(InputBox("请输入线性规划单纯形初始表中基变量在目标函数中的系数CB("&Str(i)&"):","输入数据",0))NextiRem把基变量目标函数的系数写入增广矩阵A()中Fori=1Toma(i,0)=cb(i)NextiRem记录基变量下标值Fori=1Tomxb(i)=Val(InputBox("请输入典范型方程第"&Str(i)&"行,基变量的下标:","输入数据",0))Next

5、iRem检验数的累积数归零并计算检验数Fori=1Toncba(i)=0NextiFori=1TonForj=1Tomcba(i)=cba(i)+a(j,0)*a(j,i)Nextja(m+1,i)=a(0,i)-cba(i)NextiRem计算目标函数值z=0Fori=1Tomz=z+a(i,0)*a(i,n+1)Nextia(m+1,n+1)=zRem打印增广矩阵A()Fori=0Tom+1Forj=0Ton+2Printa(i,j);NextjPrintNextiPrintRem判断所有检验数是否都小于等于零cc=0Fori=1TonIfa(m+1,i)<=0Thencc=cc+1En

6、dIfNextiRem统计检验数为零的个数cm=0Fori=1TonIfa(m+1,i)=0Thencm=cm+1EndIfNextiPrint"cc=";cc,"cm=";cmRem判断此单纯形表是否为最优单纯形表DoWhileccqqThenqq=a(m+1,i)l=iEndIfNextiPrintPrint"l=";l,Rem统计进基列上A(i,j)小于等于零的个数ka=0Fori=1TomIfa(i,l)<=0Thenka=ka+1EndIfNextiRem若各进基列上A(i,j)

7、全都小于等于零,则本线性规划有无界解Ifka=mThenPrint"本线性规划有无界解!"PrintExitDoEndIfRem计算比值θ并按最小比值准则确定出基行Fori=1TomIfa(i,l)>0Thena(i,n+2)=a(i,n+1)/a(i,l)EndIfNextitt=10000k=0Fori=1TomIfa(i,l)>0Anda(i,n+2)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。