Python 求一元二次方程组的解

该篇文章介绍了如何使用Python编程解决一元一次方程ax^2+bx+c的求解问题,包括实数根的计算(当判别式大于0时)和复数根的处理(当判别式小于0时),并考虑了a=0的情况。
摘要由CSDN通过智能技术生成

ax*x+bx+c的模式

由用户输入a,b,c的值,直接输出方程的解(有理数,复数)

考虑到2种情况

(1)a不等于零

1)b*b-4*a*c  的值大于零,直接用求根公式

2)b*b-4*a*c  的值小于零,考虑到复数情况

(2)a等于零,此时考虑到不能让分母有零,所以将定义部分加到了if语句里面

看作一元一次方程求解

a=float(input("请输入a的值"))
b=float(input("请输入b的值"))
c=float(input("请输入c的值"))
if a!=0:
    d1 = float(b * b - 4 * a * c)
    d2 = pow(d1, 0.5)
    k1 = -b + d2
    k2 = -b - d2
    x1 = k1 / (2 * a)
    x2 = k2 / (2 * a)#方程的根是实根

    d3 = float(4 * a * c - b * b)
    d4 = pow(d3, 0.5)
    k3 = -b + d3
    k4 = -b + d4
    x3 = k3 / (2 * a)
    x4 = k4 / (2 * a)#方程的根是虚根
    if d1>0:
     print("方程  {}xx+{}x+{}的根是  {},{}".format(a,b,c,x1,x2))
    else:
        print("方程  {}xx+{}x+{}的根是  {}i,{}i".format(a,b,c,x3,x4))
else:
    print("方程的根是{}".format(-(b/c)))

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一元二次方程方法: 假设一元二次方程为ax^2 + bx + c = 0,其中a、b、c为已知系数,x为未知数。 1. 计算判别式delta = b^2 - 4ac 2. 若delta > 0,则方程有两个不相等的实数根,分别为x1 = (-b + sqrt(delta)) / 2a和x2 = (-b - sqrt(delta)) / 2a; 3. 若delta = 0,则方程有两个相等的实数根,均为x = -b / 2a; 4. 若delta < 0,则方程无实数根。 Python代码实现如下: ```python import math def solve_quadratic_equation(a, b, c): delta = b**2 - 4*a*c if delta > 0: x1 = (-b + math.sqrt(delta)) / (2*a) x2 = (-b - math.sqrt(delta)) / (2*a) return x1, x2 elif delta == 0: x = -b / (2*a) return x else: return "No real roots" # 示例 print(solve_quadratic_equation(1, -5, 6)) # (3.0, 2.0) print(solve_quadratic_equation(1, 2, 1)) # -1.0 print(solve_quadratic_equation(1, 1, 1)) # No real roots ``` 二元二次方程方法: 假设二元二次方程为ax^2 + bxy + cy^2 + dx + ey + f = 0,其中a、b、c、d、e、f为已知系数,x、y为未知数。 1. 计算判别式delta = b^2 - 4ac 2. 若delta > 0,则方程有两个实数根,分别为x1和x2,对于每个实数根x,计算y = (-dx - bx + sqrt(delta) * (a - c)x) / (2c)或y = (-dx - bx - sqrt(delta) * (a - c)x) / (2c),得到两个二元二次方程组的; 3. 若delta = 0,则方程有一个实数根,对于该实数根,计算y = (-dx - bx) / (2c)即可; 4. 若delta < 0,则方程无实数根。 Python代码实现如下: ```python import math def solve_quadratic_system(a, b, c, d, e, f): delta = b**2 - 4*a*c if delta > 0: x1 = (-b + math.sqrt(delta)) / (2*a) x2 = (-b - math.sqrt(delta)) / (2*a) y1 = (-d - b*x1) / (2*c) y2 = (-d - b*x2) / (2*c) return (x1, y1), (x2, y2) elif delta == 0: x = -b / (2*a) y = (-d - b*x) / (2*c) return (x, y) else: return "No real roots" # 示例 print(solve_quadratic_system(1, 2, 3, 4, 5, 6)) # No real roots print(solve_quadratic_system(1, 2, 1, 4, 5, 6)) # (-1.0, -3.0) print(solve_quadratic_system(1, -1, -1, -1, 2, 1)) # ((1.0, -1.0), (-0.9999999999999999, 2.0)) ``` 注意:在二元二次方程时,需要注意判别式delta的正负和为0的情况。同时,在计算y值时,需要分别使用加减号计算两个

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值