运用matlab写出单纯形法代码,不列表格的单纯形法,值得一看
今天刚好写完了作业闲的没事干所以来分享一下代码:
这次是单纯形法的matlab代码,和常见的代码不是很一样,没有选主元的过程,虽然繁琐了一些但是写起代码来还是比较容易。
A matrix b列向量 c列向量
给大家一个这种单纯形法的例题感受一下:
是不是很有意思,所以我们来看代码:
function [x,z] = SM(A,b,c)
[m,n]=size(A);
fullA=zeros(m,m+n); %改变这几个矩阵的样式
fullA(:,1:n)=A;
fullA(:,n+1:n+m)=eye(m);
fullc=zeros(n+m,1);
fullc(1:n)=c;
JB=[n+1:n+m]; %构建JB和JD
B=fullA(:,JB);
JD=[1:n];
D=fullA(:,JD);
xB=zeros(n+m,1);
xB(JB)=inv(B)*b;
e=fullc(JD)'-fullc(JB)'*inv(B)*D;
[emin,k]=min(e);
while emin<0 %这里开始进入循环了嗷
jenter=JD(k);
y=inv(B)*fullA(:,JD(k));
Y=find(y>0);
X=xB(JB);
[smin,k1]=min(X(Y)./y(Y));
k1=Y(k1);
jleave=JB(k1);
v=find(JB==jleave);
JB(v:m-1)=JB(v+1:m);
JB(m)=jenter;
JB=sort(JB); %JB和JD互换后运用sort保证从大到小的形式
JD(k)=jleave;
JD=sort(JD);
B=fullA(:,JB);
D=fullA(:,JD);
xB=zeros(n+m,1);
xB(JB)=inv(B)*b;
e=fullc(JD)'-fullc(JB)'*inv(B)*D;
[emin,k]=min(e);
end
x=xB(1:n);
z=c'*x;
end
如果转载记得标明出处
这篇处女作来自AKA JNU秦霄贤
相声说得好,代码也不次!
运用matlab写出单纯形法代码,不列表格的单纯形法,值得一看相关推荐
- 优雅的写出 JavaScript 代码
目录 前言 避免使用 js 糟粕和鸡肋 编写简洁的 JavaScript 代码 使用 ES6/ES7 新特性 Babel ESLint Prettier 采用函数式编程 优雅的敲 JS 代码的几个原则 ...
- 哈哈哈,这个教人写出烂代码的项目在 GitHub 上火了...
如果说到什么是好代码,我们肯定都能说出一堆规则,例如使用一致的格式和缩进.使用清晰的变量名和方法名.在必要时提供文档与注释.不要过度精简代码等等. 但是对于什么是烂代码,你有比较清晰的认识吗? 在 G ...
- idea代码提示插件_IDEA 插件推荐 —— 让你写出好代码的神器!
概述 今天介绍的插件主要是围绕编码规范的.有追求的程序员,往往都有代码洁癖,要尽量减少代码的「坏味道」. 代码静态检查是有很多种类,例如圈复杂度.重复率等.业界提供了很多静态检查的插件来识别这些不合规 ...
- 写出漂亮代码的七种方法
首先我想说明我本文阐述的是纯粹从美学的角度来写出代码,而非技术.逻辑等.以下为写出漂亮代码的七种方法: 1.尽快结束 if 语句 例如下面这个JavaScript语句,看起来就很恐怖: functi ...
- 如何写出“简单“代码?
如何写出"简单"代码? 当你做实际开发中,你一定会发现有人跟你说,或者你在网上看:要写简单代码要写简单代码. 这句话其实就跟大家熟悉的设计模式中的简单(kiss)原则是挂钩的 ...
- 如何写出高性能代码(四)优化数据访问
同一份逻辑,不同人的实现的代码性能会出现数量级的差异: 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升:同一份代码,也可能在不同处理器上运行也会有几倍的性能差异:十倍程序员 ...
- 写出漂亮代码的45个小技巧
不知道大家有没有经历过维护一个已经离职的人的代码的痛苦,一个方法写老长,还有很多的if else ,根本无法阅读,更不知道代码背后的含义,最重要的是没有人可以问,此时只能心里默默地问候这个留坑的兄弟. ...
- 用R语言随机生成30个自然数, 然后把3的倍数的储存到一个向量,3k+1形式的数储存到另外一向量, 3k+2形式储存到第三个向量。写出R代码。
此篇博客主要讲述R语言的应用,随机生成30个自然数(范围0-100),存入向量x, 然后把3的倍数的储存到一个向量x1,3k+1形式的数储存到另外一向量x2, 3k+2形式储存到第三个向量x3.写出R ...
- java 拼 变量名_你还用拼音为变量命名?新人OIer别傻了,教你写出优质代码
本篇文章适用语言:python,c++,Java.(其实我就是随便bb) 我们在编辑代码的时候,不免拿其他人的代码进行学习,或者将自己的代码拿给别人修改.这个时候,如何让别人快速读懂你的代码,是提升效 ...
- 如何写出高性能代码(二)巧用数据特性
导语 同一份逻辑,不同人的实现的代码性能会出现数量级的差异: 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升:同一份代码,也可能在不同处理器上运行也会有几倍的性能差异:十倍程序 ...
最新文章
- 确保 PHP 应用程序的安全
- 编写自定义的AssertJ断言
- MSP430F5529 DriverLib 库函数学习笔记(十四)看门狗定时器 (WDT)
- 《统计学习方法》(李航)读书笔记(转)
- ubyntu 链接mysql_ubuntu mysql远程连接
- Leetcode-SingleNumberII
- (笔试题)和一半的组合数
- asp.net服务器端对话框控件的简单实现(附源码)
- php报表开发韩顺平,韩顺平从Html基础到php实战开发视频教程非常全面的一套PHP开发教程...
- 【名词解释】7.UML类图
- 如何在android上嵌入mupdf作为pdf阅读器
- 微软visio2013安装问题及解决过程
- 十大常用经典排序算法总结!!!
- 湘潭大学信息安全课作业答案1
- HOJ1056 Fishermen(区间问题、思维)
- 安卓手机管理_安卓手机会越用越卡?关闭这几个功能,还可以用三年
- mysql 1556_mysqldump: Got error: 1556: You can't use locks with log tables.
- Typora图床设置
- 手机厂商“卷”到了手腕上
- Kawasaki川崎机械手c#二次开发dll
热门文章
- 天津城市职业学院 计算机等级考试,2016上半年天津计算机等级考试考点地址电话...
- 好男人应该对女朋友做的十四件事
- C语言中结构体指针出现重定义,C语言结构体指针中包含结构体指针
- 斜坡函数有条长长的尾巴
- 创龙TI KeyStone C66x多核定点/浮点TMS320C6678 DSP开发板处理器、NAND FLASH、NOR FLASH
- 小天鹅XQB30-7型波轮全自动洗衣机控制系统分析
- UE4之局域网游戏如何更改配置文件
- omnipeek flags查询
- [Bug集合]ASSERTION FAILED Call to publish() on an invalid Publisher
- 在线问答与学科管理系统