Esta es una librería que contiene múltiples funciones y operaciones entre números, vectores y matrices complejos, los cuales forman parte de las bases para cálculos más avanzados de un curso de Computación Cuántica.
Operaciones con números, vectores y matrices complejos:
- Suma de vectores
- Inverso aditivo de un vector
- Multiplicación de un escalar por un vector
- Adición de matrices
- Inversa aditiva de una matriz
- Multiplicación de un escalar por una matriz
- Transpuesta de un vector/matriz
- Conjugado de un vector/matriz
- Adjunta (daga) de un vector/matriz
- Producto matricial
- Acción de una matriz sobre un vector
- Producto interno de dos vectores/matrices
- Norma de un vector/matriz
- Distancia entre dos vectores/matrices
- Valores y vectores propios de una matriz
- Validación de una matriz Unitaria
- Validación de una matriz Hermitiana
- Producto tensor de dos vectores/matrices
Para poder implementar la librería en su máquina local, se recomienda tener las siguientes especificaciones mínimas:
- Sistema Operativo: Windows 8.1 / macOS 10.8 Mountain Lion / Linux Ubuntu 18.04 LTS Bionic Beaver
- Procesador: Intel Celeron / AMD Athlon
- Almacenamiento: 128 Gb (2 Gb libres)
- Memoria RAM: 4 Gb
- IDE con soporte para Python IDLE, PyCharm, VSC, PyDev, Spyder, Atom)
Para una óptima implementación de la librería, se sugieren las siguientes especificaciones recomendadas:
- Sistema Operativo: Windows 10 / macOS 13.0 Ventura / Linux Ubuntu 22.04 LTS Jammy Jellyfish
- Procesador: Intel Core i3 o i5 10ma Gen. / AMD Ryzen 3 o 5 Serie 3000 / Apple M1
- Almacenamiento: 256 Gb (4 Gb libres)-
- Memoria RAM: 8 Gb
- IDE con soporte para Python (IDLE, PyCharm, VSC, PyDev, Spyder, Atom)
Para usar esta proyecto se recomienda seguir los siguientes pasos:
- Crear una nueva carpeta en su máquina local
- Dar clic derecho en el interior de la carpeta y abrir "Open Git Bush here"
- Clonar el repositorio:
$ git clone https://github.com/JAPV-X2612/Libreria_Numeros_Complejos.git
- Verificar que se hallan descargado 5 archivos
- Salir de la terminal de Git:
$ git exit
Una vez descargada una copia del repositorio en su máquina local, se recomienda:
- Abrir el entorno de desarrollo integrado (IDE) de su preferencia
- Abrir el archivo
Pruebas Libreria_Vectores_Matrices_Complejos - Instalar la librería
Numpyen el IDE en caso de no tenerla - Ejecutar el intérprete de Python predeterminado
- Verificar que no haya problemas de ejecución o errores
- Si la respuesta fue
FAILED (failures=#), absténgase de usar la librería y reporte el error a jesus.pinzon-v@mail.escuelaing.edu.co - En otro caso, si la respuesta fue
OK, entonces la librería está lista para su uso personal. 💻😎👍
A continuación se muestra un ejemplo de ejecución de cada función en IDLE:
>>> cplx_vect_sum([1+2j, 5-2j], [4+4j, -1+7j])
array([5.+6.j, 4.+5.j])
>>> cplx_vect_add_inver([2-5.7j, 7+4j])
array([-2.+5.7j, -7.-4.j ])
>>> cplx_vect_scal_mult(2-1j, [17, 9.3j, 2.5-3j])
array([34. -17.j, 9.3+18.6j, 2. -8.5j])
>>> cplx_mtx_sum([[-33+2j, 6-74j], [14-8j, 18-4j]], [[-4+1j, 11-1j], [21+7j, -1+2j]])
array([[-37. +3.j, 17.-75.j],
[35. -1.j, 17. -2.j]])
>>> cplx_mtx_add_inver([[-4+1j, 11-1j], [21+7j, -1+2j]])
array([[4.-1.j, -11.+1.j],
[-21.-7.j, 1.-2.j]])
>>> cplx_mtx_scal_mult(2+3j,[[1+3j, -5-7j], [4-1j, 8+4j]])
array([[-7. +9.j, 11.-29.j],
[11.+10.j, 4.+32.j]])
>>> cplx_vct_mtx_trans([[-4.6+3j, 1.1-1j, 2j], [21+7j, 4, -1+2j], [-15.2+9j, -1-4.4j, -100+2.2j]])
array([[-4.6+3.j , 21. +7.j, -15.2+9.j ],
[1.1-1.j, 4. +0.j, -1. -4.4j],
[0. +2.j, -1. +2.j, -100. +2.2j]])
>>> cplx_vct_mtx_conj([1+3j, -5-7j, 4-1j, 8+4j])
array([ 1.-3.j, -5.+7.j, 4.+1.j, 8.-4.j])
>>> cplx_vct_mtx_adj([[-4.6+3j, 1.1-1j], [21+7j,-1+2j]])
array([[-4.6-3.j, 21. -7.j],
[ 1.1+1.j, -1. -2.j]])
>>> cplx_mtx_prod([[-1+2j, 6-7j], [1-8j, 5]], [[1j, 1-1j], [1+7j, 0]])
array([[53.+34.j, 1. +3.j],
[13.+36.j, -7. -9.j]])
>>> cplx_vct_mtx_act([1+3j, -5+1j], [[1-1j, 2-6j], [3+9j, -4+2j]])
array([-20.-40.j, 38.-14.j])
>>> cplx_vct_mtx_inter_prod([[-1+2j, 1], [1-3j, 5]], [[1j, 1-1j], [1+7j, 0]])
(-17+8j)
>>> cplx_vct_mtx_norm([1+7j, 4-1j, 2-6j])
10.344080432788601
>>> cplx_vct_mtx_norm([[-1+2j, -3j,1+7j], [1-3j, 5, 1j], [1j, 1-1j, 2+3j]])
10.770329614269007
>>> cplx_vct_mtx_dist([-1+2j, 6-7j, 1-8j], [4+1j, -12, 1-1j])
21.166010488516726
>>> cplx_mtx_val_vect([[-1j, 1], [0, 1j]])
(array([-0.-1.j, 0.+1.j]), array([[1. +0.j, 0. -0.4472136j], [0. +0.j, 0.89442719+0.j]]))
>>> cplx_unt_mtx([[1j, 0, 0], [0, 1j, 0], [0, 0, 1j]])
True
>>> cplx_unt_mtx([[-1+2j, 1], [1-3j, 0]])
False
>>> cplx_herm_mtx([[3, 3-8j, -1-1j], [3+8j, 1, -5-6j], [-1+1j, -5+6j, -2]])
True
>>> cplx_herm_mtx([[-1+2j, 1], [1-3j, 0]])
False
>>> cplx_vct_mtx_tens_prod([[2j, 1+6j], [1j, 0]], [[-5j, 3+4j], [2, -1j]])
array([[ 10. -0.j, -8. +6.j, 30. -5.j, -21.+22.j],
[0. +4.j, 2. -0.j, 2.+12.j, 6. -1.j],
[5. -0.j, -4. +3.j, 0. -0.j, 0. +0.j],
[0. +2.j, 1. -0.j, 0. +0.j, 0. -0.j]])
Para mayor información sobre los temas descritos en este proyecto se recomienda revisar los siguientes enlaces:
Este proyecto es de la autoría de Jesús Alfonso Pinzón Vega, Ingeniero de Sistemas de la Escuela Colombiana de Ingeniería Julio Garavito (ECIJG).
Correo: jesus.pinzon-v@mail.escuelaing.edu.co
Este proyecto tiene licencia de código abierto, por lo cual puede ser usado por cualquier persona u organización con fines educativos y de investigación. No obstante, está PROHIBIDA SU DISTRIBUCIÓN parcial o completa con fines lucrativos sin expreso consentimiento del autor.
Se recomienda revisar el archivo LICENSE adjunto al repositorio para mayor información.
Próximamente se agregarán más funciones a la librería para ampliar sus capacidades de cálculo con números complejos.