线性代数与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 ...
随机推荐
- [JSON] Validating/Asserting JSON response with Jsonlurper
import groovy.json.JsonSlurper def response = messageExchange.response.responseContent log.info &quo ...
- Excel 常用快捷键
Excel 常用快捷键 1. 移动整列 使用Shift快捷键可以快速移动整列:选中该列,当鼠标变成十字箭头时,按住Shift键,然后将该列移动到想要的位置. 2 绝对引用 使用F4快捷键可以快速设置绝 ...
- 安装CentOS 6.4 64 位操作系统
1.安装 CentOS 6.4 64位操作系统的一些困境: 1.1 CentOS 6.4 64位操作系统的ISO文件有4G多,通过U盘安装的方式已经不可取(FAT32 只支持最大4G文件); 1.2 ...
- C#延迟执行
借鉴于该篇博客:http://kb.cnblogs.com/page/42581/ 先看两个方法 public class YieldClasses { public static IEnumerab ...
- LinqPad介绍,下载,用法说明
介绍一款用于Linq运算和测试的工具,LinqPad.我感觉这个工具非常优秀,不只是功能上优秀,在使用上也非常优秀,让我爱不释手. LinqPad官方地址:http://www.linqpad.net ...
- Web图片编辑控件发布-Xproer.ImageEditor
版权所有 2009-2014 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com 产品首页:http://www.ncmem.com/webplug/image-e ...
- 【小梅哥FPGA进阶教程】第十三章 四通道数字电压表
十三.四通道数字电压表 本文由山东大学研友袁卓贡献,特此感谢 实验目的 设计一个四通道的数字电压表 实验平台 芯航线FPGA核心板.AD/DA模块 实验现象 实现一个四通道的数字电压表,其中可以用按键 ...
- LightOJ 1044 Palindrome Partitioning(简单字符串DP)
A palindrome partition is the partitioning of a string such that each separate substring is a palind ...
- Delphi webbrowser 的一些方法
因为一个任务,最近几天一直在研究Webbrowser的相关功能,下面是收集到的一些方法 //根据URL获取请求Headerfunction GetAllHeaders(URL: string): st ...
- HBase介绍 (1)---数据模型
http://blog.csdn.net/heyutao007/article/details/5766896 BigTable是什么?Google的Paper对其作了充分的说明.字面上看就是一张大表 ...