首页 > 其他分享 >克拉默法则

克拉默法则

时间:2024-02-01 17:12:21浏览次数:22  
标签:... determinant 克拉默 法则 rule cramers 2x2 ValueError

# https://www.chilimath.com/lessons/advanced-algebra/cramers-rule-with-two-variables
# https://en.wikipedia.org/wiki/Cramer%27s_rule
from typing import List,Tuple
def cramers_rule_2x2(equation1: List[int], equation2: List[int]) -> Tuple[float, float]:
    """
    解决包含两个变量的线性方程组。
    :param: equation1: 包含3个数字的列表
    :param: equation2: 包含3个数字的列表
    :return: 结果的元组
    输入格式: [a1, b1, d1], [a2, b2, d2]
    行列式 = [[a1, b1], [a2, b2]]
    行列式_x = [[d1, b1], [d2, b2]]
    行列式_y = [[a1, d1], [a2, d2]]

    >>> cramers_rule_2x2([2, 3, 0], [5, 1, 0])
    (0.0, 0.0)
    >>> cramers_rule_2x2([0, 4, 50], [2, 0, 26])
    (13.0, 12.5)
    >>> cramers_rule_2x2([11, 2, 30], [1, 0, 4])
    (4.0, -7.0)
    >>> cramers_rule_2x2([4, 7, 1], [1, 2, 0])
    (2.0, -1.0)

    >>> cramers_rule_2x2([1, 2, 3], [2, 4, 6])
    Traceback (most recent call last):
        ...
    ValueError: 无穷解(一致系统)
    >>> cramers_rule_2x2([1, 2, 3], [2, 4, 7])
    Traceback (most recent call last):
        ...
    ValueError: 无解(不一致系统)
    >>> cramers_rule_2x2([1, 2, 3], [11, 22])
    Traceback (most recent call last):
        ...
    ValueError: 请输入有效的方程。
    >>> cramers_rule_2x2([0, 1, 6], [0, 0, 3])
    Traceback (most recent call last):
        ...
    ValueError: 无解(不一致系统)
    >>> cramers_rule_2x2([0, 0, 6], [0, 0, 3])
    Traceback (most recent call last):
        ...
    ValueError: 两个方程的a和b不能都为零。
    >>> cramers_rule_2x2([1, 2, 3], [1, 2, 3])
    Traceback (most recent call last):
        ...
    ValueError: 无穷解(一致系统)
    >>> cramers_rule_2x2([0, 4, 50], [0, 3, 99])
    Traceback (most recent call last):
        ...
    ValueError: 无解(不一致系统)
    """

    # 检查输入是否有效
    if not len(equation1) == len(equation2) == 3:
        raise ValueError("请输入有效的方程。")
    if equation1[0] == equation1[1] == equation2[0] == equation2[1] == 0:
        raise ValueError("两个方程的a和b不能都为零。")

    # 提取系数
    a1, b1, c1 = equation1
    a2, b2, c2 = equation2

    # 计算矩阵的行列式
    determinant = a1 * b2 - a2 * b1
    determinant_x = c1 * b2 - c2 * b1
    determinant_y = a1 * c2 - a2 * c1

    # 检查线性方程组是否有解(使用克莱姆法则)
    if determinant == 0:
        if determinant_x == determinant_y == 0:
            raise ValueError("无穷解(一致系统)")
        else:
            raise ValueError("无解(不一致系统)")
    else:
        if determinant_x == determinant_y == 0:
            # 平凡解(不一致系统)
            return (0.0, 0.0)
        else:
            x = determinant_x / determinant
            y = determinant_y / determinant
            # 非平凡解(一致系统)
            return (x, y)

 

标签:...,determinant,克拉默,法则,rule,cramers,2x2,ValueError
From: https://www.cnblogs.com/mlhelloworld/p/18001657

相关文章

  • 测试工程师必知的10大测试法则
    作为开发人员,我们应该遵守这样一句话:“质量不是来自检查,而是来自生产过程的改进。”——爱德华·戴明太多的组织将任何未编码的东西视为一次性的。很明显,测试是必不可少的,但我们一次又一次地发现,团队将测试自动化和相关材料视为二等公民。测试是用户行为的文档,与产品组织产生的需求......
  • 测试工程师必知的10大测试法则
    作为开发人员,我们应该遵守这样一句话:“质量不是来自检查,而是来自生产过程的改进。”——爱德华·戴明太多的组织将任何未编码的东西视为一次性的。很明显,测试是必不可少的,但我们一次又一次地发现,团队将测试自动化和相关材料视为二等公民。测试是用户行为的文档,与产品组织产生的......
  • 流量如潮却成谜?揭秘阿里巴巴产品面试:提升转化率的黄金法则!
    导读大家好,我是小米,一个热爱分享技术、热衷于产品经验分享的小伙伴。最近,我在准备阿里巴巴的产品面试时遇到了一个经典问题:“产品流量有了,但转化率低,怎么提高转化?”这个问题其实是产品运营中的一大难题,今天我们就一起来深度解析,找到解决之道。引言在互联网时代,流量是产品的命脉,但流......
  • 上升到人生法则的贝叶斯理论
    贝叶斯定理在数据分析、机器学习和人工智能等领域有广泛的应用。贝叶斯定理(Bayes'theorem)是一种用于计算条件概率的重要定理,它基于条件概率的定义,描述了在已知某一条件下,另一个条件发生的概率。需要注意的是,贝叶斯定理的有效性依赖于对概率的准确估计和假设的合理性。在实际应用中......
  • 与老人相处的四大法则
    老人是我们生活中不可或缺的一部分,他们经历了很多,有着丰富的人生经验和智慧。与老人相处,不仅可以学到很多知识,还可以获得更多的情感支持。但是,与老人相处也需要一些技巧和方法。下面介绍与老人相处的四大法则。一、尊重老人尊重老人是与老人相处的基本原则。老人有着丰富的人生......
  • 【愚公系列】2023年12月 面向对象设计原则(七)-迪米特法则(Law of Demeter or LoD)
    ......
  • 因果推断入门14-16 乘积分解法则、混淆变量、习题
    https://www.bilibili.com/video/BV1Mv411v7zC/?p=14&spm_id_from=pageDriver前面的章节我们学了一些基本个因果图模型,以及一些基本的规则。我们可以根据这些规则,把复杂的问题进行化简;当我们知道图的结构以及随机变量,和随机变量之间的联合分布;联合分布可以用其密度函数来表达,如......
  • 数海拾遗-微积分中用于求导的链式法则
    以理服人链式法则是微积分中用于求导的重要法则,它适用于复合函数的导数求解。设有两个函数:y=f(u)和u=g(x),则复合函数y=f(g(x))。我们要求导复合函数y对于x的导数,即求dy/dx。根据链式法则,dy/dx=dy/du*du/dx。其中,dy/du是外函数f(u)对于内函数u的导数,即......
  • 小谈设计模式(12)—迪米特法则
    (小谈设计模式(12)—迪米特法则)专栏介绍专栏地址http://t.csdnimg.cn/VpriY专栏介绍主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。迪米特法则迪米特法则(LawofDemeter)......
  • 克拉默法则求方程组
    例1:求二元一次方程组把方程写成矩阵的形式:第1个矩阵为系数矩阵(方阵),第2个矩阵为变量矩阵根据克拉默法则,xi=Di/D,Di表示第i列被最后那个列向量替换后的行列式,D为系数矩阵行列式 例2:三元一次方程组把方程写成矩阵形式:根据克拉默法则,x,y,z的解为3阶行列式可以用......