为什么学线性代数(一)

从一个具体问题说起

考虑以下方程组:

{2x1+x2=0x1−x2=1 \begin{cases} 2x_1 + x_2 = 0 \\ x_1 - x_2 = 1 \end{cases} {2x1+x2=0x1−x2=1

中学的办法是消元或代入,很快能得到 x1=1/3x_1 = 1/3x1=1/3,x2=−2/3x_2 = -2/3x2=−2/3。

再看一个:

{x1+x2=12x1+2x2=1 \begin{cases} x_1 + x_2 = 1 \\ 2x_1 + 2x_2 = 1 \end{cases} {x1+x2=12x1+2x2=1

消元得到 0=−10 = -10=−1,矛盾,所以无解。

第三个:

x1−3x2=0 x_1 - 3x_2 = 0 x1−3x2=0

解集是 {(x1,x2)∈R2:x1=3x2}\{(x_1, x_2) \in \mathbb{R}^2 : x_1 = 3x_2\}{(x1,x2)∈R2:x1=3x2},一条过原点的直线,无穷多个解。

三个方程组,三种解的形态:唯一解、无解、无穷多解。中学阶段到此为止。但线性代数要问的是下面这些问题------

  • 给定任意一个 mmm 个方程、nnn 个未知数的线性方程组,能不能事先判断它属于哪种情形,不用真的把它解出来?
  • 当解集无穷时,它的"结构"是什么?是直线?平面?还是更高维的东西?这种结构能否用少量参数描述?
  • 如果把方程组写成 f(x)=bf(x) = bf(x)=b 的形式,函数 fff 到底具备什么性质让这件事如此规整?(对比之下,f(x)=x2+x−2=0f(x) = x^2 + x - 2 = 0f(x)=x2+x−2=0 为什么就恰好两个解,x2+x+2=0x^2 + x + 2 = 0x2+x+2=0 为什么在 R\mathbb{R}R 上无解?)
  • 解方程组的"系统性算法"是什么?它的复杂度如何?何时失败?

这些是线性代数真正要回答的问题。它不是"解方程组的技巧集合",而是关于线性方程解结构的一套理论

把问题抽象一层

将上面的方程组改写成函数形式。定义 f:R2→R2f: \mathbb{R}^2 \to \mathbb{R}^2f:R2→R2:

f(x1,x2)=(2x1+x2, x1−x2) f(x_1, x_2) = (2x_1 + x_2,\ x_1 - x_2) f(x1,x2)=(2x1+x2, x1−x2)

那么第一个方程组就等价于求解 f(x)=(0,1)f(x) = (0, 1)f(x)=(0,1)。换句话说:解方程组 = 求 fff 在给定值上的原像

问题由此转化成:研究函数 fff 本身的性质。

而 fff 不是任意函数,它满足两个条件:

f(x+y)=f(x)+f(y),f(cx)=cf(x) f(x + y) = f(x) + f(y), \qquad f(cx) = cf(x) f(x+y)=f(x)+f(y),f(cx)=cf(x)

第一式叫可加性 ,第二式叫齐次性 。满足这两条的 fff 称为线性映射。本课程大部分内容就是研究这类映射。

这两个条件看似简单,但它们的后果非常强:

  1. f(0)=0f(0) = 0f(0)=0(从齐次性取 c=0c = 0c=0 得到)
  2. fff 在一组向量的线性组合上完全由它在这组向量上的值决定:
    f(c1v1+⋯+cnvn)=c1f(v1)+⋯+cnf(vn)f(c_1 v_1 + \cdots + c_n v_n) = c_1 f(v_1) + \cdots + c_n f(v_n)f(c1v1+⋯+cnvn)=c1f(v1)+⋯+cnf(vn)
  3. 方程 f(x)=0f(x) = 0f(x)=0 的解集对加法和数乘封闭------它是一个"子空间"

由第三点立刻能推出一个重要事实:

若 x0x_0x0 是 f(x)=bf(x) = bf(x)=b 的一个解,则全部解为 {x0+v:f(v)=0}\{x_0 + v : f(v) = 0\}{x0+v:f(v)=0}。

也就是:非齐次方程的解 = 一个特解 + 齐次方程的通解

这条结论在微分方程里也有对应形式------这不是巧合。线性常微分方程的解空间结构、傅里叶级数的收敛性、量子力学中态的叠加原理,本质上都是同一个"线性"在不同场景的体现。

"线性"在哪些地方成立

线性映射最常见的例子是矩阵乘法 :Rn→Rm\mathbb{R}^n \to \mathbb{R}^mRn→Rm,x↦Axx \mapsto Axx↦Ax。但"线性"的范围远不止有限维空间上的矩阵:

映射 定义域 线性?
f(x)=Axf(x) = Axf(x)=Ax,A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n Rn\mathbb{R}^nRn
D:p(z)↦p′(z)D: p(z) \mapsto p'(z)D:p(z)↦p′(z)(求导) 多项式空间 R[z]\mathbb{R}[z]R[z]
I:f↦∫01f(t) dtI: f \mapsto \int_0^1 f(t)\,dtI:f↦∫01f(t)dt 连续函数空间 C[0,1]C[0,1]C[0,1]
T:(an)↦(an+1)T: (a_n) \mapsto (a_{n+1})T:(an)↦(an+1)(移位) 数列空间 R∞\mathbb{R}^\inftyR∞
f(x)=x2f(x) = x^2f(x)=x2 R\mathbb{R}R 否(f(2x)≠2f(x)f(2x) \ne 2f(x)f(2x)=2f(x))
f(x)=x+1f(x) = x + 1f(x)=x+1 R\mathbb{R}R 否(f(0)≠0f(0) \ne 0f(0)=0)
f(x)=exf(x) = e^xf(x)=ex R\mathbb{R}R 否(f(x+y)≠f(x)+f(y)f(x+y) \ne f(x) + f(y)f(x+y)=f(x)+f(y))

这张表透露了一个关键观察:线性代数的工具不依赖于"维数有限"。同样的框架可以套用在多项式、函数、数列、算子这些看起来完全不同的对象上。

正是因为这个,一门表面上在研究"矩阵和方程组"的课,实际上为后续几乎所有数学分支(微分方程、泛函分析、抽象代数、微分几何、量子力学)打下公共语言。

课程要回答的问题

课程从 Rn\mathbb{R}^nRn 上的方程组出发,但目标是建立一个不依赖具体坐标的理论。关键问题包括:

存在性与唯一性:什么条件下方程组有解?什么条件下解唯一?------这会在第 6 章通过"单射、满射、可逆"这组概念彻底回答。

解集的结构 :解集是一个什么样的集合?------答案是第 4-5 章要讲的向量空间 与它的维数,解集是一个仿射子空间。

表示与计算 :抽象的线性映射如何用具体的数字表示?------第 6 章给出"矩阵表示",并说明这个表示依赖于的选择。不同的基给出不同的矩阵,但它们描述的是同一个映射。基变换的理论在第 10 章。

分解 :一个复杂的线性映射能否分解成简单的?------第 7 章讲对角化(通过特征值),第 11 章讲谱定理(正规算子在标准正交基下对角化)和奇异值分解。

为什么要证明

本课程有相当一部分内容是证明写作。很多学生不理解:我会算就行了,为什么要证明?

有两个原因。

第一,线性代数的主要结论是"某类对象全部满足某性质"。比如"任意有限维向量空间的任意两组基含相同数量向量"------这不可能通过计算几个例子来验证,必须证明。

第二也是更重要的:证明是理解定义的唯一方式 。一个定义你看十遍,不如亲手用它证一个命题。第一次做 VVV 是向量空间、UUU 是子空间的证明题时,你才会真正明白"向量空间"这八条公理为什么是这八条,删掉任何一条会发生什么。

中学数学主要在训练计算,大学数学主要在训练定义→定理→证明的这套语言。线性代数是这个转换发生的地方。

本节的要点

  • 线性代数研究线性方程组的解结构,等价地,研究线性映射的性质。
  • 定义一个映射为线性,只需两条:f(x+y)=f(x)+f(y)f(x+y) = f(x)+f(y)f(x+y)=f(x)+f(y) 和 f(cx)=cf(x)f(cx) = cf(x)f(cx)=cf(x)。
  • 这两条蕴含了丰富的结构:解集是子空间,非齐次通解 = 特解 + 齐次通解,映射由基上的值完全决定。
  • 这套框架不依赖于坐标和维数,因此可以统一描述矩阵、求导、积分、移位等各种看似无关的对象。
  • 应用遍及各数学分支和科学工程------下图是一个粗略的地图:
相关推荐
_深海凉_3 小时前
LeetCode热题100-找到字符串中所有字母异位词
算法·leetcode·职场和发展
网络工程小王3 小时前
【大模型基础部署】(学习笔记)
人工智能·深度学习·机器学习
木井巳3 小时前
【递归算法】目标和
java·算法·leetcode·决策树·深度优先
旖-旎3 小时前
哈希表(字母异位次分组)(5)
数据结构·c++·算法·leetcode·哈希算法·散列表
别或许3 小时前
4、高数----一元函数微分学的计算
人工智能·算法·机器学习
_深海凉_4 小时前
LeetCode热题100-最长连续序列
算法·leetcode·职场和发展
这里没有酒4 小时前
[信息安全] AES128 加密/解密 --> state 矩阵
算法
书中玉4 小时前
矩阵行最简形唯一
线性代数·矩阵·行最简形
无限进步_4 小时前
【C++】多重继承中的虚表布局分析:D类对象为何有两个虚表?
开发语言·c++·ide·windows·git·算法·visual studio