通过键盘输入一元二次方程的系数 2) 调用numpy库的roots函数实施求解 3) 绘制出对应的一元二次函数曲线
时间: 2024-09-29 10:09:35 浏览: 59
在Python中,你可以使用`numpy`库来处理数学运算,特别是解决一元二次方程。首先,你需要让用户通过键盘输入一元二次方程的系数,通常表示为ax² + bx + c = 0的形式。这里是一个简单的步骤示例:
1. 导入必要的库:
```python
import numpy as np
import matplotlib.pyplot as plt
```
2. 接收用户输入,并检查是否满足一元二次方程条件(a≠0):
```python
a = float(input("请输入二次项系数(a): "))
b = float(input("请输入一次项系数(b): "))
c = float(input("请输入常数项(c): "))
if a == 0:
print("错误!二次项系数不能为零。")
else:
```
3. 使用`numpy.roots`计算方程的根:
```python
roots = np.roots([a, b, c])
real_roots = [root.real for root in roots if abs(root.imag) < 1e-6] # 只保留实数根
```
4. 绘制一元二次函数曲线(假设我们已经有了两个实数根x1和x2):
```python
x = np.linspace(-10, 10, 400)
y = a * x**2 + b * x + c
plt.figure()
plt.plot(x, y, label=f"y = {a}x^2 + {b}x + {c}")
if len(real_roots) > 0:
plt.scatter(real_roots, [f(a * r**2 + b * r + c) for r in real_roots], color='red', marker='o', label="根点")
plt.axhline(0, color='black', linestyle='--')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.title(f"一元二次函数 f(x) = {a}x^2 + {b}x + {c}")
plt.grid(True)
plt.show()
```
阅读全文