Python で線形補間を使用してプロット上で正確なゼロおよびゼロ以外の切片を見つける方法

Susan Sarandon
リリース: 2024-10-21 07:12:29
オリジナル
753 人が閲覧しました

How to Find Exact Zero and Non-Zero Intercepts on Plots Using Linear Interpolation in Python?

ゼロとの曲線交点の検索

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート