UNIDAD 5.- SOLUCION DE ECUACIONES DIFERENCIALES

Anuncio
UNIDAD 5.- Solución de ecuaciones diferenciales.
5.1 Métodos de un paso.
5.1.1 Método de Euler y Euler mejorado.
Método de Euler
Se llama método de Euler al método numérico consistente en ir incrementando paso a paso
la variable independiente y hallando la siguiente imagen con la derivada.
La primera derivada proporciona una estimación directa de la pendiente en Xi (ver Gráfico
Nº01).
[1]
Donde f (Xi, Yi) es la ecuación diferencial evaluada en Xi y Yi, Tal estimación podrá
substituirse en la ecuación [2] nos queda que:
[2]
Esta fórmula es conocida como el método de Euler (punto medio). Se predice un nuevo
valor de Y por medio de la pendiente (igual a la primera derivada en el valor original de X).
Error para el método de Euler
La solución numérica de las ecuaciones diferenciales ordinarias (EDO) involucra dos tipos
de error.
1) Errores de Truncamiento, o discretizacion, causados por la naturaleza de las técnicas
empleadas para aproximar los valores de y.
2) Errores de Redondeo, que son el resultado del número limite de cifras significativas que
pueden retener una computadora.
Método de Euler Mejorado
Este método se basa en la misma idea del método anterior, pero hace un refinamiento en la
aproximación, tomando un promedio entre ciertas pendientes.
La fórmula es la siguiente:
Donde
Para entender esta fórmula, analicemos el primer paso de la aproximación, con base en la
siguiente gráfica:
En la gráfica, vemos que la pendiente promedio
corresponde a la pendiente de la recta
bisectriz de la recta tangente a la curva en el punto de la condición inicial y la "recta
tangente" a la curva en el punto
donde
es la aproximación obtenida con la
primera fórmula de Euler. Finalmente, esta recta bisectriz se traslada paralelamente hasta
el punto de la condición inicial, y se considera el valor de esta recta en el punto
como la aproximación de Euler mejorada.
5.1.2 Método de Runge-Kutta.
Introducción:
La computadora, es la herramienta mas poderosa hasta ahora conocida, para la
solución de problemas en el campo de las ciencias exactas, en este caso los
métodos numéricos, como punto principal por sus aplicaciones en la ingeniería.
Los métodos numéricos son técnicas, donde es posible resolver los problemas por
medio de operaciones aritméticas, estos métodos implementan un buen numero
de cálculos que son por demás demasiado lentos si se hacen manualmente,
gastando mucha energía en la técnica misma de solución en vez de aplicarla
sobre la definición del problema y su interpretación.
El trabajo monótono que se hacia anteriormente al uso de la computadora, hace
de importancia, el dominio de los métodos numéricos, los cuales se deben llevar a
cabo en combinación con las capacidades y potencialidades de la programación
de computadoras para de esa forma resolver los problemas de ingeniería mucho
mas fácilmente y eficientemente.
Objetivo de los métodos de Runge-Kutta:
El objetivo de los métodos numéricos de runge-kutta, es el análisis y solución de
los problemas de valor inicial de ecuaciones diferenciales ordinarias (EDO), estos
son una extensión del método de euler para resolver las (EDO’S), pero con un
orden de exactitud mas alto que este.
Modelos matemáticos:
Los conocimientos científicos se usan rutinariamente por los ingenieros en el
diseño de elementos tales como maquinas, circuitos eléctricos, estructuras etc.
Estos conocimientos son muy útiles cuando se expresan en forma de un modelo
matemático, el cual se puede definir como una ecuación que expresa las
características fundamentales de un sistema o proceso físico en términos
matemáticos, siendo clasificados estos modelos, desde simples relaciones
algebraicas hasta grandes y complicados sistemas de ecuaciones diferenciales.
Análisis de un modelo matemático:
Un modelo matemático: es una expresión matemática como veremos en el
siguiente ejemplo:
Formula de la segunda ley de newton:
F= ma donde : F es la fuerza neta que actúa sobre el cuerpo.
m es la masa del objeto.
Utilizando esta ley, vamos a determinar la velocidad de un paracaidista en caída
libre.
Para este caso puede crearse un nuevo modelo, expresando la aceleración como
la razón de cambio de la velocidad con respecto al tiempo (dv/dt) .
Y sustituir en la ecuación de nueva forma:
F=m(dv/dt)
Así la masa, multiplicada por la razón de cambio de la velocidad es igual a la suma
de fuerzas que actúan sobre el cuerpo.
Si la fuerza total cuando el objeto cae es positiva el objeto acelera, pero si es
negativa desacelera, pero si la fuerza neta es cero la velocidad permanecerá a un
nivel constante.
Para un cuerpo que cae la fuerza , la fuerza total esta compuesta por dos fuerzas
contrarias, la atracción debida a la gravedad Fd, y la fuerza hacia arriba debida a
la resistencia del aire Fu.
Por lo tanto: F= Fd + Fu
La fuerza debida a la gravedad Fd se puede reescribir:
Fd=mg donde g es la constante de gravitación que equivale a 980 cm por segundo
cuadrado.
La resistencia del aire se puede formular como una aproximación sencilla
linealmente proporcional a la velocidad:
Fv = -cv donde c es una constante de proporcionalidad llamada coeficiente de
arrastre.
Entonces la fuerza total es la diferencia de las fuerzas hacia abajo y hacia arriba,
así que combinando las ecuaciones anteriores:
M(dv/dt)= mg – cv o dividiendo cada lado entre m:
esta es la ecuación de un cuerpo que cae a las fuerzas que actúan sobre el y es
una ecuación diferencial porque esta escrita en términos de la razón diferencial
dv/dt.
Usando el calculo y resolviendo esta ecuación diferencial se puede llegar a la
siguiente formula que expresa la velocidad del paracaidista en función del tiempo.
Ec(principal).
A continuación se observara la diferencia existente entre tres tipos de soluciones
para el problema del paracaidista analizando las ventajas de cada uno de ellos
con respecto a los demás:
Enunciado del problema de un paracaidista que cae:
MÉTODO ANALÍTICO:
Un paracaidista con una masa de 55500 g salta de un aeroplano apliquese la
ecuación principal para calcular la velocidad antes de abrir el paracaídas. El
cociente de arrastre c es aproximadamente igual a 10500 g/s.
Solución :
Al sustituir los valores de los parámetros en la ecuación principal se obtiene
Al dar varios valores de t se obtienen las velocidades se obtienen las velocidades
para el tiempo, los resultados se presentan a continuación:
TABLA DE RESULTADOS
Tiempo en
segundos
Velocidad
en cm/s.
0
0
2
1631.7
4
2749.5
6
3515.1
8
4039.6
10
4398.8
12
4644.9
Al infinito
5180.0
Nota: La escala de la velocidad en la gráfica es de 1=1000.
Si lo has notado para sacar el resultado de tus cálculos de la tabla y gráfica
anteriores necesitas estar sustituyendo en la formula de v(t) esto hace el método
analítico cansado y repetitivo, pero es una solución analítica exacta porque
satisface la ecuación diferencial original.
SOLUCIÓN NUMÉRICA:
La aproximación de la razón de cambio de la velocidad con respecto al tiempo
puede representarse de la siguiente forma
Y llegamos a ordenar esta ecuación de la siguiente manera
la cual puede emplearse para extender el calculo , así que aplicandola
directamente se dirá
Nuevo valor = valor anterior + valor estimulado x incremento del tiempo.
de v. de v de la pendiente
Así pues efectuando el mismo calculo para el problema se procede como sigue:
Sustituyendo en la ecuación, nuevamente vemos que necesitamos aplicar las
matemáticas sin el auxilio de una computadora, y nos vamos a tardar un buen rato
.
v(4)= 2330.8 cm/s.
Y así sucesivamente se continua con el calculo para obtener los valores en la
siguiente tabla
Tiempo en
seg.
Vel. En cm/s.
0
2
4
6
8
10
12
al infinito.
Puede verse por el resultado en la tabla anterior que la solución por un método
numérico se aproxima bastante bien a la solución exacta, pero debido al empleo
de rectas para aproximar la función que es continuamente curva, existe
discrepancia entre los resultados de la tabla del método analítico y la de este
método , una manera de minimizar el error es utilizando intervalos menores de
tiempo en el muestreo de la ecuación, y así los segmentos de recta seguirán mas
de cerca a la solución verdadera.
Calculando manualmente el esfuerzo al usar incrementos cada vez mas pequeños
hará poco practicas las soluciones numéricas, es por eso que a continuación se
presentara un método con el cual se hará uso de un programa de computadora
para la solución del problema.
SOLUCIÓN POR EL MÉTODO DE EULER DEL PROBLEMA DEL
PARACAIDISTA.
Los métodos de euler son procedimientos para resolver EDO’S de primer orden y
se pueden programar en una computadora para no hacer los cálculos
manualmente.
Una desventaja importante de los métodos de euler es que el orden de exactitud
es bajo comparado con los de RUNGE- KUTTA .Y aunque para uno y otro existen
versiones diferentes nosotros solamente nos basaremos en su potencialidad de
aplicación dentro de la programación por computadora para la solución del
problemas.
PROGRAMA PARA LA SOLUCIÓN DEL PROBLEMA DEL PARACAIDISTA.
clear, clf, hold off
t=0; n=0; v=0;
C=10.5; M=55.5; g=9.8; h=.1;
t_rec(1)=t; v_rec(1)=v;
while t<=12
n=n+1;
v=v+h*(-C/M*v*v+g);
t=t+h;
v_rec(n+1)=v;
t_rec(n+1)=t;
end
plot(t_rec,v_rec)
Este programa anterior fue realizado en matlab (Laboratorio de matrices) el cual
puede considerarse como un lenguaje de programación como fortran o C, pero
mas sencillo que estos puesto que cualquier variable puede contener números de
cualquier tipo sin una declaración especial durante la programación .
Por lo que resulta una poderosa herramienta para el análisis numérico y
matemático en la aplicación de los métodos numéricos a la solución de los
problemas de ingeniería.
La siguiente gráfica muestra el resultado del programa anterior (también realizada
por matlab).
Velocidad cm/s.
Tiempo en seg.
Podemos observar, con los resultados anteriores , que la solución por medio de la
programación por computadora se puede hacer que se aproxime a la solución
exacta de la ecuación diferencial tanto como se quiera, dependiendo del método
que se utilice.
En los métodos de RUNGE-KUTTA, el método de exactitud se incrementa
mediante el empleo de un método de integración numérica de mas alto orden, la
mayor exactitud implica que el resultado calculado es mas exacto y que los errores
se reducen con mayor rapidez al reducirse h, donde h es un intervalo de tiempo
fijo que se utiliza repetidamente.
Si consideramos la ecuación diferencial ordinaria siguiente
Si queremos calcular
Aplicamos una regla trapezoidal al miembro derecho , la cual resulta de dividir el
área de una curva en n intervalos iguales de longitud h evaluando el área de cada
una de las fajas, aproximando el arco y=f(x) con la cuerda correspondiente a cada
fajita, si h es lo suficientemente pequeña, entonces se puede aproximar como el
área de un trapecio bajo la curva, es decir:
El área total es la suma de las áreas parciales
Entonces la forma trapezoidal en donde el área se aproxima mediante una suma
de n trapecios es
Esta formula es muy importante ya que se aplica directamente a las diferentes
versiones de los métodos de RUNGE-KUTTA , para poder aplicar las ecuaciones
a problemas concretos.
A continuación veremos algunos ejemplos de los métodos de runge a problemas
de circuitos eléctricos, y su solución mas rápida y eficiente por medio de un
programa realizado en computadora por MATLAB que como ya vimos
anteriormente , ahorra la fatiga de calcular manualmente.
El comportamiento de un circuito eléctrico cambia significativamente dependiendo
de los valores de los componentes empleados , así, en el circuito que se muestra
a continuación , la inductancia L=50mH, una resistencia R=20ohms y una fuente
de voltaje de E=10v. entonces, si se cierra el interruptor en un t=0 la corriente I(t)
satisface la ecuación diferencial
I(0) = 0
Se necesita encontrar el valor de la corriente para 0< t < 0.02 s. mediante un
método de RUNGE-KUTTA de segundo orden con h=.0001.
donde
Mostramos entonces los cálculos para los dos primeros pasos:
t=0
t= 0.0001
en el segundo paso se procede de la misma manera, obteniendo para la corriente
dos un resultado de .038431, pero como podemos darnos cuenta , seria muy
tardado resolverlo manualmente de ahí que lo que falta para calcular se hará en el
programa de matlab.
NOTA: Los programas pueden estar sujetos a errores al escribirse, así que es
recomendable estudiar matlab con mayor detenimiento para poder detectarlos
mas fácilmente.
PROGRAMA PARA RESOLVER EL CIRCUITO ANTERIOR:
clear, clf, hold off
R=20; %ohm
L=50e-3; %H
E=10; %V
y(1)=0; t(1)=0;
h=.1e-3;
n=1;
y_rec(1)=y; t_rec(1)=0; t=0;
RL=R/L; EL=E/L;
while t(n)<.02
K1=h*fn10_9(y(n),RL,EL);
K2=h*fn10_9(y(n)+K1,RL,EL);
y(n+1)=y(n)+.5*(K1+K2);
t(n+1)=n+h;
n=n+1;
end
plot(t,y)
xlabel('t = seg. ' )
ylabel('I(A)')
fn10_9
function f=fn10_9(I,RL,EL)
f=-RL*I+EL
Ahora vamos a un segundo ejemplo de aplicación a circuitos y veamos la siguiente
figura
Los valores de los elementos que se encuentran en la figura anterior son
hipotéticos es solo para representar el circuito, el cual puede definirse por medio
de las siguientes ecuaciones diferenciales con su consiguiente solución por medio
de un listado de programa.
Para la primera inductancia, resistencia y capacitor
con
donde e(t) = 0 excepto e(t)=1 cuando 0<t<0.01s, q(t) es la carga del condensador,
i1(t) e i2(t) son corrientes; Las condiciones iniciales son i1(0) = i2(0) = q(0) = 0 en
todos los casos.
Resolviendo las ecuaciones:
a)
b)igual que (a) excepto que
c)igual que (a) excepto que
d)igual que (a) excepto que
La solución se determina en el siguiente programa realizado en matlab
clear;clg
subplot(221)
for k=1:4
e=1;
if k=1; subplot (221);
La=.01; Lb=.5; Ra=200; Rb=20; C=.002; end
if k=2 subplot(222);
La=.1; Lb=.5; Ra=200; Rb=20;C=.002; end
if k=3; subplot(223);
La=.01; Lb=.25; Ra=200; Rb=20; C=.002; end
if k=4; subplot(224)
La=.01; Lb=.5; Ra=20; Rb=20; C=.002; end
M=[-Ra/La, Ra/La, -1/(La*C);...
Ra/Lb,-(Ra+Rb)/Lb, 1/(Lb*C);...
1/C,-1/C,0]
S=[0;0;0]; X=[0;0;0];
h=.00005;
for n=1:101
t=(n-1)*h;
%S=[sin(t*600)*exp(-t*600)/La;0;0]
%S=[cos(t*600)/La;0;0];
S=[1/La;0;0];
if t>.001, S=[0;0;0];end
k1=h*(M*X+S);
k2=h*(M*(X+k1/2)+S);
k3=h*(M*(X+k2/2)+S);
k4=h*(M*(X+k3)+S);
X=X+(K1+K2*2+k3*2+k4)/6;
X_r(:,n)=X;
t_r(n)=t;
end
plot(t_r,X_r(1:2,:),t_r,X_r(3,:))
xlabel('t'),ylabel('i1,i2,q')
L=length(t_r)
text(t_r(L/10),X_r(1,L/10),'i1')
text(t_r(L/2),X_r(2,L/2),'i2')
text(t_r(L*.8),X_r(3,L*.8),'q')
if k==1;title('(A)'),end
if k==2;title('(B)');end
if k==3;title('(C)');end
if k==4;title('(D)'),end
end
Hay que tener en cuenta que de alguna u otra manera los métodos numéricos
estan sujetos a ciertos errores al hacer los cálculos en muchos pasos
(iteraciones), pero que estos se pueden llegar a despreciar por la actual eficiencia
de las maquinas computadoras, las cuales pueden llegar a tomar los intervalos de
tiempo infinitesimalmente pequeños para la aplicación de las ecuaciones y obtener
los resultados mas rápido y de manera mas exacta.
No hay limite para las aplicaciones que se pueden realizar en programación de
computadoras para resolver los problemas de métodos numéricos así que ya para
terminar a continuación se darán algunos otros ejemplos en matlab para algunos
métodos mencionados como clásicos en algunos libros.
5.2 Método de pasos múltiples.
Métodos de Paso Multiple:
EL valor de xi+1se realiza en función de los valores de xi,xi-1, ….xi-p
El paso de integración h puede ser fijo o variable. En caso de variabilidad se
utilizará el error de integración estimado, como diferencia en la evaluación de
xi+1con dos métodos diferentes.
Metodos de paso multiple
Se considera el problema de valores iniciales (P.V.I.)
8<:
y0(x) = f(x; y(x)); x 2 [a; b];
y(a) = y0 dado,
el que supondremos tiene solucion unica, y : [a; b] �! R, la cual es acotada y
depende continuamente de los datos f e y0.
Dada una partici ´on del intervalo [a; b]:
a = x0 < x1 < _ _ _ < xN = b;
los metodos que hemos visto hasta aqui solo usan la informacion del valor y de la
solucion
calculada en xi para obtener yi+1. Por eso se denominan metodos de paso
simple
Parece razonable pensar que tambien podrian utilizarse los valores yi�k; : : : ; yi
obtenidos en los nodos xi�k; : : : ; xi, para k > 0.
Para ello, si integramos y0(x) = f(x; y(x)) en el intervalo [xi; xi+1], se tiene:
Z xi+1
xi
y0(x) dx = Z xi+1
xi
f(x; y(x)) dx
y, por lo tanto,
y(xi+1) = y(xi) + Z xi+1
xi
f(x; y(x)) dx:
La integral puede calcularse aproximando el integrando mediante el polinomio de
interpolacion de f(x; y(x)) en los puntos xi�k; : : : ; xi. Sin embargo, como los
valores
exactos de y(xi�k); : : : ; y(xi) no se conocen, no podemos utilizarlos en la
evaluacion
de f(x; y(x)). En su lugar podemos utilizar los valores de la soluci ´on calculada
yi�k; : : : ; yi.
Los metodos que asi se obtienen se denominan metodos de paso multiple.
5.3 Sistemas de ecuaciones diferenciales ordinarias.
Descargar