实 验 报 告实验题目: 单纯形法的 matlab 实现 学生姓名: 学 号: 实验时间: 2025-4—15 一.实验名称: 单 纯形法的 MATLAB 实现 二.实验目的及要求:1
了解单纯形算法的原理及其 matlab 实现
运用 MATLAB 编辑单纯形法程序解决线性规划的微小化问题, 求出最优解及目标函数值
三.实验内容:1
单纯形方法原理: 单纯形方法的基本思想, 是从一个基本可行解出发, 求一个使目标函数值有所改善的基本可行解; 通过不断改进基本可行解, 力图达到最优基本可行解
对问题 其中 A 是一个 m×n 矩阵, 且秩为 m, 为 n 维行向量, 为 n 维列向量, 为 m 维非负列向量
符号“”表示右端的表达式是左端的定义式, 即目标函数的具体形式就是
记令=(B,N), B 为基矩阵, N 为非基矩阵, 设是基本可行解, 在处的目标函数值,其中是中与基变量对应的重量组成的 m 维行向量; 是 中与非基变量对应的重量组成的 n—m 维行向量
现由基本可行解出发求解一个改进的基本可行解
设是任一可行解, 则由得到, 在点处的目标函数值, 其中 R 是非基变量下标集,
单纯形方法计算步骤: 首先给定一个初始基本可行解, 设初始基为 B, 然后执行下列主要步骤: (1)解, 求得, 令, 计算目标函数值
(2)求单纯形乘子, 解, 得到
对于所有非基变量, 计算判别数
若, 则对于所有非基变量, 对应基变量的判别数总是为零, 因此停止计算, 现行基本可行解是最优解
否则, 进行下一步
(3)解, 得到, 若, 即的每个重量均非正数, 则停止计算, 问题不存在有限最优解
否则进行步骤(4)
(4)确定下标 r, 使x =, 为离基变量, 为进基变量
用替换, 得到新的基矩阵 B, 返回步骤(1)