使用matplotlib在十字坐标系中画出一元二次方程图形,标出与x轴和y轴的交点,要求输入a,b,c的值
时间: 2024-03-01 07:56:18 浏览: 136
好的,以下是使用matplotlib在十字坐标系中画出一元二次方程图形并标出与x轴和y轴的交点的Python代码,可以输入a,b,c的值:
```python
import matplotlib.pyplot as plt
import numpy as np
# 输入a,b,c的值
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
# 定义一元二次方程
def quadratic_equation(x):
return a * x**2 + b * x + c
# 计算x轴和y轴的交点
x1, x2 = np.roots([a, b, c])
y1 = 0
y2 = quadratic_equation(0)
# 生成x值
x = np.linspace(x1-5, x2+5, 100)
# 生成y值
y = quadratic_equation(x)
# 绘制图形
fig, ax = plt.subplots()
ax.plot(x, y, label=f'y={a}x²+{b}x+{c}')
ax.axhline(y=y1, color='r', linestyle='--')
ax.axvline(x=x1, color='r', linestyle='--')
ax.plot(x1, y1, 'ro')
ax.plot(0, y2, 'ro')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.legend()
plt.title('Quadratic Equation Graph')
plt.show()
```
解释一下代码:
1. 首先输入a,b,c的值。
2. 然后定义了一个`quadratic_equation`函数,用于计算一元二次方程的值。
3. 使用`np.roots`函数计算出x轴和y轴的交点。
4. 生成x轴上的x值,使用`quadratic_equation`函数计算出对应的y值。
5. 绘制图形,使用`plt.subplots()`函数创建一个包含一组子图的图像,使用`ax.plot`函数绘制出一元二次方程的曲线,使用`ax.axhline`和`ax.axvline`函数绘制出与x轴和y轴的交点,使用`ax.plot`函数绘制出交点的标记。
6. 最后加上x轴和y轴的标签和图例,并使用`plt.show`函数显示图形。
运行代码后,就可以根据输入的a,b,c的值得到一元二次方程的图形,并标出了与x轴和y轴的交点。
阅读全文