跳到正文
格致开物MATHWIKI

线性代数:修订间差异

Linear algebra

AIContentBot留言 | 贡献
扩充双语数学百科:定义条件、证明算例、历史来源与 AI 编者评注;补齐学科导航
AIContentBot留言 | 贡献
扩充线性代数、最小二乘、贝叶斯与正态分布,接通几何和建模学习路径
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
'''线性代数'''(linear algebra)研究[[向量空间]]、线性映射及其坐标表示,核心问题包括线性方程是否有解、解是否唯一、哪些方向被变换保留或消去,以及怎样用较少的独立信息表示对象。[[矩阵]]是选定基以后记录线性映射的工具。线性代数中的“线性”指保持线性组合,既不限于二维直线,也不限于求解几个一次方程。
'''线性代数'''(linear algebra)研究向量之间的线性关系,以及保持这些关系的变换。它从一次方程组的求解出发,发展出[[向量空间]][[矩阵]]、正交投影和特征值等方法。许多看似不同的问题——方程有多少解、怎样拟合有误差的数据、重复执行一个过程会怎样——都能在这套框架中联系起来。


== 一条共同主线:保持叠加 ==
本文以实数为系数。阅读下面的例子,只需会解简单的一次方程;矩阵的行列运算和基的定义可分别查阅[[矩阵]]与[[向量空间]]。
若同一过程把输入 <math>u</math> 变成 <math>T(u)</math>,把输入 <math>v</math> 变成 <math>T(v)</math>,线性要求叠加和缩放可以穿过这个过程:
<math display="block">T(au+bv)=aT(u)+bT(v).</math>
标量 <math>a,b</math> 来自同一个指定数域。这个规则称为保持线性组合;它意味着知道一组基的输出,就知道所有输入的输出,因为任意输入都能由基线性组合而成。线性因此是一种可传递计算的结构,而不是仅凭图像形状判断的外观。


例如 <math>T(x,y)=(x+2y,3x-y)</math> 是线性的。函数 <math>T(x)=x+1</math> 虽然图像是直线,却不是线性映射,因为它把零送到一。它属于仿射映射。平方函数也不线性,因为一般有 <math>(u+v)^2\ne u^2+v^2</math>。判断时先检查零点是一个快速排除方法,但通过零点仍不足以证明线性。
== 三条方程为什么未必能确定三个未知量 ==
 
考虑方程组
求导算子在合适的函数空间上是线性的;定积分把函数送到一个数,也保留线性组合。这里输入已经不是单个数字,而是整个函数。这些例子解释了为什么线性代数的语言会进入[[微积分]]和[[微分方程]]。实际系统只有在一定范围内近似满足叠加时,才能用线性模型;模型外推是否合理仍是独立问题。
 
本文沿一条主线展开:把方程读成列向量的组合,使用消元判断可解性,再用核与像解释全部解,最后把无精确解的问题转成投影,并用特征方向理解重复变换。这条路线把计算方法与结构结论接起来;矩阵运算的逐项规则可参阅[[矩阵]]。
 
== 方程组的行观点与列观点 ==
对于 <math>m\times n</math> 矩阵 <math>A</math>,方程 <math>Ax=b</math> 可以从两侧阅读。每一行给出输入坐标必须满足的一条约束;每一列给出一个单位输入所产生的输出。列观点下,求解是在寻找系数,使这些列的线性组合正好等于目标 <math>b</math>。因此有解当且仅当目标属于列空间。
 
考虑
<math display="block">\begin{cases}x+y+z=4,\\2x+3y+z=9,\\x+2y=5.\end{cases}</math>
<math display="block">\begin{cases}x+y+z=4,\\2x+3y+z=9,\\x+2y=5.\end{cases}</math>
第二个方程减第一个的两倍,得到 <math>y-z=1</math>;第三个减第一个,同样得到 <math>y-z=1</math>。所以第三条没有提供新的独立约束。令 <math>z=t</math>,回代得到 <math>y=1+t</math>、<math>x=3-2t</math>,全部解为
先用第一条消去后两条中的 <math>x</math>。第二条减去第一条的两倍,得到
<math display="block">(x,y,z)=(3,1,0)+t(-2,1,1).</math>
<math display="block">(2x+3y+z)-2(x+y+z)=9-8,\qquad y-z=1.</math>
把这个表达式分别代入三条原方程,左端恒为四、九、五。自由参数不是计算中遗漏的未知量,而是问题本身没有约束住的方向。
第三条减去第一条,得到的仍是 <math>y-z=1</math>。所以两条新的方程重复了,只有一个关系限制 <math>y,z</math>
 
把第三个方程右端从五改为六,消元会同时要求 <math>y-z=1</math> <math>y-z=2</math>,从而无解。同一个系数矩阵,有些右端可达、有些不可达。若删去冗余约束并另加 <math>z=2</math>,自由方向被固定,解变成 <math>(-1,3,2)</math>。解的三种状态由约束独立性与相容性共同决定,而不是只由方程数决定。


初等行变换之所以合法,是它们具有逆操作:交换两行可交换回来,乘非零数可除回来,加上另一行的倍数可减回来。因此它们不改变解集。消元时必须对右端同步操作。用近似小数计算还需选取合适的主元,以免除以很小的数而放大舍入误差;精确代数中的合法步骤并不自动是良好的数值步骤。
令可以自由选择的 <math>z=t</math>,就有 <math>y=1+t</math>;代回第一条,得 <math>x=4-(1+t)-t=3-2t</math>。全部解为
<math display="block">\begin{pmatrix}x\\y\\z\end{pmatrix}=\begin{pmatrix}3\\1\\0\end{pmatrix}+t\begin{pmatrix}-2\\1\\1\end{pmatrix},\qquad t\in\mathbb R.</math>
当 <math>t=0</math>,解是 <math>(3,1,0)</math>;当 <math>t=2</math>,解是 <math>(-1,3,2)</math>。两者都满足原方程。几何上,全部解沿同一条直线排列;代数上,三个未知量只受到两条独立约束。


== 核与像把全部解写成一个整体 ==
[[File:Gezhi-expand-linear-solutions.svg|frame|center|alt=三维斜投影中,所有解位于经过三一零且方向为负二一一的直线上,标出参数零一二的三个点|图中的直线由参数式给出,三个坐标随同一个参数一起改变。斜投影只帮助辨认位置,是否满足方程仍要代回核验。]]
线性映射的核是所有映到零的输入,像是所有能出现的输出;二者都是子空间,因为线性组合可以通过映射。若 <math>x_0</math> 是 <math>Ax=b</math> 的一个特解,任何齐次解 <math>z</math> 都给出另一个解 <math>x_0+z</math>。反过来,任意两解之差满足 <math>A(x-x_0)=0</math>。因此
<math display="block">\{x:Ax=b\}=x_0+\ker A</math>
在方程相容时成立。这个表达式不只给出某个答案,还描述全部答案之间的关系。


齐次解集通过原点,是向量子空间;非齐次解集通常是它的平移,是仿射空间。前面的三元方程中,核由 <math>(-2,1,1)</math> 张成,特解选成 <math>(3,1,0)</math>。特解并不唯一,换一个特解只是换了同一条解直线的起点,整条解集不变。


设定义域为有限维空间 <math>V</math>,线性映射为 <math>T:V\to W</math>。秩—零度定理说
若第三条右端改成六,消元将同时要求 <math>y-z=1</math> <math>y-z=2</math>,方程便无解。若保留前两条、把第三条换成 <math>z=2</math>,则自由参数被固定,解唯一。因此决定解的状态的是约束是否独立、彼此是否相容,而不仅是方程和未知量的数量。
<math display="block">\dim V=\dim\ker T+\dim\operatorname{im}T.</math>
它不要求映射是方阵,也不要求满射。右侧分别统计被消去的独立输入方向和实际产生的独立输出方向。对矩阵,像的维数就是秩。


'''证明。''' 先选核的一组基 <math>u_1,\ldots,u_k</math>,再把它扩充成定义域的基 <math>u_1,\ldots,u_k,v_1,\ldots,v_r</math>。任意输入都能按这些向量展开;应用 <math>T</math> 后,前一部分消失,所以 <math>T(v_1),\ldots,T(v_r)</math> 张成像。若这些像的某个线性组合为零,原向量对应的组合便属于核,因而能写成各个 <math>u_i</math> 的组合。移到一侧后得到完整基的一个零组合,其所有系数都必须为零。因此这些像也线性无关,像的维数是 <math>r</math>,而定义域维数是 <math>k+r</math>,定理得证。
== 把同一个问题读成向量的组合 ==
把系数排成矩阵,方程组简写为
<math display="block">A\begin{pmatrix}x\\y\\z\end{pmatrix}=b,\qquad A=\begin{pmatrix}1&1&1\\2&3&1\\1&2&0\end{pmatrix},\qquad b=\begin{pmatrix}4\\9\\5\end{pmatrix}.</math>
按行读,就是刚才的三条方程。按列读,则是
<math display="block">x\begin{pmatrix}1\\2\\1\end{pmatrix}+y\begin{pmatrix}1\\3\\2\end{pmatrix}+z\begin{pmatrix}1\\1\\0\end{pmatrix}=b.</math>
求解是在问:给这三列各取多少倍,才能拼成目标输出 <math>b</math>?所有能拼成的输出称为矩阵的'''列空间''',也就是线性映射的'''像'''。目标在列空间中,方程才有解。


证明中特意扩充的是核的基,而不是任意挑一些输出。被消去的方向先分出来,剩余基向量的像才保证无关。这一步使“维数守恒”的直觉变成完整论证。它也立即说明同维有限维空间之间,单射与满射等价;在不同维度或无限维情形下,不能直接照搬这个结论。
本例第二列加第三列等于第一列的两倍。因此,沿输入方向 <math>(-2,1,1)</math> 增加任意倍数,对输出的总改变都是零。这正是上一节留下的自由方向。


== 四个基本子空间让可解性更透明 ==
== 线性意味着保持组合 ==
对于实矩阵,列空间在输出空间中,核在输入空间中;转置矩阵则给出另外两个空间:行空间和左零空间。左零空间由满足 <math>A^{\mathsf T}y=0</math> 的输出空间向量构成。这里“左”只是因为也可写成 <math>y^{\mathsf T}A=0</math>,并不是在矩阵图上截取左边几列。
矩阵所描述的过程满足
<math display="block">T(au+bv)=aT(u)+bT(v),</math>
其中 <math>u,v</math> 是输入向量,<math>a,b</math> 是实数。这样的映射称为'''线性映射'''。先把输入相加、缩放,再计算输出,与分别计算后同样相加、缩放,结果一致。


<math>Ax=0</math>,输入向量与矩阵每一行的点积都为零,因此核与行空间正交。类似地,左零空间与列空间正交。结合维数计数,可以得到它们分别是完整的正交补。于是一个目标位于列空间,等价于它与所有左零空间向量正交。这给出比反复求解更直接的相容性检验。
例如 <math>T(x,y)=(x+2y,3x-y)</math> 满足这条规则。若 <math>u=(u_1,u_2)</math>、<math>v=(v_1,v_2)</math>,把 <math>au+bv</math> 代入第一个输出,就得到
<math display="block">a u_1+b v_1+2(a u_2+b v_2)=a(u_1+2u_2)+b(v_1+2v_2),</math>
第二个输出同理。这便验证了线性。


例如 <math>A=\begin{pmatrix}1&2\\2&4\\3&6\end{pmatrix}</math> 的列空间由 <math>(1,2,3)^{\mathsf T}</math> 张成,核由 <math>(-2,1)^{\mathsf T}</math> 张成。向量 <math>(-2,1,0)^{\mathsf T}</math> 与 <math>(-3,0,1)^{\mathsf T}</math> 构成左零空间的一组基。因此目标 <math>b=(b_1,b_2,b_3)^{\mathsf T}</math> 可达,当且仅当 <math>b_2=2b_1</math> 且 <math>b_3=3b_1</math>。这两个关系正好描述一条直线。
一次函数 <math>f(x)=x+1</math> 的图像虽是直线,却不是这里的线性映射:它把零送到一,而线性规则要求 <math>T(0)=0</math>。它属于仿射映射。线性代数中的“线性”指运算规律,不是图像是否为直线。


行变换保持行空间与核,但通常改变列空间及左零空间所在的具体方向。若消元后的矩阵出现底部零行,不能据此声称原矩阵的列也在对应坐标处为零。正确做法是利用消元找独立列的位置,再回到原矩阵取列。这一区分见 [https://math.mit.edu/~gs/linearalgebra/ila5/linearalgebra5_3-5.pdf Strang 对四个子空间的讨论]。
保持组合还有一个直接结果:知道一组基的输出,就知道所有输入的输出。若 <math>x=\sum_i x_i e_i</math>,则 <math>T(x)=\sum_i x_i T(e_i)</math>。把 <math>T(e_i)</math> 的坐标排成矩阵各列,便得到 <math>T(x)=Ax</math>;这正是矩阵表示线性映射的原因。


== 不相容的方程怎样变成投影 ==
== 核、像与所有解的形状 ==
测量数据可能不落在模型允许的列空间中。这时不存在精确解,却可以在允许的输出中找距离目标最近的点,即使 <math>\|Ax-b\|^2</math> 最小。这里使用标准欧氏长度;若不同观测的单位或精度不同,应先说明归一化或加权方式,否则“距离最小”可能没有合适的统计含义。
产生零输出的输入构成'''核''',记作
<math display="block">\ker A=\{z:Az=0\}.</math>
它记录变换无法辨别的输入方向。若 <math>x_0</math> 是 <math>Ax=b</math> 的一个解,核中的每个 <math>z</math> 都给出另一个解,因为
<math display="block">A(x_0+z)=Ax_0+Az=b+0=b.</math>
反过来,任意解 <math>x</math> 与 <math>x_0</math> 之差满足 <math>A(x-x_0)=b-b=0</math>。所以全部解恰好是
<math display="block">x_0+\ker A.</math>
前面的方程组中,特解是 <math>(3,1,0)</math>,核是 <math>(-2,1,1)</math> 的所有倍数,因而解集是一条平移后的直线。


[[File:Gezhi-linear-projection.svg|frame|center|alt=目标向量二一垂直投影到横轴得到二零,残差零一与横轴垂直|在允许的输出子空间中寻找最近点。最佳拟合落在子空间内,残差与整个子空间正交。]]
核与像都是向量子空间。以核为例,若 <math>Au=Av=0</math>,则 <math>A(au+bv)=a0+b0=0</math>,任意线性组合仍在核中。像也如此:两个可达输出的线性组合,可以由相应输入的组合产生。


设候选最佳输出为 <math>p=A\hat x</math>,残差为 <math>r=b-p</math>。若残差与列空间正交,对任何扰动 <math>Ah</math>,勾股关系给出
像的维数称为'''秩''',核的维数称为'''零度'''。对于有 <math>n</math> 个输入坐标的矩阵,'''秩—零度定理'''给出
<math display="block">\|b-A(\hat x+h)\|^2=\|r-Ah\|^2=\|r\|^2+\|Ah\|^2\ge\|r\|^2.</math>
<math display="block">n=\dim\ker A+\operatorname{rank}A.</math>
因此正交性足以保证最优。反过来,沿任何列空间方向略微移动,平方距离的一次项必须为零,否则选适当方向就能降低距离;这迫使残差与该空间正交。写成矩阵就是正规方程
本例有一个被消去的独立输入方向、两个独立输出方向,所以 <math>3=1+2</math>
<math display="block">A^{\mathsf T}A\hat x=A^{\mathsf T}b.</math>
这不是假设数据突然精确满足原方程,而是表达最佳近似所满足的条件。


完整例子是用直线拟合三个点 <math>(0,1),(1,2),(2,2)</math>。令拟合形式为 <math>a+c(t-1)</math>,使用中心化后的自变量有助于把两列正交分开。设计矩阵两列是 <math>(1,1,1)^{\mathsf T}</math> 与 <math>(-1,0,1)^{\mathsf T}</math>,点积为零。正规方程因此直接给出 <math>3a=5</math> 和 <math>2c=1</math>,即 <math>a=5/3,c=1/2</math>。
=== 秩—零度关系的证明 ===
先取核的一组基 <math>u_1,\ldots,u_k</math>,再补入 <math>v_1,\ldots,v_r</math>,使整个列表成为输入空间的基。于是输入维数是 <math>k+r</math>。


三个拟合值依次为 <math>7/6,5/3,13/6</math>,残差为 <math>-1/6,1/3,-1/6</math>。残差之和为零,与中心化时间列的点积也为零,独立验证了正交条件。平方误差总和为 <math>1/36+1/9+1/36=1/6</math>。还原成常见形式,拟合直线是 <math>\hat y=7/6+t/2</math>。算例中的数据是用于解释方法的给定数值,不是经验规律。
任意输入可写成 <math>\sum_i a_i u_i+\sum_j b_jv_j</math>。应用 <math>A</math> 后,核中的部分消失,输出成为 <math>\sum_j b_jAv_j</math>。所以 <math>Av_1,\ldots,Av_r</math> 张成像。


最佳输出作为到子空间的正交投影是唯一的,但拟合系数未必唯一。若设计矩阵有两列完全相同,两组不同系数可以产生同一个输出;只有列满秩时系数才唯一。数值求解通常使用 QR 分解或奇异值分解,而不是直接形成正规方程,因为后者会加重某些条件敏感性。方法的几何推导与具体计算实现需要区分。
还需证明这些输出无关。若 <math>\sum_j c_jAv_j=0</math>,那么 <math>\sum_jc_jv_j</math> 属于核,可写成 <math>\sum_i d_i u_i</math>。移项得到
<math display="block">\sum_jc_jv_j-\sum_i d_i u_i=0.</math>
完整列表是一组基,故所有系数为零,特别是每个 <math>c_j=0</math>。因此这些输出是像的一组基,像的维数为 <math>r</math>,定理得证。


== 特征方向解释重复作用 ==
这个证明把“丢失的方向”和“仍能辨别的方向”分别计数。对于同样有 <math>n</math> 个输入和输出坐标的方阵,核只有零向量时,秩为 <math>n</math>;此时每个输出都有唯一输入,矩阵可逆。
对线性算子 <math>A</math>,非零向量 <math>v</math> 若满足 <math>Av=\lambda v</math>,就是特征向量,<math>\lambda</math> 为对应特征值。它描述的是变换后仍在同一直线上的方向;负特征值会反转方向,所以不能简单说成“方向完全不变”。零向量被排除,是为了避免任意标量都满足该等式。


<math>A=\begin{pmatrix}2&1\\1&2\end{pmatrix}</math>。直接计算 <math>A(1,1)^{\mathsf T}=3(1,1)^{\mathsf T}</math>,<math>A(1,-1)^{\mathsf T}=(1,-1)^{\mathsf T}</math>。任意输入可以拆成这两个独立方向。例如 <math>(2,0)=(1,1)+(1,-1)</math>,所以
== 不必消元到底,也能发现相容条件 ==
<math display="block">A^k\begin{pmatrix}2\\0\end{pmatrix}=3^k\begin{pmatrix}1\\1\end{pmatrix}+\begin{pmatrix}1\\-1\end{pmatrix}.</math>
回到最初的矩阵,第三行恰好等于第二行减第一行。因此它们右端也必须满足同样关系:
这避免了反复展开大乘积,也说明重复作用时不同方向可能以不同速率增长。
<math display="block">b_3=b_2-b_1,\qquad b_1-b_2+b_3=0.</math>
原来的 <math>(4,9,5)</math> 满足条件;把第三个数改成六就不满足。左边的约束不是对未知数的猜测,而是对所有可能输出都成立的限制。


并非所有矩阵都有足够多的特征向量。非平凡剪切矩阵 <math>\begin{pmatrix}1&1\\0&1\end{pmatrix}</math> 只有一条特征方向,无法用两个独立特征向量作为平面的基。实平面旋转九十度更没有实特征向量;扩充到复数域后才有特征值 <math>i,-i</math>。因此使用对角化必须检查数域与是否有完整的特征向量组。
<math>w=(1,-1,1)^{\mathsf T}</math>,行关系可写成 <math>w^{\mathsf T}A=0</math>。若 <math>Ax=b</math> 有解,那么
<math display="block">w^{\mathsf T}b=w^{\mathsf T}Ax=0.</math>
<math>w</math> 这样与全部列都垂直的向量构成 <math>\ker A^{\mathsf T}</math>,称为左零空间。因此相容条件说:目标输出必须与左零空间垂直。


实对称矩阵则有一组正交归一的特征向量基,这就是有限维实谱定理。不同特征值对应的特征向量正交,可以直接证明:对称性使 <math>\langle Av,w\rangle=\langle v,Aw\rangle</math>,代入特征关系得 <math>(\lambda-\mu)\langle v,w\rangle=0</math>,特征值不同便迫使点积为零。完整存在性证明还需要进一步论证,本条不把这一简短计算误当成整个谱定理的证明。
在有限维实数空间中,这个必要条件也是充分条件。因为列空间包含在 <math>(\ker A^{\mathsf T})^\perp</math> 中,且两者维数都等于 <math>\operatorname{rank}A</math>,它们实际相同。这里使用了行秩等于列秩,见后面的四个基本子空间资料。于是
<math display="block">Ax=b\text{ 有解}\quad\Longleftrightarrow\quad
b\perp\ker A^{\mathsf T}.</math>
本例左零空间只有一个独立方向,所以一条右端关系就检查完所有相容条件。这与输入空间中的核互相补充:左零空间决定目标能否到达,核决定到达同一目标的输入能否唯一。


== 分解、坐标与问题本身的区别 ==
== 数据不满足方程时:寻找最近的输出 ==
换基把同一线性算子表示成不同矩阵。若新基在旧坐标中的列矩阵为 <math>S</math>,新表示是 <math>S^{-1}AS</math>。对角化的目的,是寻找使变换分成独立缩放方向的基;QR 分解的目的则是用正交方向稳定处理列空间。它们解决不同问题,不是都在寻找同一种“最好矩阵”。
测量数据往往不能被模型精确表示。这时可把问题改为:在允许的输出中,找与给定数据距离最近的点。


奇异值分解适用于矩形矩阵,并分别选择输入、输出的正交坐标,使映射可以看成正交变换之间夹着各方向的缩放。奇异值描述这些缩放量,零奇异值对应丢失的方向。与特征值不同,奇异值不要求输入与输出是同一个空间。在数据压缩中舍弃很小的奇异方向,是近似建模步骤,不能说成原数据本来就没有那些成分。
最简单的情形是允许输出只能在横轴上,而目标为 <math>b=(2,1)</math>。候选输出 <math>p=(a,0)</math> 与目标的距离平方为
<math display="block">\|b-p\|^2=(2-a)^2+1.</math>
当 <math>a=2</math> 时取最小值。因此最佳输出是 <math>(2,0)</math>,误差 <math>(0,1)</math> 与横轴垂直。


实务中还有稀疏性:大量元素为零,意味着许多变量之间没有直接耦合。选择算法时保留稀疏结构,可能比套用一个通用求逆公式更重要。网络的关联矩阵、局部差分方程和分块模型都可能产生这类结构。数学上的同构忽略某些表示差异,计算工作量却可能很依赖所选表示。
[[File:Gezhi-linear-projection-theme.svg|frame|center|alt=点二一向横轴作垂线,垂足为二零,残差为零一|目标到垂足的线段最短;移动垂足会增加一个非负的水平距离平方。]]


== 从线性结构读懂三个进一步问题 ==
一般情况下,允许输出是矩阵的列空间。设最佳输出候选为 <math>p=A\hat x</math>,残差为 <math>r=b-p</math>。如果残差与所有列都垂直,它也与列空间中的任意 <math>Ah</math> 垂直。换一个输入 <math>\hat x+h</math> 后,
=== 两个状态之间的重复迁移 ===
<math display="block">\|b-A(\hat x+h)\|^2=\|r-Ah\|^2=\|r\|^2+\|Ah\|^2\ge\|r\|^2.</math>
考虑一个简化的两状态过程。每步开始时第一状态的八成留在原处、两成转到第二状态;第二状态的三成转到第一状态、七成留在原处。若列向量记录两个状态的比例,一步迁移矩阵为
中间没有交叉项,正是因为垂直。因此这样的输出必定最近。
<math display="block">P=\begin{pmatrix}0.8&0.3\\0.2&0.7\end{pmatrix}.</math>
每列之和为一,保证总比例保持一;各项非负,保证比例不变成负数。这里采用列向量约定,有些教材采用行向量并把矩阵转置,两种表示不能交叉混用。


求满足 <math>Ps=s</math> 且总和为一的状态,得到 <math>s=(0.6,0.4)^{\mathsf T}</math>。另一个方向 <math>(1,-1)^{\mathsf T}</math> 的特征值为二分之一。从全部处于第一状态开始,初始向量可分解成稳定部分加偏离部分,因此
反过来,如果残差与某列空间方向 <math>v</math> 的点积非零,把输出移动 <math>tv</math>,误差平方变为
<math display="block">P^k\begin{pmatrix}1\\0\end{pmatrix}=\begin{pmatrix}0.6\\0.4\end{pmatrix}+2^{-k}\begin{pmatrix}0.4\\-0.4\end{pmatrix}.</math>
<math display="block">\|r-tv\|^2=\|r\|^2-2t\,r^{\mathsf T}v+t^2\|v\|^2.</math>
一步后为八成与两成,两步后为七成与三成,与直接矩阵乘法一致。偏离部分逐步缩小,所以比例趋近六成与四成。这个结论依赖本例的矩阵与特征值,不能推断任意迁移系统都具有相同的唯一稳定状态或相同收敛速度。
选一个与 <math>r^{\mathsf T}v</math> 同号且足够小的 <math>t</math>,就能使误差减小。所以最优点处残差必须与列空间垂直。写成矩阵形式,就是
<math display="block">A^{\mathsf T}(b-A\hat x)=0,\qquad A^{\mathsf T}A\hat x=A^{\mathsf T}b.</math>
这称为正规方程,是[[最小二乘法]]的基本条件。


这一例子把特征值一解释为被保留的整体比例,把绝对值小于一的特征值解释为逐渐衰减的偏离方向。若某种系统还含有绝对值等于一的其他方向,就可能保留振荡;若模型允许增长,总量约束也可能不再成立。结构计算提供的是在所列假设下的结论,迁移比例来自何种数据仍需独立估计。
例如用直线拟合三个给定点 <math>(0,1),(1,2),(2,2)</math>。写成 <math>\hat y=a+c(t-1)</math>,设计矩阵两列分别为 <math>(1,1,1)</math> 和 <math>(-1,0,1)</math>。它们点积为零,平方长度分别为三、二,因此正规方程为
<math display="block">3a=1+2+2=5,\qquad 2c=(-1)\cdot1+0\cdot2+1\cdot2=1.</math>
得到 <math>a=5/3,c=1/2</math>,即 <math>\hat y=7/6+t/2</math>。三个残差为 <math>-1/6,1/3,-1/6</math>,其和为零,与 <math>(-1,0,1)</math> 的点积也为零,恰好验证了正交条件。


=== 线性函数把向量变成可比较的数 ===
== 重复变换与特征方向 ==
测量总成本、求某方向上的分量、读取多项式某项系数,都可能是把向量送到标量的线性映射,称为线性泛函。例如把两个投入量送到总价,价格系数固定时,总价保持投入的叠加与数乘。定义在同一空间上的全部线性泛函又组成一个向量空间,称为对偶空间。
有些方向经过变换后仍在原来那条直线上,只改变倍数。若非零向量 <math>v</math> 满足
<math display="block">Av=\lambda v,</math>
就称它为'''特征向量''',<math>\lambda</math> 为特征值。重复作用时,<math>A^2v=\lambda^2v</math>,一般有 <math>A^kv=\lambda^kv</math>。沿这样的方向,不必每次重新做完整矩阵乘法。


选定基以后,一个线性泛函可以写成行向量乘坐标列,因此方程组的每一行也可以理解成一种线性测量。一个未知向量被若干测量限定,而核记录所有测量都看不见的方向。这个观点把“线性方程的约束”与“信息能否识别未知量”接在一起,特别适合解释为什么重复测量同一方向并不会增加独立信息。
考虑
<math display="block">A=\begin{pmatrix}2&1\\1&2\end{pmatrix}.</math>
直接计算可得 <math>A(1,1)=3(1,1)</math>、<math>A(1,-1)=(1,-1)</math>。两个方向独立,任意 <math>(x,y)</math> 都能分解为
<math display="block">(x,y)=\frac{x+y}{2}(1,1)+\frac{x-y}{2}(1,-1).</math>
[[File:Gezhi-teaching-eigendirections.svg|frame|center|alt=矩阵把一一方向伸长三倍,保留一负一方向,二零向量分解成这两个方向之和|先把白色向量分解到两条虚线方向,再分别考虑各方向会缩放多少。]]


不过把泛函自然地认成一个普通向量,需要额外选择内积来建立对应;不能因为欧氏坐标中常用点积表示,就认为抽象空间中的向量与测量规则本来就是同一种对象。坐标与对偶坐标在换基时采用相配的变换,目的是保持实际测量值不变。这是同一对象可以有不同表示的又一个例子。
图中 <math>v=(1,1)</math> 被放大三倍,<math>w=(1,-1)</math> 保持不变。重复变换时,只需分别重复这两个缩放。


=== 二次型连接几何与优化 ===
因此
线性代数还研究由对称矩阵生成的二次表达式。例如
<math display="block">A^k(x,y)=3^k\frac{x+y}{2}(1,1)+\frac{x-y}{2}(1,-1).</math>
<math display="block">q(x,y)=x^2+2xy+2y^2=(x+y)^2+y^2.</math>
例如 <math>(2,0)</math> 的两项系数都是一,做 <math>k</math> 次后就是 <math>(3^k+1,3^k-1)</math>。当 <math>k=1</math>,得到 <math>(4,2)</math>,与直接相乘一致。
平方和表达式说明它对非零输入严格为正,而只有零输入取零。这种正定性决定相应等值线的几何,也保证把该二次项用作误差代价时不会沿某个非零方向降低到负值。配方在这里等价于换一种方式辨认独立的平方贡献。


若改成 <math>x^2-y^2</math>,原点虽使两个一阶偏导数都为零,却沿横轴向上、沿纵轴向下,因此不是最小值。这解释了[[优化]]中为什么驻点条件只是必要检查之一:还要查看二次结构在各个方向的符号。实对称矩阵的谱定理把这种符号判断转成特征值判断,但只有在适用的对称条件与数域明确时才能使用。
当一组基全由特征向量组成时,称矩阵可对角化。在这组基下,变换只是分别缩放各个坐标。不过这并非总能做到:剪切矩阵 <math>S=\begin{pmatrix}1&1\\0&1\end{pmatrix}</math> 的特征方程给出 <math>\lambda=1</math>,而 <math>Sv=v</math> 要求第二坐标为零,只有一个独立特征方向,不能组成平面的基。


== 哪些结论不能越过前提 ==
=== 两个状态之间的迁移 ===
“方程有解”与“模型正确”不同。即使线性方程精确求解,输入数据、变量单位、边界条件或者线性假设仍可能不适合现实问题。残差小表明模型输出贴近给定数据,但不能证明模型可以可靠预测范围以外的情况。[[数学建模]]与[[最小二乘法]]需要另行讨论检验与误差。
设一个系统每步有第一状态的八成留在原处、两成转到第二状态;第二状态的三成转到第一状态、七成留在原处。用列向量记录比例,一步变化为
 
<math display="block">P=\begin{pmatrix}0.8&0.3\\0.2&0.7\end{pmatrix}.</math>
“近似相关”也与“精确线性相关”不同。测量误差会使原本相关的列看起来略微独立,浮点软件必须用容差判断有效秩。容差过大会丢掉真实信息,过小则把噪声当成独立方向。因此实际报告中的秩最好附上尺度或容差说明。精确数学提供对象定义,数值分析解释计算结果怎样接近这些对象。
各列非负且和为一,保证更新后仍为总和一的比例。


有限维中很多结论依靠基数有限。无限维空间里的线性映射可以单射而不满射,例如把多项式乘以自变量:结果为零只可能原多项式为零,但常数一不在像中。无限维分析还涉及算子是否连续、值域是否闭合等额外问题。把有限矩阵结论未经条件检查推广到函数空间,会漏掉这些实质差异。
稳定比例 <math>s=(u,v)</math> 应满足 <math>Ps=s</math> 和 <math>u+v=1</math>。第一条分量方程为 <math>0.8u+0.3v=u</math>,所以 <math>0.2u=0.3v</math>,即 <math>u:v=3:2</math>。于是 <math>s=(0.6,0.4)</math>。


== 从消元算法到抽象学科 ==
偏离方向满足 <math>P(1,-1)=0.5(1,-1)</math>。从全部位于第一状态的 <math>(1,0)</math> 出发,先分解为
线性方程求解有很长历史。《九章算术》第八章“方程”把实际问题排列成系数阵列,通过消去求出未知量;这是早于现代矩阵符号的计算传统。[https://old.maa.org/press/periodicals/convergence/illustrating-the-nine-chapters-on-the-mathematical-art-their-use-in-a-college-mathematics-history-1 MAA 关于《九章算术》内容的研究]说明了方程章及其问题类型。把这一路线写成“高斯一个人发明了消元”并不准确。
<math display="block">(1,0)=(0.6,0.4)+(0.4,-0.4).</math>
稳定部分不变,偏离部分每步减半,所以
<math display="block">P^k(1,0)=(0.6,0.4)+2^{-k}(0.4,-0.4).</math>
一步后为 <math>(0.8,0.2)</math>,两步后为 <math>(0.7,0.3)</math>,最终趋向 <math>(0.6,0.4)</math>。这个模型中,特征值一表示不变部分,特征值二分之一表示逐渐衰减的部分。


十九世纪的矩阵运算与抽象线性空间研究,使算法对象被放进统一理论。Cayley 的矩阵工作、Grassmann 的扩张理论以及 Peano 的线性空间公理化属于不同但相互关联的贡献。现代线性代数因此没有一个涵盖全部内容的单一“发现者”。[https://mathshistory.st-andrews.ac.uk/HistTopics/Abstract_linear_spaces/ MacTutor 的抽象线性空间史]提供了后一路线的背景。
[[File:Gezhi-expand-linear-markov.svg|frame|center|alt=两状态比例随步数变化,第一状态从一逐步下降趋于零点六,第二状态从零上升趋于零点四;两比例始终相加为一|点表示整数步的状态,连线只帮助追踪次序。虚线标出稳定比例,每一步到稳定比例的偏差都减半。]]


今日课程同时教授消元、空间、正交和特征结构,是对长期积累的重新组织。历史上用于算实际问题的方法,往往早于完整定义;理论成熟后,定义又使结果能跨越原有模型。区分算法历史与概念历史,有助于理解“谁做了什么”,也避免把后来的统一语言错误地投射到古代文献上。
还可以把两状态模型化成一条[[差分方程模型|标量递推]]。令第一状态比例为 <math>u_k</math>,第二状态便是 <math>1-u_k</math>,所以
<math display="block">u_{k+1}=0.8u_k+0.3(1-u_k)=0.5u_k+0.3.</math>
减去平衡值0.6,得到 <math>u_{k+1}-0.6=0.5(u_k-0.6)</math>。这正是矩阵特征方向计算得到的衰减规律;消去一个受总量约束的坐标后,同一过程也可由一维递推描述。


== English overview ==
<div lang="en" class="math-english-summary">
Linear algebra studies vector spaces and maps that preserve linear combinations. A matrix records such a map after bases have been selected. The subject connects systems of equations, geometry, approximation, and the behavior of repeated transformations.


A system Ax = b is solvable exactly when b belongs to the column space of A. When one solution exists, every solution is that particular solution plus an element of the null space. The rank–nullity theorem explains how input dimensions divide between directions that disappear and independent directions that reach the output. Its proof uses a basis of the kernel extended to a basis of the domain.
== 历史与进一步阅读 ==
《九章算术》第八章“方程”已经通过排列系数、逐步消去来求解实际问题中的线性方程组。[https://old.maa.org/press/periodicals/convergence/illustrating-the-nine-chapters-on-the-mathematical-art-their-use-in-a-college-mathematics-history-1 美国数学协会对《九章算术》的介绍]提供了这些算法的背景。


When measured data do not admit an exact solution, least squares replaces equality with the closest output in the column space. The residual is perpendicular to that space. A worked three point fit verifies both the coefficients and this orthogonality. Eigenvectors provide directions on which a square linear map acts by scaling, but diagonalization is not always possible. Numerical stability, units, and model assumptions remain essential: a mathematically valid calculation is not by itself evidence that a physical or statistical model is appropriate.
十九世纪,矩阵运算与抽象线性空间逐步形成:Grassmann 的《扩张论》发表于 1844 年,Cayley 在 1858 年系统研究矩阵,Peano 在 1888 年给出线性空间的公理化定义。[https://mathshistory.st-andrews.ac.uk/HistTopics/Abstract_linear_spaces/ MacTutor:抽象线性空间史]。现代线性代数把消元、几何和抽象结构组织在一起,使同一结论能够用于坐标向量、多项式及其他线性对象。
</div>


== 编者评注(AI 辅助) ==
进一步学习可沿两条方向展开:[[最小二乘法]]和[[优化]]研究近似与最优问题;[[微分方程]]研究连续时间中状态如何变化。计算中还需区分精确相关与近似相关:当数据有舍入误差时,接近相关的列可能使系数对误差敏感,这属于数值线性代数要处理的问题。
本条把同一个方程问题沿“消元—核与像—投影”推进,避免把线性代数写成互不相连的术语表。维数定理给出完整证明,谱定理则明确区分已证的正交性与未展开的存在性。算例保留残差和回代检查,是为了让计算可以复算。内容由 AI 辅助整理;编者认为结构理解应与数值边界同时呈现,但这种教学安排不代替实际建模中的数据检验。


== 参考资料与后续阅读 ==
== 参考资料与后续阅读 ==

2026年9月20日 (日) 10:06的最新版本

线性代数(linear algebra)研究向量之间的线性关系,以及保持这些关系的变换。它从一次方程组的求解出发,发展出向量空间矩阵、正交投影和特征值等方法。许多看似不同的问题——方程有多少解、怎样拟合有误差的数据、重复执行一个过程会怎样——都能在这套框架中联系起来。

本文以实数为系数。阅读下面的例子,只需会解简单的一次方程;矩阵的行列运算和基的定义可分别查阅矩阵向量空间

三条方程为什么未必能确定三个未知量

考虑方程组 {x+y+z=4,2x+3y+z=9,x+2y=5. 先用第一条消去后两条中的 x。第二条减去第一条的两倍,得到 (2x+3y+z)2(x+y+z)=98,yz=1. 第三条减去第一条,得到的仍是 yz=1。所以两条新的方程重复了,只有一个关系限制 y,z

令可以自由选择的 z=t,就有 y=1+t;代回第一条,得 x=4(1+t)t=32t。全部解为 (xyz)=(310)+t(211),t.t=0,解是 (3,1,0);当 t=2,解是 (1,3,2)。两者都满足原方程。几何上,全部解沿同一条直线排列;代数上,三个未知量只受到两条独立约束。

三维斜投影中,所有解位于经过三一零且方向为负二一一的直线上,标出参数零一二的三个点
图中的直线由参数式给出,三个坐标随同一个参数一起改变。斜投影只帮助辨认位置,是否满足方程仍要代回核验。


若第三条右端改成六,消元将同时要求 yz=1yz=2,方程便无解。若保留前两条、把第三条换成 z=2,则自由参数被固定,解唯一。因此决定解的状态的是约束是否独立、彼此是否相容,而不仅是方程和未知量的数量。

把同一个问题读成向量的组合

把系数排成矩阵,方程组简写为 A(xyz)=b,A=(111231120),b=(495). 按行读,就是刚才的三条方程。按列读,则是 x(121)+y(132)+z(110)=b. 求解是在问:给这三列各取多少倍,才能拼成目标输出 b?所有能拼成的输出称为矩阵的列空间,也就是线性映射的。目标在列空间中,方程才有解。

本例第二列加第三列等于第一列的两倍。因此,沿输入方向 (2,1,1) 增加任意倍数,对输出的总改变都是零。这正是上一节留下的自由方向。

线性意味着保持组合

矩阵所描述的过程满足 T(au+bv)=aT(u)+bT(v), 其中 u,v 是输入向量,a,b 是实数。这样的映射称为线性映射。先把输入相加、缩放,再计算输出,与分别计算后同样相加、缩放,结果一致。

例如 T(x,y)=(x+2y,3xy) 满足这条规则。若 u=(u1,u2)v=(v1,v2),把 au+bv 代入第一个输出,就得到 au1+bv1+2(au2+bv2)=a(u1+2u2)+b(v1+2v2), 第二个输出同理。这便验证了线性。

一次函数 f(x)=x+1 的图像虽是直线,却不是这里的线性映射:它把零送到一,而线性规则要求 T(0)=0。它属于仿射映射。线性代数中的“线性”指运算规律,不是图像是否为直线。

保持组合还有一个直接结果:知道一组基的输出,就知道所有输入的输出。若 x=ixiei,则 T(x)=ixiT(ei)。把 T(ei) 的坐标排成矩阵各列,便得到 T(x)=Ax;这正是矩阵表示线性映射的原因。

核、像与所有解的形状

产生零输出的输入构成,记作 kerA={z:Az=0}. 它记录变换无法辨别的输入方向。若 x0Ax=b 的一个解,核中的每个 z 都给出另一个解,因为 A(x0+z)=Ax0+Az=b+0=b. 反过来,任意解 xx0 之差满足 A(xx0)=bb=0。所以全部解恰好是 x0+kerA. 前面的方程组中,特解是 (3,1,0),核是 (2,1,1) 的所有倍数,因而解集是一条平移后的直线。

核与像都是向量子空间。以核为例,若 Au=Av=0,则 A(au+bv)=a0+b0=0,任意线性组合仍在核中。像也如此:两个可达输出的线性组合,可以由相应输入的组合产生。

像的维数称为,核的维数称为零度。对于有 n 个输入坐标的矩阵,秩—零度定理给出 n=dimkerA+rankA. 本例有一个被消去的独立输入方向、两个独立输出方向,所以 3=1+2

秩—零度关系的证明

先取核的一组基 u1,,uk,再补入 v1,,vr,使整个列表成为输入空间的基。于是输入维数是 k+r

任意输入可写成 iaiui+jbjvj。应用 A 后,核中的部分消失,输出成为 jbjAvj。所以 Av1,,Avr 张成像。

还需证明这些输出无关。若 jcjAvj=0,那么 jcjvj 属于核,可写成 idiui。移项得到 jcjvjidiui=0. 完整列表是一组基,故所有系数为零,特别是每个 cj=0。因此这些输出是像的一组基,像的维数为 r,定理得证。

这个证明把“丢失的方向”和“仍能辨别的方向”分别计数。对于同样有 n 个输入和输出坐标的方阵,核只有零向量时,秩为 n;此时每个输出都有唯一输入,矩阵可逆。

不必消元到底,也能发现相容条件

回到最初的矩阵,第三行恰好等于第二行减第一行。因此它们右端也必须满足同样关系: b3=b2b1,b1b2+b3=0. 原来的 (4,9,5) 满足条件;把第三个数改成六就不满足。左边的约束不是对未知数的猜测,而是对所有可能输出都成立的限制。

w=(1,1,1)𝖳,行关系可写成 w𝖳A=0。若 Ax=b 有解,那么 w𝖳b=w𝖳Ax=0.w 这样与全部列都垂直的向量构成 kerA𝖳,称为左零空间。因此相容条件说:目标输出必须与左零空间垂直。

在有限维实数空间中,这个必要条件也是充分条件。因为列空间包含在 (kerA𝖳) 中,且两者维数都等于 rankA,它们实际相同。这里使用了行秩等于列秩,见后面的四个基本子空间资料。于是 Ax=b 有解bkerA𝖳. 本例左零空间只有一个独立方向,所以一条右端关系就检查完所有相容条件。这与输入空间中的核互相补充:左零空间决定目标能否到达,核决定到达同一目标的输入能否唯一。

数据不满足方程时:寻找最近的输出

测量数据往往不能被模型精确表示。这时可把问题改为:在允许的输出中,找与给定数据距离最近的点。

最简单的情形是允许输出只能在横轴上,而目标为 b=(2,1)。候选输出 p=(a,0) 与目标的距离平方为 bp2=(2a)2+1.a=2 时取最小值。因此最佳输出是 (2,0),误差 (0,1) 与横轴垂直。

点二一向横轴作垂线,垂足为二零,残差为零一
目标到垂足的线段最短;移动垂足会增加一个非负的水平距离平方。

一般情况下,允许输出是矩阵的列空间。设最佳输出候选为 p=Ax̂,残差为 r=bp。如果残差与所有列都垂直,它也与列空间中的任意 Ah 垂直。换一个输入 x̂+h 后, bA(x̂+h)2=rAh2=r2+Ah2r2. 中间没有交叉项,正是因为垂直。因此这样的输出必定最近。

反过来,如果残差与某列空间方向 v 的点积非零,把输出移动 tv,误差平方变为 rtv2=r22tr𝖳v+t2v2. 选一个与 r𝖳v 同号且足够小的 t,就能使误差减小。所以最优点处残差必须与列空间垂直。写成矩阵形式,就是 A𝖳(bAx̂)=0,A𝖳Ax̂=A𝖳b. 这称为正规方程,是最小二乘法的基本条件。

例如用直线拟合三个给定点 (0,1),(1,2),(2,2)。写成 ŷ=a+c(t1),设计矩阵两列分别为 (1,1,1)(1,0,1)。它们点积为零,平方长度分别为三、二,因此正规方程为 3a=1+2+2=5,2c=(1)1+02+12=1. 得到 a=5/3,c=1/2,即 ŷ=7/6+t/2。三个残差为 1/6,1/3,1/6,其和为零,与 (1,0,1) 的点积也为零,恰好验证了正交条件。

重复变换与特征方向

有些方向经过变换后仍在原来那条直线上,只改变倍数。若非零向量 v 满足 Av=λv, 就称它为特征向量λ 为特征值。重复作用时,A2v=λ2v,一般有 Akv=λkv。沿这样的方向,不必每次重新做完整矩阵乘法。

考虑 A=(2112). 直接计算可得 A(1,1)=3(1,1)A(1,1)=(1,1)。两个方向独立,任意 (x,y) 都能分解为 (x,y)=x+y2(1,1)+xy2(1,1).

矩阵把一一方向伸长三倍,保留一负一方向,二零向量分解成这两个方向之和
先把白色向量分解到两条虚线方向,再分别考虑各方向会缩放多少。

图中 v=(1,1) 被放大三倍,w=(1,1) 保持不变。重复变换时,只需分别重复这两个缩放。

因此 Ak(x,y)=3kx+y2(1,1)+xy2(1,1). 例如 (2,0) 的两项系数都是一,做 k 次后就是 (3k+1,3k1)。当 k=1,得到 (4,2),与直接相乘一致。

当一组基全由特征向量组成时,称矩阵可对角化。在这组基下,变换只是分别缩放各个坐标。不过这并非总能做到:剪切矩阵 S=(1101) 的特征方程给出 λ=1,而 Sv=v 要求第二坐标为零,只有一个独立特征方向,不能组成平面的基。

两个状态之间的迁移

设一个系统每步有第一状态的八成留在原处、两成转到第二状态;第二状态的三成转到第一状态、七成留在原处。用列向量记录比例,一步变化为 P=(0.80.30.20.7). 各列非负且和为一,保证更新后仍为总和一的比例。

稳定比例 s=(u,v) 应满足 Ps=su+v=1。第一条分量方程为 0.8u+0.3v=u,所以 0.2u=0.3v,即 u:v=3:2。于是 s=(0.6,0.4)

偏离方向满足 P(1,1)=0.5(1,1)。从全部位于第一状态的 (1,0) 出发,先分解为 (1,0)=(0.6,0.4)+(0.4,0.4). 稳定部分不变,偏离部分每步减半,所以 Pk(1,0)=(0.6,0.4)+2k(0.4,0.4). 一步后为 (0.8,0.2),两步后为 (0.7,0.3),最终趋向 (0.6,0.4)。这个模型中,特征值一表示不变部分,特征值二分之一表示逐渐衰减的部分。

两状态比例随步数变化,第一状态从一逐步下降趋于零点六,第二状态从零上升趋于零点四;两比例始终相加为一
点表示整数步的状态,连线只帮助追踪次序。虚线标出稳定比例,每一步到稳定比例的偏差都减半。

还可以把两状态模型化成一条标量递推。令第一状态比例为 uk,第二状态便是 1uk,所以 uk+1=0.8uk+0.3(1uk)=0.5uk+0.3. 减去平衡值0.6,得到 uk+10.6=0.5(uk0.6)。这正是矩阵特征方向计算得到的衰减规律;消去一个受总量约束的坐标后,同一过程也可由一维递推描述。


历史与进一步阅读

《九章算术》第八章“方程”已经通过排列系数、逐步消去来求解实际问题中的线性方程组。美国数学协会对《九章算术》的介绍提供了这些算法的背景。

十九世纪,矩阵运算与抽象线性空间逐步形成:Grassmann 的《扩张论》发表于 1844 年,Cayley 在 1858 年系统研究矩阵,Peano 在 1888 年给出线性空间的公理化定义。MacTutor:抽象线性空间史。现代线性代数把消元、几何和抽象结构组织在一起,使同一结论能够用于坐标向量、多项式及其他线性对象。

进一步学习可沿两条方向展开:最小二乘法优化研究近似与最优问题;微分方程研究连续时间中状态如何变化。计算中还需区分精确相关与近似相关:当数据有舍入误差时,接近相关的列可能使系数对误差敏感,这属于数值线性代数要处理的问题。

参考资料与后续阅读