使用线性插值求曲线与 y==0 的交点
在 Python 中,我们可以根据存储在中的数据创建绘图使用 matplotlib 库的数组。然而,获得曲线与 y==0 交点的精确 y 轴值可能具有挑战性。
为了解决这个问题,我们可以采用线性插值来近似交点,如下所示:
实现解决方案: 我们可以使用线性插值找到数据数组的根或零点:
import numpy as np
def find_roots(x, y):
s = np.abs(np.diff(np.sign(y))).astype(bool)
return x[:-1][s] np.diff(x)[s]/(np.abs(y[1:][s]/y[:-1][s]) 1)
应用解决方案:
z = find_roots(gradient(temperature_data), vertical_data)
绘制结果: 为了可视化交点,我们可以绘制数据点并用标记标记过零:
import matplotlib.pyplot as plt
plt.plot(gradient(temperature_data), vertical_data)
plt.plot(z, np.zeros(len(z)), marker="o", ls="", ms=4)
plt.show()
此方法提供了曲线与 y==0 之间精确交点的近似值。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3