Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


METODO DE EULER SIMULACION DE PROCESOS, Ejercicios de Modelación Matemática y Simulación

EJERCICIOS DE MODELADO DE SIMULACION METODO DE EULER

Tipo: Ejercicios

2019/2020

Subido el 23/09/2020

carlos-alejandro-11
carlos-alejandro-11 🇪🇨

3 documentos

1 / 25

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Docente: Ing. Gonzalo Villa Paralelo: 701
SIMULACION DE PROCESOS INDUSTRIALES
TALLER #5 MÉTODOS DE RUNGE KUTTA DE SEGUNDO Y
CUARTO ORDEN
INTEGRANTES:
Alejandro Palma Carlos
Zurita Borja Cinthia
UNIVERSIDAD ESTATAL DE GUAYAQUIL
FACULTAD DE INGENIERIA QUIMICA
CARRERA DE INGENIERIA QUIMICA
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Vista previa parcial del texto

¡Descarga METODO DE EULER SIMULACION DE PROCESOS y más Ejercicios en PDF de Modelación Matemática y Simulación solo en Docsity!

Docente: Ing. Gonzalo Villa Paralelo: 701

SIMULACION DE PROCESOS INDUSTRIALES

TALLER #5 MÉTODOS DE RUNGE KUTTA DE SEGUNDO Y CUARTO ORDEN

INTEGRANTES:

Alejandro Palma Carlos

Zurita Borja Cinthia

UNIVERSIDAD ESTATAL DE GUAYAQUIL

FACULTAD DE INGENIERIA QUIMICA

CARRERA DE INGENIERIA QUIMICA

TALLER No. 5

MÉTODO DE RUNGE KUTTA SEGUNDO ORDEN INVESTIGACIÓN

MÉTODO DE RUNGE KUTTA SEGUNDO ORDEN

La primera opción que podemos aplicar es integrar mediante el método de los trapecios, es decir tomando:

Al ser desconocida yn+1 en la expresión anterior, lo aproximaremos por ¯yn+1, donde y¯n+1 es la estimación de yn+1 que resultaría aplicando el método de Euler. Tendremos así:

Comparando este método con el método de Taylor de segundo orden, es posible demostrar que el error local es también proporcional a h 3 y, por tanto, el global lo es a h 2. Los métodos de Taylor tienen la propiedad de un error local de truncamiento de orden superior, pero la desventaja de requerir el cálculo y la evaluación de las derivadas de f(t, y). Esto resulta algo lento y complicado, en la mayoría de los problemas, razón por la cual, en la práctica casi no se utilizan. El método de Euler, lamentablemente requiere de un paso muy pequeño para una precisión razonable. Los métodos de Runge Kutta tienen el error local de truncamiento del mismo orden que los métodos de Taylor, pero prescinden del cálculo y evaluación de las derivadas de la función f(t, y).

Simulación de procesos industriales II

Reacomodando términos en (9), resulta:

Por otro lado, se hace un desarrollo de Taylor de orden 3 de la función y(t), calculado en el punto ti+1, obteniendo:

Aplicando regla de la cadena para las derivadas de f, se tiene:

Comparando las expresiones (10) y (12), e igualando los coeficientes de h y h^2 , se tiene:

Sucede que se tienen cuatro incógnitas, pero tres ecuaciones, con lo que queda un grado de libertad en la solución del sistema dado en (13). Se trata de usar este grado de libertad para hacer que los coeficientes de h^3 en las expresiones (10) y (12) coincidan. Esto obviamente no se logra para cualquier f.

Simulación de procesos industriales II Hay muchas soluciones para el sistema (13), una de ellas es

obteniendo así la siguiente fórmula, del método de Runge Kutta de orden 2:

para i desde 0 hasta N-1, tomando un mallado {ti, i = 0, .., N}

Este método tiene un error local de O(h^3 ), y global de O(h^2 ).

Mejora entonces el método de Euler, por lo que se espera poder usar con este método un paso mayor. El precio que debe pagarse en este caso, es el de evaluar dos veces la función en cada iteración. [CITATION Rep11 \l 12298 ]

EJERCICIO DE APLICACION DEL TALLER No.5 MÉTODO DE RUNGE KUTTA DE

SEGUNDO ORDEN

Aproximación a la solución del problema del valor inicial: y'^ = f ( t , x )^ con y 0 = y ( a ) En el intervalo [a, b]. Mediante el método de Runge -Kutta de segundo orden. Resolver la siguiente ecuación: dy dx =^

y + 1 y − 1 ;^ y^ (^0 )=^1  Primero almacenamos la función como un archivo, por ejemplos: ODEF1.m  Luego creamos otra función donde desarrollamos el método de Runge Kutta y lo guardamos como RK

Simulación de procesos industriales II

Script SALIDA_RK

SALIDA COMAND WINDOWS

Simulación de procesos industriales II

ANALISIS DE LOS CODIGOS

Simulación de procesos industriales II La ecuación que se muestra a continuación es perteneciente a la variable H en la que se reemplazaran los valores de las variables a, b y N

  1. t=zeros(1,N+1);
  2. Y=zeros(1,N+1); En estas líneas se vuelven escalar las variables de t y Y con respecto a los parámetros de 1 y N+
  3. t=[a:H:b]; La variable de t que es una de los ejes de la gráfica partirá desde el valor de la variable a hasta el valor de la variable b digiriendo un incremento de H unidades.
  4. Y(1)=Y0; En esta línea se asignan el valor de y0 a y(1)
  5. for J=1:N Con el comando for J=1:N nosotros podemos formar un ciclo que empieza desde 1 hasta el valor de N la que es el número de pasos.
  6. K1=H*feval(F,t(J),Y(J));
  7. K2=H*feval(F,t(J)+H,Y(J)+K1); En estas líneas almacenamos los valores de k1 y k2, mediante las ecuaciones propuestas para cada variable la que multiplica por el comando feval la que evalúa la función usando los argumentos de las variables H, F, Y(J) y t(J);
  8. Y(J+1)=Y(J)+0.5(K1+K2); La función Y(J+1) es evaluada mediante la función Y(J)+0.5(K1+K2)
  9. end Fin del ciclo
  10. t=t';
  11. Y=Y'; En estas líneas se asignan los valores de t’ a t y Y’ a Y

SCRIPT SALIDA_RK

Simulación de procesos industriales II

  1. Clear,clc Con estos comandos limpiamos la command Windows, además de eliminar variables guardadas.
  2. [t,Y]=RK2(@ODEF1,0,0.4,1,4) En esta línea se agrupan las variables para graficar t y y; con ello se hace llamar a las funciones RK2 Y ODEF1 entre parámetros expuestos por el docente.

COMANDOS NUEVOS RETURN Definición: Retorno de control a la función de invocación. Sintaxis: return Descripción: return para devolver el control a la función de invocación antes de que llegue al final de la función. La función de invocación es la función que llama al script o función que contiene la llamada a return. Si llama directamente a la función o secuencia de comandos que contiene return, no hay función de invocación y MATLAB devuelve el control al símbolo del sistema. Nota Tenga cuidado cuando use return en bloques condicionales, como if o switch , o dentro de sentencias de control de bucle, como for o while. Cuando MATLAB alcanza una declaración de return, no solo sale del bucle; sale del script o de la función y devuelve el control a la función invocadora o al símbolo del sistema. Ejemplo:Regrese el control al teclado En su carpeta de trabajo actual, cree una función, findSqrRootIndex , para encontrar el índice de la primera aparición de la raíz cuadrada de un valor dentro de una matriz. Si no se encuentra la raíz cuadrada, la función devuelve NaN. función idx = findSqrRootIndex (target, arrayToSearch) idx = NaN; if el objetivo < return

Simulación de procesos industriales II Z = zeros(sz, arraytype ) crea una matriz con clase subyacente de doble, con ceros en todos los elementos. Z = zeros(sz, datatype , arraytype ) crea una matriz con clase subyacente de datatype de datatype , con ceros en todos los elementos. Z = zeros(sz,'like',P) crea una matriz de ceros con el mismo tipo y clase subyacente (tipo de datos) que la matriz P Z = zeros(sz, datatype ,'like',P) crea una matriz de ceros con la clase subyacente especificada ( datatype ) y del mismo tipo que la matriz P C = zeros(sz,codist) o C = zeros(sz, datatype ,codist) crea una matriz codistribuida de ceros con el tamaño especificado y la clase subyacente (el datatype predeterminado es 'double' ). El codificador de objeto codist especifica el esquema de distribución para crear la matriz codistribuida. Para obtener información sobre la construcción de objetos codistributor, consulte las páginas de referencia para codistributor1d y codistributor2dbc. Para usar el esquema de distribución predeterminado, puede especificar un constructor de codistribuidor sin argumentos. Por ejemplo: spmd C = ceros (8, codistribuidor1d ()); fin C = zeros(sz, ___ ,codist,'noCommunication') especifica que no se debe realizar ninguna comunicación entre interlocutores al construir una matriz codistribuida, omitiendo algunos pasos de comprobación de errores. C = zeros(sz, ___ ,codist,'like',P) crea una matriz de ceros codistribuida con el tamaño, la clase subyacente y el esquema de distribución especificados. Si se omite el argumento de la clase o del codistribuidor, la característica se adquiere de la matriz codistribuida P. Ejemplo:Crear matriz de ceros distribuidos Cree una matriz distribuida de ceros de 1000 por 1000 con el doble de clase subyacente: D = ceros (1000, 'distribuidos' );

[ CITATION Mat181 \l 12298 ]

CONCLUSIONES

Simulación de procesos industriales II Mediante el método de Runge-Kutta de segundo orden es posible resolver ecuaciones diferenciales ordinarias mediante con el proceso de truncamiento del error, lo que nos puede dar respuestas un poco mas exactas a diferencia del método de euler, ya que éste es un poco limitado al ser de un solo paso. RECOMENDACIONES Se debe prestar atención a la sintaxis para la construcción de los códigos, no solo en las funciones si no también en la creación del script del proceso ya que todos son importantes para la resolución de la ecuación. El método de RUNGE KUTTA de segundo orden es mas factible utilizarlo cuando se tiene una ecuación diferencial ordinaria y además nos dan el dominio de la función.

BIBLIOGRAFIA MathWorks. (2018). Comando Return. Obtenido de MATLAB Help: https://www.mathworks.com/help/matlab/ref/return.html MathWorks. (2018). Zeros. Obtenido de MatLab Help: https://www.mathworks.com/help/distcomp/zeros.html&prev=search

MÉTODO DE RUNGE KUTTA CUARTO ORDEN INVESTIGACIÓN

Simulación de procesos industriales II

Pendiente= k1+2k2+2k3+ k

Esta forma del método de Runge-Kutta, es un método de cuarto orden, lo cual significa que el error por paso es del orden de O(h5), mientras que el error total acumulado tiene el orden O(h4). Por lo tanto, la convergencia del método es del orden de O(h4) razón por la cual es usado en los métodos computacionales.

Si ahora m = 4, se obtiene, con un desarrollo del tipo del anterior, la siguiente fórmula, para i desde 0 hasta N-1:

Si bien con facilidad se pueden deducir otras fórmulas, el algoritmo expresado en (16) se denomina método de Runge-Kutta de cuarto orden, o método clásico de Runge-Kutta, abreviado como RK4. Este algoritmo es de uso extendido, y reconocido como una valiosa herramienta de cálculo, por la buena aproximación que produce.

Simulación de procesos industriales II Esta fórmula tiene un error de truncamiento local de O(h^5 ), y un error global de O(h^4 ). De nuevo, el precio que se debe pagar por la mejora en el error, es una mayor cantidad de evaluaciones de la función, resultando en un mayor tiempo de cálculo si la función es complicada. Tiene la ventaja, sobre el método de Taylor de orden 4 (cuyo error global es también O(h^4 ), que no requiere el cálculo de las derivadas de f.

Implementación del método RK

Se presenta a continuación el pseudocódigo del método RK4, para ser implementado en cualquier lenguaje de programación, o software simbólico.

Ejemplo

Con el método RK4, obtener una aproximación del valor de y(1,5) para el siguiente problema de valor inicial, tomando un paso h = 0,1.

El primer paso para resolver este problema es determinar la malla de puntos en donde se va a obtener la solución.

Como en este caso h está dado, se tiene que N = (1,5 - 1)/0,1 = 5.

Simulación de procesos industriales II El método más común de resolución numérica de ecuaciones diferenciales es el método de Runge-Kuta de cuarto orden, cuya aplicación se resume a continuación Sean las ecuaciones diferenciales tales como: dy dx = f^^1 ( t^ ,^ y^1 ,^ y^2 ,…^ ,^ yn^ ) dy 2 dx = f^^2 ( t^ ,^ y^1 ,^ y^2 ,^ ^ ,^ yn^ ) dyn dx = f^ n^ ( t^ ,^ y^1 ,^ y^2 ,^ ^ ,^ yn^ ) Su integración se realiza evaluando los siguientes parámetros: pk = hf ∗( tk , yk )

qk = h ∗ f ( tk + h 2 yk + q 2 k )

sk = h ∗ f ( tk + hyk + r )

Las ecuaciones integradas numéricamente se obtienen mediante:

yk , i + 1 = yk , i + pk^ +^2 qk 6 +^2 r^ k +^ sk

Para integración de ecuaciones diferenciales por el método de Runge-Kuta de cuatro parámetros se elaboró la función odegil4.m de paso de integración fijo. SCREENSHOTS DE LOS CODIGOS EN MATLAB Script ecudifp

Simulación de procesos industriales II

Función ogedil

Función ecudif