《 线性代数及其应用 (原书第4版)》——1.2 行化简与阶梯形矩阵

本节书摘来自华章出版社《 线性代数及其应用 (原书第4版)》一书中的第1章,第1.2节,作者:(美)戴维C. 雷(David C. Lay)马里兰大学帕克学院 著刘深泉 张万芹 陈玉珍 包乐娥 陆 博 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.2 行化简与阶梯形矩阵

本节我们将1.1节中的方法进一步精确化,变成行化简算法(也称行消去法),它可用来解任意线性方程组. 1而应用算法的第一部分,我们可以回答1.1节中提出的基本存在与唯一性问题.
这种算法可用于任意矩阵,不管它是否为某一方程组的增广矩阵. 所以本节的第一部分讨论任意矩阵. 首先我们引入两类重要的矩阵,它们包含1.1节中的“三角”矩阵,在以下的定义中,矩阵中非零行或列指矩阵中至少包含一个非零元素的行或列;非零行的先导元素是指该行中最左边的非零元素.
定义 一个矩阵称为阶梯形(或行阶梯形),若它有以下三个性质:

  1. 每一非零行在每一零行之上.
  2. 某一行的先导元素所在的列位于前一行先导元素的右面.
  3. 某一先导元素所在列下方元素都是零.
    若一个阶梯形矩阵还满足以下性质,称它为简化阶梯形(或简化行阶梯形).
  4. 每一非零行的先导元素是1.
  5. 每一先导元素1是该元素所在列的唯一非零元素.
    若一个矩阵具有阶梯形(简化阶梯形),它就称为阶梯形(简化阶梯形)矩阵. 性质2说明先导元素构成阶梯形. 性质3其实是性质2的推论,不过我们把它列出来以示强调.

1.1节中的“三角”矩阵,如
1
都是阶梯形的,第二个矩阵是简化阶梯形的. 再举更多的例子.
例1 下列矩阵都是阶梯形的,先导元素用 ? 表示,它们可取任意的非零值,在*位置的元素可取任意值,包括零值.
2

下列矩阵是简化阶梯形的,因先导元素都是1,且在每个先导元素1的上、下,各元素都是0.
3

一个矩阵可以行化简(即用行初等变换)变为阶梯形矩阵,但用不同的方法可化为不同的阶梯形矩阵. 然而,一个矩阵只能化为唯一的简化阶梯形矩阵. 下列定理将在书末附录A中给出证明.
定理1 (简化阶梯形矩阵的唯一性)
每个矩阵行等价于唯一的简化阶梯形矩阵.
若矩阵A等价于阶梯形矩阵U,称U为A的阶梯形(或行阶梯形);若U是简化阶梯形,称U为A的简化阶梯形. 大部分矩阵程序用RREF作为简化(行)阶梯形的缩写,有些用REF作为(行)阶梯形的缩写.
主元位置
当矩阵经行变换化为阶梯形后,经进一步的行变换将矩阵化为简化阶梯形时,先导元素的位置并不改变. 因简化阶梯形是唯一的,当给定矩阵化为任何一个阶梯形时,先导元素总是在相同的位置上. 这些先导元素对应于简化阶梯形中的先导1.
定义 矩阵中的主元位置是A中对应于它的阶梯形中先导元素的位置. 主元列是A的含有主元位置的列.
在例1中,符号(?)对应主元位置. 前四章中的许多基本概念都与矩阵中主元位置有联系.
例2 把下列矩阵A用行变换化为阶梯形,确定主元列.
4

解 利用1.1节的方法. 最左边的非零列的第一个元素就是第一个主元位置. 这个位置必须放一个非零元,即主元素. 最好将第一行与第四行对换,这样可以避免分数运算.
5

把第一行的倍数加到其他各行,以使主元1下面各元素变成0. 第二行的主元位置必须尽量靠左,即在第二列. 我们选择这里的2作为第二个主元.
1 (1)

把第二行的-5/2倍加到第三行,3/2倍加到第4行.

                  ![2](https://yqfile.alicdn.com/135d1680abd252deb6f5ae3d880ab7dd085a08e2.png)        (2)

(2)中的矩阵与1.1节所遇到的不同,这里没有办法在第3列中找到先导元素!我们不能利用第一行或第二行,否则会破坏已产生的阶梯形的先导元素的排列. 然而若我们对换第3行和第4行,我们可在第4列产生先导元素.
3

此矩阵已是阶梯形. 第1、2、4列是主元列.
4 (3)

如例2所示,主元就是在主元位置上的非零元素,用来通过行变换把下面的元素化为0,例2中的主元是1,2,-5,注意这些元素与矩阵A中同一位置的元素不相同,如(3)式所示.
根据例2,我们给出一个有效的算法,变换矩阵成阶梯形或简化阶梯形. 认真掌握这一算法将使你获益匪浅.
行化简算法
下列算法包含四个步骤,它产生一个阶梯形矩阵,第五步产生简化阶梯形矩阵. 我们用一个实例来说明这一算法.
例3 用行初等变换把下列矩阵先化为阶梯形,再化为简化阶梯形.
1


第一步,由最左的非零列开始. 这是一个主元列. 主元位置在该列顶端.
2

第二步,在主元列中选取一个非零元作为主元. 若有必要的话,对换两行使这个元素移到主元位置上.
对换第1、3两行(也可对换1、2两行)
3

第三步,用倍加行变换将主元下面的元素变成0.
我们当然可以把第1行除以主元3. 但这里第1列有两个3,我们只需把第1行的-1倍加到第2行.
4

第四步,暂时不管包含主元位置的行以及它上面的各行,对剩下的子矩阵使用上述的三个步骤直到没有非零行需要处理为止.
暂时不看第一行,第一步指出,第2列是下一个主元列,第二步,我们选择该列中“顶端”的元素作为主元.
5

对第三步,我们可先把子矩阵的“顶行”除以主元2. 不过也可以把这一行的-3/2倍加到下面的一行. 这就得到
6

暂时不看第二个主元所在的行,我们剩下一个只有一行的新子矩阵.
1

新的子矩阵已不需要处理了,我们已得到整个矩阵的阶梯形. 若我们需要简化阶梯形,进行下一个步骤.
第五步,由最右面的主元开始,把每个主元上方的各元素变成0. 若某个主元不是1,用倍乘变换将它变成1.
2

下一个主元在第2行,将这行除以这个主元.
3

将第2行的9倍加到第1行
4

最后将第1行除以主元3
5

这就是原矩阵的简化阶梯形. ?
第1~4步称为行化简算法的向前步骤,产生唯一的简化阶梯形的第5步,称为向后步骤.
数值计算的注解 在第2步中,计算机程序通常选择一列中绝对值最大的元素作为主元. 这种方法通常称为部分主元法,可以减少计算中的舍入误差.
线性方程组的解
行化简算法应用于方程组的增广矩阵时,可以得出线性方程组解集的一种显式表示法.
例如,设某一个线性方程组的增广矩阵已经化为等价的简化阶梯形
1

因为增广矩阵有4列,所以有3个未知数,对应的线性方程组是
2 (4)
对应于主元列的变量x1x2 称为基本变量 .1其他变量如x3 ,称为自由变量.
当一个线性方程组是相容的,如方程组(4)解集可以用显式表示,只要把方程的简化形式解出来,用自由变量表示基本变量即可. 由于简化阶梯形使每个基本变量仅包含在一个方程中,这是很容易的. 在方程组(4)中,我们可由第1个方程解出 ,第2个方程解出 (第3个方程对未知数没有任何限制,可以不管它).
4 (5)
我们说 是自由变量,是指它可取任意的值. 当 x3的值选定后,由(5)中的前2个方程就可以确定 x1x2 的值,例如,当 x3=0得出解(1,4,0);当 x3_1,得出解(6,3,1),x3 的不同选择确定了方程组的不同的解,方程组的每个解由 x3的值的选择来确定.
(5)式给出的解称为方程组的通解,因为它给出了所有解的显式表示.
例4 求方程组的解,该方程组的增广矩阵已经化为
4_1
解 该矩阵已是阶梯形,但我们在解出基本变量前仍需把它化为简化阶梯形,记号“~”表示它前面和后面的两个矩阵是行等价的(译者注:该记号在中文教科书中并未通用).
4_2
增广矩阵有6列,所以原方程组有5个变量,对应的方程组为

                 ![4_3](https://yqfile.alicdn.com/3e8e58e33603bb5e6c5665394e0698a8eedf7778.png)          (6)

矩阵的主元列是第1,3,5列,基本变量为 x1x3x5,剩下的变量 x2x4为自由变量,解出基本变量,我们得通解为

             ![4_4](https://yqfile.alicdn.com/8bceb4842347f22adba9187356c111c28c30a7a1.png)              (7)

注意,由方程组(6)的第3个方程,x5 的值是确定的.
解集的参数表示
解集的表示式(5)和(7)称为解集的参数表示,其中自由变量作为参数. 解方程组就是要求出解集的这种参数表示或确定它无解.
当一个方程组是相容的,且具有自由变量,则它的解集具有多种参数表示. 例如,在方程组(4)中,我们可以把方程2的5倍加到方程1,得等价方程组
4_5
这时可把 看作参数,用 表示 和 ,得到解集的第一种表示法. 不过,我们总是约定使用自由变量作为参数来表示解集(本书末尾的习题解答也采用这一约定).
当方程组是不相容时,解集是空集,无论方程组是否有自由变量,此时,解集无参数表示.
回代
考虑下列方程组,它的增广矩阵已是阶梯形,但还不是简化阶梯形:
4_6
计算机程序通常用回代法解此方程组,而不是求它的简化阶梯形. 也就是说,程序先解第3个方程,用 x5表示 x4,并把此表达式代入第2个方程,从中解出 x2,最后把x2x4的表达式代入第1个方程解出 x1.
我们的矩阵算法,即行化简算法的向后步骤,它求出简化阶梯形,与回代法所需算术运算次数相同. 但矩阵算法通常减少了手算时出错的可能性. 我强烈建议你仅使用简化阶梯形来解方程组!与本书配合的学习指导书给出一些好的建议帮助你更快更准确地解方程组.
数值计算的注解 一般地,行化简算法的向前步骤比向后步骤需要更多运算. 解方程组的算法通常用浮算来衡量. 一个浮算(flop或浮点运算)就是两个浮点实数进行一次算术运算(+,-,*,/). 对一个1矩阵,化简为阶梯形大约需要 1次浮算(当 n相当大,比如说n>=30 时,大约是1 次浮算),而进一步化为简化阶梯形大约最多只需n2次浮算.
存在与唯一性问题
虽然非简化的阶梯形并不适于解线性方程组,这种形式对于回答1.1节中提出的两个基本问题已经足够了.
例5 确定下列线性方程组的解是否存在且唯一
1

解 该方程组的增广矩阵在例3中化简为

 ![2](https://yqfile.alicdn.com/d67c881aa6b98de57e3bfd2481d49f08f5117f47.png)                     (8)

基本变量是 1;自由变量是 2. 这里没有类似0=1的造成不相容方程组的方程,所以我们可用回代法求解. 但解的存在性在方程(8)中已经清楚了. 同时,解不是唯一的,因为有自由变量存在. 2的每一种选择都确定一组解,所以此方程组有无穷多组解.
当一个方程组化为阶梯形,且不包含形如0=b 的方程,其中3 ,每个方程包含一个基本变量,它的系数非零. 或者这些基本变量已完全确定(此时无自由变量),或者至少有一个基本变量可用一个或多个自由变量表示,对前一种情形,有唯一的解;对后一种情形,有无穷多个解(对应自由变量的每一个选择都有一个解).
上述讨论证明了以下定理
定理2 (存在与唯一性定理)
线性方程组相容的充要条件是增广矩阵的最右列不是主元列. 也就是说,增广矩阵的阶梯形没有形如
1
的行,若线性方程组相容,它的解集可能有两种情形:(ⅰ)当没有自由变量时,有唯一解; (ⅱ)若至少有一个自由变量,有无穷多解.
以下是求解线性方程组的步骤.

应用行化简算法解线性方程组

  1. 写出方程组的增广矩阵.
  2. 应用行化简算法把增广矩阵化为阶梯形. 确定方程组是否有解,如果没有解则停止;否则进行下一步.
  3. 继续行化简算法得到它的简化阶梯形.
  4. 写出由第3步所得矩阵所对应的方程组.
  5. 把第4步所得的每个方程改写为用自由变量表示基本变量的形式.
    练习题
  6. 求出下列增广矩阵对应的方程组的解
    1
  7. 求出下列方程组的通解
    1

习题1.2
1
2
3
4

练习题答案

  1. 增广矩阵的简化阶梯形和相应的方程组是
    1_1

基本变量是 x1x2 ,通解为(见图1-6):

1_2

注意:要点是一般解要描述每个变量,参数要明显标出. 下面的写法是不正确的:
1_3

在这种写法中,似乎x2x3都是自由变量,这当然是不对的.

  1. 当我们行化简方程组的增广矩阵,得
    1_4

所得阶梯矩阵说明方程是不相容的,因它的最右列是主元列;第3行相应于方程0=5,因此不必再进行任何行变换. 注意,自由变量在此问题中并不起作用,因为方程组是不相容的.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#使用FluentFtp实现一行代码实现ftp上传下载等

一:简介FluentFTP 是一个完全托管的 .NET 和 .NET Standard 的 FTP 和 FTPS 库,针对速度进行了优化。它提供了广泛的 FTP 命令、文件上传/下载、SSL/TLS 连接、自动目录列表解析、文件哈希/校验和、文件权限/CHMOD、FTP 代理、FXP 传输、UTF-8 支持、异步/等待支持、…

软件体系结构知识点整理

包括软件体系结构风格、uml、软件质量属性、面向对象设计原则以及设计模式 pdf及goodnote版本

《T-SQL性能调优秘笈——基于SQL Server 2012 窗口函数》——1.2 使用窗口函数的解决方案简介...

本节书摘来自异步社区出版社《T-SQL性能调优秘笈——基于SQL Server 2012 窗口函数》一书中的第1章,第1.2节,作者: 【美】Itzik Ben-Gan,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 使用窗口函数的解决方案简介 …

ASP.NET Core(十)Configuration 配置优先级详解

ASP.NET Core 项目启动,默认执行顺序为:宿主 Host -> 读取配置 -> 日志设置 -> 注册服务(DI)-> 添加中间件 -> WebHost 监听 -> 后台 Work 启动。配置的加载和读取是在启动流程的最前面。微软关于 ASP.NET Core…

带中文索引的ListView 仿微信联系人列表

因为各种原因,项目经理和产品经理把我做的东西给否定了,所以决定分享出去。 主要功能: 1 、带中文索引的ListView 2、自己定义顶部搜索视图,能够对返回button,搜索button加入事件监听,带动画的咧&#xff0…

解决 ASP.NET Core 部署到 IIS,更新项目时文件夹正在使用错误

前言虽然 ASP.NET Core 应用程序是跨平台的,但我们还是经常将它部署到 Windows 的 IIS 下。当 ASP.NET Core 站点运行时,它会锁定正在使用的程序集,如果这时向站点目录下复制文件进行更新,会提示文件被占用的错误:这时…

软件配置管理(二)配置管理角色与过程

文章目录一、配置管理角色及职责项目经理(PM)配置控制委员会(CCB)配置管理员(CMO)系统集成员(SIO)开发人员(DEV)二、配置管理基本流程计划阶段开发和维护阶段…

学习笔记(二)JavaScript基本概念(语法,数据类型,控制语句,函数)

一.语法 1.javascirpt中一切(变量,函数名和操作符)是严格区分大小写的。 2.javascript(标识符) 所谓标识符,就是指变量,函数,属性的名字,或者函数的参数。 命名规则&…

Android悬浮窗口的实现

效果图:(悬浮框可拖动) 在项目开发中有一个需求:弹出悬浮窗后,响应悬浮窗的事件再弹出对话框,但是对话框怎么也不显示。也就是说在弹出悬浮框的同时,不能再弹出对话框,可能的原因&am…

软件配置管理(三)软件配置管理核心功能

文章目录一、CMM/CMMI与软件配置管理产品完整性二、三库管理三、基线管理基线管理的好处基线管理的步骤四、配置库管理五、变更管理变更管理流程六、配置审计七、配置状态报告一、CMM/CMMI与软件配置管理 软件配置管理是CMM/CMMI二级(可重复级)的一个重…

移除指定 global using 命名空间

前言在《.NET 6新特性试用 | 隐式using指令》中&#xff0c;我们介绍过&#xff0c;开启隐式using指令时&#xff0c;会在编译时生成 GlobalUsings.g.cs 文件&#xff0c;加入大量 global using 指令&#xff1a;// <auto-generated/> global using global::Microsoft.As…

Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上

Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上 如今你已经升级或者安装了Ubuntu 14.04&#xff0c; 但是还有另外一件保护你的新系统需要做的事情&#xff1a;备份&#xff01; Ubuntu内置了一个备份工具 Dj Dup Backup Tool。它允许你备份你的系统并保存在本地或者通过…

【C#/.NET 日常开发技巧】JWT+ActionFilter 简便控制器代码

微信公众号&#xff1a;趣编程ACE关注可了解更多.NET日常开发技巧&#xff0c;如需源码&#xff0c;请公众号留言 源码;JWTActionFilter 简便控制器代码这是微软关于过滤器的介绍&#xff1a;https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/filters?viewaspne…

在P2P市场中代替“看不见的手”的算法在哪里

◆ ◆ ◆ 本文简单探讨P2P市场机制&#xff0c;在此基础上探讨匹配撮合服务的可能性。 ◆ ◆ ◆ P2P市场机制基本定义与假设 首先&#xff0c;我们回顾一些基本定义与假设。P2P市场为“网络借贷是指个体和个体之间通过互联网平台实现的直接借贷。”[2]利率决定一般是平台决定借…

关于他们回答的 怎样在桌面建一个python GUI的快捷方式 这个问题

在之前的2个随笔里面&#xff0c;有写过《找到可以解决问题的正确的人》、《如何提问》&#xff0c;说白了就是您需要帮助的时候&#xff0c;您得让对方100%懂你&#xff0c;否则没戏。 那么最近看到这样1个古老的问题&#xff0c;和一些没有答到"点儿"上的回答&…

.NET Core中行为过滤器ActionFilterAttribute的使用介绍

什么是行为过滤器&#xff1f;行为过滤器是你可以应用到一个控制器行为的&#xff0c;或者整个控制器的&#xff0c;来修改控制器行为的执行方式的属性。当请求进入 API 接口的时候&#xff0c;操作过滤器提供了一个进入之前&#xff08;before&#xff09;和进入之后&#xff…

基本线程同步(三)在同步的类里安排独立属性

声明&#xff1a;本文是《 Java 7 Concurrency Cookbook 》的第二章&#xff0c;作者&#xff1a; Javier Fernndez Gonzlez 译者&#xff1a;许巧辉 校对&#xff1a;方腾飞 在同步的类里安排独立属性 当你使用synchronized关键字来保护代码块时&#xff0c;你必须通过一…

软件项目组织管理(一)项目管理概述

文章目录什么是项目项目的特征项目的组成要素&#xff08;三维约束&#xff09;什么是项目管理什么是IT项目什么是软件项目管理项目管理的目标&#xff08;项目成功的标志&#xff09;软件项目失败的原因活动的3个基本特点人类活动分为两种类型作业和项目的区别&#xff08;必考…

ABP Framework 5.2 RC 版本发布及新增功能介绍

本文将介绍 ABP Framework 5.2 RC 版新增的主要功能&#xff1a;•单层解决方案模板•API 版本控制•源代码控制移除libs文件夹•对 Swagger UI 隐藏 ABP 默认端点•CMS Kit应用模块自定义全局 CSS 和 JavaScript关注 ABP Framework 最新开发进度&#xff0c;后面还会陆续发布新…

《计算机组成原理》----2.3 二进制运算

本节书摘来自华章出版社《计算机组成原理》一书中的第2章&#xff0c;第2.3节&#xff0c; 作 者 Computer Organization and Architecture: Themes and Variations&#xff3b;英&#xff3d;艾伦克莱门茨&#xff08;Alan Clements&#xff09; 著&#xff0c;沈 立 王苏峰…