Bagaimana untuk Mencari Persilangan Lengkung dengan y==0 Menggunakan Interpolasi Linear dalam Python?

Barbara Streisand
Lepaskan: 2024-10-21 07:08:30
asal
644 orang telah melayarinya

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

Mencari Persilangan Lengkung dengan y==0 Menggunakan Interpolasi Linear

Dalam Python, kita boleh mencipta plot daripada data yang disimpan dalam tatasusunan menggunakan perpustakaan matplotlib. Walau bagaimanapun, mendapatkan nilai paksi-y yang tepat bagi persilangan lengkung dengan y==0 boleh mencabar.

Untuk menangani perkara ini, kita boleh menggunakan interpolasi linear untuk menghampiri titik persilangan, seperti berikut:

  1. Tentukan masalah: Memandangkan tatasusunan yang mengandungi kecerunan titik data(data_suhu) dan data_menegak, kita perlu menentukan nilai pada paksi-y di mana lengkung bersilang y==0.
  2. Melaksanakan penyelesaian: Kita boleh mencari punca atau sifar tatasusunan data menggunakan interpolasi linear:

    <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>
    Salin selepas log masuk
  3. Gunakan penyelesaiannya:

    <code class="python">z = find_roots(gradient(temperature_data), vertical_data)</code>
    Salin selepas log masuk
  4. Plot keputusan: Untuk memvisualisasikan persimpangan, kita boleh memplot titik data dan menandakan lintasan sifar dengan penanda:

    <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>
    Salin selepas log masuk

Kaedah ini memberikan anggaran titik persilangan tepat antara lengkung dan y==0.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Persilangan Lengkung dengan y==0 Menggunakan Interpolasi Linear dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!