python求二次函数与x轴y轴交点并在图像中标出
时间: 2024-03-05 12:47:30 浏览: 173
用python建立两个Y轴的XY曲线图方法
好的,我来帮您解答这个问题。
首先,我们需要得到二次函数的表达式。假设二次函数为 $y=ax^2+bx+c$,我们需要求出其与 $x$ 轴和 $y$ 轴的交点。
与 $x$ 轴的交点,即 $y=0$ 时的解,可以通过解方程 $ax^2+bx+c=0$ 得到。解方程的公式为:
$$x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$
这个公式可以求出二次函数与 $x$ 轴的交点的横坐标。将这个横坐标带入二次函数的表达式,即可得到对应的纵坐标。
与 $y$ 轴的交点,即 $x=0$ 时的解,可以直接得到,为 $(0, c)$。
接下来,我们可以使用 Python 的 Matplotlib 库来画出二次函数的图像,并标出交点。代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义二次函数
def quadratic(x, a, b, c):
return a * x ** 2 + b * x + c
# 求解与 x 轴的交点
def solve_x(a, b, c):
delta = b ** 2 - 4 * a * c
if delta < 0:
return None
elif delta == 0:
return -b / (2 * a)
else:
return (-b + np.sqrt(delta)) / (2 * a), (-b - np.sqrt(delta)) / (2 * a)
# 定义二次函数的参数
a, b, c = 1, 2, 1
# 求解交点
x1, x2 = solve_x(a, b, c)
y1, y2 = quadratic(x1, a, b, c), quadratic(x2, a, b, c)
# 画出图像
x = np.linspace(-5, 5, 100)
y = quadratic(x, a, b, c)
plt.plot(x, y)
plt.plot([x1, x2], [y1, y2], 'ro')
plt.plot([0], [c], 'ro')
plt.axhline(y=0, color='k')
plt.axvline(x=0, color='k')
plt.show()
```
运行以上代码,即可得到二次函数的图像,并且标出了与 $x$ 轴和 $y$ 轴的交点。其中红色的圆点表示交点,黑色的线表示坐标轴。
阅读全文