.python 一元二次方程求解: 1) 通过键盘输入一元二次方程的系数 2) 调用numpy库的roots函数实施求解 3) 绘制出对应的一元二次函数曲线
时间: 2024-10-08 18:05:36 浏览: 28
在Python中,你可以使用numpy库来解决一元二次方程。首先,确保已经安装了numpy库,如果没有,可以使用`pip install numpy`命令来安装。接下来是一个简单的步骤说明:
1) 定义函数接收系数:创建一个函数,让用户通过键盘输入一元二次方程的系数a、b和c。例如:
```python
import numpy as np
def input_coefficients():
a = float(input("请输入二次项系数a: "))
b = float(input("请输入一次项系数b: "))
c = float(input("请输入常数项系数c: "))
return a, b, c
```
2) 使用numpy求解:利用`numpy.roots()`函数求解一元二次方程。这个函数接受一个形如[1, -b, c]的数组作为输入,返回方程的根。
```python
def solve_quadratic(a, b, c):
roots = np.roots([1, -b, c])
return roots
```
3) 绘制函数曲线:使用matplotlib库绘制一元二次函数的图像。这里我们假设用户想要看实根对应的图像,如果需要画虚根或其他情况,可能会有所不同。
```python
import matplotlib.pyplot as plt
def plot_function(roots):
x = np.linspace(-10, 10, 400)
y = a * x**2 + b * x + c
plt.plot(x, y, label='y = ' + str(a) + 'x^2 + ' + str(b) + 'x + ' + str(c))
for root in roots:
if isinstance(root, complex): # 只绘制实数根
continue
plt.scatter([root], [a*root**2 + b*root + c], color='red', marker='o', label=f'Resulting root at {root}')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()
# 获取系数并计算
coeffs = input_coefficients()
solution = solve_quadratic(*coeffs)
plot_function(solution)
```
在这个流程中,用户输入一元二次方程的系数后,程序会自动求解并展示对应的函数图。
阅读全文