Menu

Tree [ba07fb] default tip /
 History

Read Only access


File Date Author Commit
 .hgignore 2024-08-22 Martín Crespo Carbajales Martín Crespo Carbajales [0e687a] cambiado el markdown
 README.md 2024-08-26 Martín Crespo Carbajales Martín Crespo Carbajales [18226b] Se ha modificado la versión markdown del README...
 README.txt 2024-08-26 Martín Crespo Carbajales Martín Crespo Carbajales [45a036] Se ha modificado la versión txt del README para...
 aplicacion_QLM.m 2024-08-25 Martín Crespo Carbajales Martín Crespo Carbajales [25ec8d] Se ha modificado para que sea compatible con la...
 aplicacion_SLM.m 2024-08-25 Martín Crespo Carbajales Martín Crespo Carbajales [6a4413] Se ha modificado para que sea compatible con la...
 comparaciones.m 2024-08-25 Martín Crespo Carbajales Martín Crespo Carbajales [66a34f] Se ha modificado para que sea compatible con la...
 datos.txt 2024-08-22 Martín Crespo Carbajales Martín Crespo Carbajales [2fe723] Se añade el documento de datos que se lee en lo...
 graficas.m 2024-08-23 Martín Crespo Carbajales Martín Crespo Carbajales [fdc88c] Se han cambiado algunos comentarios
 ode45_lane_emden.m 2024-08-23 Martín Crespo Carbajales Martín Crespo Carbajales [7a8c06] Se ha añadido la representación de las solucion...
 qlm.m 2024-08-26 Martín Crespo Carbajales Martín Crespo Carbajales [2f44c8] Se han eliminado los display por pantalla
 qlm_error.m 2024-08-26 Martín Crespo Carbajales Martín Crespo Carbajales [0f3947] Se han eliminado los display por pantalla
 qlm_tabla.m 2024-08-26 Martín Crespo Carbajales Martín Crespo Carbajales [e1d6b1] Se han eliminado los display por pantalla y se ...
 slm.m 2024-08-26 Martín Crespo Carbajales Martín Crespo Carbajales [09d9ed] Se han eliminado los display por pantalla
 slm_error.m 2024-08-26 Martín Crespo Carbajales Martín Crespo Carbajales [dfa973] Se han eliminado los display por pantalla
 slm_tabla.m 2024-08-26 Martín Crespo Carbajales Martín Crespo Carbajales [ba07fb] Se han eliminado los display por pantalla y se ...

Read Me

Explicación del contenido de cada archivo

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.


1. aplicacion_QLM.m

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.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: aplicacion_QLM.
  • Resultado: Al finalizar, debería ver una gráfica con las soluciones obtenidas mediante el método de Quasi-Linealización.
  • Nota: Dado que se llama a la función qlm.m repetidamente, la ejecución puede tardar varios minutos.

2. aplicacion_SLM.m

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.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: aplicacion_SLM.
  • Resultado: Al finalizar, debería ver una gráfica con las soluciones obtenidas mediante el método de Linealización Sucesiva.

3. comparaciones.m

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.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: comparaciones(N, itermax, n, N_values), sustituyendo los parámetros por los valores deseados.
  • Nota: El tiempo de ejecución puede ser considerable debido a las múltiples llamadas a funciones. El tiempo de ejecución si se crean todas las gráficas puede ser muy elevado.
  • Nota 2: Si quiere omitir la creación de alguna gráfica, puede comentar la línea correspondiente a la llamada de la función que la crea dentro de la función principal.

Descripción de las funciones

  • 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.

  • 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.

4. datos.txt

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.


5. graficas.m

Este script genera las gráficas que representan las soluciones analíticas para los casos n = 0, n = 1, y n = 5.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: graficas.
  • Resultado: La gráfica creada se encuentra en la página 12 de la memoria.

6. ode45_lane_emden.m

Este script contiene tres funciones: una principal y dos secundarias, que se utilizan para resolver la ecuación de Lane-Emden utilizando ode45.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: [t, y, te] = ode45_lane_emden(n, b);, sustituyendo n y b por los valores deseados.
  • Resultado: Al finalizar, debería ver una tabla con los valores de t y los valores de la ecuación en esos puntos (y), así como el valor del primer cero.

Descripción de las funciones

  • 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.

  • Nota: Para ver una descripción detallada de esta función, visitar: https://es.mathworks.com/help/matlab/math/ode-event-location.html.

7. qlm.m

Implementa el método de Quasi-Linealización (QLM) descrito en el capítulo 5 de la memoria.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: [x, y, xi_final, xi_values] = qlm(N, itermax, n), sustituyendo los parámetros por los valores deseados.
  • Resultado: Al finalizar, debería ver el valor de los puntos de evaluación, los valores de la ecuación en esos puntos, el valor de la estimación final del primer cero y la estimación del primer cero en cada iteración.
  • Nota: El tiempo de ejecución aumenta considerablemente con el número de puntos de interpolación N. Se puede esperar que la ejecución dure unos minutos.

Parámetros de entrada y salida

  • 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).
  • Salida:
  • 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.

8. qlm_error.m

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.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: [x, y, xi, errores] = qlm_error(N, itermax, n), sustituyendo los parámetros por los valores deseados.
  • Resultado: Al finalizar, debería ver el valor de los puntos de evaluación, el valor de la ecuación en los puntos de evaluación, el valor de la estimación final del primer cero y el error en la estimación del primer cero en cada iteración.
  • Nota: Esta función solo calcula errores para n == 0 y n == 1.

9. qlm_tabla.m

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.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: tabla = qlm_tabla(N, itermax, n_values), sustituyendo los parámetros por los valores deseados.
  • Resultado: Al finalizar, debería ver una tabla de la estimación del primer cero en función de la iteración y del valor del índice politrópico.
  • Nota 1: Al realizar varias llamadas a la función qlm, el tiempo de ejecución es bastante elevado.
  • Nota 2: El parámetro n_values debe ser un vector con valores de n en el intervalo [0, 5).
  • Nota 3: El código de este archivo ha sido creado con ayuda de ChatGPT 3.5.

10. slm.m

Implementa el método de Linealización Sucesiva (SLM) descrito en el capítulo 4 de la memoria.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: [x, y, xi_final, xi_values] = slm(N, itermax, n), sustituyendo los parámetros por los valores deseados.
  • Resultado: Al finalizar, debería ver el valor de los puntos de evaluación, los valores de la ecuación en esos puntos, el valor de la estimación final del primer cero y la estimación del primer cero en cada iteración.

Parámetros de entrada y salida

  • 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).
  • Salida:
  • 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.

11. slm_error.m

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.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: [x, y, xi, errores] = slm_error(N, itermax, n), sustituyendo los parámetros por los valores deseados.
  • Resultado: Al finalizar, debería ver el valor de los puntos de evaluación, el valor de la función en los puntos de evaluación, el valor de la estimación final del primer cero y una vector del error en la estimación del primer cero en cada iteración.
  • Nota: Esta función solo calcula errores para n == 0 y n == 1.

12. slm_tabla.m

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.

  • Ejecución: Para ejecutar en MATLAB, escriba en la consola: tabla = slm_tabla(N, itermax, n_values), sustituyendo los parámetros por los valores deseados.
  • Resultado: Al finalizar, debería ver una tabla de la estimación del primer cero en función de la iteración y del valor del índice politrópico.
  • Nota 1: El parámetro n_values debe ser un vector con valores de n en el intervalo [0, 5).
  • Nota 2: El código de este archivo ha sido creado con ayuda de ChatGPT 3.5.