ゼロとの曲線の交点の検索
Python では、値が非プロットの場合、プロットから正確な y 軸の値を取得するのが困難になることがあります。整数。この記事では、この問題に対処し、線形内挿に基づく解決策を紹介します。
2 つの配列 (vertical_data と gradient(temperature_data)) が与えられると、plt.plot を使用してプロットが生成されます。ただし、プロットには、ゼロに近いが正確にはゼロではない y 値が表示されます。
根推定のための線形補間
numpy 配列の正確な根を推定するには、単純な線形補間方法を使用できます。次のコードは、任意の曲線のゼロ値を見つける方法を示しています。
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)
x = .4 np.sort(np.random.rand(750))*3.5
y = (x-4)*np.cos(x*9.)*np.cos(x*6 0.05) 0.1
z = find_roots(x,y)
plt.plot(x,y)
plt.plot(z, np.zeros(len(z)), marker="o", ls="", ms=4)
このコードは曲線の根を特定し、それらを円としてプロットします。正確な y 値 0 で。
Non-Zero Intercepts
同じアプローチを使用して、ゼロ以外の y と曲線の交点を見つけることができます。 -value (y0) は、ルートを検索する行を変更します:
z = find_roots(x,y-y0)
Two Curve Intersections
線形補間法は、2 つの曲線間の交点を見つけるために使用することもできます。 2 つの曲線の差の根を見つけることで、それらの交点を推定できます:
y2 = (x - 2) * np.cos(x * 8.) * np.cos(x * 5 0.03) 0.3
z = find_roots(x,y2-y1)
plt.plot(x,y1)
plt.plot(x,y2, color="C2")
plt.plot(z, np.interp(z, x, y1), marker="o", ls="", ms=4, color="C1")
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3