简介:重庆邮电大学研究生《矩阵分析》期末试卷(含详细解答)面向需要复习矩阵分析、备战研究生期末考试或考研复试的理工科学生。试卷共八大题,满分100分,题型覆盖线性空间基与过渡矩阵、矩阵范数、线性变换的核与值域、行列因子/不变因子/初等因子与Jordan标准型、正定Hermite矩阵与内积验证、满秩分解、正规矩阵与谱分解、幂等矩阵Jordan块性质及Hermite矩阵相关证明等核心考点。资源包为单个PDF文件,大小约170KB,包含试题原文和逐题解答思路,适合对照知识点进行系统自测与查漏补缺。已有273人学习下载。通过这套试题可快速熟悉重邮矩阵分析考试题型与常用证明方法,理解Jordan标准型、满秩分解、谱分解等概念的内在联系,提升矩阵分解、特征值理论及Hermite矩阵性质的综合运用能力。
1. 为什么说刷透这份矩阵分析期末题比啃教材更救命
矩阵分析期末题,和高等数学的期末题完全是两种生物:高数你学会了基本就能考,矩阵分析是你“觉得学会了”也可能在Jordan块顺序、过渡矩阵列序这种小地方直接翻车。我见过不少同学把教材例题看三遍,上了考场面对“求最小多项式、约当形、过渡矩阵”三连问,还是卡在最后一步换基上。重邮期末这份试卷(这里就按你标题里的说法称呼它)的命题风格很直接:计算题占大头、给分点按步骤拆好、证明题绕着三个固定定理转。所以备考策略不是“再刷一本习题集”,而是先把这份卷子的题型、套路和易错点摸透。这篇文章就是干这个的:拆题型、给可抄的步骤、列高频翻车现场,新手能照着练,熟手也能回来查边界条件。
2. 先拆题型:填空、计算、证明在怎么给你设步骤分
2.1 三大题型的分数构成与考点半径
这类期末卷的题型分布通常很稳定,我按常见的比例整理成一张表,你拿到具体试卷后先对着表做一次勾选,比闷头刷题有效得多。
| 题型 | 大致分值占比 | 常见考点 |
|---|---|---|
| 填空/选择 | 30%~40% | 线性空间维数、线性变换在基下的矩阵、矩阵等价标准形、特征值与Jordan形关系、范数与谱半径 |
| 计算大题 | 40%~50% | Jordan标准形、矩阵函数、SVD、广义逆、QR分解、满秩分解 |
| 证明题 | 15%~20% | 对角化判定、Hermite矩阵特性、奇异值低秩逼近性质 |
填选题基本是“一阶知识”,直接考定义,但非常容易混。比如“特征多项式和最小多项式什么时候相等”“矩阵等价和相似的条件差别”“谱半径和范数的关系”,这些点每届都会有人栽。我的建议是:把填选题当成大题的引子,它其实在提醒你这张卷子的计算题会往哪个方向出。如果填选题里出现了“最小多项式无重根”,那后面大概率跟着一道对角化判定或矩阵函数的大题。
计算大题是这张卷子的命根子,特点是步骤多、计算链长、但每一步都有分。最常见的编排方式是“一题三问”:第一问求最小多项式,第二问求Jordan标准形,第三问求过渡矩阵或矩阵函数。为什么这样拆?因为阅卷是按步骤给分,三问之间彼此独立得分,第一问算错,第二问仍然能拿过程分。所以答题时千万不要跳步,跳步等于主动放弃送分。
2.2 计算大题:按步设分,跳步等于丢分
计算大题的稳定得分策略可以概括成“先化标准形,再代公式,最后回代验证”三步。以Jordan标准形为例,标准流程是:特征多项式 → 最小多项式 → 各特征值的几何重数 → 约当块拼接 → 求过渡矩阵 → 验证 P^{-1}AP=J。每一步都有独立给分点,尤其是最后一步验证,很多同学觉得“浪费时间”直接省略,但这一步恰恰是最容易拿的分——它不需要你算出新东西,只需要把已经算出来的 P、J 代回去做一个矩阵乘法。
我一般会建议学生在草稿纸上把步骤序号写清楚,试卷上按序号作答。这样做有两个好处:一是阅卷老师能顺着你的思路找到给分点;二是你自己检查的时候,能快速定位是哪一步算错,而不是从头重来。矩阵分析的计算题有个特点:错误会沿着计算链往下传播。比如Jordan形求错了,后面的矩阵函数、过渡矩阵全错,但如果你步骤写清楚了,前面特征多项式、最小多项式那些分还在。
这里要特别提醒一个常见误用:有人会把Jordan标准形和有理标准形搞混,尤其当特征多项式有重根时,觉得“反正都是分块对角化,哪个都行”。考试里只要出现“最小多项式”,命题人就是在指向Jordan形,有理标准形在这种场景下不是替代品,硬用会丢掉换基那部分分。
2.3 证明题:其实绕着三个固定定理出
证明题方向看着飘忽,实际上很收敛。多份这类试卷看下来,题目基本落在三个方向里。
第一个方向是对角化判定:证明“矩阵可对角化当且仅当最小多项式无重根”。这个命题的正反方向都要会写。正向用Jordan形推导非常干净,反向用反证法也不难。第二个方向是Hermite矩阵的性质:实特征值、特征向量可正交化、A^H A 的半正定性。这类题通常在“Hermite矩阵特征值为实数”或“半正定矩阵迹非负”上做文章。第三个方向是SVD的低秩逼近:证明在秩不超过 k 的矩阵里,U_k Σ_k V_k^T 是Frobenius范数下的最佳逼近。这个定理的证明套路是先构造等式,再用奇异值排序做不等式放缩。
这三个方向有个共同点:它们不依赖技巧性很强的构造,而是依赖你对基本定理的理解深度。复习时别去背题,要把每个定理的证明链走一遍,尤其是中间用到了哪个分解、哪条不等式,心里要有数。
3. Jordan标准形与矩阵函数:从最小多项式到换基求P的完整路子
3.1 先定最小多项式:比特征多项式多一步但最关键
求最小多项式是Jordan类大题的第一问,也是最容易丢分的一问。很多人直接用特征多项式充当最小多项式,这在“特征多项式无重根”时成立,一旦出现重根就危险了。最小多项式的正确求法是:对每个特征值 λ,先找到包含 λ 的最大约当块阶数 k_λ,然后最小多项式就是 ∏(λ-λ_i)^{k_λ_i}。
举一个既典型又不复杂的4阶矩阵:
A = [[3, 1, 1, 0], [0, 3, 0, 0], [0, 0, 2, 1], [0, 0, 0, 2]]特征多项式一眼能看出来:这是个上三角矩阵,特征值是 3(代数重数2)和 2(代数重数2)。要确定最小多项式,需要分别看这两个特征值对应的约当块最大阶数。方法是对每个 λ 算 dim ker(A-λI),也就是几何重数。如果几何重数小于代数重数,就说明这个特征值有大于1阶的约当块。
- 对 λ=3:A-3I 的秩是3,核维数是1,几何重数1 < 代数重数2,所以 λ=3 对应一个2阶约当块。
- 对 λ=2:同理,A-2I 的秩是3,核维数是1,也对应一个2阶约当块。
于是最小多项式就是 m(λ)=(λ-3)^2(λ-2)^2,Jordan形是 diag(J_2(3), J_2(2)),其中 J_2(λ) 是2阶上三角约当块。
这个例子想说的是:最小多项式不是“猜”出来的,它是约当块结构的直接体现。考试时如果时间紧,可以先写特征多项式再写“由几何重数可知最小多项式为……”,把判定依据写清楚,这步分基本就到手了。
3.2 由几何重数定约当块:一个例子看清分配逻辑
约当块的分配逻辑就一句话:每个特征值的几何重数等于该特征值对应的约当块个数,代数重数等于各块阶数之和。拿刚才那个矩阵说,λ=3 的几何重数是1,说明只有一个约当块;代数重数是2,说明这个块是2阶。两个特征值都满足“1个块、阶数2”,所以J就是两个2阶块对角拼接。
如果几何重数是2而代数重数是3,情况就是两个块,阶数可能是2+1;如果几何重数是1而代数重数是3,那就是一个3阶块。判断阶数还有一个更稳妥的工具:逐个算 dim ker(A-λI)^k,直到维数不再增长为止,第一次不再增长的 k 就是最大约当块阶数。这个方法的好处是抗错性强,即使你对几何重数的判断不确定,也能通过幂次的核维数变化反推出来。
确定约当块顺序时,有人习惯按特征值大小排序,有人习惯按块大小排序,这本身不影响结果。真正的坑在于后面求P的时候,P的列顺序必须和J的块顺序一一对应,否则 P^{-1}AP 对不上。我的习惯是:先在草稿纸上把J写出来并标好块顺序,然后告诉自己在求P时严格遵守这个顺序,一步对一步。
3.3 换基求P:从特征向量链到过渡矩阵
求过渡矩阵P的核心是解特征向量链:对每个约当块 J_k(λ),找一组向量 v_1, v_2, ..., v_k,满足 (A-λI)v_1=0,且 (A-λI)v_{i}=v_{i-1}(i≥2)。这些向量按块顺序排成P的列,就能得到 P^{-1}AP=J。
拿上面的A来走一遍。λ=3 这一块:先解 (A-3I)v_1=0,A-3I的第一列全零,所以 v_1=(1,0,0,0)^T 是一个自然的基向量。接着解 (A-3I)v_2=v_1,代入后得到行1:x2+x3=1,行3:-x3+x4=0,行4:-x4=0,解得 x4=0, x3=0, x2=1,取 x1=0,v_2=(0,1,0,0)^T。验证一下,(A-3I)v_2 确实等于 e_1,链条成立。
λ=2 这一块:解 (A-2I)v_3=0,得到 x2=0, x4=0, x3=-x1,取 x1=1,v_3=(1,0,-1,0)^T。再解 (A-2I)v_4=v_3,得到 x2=0, x4=-1, x1+x3=1,取 x1=0, x3=1,v_4=(0,0,1,-1)^T。验证 (A-2I)v_4 等于 v_3,链条也成立。
所以过渡矩阵:
P = [v1, v2, v3, v4] = [[1, 0, 1, 0], [0, 1, 0, 0], [0, 0, -1, 1], [0, 0, 0, -1]]这里要留意一个细节:特征向量链里的“链条向量”不是唯一的。比如解 (A-λI)v_{i}=v_{i-1} 时,方程组的自由变量可以取任意值,取法不同导致P不同,但只要 P^{-1}AP=J,结果都对。考试答题时,把你取的自由变量值写清楚,验证一步,阅卷老师就不会纠结你和标准答案的P不一样。
3.4 用Python验证手算:从jordan_form到矩阵函数的闭环
手算完之后,我习惯用符号计算工具做一次完整验证,避免算完P结果却是错的而不自知。用sympy把上面的例子直接跑通:
from sympy import Matrix A = Matrix([[3, 1, 1, 0], [0, 3, 0, 0], [0, 0, 2, 1], [0, 0, 0, 2]]) P, J = A.jordan_form() print("J =", J) print("P =", P) print("验证 P*J*P^-1 == A:", P * J * P.inv() == A)代码里最关键的是A.jordan_form(),它返回两个对象:过渡矩阵P和约当形J。注意sympy返回的约当块顺序不一定和手算一致,这没关系,验证P*J*P^-1 == A为真就行。如果手算P的结果和sympy不同,不要慌,先检查特征向量链的取法是否合法,再看J的块顺序是否和P的列对应上了。
再看矩阵函数的验证,这是约当形最经典的用途。用公式 e^{Jt} 对每个约当块单独算:2阶块 J_2(λ) 的矩阵指数是 e^{λt} 乘上 [[1, t],[0, 1]],因为幂零部分平方为零。这个公式很容易记错,所以我会用sympy直接做对照:
import sympy as sp t = sp.symbols('t') A = sp.Matrix([[3, 1, 1, 0], [0, 3, 0, 0], [0, 0, 2, 1], [0, 0, 0, 2]]) P, J = A.jordan_form() eAt_via_jordan = P * sp.exp(J * t) * P.inv() eAt_direct = sp.exp(A * t) print("两种方式结果一致:", sp.simplify(eAt_via_jordan - eAt_direct) == sp.zeros(4, 4))逻辑说明:sp.exp(J*t)对约当块逐块计算矩阵指数,再由相似变换P * (...) * P.inv()回到原基,而sp.exp(A*t)是直接求矩阵指数。两者化简差为零,说明手算和换基路径都没问题。这里的核心是:矩阵函数的计算最终都落到“约当块矩阵指数”这个元问题上,先把2阶块的公式记牢,考试里的大多数情况就够用了。
提示:矩阵函数大题里常考的参数 t 不要当成普通常数直接塞进矩阵。e^{At} 的每一项都带 t,约当块里幂零部分会贡献 t、t²/2 这些项,写成 e^{λt} 就漏东西了。
4. SVD与广义逆:计算量大但拿分最稳的第二个大题
4.1 手工SVD的正确顺序:先算A^T A再定U,别先求A A^T
奇异值分解的考法很直白:给你一个矩阵,要求写出U、Σ、V,或者利用SVD求广义逆、做低秩逼近。手工计算的标准顺序是先算右奇异向量,再算左奇异向量。具体来说:先求 A^T A 的特征值和单位特征向量,特征值开根号得到奇异值,特征向量组成V;然后用 u_i = A v_i / σ_i 得到左奇异向量。
为什么先算 A^T A 而不是 A A^T?因为A^T A的规模通常是 n×n,比 A A^T 的 m×m 小(当 m>n 时),手算特征值省力得多。更重要的是,由 A v_i = σ_i u_i 这个关系,右奇异向量可以直接算出左奇异向量,不需要再解第二个特征值问题。反过来先算 A A^T 的话,你还得从 u_i 反推 v_i = A^T u_i / σ_i,多走一步弯路。
这里要特别注意符号:右奇异向量是 A^T A 的单位特征向量,即矩阵V的列;左奇异向量是 A A^T 的单位特征向量,即矩阵U的列。两者顺序必须和奇异值顺序一一对应,这个对应关系错了,整个分解的验证就过不去。
4.2 一个3×2算例的完整手算
用一个3×2矩阵把完整流程走一遍:
A = [[1, 0], [0, 1], [1, 1]]第一步:算 A^T A。
A^T A = [[1, 0, 1], [[1, 0], [0, 1, 1]] @ [0, 1], [1, 1]] = [[2, 1], [1, 2]]第二步:求 A^T A 的特征值和特征向量。特征多项式是 (2-λ)^2 - 1 = (λ-1)(λ-3),所以特征值3和1,奇异值就是 √3 和 1。对应特征值3的单位特征向量 v_1=(1,1)/√2;对应特征值1的是 v_2=(1,-1)/√2。
第三步:由 u_i = A v_i / σ_i 求左奇异向量。
u_1 = A v_1 / √3 = (1, 1, 2)/√6 u_2 = A v_2 / 1 = (1, -1, 0)/√2第四步:拼出SVD。Σ = diag(√3, 1),V 的列是 v_1, v_2,U 的列是 u_1, u_2。
验证这一手算结果:√3·u_1·v_1^T + 1·u_2·v_2^T 展开后正好等于原矩阵A。第一项是 (1/2)[[1,1],[1,1],[2,2]],第二项是 (1/2)[[1,-1],[-1,1],[0,0]],加起来确实回到A。这一步验证在做题时一定要写出来,一是确认奇异值没开错根号,二是确认u和v的符号没配对配反。
4.3 用numpy验证手算结果与符号约定
手算SVD最容易翻车的是符号:u_i 整体乘个 -1 后,对应的 v_i 也得整体乘 -1,否则重建不回来。手算里通常不关心符号,因为重建等式会自动消化,但考试改卷有时会看U和V是否匹配。用numpy做一个快速验证:
import numpy as np A = np.array([[1., 0.], [0., 1.], [1., 1.]]) U, s, VT = np.linalg.svd(A, full_matrices=False) print("U:\n", U) print("奇异值:", s) print("VT:\n", VT) print("重建误差:", np.max(np.abs(U @ np.diag(s) @ VT - A)))参数说明:full_matrices=False返回精简SVD,U是3×2、s是长度为2的奇异值向量、VT是2×2,正好对应手算的规模。np.diag(s)把奇异值向量变成对角矩阵。重建误差应该是一个接近1e-16的数,说明分解正确。如果你手算的U和numpy输出的U在某一列上符号相反,不用改手算结果,补一句“符号整体反转不影响重建”就能自圆其说。
注意:
np.linalg.svd返回的奇异值默认按从大到小排列,V的行对应奇异值的顺序。如果你手动调整奇异值顺序,U和V的列也必须跟着调,这三者是绑定的。
4.4 Moore-Penrose广义逆:从SVD一行读出
广义逆是SVD大题的固定后续:A^+ = V Σ^{-1} U^T。考试时一般不要求你完整算一个3×3的逆,而是考你从SVD直接写出 A^+,或者验证某个矩阵满足Moore-Penrose四个条件。对这个3×2的例子,A^+ 的数值可以直接用numpy验证:
import numpy as np A = np.array([[1., 0.], [0., 1.], [1., 1.]]) U, s, VT = np.linalg.svd(A, full_matrices=False) A_pinv = VT.T @ np.diag(1/s) @ U.T print("A^+:") print(A_pinv) print("验证 A^+ @ A = I:") print(A_pinv @ A)这里VT.T是V,np.diag(1/s)是奇异值倒数矩阵,U.T是U的转置。注意 A^+ 的维度是2×3,用A_pinv @ A验证得到2×2单位阵,因为A是列满秩,A^+ 是A的左逆。如果你算出来的 A^+ 在位置上和numpy结果差一个符号,检查一下U或V是不是整体取反了,广义逆对这种整体符号变化是不敏感的。
这个知识点的考试变化形式还有两种:一种是给一个秩亏矩阵,让你说明A^+依然存在且唯一;另一种是给最小二乘问题,让你用A^+表达最小范数解。这两种都建立在“SVD是广义逆的快捷计算通道”这个认知上,把 A^+ = V Σ^{-1} U^T 记牢,遇到变化题先写这个公式再讨论,分数就稳了。
5. 避坑五条:矩阵分析期末卷上的典型翻车现场
5.1 Jordan块顺序和P的列对不上
- 现象:P和J都算对了,但 P^{-1}AP 的结果既不是J也不是A,矩阵函数更是错得离谱。
- 原因:J的块顺序按特征值大小排,但P的列按自己计算时顺手顺序排,两边没对应起来。这类题目阅卷按步骤给分,J对而P错,过渡矩阵那步分就丢了。
- 解决:先把J写成一个显式的分块对角矩阵,给每个块标上序号,再按这个顺序解特征向量链。全部算完之后,强制自己用 P^{-1}AP 做一次乘法验证,这是唯一的裁判标准。
5.2 最小多项式被直接写成特征多项式
- 现象:特征多项式 (λ-3)^2(λ-2)^2,最小多项式也写 (λ-3)^2(λ-2)^2,运气好蒙对,但如果某个特征值对应多个约当块,就必错。
- 原因:判断重因子次数时用了“代数重数”,而正确依据是“最大约当块阶数”,两者在特征值只有一个约当块时才相等。
- 解决:对每个特征值先算 dim ker(A-λI),如果几何重数等于代数重数,这个特征值全是1阶块,最小多项式里它只出现一次;否则取使得 dim ker(A-λI)^k 不再增大的最小k作为次数。
5.3 SVD的奇异值忘记开根号
- 现象:A^T A 的特征值是4和1,直接把奇异值写成4和1,后面Σ和U全错。这类错误在试卷里出现频率极高。
- 原因:SVD的定义里Σ是“特征值的算术平方根”,不是特征值本身。手算时注意力全在特征值求解上,最后一步松懈了。
- 解决:每次求完奇异值,立刻做一次重建验证:取一个已知列,比如 A e_1 等于UΣV^T的对应列,数值对得上再往下一题走。这个验证耗时不超过一分钟,但能拦住九成计算错误。
5.4 e^{At}的幂零部分被当成普通指数丢掉
- 现象:求 e^{At} 时,约当块部分写成 e^{λt} [[1,0],[0,1]],丢了矩阵里的t项。代入t=0检验时发现结果不是单位阵,但已经交卷了。
- 原因:矩阵函数对约当块的计算不是逐元素求指数,而是对 (λI+N)t 做幂级数展开,N是幂零矩阵,Nt这一项在2阶块里是保留的。
- 解决:把2阶约当块的矩阵指数公式写死:e^{J_2(λ)t} = e^{λt} [[1, t],[0, 1]]。算完之后代入t=0必须得到单位阵,用这个性质做出口检查,比反复看公式管用。
5.5 对角化证明的方向性搞反
- 现象:证明“A可对角化当且仅当最小多项式无重根”时,正向反向混用,或者只证了一个方向就说“必要性显然”。
- 原因:这类证明题的关键链是“可对角化 ⇔ 所有约当块1阶 ⇔ 所有特征值几何重数等于代数重数 ⇔ 最小多项式无重根”,中间任何一步方向写反,结论就不完整。
- 解决:复习时不要背结论,把这条链的每一环用语言写一遍。考场上先写“用Jordan形作为桥梁”,再分两个方向各写三五行,逻辑闭合,这题基本满分。
6. 考前一个月:把真题刷出“预测题”效果的三个习惯
第一个习惯是“先拆卷再做题”。拿到一份试卷,先花十分钟把所有大题扫一遍,按“能拿全分、能拿大半分、需要猜”三档分类,然后把时间往第一档和第二档倾斜。矩阵分析期末卷的计算题结构高度相似,你扫完之后基本能判断出今年的Jordan题在哪个位置、SVD题给了几问。这个动作不是为了偷懒,是为了让复习重心跟着分数走,而不是跟着兴趣走。
第二个习惯是“错题分两类记录”。一类是符号错误、计算粗心,比如奇异值忘开根号、转置忘打符号,这类错题只需要重算一遍,不需要总结方法;另一类是方法选择错误,比如该用Jordan形却用了有理标准形、SVD先算了A A^T导致多走弯路,这类错题要把解题框架抄在一页纸上。两类混在一起整理会越理越乱,分开之后复习效率明显不一样。
第三个习惯是所有大题都做“重建验证”。求完P就乘一遍P^{-1}AP,求完SVD就重建一遍A,求完e^{At}就代t=0看是否得I。这个习惯花时间很少,却能把上面那一章里一半的坑挡在考场外。我个人吃过大亏:当年考矩阵函数,最后一道大题把2阶约当块的t项漏了,交卷前没有做代入验证,出考场一对答案才反应过来。从那以后我给自己定了一条死规矩——分解题不验证不写下一题,宁可少做一道小题也不能带着未验证的大题出考场。希望这个习惯也能帮到你。
本文还有配套的精品资源,点击获取