本章按“空间结构-映射结构-矩阵表达”展开,目标是打通抽象定义与计算方法。
设域为 F。集合 V 若对向量加法和数乘封闭,且满足八条线性公理,则称为 F 上的向量空间。
- 子空间判定:非空,且对线性组合封闭。
- 线性包:span(S) 是包含 S 的最小子空间。
- 线性相关与无关:可否写出非平凡线性关系。
在 P2(R) 中考虑
W={ax2+bx+c∣a+b+c=0}.
判断 W 是否为子空间,并求一组基。
解:零多项式满足条件,故非空。若 p,q∈W,则它们系数和均为 0,故任意线性组合 αp+βq 的系数和仍为 0,线性封闭成立,所以 W 是子空间。
令 c=−a−b,则
ax2+bx−a−b=a(x2−1)+b(x−1),
故一组基可取 {x2−1, x−1},维数为 2。
- 基:既线性无关又能张成空间的向量组。
- 维数:任一基中向量个数,记为 dimV。
- 有限维情形下,任意线性无关组长度不超过维数。
- 维数公式:
dimU+dimW=dim(U+W)+dim(U∩W).
在 R4 中,
U=span{(1,0,1,0),(0,1,1,0)},W=span{(1,1,2,0),(0,0,0,1)}.
求 dim(U+W) 与 dim(U∩W)。
解:先看 U,两向量线性无关,dimU=2;W 亦为 2 维。
注意 (1,1,2,0)=(1,0,1,0)+(0,1,1,0)∈U,故 U∩W 至少含该方向;而 (0,0,0,1)∈/U。所以
U∩W=span{(1,1,2,0)},
即 dim(U∩W)=1。
由维数公式得
dim(U+W)=2+2−1=3.
线性映射 T:V→W 满足
T(αu+βv)=αT(u)+βT(v).
- 核:kerT={v∈V∣T(v)=0}。
- 像:ImT={T(v)∣v∈V}。
- 秩-零空间维数定理:
dimV=dim(kerT)+dim(ImT).
定义 T:R3→R2:
T(x,y,z)=(x+y, y+z).
求 kerT、ImT 及其维数。
解:解方程组
x+y=0,y+z=0
得 (x,y,z)=(−t,t,−t)=t(−1,1,−1)。
故
kerT=span{(−1,1,−1)},dimkerT=1.
取标准基像:
T(e1)=(1,0), T(e2)=(1,1), T(e3)=(0,1),
它们张成 R2,故 ImT=R2,dimImT=2。
验证:3=1+2。
在线性空间给定有序基后,线性映射可表示为矩阵。
若 [T]B 是基 B 下矩阵,换基到 B′ 后:
[T]B′=P−1[T]BP,
其中 P 是基变换矩阵。
在 P2(R) 上定义 T(p)=p′。取基
B={1,x,x2}.
求 [T]B。
解:
T(1)=0,T(x)=1,T(x2)=2x.
对应坐标列向量:
[T(1)]B=000, [T(x)]B=100, [T(x2)]B=020.
故
[T]B=000100020.
线性变换不仅仅是从 V 到 W 的映射,其全体构成了一个丰富的代数结构。
设 V,W 是 F 上的向量空间。全体从 V 到 W 的线性映射构成的集合 L(V,W) 在映射加法和数乘下仍构成一个向量空间。
- 维数定理:若 dimV=n,dimW=m,则 dimL(V,W)=mn。
- 同构性:L(V,W)≅Mm×n(F)。一旦选定基,每个线性变换唯一对应一个矩阵。
当 V=W 时,L(V,V) 记作 End(V)(自同态环)。除了向量空间结构,它还对映射复合(乘法)封闭,构成一个结合代数。
- 乘法性质:T(S+R)=TS+TR,(TS)R=T(SR)。
- 不可交换性:一般情况下 TS=ST。
线性变换是向量空间的同态。
- T(av+bw)=aT(v)+bT(w)。
- 每一个线性变换都诱导了一个同构:V/kerT≅ImT。
在程序中,线性变换的复合对应于矩阵乘法。
点击查看 C++ 验证代码
#include <iostream>
#include <vector>
using Matrix = std::vector<std::vector<double>>;
Matrix multiply(const Matrix& A, const Matrix& B) {
int m = A.size(), n = A[0].size(), p = B[0].size();
Matrix C(m, std::vector<double>(p, 0));
for (int i = 0; i < m; ++i)
for (int j = 0; j < p; ++j)
for (int k = 0; k < n; ++k)
C[i][j] += A[i][k] * B[k][j];
return C;
}
void printMatrix(const Matrix& M, const std::string& name) {
std::cout << name << ":\n";
for (const auto& row : M) {
for (double val : row) std::cout << val << " ";
std::cout << "\n";
}
}
int main() {
Matrix T1 = {{0, -1}, {1, 0}};
Matrix T2 = {{2, 0}, {0, 3}};
Matrix T = multiply(T2, T1);
printMatrix(T1, "Rotation T1");
printMatrix(T2, "Scaling T2");
printMatrix(T, "Composed T = T2 * T1");
return 0;
}
在 R3 中判断
S={(x,y,z)∣x−2y+z=0}
是否为子空间,并给出一组基。
点击查看过程与答案
S 由齐次线性方程刻画,必为子空间。由 x=2y−z 得
(x,y,z)=y(2,1,0)+z(−1,0,1),故一组基可取 {(2,1,0),(−1,0,1)},维数为 2。
设线性映射 T:R2→R2,
T(x,y)=(x+2y,3x+6y).
求 kerT 与 rank(T)。
点击查看过程与答案
核由
x+2y=0,3x+6y=0给出,两式等价,故
kerT={(−2t,t)∣t∈R}=span{(−2,1)}.所以零空间维数为 1,域维数为 2,故 rank(T)=1。
在线性空间 P1(R) 中,基 B={1,x}。定义 T(p)=p+xp′。求矩阵 [T]B。
点击查看过程与答案
T(1)=1,T(x)=x+x⋅1=2x.相对基 {1,x} 的列向量分别为 (1,0)T,(0,2)T。因此
[T]B=(1002).
设 V=R3,U=span{(1,1,0),(0,1,1)},W=span{(1,0,−1),(1,1,0)}。求 dim(U+W)。
点击查看过程与答案
U,W 各为 2 维。
U∩W 至少含 (1,1,0)。设
a(1,1,0)+b(0,1,1)=c(1,0,−1)+d(1,1,0),比对坐标可得 b=0,故交空间仅一维。于是
dim(U+W)=2+2−1=3.
前往练习库:/docs/exercises/math/algebra