„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie finde ich den Schnittpunkt einer Kurve mit y==0 mithilfe der linearen Interpolation in Python?

Wie finde ich den Schnittpunkt einer Kurve mit y==0 mithilfe der linearen Interpolation in Python?

Veröffentlicht am 10.11.2024
Durchsuche:204

How to Find the Intersection of a Curve with y==0 Using Linear Interpolation in Python?

Ermitteln des Schnittpunkts einer Kurve mit y==0 mithilfe der linearen Interpolation

In Python können wir ein Diagramm aus gespeicherten Daten erstellen Arrays mithilfe der Matplotlib-Bibliothek. Es kann jedoch eine Herausforderung sein, den genauen y-Achsenwert des Schnittpunkts einer Kurve mit y==0 zu ermitteln.

Um dieses Problem zu beheben, können wir eine lineare Interpolation verwenden, um den Schnittpunkt wie folgt anzunähern:

  1. Definieren Sie das Problem: Bei Arrays mit Datenpunkten „Gradient(temperature_data)“ und „vertikale_data“ müssen wir den Wert auf der y-Achse bestimmen wo die Kurve y==0 schneidet.
  2. Implementieren Sie die Lösung: Wir können die Nullstellen oder Nullstellen des Datenarrays mithilfe linearer Interpolation finden:

    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)
  3. Wenden Sie die Lösung an:

    z = find_roots(gradient(temperature_data), vertical_data)
  4. Ergebnisse grafisch darstellen: Um den Schnittpunkt zu visualisieren, können wir die Datenpunkte grafisch darstellen und den Nulldurchgang mit einer Markierung markieren:

    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()

Diese Methode liefert eine Näherung des genauen Schnittpunkts zwischen der Kurve und y==0.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729465637 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3