es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes usar el tipo de datos complex128 de numpy en lugar del float64 predeterminado para manejar números complejos. Reemplaza la línea f = lambda y, x: cmath.sqrt(1 - x**2 - y**2) con f = lambda y, x: np.sqrt(1 - x**2 - y**2).astype(np.complex128) para asegurarte de que los números complejos sean manejados correctamente.

Comments are closed.