09 EcuacionesDiferenciales-2014

MÉTODOS NUMÉRICOS ECUACIONES DIFERENCIALES ORDINARIAS INTRODUCCIÓN Los Métodos Numéricos presentan soluciones de Ecuacio

Views 195 Downloads 0 File size 346KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

MÉTODOS NUMÉRICOS ECUACIONES DIFERENCIALES ORDINARIAS INTRODUCCIÓN Los Métodos Numéricos presentan soluciones de Ecuaciones Diferenciales sólo aproximadas, pero con una precisión que puede ser suficiente para los cálculos de ingeniería. Sin embargo, para aplicar estos métodos, es necesario conocer un punto que satisfaga a la Ecuación. MÉTODO DE PICARD: En este método, inicialmente se asume que x = x 0; y = y0 y se usa la fórmula siguiente: ∫

EJEMPLO 1: resolver la E.D. y’ = y + 2x en el punto P0(0,1), hallar yn(0.2), con una precisión menor a 1x10-5. PRÁCTICA 1: resolver la E.D. y’ = (x + 2y)1/2 en el punto P0(3,2), hallar yn(1) con e < 1x10-6. MÉTODO DE LA SERIE DE TAYLOR: Este método se basa en el desarrollo de funciones por Series de Taylor y tiene la fórmula siguiente:

EJEMPLO 2: usando la E.D. del ejemplo 1, resolver por este método y hallar y n(1). PRÁCTICA 2: resolver la E.D. y’ = (x + y)1/2 en el punto P0(1,3), hallar yn(2) con e < 1x10-6. MÉTODO DE EULER: Este método posee la ventaja de su simplicidad, aunque sus resultados no son todo lo precisos que se pueda esperar; tiene la fórmula:

Donde: EJEMPLO 3: usando la E.D. del ejemplo 1, resolver por este método y hallar y n(1), para n = 0 hasta n = 5. PRÁCTICA 3: resolver la E.D. del ejemplo 3 de n = 0 hasta n = 10.

Luis Cabezas Tito

Métodos Numéricos

Página 1

MÉTODO DE EULER MEJORADO O MÉTODO DE HEUN: Debido a la escasa aproximación que brinda el Método de Euler, se introduce una corrección, que permite mejorar su precisión.

Donde: EJEMPLO 4: usando la E.D. del ejemplo 1, resolver por este método y hallar y n(1), para n = 0 hasta n = 5. PRÁCTICA 4: resolver la E.D. del ejemplo 4 de n = 0 hasta n = 10. MÉTODO DE RUNGE – KUTTA O MÉTODO DE KUTTA - SIMPSON: Este es el método de resolución de E.D. por excelencia, permitiendo una mayor precisión y por ello es el más usado.

Donde:

EJEMPLO 5: usando la E.D. del ejemplo 1, resolver por este método para x = 1. PRÁCTICA 5: resolver la E.D. y’ = (x + 2y)1/2, P0 = (0.3,0.17); x = 0.5. OPTIMIZACIÓN DEL MÉTODO DE RUNGE – KUTTA: Una alternativa para mejorar más aún la excelente precisión que brinda el Método de Runge – Kutta consiste en hacer una aproximación mediante pasos sucesivos. En particular esta optimización es conveniente cuando el valor de x 0 conocido dista bastante, en forma relativa, del valor de x para el que se desea calcular.

MÉTODO DE MILNE: Todos los Métodos anteriormente analizados son Métodos de sólo UN PASO, ya que en el cálculo de la siguiente aproximación yn+1 se usa solamente la aproximación anterior: y n. Los métodos de pasos múltiples, para el cálculo de la siguiente aproximación: y n+1 usan dos o más aproximaciones anteriores: y n, yn-1, yn-2, etc. El principal método de pasos múltiples es el Método de Milne que usa DOS PASOS, mediante la fórmula: [

]

EJEMPLO 6: usando la E.D. del ejemplo 1, resolver por este método para P 0(0,1); x = 1. Donde h = (x – x0)/n Aplicando el Método de Milne, elaborar la siguiente tabla para n = 10: n 0 1 2 3 4 5 6 7 8 9 10

xn 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

yn

PRÁCTICA 6: resolver la E.D. y’ = (x + 2y)1/2, P0 = (0.3, 0.17); x = 0.5.

RESOLUCÍON DE ECUACIONES DIFERENCIALES CON MATLAB EJEMPLO 7: determinar la solución de la ecuación diferencial:

SOLUCIÓN: Crear un archivo m o script con los siguientes datos: function sol=ejemplo(x,y) sol = x-y; El intervalo de trabajo será [0 1].

La condición inicial y0 = 2. Escribir en el workspace de MATLAB: >> [x,y]=ode45('ejemplo',[0 1],2) x= 0 0.0250 0.0500 0.0750 0.1000 0.1250 0.1500 0.1750 0.2000 0.2250 0.2500 0.2750 0.3000 0.3250 0.3500 0.3750 0.4000 0.4250 0.4500 0.4750 0.5000 0.5250 0.5500 0.5750 0.6000 0.6250 0.6500 0.6750 0.7000 0.7250 0.7500 0.7750 0.8000 0.8250 0.8500 0.8750 0.9000 0.9250 0.9500 0.9750 1.0000

y= 2.0000 1.9509 1.9037 1.8582 1.8145 1.7725 1.7321 1.6934 1.6562 1.6205 1.5864 1.5537 1.5225 1.4926 1.4641 1.4369 1.4110 1.3863 1.3629 1.3407 1.3196 1.2997 1.2808 1.2631 1.2464 1.2308 1.2161 1.2025 1.1898 1.1780 1.1671 1.1571 1.1480 1.1397 1.1322 1.1256 1.1197 1.1146 1.1102 1.1066 1.1036 MÉTODO DE EULER: EJEMPLO 8: resuelva el siguiente problema de valor inicial por método de Euler:

SOLUCIÓN: Para resolver la ecuación diferencial dada, se utilizará n = 5 que es el número de franjas. Crear un script o archivo m con los siguientes comandos. function valor = Der_Euler(x,y) valor = x-y; ejecutar el siguiente archivo Euler_L: >> Euler_L METODO DE EULER Arch. Ecuación ? Der_Euler Punto Inicial ? 0 Condicion Inicial ? 2 Punto Final ?1 Nro Intérvalos ? 5 Ver Grafica (s/n) ? s SOLUCION num xf yf 0 0.00000 2.00000 1 0.20000 1.60000 2 0.40000 1.32000 3 0.60000 1.13600 4 0.80000 1.02880 5 1.00000 0.98304 ans = 0.9830

PRÁCTICA 7: resuelva el siguiente problema de valor inicial, para el intervalo que va de x = 0 a x = 2. Graficar los datos obtenidos.

MÉTODO DE TAYLOR: EJEMPLO 9: resuelva el siguiente problema de valor inicial por método de Taylor:

SOLUCIÓN: Para determinar la derivada de la función se utiliza la ecuación:

Con lo cual se obtiene:

Con este resultado, crear un script de la siguiente manera: function valor = Der_Taylor(x,y) valor = [x-y,1-x+y]; Ahora ejecutar: >> Taylor_L METODO DE TAYLOR Arch. Ecuación ? Der_Taylor Punto Inicial ? 0 Condicion Inicial ? 2 Punto Final ?1 Nro Intérvalos ? 5 Ver Grafica (s/n) ? s SOLUCION num xf yf 0 0.00000 2.00000 1 0.20000 1.66000 2 0.40000 1.41720 3 0.60000 1.25410 4 0.80000 1.15637 5 1.00000 1.11222

ans = 1.1122

PRÁCTICA 8: resuelva desde t 0 0 hasta t = 3 con h = 0.1, la ecuación diferencial (graficar los resultados):

MÉTODO DE EULER MODIFICADO: EJEMPLO 10: resuelva el siguiente problema de valor inicial por método de Euler Modificado:

SOLUCIÓN: Escribir en un archivo script: function valor = Der_EulerM(x,y) valor = x-y; Se resolverá para n = 5 franjas. A continuación escribir: >> EulerModificado_L Arch. Ecuación ? Der_EulerM Punto Inicial ? 0 Condicion Inicial ? 2 Punto Final ?1 Nro Intérvalos ? 5

Ver Grafica (s/n) ? s SOLUCION num xf yf 0 0.00000 2.00000 1 0.20000 1.66000 2 0.40000 1.41720 3 0.60000 1.25410 4 0.80000 1.15637 5 1.00000 1.11222 ans = 1.1122

PRÁCTICA 9: resuelva el siguiente problema en forma numérica, con un tamaño de paso de 0.5 y 0.01, además de graficar los resultados.

MÉTODO DE RUNGE - KUTTA: EJEMPLO 11: resuelva el siguiente problema de valor inicial por método de Runge - Kutta:

SOLUCIÓN: Escribir en un archivo script: function valor = Der_Runge(x,y) valor = x-y;

Se resolverá para n = 5 franjas. A continuación escribir: >> RungeKutta_L METODO DE RUNGE KUTTA Arch. Ecuación ? Der_Runge Punto Inicial ? 0 Condicion Inicial ? 2 Punto Final ?1 Nro Intérvalos ? 5 Ver Grafica (s/n) ? s SOLUCION num xf yf 0 0.00000 2.00000 1 0.20000 1.65620 2 0.40000 1.41097 3 0.60000 1.24645 4 0.80000 1.14800 5 1.00000 1.10366 ans = 1.1037

PRÁCTICA 10: un tanque cilíndrico de 5 m de diámetro y 11 m de largo aislado con asbesto se carga con un líquido que está a 220 oF y el cual se deja reposar durante cinco días. A partir de los datos de diseño del tanque, las propiedades térmicas y físicas del líquido y el valor de la temperatura ambiente se encuentra la ecuación: (

)

Que relaciona la temperatura T del líquido en 0C con el tiempo t en horas. Utilizando el método Runge-Kutta, determine la temperatura final del líquido. ECUACIONES DIFERENCIALES DE ORDEN SUPERIOR: EJEMPLO 12: considere el siguiente sistema de ecuaciones obtenido por medio de un cambio de variables:

Resuelva para xf = 12. SOLUCIÓN: Crear un archivo m o script con el código siguiente: function dy=OrdenSuperior(t,y) dy=zeros(3,1); dy(1)=y(2)*y(3); dy(2)=-y(1)*y(3); dy(3)=-0.51*y(1)*y(2); Se define el intervalo de trabajo desde x 0 = 0 a xf = 12 como un vector [0 12]. Se definen las condiciones iniciales como un vector fija [0;1;1]. A continuación, escribir: >> [T,Y]=ode45(@OrdenSuperior,[0 12],[0 1 1]) Para realizar una representación gráfica de la información obtenida se escribe lo siguiente: >> plot(T,Y(:,1),'-',T,Y(:,2),'.-',T,Y(:,3),'.')

ECUACIONES DIFERENCIALES DE SEGUNDO ORDEN: EJEMPLO 13: resuelva el siguiente problema de valor inicial por el método de Runge-Kutta de segundo orden: (

)

Utilice 8 subintervalos. SOLUCIÓN: En principio se escribe la respectiva ecuación diferencial como un sistema: (

A continuación, crear un archivo script siguiente: function dy=EDO(x,y,z) dy(1)=2; dy(2)=-2/x+(1/(x.^2)-1).*y; Luego ejecutar: >> EDO2do_L ECUACIONES DE SEGUNDO ORDEN Arch. Ecuación ? EDO Punto Inicial Xo ? 1 Condicion Inicial Yo ? 1 Condicion Inicial Zo ? 2 Punto Final Xf ? 3 Nro Intérvalos ?8 SOLUCION x y z 1.00000 1.00000 2.00000 1.25000 1.50000 1.48748 1.50000 2.00000 0.91664 1.75000 2.50000 0.25890 2.00000 3.00000 -0.50003 2.25000 3.50000 -1.36809 2.50000 4.00000 -2.35003 2.75000 4.50000 -3.44889 3.00000 5.00000 -4.66670

)

ans = 3.0000 5.0000 -4.6667 PRÁCTICA 11: resuelva el siguiente problema de valor inicial con el método de Runge-Kutta de segundo orden, con h = 0.05 y h = 0.01.

Grafique y compare los resultados. De igual forma, grafique la curva de error.

----- oOo -----