4.7 克拉默法则

这篇具有很好参考价值的文章主要介绍了4.7 克拉默法则。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

理论

  行列式可以用来解线性方程组。对于常数项都是0并且系数矩阵是个方针的齐次线性方程组来说,如果行列式不为0,那么方程组只有零解,行列式为零的话,则有无穷个解。对于常数项不为0的非齐次线性方程组,那就复杂了。如果系数矩阵是个方阵,这时候可以用到克拉默法则,但是我不建议使用克拉默法则,因为计算量太大了。具体为什么计算量大,且让我慢慢说。
  克拉默法则Cramer’s rule说的是对于系数矩阵为方阵的方程组来说,如果行列式不为0,那么方程的解为:
x i = ∣ B i ∣ ∣ A ∣ x_i=\frac{|B_i|}{|A|} xi=ABi
   B i B_i Bi是什么? B i B_i Bi就是将常数项代替系数矩阵的第 i i i列形成的新矩阵。所以我说计算量大嘛,对于一个 n n n元方程组来说,这得计算 n + 1 n+1 n+1次行列式,简直就是折磨。解方程还是高斯消元最香,计算量小。
  我举个用克拉默法则解方程的例子:
( − 1 1 − 1 2 1 − 1 2 2 1 1 2 − 1 2 − 1 1 1 ) x = ( 1 3 4 5 ) ∣ − 1 1 − 1 2 1 − 1 2 2 1 1 2 − 1 2 − 1 1 1 ∣ = 21 x = ( ∣ 1 1 − 1 2 3 − 1 2 2 4 1 2 − 1 5 − 1 1 1 ∣ 21 ∣ − 1 1 − 1 2 1 3 2 2 1 4 2 − 1 2 5 1 1 ∣ 21 ∣ − 1 1 1 2 1 − 1 3 2 1 1 4 − 1 2 − 1 5 1 ∣ 21 ∣ − 1 1 − 1 1 1 − 1 2 3 1 1 2 4 2 − 1 1 5 ∣ 21 ) = ( 3 2 0 1 ) \begin{pmatrix}-1 & 1 & -1 & 2\\ 1 & -1 & 2 & 2\\ 1 & 1 & 2 & -1\\ 2 & -1 & 1 & 1\\ \end{pmatrix}x=\begin{pmatrix}1\\ 3\\ 4\\ 5\\ \end{pmatrix}\\ \begin{vmatrix}-1 & 1 & -1 & 2\\ 1 & -1 & 2 & 2\\ 1 & 1 & 2 & -1\\ 2 & -1 & 1 & 1\\ \end{vmatrix}=21\\ x=\begin{pmatrix} \frac{ \begin{vmatrix}1 & 1 & -1 & 2\\ 3 & -1 & 2 & 2\\ 4 & 1 & 2 & -1\\ 5 & -1 & 1 & 1\\ \end{vmatrix}}{21}\\ \frac{ \begin{vmatrix}-1 & 1 & -1 & 2\\ 1 & 3 & 2 & 2\\ 1 & 4 & 2 & -1\\ 2 & 5 & 1 & 1\\ \end{vmatrix}}{21}\\ \frac{ \begin{vmatrix}-1 & 1 & 1 & 2\\ 1 & -1 & 3 & 2\\ 1 & 1 & 4 & -1\\ 2 & -1 & 5 & 1\\ \end{vmatrix}}{21}\\ \frac{ \begin{vmatrix}-1 & 1 & -1 & 1\\ 1 & -1 & 2 & 3\\ 1 & 1 & 2 & 4\\ 2 & -1 & 1 & 5\\ \end{vmatrix}}{21}\\ \end{pmatrix}=\begin{pmatrix}3\\ 2\\ 0\\ 1\\ \end{pmatrix} 1112111112212211 x= 1345 1112111112212211 =21x= 21 1345111112212211 21 1112134512212211 21 1112111113452211 21 1112111112211345 = 3201

Python代码

  直接按照公式来计算就行了:

    # 克拉默法则求方程组的解
    def cramer(self, values):
        det = self.cofactor_expansion()
        if det == 0:
            return
        result = [0 for _ in self.__vectors]
        for i, vector in enumerate(self.__vectors):
            array = copy.deepcopy(self.__vectors)
            array[i] = values
            matrix = Matrix(array)
            result[i] = matrix.cofactor_expansion() / det
        return result

  测试代码:

# _*_ coding:utf-8 _*_
import unittest

from com.youngthing.mathalgorithm.matrix import Matrix


class MyTestCase(unittest.TestCase):

    def test(self):
        a = Matrix(
            [[-1, 1, 1, 2],
             [1, -1, 1, -1],
             [-1, 2, 2, 1],
             [2, 2, -1, 1]
             ])
        print("A=", a.to_latex())
        values = [1, 3, 4, 5]
        print(Matrix([values]).to_latex())
        cramer = a.cramer(values)
        print(Matrix([cramer]).to_latex())


if __name__ == '__main__':
    if __name__ == '__main__':
        unittest.main()

结语

  其实克拉默法则不是用来解方程的,而是用来判断方程组有没有解的。因为克拉默法则要除于系数矩阵的行列式,所以可以用行列式是否为0来判断方程有没有解,有多少个解。但是有比行列式更好的东西可以用来分析方程组解的情况,这就是接下来我要介绍的——矩阵的秩。文章来源地址https://www.toymoban.com/news/detail-473730.html

到了这里,关于4.7 克拉默法则的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PCL 使用克拉默法则进行三点定圆(二维)

    本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。    见:使用克拉默法则进行三点定圆(二维)

    2024年02月07日
    浏览(37)
  • 线性代数中(线代中)的克莱姆法则,又译克拉默法则(Cramer‘s Rule)

    1.对于非齐次线性方程组: 求解过程就是用B去替换A的第i列,然后求出每次替换的行列式 解的结果就是: 第i个解 = 第i个替换行列式 / A的行列式 2.对于齐次线性方程组: 解就是 零解 二、方程组无解或者有两个不同的解,那么方程组的系数行列式=零 例子:求解下图 若λ=0,

    2024年02月12日
    浏览(37)
  • 【线性代数】P4 行列式相乘+范德蒙德行列式+克莱姆法则 cramer

    行列式相乘的原则,就是将第一个行列式中依次将每行的每个元素分别与第二个行列式每列的每个元素进行相加再相乘。 其实这样理解:已知两个行列式,如上,相乘有新行列式,新行列式左上角第一个值为: a 11 *b 11 +a 12 *b 21 +a 13 *b 31 实例2: 当然,三阶行列式无法与四阶

    2024年02月02日
    浏览(37)
  • 线性代数——(期末突击)行列式(上)-行列式计算、行列式的性质

    目录 行列式 行列式计算 逆序数  行列式的性质 转置 两行(列)互换 两行(列)对应相等 提公因子 两行(列)对应成比例 某行(列)为零 行列式分裂 行列式变换及三角行列式 行列式:(i是行标,j是列标)  计算方法(以二阶行列式为例):主对角线(ad)减去次对角线

    2024年02月03日
    浏览(35)
  • 0105行列式按行(列)展开-行列式-线性代数

    在n阶行列式中,把 ( i , j ) 元 a i j (i,j)元a_{ij} ( i , j ) 元 a ij ​ 所在的第 i 行和第 j i行和第j i 行和第 j 列划去后,留下来的 n − 1 n-1 n − 1 阶行列式叫做 ( i , j ) 元 a i j (i,j)元a_{ij} ( i , j ) 元 a ij ​ 的余子式,记作 M i j M_{ij} M ij ​ ;记 A i j = ( − 1 ) i + j M i j , A i j 叫做 (

    2024年03月21日
    浏览(40)
  • 线性代数笔记1-二阶行列式和三阶行列式

    本笔记记录自B站《线性代数》高清教学视频 “惊叹号”系列 宋浩老师第一课 有2行2列,4个元素 ∣ a 11 a 12 a 21 a 22 ∣ begin{vmatrix} a_{11} a_{12}\\\\ a_{21} a_{22} end{vmatrix} ∣ ∣ ​ a 11 ​ a 21 ​ ​ a 12 ​ a 22 ​ ​ ∣ ∣ ​ a i j a_{ij} a ij ​ : i是行标,j是列标 ∣ a 11 a 12 a 21 a 22 ∣

    2023年04月09日
    浏览(31)
  • 摆(行列式、杜教筛)

    有一个 n × n ntimes n n × n 的矩阵 A A A ,满足: A i , j = { 1 i = j 0 i ≠ j ∧ i ∣ j C otherwise A_{i,j}=begin{cases} 1 i=j\\\\ 0 inot=jland imid j\\\\ C text{otherwise} end{cases} A i , j ​ = ⎩ ⎨ ⎧ ​ 1 0 C ​ i = j i  = j ∧ i ∣ j otherwise ​ 求 det ⁡ ( A ) det(A) det ( A ) 。答案模 998244353 998244353 998244

    2024年02月19日
    浏览(28)
  • 线性代数——行列式

    一、行列式的性质 性质1 行列互换,其值不变,即 |A|=|A^{T}| 性质2 若行列式中某行(列)元素全为 0, 则行列式为 0 性质3 若行列式中某行(列)元素有公因子 k(kneq0) ,则 k 可提到行列式外面( 倍乘性质 ) $$ begin{vmatrix}a_{11}a_{12}cdotsa_{1n}\\\\vdotsvdotsvdots\\\\ka_{i1}ka_{i2}cdotska_{in}\\\\

    2024年04月26日
    浏览(25)
  • LA@行列式性质

    设行列式 ∣ A ∣ = d e t ( a i j ) |A|=mathrm{det}(a_{ij}) ∣ A ∣ = det ( a ij ​ ) ,行列式性质主要有5条 转置不变性质 行列式与它的转置行列式相等 或说经过转置,行列式的值不变(方阵 A A A 转置前后取行列式的值相等) ∣ A T ∣ = ∣ A ∣ |A^T|=|A| ∣ A T ∣ = ∣ A ∣ n n n 阶方阵 B = A T B=

    2024年02月14日
    浏览(30)
  • 矩阵——对称行列式快解

    1、先化成爪型行列式 2、再化成上三角或下三角 第一步:把第1行的1倍分别加至第2、3、4行,化为爪型行列式 第二步:把第2、3、4列的(-1)倍都加到第1列,化为上三角 第三步:得出结果

    2024年02月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包