今天刚好写完了作业闲的没事干所以来分享一下代码:

这次是单纯形法的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写出单纯形法代码,不列表格的单纯形法,值得一看相关推荐

  1. 优雅的写出 JavaScript 代码

    目录 前言 避免使用 js 糟粕和鸡肋 编写简洁的 JavaScript 代码 使用 ES6/ES7 新特性 Babel ESLint Prettier 采用函数式编程 优雅的敲 JS 代码的几个原则 ...

  2. 哈哈哈,这个教人写出烂代码的项目在 GitHub 上火了...

    如果说到什么是好代码,我们肯定都能说出一堆规则,例如使用一致的格式和缩进.使用清晰的变量名和方法名.在必要时提供文档与注释.不要过度精简代码等等. 但是对于什么是烂代码,你有比较清晰的认识吗? 在 G ...

  3. idea代码提示插件_IDEA 插件推荐 —— 让你写出好代码的神器!

    概述 今天介绍的插件主要是围绕编码规范的.有追求的程序员,往往都有代码洁癖,要尽量减少代码的「坏味道」. 代码静态检查是有很多种类,例如圈复杂度.重复率等.业界提供了很多静态检查的插件来识别这些不合规 ...

  4. 写出漂亮代码的七种方法

    首先我想说明我本文阐述的是纯粹从美学的角度来写出代码,而非技术.逻辑等.以下为写出漂亮代码的七种方法: 1.尽快结束 if 语句 例如下面这个JavaScript语句,看起来就很恐怖:  functi ...

  5. 如何写出“简单“代码?

    如何写出"简单"代码? 当你做实际开发中,你一定会发现有人跟你说,或者你在网上看:要写简单代码要写简单代码.    这句话其实就跟大家熟悉的设计模式中的简单(kiss)原则是挂钩的 ...

  6. 如何写出高性能代码(四)优化数据访问

      同一份逻辑,不同人的实现的代码性能会出现数量级的差异: 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升:同一份代码,也可能在不同处理器上运行也会有几倍的性能差异:十倍程序员 ...

  7. 写出漂亮代码的45个小技巧

    不知道大家有没有经历过维护一个已经离职的人的代码的痛苦,一个方法写老长,还有很多的if else ,根本无法阅读,更不知道代码背后的含义,最重要的是没有人可以问,此时只能心里默默地问候这个留坑的兄弟. ...

  8. 用R语言随机生成30个自然数, 然后把3的倍数的储存到一个向量,3k+1形式的数储存到另外一向量, 3k+2形式储存到第三个向量。写出R代码。

    此篇博客主要讲述R语言的应用,随机生成30个自然数(范围0-100),存入向量x, 然后把3的倍数的储存到一个向量x1,3k+1形式的数储存到另外一向量x2, 3k+2形式储存到第三个向量x3.写出R ...

  9. java 拼 变量名_你还用拼音为变量命名?新人OIer别傻了,教你写出优质代码

    本篇文章适用语言:python,c++,Java.(其实我就是随便bb) 我们在编辑代码的时候,不免拿其他人的代码进行学习,或者将自己的代码拿给别人修改.这个时候,如何让别人快速读懂你的代码,是提升效 ...

  10. 如何写出高性能代码(二)巧用数据特性

    导语 同一份逻辑,不同人的实现的代码性能会出现数量级的差异: 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升:同一份代码,也可能在不同处理器上运行也会有几倍的性能差异:十倍程序 ...

最新文章

  1. 确保 PHP 应用程序的安全
  2. 编写自定义的AssertJ断言
  3. MSP430F5529 DriverLib 库函数学习笔记(十四)看门狗定时器 (WDT)
  4. 《统计学习方法》(李航)读书笔记(转)
  5. ubyntu 链接mysql_ubuntu mysql远程连接
  6. Leetcode-SingleNumberII
  7. (笔试题)和一半的组合数
  8. asp.net服务器端对话框控件的简单实现(附源码)
  9. php报表开发韩顺平,韩顺平从Html基础到php实战开发视频教程非常全面的一套PHP开发教程...
  10. 【名词解释】7.UML类图
  11. 如何在android上嵌入mupdf作为pdf阅读器
  12. 微软visio2013安装问题及解决过程
  13. 十大常用经典排序算法总结!!!
  14. 湘潭大学信息安全课作业答案1
  15. HOJ1056 Fishermen(区间问题、思维)
  16. 安卓手机管理_安卓手机会越用越卡?关闭这几个功能,还可以用三年
  17. mysql 1556_mysqldump: Got error: 1556: You can't use locks with log tables.
  18. Typora图床设置
  19. 手机厂商“卷”到了手腕上
  20. Kawasaki川崎机械手c#二次开发dll

热门文章

  1. 天津城市职业学院 计算机等级考试,2016上半年天津计算机等级考试考点地址电话...
  2. 好男人应该对女朋友做的十四件事
  3. C语言中结构体指针出现重定义,C语言结构体指针中包含结构体指针
  4. 斜坡函数有条长长的尾巴
  5. 创龙TI KeyStone C66x多核定点/浮点TMS320C6678 DSP开发板处理器、NAND FLASH、NOR FLASH
  6. 小天鹅XQB30-7型波轮全自动洗衣机控制系统分析
  7. UE4之局域网游戏如何更改配置文件
  8. omnipeek flags查询
  9. [Bug集合]ASSERTION FAILED Call to publish() on an invalid Publisher
  10. 在线问答与学科管理系统