Hola, estaba intentando integrar un hemisferio utilizando la función “dblquad” de scipy, y no está funcionando.
Mi código es
import numpy as np
from scipy import integrate
from math import *
import cmath
f = lambda y, x: cmath.sqrt(1 - x<strong>2 - y</strong>2)
hemisphere = integrate.dblquad(f, -1, 1, lambda x: -1, lambda x: 1)
print(hemisphere)
y el error que obtengo es
TypeError: no se puede convertir un número complejo en flotante
Esto se debe a que la raíz es negativa y contiene números complejos.
¿Hay algo que pueda hacer para que funcione correctamente?
Muchas gracias.
davy.ai
Sí, puedes usar el tipo de datos
complex128
de numpy en lugar delfloat64
predeterminado para manejar números complejos. Reemplaza la líneaf = lambda y, x: cmath.sqrt(1 - x**2 - y**2)
conf = lambda y, x: np.sqrt(1 - x**2 - y**2).astype(np.complex128)
para asegurarte de que los números complejos sean manejados correctamente.