克莱默法则
设有一个含有 n 个末知数 x1,x2,⋯,xn,n 个线性方程的方程组
⎩⎨⎧a11x1+a12x2+⋯+a1nxn=b1,a21x1+a22x2+⋯+a2nxn=b2,⋯an1x1+an2x2+⋯+annxn=bn,⟷AX=β 其中
A=a11a21⋮an1a12a22⋮an2⋯⋯⋯a1na2n⋮ann,x=x1x2⋮xn,β=b1b2⋮bn Cramer (克莱默) 法则
如果线性方程组 AX=β 的系数行列式不等于零,即 ∣A∣=0 ,则方程组有唯一解:
x1=∣A∣D1,x2=∣A∣D2,⋯,xn=∣A∣Dn, 其中 Dj(j=1,2,⋯,n) 是把系数行列式的第 j 列元素用 β 的元素代替后得到的行列式.
证明 因为 ∣A∣=0 ,所以 A−1 存在. 令 X=A−1β ,则有 AX=A(A−1β)=β ,即 X=A−1β 是线性方程组的解.
且由 A−1 的唯一性可知,线性方程组的解是唯一的.
由求逆公式 A−1=∣A∣1A∗ 可得 X=A−1β=∣A∣1A∗β ,
用克莱默法则求解线性方程组
⎩⎨⎧x1−x2−x3−2x1+2x2+x32x1−x2+3x3=−1=1=1 解:
∣A∣=1−22−12−1−113=100−101−1−15=−100−110−15−1=1=0,D1=−111−12−1−113=−100−110−102=−2, D2=1−22−111−113=100−1−10−1−12=−2,D3=1−22−12−1−111=100−101−1−13=1, 因此 x1=∣A∣D1=−2,x2=∣A∣D2=−2,x3=∣A∣D3=1.
二阶克莱姆法则
对于二阶线性方程组: {a1x+b1y=c1a2x+b2y=c2, 其克莱姆法则的解为
x=a1a2b1b2c1c2b1b2,y=a1a1b1b2a1a2c1c2 三阶克莱姆法则
三阶线性方程组如下:
⎩⎨⎧a1x+b1y+c1z=d1a2x+b2y+c2z=d2a3x+b3y+c3z=d3 其克莱姆法则的解为
x=a1a2a3b1b2b3c1c2c3d1d2d3b1b2b3c1c2c3,y=a1a2a3b1b2b3c1c2c3a1a2a3d1d2d3c1c2c3,z=a1a2a3b1b2b3c1c2c3a1a2a3b1b2b3d1d2d3 为什么很多人感觉克莱姆法则没有用?
1750 年, 瑞士的克莱姆发现了用行列式求解线性方程组的克莱姆 (Cramer) 法则。但是,学习他的人普遍感觉克莱姆法则没啥用,这种感觉是正确的。
克莱姆法则在理论上非常优美,但在实际应用中,尤其是在解决大型方程组时,确实显得非常“没用”甚至“低效”。
1. 计算效率极低(最大的问题)
克莱姆法则需要计算 n+1 个n 阶行列式。对于 n 元方程组,就要算 n+1 个行列式。
2. 数值稳定性差
在计算机计算或大量手工计算中,会涉及到浮点数(小数)运算。克莱姆法则过程中大量的乘除运算会导致舍入误差被急剧放大。可能一个非常小的初始误差,到最后结果已经完全失真。而高斯消元法等算法有更好的数值稳定性(例如可以选择主元来减少误差)。
3. 适用场景非常狭窄
克莱姆法则有一个完美的前提:系数矩阵的行列式不为零(即方程组有唯一解)。
如果行列式为零,它直接就失效了,无法判断是无解还是无穷多解。
而高斯消元法在消元过程中,能清晰地判断出方程组的解的情况(唯一解、无解、无穷多解),适用性更广。
为什么还要学习克莱姆法则?
既然这么“没用”,为什么所有线性代数教材都会讲它呢?因为它有不可替代的理论价值和特殊应用:
优美的数学形式:它用最简洁的公式 x_i = D_i / D 清晰地表达了方程组的解和系数行列式之间的关系。这种形式上的美感在数学上非常重要。
用于数学证明和推导:在很多定理的证明中,克莱姆法则能提供一种清晰的思路。因为它给出了一个“显式公式”,在理论分析中非常有用。比如,它可以用来证明如果系数行列式 D ≠ 0,则方程组一定有唯一解。
帮助理解代数本质:它将线性方程组的求解问题与行列式这一核心概念深刻地联系了起来,加深了学习者对线性代数内在统一性的理解
低纬度方程有用: 在2维或3维的方程组用克莱姆法则有时反而更直接,尤其是当系数是符号而不是数字时
一句话:你可以不用克莱姆法则但是不能不知道克莱姆法则
克莱姆法则的意义是可以用方程组的系数和常数项的行列式把方程组的解简洁地表达出来。但在实际工程应用中由于计算量较大, 常常采用高斯消元法来解大型的线性方程组。
一个重要结论
推论(1)n 个 n 元齐次线性方程组 AX=0 只有零解的充要条件是 ∣A∣=0 ;
(2)n 个 n 元非齐次线性方程组 AX=b 有唯一解的充要条件是 ∣A∣=0 .
下面这个题展示了克莱默法则的理论作用
例 证明 n 次多项式
f(x)=a0+a1x+⋯+anxn(an=0) 最多有 n 个互异的根.
证明 采用反证法,假设 f(x) 有 n+1 个互异的根 c0,c1,…,cn ,将它们逐个代入方程 f(x)=0 ,则有
⎩⎨⎧a0+a1c0+⋯+anc0n=0a0+a1c1+⋯+anc1n=0⋯a0+a1cn+⋯+ancnn=0...(2.20) 把 a0,a1,…,an 看作未知量,那么方程组(2.20)就是由包含 n+1 个未知量的 n+1 个方程组成的一个齐次线性方程组,其系数行列式
D=11⋮1c0c1⋮cnc02c12⋮cn2⋯⋯⋯c0nc1n⋮cnn 是 n+1 阶范德蒙行列式的转置.由于 c0,c1,…,cn 互异,故 D=0 .根据推论 知齐次线性方程组(2.20)只有零解,从而 an=0 ,与题设条件矛盾.
例题
例 用克拉默法则求解线性方程组
⎩⎨⎧2x1+3x2−x3x1+2x2+x32x1+x2−6x3=2=−1=4 解:系数矩阵 A=212321−11−6 ,常数项 b=2−14,D=∣A∣=1=0.
所以方程组有唯一解.另一方面有
D1=2−14321−11−6=−23,D2=2122−14−11−6=14,D3=2123212−14=−6. 所以 x1=DD1=−23,x2=DD2=14,x3=DD3=−6 .
例 求方程
⎩⎨⎧x1+x2+x3+x4=12x1+3x2+4x3+5x4=14x1+9x2+16x3+25x4=18x1+27x2+64x3+125x4=1 解 易知,其系数行列式是一个 4 阶 Vandermonde 行列式.
D=122223133233144243155253=(3−2)(4−2)(5−2)(4−3)(5−3)(5−4)=12=0. 同理
D1D2D3=111213133233144243155253=(3−1)(4−1)(5−1)(4−3)(5−3)(5−4)=48,=122223111213144243155253=(1−2)(4−2)(5−2)(4−1)(5−1)(5−4)=−72,=122223133233111213155253=(3−2)(1−2)(5−2)(1−3)(5−3)(5−1)=48, D4=122223133233144243111213=(3−2)(4−2)(1−2)(4−3)(1−3)(1−4)=−12, 故 x1=DD1=4,x2=DD2=−6,x3=DD3=4,x4=DD4=−1.