已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Rem 定义动态数组Dim a() As Single, c() As Single, b() As Single, cb() As SingleDim aa() As Single, cba() As Single, xcb() As Integer, xb() As IntegerDim m As Integer, n As Integer, l As Integer, k As Integer, cc As Integer, cm As Integer, ka As IntegerDim qq As Single, tt As Single, z As SinglePrivate Sub Command1_Click()Shown = Val(InputBox(请输入线性规划典范型方程变量的个数 N=?, 输入数据, 0)m = Val(InputBox(请输入线性规划典范型方程约束条件的个数 M=?, 输入数据, 0)Rem 给数组分配空间ReDim a(0 To m + 1, 0 To n + 2)ReDim aa(1 To m + 1, 1 To n + 2)ReDim c(n)ReDim b(m)ReDim cb(m)ReDim cba(n)ReDim xcb(n)ReDim xb(m)Rem 对线性规划约束方程增广矩阵A()进行归零计算For i = 0 To m + 1 For j = 0 To n + 2 a(i, j) = 0 Next jNext iRem 输入线性规划约束方程系数矩阵A()For i = 1 To m For j = 1 To n a(i, j) = Val(InputBox(请输入典范型方程约束条件矩阵的系数 a( & Str(i) & , & Str(j) & ):, 输入数据, 0) Next jNext iRem 输入线性规划约束方程右端常数B()For i = 1 To m b(i) = Val(InputBox(请输入典范型方程约束条件右端的常数 b( & Str(i) & ):, 输入数据, 0)Next iRem 把右端常数写入增广矩阵A()中For i = 1 To m a(i, n + 1) = b(i)Next iRem 输入线性规划目标函数的系数C()For i = 1 To n c(i) = Val(InputBox(请输入典范型方程目标函数的系数 c( & Str(i) & ):, 输入数据, 0)Next iRem 把目标函数的系数写入增广矩阵A()中For i = 1 To n a(0, i) = c(i)Next iRem 输入线性规划单纯形初始表中基变量在目标函数中的系数CB()For i = 1 To m cb(i) = Val(InputBox(请输入线性规划单纯形初始表中基变量在目标函数中的系数CB( & Str(i) & ):, 输入数据, 0)Next iRem 把基变量目标函数的系数写入增广矩阵A()中For i = 1 To m a(i, 0) = cb(i)Next iRem 记录基变量下标值For i = 1 To m xb(i) = Val(InputBox(请输入典范型方程第 & Str(i) & 行,基变量的下标:, 输入数据, 0)Next iRem 检验数的累积数归零并计算检验数For i = 1 To n cba(i) = 0Next iFor i = 1 To n For j = 1 To m cba(i) = cba(i) + a(j, 0) * a(j, i) Next j a(m + 1, i) = a(0, i) - cba(i)Next iRem 计算目标函数值z = 0For i = 1 To m z = z + a(i, 0) * a(i, n + 1)Next ia(m + 1, n + 1) = zRem 打印增广矩阵A()For i = 0 To m + 1 For j = 0 To n + 2 Print a(i, j); Next j PrintNext iPrintRem 判断所有检验数是否都小于等于零cc = 0For i = 1 To n If a(m + 1, i) = 0 Then cc = cc + 1 End IfNext iRem 统计检验数为零的个数cm = 0For i = 1 To n If a(m + 1, i) = 0 Then cm = cm + 1 End IfNext iPrint cc=; cc, cm=; cmRem 判断此单纯形表是否为最优单纯形表Do While cc qq Then qq = a(m + 1, i) l = i End If Next i Print Print l=; l, Rem 统计进基列上A(i,j)小于等于零的个数 ka = 0 For i = 1 To m If a(i, l) 0 Then a(i, n + 2) = a(i, n + 1) / a(i, l) End If Next i tt = 10000 k = 0 For i = 1 To m If a(i, l) 0 And a(i, n + 2) tt Then tt = a(i, n + 2) k = i End If Next i Print k=; k Print Rem 进行初等行变换时,对临时数组归零计算 For i = 1 To m + 1 For j = 1 To n + 2 aa(i, j) = 0 Next j Next i Rem 确定枢轴元素,进行初等行变换 oo = a(k, l) For i = 1 To n + 1 aa(k, i) = a(k, i) / oo Next i For i = 1 To m If i k Then For j = 1 To n + 1 aa(i, j) = a(i, j) + a(k, j) * (-a(i, l) Next j End If Next i Rem 把临时数组AA()的数据写到增广矩阵A()中去 For i = 1 To m + 1 For j = 1 To n + 2 a(i, j) = aa(i, j) Next j Next i a(k, 0) = a(0, l) xb(k) = l Rem 检验数的累积数归零并计算检验数 For i = 1 To n cba(i) = 0 Next i For i = 1 To n For j = 1 To m cba(i) = cba(i) + a(j, 0) * a(j, i) Next j a(m + 1, i) = a(0, i) - cba(i) Next i Rem 计算目标函数值 z = 0 For i = 1 To m z = z + a(i, 0) * a(i, n + 1) Next i a(m + 1, n + 1) = z Rem 判断所有检验数是否都小于等于零 cc = 0 For i = 1 To n If a(m + 1, i) m Then Print 本线性规划有多重最优解! Print 线性规划的最优值为: End IfEnd If Rem 打印线性规划的解和目标函数值For i = 1 To m Print X( & Str(xb(i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 调试维护合同范本
- 转账限额合同范本
- 货梯大修合同范本
- 货物定做合同范本
- 货车合作合同范本
- 购买马桶合同范本
- 购壁挂炉合同协议
- 购房合同去名协议
- 购房正式合同范本
- 文库发布:Goodbye-Mr.-Fos教学课件
- 第13课 清前中期的兴盛与危机
- 体质健康成绩测试全自动化计算模板
- 提高剪力墙混凝土成型质量-QC课题课件
- 宣传广告制作定点供应商采购方案(技术方案)
- 安装发光字验收单
- 电磁兼容性评估报告
- 员工管理规章制度实施细则
- 贵州大型图书馆工程监理大纲鲁班奖
- GB/T 33084-2016大型合金结构钢锻件技术条件
- 【公开课课件】大班科学垃圾找家
- 第15课《故乡》说课课件(共19张ppt) 部编版语文九年级上册
评论
0/150
提交评论