线性代数中的线性方程组(chapter 1)
线性代数中的线性方程组
第一章从线性方程组的角度,通过解线性方程组,开始解释数学矩阵,以及和线性代数的联系
线性方程组
形如\(a_1x_1+a_2x_2+a_3x_3+....+a_nx_n=b\),其中\(a_1...a_n\)为实数或者复数。
对于一个线性方程组,所有可能的解称为他的解集,如果两个方程组,具有相同的解集,那么我们说这两个方程组等价的。
对于一个线性方程组,他的解有三种情况:
- 无解
- 有唯一解
- 有无穷多的解
如果对于一个线性方程组,他有唯一解或者无穷多个解,我们称它是相容的,若无解,我们称他是不相容的。
对于一个线性方程组求解,先将它的变量隐藏起来,再将变量的每个系数写在对齐的一列中,产生的一个矩阵,我们称它为系数矩阵,将线性方程组右侧的常数加入矩阵中,我们得到了增广矩阵.
$
\begin{cases}
x_1-2x_2+x_3=0\\
2x_2+8x_3=8\\
-4x_1+5x_2+9x_3=9
\end{cases}
$ → $\left[ \begin{matrix} 1 & -2 & 1\\ 0 & 2 & 8\\ -4 & 5 & 9\end{matrix} \right]$ → $\left[ \begin{array}{ccc|c} 1 & -2 & 1 & 0\\ 0 & 2 & 8 & 9\\ -4 & 5 & 9 & -9\end{array} \right]$
行化简解法和阶梯型矩阵
线性方程组的解法:
对于解一个线性方程组,通常的做法是将其化为等价的更简单的线性方程组。(也是基本思路)。在上一小节中,将一个线性方程组的系数提出化为了增广矩阵。接下来将采用行化简算法,去将一个矩阵先变化为与原矩阵等价的阶梯形矩阵,再变成简化行阶梯形矩阵。
那么,什么是阶梯形矩阵,什么又是简化行阶梯形矩阵?
首先先明确2个意义:
1.矩阵中的非零行和列是指,矩阵中至少包含一个非零元素的行或列。
2.非零行的先导元素是指该行最左边的非零元素。
满足以下三个条件的矩阵定义为阶梯形:
1.所有非零行在所有全零行的上面(即全零行都在矩阵的底部)。
2.非零行的先导元素比上面行的先导元素更靠右。
3.先导元素所在列,在该先导元素下面的元素都是零。
还满足以下两个条件的阶梯型矩阵可称为简化阶梯形:
4.所有非零行的先导元素为1。
5.所有非零行仅有先导元素。
(∎表示先导元素,*表示可以是任意数字)
线性方程组的解:
对一个增广矩阵运用行化简算法时,通过将其化为等价的简化阶梯形后,可以得到线性方程组解题的一种显示表达法,例如某一个线性方程组的增广矩阵已经化为简化阶梯形
$\left[ \begin{matrix} 1 & 0 & -5 & 1\\ 0 & 1 & 1 & 4\\ 0 & 0 & 0& 0\end{matrix} \right]$
,因为增广矩阵有4列所以有3个未知数,对应线性方程组为
$\begin{cases}
x_1-5x_3=1\\
x_2+x_3=4\\
0 = 0
\end{cases}$
,对应主元列的变量$x_1$和$x_2$被称为基本变量,$x_3$被称为自由变量,当一个线性方程组是相容的,它的解集可以用显示表达,只要把方程的简化形式解出来,用自由变量表示基本变量即可。由于简化阶梯型使每个基本变量仅包含在一个方程中这是很容易解出的。
例如上面的,可得
$\begin{cases}
x_1=1-5x_3\\
x_2=4-x_3\\
x_3 为自由变量
\end{cases}$
对于自由变量$x_3$,可以是任意的值,当他的值确定后,根据前两个方程即可确定$x_1$和$x_2$。上面例子给出的解又叫通解,因为他给出了所有解的显式表达。
存在唯一性定理:
线性方程组相融的充要条件是,增广矩阵的最右列不是主元列就是说增广矩阵的阶梯形没有形如\(\left[ \begin{matrix} 1 & ... & 0 & b\end{matrix} \right]\),b ≠ 0的行。若线性方程组相容,它的解集可能有两种情况:①没有自由变量时,有唯一解;②如果至少有一个自由变量有无穷多解
总结一下,对于求解一个线性方程组,可分为以下5个步骤:
1. 写出该方程的增广矩阵
2. 应用行化简算法把增广矩阵化为阶梯型,确定方程组是否有解,有解则进行下一步
3. 继续行化简算法得到它的简化阶梯形
4. 写出简化阶梯形对应的方程组
5. 将方程改写为用自由变量表示基本变量的形式
向量方程
线性方程组的重要性质都可以用向量的概念与符号来描述,该节通过将线性方程组与向量方程联系起来,解释其中的相关。
\(R\)2中的向量:
仅含一列的矩阵称为列向量,或简称向量如w = \(\left[ \begin{matrix} w_1\\ w_2\end{matrix} \right]\),\(w_1\)和\(w_2\)是任意实数,所有2个元素的向量的集记作\(R\)2,其中R表示向量中的元素是实数,\(2\)代表一个向量包含2个元素,所有元素都为0的向量记作\(0\),对于向量的加减以及标量乘法运算的性质,再初中已学过,无需赘述。
线性组合:
给定\(R\)n中的向量\(v_1\),\(v_2\),\(v_3\)......\(v_k\)和标量\(c_1\),\(c_2\),\(c_3\)......\(c_k\),向量
\(y\) = \(c_1v_1\) + \(c_2v_2\) + \(c_3v_3\) + ...... + \(c_kv_k\)
被称作向量\(v_1\),\(v_2\),\(v_3\)......\(v_k\)以\(c_1\),\(c_2\),\(c_3\)......\(c_k\)权的线性组合,权可以是任意实数,包括零
现在我们回到前面2节中的存在性问题上,例如,给出向量\(a_1\) = \(\left[ \begin{matrix} 1\\ -2\\ -5\end{matrix} \right]\),\(a_2\) = \(\left[ \begin{matrix} 2\\ 5\\ 6\end{matrix} \right]\),\(b\) = \(\left[ \begin{matrix} 7\\ 4\\ -3\end{matrix} \right]\),需要确定\(b\)是否可以写成\(a_1\)和\(a_2\)的线性组合,也就是说,是否存在权使得向量方程 \(b\) = \(x_1a_1\) + \(x_2a_2\) 成立。
根据向量的加法和标量乘法,可将向量方程写作方程组
$\begin{cases}
x_1+x_2 = 7\\
-2x_1+5x_2 = 4\\
-5x_1+6x_2 = -3
\end{cases}$
对上面的方程组运用行化简算法,来解出结果
$\left[ \begin{matrix} 1 & 2 & 7\\ -2 & 5 & 4\\ -5 & 6 & -3\end{matrix} \right]$ ~ $\left[ \begin{matrix} 1 & 2 & 7\\ 0 & 9 & 18\\ 0 & 16 & 32\end{matrix} \right]$ ~ $\left[ \begin{matrix} 1 & 2 & 7\\ 0 & 1 & 2\\ 0 & 1 & 2\end{matrix} \right]$ ~ $\left[ \begin{matrix} 1 & 0 & 3\\ 0 & 1 & 2\\ 0 & 0 & 0\end{matrix} \right]$
解出$x_1$ = 3和$x_2$ = 2,因此$b$就是$a_1$和$a_2$的线性组合,权为$x_1$ = 3和$x_2$ = 2,这样的步骤是为了强行通过线性方程组作为中介联系,注意看上面的例子可以看住通过线性方程组得到的增广矩阵,就是$\left[ \begin{matrix} a_1 & a_2 & b\end{matrix} \right]$。
综合上面的例子的出结论:向量方程 \(x_1a_1\) + \(x_2a_2\) + ...... + \(x_na_n\) = \(b\)和增广矩阵为\(\left[ \begin{matrix} a_1 & a_2 & ... & b\end{matrix} \right]\)有相同的解集。当且仅当有解是,等式成立。
Span{\(v_1\),\(v_2\),\(v_3\)......\(v_k\)}:
线性代数的一个主要思想就是研究可以表示某一固定向量集合{\(v_1\),\(v_2\),\(v_3\)......\(v_k\)}的线性组合的所有向量,用Span{\(v_1\),\(v_2\),\(v_3\)......\(v_k\)}表示,称为由\(v_1\),\(v_2\),\(v_3\)......\(v_k\)生成的所有子集,也就是说Span{\(v_1\),\(v_2\),\(v_3\)......\(v_k\)}就是所有形如\(c_1v_1\) + \(c_2v_2\) + \(c_3v_3\) + ...... + \(c_kv_k\)的向量的合集合,判断一个向量\(b\)是否属于Span{\(v_1\),\(v_2\),\(v_3\)......\(v_k\)},就是判断\(c_1v_1\) + \(c_2v_2\) + \(c_3v_3\) + ...... + \(c_kv_k\) = \(b\) 是否有解。
矩阵方程\(Ax = b\)
线性代数的一个基本思想就是把向量的线性组合看作是矩阵与向量的积,在本节中将上一节的某些概念用新的方法表述。
定义:
若\(A\)是 \(m×n\)的矩阵,他的各列为\(a_1,...,a_n\)。若\(x\)是\(R^n\)中的向量,则\(A\)于\(x\)的积,记为\(Ax\),就是\(A\)的各列以\(x\)中对应元素为权的线性组合,即
$Ax = \left[ \begin{matrix} a_1 & a_2 & ... & a_n\end{matrix} \right] \left[ \begin{matrix} x_1 \\ x_2 \\ ... \\ x_n\end{matrix} \right] = x_1a_1 + x_2a_2 + ...... + x_na_n$
形如上面的式子,称为矩阵方程,注意$Ax$仅当$A$的列数等于$x$中的元素个数时才有定义。
到这里我们不难发现对于一个线性方程组,可以将其转换成向量方程,或是矩阵方程,据此我们定义。
定义:
若\(A\)是 \(m×n\)的矩阵,他的各列为\(a_1,...,a_n\)。而\(b\)属于\(R^n\),则矩阵方程
$Ax = b$
与向量方程
$x_1a_1 + x_2a_2 + ...... + x_na_n = b$
有相同的解集,他又与增广矩阵为
$\left[ \begin{matrix} a_1 & a_2 & ... & b\end{matrix} \right]$
的线性方程组有相同的解集。
线性代数中的线性方程组(chapter 1)的更多相关文章
- 利用Python学习线性代数 -- 1.1 线性方程组
利用Python学习线性代数 -- 1.1 线性方程组 本节实现的主要功能函数,在源码文件linear_system中,后续章节将作为基本功能调用. 线性方程 线性方程组由一个或多个线性方程组成,如 ...
- matlab中求解线性方程组的rref函数
摘自:http://www.maybe520.net/blog/987/ matlab中怎么求解线性方程组呢? matlab中求解线性方程组可应用克拉默法则(Cramer's Rule)即通过det( ...
- 用 python 解决线性代数中的矩阵运算
用 python 解决线性代数中的矩阵运算 矩阵叉乘 矩阵求逆 矩阵转置 假定AX=B,求解未知矩阵X 矩阵的行列式值|matrix| 未完待续..... import sys from PyQt5. ...
- 线性代数及其应用 (David C.Lay, Steven R.Lay 著)
第1章 线性代数中的线性方程组 (已看) 介绍性实例 经济学与工程中的线性模型 1.1 线性方程组 1.2 行化简与阶梯形矩阵 1.3 向量方程 1.4 矩阵方程Ax=b 1.5 线性方程组的解集 1 ...
- PYTHON替代MATLAB在线性代数学习中的应用(使用Python辅助MIT 18.06 Linear Algebra学习)
前言 MATLAB一向是理工科学生的必备神器,但随着中美贸易冲突的一再升级,禁售与禁用的阴云也持续笼罩在高等学院的头顶.也许我们都应当考虑更多的途径,来辅助我们的学习和研究工作. 虽然PYTHON和众 ...
- matlab 求解线性方程组之LU分解
线性代数中的一个核心思想就是矩阵分解,既将一个复杂的矩阵分解为更简单的矩阵的乘积.常见的有如下分解: LU分解:A=LU,A是m×n矩阵,L是m×m下三角矩阵,U是m×n阶梯形矩阵 QR分解: 秩分解 ...
- 《Numerical Methods》-chaper7-解线性方程组的直接方法和最小二乘问题
基于我们在线性代数中学习过的知识,我们知道解线性方程组本质上就是Gauss消元,也就是基于增广矩阵A的矩阵初等变换.关于数学层面的内容这里不做过多的介绍,这里的侧重点是从数值计算的角度来看这些常见的问 ...
- 《Linear Algebra and Its Applications》-chaper1-向量方程、矩阵方程和线性方程组
向量: 向量的基本运算:向量的运算最基本的一件事情,就是基于它n个分量上进行,即对于两个分量的向量a = <a1,a2>,b = <b1,b2>,有a + b = <a1 ...
- 线性代数笔记10——矩阵的LU分解
在线性代数中, LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积).LU分解主要应用在数值分析 ...
随机推荐
- 走在深夜的小码农 Seventh Day
Css3 Seventh Day writer:late at night codepeasant 学习大纲: 1. 定位(position) 介绍 1.1 为什么使用定位 我们先来看一个效果,同时思 ...
- 2020 10月CUMTCTF wp
华为杯 × 签到杯√ 论比赛过程来说没什么很大收获 但看师傅们的wp感触很多 赛后复现慢慢学吧 Web babyflask flask ssti模板注入: payload{{key}}发现[]以及类似 ...
- Win10 Terminal + WSL 2 安装配置指南,精致开发体验
自从 Windows Terminal 正式发布后就再没有用过 Windows 系统自带的终端了.主要是 Terminal 简洁且灵活,更重要的是支持特殊字体,通过一些简单的配置可以使得终端看起来更舒 ...
- hashmap源码面试分析
HashMap源码问题解析 问: 说一说对hash的理解 答: hash是对任意长度的输入输出为相同长度的输出 问: hash算法的问题 答: hash冲突问题 问: hash冲突是否可以避免 答: ...
- 841. Keys and Rooms —— weekly contest 86
题目链接:https://leetcode.com/problems/keys-and-rooms/description/ 简单DFS time:9ms 1 class Solution { 2 p ...
- 「SHOI2014」三叉神经树
「SHOI2014」三叉神经树 给你一颗由\(n\)个非叶子结点和\(2n+1\)个叶子结点构成的完全三叉树,每个叶子结点有一个输出:\(0\)或\(1\),每个非叶子结点的输出为自己的叶子结点中较多 ...
- 天啦撸!打印日志竟然只晓得 Log4j?
空了的时候,我都会在群里偷偷摸摸地潜水,对小伙伴们的一举一动.一言一行筛查诊断.一副班主任的即时感,让我感到非常的快乐,略微夹带一丝丝的枯燥. 这不,我在战国时代读者群里发现了这么一串聊天记录: 竟然 ...
- C语言中宏的作用
在C语言#define机制中包括了一个规定,与允许把参数替换到文本中,这种实现通常称为宏或宏定义.下面是宏的声明方式: #define name(parameter-list) ...
- 利用Github Action和.Net 5 自动执行米游社原神每日签到福利
GenshinDailyHelper 原神的签到福利是需要单独下载APP进行才可以领取,并且每天需要打卡,虽然奖励并不是很可观,但有一些摩拉,食材和可观的经验书累计起来还是挺有吸引力的.可能本身不怎么 ...
- 使用spring框架进行aop编程实现方法调用前日志输出
aop编程 之使用spring框架实现方法调用前日志输出 使用spring框架实现AOP编程首先需要搭建spring框架环境: 使用Spring框架实现AOP工程编程之后,不需要我们去写代理工厂了,工 ...