在实际生产生活中,需要我们解大量的线性方程组,例如是有探测、线性规划、电路等,这里我们便从理论角度建立一套解决线性方程组的体系。

线性方程组:

形如下面形式的方程组称为线性方程组。

回想起解决二元线性方程组我们的处理方法,本质上就是高斯消元法的个例,在解决多元线性方程组的时候,我们使用的便是高斯消元法.

探求线性方程组的解情况以及解线性方程组是线性代数核心要解决的问题。

然而为了更好的简化运算过程,我们确定每个方程中xi的位置,仅仅关注线性方程组的系数,因此这里自然的引入的矩阵:

这里我们便完成了一步简单但是非常重要的工作,系数矩阵的引入将线性方程组的运算放在了矩阵运算,于是研究线性方程组的解法就和矩阵的一系列性质变得密不可分。

矩阵的行初等变换是高斯消元算法的基础。结合上文关于矩阵的引入,我们要时刻关注另外的一个视角看矩阵——它表征一个线性方程组。容易看到,对于线性方程组做出上述的三个变化,线性方程组的解空间是没有发生变化的,因此矩阵本身表征的意义就没有发生变化。

既然引入了工具,就应该更好的为我们用高斯消元解线性方程组做出更好的铺垫。我们再来看几个概念:

(注:这里的先导元素指的是每一行第一个非零元素。)

依然从线性方程组的角度审视这个阶梯型矩阵,我们看到,再次将其转化成线性方程组的时候,线性方程组变得非常容易解,对于有解的情况,我们能够从最下面一行确定1个变量,然后依次向上确定其余变量值,不仅如此,在阶梯型矩阵的基础上,判断是否有解也十分方便,具体如何判断将在后面详细给出。

最简阶梯型矩阵的意义与阶梯型矩阵一致,但计算上会带来一定的便捷,因此在后面处理线性方程组的时候,采取的策略都是将线性方程组的增广矩阵通过行初等变换变成最简阶梯型矩阵。

上文我们说对于一个线性方程组的增广矩阵,基于它的最简阶梯型形式,非常容易得到解集,因此下面很有必要做的工作就是,如何将一个矩阵化简成最简行阶梯型矩阵。

为了论述的方便,首先给出下面关于主元位置、主元列的定义:

这是我们再以线性方程组的角度审视最简阶梯型矩阵,将主元位置的变量视为基本变量,其余位置的变量视为自由变量,我们就可以将线性方程组的解系表达出来。

基于最简阶梯型矩阵,容易得到如下的关于线性方程组的解情况的定理。

不谈严谨的充要性证明我们简单的理解,依然用线性方程组的角度去审视最简阶梯型矩阵,如果最右侧是主元列,则出现0=1的情况,显然无解。而对于有解的两种情况,其正确性也很显然。

综合一下上面论述的内容,我们得到了下面应用行化简算法解线性方程组的算法:

Step1:写出方程组的增广矩阵。

Step2:应用航化简算法把增广矩阵化为阶梯型,确定方程组是否有解,如果没有解则停止,否则进行Step3.

Step3:继续行化简算法得到它的简化阶梯型。

Step4:写出Step3所得到的矩形所对应的方程组。

Step5:把Step4所得的每个方程改写为用自由变量表示基本变量的形式。

至此,我们较为初级的解决了线性方程组的求解问题,在后面随着对矩阵认识的深入,对于判断线性方程组的解情况,会有一种基于矩阵的秩的方法。

《Linear Algebra and Its Application》-chaper1-行化简法解决线性方程组的更多相关文章

  1. 「2020-2021 集训队作业」Yet Another Linear Algebra Problem(行列式,Binet-Cauchy 公式)

    题面 出题人:T L Y \tt TLY TLY 太阳神:Tiw_Air_OAO 「 2020 - 2021 集 训 队 作 业 」 Y e t A n o t h e r L i n e a r A ...

  2. 《Linear Algebra and Its Applications》-chaper1-向量方程、矩阵方程和线性方程组

    向量: 向量的基本运算:向量的运算最基本的一件事情,就是基于它n个分量上进行,即对于两个分量的向量a = <a1,a2>,b = <b1,b2>,有a + b = <a1 ...

  3. 线性代数导论 | Linear Algebra 课程

    搞统计的线性代数和概率论必须精通,最好要能锻炼出直觉,再学机器学习才会事半功倍. 线性代数只推荐Prof. Gilbert Strang的MIT课程,有视频,有教材,有习题,有考试,一套学下来基本就入 ...

  4. 个案排秩 Rank (linear algebra) 秩 (线性代数)

    非叫“秩”不可,有秩才有解_王治祥_新浪博客http://blog.sina.com.cn/s/blog_8e7bc4f801012c23.html 我在一个大学当督导的时候,一次我听一位老师给学生讲 ...

  5. PYTHON替代MATLAB在线性代数学习中的应用(使用Python辅助MIT 18.06 Linear Algebra学习)

    前言 MATLAB一向是理工科学生的必备神器,但随着中美贸易冲突的一再升级,禁售与禁用的阴云也持续笼罩在高等学院的头顶.也许我们都应当考虑更多的途径,来辅助我们的学习和研究工作. 虽然PYTHON和众 ...

  6. 线性代数 -- Linear Algebra with Applications

    @.如果线性方程组无解,则称该方程组是不相容的(inconsistent). @.如果线性方程组至少存在一个解,则称该方程组是相容的(consistent). @.等价方程组(equivalent s ...

  7. Here’s just a fraction of what you can do with linear algebra

    Here’s just a fraction of what you can do with linear algebra The next time someone wonders what the ...

  8. MFC用串行化实现文档存储和读取功能

    在面向对象的程序设计中,一般都是用二进制文件来保存文档资料.在VC++中控制和使用文件流的方法很多,MFC程序设计中常用的有两种方法:用CFile对象存储和读取文件:利用串行化存取文件.其中用CFil ...

  9. Codeforces Gym101502 B.Linear Algebra Test-STL(map)

    B. Linear Algebra Test   time limit per test 3.0 s memory limit per test 256 MB input standard input ...

随机推荐

  1. Java基础知识强化之IO流笔记16:IO流的概述和分类

    1. IO流的分类   流向:     (1)输入流:读取数据到内存     (2)输出流:写入数据到硬盘(磁盘)   操作的数据类型:    (1)字节流:操作的数据是字节             ...

  2. Oracle数据库用户数据完整备份与恢复

    使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户.表的备份恢复. Oracle数据库用户数据完整备份与恢复 1. 备份 1.1   PL/SQL->工具->导 ...

  3. (转)JavaWeb学习总结(十三)——使用Session防止表单重复提交

    如何防止表单重复提交 在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复 ...

  4. 【转】 iOS学习之sqlite的创建数据库,表,插入查看数据

    原文:  http://blog.csdn.net/totogo2010/article/details/7702207 iOS sqlite数据库操作.步骤是: 先加入sqlite开发库libsql ...

  5. Objective-C 笔记二 类、对象和方法

    对象就是一个物件.面向对象的程序设计可以看成一个物件和你想对它做的事情.这与C语言不同,C语言通常称为过程性语言.在C语言中,通常是先考虑要做什么,然后才关注对象,这几乎总是与面相对象的思考过程相反. ...

  6. jquery $.each遍历json数组方法

    <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/ ...

  7. 实现textarea限制输入字数

    实现textarea限制输入字数(包含中文只能输入10个,全ASCII码能够输入20个) textarea称文本域,又称文本区,即有滚动条的多行文本输入控件,在网页的提交表单中经常用到.与单行文本框t ...

  8. TalkingData游戏版本在Cocos2d-x 3.0使用

    Cocos2dx在3.0的版本中改动确实不少啊,所以导致原来可以在Cocos2.x版本上的demo都不能直接用,所以不得不重要写一个新的demo 但是TalkingData的库一直都是可以用的,只是之 ...

  9. Redis学习 - 入门

    业精于勤,荒于嬉:行成于思,毁于随 -- 韩愈·<进学解>   因为工作中需要用到Redis,所以最近抽点时间看了一下,现在将学习的内容整理一下.   一.简介 1.Redis是什么? R ...

  10. Eclipse代码注释模板修改

    /** * @ClassName: ${type_name} * @author: <font color="red"><b>ZF</b>< ...