线性代数与simplex
线性方程组:
\(i:1-n\)
\(j:1-m\)
\({\begin{cases}a_{11}x_1+a_{12}x_2+a_{13}x_3+\cdots+a_{1n}x_n=b_1\\a_{21}x_1+a_{22}x_2+a_{23}x_3+\cdots+a_{2n}x_n=b_2\\~~~~\vdots~~~~~~~~~~~~\vdots~~~~~~~~~~~~\vdots~~~~~~~~~~\vdots~~~~~~~~~~\vdots~~~~~~~~~\vdots\\a_{m1}x_1+a_{m2}x_2+a_{m3}x_3+\cdots+a_{mn}x_n=b_m\end{cases}}\)
系数矩阵:方程组各项系数\((a_{ij})\)按顺序组成的矩阵\(A\)。
未知数矩阵:未知数\(x_i\)组成的列向量\(X\)。
常数项矩阵:等式右侧常数\((b_j)\)组成的矩阵\(B\)。
增广矩阵:系数矩阵最右侧补充一个常数项矩阵。
线性方程组与矩阵的一个关系:
设两个线性变换:
\({\begin{cases}y_1=a_{11}x_1+a_{12}x_2+a_{13}x_3\\y_2=a_{21}x_1+a_{22}x_2+a_{23}x_3\end{cases}}\)
\({\begin{cases}x_1=b_{11}t_1+b_{12}t_2\\x_2=b_{21}t_1+b_{22}t_2\\x_3=b_{31}t_1+b_{32}t_2\end{cases}}\)
那么\(y,t\)之间的关系的系数矩阵是
\(\left(\begin{matrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\end{matrix}\right)\times\left(\begin{matrix}b_{11}&b_{12}\\b_{21}&b_{22}\\b_{31}&b_{32}\end{matrix}\right)=\cdots\)
simplex:
\(1.\)建立系数矩阵,辅助松弛变量略过。
\(2.\)寻找\(b_l<0\)随机取,若无则\(return\),寻找\(a_{l,e}<0\)随机取,若无则无解,\(pivot(l,e)\),重复。
\(3.\)找\(max(c_e)\),小于0则结束,否则找\(min(b_l/a_{l,e})\),等于\(INF\)则解为\(INF\),然后\(pivot(l,e)\)。
注意:
\(1.ans+=c_e\times b_l\),\(c_e\)为变动前,\(b_l\)为变动后。
\(2.a_{l,e}\)变为倒数,\(e\)列其他为其相反数\(/a_{l,e}\)(原)。
\(3.\)其余相当于把\(a_{l,e}\)变成\(1\),\(e\)列其他变为\(0\)所做的高斯消元操作。
如何输出解:
\(1.i=1-n,id[i]=i\)
\(2.pivot(l,e)\)时\(swap(id[l+n],id[e])\)(不断记当前列和省略列是哪个变量)。
\(3.x_{id_{n+i}}=b_i\)所有的基变量的取值就是\(b\),非基变量的取值是\(0\)。
克拉默法则与线性方程组求解:
由\(AX=B\),得\(X=A^{-1}B\)
线性代数与simplex的更多相关文章
- 单纯形方法(Simplex Method)
最近在上最优理论这门课,刚开始是线性规划部分,主要的方法就是单纯形方法,学完之后做了一下大M算法和分段法的仿真,拿出来与大家分享一下.单纯形方法是求解线性规划问题的一种基本方法. 线性规划就是在一系列 ...
- 【BZOJ-3996】线性代数 最小割-最大流
3996: [TJOI2015]线性代数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1054 Solved: 684[Submit][Statu ...
- 斯坦福大学CS224d基础1:线性代数回顾
转自 http://blog.csdn.net/han_xiaoyang/article/details/51629242 斯坦福大学CS224d基础1:线性代数知识 作者:Zico Kolter ( ...
- 算法库:基础线性代数子程序库(Basic Linear Algebra Subprograms,BLAS)介绍
调试DeepFlow光流算法,由于作者给出的算法是基于Linux系统的,所以要在Windows上运行,不得不做大量的修改工作.移植到Windows平台,除了一些头文件找不到外,还有一些函数也找不到.这 ...
- 【BZOJ】【TJOI2015】线性代数
网络流/最小割/最大权闭合图 2333好开心,除了一开始把$500^2$算成25000……导致数组没开够RE了一发,可以算是一次AC~ 咳咳还是回归正题来说题解吧: 一拿到这道题,我就想:这是什么鬼玩 ...
- OpenGLES 怎样在十天内掌握线性代数 - 希望这是真的!
OpenGLES 怎样在十天内掌握线性代数 - 希望这是真的! 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&q ...
- MIT线性代数课程 总结与理解-第一部分
概述 个人认为线性代数从三个角度,或者说三个工具来阐述了线性关系,分别是: 向量 矩阵 空间 这三个工具有各自的一套方法,而彼此之间又存在这密切的联系,通过这些抽象出来的工具可以用来干一些实际的活,最 ...
- 线性代数-矩阵-【1】矩阵汇总 C和C++的实现
矩阵的知识点之多足以写成一本线性代数. 在C++中,我们把矩阵封装成类.. 程序清单: Matrix.h//未完待续 #ifndef _MATRIX_H #define _MATRIX_H #incl ...
- 线性代数-矩阵-【2】矩阵生成 C和C++实现
矩阵的知识点之多足以写成一本线性代数. 所以我们把矩阵的运算封装成矩阵类.以C++为主进行详解. 点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Lia ...
随机推荐
- [Training Video - 3] [Groovy in Detail] Non-static and Static variables, objects and object referances
log.info "starting" // we use class to create objects of a class Planet p1 = new Planet() ...
- zigbee组播通信原理
组播: 在zigbee网络里面,把网络节点标记为组的方式来进行通信:发送模块如果发送的组号和网络里标记模块的组号相对应,那么这些模块就可以拿到这些无线数据包. 特点: 1.分组中组的编号有两个字节. ...
- HTML的DOM树结构
在面试连续跪了两轮后,我觉得两个月的前端白学了.主要的原因是学而不思,知识是零散的,并没有组织起来.于是,我决定从今天起,复习并总结一下前端的知识点. 一般的网页浏览者看到的是网页的整体外观,前端开发 ...
- HttpContext.Current.Session[strName]未将对象引用设置到对象的实例
项目开发是在4.5.1上,不知道为啥客户提供的服务器上安装的是4.5,差别不大也没去升级,然后部署MVC的时候web.config报错 <system.web> <compilati ...
- 【转载】Mysql中的Btree与Hash索引比较
转载地址:http://www.jb51.net/article/62533.htm 这篇文章主要介绍了Mysql中的Btree与Hash索引比较,本文起讲解了B-Tree 索引特征.Hash 索引特 ...
- SpringMVC源码解读 - HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化
AbstractDetectingUrlHandlerMapping是通过扫描方式注册Handler,收到请求时由AbstractUrlHandlerMapping的getHandlerInterna ...
- select、poll、epoll的比较
linux提供了select.poll.epoll接口来实现IO复用,三者的原型如下所示,本文从参数.实现.性能等方面对三者进行对比. int select(int nfds, fd_set *rea ...
- mysql复制表以及复制数据库
(一)将旧表复制到新表 1.CREATE TABLE新表 SELECT* FROM旧表; 该语句只是复制表结构以及数据,它不会复制与表关联的其他数据库对象,如索引,主键约束,外键约束,触发器等. CR ...
- el判断字符串是否为空
${empty 值} 返回true ,表示为空字符串; 在EL中empty对""和null的处理都返回true,而==null对""返回false,对null ...
- windows中卸载Jenkins
背景: 之前安装的Jenkins没有pipeline选项,可能是之前安装时没有选择建议插件.后面使用最新版本时还是没有插件 解决: 卸载Jenkins,删除掉C:\Users\用户名\.jenkins ...