Tengo problemas para implementar una función numéricamente. Sufre el hecho de que a valores de entrada grandes el resultado es un número muy grande multiplicado por un número muy pequeño. No estoy seguro de si la cancelación catastrófica es el término correcto, así que corríjame si es así. Evidencia de que algo va mal:
¿Cómo puedo evitar las oscilaciones y la asignación de 0.0 para entradas más grandes de 6?
Aquí está mi función:
import numpy as np
def func(x):
t = np.exp(-np.pi*x)
return 1/t*(1-np.sqrt(1-t**2))