Skip to main content

Librería para resolver sistemas de ecuaciones

Project description

rp23005uno

rp23005uno es una librería en Python diseñada para resolver sistemas de ecuaciones lineales y no lineales. Está pensada como una herramienta educativa para estudiantes o profesionales que quieran aplicar métodos numéricos clásicos con un enfoque práctico y accesible.

Características

  • Métodos para sistemas de ecuaciones lineales:
    • Crammer
    • Eliminación de Gauss
    • Gauss-Jordan
    • Descomposición LU
    • Métodos iterativos: Jacobi y Gauss-Seidel
  • Método para ecuaciones no lineales:
    • Bisección

Requisitos

  • Python >= 1.24
  • numpy >= 3.10

Al instalar RP23005UNO, numpy se instalará automáticamente si no lo tienes ya en tu entorno.

Instalación

Para instalar la librería desde PyPI:

pip install rp23005uno

¿Cómo importar el paquete?

Forma 1, importa uno por uno:

from rp23005uno.lineales import crammer
from rp23005uno.lineales import bisection  

Forma 2, puede importarlos a todos o los necesarios:

from rp23005uno import crammer, bisection

Ejemplos del uso de cada uno de los métodos:

#-----------------------------ELIMINACIÓN GAUSSANIANA/GAUSS ELIMINATION------------------------------------------
from rp23005uno import gauss_elimination

A = [[2, 1, -1], [-3, -1, 2], [-2, 1, 2]]  
b = [8, -11, -3]  

solucion = gauss_elimination(A, b)
print("Solución por Gauss:", solucion)

#---------------------------------------GAUSS JORDAN--------------------------------------------------------------------------
from rp23005uno import gauss_jordan

A = [[2, 1, -1], [-3, -1, 2], [-2, 1, 2]]  
b = [8, -11, -3] 

solucion = gauss_jordan(A, b)
print("Solución por Gauss-Jordan:", solucion)

#-----------------------------GAUSS SEIDEL----------------------------------------------------------------------------------------
import numpy as np
from rp23005uno import gauss_seidel

A = np.array([[3, -0.1, -0.2], [0.1, 7, -0.3], [0.3, -0.2, 10]], dtype=float)
b = np.array([7.85, -19.3, 71.4], dtype=float)

solucion = gauss_seidel(A, b)
print(f"Solución por Gauss-Seidel: {solucion}")

#-----------------------------JACOBI-----------------------------------------------------------------------------------------------
import numpy as np
from rp23005uno import jacobi

A = np.array([[3, -0.1, -0.2], [0.1, 7, -0.3], [0.3, -0.2, 10]], dtype=float)
b = np.array([7.85, -19.3, 71.4], dtype=float) 

solucion = jacobi(A, b)
print(f"Solución por Jacobi: {solucion}")

#---------------------------------------CRAMMER-------------------------------------------------------------------------------------
from rp23005uno import crammer
# Ejemplo 1: Sistema 2x2
coeficientes_2x2 = [[2, 1], [1, -1]]
constantes_2x2 = [5, 1]
sol = crammer(coeficientes_2x2, constantes_2x2)
print(f"Solución por crammer (2x2): {[str(frac) for frac in sol]}") 

# Ejemplo 2: Sistema 3x3
coeficientes_3x3 = [[1, 2, 1], [3, 1, 1], [2, 3, -1]]
constantes_3x3 = [7, 5, 3]
sol = crammer(coeficientes_3x3, constantes_3x3)
print(f"Solución por crammer (3x3): {[str(frac) for frac in sol]}")  

# Ejemplo 3: Sistema sin solución única
coeficientes_singular = [[1, 2], [2, 4]]
constantes_singular = [5, 10]
sol = crammer(coeficientes_singular, constantes_singular)
print(f"Solución por crammer (sistema singular): {sol}") 

#-----------------------------DESCOMPOSICION LU/LU DECOMPOSITION-------------------------------------------------------------------
from rp23005uno import lu_solver
# Ejemplo 1: Sistema 2x2
A1 = [[2, 1], [1, -1]]
b1 = [5, 1]
sol1 = lu_solver(A1, b1)
print(f"Solución por LU (2x2): {sol1}") 

# Ejemplo 2: Sistema 3x3
A2 = [[1, 1, 1], [0, 2, 5], [2, 5, -1]]
b2 = [6, -4, 27]
sol2 = lu_solver(A2, b2)
print(f"Solución por LU (3x3): {sol2}") 

# Ejemplo 3: Sistema singular
A3 = [[1, 2], [2, 4]]
b3 = [5, 10]
sol3 = lu_solver(A3, b3)
print(f"Solución por LU (sistema singular): {sol3}") 

#-----------------------------BISECCION/BISECTION------------------------------------------------------------------------------------
from rp23005uno import bisection

funcion = lambda x: x**4 + 3*x**3 - 2

raiz, iteraciones = bisection(funcion,0,1) #intervalo
print(f"Raiz de funcion por biseccion es igual a {raiz:.6f}, encontrada en un total de {iteraciones} iteraciones.")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rp23005uno-1.0.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rp23005uno-1.0.1-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file rp23005uno-1.0.1.tar.gz.

File metadata

  • Download URL: rp23005uno-1.0.1.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for rp23005uno-1.0.1.tar.gz
Algorithm Hash digest
SHA256 cf6fa8ba57f851bb3f0182eecc632cca0f20ca9cd8b542bca323d0a67e4af13d
MD5 1c2f66079a2fcd1d292c8161dc92a27a
BLAKE2b-256 d538ae015592dc67bf765d95fddd14695bc7cad31630c3794f6454d9bf9d3e71

See more details on using hashes here.

File details

Details for the file rp23005uno-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: rp23005uno-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for rp23005uno-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 24600f861ef4434918e47f57972e1e9b1fae8d6174a540767898cc2531b4c864
MD5 b37e1259e1fe36766de642de7d44a1cc
BLAKE2b-256 78c270700ca99a5b2be39812e3dadaa3cfd7b2ee3eb37d25f26eee5cf29ecb55

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page