单纯形算法matlab代码
今天介绍一下对偶单纯形算法求解线性规划问题的matlab代码:
function [ X, Z] = dual( A, B, C ,D)
% 单纯形法的实现
% X: 目标函数的最优解
% Z: 目标函数的极小值
% A: 约束函数的系数矩阵
% B: 约束函数的常数列向量
% C: 目标函数的系数向量
% D: 求最大值为1,求最小值为0
% E: 将B,A拼接成新的矩阵
flag = 1;
S=0;
Z=0;
[m, n] = size(A);
W=ones(m,1);
Q=[A B];
BIndex = n - m + 1 : n; % 基向量下标集合,确定初始可行基if D==0 %如果求最小值将C取反C=-C;endif (n < m)disp('系数矩阵不符合要求!')else if rank(A)<rank(B)disp('原问题无可行解!')elsewhile flagCb = C(BIndex); % 基矩阵对应的目标值bZj = (Cb)*A;Rj =C-Zj; %Rj即为单纯形表中的σj,计算判别数X = zeros(1, n);%Bif B>=0 %此种情况为最优解情况for i=1:mX(BIndex(i))=B(i);endfor i=1:nZ=Z+(C(i)*X(i));endflag = 0;fprintf('迭代次数为:%d\n',S);disp('已找到最优解:')S=0;break;elseS=S+1;[~, k2]=min(B); %获得换出基变量的位置%Rj //此处为代码调试点for i=1:nif A(k2,i)>=0F(1,i)=inf;elseF(1,i)=Rj(1,i)/A(k2,i);endend%F[~, k1] = min(F); %获得换入基变量的位置%k1 //此处为代码调试 %A //此处为代码调试点%B //此处为代码调试点BIndex(k2)=k1; %新的基变量E=[B,A]; %B,A合成一个新的矩阵% E //此处为代码调试点%A //此处为代码调试点E(k2,:)=E(k2,:)/E(k2,k1+1); %将A中k2行,除于A中k2行,k1列;for i=1:m %更新Eif(i==k2)continue;endwhile(1)E(i,:)= E(i,:)-E(i,k1+1)*E(k2,:);%将E进行初等行换,将主元素所在列其余元素变为0if(E(i,k1+1)==0)break;endendB=E(1:m,1); %E拆开A=E(1:m,2:n+1);%继续进行下一步循环,直到flag被修改为1endendendend
end
这是我的作业,调试效果较好
单纯形算法matlab代码相关推荐
- dst matlab,DSTcode DST跟踪算法MATLAB代码,复杂环境中仿多目标 实现的单 Other systems 其他 272万源代码下载- www.pudn.com...
文件名称: DSTcode下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 82 KB 上传时间: 2017-03-17 下载次数: 0 提 供 者: Mar ...
- dijkstra算法matlab代码_头脑风暴优化(BSO)算法(附MATLAB代码)
BSO讲解https://www.zhihu.com/video/1252605855767736320 B站搜索:随心390,同步观看视频 各位小伙伴可在闲鱼搜索 优化算法交流地,即可搜索到官方闲鱼 ...
- AHP算法MATLAB代码
AHP算法MATLAB代码 使用方法(详情请看这个视频的2P) 数学建模算法之层次分析法详解 代码如下 (1)构造判断矩阵A (2)将下文代码复制粘贴到Matlab中即可 例如: A=[1 3 5;0 ...
- 【物理应用】内联全息图外推算法matlab代码
1 简介 内联全息图外推算法matlab代码 2 部分代码 close allclear all% addpath('C:/Program Files/MATLAB/R2010b/myfiles') ...
- matlab中gad,10大经典算法matlab代码以及代码详解【数学建模、信号处理】
[实例简介] 10大算法程序以及详细解释,包括模拟退火,禁忌搜索,遗传算法,神经网络.搜索算法. 图论. 遗传退火法.组合算法.免疫算法. 蒙特卡洛.灰色预测.动态规划等常用经典算法.是数学建模.信号 ...
- a*算法matlab代码_NSGAII多目标优化算法讲解(附MATLAB代码)
小编今天为大家讲解NSGA-II多目标优化算法,提到多目标优化,大家可能第一个就想到NSGA-II算法,今天小编就带领大家解开NSGA-II的神秘面纱. NSGA-II全称是快速非支配排序遗传算法,这 ...
- a*算法matlab代码_10分钟带你入门MATLAB
10分钟带你快速入门MATLABhttps://www.zhihu.com/video/1234089282815188992 前一段时间我发现有些小伙伴MATLAB基础比较薄弱,今天我来让各位小 ...
- 粒子群算法matlab代码实例使用与参数解读(二维数据)
粒子群算法与matlab代码实例使用 粒子群算法介绍 粒子群算法使用场景 粒子群的优缺点 实例编程分析 代码分析 参数分析 更多应用场景 在网络中有很多的博客都已经粒子群算法的算法本质讲解的非常清晰明 ...
- 多目标优化算法matlab代码大合集
[NSGA2]基于NSGA2算法求解多目标优化问题Matlab源码2 [水母搜索优化器算法]基于水母搜索优化器算法求解多目标优化问题(JellyfishSearchOptimizer,JSO)[粒子群 ...
最新文章
- OpenLayers学习笔记2——坐标转换问题
- C++radix sort基数排序的实现算法之一(附完整源码)
- android jni开发方式
- 云+X案例展 | 民生类:浪潮云打卡人间仙境张家界
- Mysql 学习之 SQL的执行顺序
- 7-1 堆栈操作合法性 (15 分)
- C语言嵌入汇编指令(asm)查询系统时间
- a.hashCode() 有什么用?与 a.equals(b)有什么关系?
- JSLint说“缺少基数参数”
- Windows 驱动开发 - 5
- 【论文阅读】Rich feature hierarchies for accurate object detection and semantic segmentation
- 程序员相亲图鉴,太真实了!
- GB35114-SIP部分技术预研
- Typora超级纯净免费记笔记软件分享给大家
- cerebro 通过https访问ES docker集群
- Ubuntu下编译VeraCrypt
- Jetson Nano | darknet (yolov3.4-tiny)摄像头实时检测
- 最常用的 Linux 命令都不会,你怎么敢去面试?
- [超详细] Git 远程仓库及回滚日志操作
- C语言实现,输入某年某月某日,判断这一天是这一年的第几天?