抛物线法 python
时间: 2023-10-31 18:59:19 浏览: 254
抛物线是一种二次函数,可以用以下公式表示:
y = a*x^2 + b*x + c
其中,a、b、c为常数,x为自变量,y为因变量。
如果我们已知抛物线上的三个点(x1, y1),(x2, y2),(x3, y3),可以通过解方程组求出a、b、c的值,进而得到该抛物线的函数式。具体做法如下:
1. 根据三个点列出三个方程:
y1 = a*x1^2 + b*x1 + c
y2 = a*x2^2 + b*x2 + c
y3 = a*x3^2 + b*x3 + c
2. 解方程组,求出a、b、c的值。这里可以使用高斯消元法等方法求解,也可以使用Python中的numpy工具包中的linalg.solve()函数求解。
3. 代入函数式,得到抛物线的函数式。
下面是一个使用numpy工具包实现抛物线拟合的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
# 已知三个点
x1, y1 = 1, 2
x2, y2 = 2, 4
x3, y3 = 3, 6
# 构造方程组
A = np.array([[x1**2, x1, 1], [x2**2, x2, 1], [x3**2, x3, 1]])
B = np.array([y1, y2, y3])
# 求解方程组
a, b, c = np.linalg.solve(A, B)
# 生成抛物线上的点
x = np.linspace(0, 4, 100)
y = a*x**2 + b*x + c
# 绘制图像
plt.plot(x, y)
plt.scatter([x1, x2, x3], [y1, y2, y3], color='red')
plt.show()
```
运行结果如下图所示:
![parabola](https://img-blog.csdn.net/20180415151306915?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbmdfMTg2NTIwNTk4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
阅读全文