Maison > Article > développement back-end > Comment trouver l'intersection d'une courbe avec y==0 à l'aide de l'interpolation linéaire en Python ?
Trouver l'intersection d'une courbe avec y==0 à l'aide de l'interpolation linéaire
En Python, nous pouvons créer un tracé à partir de données stockées dans tableaux en utilisant la bibliothèque matplotlib. Cependant, obtenir la valeur exacte sur l'axe y de l'intersection d'une courbe avec y==0 peut être difficile.
Pour résoudre ce problème, nous pouvons utiliser l'interpolation linéaire pour approximer le point d'intersection, comme suit :
Mettre en œuvre la solution : Nous pouvons trouver les racines ou les zéros du tableau de données en utilisant l'interpolation linéaire :
<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)</code>
Appliquer la solution :
<code class="python">z = find_roots(gradient(temperature_data), vertical_data)</code>
Tracer les résultats : Pour visualiser l'intersection, nous pouvons tracer les points de données et marquer le passage par zéro avec un marqueur :
<code class="python">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()</code>
Cette méthode fournit une approximation du point d'intersection exact entre la courbe et y==0.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!