ゼロとの曲線交点の検索
Python では、値が a でない場合、プロットから正確な y 軸値を取得するのが困難になることがあります。整数。この記事では、この問題に対処し、線形内挿に基づく解決策を紹介します。
2 つの配列 (vertical_data と gradient(temperature_data)) が与えられると、plt.plot を使用してプロットが生成されます。ただし、プロットにはゼロに近いものの、正確にはゼロではない y 値が表示されます。
根推定のための線形内挿
numpy 配列の正確な根を推定するには、単純な線形補間方法を使用できます。次のコードは、任意の曲線のゼロ値を見つける方法を示しています。
<code class="python">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)</code>
このコードは、曲線の根を特定し、ゼロの正確な y 値で円としてプロットします。
非ゼロ切片
根を見つける線を変更することで、同じアプローチを使用して、ゼロ以外の y 値 (y0) を持つ曲線の交点を見つけることができます。 :
<code class="python">z = find_roots(x,y-y0)</code>
2 つの曲線の交点
線形補間法を使用して、2 つの曲線間の交点を見つけることもできます。 2 つの曲線間の差の根を見つけることによって、それらの交点を推定できます:
<code class="python">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")</code>
以上がPython で線形補間を使用してプロット上で正確なゼロおよびゼロ以外の切片を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。