完整版本:用户交互式程序 14.3

Python
def binary_equation_solver():
    """二元一次方程组求解器"""
    print("=== 二元一次方程组求解器 ===")
    print("请输入方程组系数:")
    print("方程1: a1*x + b1*y = c1")
    
    try:
        # 输入系数
        a1 = float(input("请输入a1: "))
        b1 = float(input("请输入b1: "))
        c1 = float(input("请输入c1: "))
        
        print("\n方程2: a2*x + b2*y = c2")
        a2 = float(input("请输入a2: "))
        b2 = float(input("请输入b2: "))
        c2 = float(input("请输入c2: "))
        
        # 显示输入的方程组
        print(f"\n输入的方程组为:")
        print(f"{a1}x + {b1}y = {c1}")
        print(f"{a2}x + {b2}y = {c2}")
        
        # 计算行列式
        D = a1 * b2 - a2 * b1
        Dx = c1 * b2 - c2 * b1
        Dy = a1 * c2 - a2 * c1
        
        # 判断解的情况
        if abs(D) > 1e-10:  # 避免浮点数精度问题
            x = Dx / D
            y = Dy / D
            print(f"\n✅ 方程组有唯一解:")
            print(f"x = {x:.4f}")
            print(f"y = {y:.4f}")
            
            # 验证解
            print(f"\n🔍 验证结果:")
            print(f"方程1: {a1}*{x:.4f} + {b1}*{y:.4f} = {a1*x + b1*y:.4f} (应为{c1})")
            print(f"方程2: {a2}*{x:.4f} + {b2}*{y:.4f} = {a2*x + b2*y:.4f} (应为{c2})")
            
        elif abs(Dx) > 1e-10 or abs(Dy) > 1e-10:
            print("\n❌ 方程组无解")
        else:
            print("\n⚠️ 方程组有无穷多解")
            
    except ValueError:
        print("❌ 输入错误,请确保输入的是数字!")
    except ZeroDivisionError:
        print("❌ 计算错误,除数不能为零!")

# 运行求解器
if __name__ == "__main__":
    binary_equation_solver()

您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注