Encontrar la intersección de una curva con y==0 usando interpolación lineal
En Python, podemos crear un gráfico a partir de los datos almacenados en matrices utilizando la biblioteca matplotlib. Sin embargo, obtener el valor exacto del eje y de la intersección de una curva con y==0 puede ser un desafío.
Para solucionar este problema, podemos emplear interpolación lineal para aproximar el punto de intersección, de la siguiente manera:
Implementar la solución: Podemos encontrar las raíces o ceros de la matriz de datos usando interpolación lineal:
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)
Aplicar la solución:
z = find_roots(gradient(temperature_data), vertical_data)
Trazar los resultados: Para visualizar la intersección, podemos trazar los puntos de datos y marcar el cruce por cero con un 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 proporciona una aproximación del punto de intersección exacto entre la curva e y==0.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3