

















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
EJERCICIOS DE MODELADO DE SIMULACION METODO DE EULER
Tipo: Ejercicios
1 / 25
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


















SIMULACION DE PROCESOS INDUSTRIALES
TALLER #5 MÉTODOS DE RUNGE KUTTA DE SEGUNDO Y CUARTO ORDEN
UNIVERSIDAD ESTATAL DE GUAYAQUIL
FACULTAD DE INGENIERIA QUIMICA
CARRERA DE INGENIERIA QUIMICA
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 ]
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
Simulación de procesos industriales II
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
Simulación de procesos industriales II
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 ]
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
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 = h ∗ f ∗( tk , yk )
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