«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как найти пересечение кривой с y==0 с помощью линейной интерполяции в Python?

Как найти пересечение кривой с y==0 с помощью линейной интерполяции в Python?

Опубликовано 10 ноября 2024 г.
Просматривать:573

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

Нахождение пересечения кривой с y==0 с использованием линейной интерполяции

В Python мы можем построить график на основе данных, хранящихся в массивы с использованием библиотеки matplotlib. Однако получение точного значения оси Y пересечения кривой с y==0 может оказаться сложной задачей.

Чтобы решить эту проблему, мы можем использовать линейную интерполяцию для аппроксимации точки пересечения следующим образом:

  1. Определите задачу: Даны массивы, содержащие точки данных градиента (температурные_данные) и вертикальные_данные, нам нужно определить значение на оси y, где кривая пересекает y==0.
  2. Реализовать решение: Мы можем найти корни или нули массива данных, используя линейную интерполяцию:

    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. Примените решение:

    z = find_roots(gradient(temperature_data), vertical_data)
  4. Постройте результаты: Чтобы визуализировать пересечение, мы можем нанести на график точки данных и отметить пересечение нуля маркером:

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

Этот метод обеспечивает аппроксимацию точной точки пересечения кривой и y==0.

Заявление о выпуске Эта статья перепечатана по адресу: 1729465637. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3