"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como encontrar a intersecção de uma curva com y==0 usando interpolação linear em Python?

Como encontrar a intersecção de uma curva com y==0 usando interpolação linear em Python?

Publicado em 2024-11-10
Navegar:127

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

Encontrando a interseção de uma curva com y==0 usando interpolação linear

Em Python, podemos criar um gráfico a partir de dados armazenados em matrizes usando a biblioteca matplotlib. No entanto, obter o valor exato do eixo y da interseção de uma curva com y==0 pode ser um desafio.

Para resolver isso, podemos empregar interpolação linear para aproximar o ponto de interseção, como segue:

  1. Defina o problema: Dadas matrizes contendo gradiente de pontos de dados (dados_temperatura) e dados_verticais, precisamos determinar o valor no eixo y onde a curva intercepta y==0.
  2. Implemente a solução: Podemos encontrar as raízes ou zeros da matriz de dados usando interpolação linear:

    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. Aplique a solução:

    z = find_roots(gradient(temperature_data), vertical_data)
  4. Planeje os resultados: Para visualizar a interseção, podemos plotar os pontos de dados e marcar o cruzamento zero com um marcador:

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

Este método fornece uma aproximação do ponto de interseção exato entre a curva e y==0.

Declaração de lançamento Este artigo foi reimpresso em: 1729465637 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3