in

¿Números complejos en Python?

60 142811 1519038104

Un número complejo se crea a partir de números reales. El número complejo de Python se puede crear usando una declaración de asignación directa o usando la función complex ().

Números complejos que se usan principalmente cuando usamos dos números reales. Por ejemplo, un circuito eléctrico que se define por voltaje (V) y corriente (C) se utiliza en geometría, cálculos científicos y cálculo.

Sintaxis

complex([real[, imag]])

Creando un número complejo simple en Python

>>> c = 3 +6j
>>> print(type(c))
<class 'complex'>
>>> print(c)
(3+6j)
>>>
>>> c1 = complex(3,6)
>>> print(type(c1))
<class 'complex'>
>>> print(c1)
(3+6j)

De los resultados anteriores, podemos ver que los números complejos de Python son de tipo complejo. Cada número complejo consta de una parte real y una parte imaginaria.

Números complejos de Python: atributos y funciones

>>> #Complex Number:
>>> c = (3 + 6j)
>>>
>>> #Real Part of complex number
>>> print('Complex Number: Real Part is = ', c. real)
Complex Number: Real Part is = 3.0
>>>
>>> #Imaginary Part of complex number
>>> print('Complex Number: Imaginary Part is = ', c. imag)
Complex Number: Imaginary Part is = 6.0
>>>
>>> #Conjugate of complex number
>>> print('Complex Number: conjugate Part = ', c. conjugate())
Complex Number: conjugate Part = (3-6j)

Cálculos matemáticos en números complejos

Podemos hacer cálculos matemáticos simples con números complejos:

>>> #first complex number
>>> c1 = 3 + 6j
>>> #Second complex number
>>> c2 = 6 + 15j
>>>
>>> #Addition
>>> print("Addition of two complex number =", c1 + c2)
Addition of two complex number = (9+21j)
>>>
>>> #Subtraction
>>> print("Subtraction of two complex number =", c1 - c2)
Subtraction of two complex number = (-3-9j)
>>>
>>> #Multiplication
>>> print("Multiplication of two complex number =", c1 * c2)
Multiplication of two complex number = (-72+81j)
>>>
>>> #Division
>>> print("Division of two complex number =", c1 / c2)
Division of two complex number = (0.4137931034482759-0.03448275862068964j)

Sin embargo, los números complejos no admiten operadores de comparación como <,>, <=, => y lo harán a través del mensaje TypeError:

>>> c2 <= c2
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
c2 <= c2
TypeError: '<=' not supported between instances of 'complex' and 'complex'

Módulo cmath de Python

El módulo cmath de Python proporciona acceso a funciones matemáticas para números complejos. Veamos algunas de las características importantes de los números complejos usando la función de módulo matemático.

Fase de número complejo

La fase de un número complejo es el ángulo entre el eje real y el vector que representa la parte imaginaria.

La fase devuelta por los módulos math y cmath está en radianes y usamos la función numpy.degrees () para convertirla a grados.

import cmath, math, numpy
c = 4+ 4j
# phase
phase = cmath.phase(c)
print('4+ 4j Phase =', phase)
print('Phase in Degrees =', numpy.degrees(phase))
print('-4-4j Phase =', cmath.phase(-4-4j), 'radians. Degrees =', numpy.degrees(cmath.phase(-4-4j)))
# we can get phase using math.atan2() function too
print('Complex number phase using math.atan2() =', math.atan2(2, 1))

Resultado

4+ 4j Phase = 0.7853981633974483
Phase in Degrees = 45.0
-4-4j Phase = -2.356194490192345 radians. Degrees = -135.0
Complex number phase using math.atan2() = 1.1071487177940904

constantes del módulo cmath

Hay un par de constantes disponibles en el módulo cmath que se utilizan en los cálculos de números complejos:

import cmath
print('π =', cmath.pi)
print('e =', cmath.e)
print('tau =', cmath.tau)
print('Positive infinity =', cmath.inf)
print('Positive Complex infinity =', cmath.infj)
print('NaN =', cmath.nan)
print('NaN Complex =', cmath.nanj)

Resultado

π = 3.141592653589793
e = 2.718281828459045
tau = 6.283185307179586
Positive infinity = inf
Positive Complex infinity = infj
NaN = nan
NaN Complex = nanj

Funciones de alimentación y registro

El módulo cmath () proporciona algunas funciones útiles para operaciones logarítmicas y de potencia:

import cmath
c = 1 + 2j
print('e^c =', cmath.exp(c))
print('log2(c) =', cmath.log(c, 2))
print('log10(c) =', cmath.log10(c))
print('sqrt(c) =', cmath.sqrt(c))

Resultado

e^c = (-1.1312043837568135+2.4717266720048188j)
log2(c) = (1.1609640474436813+1.5972779646881088j)
log10(c) = (0.3494850021680094+0.480828578784234j)
sqrt(c) = (1.272019649514069+0.7861513777574233j)

Funciones trigonométricas

import cmath
c = 2 + 4j
print('arc sine value:n ', cmath.asin(c))
print('arc cosine value :n', cmath.acos(c))
print('arc tangent value of complex number c :n', cmath.atan(c))
print('sine value:n', cmath.sin(c))
print('cosine value:n', cmath.cos(c))
print('tangent value:n', cmath.tan(c))

Resultado

arc sine value:
(0.4538702099631225+2.198573027920936j)
arc cosine value :
(1.1169261168317741-2.198573027920936j)
arc tangent value of complex number c :
(1.4670482135772953+0.20058661813123432j)
sine value:
(24.83130584894638-11.356612711218174j)
cosine value:
(-11.36423470640106-24.814651485634187j)
tangent value:
(-0.0005079806234700387+1.0004385132020523j)

Funciones hiperbólicas

import cmath
c = 2 + 4j
print('Inverse hyperbolic sine value: n', cmath.asinh(c))
print('Inverse hyperbolic cosine value: n', cmath.acosh(c))
print('Inverse hyperbolic tangent value: n', cmath.atanh(c))
print('Hyperbolic sine value: n', cmath.sinh(c))
print('Hyperbolic cosine value: n', cmath.cosh(c))
print('Hyperbolic tangent value: n', cmath.tanh(c))

Resultado

Inverse hyperbolic sine value:
(2.183585216564564+1.096921548830143j)
Inverse hyperbolic cosine value:
(2.198573027920936+1.1169261168317741j)
Inverse hyperbolic tangent value:
(0.09641562020299617+1.3715351039616865j)
Hyperbolic sine value:
(-2.370674169352002-2.8472390868488278j)
Hyperbolic cosine value:
(-2.4591352139173837-2.744817006792154j)
Hyperbolic tangent value:
(1.0046823121902348+0.03642336924740368j)

raja

Publicado el 02-mayo-2019 09:15:38

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Minecraft in a browser

Cómo jugar al Minecraft clásico en un navegador

apple touch icon@2

¿JavaScript pasa por referencia?