自定义一个函数fcg(a,b,c),返回一元二次方程ax^2+bx+c=0的根。请自己添加函数调用语句以显示出具体的结果
时间: 2024-04-30 17:23:15 浏览: 133
```python
import math
def fcg(a, b, c):
delta = b ** 2 - 4 * a * c
if delta < 0:
return "无实数根"
elif delta == 0:
return -b / (2 * a)
else:
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
return x1, x2
print(fcg(1, -5, 6)) # (3.0, 2.0)
print(fcg(1, -4, 4)) # 2.0
print(fcg(1, 2, 3)) # 无实数根
```
相关问题
使用numpy;matplotlib求解一元二次方程3x^2-6x+8=0的解.
首先,你需要安装`numpy`和`matplotlib`库,如果还没有安装,可以使用`pip install numpy matplotlib`命令进行安装。接下来,我们可以使用Python和这两个库来求解一元二次方程。一元二次方程的一般形式是`ax^2 + bx + c = 0`,这里我们有一个已知系数的一元二次方程`3x^2 - 6x + 8 = 0`。
以下是使用numpy求解该方程步骤的示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义系数
a = 3
b = - (4*a*c)
# 求解根(有两个解)
x1 = (-b - np.sqrt(d)) / (2 * a)
x2 = (-b + np.sqrt(d)) / (2 * a)
print(f"方程的两个解分别为:{x1:.2f} 和 {x2:.2f}")
# 可以绘制一元二次函数图像,帮助理解解的位置
x = np.linspace(-10, 10, 400)
y = a*x**2 + b*x + c
plt.plot(x, y, label='3x^2 - 6x + 8')
plt.axhline(0, color='k', linestyle='-', linewidth=1)
plt.axvline(x1, color='r', linestyle=':', label=f'y = 0, x = {x1:.2f}')
plt.axvline(x2, color='g', linestyle=':', label=f'y = 0, x = {x2:.2f}')
plt.legend()
plt.show()
```
在这个例子中,我们计算了判别式的值并检查它是否大于零以确定解的性质(实数、复数)。然后,我们使用numpy的平方根函数得到根,并用matplotlib显示了一元二次函数的图形。
阅读全文