完整版本:用户交互式程序 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()