1. 一元二次方程求解: 1) 通过键盘输入一元二次方程的系数 2) 调用numpy库的roots函数实施求解 3) 绘制出对应的一元二次函数曲线 python
时间: 2024-09-26 18:15:55 浏览: 25
在Python中,解决一元二次方程通常涉及用户输入方程的系数(如a、b和c),然后利用科学计算库NumPy中的`linalg.solve()`函数来找到根,虽然直接提供`numpy.roots()`也是可行的。以下是基本步骤:
1. **输入系数**:
```python
import numpy as np
# 获取用户输入的系数
a = float(input("请输入二次项系数(a): "))
b = float(input("请输入一次项系数(b): "))
c = float(input("请输入常数项系数(c): "))
```
2. **求解方程**:
```python
# 计算判别式(为了判断有几个实根)
discriminant = b**2 - 4*a*c
# 使用numpy.roots()函数求解
solutions = np.roots([a, b, c])
```
或者使用`linalg.solve()`(更适合于线性方程组而非一元二次方程):
```python
# 这里会报错,因为这不是线性方程组,但展示原理
# solutions = np.linalg.solve([[a, b], [b, c]], [0, 1]) # 错误用法,因为不是Ax=b形式
```
3. **绘制函数曲线**:
```python
from scipy.optimize import fsolve
import matplotlib.pyplot as plt
# 实际上绘制一元二次函数的图形可能需要先转换成标准形式 y = ax^2 + bx + c
def quadratic_function(x, a, b, c):
return a * x**2 + b * x + c
# 定义x的范围和步长
x_values = np.linspace(-10, 10, 400)
y_values = quadratic_function(x_values, a, b, c)
plt.plot(x_values, y_values, label="y = " + str(a) + "x^2 + " + str(b) + "x + " + str(c))
plt.axhline(0, color='black', linestyle='--') # 绘制y轴
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()
```