En este repositorio, encontrará varios módulos escritos para el curso de Física Computacional II.
-
FindRoots: Rutinas para encontrar ceros de funciones de una variable.
Secante(f, x0)
encuentra una solución def(x)=0
cerca dex=x0
usando el método de la secante.NewtonRaphson(f, df, x0)
usa el método de Newton-Raphson para encontrar una solución def(x)=0
a partir dex=x0
. Es necesario conocer la derivada analíticadf(x)
de la funciónf(x)
.Biseccion(f, a, b)
encuentra todos los ceros def(x)
en el intervaloa<x<b
usando el método de la bisección. Las soluciones son refinadas con el método de la secante.
-
GaussianElimination: Implementa el método de eliminación Gaussiana con pivoteo para algunas operaciones matriciales elementales.
Det(M)
calcula la determinante de una matrizM
.Inversa(M)
encuentra la matriz inversaM^{-1}
.Resolver(M,b)
encuentra el vectorx
que resuelveM.x=b
, conM
una matriz cuadrada yb
un vector conocido.
-
PolyClass: Define la clase
Poly
, el cual corresponde a polinomios de variable real o compleja. La clase define algunas operaciones elementales entre polinomios, como la suma, resta, multiplicación y derivada de polinomios. -
PolyInterpolation: Define tres métodos para calcular el polinomio interpolante de una serie de punto
yi=f(xi)
. Estos tres métodos son programados de modo que heredan las propiedades de la clasePoly
(ver PolyClass.Vandermonde(xi, yi)
encuentra los coeficientes del polinomio más simple que interpola los puntosyi=f(xi)
usando inversión de la matriz de Vandermonde generada a partir de los puntosxi
.Lagrange(xi, yi)
construye polinomios de Lagrange usando la definición de forma directa.Neville(xi, yi)
construye polinomios de Lagrange usando el método iterativo de Neville.
-
Quadratures: Define algunos métodos de integración de una función de una variable.
Rectangle(f, a, b, N)
usa el método del rectángulo para estimar la integral def(x)
entrea<x<b
usandoN
nodos.MidPoint(f, a, b, N)
usa el método del punto medio.Trapezoide(f, a, b, N)
usa el método del trapezoide.Romberg(f, a, b, N)
usa el método de Romberg, el cual es un método iterativo basado en la regla trapezoidal y en extrapolación de Richardson.
Para descargar este repositorio, simplemente escriba:
git clone git@github.com:fiscomp2-UdeC2022/fiscomp2.git
Luego, debe indicarle a python cómo encontrar estos módulos. Si estos se descargaron en la carpeta /home/user/fiscomp2
, entonces:
-
En linux, debe agregar la siguiente línea al archivo
~/.bashrc
:export PYTHONPATH=$PYTHONPATH:/home/user/fiscomp2
-
En Mac, debe agregar la siguiente línea al archivo
~/.bash_profile
:export PYTHONPATH="${PYTHONPATH}:/home/user/fiscomp2"
-
En Windows, en el menú busque
Computador
y use el botón secudario de su mouse en él.- Seleccione
Propiedades
y luego busque la pestañaConfiguraciones avanzadas de sistema
. - Luego, busque el botón
variables de entorno
. - Finalmente, edite (o cree si es encesario) la variable
PYTHONPATH
de modo que incluya/home/user/fiscomp2;
No tengo windows para probar estos pasos 😋 Si hay algún paso que falte o es impreciso, ¡agradezco sus correcciones! Me basé principalmente en instrucciones de aquí y aquí.
- Seleccione
Ahora debería poder importar los módulos normalmente. Por ejemplo, para usar la función Quadratures.Romberg
, puede escribir:
from Quadratures import Romberg
f = lambda x : x**2
Romberg(f, a=0, b=5, show=True)
lo cual debería retornar:
iter 0: 5 62.5
iter 1: 2.5 [46.875, 41.666666666666664]
iter 2: 1.25 [42.96875, 41.666666666666664, 41.666666666666664]
Out[]: 41.666666666666664