编写函数solve(a,b,c), 当a,b,c为浮点数时,返回a*x^2+b*x+c=0的两个根。
时间: 2024-10-23 20:12:18 浏览: 23
函数 `solve(a, b, c)` 的目的是解决一元二次方程 \( ax^2 + bx + c = 0 \),其中 \( a \), \( b \) 和 \( c \) 是给定的浮点数。这个方程有两个解,可以使用求根公式来计算,公式如下:
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
如果方程的判别式 \( D = b^2 - 4ac \) 大于零,那么有两个实根;等于零表示有一个重根;小于零则无实根(有复数解)。下面是一个简单的 Python 函数实现示例:
```python
import cmath
def solve(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 real_part, complex(real_part, imaginary_part)
# 示例调用
roots = solve(1, -3, 2)
print("Roots:", roots)
```
阅读全文