编写一个Python程序,求一元二次方程ax²+bx+c=0的根,并采用相关数据测试
时间: 2024-09-18 15:07:49 浏览: 64
在Python中,可以编写一个函数来计算一元二次方程的根。通常,这种方程有两个解,除非判别式(b² - 4ac)小于零,表示方程无实数解。这里是一个简单的示例:
```python
import cmath
def quadratic_solver(a, b, c):
# 计算判别式
discriminant = (b ** 2) - (4 * a * c)
# 实数解的情况
if discriminant >= 0:
root1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
root2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
return root1, root2
# 复数解的情况
else:
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
return complex(real_part, imaginary_part), complex(real_part, -imaginary_part)
# 测试数据
a = 1
b = -3
c = 2
roots = quadratic_solver(a, b, c)
print(f"当a={a}, b={b}, c={c}时,方程的根为: {roots}")
#
相关问题
编写输入一元二次方程ax²+bx+c=0的系数a,b,c分情况计算并输出一元二次方程的根
当你编写一个程序来计算一元二次方程 ax² + bx + c = 0 的根时,你需要首先考虑的是方程的判别式 Δ = b² - 4ac。根据判别式的值,有三种情况:
1. 当Δ > 0 (即 b² > 4ac)时,方程有两个不相等的实数根,可以通过求根公式来计算:
根1 = (-b - √Δ) / (2a)
2. 当Δ = 0 (即 b² = 4ac)时,方程有两个相同的实数根(也称为二重根):
根 = -b / (2a)
3. 当Δ < 0 (即 b² < 4ac),方程没有实数根,但它有两个复数根,可以通过复数形式表示:
根1、2 = [-b ± i√(4ac-b²)] / (2a),其中 i 是虚数单位。
在实际编程中,你可以创建函数接收 a、b 和 c 作为输入,然后根据上述条件判断并计算根。以下是Python的一个简单示例:
```python
import cmath
def calculate_roots(a, b, c):
discriminant = b**2 - 4*a*c
if discriminant > 0:
root1 = (-b - cmath.sqrt(discriminant)) / (2*a)
print(f"两个实数根:{root1:.2f}, {root2:.2f}")
elif discriminant == 0:
root = -b / (2*a)
print(f"一个重根:{root:.2f}")
else:
real_part = -b / (2*a)
imaginary_part = cmath.sqrt(-discriminant) / (2*a)
print(f"两个共轭复数根:{real_part:.2f} ± {imaginary_part:.2f}i")
# 调用函数并传入系数
calculate_roots(1, -3, 2)
```
用Python求解一元二次方程ax²+bx+c=0(a≠0),方程系数由键盘输入(保留两位小数)。
好的,这是一个数学问题,我可以回答它。以下是Python代码:
```python
import math
# 从键盘获取输入的系数
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
# 判断方程是否有实数解
delta = b**2 - 4*a*c
if delta < 0:
print("方程无实数根")
else:
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b - math.sqrt(delta)) / (2*a)
print("方程的解为:x1=%.2f, x2=%.2f" % (x1, x2))
```
希望对你有所帮助。
阅读全文