Maison > développement back-end > Tutoriel Python > Comment trouver l'intersection d'une courbe avec y==0 à l'aide de l'interpolation linéaire en Python ?

Comment trouver l'intersection d'une courbe avec y==0 à l'aide de l'interpolation linéaire en Python ?

Barbara Streisand
Libérer: 2024-10-21 07:08:30
original
810 Les gens l'ont consulté

How to Find the Intersection of a Curve with y==0 Using Linear Interpolation in 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 :

  1. Définissez le problème : Étant donné des tableaux contenant des points de données gradient(temperature_data) et vertical_data, nous devons déterminer la valeur sur l'axe y où la courbe coupe y==0.
  2. 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>
    Copier après la connexion
  3. Appliquer la solution :

    <code class="python">z = find_roots(gradient(temperature_data), vertical_data)</code>
    Copier après la connexion
  4. 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>
    Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal