-
Notifications
You must be signed in to change notification settings - Fork 0
MateoSebF/ComplexSpace
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Quantum Calculator in the space Este proyecto es una libreria de una calculadora de numeros complejos, la cual permite operaciones como: - Adición de vectores complejos. - Inverso (aditivo) de un vector complejo. - Multiplicación de un escalar por un vector complejo. - Adición de matrices complejas. - Inversa (aditiva) de una matriz compleja. - Multiplicación de un escalar por una matriz compleja. - Transpuesta de una matriz/vector - Conjugada de una matriz/vector - Adjunta (daga) de una matriz/vector - Producto de dos matrices (de tamaños compatibles) - Función para calcular la "acción" de una matriz sobre un vector. - Producto interno de dos vectores - Norma de un vector - Distancia entre dos vectores - Revisar si una matriz es unitaria - Revisar si una matriz es Hermitiana - Producto tensor de dos matrices/vectores Para empezar: Esta libreria esta desarrollada para la solucion de operaaciones entre complejos sin el uso de la funcion complex, para su uso se debe tener en cuenta: Prerequesitos: Uno de los unicos requesitos para el uso de la libreria es tener instalado pyhton y configurado en la carpeta en la cual se quiere llamar a la libreria Intalacion: Para la instalacion de esta libreria se puede proceder de dos maneras. 1.En la carpeta en la que se desea descargar la libreria hacer el uso de git y el comando git clone https://github.com/Naetffy/ComplexSpace.git de forma que se obtiene de manera directa la descarga completa de todos los archivos del repositorio dentro de una carpeta llamada ComplexSpace, dentro de la cual esta la libreria. 2.En GitHub hacer la instalacion del repositorio descargandolo como un ZIP y extrayendo este en la carpeta en la cual se quiere hacer el uso de la libreria, esto nos creara una carpeta con el nombre "ComplexSpace-master", este lo cambiamos a "ComplexSpace". Aclaraciones para su uso: Las funciones de esta libreria reciben matrices vectores o escalares como parametros, todas los numeros se representan meiante su numero complejo de la forma (a,b) siendo a la parte real del numero y b la parte imaginaria, por ende si queremos pasar un escalar como parametro debemos pasar la tupla (a,b) siendo a y b cualquier valor real. Para la representacion de vectores usaremos listas, con n cantidad de numeros de la forma (a,b). Para la representacion de matrices usaremos listas dentro de listas de la forma [[(a,b)]] la anterior representa la matriz 1*1 donde (a,b) es la representacion de un complejo. Implemetacion: Para implementar la libreria en un proyecto se debe hacer el uso de la siguiente sintaxis from ComplexSpace import Complex2, posteriormente se puede hacer el uso de cualquiera de las siguientes funciones: 1. Adición de vectores complejos = Complex2.SumV() Como parametro acepta 2 listas. Ejemplo: Complex2.SumV([(1,2),(2,2)],[(3,2),(1,1)]) retorna 1 vector 2. Inverso (aditivo) de un vector complejo = Complex2.InvV() Como parametro acepta 1 lista. Ejemplo: Complex2.InvV([(1,2),(2,2)]) retorna 1 vector 3. Multiplicación de un escalar por un vector complejo = Complex2.eVec() Como parametro acepta 1 escalar complejo y 1 lista. Ejemplo: Complex2.eVec((1,2),[(1,2),(2,2),(3,3),(3,2),(1,1),(1,1)]) retorna 1 vector 4. Adición de matrices complejas = Complex2.SumM() Como parametro acepta 2 matrices. Ejemplo: Complex2.SumM([[(1,2),(2,1)],[(3,2),(5,4)]],[[(1,2),(2,1)],[(3,2),(5,4)]]) retorna 1 matriz 5. Inverso (aditivo) de una matriz compleja = Complex2.InvM() Como parametro acepta 1 Matriz. Complex2.InvM([[(1,2),(2,2)],[(3,3),(3,2)],[(1,1),(1,1)]]) retorna 1 matriz 6. Multiplicación de un escalar por una matriz compleja = Complex2.eMat() Como parametro acepta 1 escalar complejo y una Matriz. Complex2.eMat((1,2),[[(1,2),(2,2)],[(3,3),(3,2)],[(1,1),(1,1)]]) retorna 1 matriz 7. Transpuesta de una matriz/vector = Complex2.Tra() Como parametro acepta 1 Matriz o Vector. Complex2.Tra([[(1,2),(2,2),(5,5)],[(3,3),(3,2),(4,4)],[(1,1),(1,1),(6,4)]]) retorna 1 matriz o vector 8. Conjugada de una matriz/vector = Complex2.Conj() Como parametro acepta 1 Matriz o Vector. Complex2.Conj([[(1,2),(2,2),(5,5)],[(3,3),(3,2),(4,4)],[(1,1),(1,1),(6,4)]]) retorna 1 matriz o vector 9. Adjunta (daga) de una matriz/vector = Complex2.Adj() Como parametro acepta 1 Matriz o Vector. Complex2.Adj([[(1,2),(2,2),(5,5)],[(3,3),(3,2),(4,4)],[(1,1),(1,1),(6,4)]]) retorna 1 matriz o vector 10. Producto de dos matrices (de tamaños compatibles) = Complex2.MulM() Como parametro acepta 2 Matrices. Complex2.MulM([[(1,1),(2,2),(3,3)],[(3,3),(4,4),(5,5)],[(3,3),(4,4),(5,5)]],[[(1,1),(2,2),(6,6)],[(3,3),(4,4),(5,5)],[(3,3),(4,4),(5,5)]]) retorna 1 matriz 11. Función para calcular la "acción" de una matriz sobre un vector = Complex2.AcMV() Como parametro acepta una matriz y un vector. Complex2.AcMV([[(1,1),(2,2),(3,3)],[(3,3),(4,4),(5,5)],[(3,3),(4,4),(5,5)]],[(1,1),(2,2),(3,3)]) retorna 1 vector 12. Producto interno de dos vectores = Complex2.Priv() Como parametro acepta 2 vectores. Complex2.PriV([(1,2),(2,2),(3,3)],[(3,2),(1,1),(1,1)]) retorna un complejo 13. Norma de un vector= Complex2.NorV() Como parametro acepta 1 vector. Complex2.NorV([(4,3),(6,-4),(14,-7),(0,13)]) retorna un flotante 14. Distancia entre dos vectores = Complex2.DisV() Como parametro acepta 2 vectores. Complex2.DisV([(3,0),(1,0),(2,0)],[(2,0),(2,0),(-1,0)]) retorna un flotante 15. Revisar si una matriz es unitaria = Complex2.Unit() Como parametro acepta 1 Matriz. Complex2.Unit([[(1,0),(0,0)],[(0,0),(1,0)]]) retorna un valor booleano correspondiente a si es o no una matriz unitaria 16. Revisar si una matriz es Hermitiana= Complex2.Herm() Como parametro acepta 1 Matriz. Complex2.Herm([[(1,0),(0,-1)],[(0,1),(1,0)]]) retorna un valor booleano correspondiente a si es o no una matriz hermitana 17. Producto tensor de dos matrices/vectores = Complex2.Port() Como parametro acepta 2 Matriz o 2 vectores o 1 matriz y 1 vector. Complex2.Prot([[(1,1),(2,2),(3,3)]],[[(1,1),(2,2),(6,6)],[(3,3),(4,4),(5,5)],[(3,3),(4,4),(5,5)]]) retorna una matriz o un vector Ejemplo del codigo para el funcionamiento: from ComplexSpace import Complex2 Resultado = Complex2.eVec((1,2),[(1,2),(2,2),(3,3),(3,2),(1,1),(1,1)]) //Representa la multiplicacion del complejo (1+2i)*[1+2i,2+2i,3+3i,3+2i,1+i,1+i] print(Resultado) //El output sera ['-1-2i', '-2-2i', '-3-3i', '-3-2i', '-1-1i', '-1-1i'] Fin codigo ejemplo Hecho con: Math - Libreria que nos permite hacer operaciones matematicas como la raiz cuadrada Realizado por: Mateo Sebastian Forero Fuentes
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published