A continuación se describe el contenido de cada uno de los archivos de MATLAB y el documento datos.txt
empleados en este trabajo. Se ofrece también una guía para la ejecución de cada script y una breve descripción de los resultados obtenidos.
Este archivo README.txt
ha sido organizado con ayuda de ChatGPT 3.5.
Este script lee los valores de los parámetros del archivo datos.txt
e invoca a la función qlm.m
para obtener una solución para cada grupo de parámetros. Una vez obtenida la solución, la grafica desde 0 hasta el primer cero de dicha solución. Este proceso se repite para todos los conjuntos de parámetros en el archivo datos.txt
.
aplicacion_QLM
.qlm.m
repetidamente, la ejecución puede tardar varios minutos.Este script lee los valores de los parámetros del archivo datos.txt
e invoca a la función slm.m
para obtener una solución para cada grupo de parámetros. Una vez obtenida la solución, la grafica desde 0 hasta el primer cero de dicha solución. Este proceso se repite para todos los conjuntos de parámetros en el archivo datos.txt
.
aplicacion_SLM
.Este script incluye una función principal y cuatro funciones secundarias, que se utilizan para realizar gráficas comparativas entre las soluciones obtenidas por diferentes métodos.
comparaciones(N, itermax, n, N_values)
, sustituyendo los parámetros por los valores deseados.3.1 comparaciones(N, itermax, n, N_values)
: Función principal que llama a las funciones secundarias para crear las gráficas.
Parámetros de entrada:
N
: Número de puntos de interpolación, debe ser un entero positivo.itermax
: Número máximo de iteraciones, debe ser un entero positivo.n
: Índice politrópico en el intervalo [0,5).N_values
: Vector de número de puntos de interpolación. Cada valor debe respetar la restricción para la variable N
.3.2 graficas_soluciones(N, itermax, n)
: Crea una gráfica con las soluciones obtenidas por cada método (SLM y QLM) y las compara con soluciones analíticas (si existen) o con soluciones obtenidas por ode45_lane_emden
.
3.3 error_solucion_funcion_de_N(N_values, itermax, n)
: Calcula y grafica el error absoluto medio en las soluciones para diferentes valores de N
.
Importante: Solo se ejecuta si n == 0
o n == 1
, ya que solo para esos valores existe solución analítica finita.
3.4 error_xi_iteraciones(N, itermax, n)
: Calcula y grafica los errores en la estimación del primer cero en cada iteración.
Importante: Solo se ejecuta si n == 1
. Para n == 0
no tiene sentido, pues la estimación inicial coincide con la solución por lo que el error es siempre 0. Para el resto de valores no existe solución analítica.
3.5 error_xi_funcion_N(N_values, itermax, n)
: Calcula y grafica el error en la estimación del primer cero para diferentes valores de N
.
n == 1
. Para n == 0
no tiene sentido, pues la estimación inicial coincide con la solución por lo que el error es siempre 0. Para el resto de valores no existe solución analítica.Este archivo de texto contiene varias filas con combinaciones de los parámetros N
, itermax
, y n
. Se utiliza en los scripts aplicacion_QLM
y aplicacion_SLM
para generar las gráficas correspondientes.
Este script genera las gráficas que representan las soluciones analíticas para los casos n = 0
, n = 1
, y n = 5
.
graficas
.Este script contiene tres funciones: una principal y dos secundarias, que se utilizan para resolver la ecuación de Lane-Emden utilizando ode45
.
[t, y, te] = ode45_lane_emden(n, b);
, sustituyendo n
y b
por los valores deseados.t
y los valores de la ecuación en esos puntos (y
), así como el valor del primer cero.6.1 [t, y, te] = ode45_lane_emden(n, b)
: Función principal que resuelve la ecuación de Lane-Emden y encuentra el primer cero.
Parámetros de entrada:
n
: Índice politrópico en el intervalo [0, 5).b
: Extremo derecho del intervalo de evaluación. Si el primer cero no está contenido en el intervalo de evaluación, la función no lo encontrará.Parámetros de salida:
t
: Vector de puntos de evaluación.y
: Vector de valores de la ecuación en los puntos de evaluación.te
: Primer cero de la función.6.2 dydt = lane_emden(t, y, n)
: Define la forma matricial de la ecuación de Lane-Emden.
6.3 [value, isterminal, direction] = myEventsFcn(t, y)
: Función para detectar el primer cero de la función usando ode45
.
Implementa el método de Quasi-Linealización (QLM) descrito en el capítulo 5 de la memoria.
[x, y, xi_final, xi_values] = qlm(N, itermax, n)
, sustituyendo los parámetros por los valores deseados.N
. Se puede esperar que la ejecución dure unos minutos.N
: Número de puntos de interpolación, debe ser un entero positivo.itermax
: Número máximo de iteraciones, debe ser un entero positivo.n
: Índice politrópico en el intervalo [0, 5).x
: Vector de puntos de evaluación.y
: Vector de valores en los puntos de evaluación.xi_final
: Valor del primer cero en la última iteración.xi_values
: Valores de la estimación del primer cero en cada iteración.Variante de qlm.m
en la que en lugar de dar como parámetro de salida la estimación de xi
en cada iteración, da como parámetro de salida el error en la estimación de xi
en cada iteración.
[x, y, xi, errores] = qlm_error(N, itermax, n)
, sustituyendo los parámetros por los valores deseados.n == 0
y n == 1
.Este script llama a la función qlm
para distintos valores de n
, de forma que al ejecutar se muestre como resultado una gráfica con la estimación del primer cero xi
en función de la iteración y del índice politrópico.
tabla = qlm_tabla(N, itermax, n_values)
, sustituyendo los parámetros por los valores deseados.qlm
, el tiempo de ejecución es bastante elevado.n_values
debe ser un vector con valores de n
en el intervalo [0, 5).Implementa el método de Linealización Sucesiva (SLM) descrito en el capítulo 4 de la memoria.
[x, y, xi_final, xi_values] = slm(N, itermax, n)
, sustituyendo los parámetros por los valores deseados.N
: Número de puntos de interpolación, debe ser un entero positivo.itermax
: Número máximo de iteraciones, debe ser un entero positivo.n
: Índice politrópico en el intervalo [0, 5).x
: Vector de puntos de evaluación.y
: Vector de valores en los puntos de evaluación.xi_final
: Valor del primer cero en la última iteración.xi_values
: Valores de la estimación del primer cero en cada iteración.Variante de slm.m
en la que en lugar de dar como parámetro de salida la estimación de xi
en cada iteración, da como parámetro de salida el error en la estimación de xi
en cada iteración.
[x, y, xi, errores] = slm_error(N, itermax, n)
, sustituyendo los parámetros por los valores deseados.n == 0
y n == 1
.Este script llama a la función slm
para distintos valores de n
, de forma que al ejecutar se muestre como resultado una gráfica con la estimación del primer cero xi
en función de la iteración y del índice politrópico.
tabla = slm_tabla(N, itermax, n_values)
, sustituyendo los parámetros por los valores deseados.n_values
debe ser un vector con valores de n
en el intervalo [0, 5).