Método Numéricos para la Solución de Ecuaciones Diferenciales
F. Antoine S.
A. Sangiacomo C.
I
Método Numéricos para la Solución de Ecuaciones Diferenciales
MANUAL DE MÉTODOS NUMÉRICOS PARA LA SOLUCIÓN DE ECUACIONES DIFERENCIALES CON SOFTWARE DR. ÁNGEL SANGIACOMO CARAZAS
Universidad Nacional de San Agustín de Arequipa MSC. FRANCIS ANTOINE SOUCHE
Universidad Nacional de San Agustín de Arequipa
F. Antoine S.
A. Sangiacomo C.
II
Método Numéricos para la Solución de Ecuaciones Diferenciales
Título del Manual de donde se hace la práctica del capítulo 3:
MANUAL DE MÉTODOS NUMÉRICOS PARA LA SOLUCIÓN DE ECUACIONES DIFERENCIALES CON SOFTWARE
Autores:
Dr. Ángel Carlos Wilfredo Sangiacomo Carazas. Profesor principal Departamento de Matemática y Estadística Facultad de Ciencias Naturales y Formales Universidad Nacional de San Agustín
Msc. Francis Antoine Souche Profesor principal Departamento de Matemática y Estadística Facultad de Ciencias Naturales y Formales Universidad Nacional de San Agustín
Tercera edición 2005 (reimpresión 2006) La presentación y disposición en conjunto de MANUAL DE MÉTODOS NUMÉRICOS PARA LA SOLUCIÓN DE ECUACIONES DIFERENCIALES CON SOFTWARE, son propiedad de los autores. Toda parte de este ensayo puede ser reproducida, archivada o transmitido en forma alguna o mediante algún sistema electrónico mecánico, de fotorreproducción, memoria o cualquier otro con o sin la autorización expresa por escrito de los autores, incluye los programas didácticos y sus manuales que es totalmente libre. Derechos reservados en Lengua española © 2005
Impreso en Arequipa Perú 2005
F. Antoine S.
A. Sangiacomo C.
III
Método Numéricos para la Solución de Ecuaciones Diferenciales
A Mis Hijos Miguel Ángel Ivett Gianella Candelaria José Alejandro A Mi Madre Doña Manuel Candelaria
A Mis Alumnos De Los Cursos De Métodos Numéricos Y Análisis Numérico A Todas Las Personas Que Gustan De Las Cosas Prácticas Y Efectivas
Ángel Sangiacomo Carazas
F. Antoine S.
A. Sangiacomo C.
IV
Método Numéricos para la Solución de Ecuaciones Diferenciales
F. Antoine S.
A. Sangiacomo C.
V
Método Numéricos para la Solución de Ecuaciones Diferenciales
PREFACIO TERCERA EDICIÓN En la tercera edición de este “MANUAL MÉTODOS NUMÉRICOS PARA LA SOLUCIÓN DE ECUACIONES DIFERENCIALES CON SOFTWARE” se sometió a modificaciones y agregados de algunos temas y se pone énfasis en la programación que en la actual edición se centra en el lenguaje DELPHI par aun desarrollo posterior de grandes programas y que sirvan par la enseñanza y hasta para la solución comercial en ingenierías, real taremos que la programación fue efectuada directamente en aula y para fines didácticos y luego se de la parte utilitaria con algunos problemas de aplicación directa a problemas de ingenierías. Marcando la diferencia sustancial de que sea hecho aquí. También se ha rediseñado la presentación a dos columnas para que se más práctico y manejable. Insistimos en que se intenta preparar al estudiante para resolver los problemas de Ecuaciones Diferenciales de donde vengan, con un poco o mucho esfuerzo, pero que sea resuelto, con el auxilio de conocimiento de análisis numérico referente a este punto sobre las ecuaciones diferenciales, insistiendo que el planteamiento de una solución tediosa debe ser llevada aun programa de computadora para así poder hacer las comparaciones (simulación) dar las modificaciones y constrastaciones correspondientes. Debe quedar bien entendido, que no se trabaja en un paquete, sino en programación (códigos fuentes), para que el lector se adapte a repetir en una primera instancia los procesos de los métodos numéricos para la solución de ecuaciones diferenciales y luego afrontar algunos problemas nuevos. El objetivo es lograr la solución de: Primero de las ecuaciones diferenciales típicas de los diferentes tipos de ecuaciones diferenciales. Segundo resolver los tipos especiales ( … Galerkin …, ) por métodos aproximados analíticos. Conseguir que el lector pueda probar, utilizar y mejorar los programas aquí existentes en la solución de problemas referentes a métodos numéricos par ala solución de ecuaciones diferenciales. Y además facilitar al lector la realización de la programación con un auxiliar de memoria electrónica (archivo en el disco compacto adjunto) para que pueda ahorrar tiempo y esfuerzo y así lograr avances directos. Presentar un conjunto de programas (de prueba) que resuelva las ecuaciones F. Antoine S.
A. Sangiacomo C.
VI
Método Numéricos para la Solución de Ecuaciones Diferenciales
diferenciales ordinarias con valor en la frontera, por alguno de los conocidos métodos de aproximación numérica a su servicio y además le brinde información gráfica de al curva solución. Presentar de manera moderna (en forma visual) a la luz de técnica de resolución rápida por ordenador de procesos iterativos en muy poco tiempo y además que muestren los pasos intermedios en el peor de los casos. La reflexión es la de aplacar de alguna manera el concepto que se tiene de la Matemática en la siguiente expresión “Una herramienta tiene un carácter dinámico y debe servir para realizar algo y no simplemente para descubrir relaciones eternamente verdaderas”, que refleja a un matemático improductivo y que después la generalizan a todos y hasta sobre la propia matemática y peor aun a los estudiantes de carrera. El material teórico esta ilustrado por numerosos ejemplos y figuras didácticas. Tiene problemas para la práctica de los estudiantes. Al fina de un ejercicio o de una demostración se usa ♣♦♥♠. Además se tiene todos los programas para una solución rápida. También se presenta un sistema completo (programa Todo Cálculo) para ejecutar en la computadora, todos los temas, creemos de forma muy práctica y directa. Se acompaña de un disco compacto. De otra parte se puede comunicar con nosotros por medio del correo electrónico
[email protected],
[email protected],
[email protected], donde gustosamente lo atenderemos para recibir sus sugerencias y también para poder resolver cuestiones sobre este manual. Cabe reiterar el agradecimiento a la Universidad Nacional de San Agustín de Arequipa, especialmente a la Escuela Profesional de Matemática, donde podemos realizar de alguna manera esta idea.
Arequipa 2006 diciembre 20.
MsC. Angel Sangiacomo C.
E-Mail
F. Antoine S.
[email protected] [email protected]
MsC. Francis Antoine S.
[email protected]
A. Sangiacomo C.
VII
Método Numéricos para la Solución de Ecuaciones Diferenciales
Índice
CAPÍTULO 1 Problema de valor inicial para ecuaciones diferenciales ordinarias Teoría elemental de problemas de valor inicial Método de aproximaciones sucesivas (método de Picard) Método de Euler Algoritmo de Euler Programa en Pascal Método de las Serie de Potencias Método de derivaciones sucesivas (Método de Taylor) Método de coeficientes indeterminados Método de Runge-Kutta Método de Runge-Kutta de Segundo Orden Método del Punto Medio Método de Heun Método de Runge-Kutta de Tercer Orden Método de Runge-Kutta de Cuarto Orden Algoritmo de Runge-Kutta de cuarto orden Programa en Pascal Error, Estabilidad y optimización del intervalo de la Retícula Apéndice [Schaplygin y de series] CAPÍTULO 2 Solución de Ecuaciones Diferenciales Ordinarias con valor inicial por Métodos de alta Precisión Método de Multipaso Método de extrapolación de Adams (cuarto orden) Programa en Pascal (Adams) Algoritmo del método de Adams de cuarto orden Método de Adams-Bashforth Método de Adams-Moulton Método de Milne Ecuaciones de orden mayor y sistemas de EDO Algoritmo de Runge-Kutta para sistemas de EDO de primer orden Programa en Pascal (solución de sistemas por Runge-Kutta) F. Antoine S.
1 1 1 5 7 9 10 14 14 16 18 19 19 19 20 20 22 22 25 27 39 39 39 40 43 44 46 47 47 50 52 55 A. Sangiacomo C.
VIII
Método Numéricos para la Solución de Ecuaciones Diferenciales
Estabilidad Apéndice CAPÍTULO 3 Problema de valor de frontera para Ecuaciones Diferenciales Ordinarias El método del disparo lineal Algoritmo de Disparo Lineal Programa en Delphi del Disparo Lineal Método del Disparo para EDO no Lineal Algoritmo de Disparo No Lineal Programa en Pascal (Disparo no lineal) Métodos de diferencias finitas para problemas lineales Solución de sistemas por medio de tridiagonales Algoritmo de tridiagonales Algoritmo de Diferencias Finitas para el Problema Lineal Programa en Pascal (diferencias finitas) Problema EDO No Lineal con valores en frontera para diferencias finitas Primer método de sustitución sucesiva Segundo método (llamado método de Newton) Procedimiento en Pascal (Iteraciones de Newton) Método de solución de EDO no lineal por uso de solución de sistemas no lineales Algoritmo de diferencias finitas no lineal (Newton) Programa en Pascal (diferencias finitas no lineal) Apéndice
57 65 68 68 68 70 71 75 76 78 79 82 82 82 83 86 87 88 89 90 92 93 94
CAPÍTULO 4 Solución de ecuaciones diferenciales ordinarias con valor de frontera con aproximaciones por expresiones analíticas Procedimiento de la colocación Métodos de los mínimos cuadrados Método de Galerkin Método de Rayleigh-Ritz Algoritmo segmentario lineal de Rayleigh-Ritz 113 Programa en Pascal del método Rayleigh-Ritz Apéndice [Método de Ritz] CAPÍTULO 5 F. Antoine S.
99
99 99 101 105 108
115 117 124 A. Sangiacomo C.
IX
Método Numéricos para la Solución de Ecuaciones Diferenciales
Soluciones numéricas de ecuaciones diferenciales parciales Primera parte Clasificación de las ecuaciones diferenciales parciales Presentación de la solución de EDP por operadores Ecuaciones Homogéneas Reducibles Separación de Variables EDP no homogéneas Segunda Parte Condiciones iniciales y de frontera (contorno). Problema del valor inicial de Cauchy. Problema mixto. Enfoque correcto del problema mixto Problema de las condiciones de frontera para ecuaciones diferenciales del tipo elíptico Primer problema de las condiciones de contorno Segundo problema de las condiciones de contorno Tercer problema de las condiciones de contorno Algunas observaciones sobre funciones armónicas. Unicidad de la solución del problema de Dirichlet Propiedad I (Principio de máximo) Propiedad II (Unicidad de la solución del problema de Dirichlet) Propiedad III (Corrección de problemas de Dirichlet)
124 124 124 129 130 136 137 140 140 149 149 149 149 150 151 152 153
CAPÍTULO 6
154
Solución de ecuaciones diferenciales parciales por diferencias finitas Ecuaciones diferenciales Parciales Elípticas Algoritmo de diferencias finitas para la ecuación de Poisson Ecuaciones diferenciales parciales parabólica El caso homogéneo El caso no homogéneo El caso progresivo Algoritmo de diferencias finitas Para EDP parabólica progresivo Algoritmo de diferencias finitas Para EDP parabólica regresivo Programa en Pascal de Regresivas y progresivas Algoritmo de diferencias finitas para la ecuación diferencial parcial parabólica para el caso Crank - Nicolson Ecuaciones diferenciales parciales hiperbólica Programa en Pascal de regresivas para hiperbólicas Apéndice
154 154 160 163 163 167 167 167 168 169
CAPÍTULO 7
193
Métodos variacionales para la resolución de problemas de condiciones de frontera Concepto de Funcional y de Operador Problema Variacional
193 193 199
F. Antoine S.
171 177 181 184
A. Sangiacomo C.
X
Método Numéricos para la Solución de Ecuaciones Diferenciales
Teorema Fundamental del Método Variacional para la Resolución de los Problemas de Condiciones de Frontera Transformación del Problema de Condiciones de Contorno Lineal para una Ecuación Diferencial Ordinaria de Segundo Orden en un Problema Variacional Problemas de las Condiciones de Frontera (Contorno) para la Ecuación Diferencial de Poisson y de Laplace Conceptos Fundamentales del Método de Ritz Método de Ritz para el Problema de la Condiciones de Frontera Simple Aplicaciones del Método de Ritz para la Solución de Problemas de Condiciones de Frontera de Sturm Liouville Método de Ritz para el Problema de Dirichlet
Apéndice
200
205 211 216 217 221 226
230
Una aplicación directa del capítulo 4 para Elementos Finitos uni - dimensionales Introducción al Método de Elementos finitos bi - dimensional aplicando aproximaciones numérica Identificación de parámetros en modelos de compartimentos Problema de degradación
237 245 255
Bibliografía
266
F. Antoine S.
230
A. Sangiacomo C.
XI
Método Numéricos para la Solución de Ecuaciones Diferenciales
F. Antoine S.
A. Sangiacomo C.
XII
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
donde w = w(x) es la deflección a una distancia x del extremo CAPÍTULO 1 izquierdo de la viga, y I, q, E, S e I representan, respectivamente, la longitud de la viga, la intensidad Objetivo: de la carga uniforme, el modulo Es estudia una ecuación diferencial de primer orden con valor inicial, por métodos aproximados y de la elasticidad, la fuerza por numéricos. unidad de área en los extremos y el momento de inercia central. 1.0. PROBLEMA DE VALOR Asociadas a esta ecuación INICIAL PARA ECUACIONES diferencial hay condiciones dadas DIFERENCIALES ORDINA- por la suposición de que no hay RIAS deflección en los extremos de la viga w(0) = w(l ) = 0 . Un problema común en ingeniería Esta se puede resolver fácilmente civil es el de la deflección de una si E, S y q son constantes, pero si viga de sección transversal son funciones de x el problema se rectangular, que esta sujeta a una complica enormemente y aquí es carga uniforme, mientras que los donde caben los métodos extremos están sujetos para que aproximados para hallar una solución con cierto grado de no sufran ninguna deflección. precisión.
1.1. Teoría Elemental Problemas de Valor Inicial Figura 1.
de
Veamos la existencia, la unicidad y la estabilidad de una solución.
La Ecuaciones Diferenciales Ordinarias que aproxima esta 1.1.1. Definición Se dice que una función f (t , y) situación física tiene la forma d 2w S qx satisface la condición de = w + ( x − l ) , 2 EI dx 2 EI Lipschitz para la variable y en un F. Antoine S.
A. Sangiacomo C.
1
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
conjunto D = R 2 , si existe una Esta definición es la que se constante L > 0 con la propiedad refiere a la convexidad de f (t , y ) . de que f (t , y1 ) − f (t , y2 ) ≤ L y1 − y2
1.1.4. Teorema siempre y cuando (t , y1 ), (t , y2 ) ∈ D . Supongamos que f (t , y ) está definida en un conjunto convexo 2 La constante L se llama una D ⊂ R . Si existe una constante L > 0 tal que constante de Lipschitz para f. ∂f (t , y ) ≤ L , para todo (t , y ) ∈ D , (1) ∂y
1.1.2. Ejemplo D = {(t , y ) 1 ≤ t ≤ 2, − 3 ≤ y ≤ 4}
y entonces, f satisface la condición f (t , y ) = t y , entonces para cada de Lipschitz en D para la variable y con constante L de Lipschitz. (t , y1 ), (t , y2 ) ∈ D
Si
f (t , y1 ) − f (t , y2 ) = t y1 − t y2
1.1.5. Teorema D = {(t , y ) que = t y1 − y2 ≤ 2 y1 − y2 . Supongamos a ≤ t ≤ b , − ∞ < y < ∞} , y que 1 ≤ t ≤ 2 (2 es el máximo de ). f (t , y ) es continua en D. Si f Por lo tanto, f satisface la satisface la condición de condición de Lipschitz en este Lipschitz en D para la variable y, problema con constante L = 2 , entonces el problema de valor por ejemplo inicial f (2,1) − f (2,0) = 2 1 − 2 0 = 2 1 − 0 ≤ 2 ⋅1 = 2 .
♦
y ′ = f (t , y ) , a ≤ t ≤ b , y (a ) = α ,
1.1.3. Definición tiene una solución única y (t ) 2 Se dice que un conjunto D ⊂ R para a ≤ t ≤ b . es convexo si, siempre que (t1 , y1 ), (t 2 , y2 ) ∈ D , 1.1.6. Ejemplo ((1 − λ )t1 + λt 2 , (1 − λ ) y1 + λy2 ) ∈ D para cada λ, 0 ≤ λ ≤ 1 . F. Antoine S.
A. Sangiacomo C.
2
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
Considere el problema de valor 1.1.7. Definición inicial Se dice que el problema de valor inicial y ′ = 1 + tsin (ty ) , 0 ≤ t ≤ 2 , dy = f (t , y ) , a ≤ t ≤ b , y (a) = α , (2) y (0) = 0 . dt Manteniendo t constante y es un problema bien planteado aplicando el teorema del Valor si: Medio a la función i) existe una solución única, y (t ) , f (t , y ) = 1 + tsin (ty ) , para este problema; encontramos que siempre que ii) existen constantes positivas ε y1 < y 2 , existe un número q, y k, con la propiedad de que existe una única solución z (t ) , y1 < q < y 2 , tal que al problema ∂f (t , q) f (t , y2 ) − f (t , y1 ) = . t 2 cos(tq ) = ∂y y2 − y1 dz = f (t , z ) + δ (t ) , a ≤ t ≤ b , dt Por lo tanto, para toda y1 < y 2 , z (a ) = α + ε 0 , (3) f (t , y2 ) − f (t , y1 ) = y2 − y1 t 2 cos(tq )
≤ 4 y2 − y1 ,
con z (t ) − y (t ) < kε ,
para toda a≤t ≤b
y f satisface la condición de Lipschitz para la variable y con siempre que ε 0 < ε y δ (t ) < ε . constante de L = 4 de Lipschitz. f (t , y ) Como además, es Lo que especifica la ecuación (3) 0≤t ≤2 y se acostumbra a llamar problema continua en − ∞ < y < ∞ , el teorema 1.1.5 perturbado asociado al problema implica que para este problema original (2). de valor inicial existe una En el siguiente teorema se ven las condiciones para que un solución única. ♠ problema este bien planteado. Ahora pasamos a ver su 1.1.8. Teorema estabilidad.
F. Antoine S.
A. Sangiacomo C.
3
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
Supongamos
que Veamos lo afirmado líneas arriba. D = {(t , y) a ≤ t ≤ b , − ∞ < y < ∞} . El Consideramos el problema perturbado problema de valor inicial dz = 1+ t − z + δ , dt
dy = f (t , y ) , a ≤ t ≤ b , dt
y (a ) = α ,
(2’)
0 ≤ t ≤ 1,
z ( 0) = 1 + ε 0 .
(5)
está bien planteado si f es donde ε 0 y δ son constantes. Se demostrar que las continua y satisface la condición puede de Lipschitz para la variable y en soluciones a las ecuaciones (4) y (5) son: el conjunto D. Aclaremos esto con el siguiente ejemplo.
y (t ) = e −t + t
y
z (t ) = (1 + ε 0 − δ )e −t + t + δ ,
respectivamente. Es fácil verificar 1.1.9. Ejemplo Sea D = {(t , y ) 0 ≤ t ≤ 1 , − ∞ < y < ∞} que si δ < ε y ε 0 < ε , entonces z (t ) − y (t ) = (δ − ε 0 )e −t − δ y consideremos el problema de valor inicial ≤ ε 0 + δ 1 − e −t ≤ 2ε , dy = 1+ t − y , 0 ≤ t ≤ 1, donde dt
y (0) = 1 .
Como
(4)
0 ≤ e −t ≤ 1 ,
∂ (1 + t − y ) =1. ∂y
para toda t, con lo que se corrobora el resultado obtenido El teorema 1.1.4 hace ver que usando el resultado del teorema satisface la condición de 1.1.8. Lipschitz en D para f (t , y ) = 1 + t − y , con constante 1.1.10. Problemas L = 1 de Lipschitz. Como además f es continua en D, el teorema 1. Use el teorema 1.1.4 si es 1.1.8 implica que la ecuación (4) posible y mostrar que cada uno de los problemas de valor es un problema bien planteado. inicial tiene una solución única y encuentre su solución. F. Antoine S.
A. Sangiacomo C.
4
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
i) y ′ = y cos(t ) , ii) y ′ =
2 t
y + t 2 et ,
iii) y ′ = −
0 ≤ t ≤ 1 , y (0) = 1
1≤ t ≤ 2,
y (1) = 0
2y 2 t + t e , 1 ≤ t ≤ 2 , y (1) = e 2 . t
diferenciales. Lleva el nombre de Picard. Sea dada la ecuación: y ′ = f (t , y ) ,
(1)
Decir si las siguientes cuyo dominio es el rectángulo funciones f (t , y ) : R[ a ,b ] = { t − t0 ≤ a, y − y0 ≤ b} , es i) ¿Satisface f una condición de continuo y tiene una derivada Lipschitz en parcial respecto a y. Es necesario hallar la solución de la ecuación D = {(t , y ) 0 ≤ t ≤ 1, − ∞ < y < ∞} ? (1), que satisfaga la condición ii) Determinar si se puede usar el inicial teorema 1.1.8 para demostrar (2) que el problema de valor t = t 0 , y (t 0 ) = y0 inicial Integrando ambos miembros y ′ = f (t , y) , 0 ≤ t ≤ 1 , y (0) = 1 , desde t y t , obtenemos 0 y t está bien planteado. dy = f (t , y )dt 2.
a) f (t , y ) = ty
b) f (t , y ) = t 2 y + 1
c) f (t , y) = 1 − y d)
f (t , y ) =
4t − ty y
∫y
0
∫t
0
o bien y (t ) = y (t0 ) + ∫
t t0
f (t , y )dt .
(3)
3. Probar el teorema 1.1.4 usando el teorema del Valor Medio a La ecuación (1) se reemplaza por f (t , y ) , manteniendo t fija. la ecuación integral (3) en la cual la función incógnita y está bajo el signo integral. La ecuación 1.2. Método de Aproximaciones integral (3) satisface la ecuación Sucesivas (Método de Picard) diferencial (1) y la condición inicial (2). Este Método apareció en la En efecto si t = t0 , t demostración del teorema de y (t0 ) = y (t0 ) + ∫ f (t , y )dt = y0 . t0 existencia y unicidad de la solución de las ecuaciones
F. Antoine S.
A. Sangiacomo C.
5
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
Remplazando en (3) la función y contiene el punto t0 , la sucesión del integrando por el valor y0 , { y (t )} converge hacia la función k obtenemos la primera y (t ) que sirve de solución a la aproximación ecuación diferencial y′ = f (t , y ) y y1 (t ) = y0 + ∫
t
t0
f (t , y0 )dt .
que
satisface y (t 0 ) = y0 .
la
condición
Luego en la ecuación (3) sustituimos y por el valor hallado El error del método de Picard se y1 y obtenemos la segunda estima por la fórmula aproximación h n +1 n t y − y0 ≤ L M , (4) y2 (t ) = y0 + ∫ f (t , y1 ) dt . (n + 1)! t 0
M = máx f (t , y ) para Continuando luego el proceso, donde (t , y ) ∈ R[ a , b ] y L es la constante de encontramos sucesivamente y3 (t ) = y0 + ∫
. .
.
.
yn (t ) = y0 + ∫
t t0
f (t , y2 )dt
. . t t0
.
.
f (t , yn −1 )dt .
Ahora bien, formemos sucesión de funciones y0 (t ) , y1 (t ) ,
…, y n (t ) .
Para formalizar siguiente teorema.
veremos
Lipschitz para el dominio R[ a, b] , se da por L = máx f y′ (t , y ) . La magnitud h que determina el entorno t0 − h ≤ t ≤ t 0 + h , se calcula la por h = mín(a,
b ), M
(5)
a y b son las fronteras del el dominio R. ♣ Nota: R[a,b] = { t − t0 ≤ a, y − y0 ≤ b} .
1.2.1. Teorema Supongamos que en el entorno 1.2.2. Ejemplo del punto (t0 , y0 ) la función f (t , y ) es continua y tiene una derivada Haciendo uso del método de ∂f (t , y ) = f y′ (t , y ) . Picard, resolver la ecuación parcial acotada ∂y y′ = t 2 + y 2 que diferencial Entonces en cierto intervalo, que F. Antoine S.
A. Sangiacomo C.
6
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
satisface la condición t 0 = 0 , y (t 0 ) = 0 .
inicial cualquier número real. Para efectos de precisar usaremos: R[ a ,b ] = { t − t0 ≤ 0.5, y − y0 ≤ 1} ,
Solución:
o R[ a , b ] = {−0.5 ≤ t ≤ 0.5, − 1 ≤ y ≤ 1} .
Usando la ecuación y (t ) = y (t0 ) + ∫ y = y0 + ∫
t
t
f (t , y )dt
t0
Entonces M = máx f (t , y ) = máx(t 2 + y 2 ) = 1.25 ,
(t 2 + y 2 )dt
t0
L = máx f y′ (t , y ) = máx(2 y ) = 2 . b 1 = = 0.8 , M 1.25 b h = mín(a, ) = mín(0.5, 0.8) = 0.5 . M
o bien, teniendo en cuenta las Calculamos condiciones iniciales. y=∫
t 0
(t 2 + y 2 )dt .
Obtenemos las aproximaciones Remplazando resulta: sucesivas: y1 = ∫ y2 = ∫
t 0
y3 = ∫
t
(t + 2
0
(t + 2
t 0
y12 )dt
(t + 2
y02 )dt =∫
y22 )dt
t 0
=∫
t 0
t3 (t )dt = 3 2
;
⎛ 3 2⎞ t3 t7 ; ⎜ 2 ⎛⎜ t ⎞⎟ ⎟ + = + t dt ⎜ ⎜ 3 ⎟ ⎟⎟ 3 63 ⎜ ⎝ ⎠ ⎝ ⎠
=∫
t 0
2⎞ ⎛ 3 t 7 ⎞⎟ ⎟ ⎜ 2 ⎛⎜ t ⎜ t + ⎜ 3 + 63 ⎟ ⎟dt ⎜ ⎝ ⎠ ⎟⎠ ⎝
t 3 t 7 2t11 t15 = + + + . 3 63 2079 59535
en
y − y3 ≤ 23 ⋅ 1.25 ⋅
la
fórmula
(0.5) 4 5 = . (4)! 192
La estimación del error es muy aproximada; ya que el error real es mucho más pequeño. ♣ 1.3. Método de Euler
En este método, es su derivación Ahora estimamos el error de esta tan simple que puede usarse para última aproximación con ayuda ilustrar las técnicas involucradas de (4) en la construcción de algunas de n +1 h las técnicas más avanzadas, sin y − y0 ≤ Ln M . (n + 1)! tener que usar la enorme cantidad de álgebra que acompaña a estas Como y ′ = t 2 + y 2 es continua en construcciones. todo el plano, a y b pueden ser
F. Antoine S.
A. Sangiacomo C.
7
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
El objetivo del método es obtener Con el teorema de Taylor se una aproximación al problema de deriva el método de Euler. y (t ) , la valor inicial bien planteado Supongamos que solución única de (1), tiene dos dy = f (t , y ) , a ≤ t ≤ b , derivadas continuas en [a, b] , de dt y (a) = α . (1) tal modo que para cada i = 0, 1, 2, …, N-1, y (ti +1 ) puede Por el momento no se obtendrá escribirse como sigue: una aproximación continua de la solución y (t ) , sino que se y (ti +1 ) = y (ti ) + (ti +1 − ti ) ⋅ y ' (ti ) generarán aproximaciones de y en (ti +1 − ti ) 2 + ⋅ y ' ' ( qi ) (2) varios puntos, llamados puntos 2 de red, en el intervalo [a, b] . Una para algún número qi , donde vez que se obtenga la solución aproximada en estos puntos, la ti ≤ qi ≤ ti +1 . solución aproximada en otros Usando la notación h = ti +1 − ti , puntos se puede encontrar h2 y (ti +1 ) = y (ti ) + h ⋅ y ′(ti ) + ⋅ y ′′(qi ) utilizando algunos de los 2 procedimientos de interpolación. y (t ) satisface la Supondremos que los puntos de y, puesto que diferencial (1), red están distribuidos ecuación ′ uniformemente sobre el intervalo reemplazando y = f (t , y ) 2 [a, b] . Esta condición se puede y (ti +1 ) = y(ti ) + h ⋅ f (ti , y(ti )) + h ⋅ y′′(qi ) . 2 garantizar escogiendo un entero (3) positivo N y seleccionando los puntos de red {t0 , t1 , ...., t N } donde El método de Euler construye wi = y (ti ) para cada i = 1, 2, …, ti = a + ih N, donde para cada i = 0, 1, 2, …, N.
La distancia común entre los puntos, de paso.
F. Antoine S.
h=
b−a N
se llama tamaño
w0 = α wi +1 = wi + hf (ti , wi ) .
(4)
La ecuación (4) se llama la ecuación de diferencias asociada con el método de Euler. A. Sangiacomo C.
8
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
1.3.1. Algoritmo de Euler Paso 1: Definir y ′ = f (t , y ) Paso 2: Entrar a, b, α y N
{Valor del intervalo y condición} {inicial y número de pasos de la red}
Paso 3: Hacer h = (b − a) / N t=a; w =α ; Paso 4: Para i = 1 hasta N hacer Paso 5: w = w + hf (t , w)
{cálculos iterados de los
1.3.2. Ejemplo Resolver la siguiente ecuación diferencial ordinaria con N = 10 y valor inicial: y′ + y = 1 + t , 0 ≤ t ≤ 1 , y (0) = 1 .
wi
}
Solución:
Paso 6: t = a + ih {avanza el paso} Paso 7: Publicar (t , w) Paso 8: Parar.
Como N = 10 resulta h = 0.1 y los ti = 0.1 ⋅ i . Para tener una interpretación Aplicamos las fórmulas (4) y el geométrica del método de Euler algoritmo de Euler dado líneas hagamos yi = y (ti ) y observando arriba: que cuando wi es una buena f (t , y ) = 1 + t − y , aproximación de yi , la suposición Sea de que el problema esté bien w0 = y (0) = 1 definido implica: wk +1 = wk + h(1 + t k − wk ) , f (ti , wi ) = y′(ti ) = f (ti , y (ti )) . si k = 0 , tenemos: Observando un paso del método aparece como se muestra en la figura 2 y varios pasos en la figura 3.
Figura 2. F. Antoine S.
A. Sangiacomo C.
9
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
Figura 3.
w1 = w0 + h(1 + t0 − w0 )
w1 = 1 + 0.1(1 + 0 − 1) = 1 ,
para k = 1 resulta: w2 = w1 + h(1 + t1 − w1 )
w2 = 1 + 0.1(1 + 0.1 − 1) = 1.01 ,
Memo1: TMemo; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; CheckBox1: TCheckBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure Datos; Procedure Calculo; procedure FormCreate(Sender: TObject); end; _r = double; _i = integer; _s = string; var Form1_Euler: TForm1_Euler; implementation
y así sucesivamente como se {$R *.DFM} muestra en la tabla 1. var Fun_x, Sx1 : _s; Lim_A, Lim_B, Y0 :_r; ti 0.000000 0.100000 0.200000 0.300000 0.400000 0.500000 0.600000 0.700000 0.800000 0.900000 1.000000
wi 1.0000000000 1.0000000000 1.0100000000 1.0290000000 1.0561000000 1.0904900000 1.1314410000 1.1782969000 1.2304672100 1.2874204890 1.3486784401
Tabla 1.
1.3.3.
Programa en Delphi Pascal
unit Eulwr_x1; interface uses Windows, Messages, SysUtils, Classes, Forms, Graphics, Controls, Dialogs, StdCtrls, Buttons; type TForm1_Euler = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; F. Antoine S.
Nn : _i;
function ff(t, y:_r):_r; begin // AQUÍ CAMBIAR LA ECUACION DIFERENCIAL ff:=1+t-y; end; procedure TForm1_Euler.SpeedButton1Click(Sender: TObject); begin Datos; Calculo; end; procedure TForm1_Euler.Datos; begin // Datos Lim_A:=strToFloat(Edit1.text); Lim_B:=strToFloat(Edit2.text); Nn :=StrToInt(Edit3.text); y0 :=strToFloat(Edit4.text); end; Procedure TForm1_Euler.Calculo; var r1, W, h :_r; i : _i; begin Memo1.Lines.Add(' Método de Euler '); sx1:=' F ( x ) = '+Fun_x+#13#10; sx1:=sx1+' a = '+Edit1.text+#13#10+' b = ' +Edit2.text+#13#10; sx1:=sx1+' N = '+Edit3.text; Memo1.Lines.Add(sx1); h:= (Lim_b-Lim_a)/Nn; w:= Y0; sx1:=' t = '+FloatToStrF(Lim_a,ffGeneral, 8,15); sx1:=sx1+' w = '+' '+ FloatToStrF(w,ffGeneral, 10,15); if CheckBox1.Checked then Memo1.Lines.Add(sx1); for i:=1 to Nn do //ejecuta Euler wn+1:= wn+h* f(tn,wn); begin r1:=Lim_a+(i-1)*h; sx1:=' t = '+ FloatToStrF(r1+h,ffGeneral, 8,15); w := w + h * ff(r1, w); sx1:=sx1+' w = '+' ' +FloatToStrF(w,ffGeneral, 10,15); if CheckBox1.Checked then Memo1.Lines.Add(sx1); end; A. Sangiacomo C.
10
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
if not CheckBox1.Checked then Memo1.Lines.Add(sx1); end;
para cada i = 0, 1, 2, …, k. entonces
procedure TForm1_Euler.SpeedButton2Click(Sender: TObject); begin Close; end;
ai +1 ≤ e(i +1) s ( st + a0 ) − st .
procedure TForm1_Euler.FormCreate(Sender: TObject); begin Memo1.Clear; end;
Prueba:
end.
Para obtener una cota del error Fijando i recursivamente tenemos para el método de Euler es ai +1 ≤ (1 + s )ai + t conveniente introducir primero ≤ (1 + s )[(1 + s )ai −1 + t ] + t los siguientes lemas de cálculo. . . . . . . i +1
≤ (1 + s ) a0 + [1 + (1 + s ) + 1.3.4. Lema + (1 + s ) 2 + ... + (1 + s )i ] ⋅ t . Para toda x ≥ −1 para cualquier m positiva se cumple Pero dentro del corchete es una 0 ≤ (1 + x) m ≤ e mx . (5) progresión geométrica y su suma
es
Prueba:
1 + (1 + s) + (1 + s) 2 + ... + (1 + s )i =
Sabemos 1 + x + 12 x 2e q , es una buena aproximación lineal de Taylor, si x0 = 0 , 0 < q < 1 . Entonces 0 ≤ 1 + x ≤ 1 + x + x e , 1 2
2 q
i
∑ (1 + s) j
p =0
i +1
1 − (1 + s ) = 1s [(1 + s )i +1 − 1] . 1 − (1 + s )
Resultando
(
)
ai +1 ≤ (1 + s )i +1 st + a0 − st ,
de donde por ser 0 ≤ 1 + x , puesto y usando el Lema 1.3.4 para s en que x ≥ −1 se concluye vez de x, el lema queda m mx 0 ≤ (1 + x) ≤ e . ♦ demostrado. ♥ Ahora estamos expeditos para 1.3.5. Lema Si s y t son reales positivos, tratar una cota de error. { ai }ik= 0 es una sucesión que 1.3.6. Teorema satisface a0 ≥ −t / s , y ai +1 ≤ (1 + s )ai + t , F. Antoine S.
(6) A. Sangiacomo C.
11
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
Sea y(t) la solución única al Restando y aplicando desigualdad problema de valor inicial bien triangular nos queda: planteado y ′ = f (t , y ) ,
a ≤t ≤b,
y (a) = α ,
yi +1 − wi +1 ≤ yi − wi
+ h ⋅ f (ti , yi ) − f (ti , wi ) y sean w0 , w1 , …, wN las h2 aproximaciones generadas por el + ⋅ y ' ' (qi ) 2 método de Euler para algún entero positivo N. Suponiendo que f satisface la Si f satisface la condición de condición de Lipschitz para y, Lipschitz con constante L en el con constante L y usando rectángulo y ' ' (t ) ≤ M implica h2M D = {(t , y ) a ≤ t ≤ b, − ∞ ≤ y ≤ ∞} ,. y − w ≤ y − w ⋅ (1 + hL) + . i +1
i +1
i
i
2
y existe una constante M, tal que
Aplicando el lema 1.3.5, y ' ' (t ) ≤ M , para toda t ∈ [a, b] , suponiendo a j = y j − w j para cada j = 0, 1, …, N, s = hL y entonces, t = h 2 M / 2 , vemos que hM L (ti −a ) y (ti ) − wi ≤ [e − 1] , (7) y − w ≤ a ⋅ (1 + s ) + t 2L
para cada i=0, 1, 2, …, N.
i +1
i +1
j
hM ⎞ hM ⎛ yi +1 − wi +1 ≤ e (i +1) hL ⎜ y0 − w0 + ⎟+ 2L ⎠ 2L ⎝
Por condición inicial se tiene que w0 = y0 (i + 1)h = ti +1 − t0 y Cuando i=0 el resultado es cierto = ti +1 − a , nos queda la tesis: puesto que w0 = y (t0 ) = α . hM L (ti −a ) yi − wi ≤ [e − 1] . 2L Para i = 0, 1, …, N-1, en (3) y (4) y haciendo y (ti ) = yi tenemos: Para i = 0, 1, .., N-1. ♠ Prueba:
h2 yi +1 = yi + h ⋅ f (ti , yi ) + ⋅ y ' ' (qi ) , 2
ti < qi < ti +1 ;
y wi +1 = wi + hf (ti , wi ) . F. Antoine S.
Este teorema 1.3.6 nos da la opción de acotar la segunda derivada y ' ' (t ) sin conocer y(t ) . Esto es posible puesto que A. Sangiacomo C.
12
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
y ' ' (t ) = =
dy′(t ) df (t , y (t )) = dt dt
∂f (t , y (t )) ∂f (t , y (t )) + ⋅ f (t , y (t )) , (8) ∂t ∂y
Comparando el error real con la cota estimada, tendremos la siguiente tabla 2, que es una ampliación de la tabla 1. ti
y permite obtener una cota a y′′(t ) . 1.3.7. Ejemplo
0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00
wi 1.0000000000 1.0000000000 1.0100000000 1.0290000000 1.0561000000 1.0904900000 1.1314410000 1.1782969000 1.2304672100 1.2874204890 1.3486784401
yi − wi
Estimado por (7)
0.0000000000 0.0048374180 0.0087307531 0.0118182207 0.0142200460 0.0160406597 0.0173706361 0.0182884038 0.0188617541 0.0191491707 0.0192010011
0.0000000000 0.0052585459 0.0110701379 0.0174929404 0.0245912349 0.0324360635 0.0411059400 0.0506876354 0.0612770464 0.0729801556 0.0859140914
Tratemos el problema anterior de y ′ + y = 1 + t , 0 ≤ t ≤ 1 , y ( 0) = 1 . Tabla 2. ′ f = − 1 Donde se tiene , la y Se concluye que el error depende constante de Lipschitz es L = 1. del h. La pregunta al lector es: A pesar de conocer y (t ) en este ¿Hasta qué h? caso tratemos de usar el teorema 1.3.6 con la fórmula (8) 1.3.8. Problemas y ' ' (t ) = 1 + ( −1)(1 + t − y ) = y − t , para 0 ≤ t ≤ 1 .
Claramente se deja ver que el valor será máximo cuando t = 0,.o sea, y ' ' (t ) = y − t t = 0 = 1.
Con los valores de h = 0.1 y M = L = 1 obtenemos la cota de error yi − wi ≤
1.
Usar el método de Euler para aproximar la solución de los siguientes ecuación diferencial ordinaria con valor inicial 2
⎛ y⎞ ⎛ y⎞ a) y ′ = ⎜ ⎟ + ⎜ ⎟ , 1 ≤ t ≤ 1.2 , y (1) = 1 , ⎝t⎠ ⎝t⎠
con
h = 0 .1 .
b) y′ = sin(t ) + e −t , 0 ≤ t ≤ 1 , y (0) = 0 ,
con
h = 0.5 .
0.1(1) 1(ti − 0) [e − 1] 2(1)
c) y′ =
1 2 y +y t
♣
con
h = 0.5 .
yi − wi ≤ 0.05[eti − 1] .
(
),
1 ≤ t ≤ 3 , y (1) = −2 ,
⎛ 4t ⎞ d) y ′ = −ty + ⎜⎜ ⎟⎟ , 0 ≤ t ≤ 1 , y (0) = 1 , ⎝ y⎠ F. Antoine S.
A. Sangiacomo C.
13
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
con h = 0.25 . Supongamos que la ecuación 2. Usar el método de Euler con diferencial ordinaria de n-ésimo N=4 para aproximar la solución orden y compare gráficamente la y ( n) = f (t , y, y ′,..., y ( n −1) ) (1) solución aproximada con la con condiciones iniciales exacta. t = t0 , y (t0 ) = y0 , y ′(t0 ) = y0′ , a) y′ = t 2 , 0 ≤ t ≤ 2 , y (0) = 0 . y ( n −1) (t0 ) = y0( n −1) . (2) …, b) y′ = ty , 0 ≤ t ≤ 2 , y (0) = 1 . c) y′ = −ty , 0 ≤ t ≤ 4 , y (0) = 4 . El segundo miembro de (1) es 3. Dado el problema con valor analítico en el punto inicial M 0 = (t0 , y0 , ..., y0( n −1) ) . inicial Representamos la solución 2y 2 t y′ = + t e , 1 ≤ t ≤ 2 , y (1) = 0 , y = y(t ) de (1) en el entorno del t punto t0 como series de Taylor con solución exacta y (t ) = t 2 (et − e) :
y = y0 + (t − t0 ) y0′ + (t − t0 ) 2
y ' '0 + 2!
(n) Use el método de Euler con n y0 ... + (t − t0 ) + ... (3) h=0.05 para aproximar la n! solución y compárela con los donde t − t < h y h es una 0 valores exactos de y. magnitud bastante pequeña. Para b) Usando la Fórmula (7) del encontrar los coeficientes de la teorema 1.3.6, calcule el valor serie (3) la ecuación (1) se deriva de h necesario para que respecto a t un número necesario y (ti ) − wi ≤ 0.1. de veces y utilizando las condiciones (2). 1.4. MÉTODO DE LAS SERIES Particularmente si t0 = 0 se tiene DE POTENCIAS la serie de Taylor de potencias de t (n) 1.4.1. Método de Derivaciones 2 y ' '0 n y0 y = y0 + ty0′ + t + ... + t + ... Sucesivas (Método de Taylor) 2! n!
a)
(4)
F. Antoine S.
A. Sangiacomo C.
14
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
1.4.1.1. Ejemplo
y = 3 + 6t + t 2 +
t3 t 4 2 + + ... + t n + ... 3 12 n!
Hallar la solución de la ecuación Compare este resultado para n = 4, diferencial ordinaria con la solución exacta que es y′ = y − 4t + 3 que satisface la dada por condición inicial y (0) = 3 . y = 1 + 4t + 2et . Solución: Para diferentes h se puede construir las tablas respectivas. Como t0 = 0 usamos la fórmula ♣ (4) con y0 = 3 tenemos: (n) y ' '0 n y0 y = 3 + ty0′ + t + ... + t + ... 2! n! 2
1.4.1.2. Ejemplo
Empezamos con las derivadas de Hallar la solución para y ' ' = t y , f (t , y ) ; que satisface y (0) = 1 , y′(0) = 0 . 2
y′ = y − 4t + 3 y ' ' = y′ − 4 y '''= y ''
y ( 4) = y ' ' '
. . . . . . Utilizando las condiciones iniciales, nos resulta y ′ = 3 − 4( 0) + 3 = 6
Solución: Igual que el ejemplo anterior t0 = 0 , así que usamos (4) y ( 0) = 1 ,
y′(0) = 0 ,
y ''= t2 y , y ' ' ' = 2ty + t 2 y′ , y ( 4) = 2 y + 4ty ′ + t 2 y ' ' ,
y ''= 6 − 4 = 2 y '''= 2
y (5) = 6 y′ + 6ty ' '+t 2 y ' ' ' ,
y ( 4) = 2
y (6) = 12 y ' '+8ty ' ' '+t 2 y ( 4) ,
. . . . . .
y (7 ) = 20 y ' ' '+10ty ( 4) + t 2 y (5) , y (8) = 30 y ( 4) + 12ty (5) + t 2 y (6) ,
Reemplazando estos resultados Sustituyendo las en la serie de Taylor se tiene iniciales nos queda: F. Antoine S.
…
condiciones
A. Sangiacomo C.
15
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
y (0) = 1 , y′(0) = 0 , y ' ' = 0 , y ' ' ' = 0 , y así sucesivamente sustituimos y ( 4) = 2 ,
y ( 5) = 0 , y ( 6 ) = 0 ,
y (7) = 0 ,
los valores iniciales x′(0) = x(0) cos(0) − y (0) sin(0) = 1 ,
y (8) = 30( 2) = 60 , …
y′(0) = 0 ,
La solución aproximada en la fórmula de Taylor queda: y = 1+
1 4 1 8 t + t + ... 12 672
♦
x ' ' (0) = 1 ,
y ' ' (0) = 1 ,
x ' ' ' (0) = 0 ,
y ' ' ' (0) = 3 ,
La solución buscada tiene la forma x = 1+ t +
1.4.1.3. Ejemplo: Hallar la solución del sistema ⎧ dx ⎪ dt = x cos(t ) − ysin(t ) . ⎨ dy ⎪ = xsin(t ) + y cos(t ) ⎩ dt
…
♥
t2 +L, 2
y=
t 2 t3 + +L 2 2
1.4.2. Método de Coeficientes Indeterminados
Supongamos que se da la Con la s condiciones iniciales ecuación x(0) = 1 y y (0) = 0 . y′ = f (t , y ) (5) Solución: con la condición inicial y (t0 ) = y0 . El método consiste en Pongamos que la solución de (5) se busca en x ( n) x′′ x = x0 + tx0′ + t 2 0 + ... + t n 0 + ... forma de una serie con 2! n! coeficientes desconocidos y (n) y ′′ y = y0 + ty0′ + t 2
0
2!
+ ... + t n
0
n!
+ ...
y = a0 + (t − t0 )a1 + (t − t0 ) 2 a2 + (t − t0 )3 a3 + ...
(6)
Derivando las ecuaciones del que se determinan con ayuda de sistema, tenemos la sustitución de la serie (6) en la x ' ' = x′ cos(t ) − x sin(t ) − y′ sin(t ) − y cos(t ), ecuación (5), luego se igualan los y ' ' = x′ sin(t ) + x cos(t ) + y′ cos(t ) − y sin(t ) , coeficientes de t de igual grado y se utiliza la condición inicial. Los valores hallados de los F. Antoine S.
A. Sangiacomo C.
16
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
coeficientes a0 , a1 , a2 , … se Reduciendo términos en el segundo miembro nos resulta: sustituye en la serie (6). a1 = 1 , a2 = a1 , 3a3 = 1 + 2a2 + a12 , 1.4.2.1. Ejemplo: 4a4 = 2a3 + 2a1a2 , Resolver con el método de de donde se obtiene los valores coeficiente indeterminados la siguientes: ecuación diferencial ordinaria a = 1 a = 1 a = 1 , 1 , , 2 0 y′ = t 2 + y 2 , que satisface las a3 = 4 / 3 , a 4 = 7 / 6 . condiciones iniciales y (0) = 1 . Por fin reemplazando en la Solución: fórmula (6’) nos da: Aquí es fácil pues t0 = 0 , la serie se reduce a: y = a0 + ta1 + t 2 a2 + t 3a3 + ...
y = 1+ t + t2 +
4t 3 7t 4 + + ... 3 6
♠
1.4.3. Problema (6’)
Resolver por el método de Taylor Sustituyendo las condiciones y de coeficientes indeterminados iniciales en (6’) resulta las siguientes ecuación 1 = a0 + 0a1 + 0 2 a2 + 03 a3 + ... , diferencial ordinaria. Además construir una tabla con los primeros 5 valores con el h indicado. Derivando (6’) queda 2 0 ≤ t ≤ 1 , y(0) = 1 , a) y ' ' = t y , y ′ = a1 + 2ta2 + 3t 2 a3 + 4t 3a4 + ... y ′(0) = 0 con h = 0.1 . 2 sustituimos en la ecuación ⎛ y⎞ ⎛ y⎞ b) y ′ = ⎜ ⎟ + ⎜ ⎟ , 1 ≤ t ≤ 1.2 , y (1) = 1 , diferencial ordinaria tenemos: ⎝t⎠ ⎝t⎠ con h = 0.1 . a1 + 2ta2 + 3t 2 a3 + 4t 3a4 + ... = t 2 + y 2 c) y′ = sin(t ) + e −t , 0 ≤ t ≤ 1 , y (0) = 0 , 2 3 a1 + 2ta2 + 3t a3 + 4t a4 + ... = con h = 0.2 . 2 2 3 2 1 = t + (1 + ta1 + t a2 + t a3 + ...) d) y ′ = (y 2 + y ), 1 ≤ t ≤ 3 , y (1) = −2 , y nos queda a0 = 1 .
t
con F. Antoine S.
h = 0.1 . A. Sangiacomo C.
17
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
⎛ 4t ⎞ e) y ′ = −ty + ⎜⎜ ⎟⎟ , ⎝ y⎠
con
0 ≤ t ≤ 1 , y (0) = 1 ,
h = 0.25 .
1.5. Método de Runge-Kutta
variable, con un error no mayor 2 que O(h ) , que es el error de truncamiento local para el método de Taylor de orden dos. Como f ′(t , y ) =
∂f (t , y ) ∂f (t , y ) + ⋅ y′(t ) ∂t ∂y
Los métodos esbozados y anteriormente tienen la propiedad y ′(t ) = f (t , y ) , deseable de un error de truncamiento local de orden lo cual implica grande, pero tienen la desventaja ( 2) h ∂f (t , y ) T (t , y ) = f (t , y ) + de requerir el cálculo y la 2 ∂t h ∂f (t , y ) evaluación de las derivadas de + ⋅ f (t , y ) . (1) f (t , y ) . Esto se puede complicar 2 ∂y mucho y consumir mucho f (t + b, y + c) en tiempo. Por eso el método de Expandiendo Taylor y series se usan muy poco polinomio de Taylor de grado uno alrededor del punto (t , y ) en la práctica. Los métodos de Runge-Kutta resulta usan el error de truncamiento af (t + b, y + c) = af (t , y) + ab ∂f (t , y) ∂t local de orden grande de los ∂f (t , y ) + ac + aR1 (t + b, y + c) , (2) métodos de Taylor y al mismo ∂y tiempo elimina el cálculo y la donde evaluación de las derivadas de b 2 ∂ 2 f ( q, r ) R1 (t + b, y + c) = f (t , y ) . 2 ∂t ∂ f ( q, r ) c 2 ∂ 2 f ( q , r ) + + bc ∂t∂ty 2 ∂y 2 2
2
El primer paso para derivar el método de Runge-Kutta consiste (3) en determinar los valores de a, b, c con la propiedad de que para algún q entre t y t + b , y r af (t + b, y + c) se aproxime a entre y y y + c . T ( 2) (t , y ) = f (t , y ) + h2 f ′(t , y ) , que es Igualando coeficiente entre (1) y (2) tenemos: un polinomio de Taylor en dos F. Antoine S.
A. Sangiacomo C.
18
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
∂f (t , y ) : ab = ∂t
f (t , y ) : a = 1 ;
∂f (t , y ) : ac = ∂y
h 2
h 2
;
f (t , y ) .
1.5.1.1. Método del Punto Medio w0 = y0 = α w
= w + hf (t + h , w +
h
f (t , w ))
i +1 i i i i i 2 2 Deja ver que los parámetros son (4) determinados de manera única por para cada i = 0, 1, …, N-1. 1.5.1.2. Se puede desglosar de a = 1; b = h2 ; c = h2 f (t , y ) ; una forma más práctica (llamado ( 2) h h así T (t , y ) = f (t + 2 , y + 2 f (t , y )) método modificado de Euler):
− R1 (t + h2 , y +
h 2
f (t , y )) ,
y de (3) R1 (t + h2 , y + h2 f (t , y )) = +
h ∂ f ( q, r ) 8 ∂t 2 2
2
h ∂ f ( q, r ) f (t , y ) 4 ∂t∂ty 2
2
+
w0 = y0 = α k1 = hf (ti , wi ) k 2 = hf (ti + h, wi + k1 )
(4’)
wi +1 = wi + 12 (k1 + k 2 )
para cada i = 0, 1, …, N-1.
h ∂ f ( q, r ) . [ f (t , y )]2 8 ∂y 2 2
2
Si todas las derivadas de segundo orden son acotadas la expresión R1 (t + h2 , y +
h 2
f (t , y ))
1.5.1.3. Método de Heun w0 = y0 = α
k1 = hf (ti , wi ) k 2 = hf (ti + 23 h, wi + 23 k1 )
wi +1 = wi + 14 [k1 + 3k 2 ] será de O (h 2 ) , que corresponde al orden del error de truncamiento local del método de Taylor de para cada i = 0, 1, …, N-1. orden dos. La deducción anterior origina el 1.5.2. Ejemplo método del punto medio o Runge-Kutta de segundo orden.
(4”)
1.5.1. Método de Runge-Kutta de Segundo Orden F. Antoine S.
A. Sangiacomo C.
19
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 10.000000
0.2688000000 0.3427840000 0.3930931200 0.4273033216 0.4505662587 0.4663850559 0.4771418380 0.4844564499 0.4894303859
2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 10.000000
0.2688000000 0.3427840000 0.3930931200 0.4273033216 0.4505662587 0.4663850559 0.4771418380 0.4844564499 0.4894303859
Tabla 3.
Figura 4.
Si h = 0.2 el valor de t = 10 es t10 = 0.4908005938 .
La ecuación diferencial ordinaria di (t ) + Ri(t ) = E (t ) , con 1.5.3. Método de Runge-Kutta de es dada por L dt la condición inicial i(0) = 0 , Tercer Orden 0 ≤ t ≤ 10 segundo. cuando Usaremos la fórmula (4’). Con h = 1 . L = 50, R = 20, V = 10.
w0 = y0 = α k1 = hf (ti , wi ) k 2 = hf (ti + h2 , wi + 12 k1 )
k3 = hf (ti + h, wi − k1 + 2k 2 )
Solución: di (t ) R E = − i (t ) + dt L L
y′ = −0.4 y + 0.2 ;
o
wi +1 = wi + 16 [k1 + 4k 2 + k3 ]
(4”’)
para cada i = 0, 1, …, N-1.
Iteración 1: El método que se usa en la k1 = hf (t0 , w0 ) = 1(−0.4(0) + 0.2) = 0.2 práctica por sus dotes de alta precisión, es el de cuarto orden k 2 = hf (t0 + h, w0 + k1 ) = 1( −0.4(0 + 0.2) + 0.2) = 0.12 del cual aquí presentaremos dos versiones. 1 w1 = w0 + 2 [ k1 + k2 ]
= 0 + 12 (0.2 + 0.12) = 0.16 ,
… Las demás iteraciones abreviadas en la tabla 5 Runge - Kutta Orden Dos
ti
wi
0.000000 0.0000000000 1.000000 0.1600000000 F. Antoine S.
están
Método de Heun
ti
wi
0.000000 1.000000
0.0000000000 0.1600000000
1.5.4. Método de Runge-Kutta de Cuarto Orden w0 = y0 = α k1 = hf (ti , wi ) k 2 = hf (ti + h2 , wi + 12 k1 ) k3 = hf (ti + h2 , wi + 12 k 2 )
k 4 = hf (ti + h, wi + k3 ) A. Sangiacomo C.
20
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
wi +1 = wi + 16 [k1 + 2k 2 + 2k3 + k 4 ]
En esta figura los números k1 , k 2 , (5) k3 y k 4 tienen un sentido geométrico simple que para cada i = 0, 1, …, N-1. explicamos a continuación: La siguiente versión es una forma Supongamos que la curva M 0CM 1 alternativa: es la solución de ecuaciones diferenciales ordinarias w0 = y0 = α y ′ = f (t , y ) con la condición k1 = hf (ti , wi ) inicial. El punto C de esta curva h 1 k2 = hf (ti + 2 , wi + 2 k1) se halla en la recta paralela al eje h 1 1 y y biseca el segmento [ xi , xi +1 ] ; k3 = hf (ti + 2 , wi + 4 k2 + 4 k1 ) B y G son los puntos de k 4 = hf (ti + h, wi − k 2 + 2k3 ) intercesión de la tangente trazada wi +1 = wi + 16 [k1 + 4k3 + k4 ] (5’) a la curva en el punto M 0 con las para cada i = 0, 1, …, N-1. ordenadas AC y N1M1 . Entonces Este método tiene un error de el número k , con exactitud de 1 truncamiento de O(h 4 ) , siempre y hasta el multiplicador h cuando la solución y (t ) tenga ( h = x − x ), es el coeficiente i +1 i cinco derivadas continuas. La angular de la tangente en el punto terminología ki se introduce para M a la curva integral M CM , o 0 0 1 facilidad de cálculo dentro de la sea, k = hy′ = hf (t , y ) . 1 i i i propia fórmula. El punto B tiene por coordenadas k x = xi + h2 , y = yi + 21 . Por consiguiente el número k2 , con exactitud de hasta el factor h, es el coeficiente angular de la tangente trazada a la curva integral en el punto B (BF es el segmento de esta tangente). Tracemos por el punto M 0 la Figura 5. recta paralela al segmento BF, entonces en la curva D tiene las F. Antoine S.
A. Sangiacomo C.
21
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
Paso 12: t = a + ih coordenadas x = xi + h2 , y = yi + k22 y Paso 13: Parar. k3 , con exactitud de hasta el A continuación se presenta un multiplicador h, que es el procedimiento para dar solución coeficiente angular de la tangente por el Método de Runge-Kutta trazada a la curva integral en el por las fórmulas (5) y (5’). punto D ( DR1 es el segmento de esta tangente). Por último, por el 1.5.6. Programa en Delphi Pascal punto M 0 tracemos la recta paralela a DR1 , que cortará la prolongación M 1N1 en el punto R2 dado por ( xi + h, yi + k3 ) . Entonces k 4 , con la exactitud de hasta el multiplicador h, es el coeficiente angular de la tangente unit Runge_Or_4a_a1; trazada a la curva integral en el {Método de RUNGE-KUTTA Orden cuatro (4) } interface punto R2 . uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Buttons;
1.5.5. Algoritmo de Runge-Kutta type de Cuarto Orden TForm1 = class(TForm) Paso 1: Definir f (t , y ) { y ′ = f (t , y ) } Paso 2: Entrar a, b, N {intervalo y número de intervalos} Paso 3: Entrar y0 {condiciones iniciales} Paso 4: Hacer h = (b − a) / N
t=a w = y0 Publicar (t, w) Paso 5: Para i = 1 hasta N-1 Hacer Paso 6: k1 = hf (t , w) Paso 7: k 2 = hf (t + h , w + 1 k1 ) 2 2 Paso 8: k3 = hf (t + h , w + 1 k 2 ) 2 2
BitBtn1: TBitBtn; BitBtn2: TBitBtn; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit5: TEdit; Label5: TLabel; CheckBox1: TCheckBox; Memo1: TMemo; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Datos; procedure FormCreate(Sender: TObject); Procedure Calculo; end; _r = double; _i = integer; _s = string; var Form1: TForm1; implementation var Fun_x, Sx1 : _s; Lim_A, Lim_B, rr, Y0 :_r; Nn : _i; {$R *.DFM}
procedure TForm1.BitBtn2Click(Sender: TObject); Paso 9: k 4 = hf (t + h, w + k3 ) begin close; end; Paso 10: w = w + 1 [k1 + 2k 2 + 2k 3 + k 4 ] function ff(t, y:_r):_r; 6 begin // AQUÍ CAMBIAR LA FUNCIÓN F( X , Y ) Paso 11: Publicar (t, w) ff:=1+t-y;
F. Antoine S.
A. Sangiacomo C.
22
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
end; procedure TForm1.Datos; Con solución exacta begin // 3 Lim_A:=strToFloat(Edit1.text); Lim_B:=strToFloat(Edit2.text); y + 3 y + t − 4 = 0 . Nn :=StrToInt(Edit3.text); y0 :=strToFloat(Edit5.text); end; Solución: Procedure TForm1.Calculo; var r1, W, h, k1, k2, k3, k4 :_r; i, j, k : _i; begin Memo1.Lines.Add(' Método de Runge Kutta de Cuarto Orden Daremos sólo la solución por la '); (5) en la tabla 4, quedando la otra sx1:=' F ( x ) = '+Fun_x+#13#10; sx1:=sx1+' a = '+Edit1.text+#13#10+' b = ' a cargo del lector (puede usar el +Edit2.text+#13#10; procedimiento Pascal anterior). sx1:=sx1+' N = '+Edit3.text; Memo1.Lines.Add(sx1); h:= (Lim_b-Lim_a)/Nn; Ti k1 k2 k3 w:= Y0; 0.00 0.0000000000 0.0000000000 0.0000000000 for i:=1 to Nn do 0.10 -0.0500000000 -0.0512656200 -0.0512980610 begin 0.20 -0.0526303329 -0.0540304936 -0.0540682082 r1 := Lim_a+(i-1) * h; 0.30 -0.0555435272 -0.0570949192 -0.0571387734 0.40 -0.0587740910 -0.0604935267 -0.0605443915 sx1 := ' t = '+FloatToStrF(r1+h,ffGeneral, 8,15); 0.50 -0.0623558978 -0.0642582529 -0.0643168521 k1 := h * ff(r1, w); 0.60 -0.0663170990 -0.0684114490 -0.0684780676 k2 := h * ff(r1+h/2, w + k1/2); 0.70 -0.0706707675 -0.0729536313 -0.0730276153 k3 := h * ff(r1+h/2, w + k2/2); 0.80 -0.0753988869 -0.0778432885 -0.0779223017 k4 := h * ff(r1+h, w + k3); 0.90 -0.0804272087 -0.0829667961 -0.0830459683 sx1 := sx1+' k1= '+FloatToStrF(k1,ffGeneral, 8,15)+ 1.00 -0.0855905939 -0.0881006340 -0.0881721694 ' k2= '+FloatToStrF(k2,ffGeneral, 8,15); sx1 := sx1+' k3= '+FloatToStrF(k3,ffGeneral, 8,15)+ Ti k4 wi ' k4= '+FloatToStrF(k4,ffGeneral, 8,15)+#13#10; 0.00 0.0000000000 1.0000000000 w := w + (k1 + 2*(k2 + k3) + k4)/6; 0.9487070065 sx1 := sx1+' w = '+' '+FloatToStrF(w,ffGeneral, 10,15); 0.10 -0.0526305992 0.20 -0.0555438735 0.8946450715 if CheckBox1.Checked then Memo1.Lines.Add(sx1); 0.30 -0.0587745460 0.8375141617 end; 0.40 -0.0623565012 0.7769797570 if not CheckBox1.Checked then Memo1.Lines.Add(sx1); 0.50 -0.0663179045 0.7126757549 end; 0.60 -0.0706718446 0.6442144254 procedure TForm1.BitBtn1Click(Sender: TObject); 0.70 -0.0754003169 0.5712088292 0.80 -0.0804290667 0.4933156402 begin Datos; Calculo; end; procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Clear; end;
0.90 1.00
-0.0855929000 -0.0905984605
0.4103080339 0.3221855904
Tabla 4.
end.
La tarea es que con algún método para encontrar raíces, debe 1.5.7. Ejemplo hallarse los valores wi , con cada Resolver las ecuaciones ti para comprobar los resultados diferenciales ordinarias (EDO) de la tabla 4. con valor inicial por Runge-Kutta (5 y 5’) con h = 0.1 1.5.8. Problemas 2 y′ + y y′ = −1 , 0 ≤ t ≤ 1 , y ( 0) = 1 . F. Antoine S.
A. Sangiacomo C.
23
Capítulo 1
1.
2.
Método Numéricos para la Solución de Ecuaciones Diferenciales
Hermite para calcular los Resuelva los problemas (1 y 2) valores de de los problemas 1.3.9 por las y(1.04), y(1.55), y(1,87), fórmulas (4), (4’), (4”), (5) y y compárelos con los exactos (5’). Comparar sus resultados y y los hallados por el propio hacer las gráficas. método Runge-Kutta con un h Use el método del punto medio, apropiado. Euler modificado, Heun con h=0.1 para aproximar la 4. Dado el problema de valor solución de: inicial y′ = 1 − t ⋅ sin(ty ) , 0 ≤ t ≤ t , y (0) = 0 . t 2 y ′ = 1 − ty − t 2 y 2 , 1 ≤ t ≤ 2 ,
y (1) = −1 , Dado el problema de valor con solución exacta y (t ) = −t −1 : inicial 2y 2 t a) Use el método Runge-Kutta (4, + t e , 1 ≤ t ≤ 2 , y (1) = 0 , y′ = t 4’, 4”, 4”’), con h = 0.0625 con solución exacta para aproximar la solución y 2 t y (t ) = t (e − e) : compárela con los valores a) Use el método Runge-Kutta exactos de y. (4, 4’, 4”, 4”’), con h = 0.05 b) Use el método Runge-Kutta de para aproximar la solución y cuarto orden con h = 0.1 para compárela con los valores aproximar la solución y exactos de y. compárelos con los valores b) Use el método Runge-Kutta reales de y. de cuarto orden con h = 0.1 c) Use las respuestas de (b) y haga para aproximar la solución y la interpolación de Newton compárelos con los valores para calcular los valores de reales de y. y(1.011), y(1.654), y(1,787), c) Use las respuestas de (b) y y compárelos con los exactos y haga la interpolación de los hallados por el propio
3.
F. Antoine S.
A. Sangiacomo C.
24
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
método Runge-Kutta con un h Conviene observar que yn +1 apropiado. decrece cuando n (o el tiempo) aumenta, ya que α < 0 . La solución numérica de (6) 1.5.9. Error, Estabilidad y mediante el método de RungeOptimización del Intervalo de la Kutta de cuarto orden es Retícula k1 = αhy n Los métodos de Runge-Kutta k1 ⎞ ⎛ 1 están sujetos a dos tipos de k2 = αh⎜⎝ yn + 2 ⎟⎠ = αh(1 + 2 αh )yn errores; el error de truncamiento k ⎞ ⎛ k3 = αh⎜ yn + 2 ⎟ = αh(1 + 12 αh(1 + 12 αh ))yn y el de inestabilidad. Como ya se 2⎠ ⎝ ha analizado, el error de k4 = αh( yn + k3 ) truncamiento se debe a la = αh(1 + 12 αh(1 + 12 αh(1 + 12 αh )))yn discrepancia entre el desarrollo de (8) Taylor del método numérico y el de la solución exacta. El tamaño yn +1 = 1 + αh + 12 (αh) 2 + 16 (αh)3 + 241 (αh) 4 yn . del error decrece al aumentar el (9) orden del método. Por otro lado, la inestabilidad es un efecto La ecuación (9) es igual al acumulado del error local, de desarrollo de los cinco primeros forma que el error de la solución términos del desarrollo de Taylor crece sin límite al avanzar los para el lado derecho de la ecuación (7) al rededor de t n . El intervalos de tiempo. Para analizar la estabilidad de un factor método de Runge - Kutta u = 1 + αh + 12 (αh)2 + 16 (αh)3 + 241 (αh)4 consideremos la ecuación prueba (10) y′ = α y
de la ecuación (9) aproxima a exp(αh) de la ecuación (7), por lo donde α < 0 . Para yn dada, el que en esta aproximación se valor exacto de yn +1 está dada en originan tanto el error de truncamiento como la forma analítica por inestabilidad de (9). y n +1 = exp(αh) yn . (7) F. Antoine S.
(6)
A. Sangiacomo C.
25
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
En la primera En las aplicaciones prácticas del numérico. método de Runge-Kutta, es ejecución de un solo paso h, posible determinar el tamaño partiendo de la condición inicial y óptimo de un intervalo de la lo denotamos por [ y1 ]h . La retícula. A manera de ejemplo, segunda ejecución de dos supongamos que deseamos intervalo de paso h / 2 y la mantener un error local ε del denotamos por [ y2 ]h / 2 . Usamos método de Runge-Kutta de cuarto estos resultados en (13) y orden. El error local es despejamos B. proporcional a h5 para un intervalo de prueba, por lo que Eh − 2 Eh / 2 = [ y1 ]h − [ y2 ]h / 2 . (14) 16 [ y ] − [ y2 ]h / 2 expresamos el error de la forma B= ⋅ 1 h Eh = Bh5
h5
15
(11)
(15)
donde B es una constante que Una vez hallado B, podemos depende del problema dado. encontrar el h máximo (óptimo) Aplicando el método de Runge- que satisface el criterio de Eh ≤ ε , Kutta en dos pasos con h / 2 sustituyendo Eh = ε en (11) y de como intervalo de tiempo, el error allí despejamos h resulta proporcional a 2(h / 2)5 , ε = Bh 5 1/ 5 donde el factor 2 se debe a la ⎛ε ⎞ h=⎜ ⎟ . (16) acumulación en dos etapas del ⎝B⎠ error. Así se tiene 2 Eh / 2 = 2 B (h / 2)5 = Bh5 / 16
(12)
1.5.9.1. Ejemplo
restando (12) a (11), con lo que Aplicando el método de cuarto obtenemos: orden de Runge-Kutta a 5 5 5 Eh − 2 Eh / 2 = Bh − Bh / 16 = 15Bh / 16 . y′ + t 2 y′ = − y , 0 ≤ t ≤ 1 , y (0) = 1 . (13)
Determinar el tamaño óptimo del Podemos evaluar el lado intervalo que satisfaga E ≤ 10 −5 . h izquierdo de la ecuación anterior mediante un experimento Solución: F. Antoine S.
A. Sangiacomo C.
26
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
a) y ′ = 2 t − 2 y , 0 ≤ t ≤ 3 , y (0) = e −4 ,
Hacemos un sólo paso y h = 1 , partiendo de la condición inicial dada tenemos [ y1 ]h = 0.4566667
un intervalo h
b) y ′ = 1 + tsin(ty ) , 0 ≤ t ≤ 2 , y (0) = 0 , Eh ≤ 10 −4
c) y ′ =
[ y2 ]h / 2 = 0.4559973
dos intervalos h / 2 .
2 t
y + t 2 et , 1 ≤ t ≤ 2 , y (1) = 0 ,
Eh ≤ 10 −5
De acuerdo con (15) nos resulta B=
Eh ≤ 10 −4
16 0.4566667 − 0.4559973 ⋅ = 7.1 ⋅ 10 − 4 . 5 15 1
d) y ′ = 1t ( y + y 2 ) , 1 ≤ t ≤ 3 , y (1) = −2 , Eh ≤ 10 −6
A esta última expresión la Apéndice: sustituimos en (11) con lo que el A1. Programa en Delphi para Heun error local para cualquier h es Eh = 7.1 ⋅ 10 −4 ⋅ h 5 .
Ahora calculamos el máximo u óptimo que satisface Eh ≤ 10−5 , es 1/ 5
⎡ 10 − 5 ⎤ h=⎢ −4 ⎥ ⎢⎣ 7.1 ⋅ 10 ⎥⎦
= 0.426 . unit Heun_a1;
{Método de Heun } Conclusión se debe tomar del interface intervalo para este problema. uses 1 3
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Buttons;
type TForm1_Heun = class(TForm) BitBtn2: TBitBtn; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit5: TEdit; TLabel; CheckBox1: TCheckBox; Use el desarrollo de (11) a (16) Label5: Memo1: TMemo; CheckBox2_Cada_Paso: TCheckBox; TSpeedButton; para hallar h apropiado máximo SpeedButton1: procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); para aproximar el problema de procedure Datos; procedure FormCreate(Sender: TObject); valor inicial. Procedure Calculo; end; _r = double; _i = Integer; _s = string;
1.5.9. Problemas 1.
F. Antoine S.
A. Sangiacomo C.
27
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
var Form1_Heun: TForm1_Heun; implementation var Fun_x, Sx1 : _s; Lim_A, Lim_B, Y0 :_r; Nn : _i; {$R *.DFM} procedure TForm1_Heun.BitBtn2Click(Sender: TObject); begin close; end; function ff(t, y:_r):_r; begin //AQUÍ CAMBIAR LA FUNCIÓN F( X , Y ) ff := 1 + t - y ; end; procedure TForm1_Heun.Datos; begin // Lim_A:=strToFloat(Edit1.text); Lim_B:=strToFloat(Edit2.text); Nn :=StrToInt(Edit3.text); y0 :=strToFloat(Edit5.text); end; Procedure TForm1_Heun.Calculo; var r1, W, h, k1, k2 :_r; i : _i; begin Memo1.Lines.Add(' Método de Heun (Método Modificado de Euler)'); sx1:=' F ( x ) = '+Fun_x+#13#10; sx1:=sx1+' a = '+Edit1.text+#13#10+' b = ' +Edit2.text+#13#10; sx1:=sx1+' N = '+Edit3.text; Memo1.Lines.Add(sx1); h:= (Lim_b-Lim_a)/Nn; w:= Y0; for i:=1 to Nn do begin r1 := Lim_a+(i-1) * h; sx1 := ' t = '+FloatToStrF(r1+h,ffGeneral, 8,15); k1 := h * ff(r1, w); k2 := h * ff(r1+2*h/3, w + 2*k1/3); w := w + (k1 + 3*k2)/4; sx1 := sx1+' w = '+' '+FloatToStrF(w,ffGeneral, 10,15); if CheckBox1.Checked then Memo1.Lines.Add(sx1); end; if not CheckBox1.Checked then Memo1.Lines.Add(sx1); end; procedure TForm1_Heun.BitBtn1Click(Sender: TObject); begin // aquí Euler Datos; if CheckBox2_Cada_Paso.Checked then Memo1.Clear; Calculo; end; procedure TForm1_Heun.FormCreate(Sender: TObject); begin Memo1.Clear; CheckBox2_Cada_Paso.Checked:=true; end; end.
A2. Programa en Delphi para Runge Kutta de Orden Dos
F. Antoine S.
unit Runge_Or_2_a1;
{RUNGE-KUTTA Orden dos (2) Método del Punto Medio }
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Buttons; type TForm1_Runge_Kutta_segundo = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit5: TEdit; Label5: TLabel; CheckBox1: TCheckBox; Memo1: TMemo; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Datos; procedure FormCreate(Sender: TObject); Procedure Calculo; end; _r = double; _i = integer; _s = string; var
Form1_Runge_Kutta_segundo: TForm1_Runge_Kutta_segundo;
implementation {$R *.DFM} var Fun_x, Sx1 : _s; Lim_A, Lim_B, rr, Y0 :_r; Nn : _i; procedure TForm1_Runge_Kutta_segundo.BitBtn2Click(Sender: TObject); begin close; end; function ff(t, y:_r):_r; begin // AQUÍ CAMBIAR AL FUNCIÓN F( X , Y ) ff:=1+t-y; end; procedure TForm1_Runge_Kutta_segundo.Datos; begin // Lim_A:=strToFloat(Edit1.text); Lim_B:=strToFloat(Edit2.text); Nn :=StrToInt(Edit3.text); y0 :=strToFloat(Edit5.text); end; Procedure TForm1_Runge_Kutta_segundo.Calculo; var r1, W, h, k1, k2 :_r; i, j, k : _i; begin Memo1.Lines.Add(' Método de Runge - Kutta (Punto Medio)'); sx1:=' F ( x ) = '+Fun_x+#13#10; sx1:=sx1+' a = '+Edit1.text+#13#10+' b = ' +Edit2.text+#13#10; A. Sangiacomo C.
28
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
sx1:=sx1+' N = '+Edit3.text; Memo1.Lines.Add(sx1); h:= (Lim_b-Lim_a)/Nn; w:= Y0; for i:=1 to Nn do begin r1 := Lim_a+(i-1) * h; sx1 := ' t = '+FloatToStrF(r1+h,ffGeneral, 8,15); k1 := h * ff(r1, w); k2 := h * ff(r1+h, w + k1); w := w + (k1 + k2)/2; sx1 := sx1+' w = '+' '+FloatToStrF(w,ffGeneral, 10,15); if CheckBox1.Checked then Memo1.Lines.Add(sx1); end; if not CheckBox1.Checked then Memo1.Lines.Add(sx1); end; procedure TForm1_Runge_Kutta_segundo.BitBtn1Click(Sender: TObject); begin // aquí Euler Datos; Calculo; end;
Function fxy(t,y: real):real; {función de cálculo} Begin {CAMBIAR AQUÍ LA FUNCIÓN DE LA EC. DIFERENCIAL} {====================================} fxy:=1+t-y {====================================} End; Procedure recal_Runge_Kutta_cuarto_Orden; Begin k1:=h*fxy(t,y); if s='1' then Begin k2:=h*fxy(t+h/2, y+k1/2); k3:=h*fxy(t+h/2, y+k2/2); k4:=h*fxy(t+h, y+k3); t:=t+h; y:=y + (k1+2*k2+2*k3+k4)/6; End; if s='2' then Begin k2:=h*fxy(t+h/2, y+k1/2); k3:=h*fxy(t+h/2, y+k1/4+k2/4); k4:=h*fxy(t+h, y-k2+2*k3); t:=t+h; y:=y +(k1+4*k3+k4)/6; End; End;
procedure TForm1_Runge_Kutta_segundo.FormCreate(Sender: TObject); begin Memo1.Clear; end;
Todos los programas se encuentran en el disco compacto.
end.
s: string (sirve para definir si es 1 o 2 a (5) o (5’)}
A5. Procedimiento de Schaplygin
A3. Programa en Delphi para Runge Kutta de Orden Tres
Este método analítico para la integración aproximada de ecuaciones diferenciales ordinarias de primer orden. Este procedimiento se debe a Schaplygin y se basa en una idea totalmente nueva. Este procedimiento de Schaplygin (se afirma, comprobarlo es motivo de otro comentario, los invito) es uno de los procedimientos analíticos más exactos para la integración, de forma aproximada, de ecuaciones diferenciales y permite además una valoración sencilla de las solución. Lo esencial del procedimiento consiste en que la solución buscada y = y(x); a ≤ x ≤ b; Ver el programa en el disco compacto se aproxima por medio de dos series de funciones un=un(x) y vn=vn(x); n=1, 2, … adjunto a esta publicación. las cuales satisfacen la desigualdad A4. Programa (procedimiento) en Pascal de un ( x) ≤ y ( x) ≤ vn ( x) , para x ∈ [a, b] Runge - Kutta de cuarto orden de las dos y la condición inicial
un ( x0 ) = y ( x0 ) = vn ( x0 )
formas {Se supone que se tienen definidas las variables t,k1,k2,k3,k4,y,h:real { t es variable independiente { h el paso;
h = (b − a ) / N
{y hace del valor de condición inicial
F. Antoine S.
Estas series de funciones tienen además las propiedad de que su diferencia u n ( x) − vn ( x)
a≤t≤b
para n → ∞ en el intervalo uniformemente a cero.
}
}
y = y0 = y(t0 )
[a, b] tiende
}
A. Sangiacomo C.
29
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
Desde el punto de vista geométrico, esto es que la condición inicial y ( x0 ) = y0 y estar definida curva integral buscada y=y(x) esta comprendida para a ≤ x ≤ b. Se cumple entonces: en un sector A0 Bn Cn sombreado en la figura 1. I[y]=0. (3) Para la solución y(x) se construye también un Si la función u=u(x) satisface las condiciones sector [u n ( x), vn ( x)] y se indica un I[u] ≤ 0 para a ≤ x ≤ b; (4) procedimiento con cuya ayuda este sector se y puede estrechar hasta la exactitud deseada. u ( x0 ) = y0 , se cumple siempre en el intervalo [a, b] la desigualdad u ≤ y, (5) es decir, la función u es un minorante de la solución y. Si, por el contrario, para la función v=v(x) se cumple la condiciones I[v] ≥ 0 para a ≤ x ≤ b; (6) y Figura 1. v( x0 ) = y0 , se cumple para el intervalo [a, b], la desigualdad Si ponemos y ≤ v, (7) yn ≈ u n ( x) , es decir, la función v es un mayorante de la solución y. entonces el error absoluto máximo de la solución Prueba: Demostraremos sólo la desigualdad (5) la de aproximación un(x) es igual a demostración (7) se consigue de forma análoga. ε n ( x ) = vn ( x ) − u n ( x ) , De las fórmulas (3) y (4) nos resulta, es decir, este error se determina inmediatamente respectivamente, es cada paso de la aproximación. y ' − f ( x, y ) = 0 Para simplificar representemos la ideas centrales y del método de Schaplygin a base de una ecuación u ' − f ( x, y ) ≤ 0 . diferencial de primer orden De ahí la expresión y ' = f ( x, y ) (1) ( y − u ) ' − p( x)( y − u ) ≥ 0 , (8) con la condición inicial en donde y ( x0 ) = y0 . (2) f ( x, y ( x)) − f ( x, u ( x)) Para ello supongamos que el segundo miembro . (9) p ( x) = y −u f(x, y) de la ecuación diferencial (1), en un entorno conocido del punto inicial, es continuo, y La función p(x) pierde su significado para que allí también tiene derivadas parciales aquellos valores de x, para los cuales se tiene sucesivas f y ( x, y ) y f yy ( x, y ) , (para recordar y=u. Es este caso pongamos
fy =
∂f ∂y
,
f yy =
∂2 f ∂ y2
). El procedimiento se
basa en la hipótesis siguiente:
p( x) = lím
u→ y
f ( x, y ( x)) − f ( x, u ( x)) y −u = f y ( x, y ( x)) .
En virtud de las condiciones citadas anteriormente, la función p(x) está definida en el Sea intervalo [a, b], y allí también es continua. Si multiplicamos ahora ambos miembros de la I [ y ] = z ' = f ( x, y ) un operador diferencial y y=y(x) una integral de ecuación (3) por el factor positivo la ecuación (1); la integral tiene que satisfacer la
A5.1. Lema de Schaplygin
F. Antoine S.
A. Sangiacomo C.
30
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
x
μ ( x) = e
∫a
p ( x ) dx
obtenemos entonces d dx
( μ ( x)[ y ( x) − u ( x)]) ≥ 0 .
(10)
Si integramos ahora (10) entre los límites a y x, donde a ≤ x ≤ b, resulta así
μ ( x)[ y ( x) − u ( x)] − μ ( x0 )[ y ( x0 ) − u ( x0 )] ≥ 0 o ya que y ( x0 ) = u ( x0 ) y μ ( x) ≥ 0 , finalmente
Figura 2.
se tiene
u ( x) ≤ u ( x) , para a ≤ x ≤ b. ♣ y esto prueba la desigualdad (5).
A partir de la primera parte de la desigualdad (13) resulta que la curva integral y=u(x) de la primera ecuación diferencial de (12), que pasa por el punto M0, corta a las curvas C−i, del A5.2. Observación conjunto {K}, una tras otra, y tiene una pendiente Si las funciones y=y(x), u=u(x) y v=v(x) más pequeña que la C−i,. Por consiguiente, se satisfacen en el intervalo [a, b] a las ecuaciones encuentra ella por debajo de la curva C0. Por el contrario, sabemos, a partir de la segunda diferenciales parte de la desigualdad (13) que la curva integral y ' = f ( x, y ) . (11) y=v(x) de la segunda ecuación diferencial de (12), u ' = f1 ( x, u ) , v ' = f 2 ( x, v) , (12) que pasa por el punto M0, tiene una pendiente en donde mayor que la curva Ci, del conjunto {K} que ella corta, y por consiguiente está situada por encima f1 ( x, z ) ≤ f ( x, z ) ≤ f 2 ( x, z ) (13) y a la condición inicial común de la curva C0, ver la figura 2. Por tanto, la u ( x0 ) = y ( x0 ) = v( x0 ) = y0 , se cumple la desigualdad (14) siempre se cumple. desigualdad Ahora indiquemos un procedimiento para la un ( x) ≤ y ( x) ≤ vn ( x) , para x ∈ [a, b] , (14) representación de la series de funciones un y vn (n=1, 2, …), las cuales aproximan la solución y si ponemos de la ecuación diferencial (1). I [ z ] = z ' − f ( x, z ) obtenemos a partir de las condiciones (12) y (13), Supongamos en primer lugar que ∂ f en el ∂ y2 respectivamente, I [u ] = u ' − f ( x, u ) = f1 ( x, u ) − f ( x, u ) ≤ 0 dominio considerado no cambia de signo. O sea ∂2 f y ≥ 0. (15) I [v] = v ' − f ( x, v) = f1 ( x, v) − f ( x, v) ≥ 0 . ∂ y2 De ahí usando el lema demostrado arriba la Busquemos ahora dos funciones desigualdad (14). ♣ u0 = u0 ( x) y v0 = v0 ( x) 2
con u0 ≤ v0 , Hagamos la interpretación geométrica de la desigualdad (13) de forma sencilla. para los cuales se cumpla las desigualdades I [u0 ] = − r0 ( x) ≤ 0 Consideremos un conjunto {K} de curvas integrales …, C−2, C−1, C0, C1, C2, … de la y ecuación diferencial (11), par lo cual sea C0 la I [v0 ] = s0 ( x) ≥ 0 curva integral que pasa por el punto M0(x0, y0), es decir, la representación gráfica de la solución respectivamente. y=y(x), ver la figura 2. Las funciones r0 ( x) y s0 ( x) indican las desviaciones correspondientes. F. Antoine S.
A. Sangiacomo C.
31
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
Si las funciones u0 y v0 pudieran buscarse con dρ 0 = p ( x) ρ + r ( x) , ρ ( x ) = 0 0 0 0 0 0 dificultades, puede emplearse el siguiente dx (18) procedimiento, supóngase en primer lugar que el y d σ segundo miembro de la ecuación (1) sea una 0 = q0 ( x)σ 0 + s0 ( x) , σ 0 ( x0 ) = 0 , función continua y definida en un rectángulo dx determinado R donde r0 ( x ) = − I [u0 ] , I [v0 ] = s0 ( x) , R = {a ≤ x ≤ a + t , y − y0 ≤ t1} ,
p0 ( x ) = f y ( x, u 0 )
donde t y t1 son dos números positivos. Hagamos m = mín f ( x, y ) , para ( x, y ) ∈ R y M = máx f ( x, y ) , para ( x, y ) ∈ R (16) y
h = mín{t ,
t1 m
,
t1 M
}.
q0 ( x ) =
(17)
f ( x, v0 ) − f ( x, u0 ) . v0 − u0
(19)
Ya que lo términos r0 ( x ) y s0 ( x ) de las Entonces podemos elegir en el intervalo [a, X], ecuaciones diferenciales lineales (18) no son donde X=a+h, las funciones siguientes como negativos, resulta de las fórmulas conocidas para aproximaciones iniciales la solución de estas ecuaciones las expresiones u 0 = y0 + m( x − a ) ρ 0 ( x) ≥ 0 y σ 0 ( x) ≥ 0
v0 = y0 + M ( x − a)
para a≤x≤X. Ahora puede indicarse que en el intervalo [a, X] se cumplen las siguientes desigualdades I [u1 ] ≤ 0 y I [v1 ] ≥ 0 . Con ello las funciones u1 y v1 forman un minorante y un mayorante, respectivamente, de la solución exacta y, por lo cual el sector determinado por ellas es ya más estrecho que el determinado por las anteriores u0 y v0. Si en general se cumplen las expresiones
respectivamente.
I [un ] = − rn ( x) ≤ 0
y
I [vn ] = sn ( x) ≥ 0 se puede escribir
un +1 = un + ρ n y vn +1 = vn − σ n En donde ρ n ( x) y σ n ( x) son funciones no
Figura 3. Para mejorar la aproximación pongamos
u0
negativas, que se determinan a partir de las ecuaciones diferenciales lineales
y
v0 d ρ n
u1 = u0 + ρ 0
dx y
y
= pn ( x) ρ n + rn ( x) , ρ n ( x0 ) = 0 (20)
dσn = qn ( x)σ n + sn ( x) , σ n ( x0 ) = 0 , dx
v1 = v0 − σ 0 En donde ρ 0 = ρ 0 ( x) y σ 0 = σ 0 ( x) son donde
funciones no negativas, que se determinan a partir de las ecuaciones diferenciales lineales
p n ( x ) = f y ( x, u n ) y
F. Antoine S.
A. Sangiacomo C.
32
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
qn ( x ) =
f ( x, vn ) − f ( x , u n ) . vn − u n
(21)
también se puede probar las expresiones I [u n +1 ] ≤ 0 y I [vn +1 ] ≥ 0 . De ello se tienen la desigualdades
u0 ≤ u1 ≤ L ≤ u n ≤ u n +1 ≤ y
y
y ≤ v0 ≤ v1 ≤ L ≤ vn ≤ vn +1 Para la representación de la figura tomamos un punto fijo x y la función correspondiente
z = f ( x, y ) pn ( x) = tan(α n)
Figura 5. De las ecuaciones (20) se tiene:
(22)
x
ρn = e
∫a
p n ( x ) dx
x
∫a
rn ( x)e
x a
− ∫ p n ( x ) dx
dx
(23)
σn = e
∫
x a
q n ( x ) dx
x
∫a
sn ( x)e
x a
− ∫ q n ( x ) dx
n=1,2, …
Figura 4. es la pendiente de la tangente a la curva (22) en el punto y=un mientras que
dx (24)
Como la distancia entre vn − un tiende a cero cuando n→∞. Se cumple para un n determinado la expresión vn − un < ε, donde ε es la tolerancia, error o exactitud exigida, podemos poner la solución de la forma aproximada
y≈
u n + vn 2
qn ( x) = tan( β n)
Si se requiere valoración alguna del error de la es la pendiente de la secante a la curva (22) para solución de aproximación, podemos limitarnos a una se las series de funciones un (o vn ) (n=1,2, los puntos y=un y y=vn. Llamaremos la determinación de un como …), pues se cumple procedimiento de la tangentes y a vn como y = lím u n o y = lím vn n →∞ n→∞ procedimiento de las secantes. Si en lugar de (15) se cumple la desigualdad contraria ∂2 f ∂ y2
≤ 0,
las funciones un y vn cambian los papeles. Nota: (Importante) Si la derivada
∂2 f ∂ y2
cambia de
signo en el intervalo [a, b], este caso es más F. Antoine S.
A. Sangiacomo C.
33
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
complicado y será motivo de otro comentario o f ( x, v0 ) − f ( x, u0 ) q0 ( x ) = folleto.
v0 − u0 ( x + 2v0 ) − ( x + 2u0 ) = 2(v0 + u0 ) = v0 − u0 = 2x .
A5.4. Ejemplo: Resolver la EDO de primer orden y ' = x + 2 y 2 , 0 ≤ x ≤ 1 ; y(0) = 0 2
Solución: Se ∂ f 2
∂y
∂2 f
cumple
2
=
∂ (x+2 y ) 2
2
∂y
2
∂ y2
>0,
Como se indica en proceso, sea u1 = u0 + ρ 0 y v1 = v0 − σ 0 por (23) sea x
∫
x
= 4 > 0.
=e
∫0 0 dx
x
∫0
Para este caso se cumple que
=∫
f ( x, y ) = x + 2 y 2 y
I [ z] = z ' − x − 2z 2 .
x
pues, ρ = e ∫ a p n ( x ) dx x r ( x)e − ∫ a p n ( x ) dx dx n n a
x
rn ( x)e
rn ( x)dx = ∫
0
x 0
x 0
− ∫ 0 dx
dx
xdx =
x2 . 2
x2 x2 = 2 2
Entonces u1 = 0 +
Aplicamos lo antes visto del (2) al (24). Para también probar pongamos x x u0 =0 y v0 = x. − ∫ q n ( x ) dx ∫ a q n ( x ) dx x a σn = e sn ( x)e dx Por tanto se cumple en el intervalo 0 ≤ x ≤ 1 ; a 2
∫
I [u0 ] = − x = −r0 ( x) ≤ 0
x
=e
y
I [v0 ] = 1 − x − 2 x 2 = s0 ( x) ≥ 0 .
= ex
De donde se sigue
0 ≤ y ≤ x en 0 ≤ x ≤
1 . 2
∫0 2 xdx 2
x
∫0
x
∫0
(1 − x − 2 x )e 2
x 0
− ∫ 2 xdx
dx
(1 − x − 2 x 2 )e − x dx 2
la cual no es elemental, pero integrando por partes, por suerte, se eliminan y nos resulta
= e x (− 12 [1 − e − x ] + xe − x ) 2
2
2
2
= − 12 e x + 12 + x así 2
v1 = x − [− 12 e x + 12 + x] =
1 2
ex
2
− 12
Para comprobar el signo del operador I[z] es el caso de z=u1 y z=v1. Sea
I [u1 ] = x − x − 2 x 2 = −2 x 2 ≤ 0
Figura 6. En virtud de la teoría general pongamos
p0 ( x) = f y ( x, u0 ) = 4u0 = 0
y
y 2
2
2
I [v1 ] = xe x − x − 12 (e 2 x − 2e x + 1) 2
= (e
x2
1 + 2x − ex + 1) ≥0 2
En efecto pues por el teorema de Taylor se sabe
F. Antoine S.
A. Sangiacomo C.
34
Capítulo 1
ex
Método Numéricos para la Solución de Ecuaciones Diferenciales
2
2
= 1 + x 2e x < 1 + 2 x 2
reemplazado nos queda 2
I [v1 ] > (e x − 1)( x − x 2 ) ≥ 0 .
Solución: Los únicos puntos singulares en el plano son x = 1 y x = −1 . Por lo tanto, sabemos de antemano que hay una solución
Evaluando la diferencia 2
v1 − u1 = 12 (e x − 1) −
x2 , 2
para 0 ≤ x ≤ 1 , 2
se cumple 2
valida en x < 1 con a0 y a1 arbitrarios. Para determinar la an , n>1, sustituimos la y de la ecuación (2) en el miembro izquierdo de (1). De:
2
y ''= Y tenemos: ∞
(1 − x 2 ) ∑ n(n − 1)an x n − 2
entonces su máximo es en x = 1 , y
n=0
2
(1 / 2) 2 1 ( 2
e
(1 / 2) 2 − 1) − 2
=0.0170127083438707.
∞
∑
n =0
n =0
n =0
n(n − 1)an x n − 2 − −
Que es exacta hasta una centésima.
Solución cerca de un punto ordinario
∞
o
v1 + u1 1 x 2 = 4 (e − 1 + x 2 ) . 2
Método de Series
∞
− 6 x ∑ nan x n −1 − 4 ∑ an x n = 0
De donde la solución hasta este paso es:
y=
∑ n(n − 1)an x n − 2
n =0
=1
que resulta también x=0; ello hacer ver que es una función creciente
máx(v1 − u1 ) =
∑ nan x n −1
n =0 ∞
x(e x − 1) = 0 2
∞
y '=
En efecto para ver ello optimizamos e igualamos a cero y tenemos
ex
(2)
n=0
(v1 − u1 ) ' = x(e x − 1) ≥ 0 .
x=0 o
∞
∑ an x n ,
y=
∞
∑
n=0
∞
∑ n(n − 1)an x n
n=0
6nan x n −
∞
∑ 4an x n = 0
n =0
o ∞
∞
n=0
n=0
∑ n(n − 1)an x n − 2 − ∑ (n 2 + 5n + 4)an x n = 0
(3) en la que hemos combinado series que contienen las mismas potencias de x. se llama punto ordinario al punto x = x0 si Vamos ahora a factorizar el coeficiente en la segunda serie de la ecuación (3), tenemos a ( x0 ) ≠ 0 , en otro caso se llama punto singular ∞ ∞ n−2 n ( n − 1 ) a x − de la EDO. ∑ ∑ (n + 1)(n + 4)an x n = 0 . n Dada una EDO, por ejemplo, de la forma a ( x ) y ' ' + b( x ) y + c ( x ) y = r ( x ) ,
n=0
n=0
(4) Al resolver ecuaciones numéricas, es útil la técnica empleada en los siguientes ejemplos. Las relaciones para la determinación de an serán obtenidas usando el hecho que para una serie de Ejemplo: Resolver la ecuación: potencias sea idénticamente nula sobre cualquier intervalo, cada coeficiente de la serie debe (1 − x 2 ) y ' ' − 6 xy ' − 4 y = 0 , (1) hacerse cero. Entonces, escribimos las dos series cerca del punto ordinario x=0. en la ecuación (4) en una forma en la cual los F. Antoine S.
A. Sangiacomo C.
35
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
exponentes de x sean los mismos de modo que se a6 = 86 a4 a7 = 79 a51 pueda extraer fácilmente el coeficiente de cada ... ... potencia de x. 2k + 2 Lo conseguimos corriendo el índice de la a 2 k = 2 k a0 a2 k +1 = 22kk ++13 a2k −1 . segunda serie reemplazando n en todas partes por En seguida, obtenemos el producto de los (n - 2). Entonces la suma principiará desde n - 2 miembros correspondientes de la ecuaciones de = 0, o desde n=2, en lugar de n=0. Teniendo la primera y la segunda columna: ∞ ∞
∑ n(n − 1)an x n − 2 − ∑ (n − 1)(n + 2)an − 2 x n − 2 = 0
n=0
n=2
k ≥ 1 : a2 k =
4⋅6⋅8L( 2 k + 2) a0 , 2⋅ 4⋅6L( 2 k )
simplificando resulta: (5) En esta ecuación (5) es el coeficiente de cada k ≥ 1 : a2 k = (k + 1)a0 , (6’) potencia de x deberá ser cero. Para n=0 y n=1, la como se ve es en función de a0 . segunda serie no principia aún, entonces obtenemos contribuciones sólo de primera serie. De forma similar para la otra columna: 5⋅7 ⋅9L( 2 k + 3) Puntualizando, tenemos k ≥ 1 : a2 k +1 = 3⋅5⋅7L( 2 k +1) a1 , n = 0 : 0 ⋅ a0 = 0 , simplificando resulta: n = 1 : 0 ⋅ a1 = 0 , k ≥ 1 : a2k +1 = 2k3+ 3 a1 , (6’’) n ≥ 2 : n(n − 1)an − (n − 1)(n + 2)an − 2 = 0 lo hace ver que están en función de a1 . Como esperábamos, a0 y a1 son arbitrarios. La
relación para n ≥ 2 puede ser usada para Para la solución tenderemos: determinar todas las ai en función de a0 y a1 . ∞ ∞ ⎡ 2k ⎤ ⎡ 2 k +1 ⎤ y a a x a x + + = + ⎢ 0 ∑ 2k ⎥ ⎢ 1 ∑ a2k +1 x ⎥ Ya que k =1 k =1 ⎣⎢ ⎦⎥ ⎣⎢ ⎦⎥ n(n − 1) ≠ 0 usando los resultados (6’ y 6’’) se tiene para n ≥ 2 , resultando
n ≥ 2 : an =
n+2 an−2 . n
(6)
∞ ⎡ ⎤ = + y a 1 (k + 1) x 2k ⎥ La ecuación (6) se llama de recurrencia. Nos ∑ 0⎢ ⎢⎣ k =1 ⎥⎦ proporciona an en términos de las ai ∞ ⎡ ⎤ precedentes. En este caso particular cada ai se + a1 ⎢ x + ∑ 2k3+ 3 x 2 k +1 ⎥ . (7) ⎢⎣ k =1 ⎥⎦ determina por la ai cuyo subíndice es dos unidades menor que el suyo y, en consecuencia, Estas series convergen al menos para x < 1 . eventualmente, ya sea por a0 o a1 , de acuerdo con la ai original tenga subíndice par o impar. En realidad y por casualidad estas series pueden
Una ecuación de recurrencia es una clase especial escribirse de la forma: a0 a1 (3 x − x 3 ) de ecuación de diferencia. En las ecuaciones de . (8) y= + (1+ x 2 ) 2 (1− x 2 ) 2 diferencias los argumentos de la función desconocida (los subíndices en nuestra relaciones) no difieren necesariamente por Ejemplo: Resolver la ecuación enteros. y ' ' + ( x − 1) 2 y '−4( x − 1) y = 0 , (9) Los cálculos se pueden hacer por separado en dos alrededor del punto ordinario x=1. columnas. Solución: Par Impar Para resolver una ecuación “alrededor del punto a2 = 42 a0 a3 = 53 a1 x = x0 ” se necesita obtener soluciones válidas
a4 = 64 a2
F. Antoine S.
a5 = 75 a3
A. Sangiacomo C.
36
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
en una región que rodea al punto, o sea, De aquí se tiene: soluciones expresadas en potencias de ( x − x0 ) . Primera columna k En primer lugar trasladamos los ejes, hacia k ≥ 1 : a = ( −1) [( −4)( −1) ⋅2L(3k − 7 )]a0 . 3k [3⋅6⋅9L(3k )][ 2⋅5⋅8L(3k −1)] x − 1 = v . Entonces la ecuación (9) se vuelve Segunda colma dy d2y + v2 − 4vy = 0 . (10) 2 k ≥ 1: a = (1 + 1 )a + 0 . dv
3k +1
dv
4
1
Para una transformación lineal pura x − x0 = v , Tercera columna k ≥ 1 : a3k + 2 = 0 . dy dy tenemos = d v , etc. dx Ahora par y tenemos: ∞
∑
Usamos entonces y =
n=0
∞
y = a0 [1 + ∑
an v n
k =1
∞
∞
n=0
n=0
n=0
∑ n(n − 1)an v n − 2 + ∑ nan v n +1 − ∑ 4an v n +1 = 0 (11)
Ya que v = x − 1 , la solución se expresa como: ∞
y = a0 [1 + ∑
k =1
Agrupando términos iguales ∞
]
a1 (v + 14 v 4 ) + a2 ⋅ 0 .
reemplazando en (10) se obtiene ∞
( −1) k [( −4)( −1) ⋅ 2L(3k − 7 )]v 3 k [3⋅6⋅9L(3k )][ 2⋅5⋅8L(3k −1)]
( −1) k [( −4)( −1) ⋅ 2L(3k − 7 )]( x −1) 3 k [3⋅6⋅9L(3k )][ 2⋅5⋅8L(3k −1)]
]
a1[( x − 1) + 14 ( x − 1) 4 ] . (14)
∞
∑ n(n − 1)an v n − 2 + ∑ (n − 4)an v n +1 = 0
(12) La ecuación diferencial original no tiene puntos singulares en el plano finito, entonces la serie esta expresión con un corrimiento de índice de n (14) es convergente para toda x finita. En los a (n − 3) en la segunda serie queda cálculos, por supuesto es de mayor utilidad en la ∞ ∞ vecindad del punto x=1. ∑ n(n − 1)an v n − 2 + ∑ (n − 7)an − 3v n − 2 = 0 . (13) Con un poco de curiosidad se puede simplificar n=0 n =3 de la forma: a0 = a1 = 1 n=0
n=0
Para n = 0 : 0 ⋅ a0 = 0 , a0 es arbitrario. Para n = 1 : 0 ⋅ a1 = 0 , a1 es arbitrario. Para n = 2 : 2a2 = 0 , a2 = 0 . Para n ≥ 3 : n(n − 1)an + (n − 7)an − 3 = 0 o
an = −
n −7 n ( n −1)
an − 3 .
∞
y = a0 ∑
k =0
4( −1) k ( x −1) 3 k 3 ⋅(3k −1)(3k − 4) k ! k
+ a1[( x − 1) + 14 ( x − 1) 4 ] . (15) Algunos resultados se muestran de esta serie
[0, 1]; a0 = a1 = 1
[0, 4]; a0 = a1 = 1
Y(0) = - 0.39380285 Y(0.05) = - 0.30121929 Y(0.1) = - 0.20991925 a0 a1 a2 = 0 Y(0.15) = - 0.12038762 a3 = − 3−⋅42 a0 a4 = − 4−⋅33 a1 a5 = − 5−⋅24 a2 Y(0.2) = - 0.03302342 Y(0.25) = 0.05185374 a6 = − 6−⋅15 a3 a7 = − 7−⋅06 a4 a5 = ( )a2 = 0 Y(0.3) = 0.13399799 Y(0.35) = 0.21323212 a9 = − 92⋅8 a6 a10 = ( )a7 = 0 a11 = 0 Y(0.4) = 0.28944307 Y(0.45) = 0.36257788 ... ... ... Y(0.5) = 0.43264010 Y(0.55) = 0.49968655 a3k = a3k +1 = 0 a3k + 2 = 0 Y(0.6) = 0.56382451 − 3k3(k3−k −71) a3k − 3 Y(0.65) = 0.62520912 Y(0.7) = 0.68404121 Y(0.75) = 0.74056532
Ahora formamos tres grupos de ai :
F. Antoine S.
Y(0) =-0.3938028547 Y(0.2) =-0.0330234219 Y(0.4) = 0.2894430721 Y(0.6) = 0.5638245178 Y(0.8) = 0.7950680892 Y(1) =1 Y(1.2) =1.2057347552 Y(1.4) =1.4491575275 Y(1.6) =1.7774306297 Y(1.8) =2.2494774811 Y(2) =2.9382941271 Y(2.2) =3.9337657086 Y(2.4) =5.3455021837 Y(2.6) =7.3051616382 Y(2.8) =9.9678752959 Y(3) =13.512694362
A. Sangiacomo C.
37
Capítulo 1
Método Numéricos para la Solución de Ecuaciones Diferenciales
Y(0.8) = 0.79506808 Y(0.85) = 0.84787681 Y(0.9) = 0.89935835 Y(0.95) = 0.94991822 Y(1) =1
Y(3.2) =18.142298010 Y(3.4) =24.082365847 Y(3.6) =31.580967487 Y(3.8) =40.908142985 Y(4) =52.355681591
Problemas:
Resolver alrededor de x = 0 en caso no se diga nada. 1. y ' '+3xy '+3 y = 0 . Sol.: y = a0 [1 +
∞
∑
k =1 ∞
a1[ x + ∑
k =1
( −3) k x 2 k 2k k !
]+
( −3) k x 2 k +1 ]. 3⋅5⋅7L( 2 k +1)
begin x:=aa+h*i;fa3:=1; to1:=0; fa1:=1; fa2:=1; po1:=(x-1)*(x-1)*(x-1); d2:=1;po2:=1; t2:=-1; for i:=1-1 to NN do begin d1:=3*i-1; t1:=3*i-4;t2:=t2*(-1); to1:=to1+d2*t2/d1/t1; d2 :=d2*po1/3/(i+1); end; end; to1:=to1*4+(x-1)+(x-1)*(x-1)*(x-1)*(x-1)/4; Memo1.Lines.Add(' Y('+FloatToStr(x)+') =' +FloatToStr(to1)); end;
x∈R .
2. (1 + 4 x 2 ) y ' '−8 y = 0 . Sol.: y = a0 [1 + 4 x 2 ] + ∞
a1 ∑
( −1) k +1 2 2 k x 2 k +1 2 k 2 −1
k =1
. x <1. 2
3. (1 + x 2 ) y ' '−4 xy ' + 6 y = 0 . Sol.: y = a0 [1 − 3 x 2 ] + a1[ x − 1 x 3 ] . x ∈ R . 3
4. ( x − 9) y ' '+3 xy '−3 y = 0 . 2
Sol.: y = a0 [1 +
∞
∑
k =1
[357L( 2 k +1)] x 2 k (18) k ( 2 k −1) k !
]+
x < 3.
a1 x . 5. 2 y ' '+ xy '−4 y = 0 .
Sol.: y = a0 [1 + x 2 + 1 x 4 ] + 12
∞
a1 ∑
k =1 2
3( −1) k x 2 k +1 2 2 k k !( 2 k − 3)( 2 k −1)( 2 k +1)
. ∀x finita.
6. (1 + 2 x ) y ' '−5 xy '+3 y = 0 . Sol.: ∞
y = a0 [1 + ∑
k =1
3( −1) k [( −1)37L( 4 k − 5)] x 2 k 2 k k !( 2 k − 3)( 2 k −1)
a1[ x + 13 x 3 ] .
x <
]+
1 2
7. Programar en Delphi un código que sume las series anteriores. Solución: para la Ecuación (9) se tiene: h:=(bb-aa)/NNT; // supongamos que a0=1 y a1=1 for i:=0 to NNT do // NNT=20; NN=200
F. Antoine S.
A. Sangiacomo C.
38
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
CAPÍTULO 2 Objetivo: Conocer y estudiar los métodos de multipaso [alta precisión] y hacer aplicaciones. Estudiar los métodos numéricos ampliados a sistemas EDO y de orden Mayor.
Uniendo estos punto se tiene una figura, así:
2.0. SOLUCIÓN DE ECUACIONES DIFERENCIALES que es una solución aproximada. ORDINARIAS CON VALOR INICIAL POR MÉTODOS DE 2.1. Método de Multipaso ALTA PRECISIÓN Como se dispone de la solución aproximada en cada uno de los La idea es que dado unas puntos de red t0 , t1 , .., ti antes primeras soluciones por cualquier de que se obtenga la método visto anteriormente; aproximación en t y debido a i +1 pongamos por ejemplo (α 0 , y (α 0 )) , que el error w j − y (t j ) tiende a (α1 , y (α1 )) , (α 2 , y (α 2 )) y incrementar con j, es razonable (α 3 , y (α 3 )) , con estos, por medio desarrollar métodos que usen de una extrapolación adecuada se estos datos anteriores, que sean consigue un nuevo valor más precisos, cuando se (α 4 , y (α 4 )) , y con este último otro aproxima la solución en ti +1 . (α 5 , y (α 5 )) así sucesivamente hasta Los métodos que utilizan ( x p , y ( x p )) . . . ( xn , y ( xn )) . aproximaciones en más de un punto anteriores de red para determinar la aproximación en el punto siguiente se llama método F. Antoine S.
A. Sangiacomo C.
39
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
de multipaso. La definición precisa de estos métodos se da a continuación, junto con la definición de los dos tipos de método de multipaso.
wi +1 proporciona a explícitamente en función de valores determinados previamente. Cuando bm ≠ 0 , el método se denomina método implícito o cerrado ya que wi +1 aparece en ambos lados de la 2.1.1. Definición Un método multipaso para ecuación (2) y está determinado resolver el problema de valor sólo de una manera implícita. inicial 2.2. Método de Extrapolación de ′ y = f (t , y ) , a ≤ t ≤ b , Adams (cuarto orden). y (a ) = α . (1) Supongamos que se da la Es aquel cuya ecuación de ecuación diferencial diferencia para encontrar la aproximación wi +1 en el punto de y′ = f (t , y ) a ≤ t ≤ b , , red ti +1 puede representarse con y (a ) = α . (3) la siguiente ecuación, donde m es Se necesita hallar la solución de un entero mayor que 1: esta ecuación en el segmento wi +1 = am −1wi + am − 2 wi −1 + ... + ao wi +1− m [ a, b] . + h[bm f (ti +1 , wi +1 ) + bm −1 f (ti , wi ) Dividimos el segmento [ a, b] en n + ... + b0 f (ti +1− m , wi +1− m )] (2) partes iguales por los puntos ti = t0 + ih , i = 0, 1, …, n. i = m − 1 para , m, …, N-1, donde Elijamos el segmento [ x , x ] , i i +1 los valores iniciales integramos la ecuación w0 = α , w1 = α1 , w2 = α 2 , diferencial ordinaria (3); entonces obtenemos …, wm −1 = α m −1 , t i +1 yi +1 = yi + ∫ y ′dt , ti están especificados y h = (b − a) / N . Cuando bm = 0 el método se o bien denomina método explícito o t i +1 y ′dt Δyi = ∫ (4) abierto y la ecuación (2) ti F. Antoine S.
A. Sangiacomo C.
40
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
Para hallar la derivada hagamos Entonces para toda diferencia uso de la segunda fórmula de tenemos Δm qi = hΔm yi′ y nos interpolación de Newton (hacia queda atrás, limitándonos en este caso por las diferencias de tercer Δy = q + 1 Δq + 5 Δ2q + 3 Δ3q . i i 2 i −1 12 i −2 8 i −3 orden); (8)
y′ = yi′ + uΔyi′−1 + +
u (u + 1) 2 Δ yi′− 2 2!
u (u + 1)(u + 2) 3 Δ yi′−3 , 3!
donde u = (t − ti ) / h o bien
Con
ayuda
de la fórmula yi +1 = yi + Δyi obtenemos la (5) solución de ecuación diferencial. La fórmula (8) lleva el nombre de fórmula de extrapolación de Adams.
(u 2 + u ) 2 Δ yi′− 2 y′ = yi′ + uΔyi′−1 + 2
Para el comienzo del proceso se necesita cuatro valores iniciales u 3 + 3u 2 + 2u 3 + Δ yi′− 3 , (5’) y , y , y y y3 , o sea, el 1 0 2 6 llamado segmento inicial que Sustituyendo la expresión para y′ puede ser hallado partiendo de la de (5’) en (4) y recordando que condición inicial (3) con la dt = hdu , tenemos utilización de uno de los métodos conocidos de paso uno. Por 1⎛ u2 + u 2 Δyi = h ∫ ⎜ yi′ + uΔyi′−1 + Δ yi′− 2 ejemplo Runge-Kutta. 0 ⎜ 2 ⎝
+
⎞ u 3 + 3u 2 + 2u 3 Δ yi′−3 ⎟du ⎟ 6 ⎠
5h 2 ′ = hyi′ + h2 Δyi′−1 + 12 Δ yi − 2 + 38h Δ3 yi′− 3
(6)
Para facilitar los cálculos designemos a continuación
F. Antoine S.
q0 = hy0′ = hf (t0 , y0 ) ;
q1 = hy1′ = hf (t1 , y1 ) ; q2 = hy2′ = hf (t 2 , y2 ) ;
q3 = hy3′ = hf (t3 , y3 ) ;
qi = h ⋅ yi′ = h ⋅ f (ti , yi ) ,
i = 0, 1, …, n.
Conociendo y0 , y1 , y2 y y3 , se puede determinar
(9)
(7) A. Sangiacomo C.
41
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
Luego construimos la tabla de último valor de y es y3 , con ello diferencias de la magnitud q (vea se obtiene la tabla 5). 5 2 Δy3 = q3 + 12 Δq2 + 12 Δ q1 + 83 Δ3q0 . I
ti
yi
Δyi
yi′ = f (ti , yi )
q = hyi′
(1)
(2)
(3)
(4)
(5)
(6)
0
t0
y0
f (t0 , y0 )
q0
1
t1
y1
f (t1 , y1 )
q1
2
t2
y2
f (t 2 , y2 )
q2
3
t3
y3
f (t3 , y3 )
q3
4
t4
y4
5
t5
6
t6
Δy3
f (t 4 , y4 ) , q4 , Δq3 , Δ2 q2 , Δ3q1 , o Van Δqi
Δ2 qi
Δ3qi
(1)
(7)
(8)
(9)
0
Δq0
Δ2 q0
Δ3q0
1
Δq1
Δ2 q1
2
Δq2
I Viene
3 4 5 6
El valor obtenido Δy3 se apunta en la tabla 5 en el primer recuadro marcado y se halla y4 = y3 + Δy3 , y se coloca en el recuadro marcado oscuro. Con ese valor y el de t 4 se calcula sea, se obtiene una nueva diagonal. Basándose en estos datos se halla 5 2 Δy4 = q4 + 12 Δq3 + 12 Δ q2 + 83 Δ3q1 .
Y así se prolonga la tabla hasta los valores deseados. 2.2.1. Ejemplo
Calcular el valor y (1.5) en la Tabla 5. ecuación diferencial ordinaria ′ y (0) = 1.5 , El método de Adams consiste en y = y − t , 0 ≤ t ≤ 1.5 , y la prolongación de la tabla con exactitud de hasta 0.01, por diagonal de diferencias con el método de Adams ayuda de (9). Usando los números q3 , Δq2 , Δ2 q1 , Δ3q0 que Solución: se disponen en la tabla 5 en Usando la fórmula (16) de diagonal, con ayuda de la Runge-Kutta o un método fórmula (9), suponiendo n = 3, el abreviado como F. Antoine S.
A. Sangiacomo C.
42
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
h 4 < 0.01 ,
o sea, h = 0.25. Calculando por Runge-Kutta y0 , y1 , y2 y y3 , tenemos: i 0 1 2 3 4 5 6
ti 0.000000 0.250000 0.500000 0.750000 1.000000 1.250000 1.500000
vienen … …
Δyi
yi 1.500000 1.892008 2.324350 2.808479 3.358833 3.994338 4.739255
q = hyi′ 0.375000 0.410502 0.456087 0.514620 0.589708 0.686085 0.809814
0.550354 0.635505 0.744917 0.000000
Δqi
yi′ = f (ti , yi )
1.500000 1.642008 1.824350 2.058479 2.358833 2.744338 3.239255
Δ2 qi
0.035502 0.045585 0.058532 0.075089 0.096376 0.123729
0.010083 0.012947 0.016556 0.021288 0.027353
van … …
Δ3qi 0.002864 0.003609 0.004731 0.006065
Tabla 6
Como se ve el resultado es y (1.5) = 4.739255 . ♣ 2.2.2. Programa
en Delphi Pascal
unit Adam_Rug_x1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type _r = Extended; _i = integer; _s = String; _v=array[1..10] of _r; _M=array[1..21] of _v; F. Antoine S.
TForm1_Adams_runge = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; Memo1: TMemo; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; RadioGroup1: TRadioGroup; RadioButton1: TRadioButton; CheckBox1: TCheckBox; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); end; var Form1_Adams_runge: TForm1_Adams_runge; implementation
{$R *.DFM} Var a,b,c,x,y,y0,y1,y2,z,t,t1,t2,h,k1,k2,k3,k4:_r; i,j,k,n,m,lx:_i; v1,v2,v3:_v; m1,ma:_m; d,s, ang:string; Function fxy(t,y: _r):_r; {función de cálculo} Begin {CAMBIAR AQUÍ LA FUNCIÓN DE LA EC. DIFERENCIAL} {===========================} fxy:=y-t {===========================} End; Procedure recal; Begin k1:=h*fxy(t,y); if true {s='1'} then begin k2:=h*fxy(t+h/2, y+k1/2); k3:=h*fxy(t+h/2, y+k2/2); k4:=h*fxy(t+h, y+k3); t:=t+h; y:=y +(k1+2*k2+2*k3+k4)/6; End; if s='2' then begin k2:=h*fxy(t+h/2, y+k1/2); k3:=h*fxy(t+h/2, y+k1/4+k2/4); k4:=h*fxy(t+h, y-k2+2*k3); t:=t+h; y:=y +(k1+4*k3+k4)/6; End; End; Procedure pro2; var as1:_i; Begin {cuerpo de ejecución del método de Runge-Kutta4 } n := StrToInt(Form1_Adams_runge.Edit4.Text); if n>20 then n:=20; y:=y0; t:=t1; h:=(t2-t1)/n; as1:=0; ma[as1+1,1]:=0;ma[as1+1,2]:=t; ma[as1+1,3]:=y; Repeat a:=y; recal;ma[as1+2,1]:=as1+1; ma[as1+2,2]:=t; ma[as1+2, 3]:=y; ma[as1+1,5]:=k1/h; ma[as1+1,6]:=k1; as1:=as1+1; Until (as1>3); End; procedure TForm1_Adams_runge.BitBtn2Click(Sender: TObject); begin close; end; Procedure Publicar; var i,j:_i; Begin A. Sangiacomo C.
43
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
Form1_Adams_runge.Memo1.Lines.Add( ' Método de Adams 4to Orden'); Form1_Adams_runge.Memo1.Lines.Add( ' i ti '+ 'yi Ayi y''i q'+ ' Aq AAq AAAq'); for i:=1 to n+1 do Begin s:=''; For j:=1 to 9 do begin str(ma[i,j]:1:8,d); s:=s+' '+d; end; Form1_Adams_runge.Memo1.Lines.Add(s); End; End;
orden, y desarrollando las diferencias finitas, como sigue
procedure TForm1_Adams_runge.BitBtn1Click(Sender: TObject); begin fillchar(ma,sizeof(ma),0); t1 := StrToFloat(Edit1.Text); t2 := StrToFloat(Edit2.Text); y0 := StrToFloat(Edit3.Text); pro2; if CheckBox1.Checked then Memo1.Clear; For i:=1 to 3 do Begin For j:=1 to 4-i do Begin ma[j, 6+i] :=ma[j+1, 5+i]-ma[j, 5+i] end End; i:=3; Repeat i:=i+1; k2:=ma[i, 6]+ma[i-1, 7]/2 +5*ma[i-2, 8]/12+3*ma[i-3, 9]/8; ma[i, 4]:=k2; ma[i+1, 3]:=k2+ma[i,3]; ma[i+1, 2]:=t; ma[i+1, 1]:=i; ma[i+1, 5]:=fxy(t,ma[i+1, 3]); ma[i+1, 6]:=h*ma[i+1, 5]; ma[i, 7] :=ma[i+1, 6]-ma[i, 6]; ma[i-1, 8] :=ma[i, 7]-ma[i-1, 7]; ma[i-2, 9] :=ma[i-1, 8]-ma[i-2, 8]; t:=t+h Until (t>t2+h/1000); Memo1.Lines.Add('===================='); Publicar; end;
para cada i = 3, 4, …, N-1, definen un método explícito de cuatro pasos.
procedure TForm1_Adams_runge.FormCreate(Sender: TObject); begin Memo1.Clear; CheckBox1.Checked:=true; end; end.
Siguiendo las mismas ideas podemos definir de otra manera, tomando el nombre de método Adams-Bashforth de cuarto
w0 = α , w1 = α1 , w2 = α 2 , w3 = α 3 , h wi +1 = wi + 24 [55 f (ti , wi )
− 59 f (ti −1 , wi −1 ) + 37 f (ti − 2 , wi − 2 )
− 9 f (ti − 3 , wi − 3 )] ,
(10)
2.2.3. Algoritmo del Método de Adams de Cuarto Orden Paso 1: Definir f (t , y ) { y ′ = f (t , y ) } Paso 2: Entrar a, b, N {intervalo y número de intervalos} Paso 3: Entrar y0 {condiciones iniciales} Paso 4: Hacer h = (b − a ) / N
t=a w = y0 Publicar (t, w) Paso 5: Para i = 1 hasta 3 Hacer Paso 6: k1 = hf (t , w) Paso 7: k 2 = hf (t + h , w + 1 k1 ) 2 2 Paso 8: k3 = hf (t + h , w + 1 k 2 ) 2
2
Paso 9: k 4 = hf (t + h, w + k3 ) Paso 10: w = w + 1 [ k1 + 2k 2 + 2k3 + k 4 ] 6
Paso 11: Publicar (t, w) Paso 12: t = a + ih Paso 13: Para i = 4 hasta N-1 Hacer {método de multipaso}
Paso 14: h w = w + 24 [55 f (ti , wi ) − 59 f (ti −1 , wi −1 ) + 37 f (ti − 2 , wi − 2 ) − 9 f (ti − 3 , wi − 3 )]
Paso 15: Publicar (t, w) F. Antoine S.
A. Sangiacomo C.
44
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
Paso 16: t = a + ih Paso 17: Parar.
El error de truncamiento local para los métodos multipaso se puede definir análogamente al de 2.2.4. Ejemplo los métodos de un paso. Este Determinar la técnica de Adams- error da una medida de cuánto la solución de la ecuación de Bashforth de tres pasos. diferencias falla en la solución de la ecuación diferencial ordinaria. Solución: Considerando la ecuación (5): Δyi = hyi′ + h2 Δyi′−1 + 512h Δ2 yi′−2 +
3h 8
Δ3 yi′−3
2.3. Definición Si y( t ) es la solución del problema de valor inicial y′ = f (t , y ) , a ≤ t ≤ b ,
o de su forma
y (a) = α .
y (ti +1) = y (ti ) + hf (ti , y (ti ))
(12)
y
+ h2 ∇f (ti , y (ti ))
wi +1 = a m wi + a m −1 wi −1 + ... + a0 wi − m
5h 2 + 12 ∇ f (ti , y (ti )) + ...
+ h[bm +1 f (ti +1 , wi +1 ) + bm f (ti , wi ) +
... + b f (t
,w
)]
0 i−m i−m desarrollando las diferencias indicadas hacia atrás ( ∇ ) queda: es el (i+1) paso en un método de multipaso, el error de h y (ti +1) = y (ti ) + 12 [23 f (ti , y (ti )) truncamiento local en este paso − 16 f (ti −1, y(ti −1)) + 5 f (ti − 2 , y(ti − 2 ))] r es i+1
(11)
Lo ponemos en forma de ser usado numéricamente w0 = α , w1 = α1 , w2 = α 2 ,
− 16 f (ti −1 , wi −1 ) + 5 f (ti − 2 , wi − 2 )] , (11’)
F. Antoine S.
y (ti +1 ) − am y (ti ) − ... − a0 y (ti − m ) h
− [bm +1 f (ti +1 , y (ti +1 )) + bm f (ti , y (ti )) +
... + b0 f (ti − m , y (ti − m ))] (13)
h wi +1 = wi + 12 [23 f (ti , wi )
para i =2, 3, …, n-1.
ri +1 =
♥
para cada i = m, m+1, …, N-1. 2.3.1. Ejemplo
A. Sangiacomo C.
45
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
Para determinar el error de truncamiento local del método de Adams-Bashforth de tres pasos del ejemplo anterior consideramos la forma del error h
m +1 ( m )
f
1⎛ − s ⎞ (qi , y (qi ))(−1) m ⎜⎜ ⎟⎟ds 0 m
∫
⎝
⎠
Demos una relación de métodos de multipaso 2.3.2. Método de AdamsBashforth de Dos Pasos:
,
(14)
w1 = α1 ,
w0 = α ,
wi +1 = wi + h2 [3 f (ti , wi ) − f (ti −1, wi −1 )]
(15)
donde ti < qi < ti +1 . para i = 1, 2, 3, …, N-1, con error Usando el hecho de que m = 3 de truncamiento local 2 tenemos ( 3 ) r = 5h y ( q ) . i +1
1⎛ − s ⎞ h 4 f (3) (qi , y (qi ))(−1)3 ∫ ⎜⎜ ⎟⎟ds = 0 3 ⎝ ⎠ 4 3h (3) = f (qi , y (qi )) . 8
Donde 1⎛ − s ⎞ 1 − s ( − s − 1)( − s − 2)( − s − 3)! (−1) 3 ∫ ⎜⎜ ⎟⎟ds = − ∫ ds 0 3 0 3!(− s − 3)! ⎝ ⎠
3 = 8
12
i
2.3.3. Método de AdamsBashforth de tres pasos: w0 = α , w1 = α1 , w2 = α 2 , h wi +1 = wi + 12 [ 23 f (ti , wi )
− 16 f (ti −1 , wi −1 ) + 5 f (ti − 2 , wi − 2 )]
(16)
Como f (3) (qi , y (qi )) = y ( 4) (qi ) y la para cada i = 2, 3, 4, …, N-1, con ecuación diferencial ordinaria error 3 de truncamiento local ri +1 = 3h8 y ( 4) (qi ) . derivada en el ejemplo anterior ri +1 =
y (ti +1 ) − y (ti ) 1 − 12 [23 f (ti , y (ti )) h
− 16 f (ti −1 , y (ti −1 )) + 5 f (ti − 2 , y (ti − 2 ))] ⎛ 3h 4 (3) ⎞ 3h 3 ( 4) = 1h ⎜ f (qi , y ( qi )) ⎟ = y (qi ) . ⎜ 8 ⎟ 8 ⎝ ⎠
♣
F. Antoine S.
2.3.4. Método de AdamsBashforth de Cuatro Pasos: Ver fórmula (10), con error de truncamiento local 4 h ri +1 = 251 y (5) ( qi ) . 720
A. Sangiacomo C.
46
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
2.3.5. Método de AdamsBashforth de Cinco Pasos: para i = 1, 2, 3, …, N-1, con error de truncamiento local 3 ( 4) w0 = α , w1 = α1 , ri +1 = − h24 y (qi ) . w2 = α 2 , w3 = α 3 , 2.3.7. Método de Adamsw4 = α 4 Moulton de Tres Pasos: h wi +1 = wi + 720 [1901 f (ti , wi )
− 2774 f (ti −1 , wi −1 ) + 2616 f (ti − 2 , wi − 2 ) − 1274 f (ti −3 , wi −3 ) + 251 f (ti − 4 , wi − 4 )] (18)
w0 = α , w1 = α1 , w2 = α 2 , h wi +1 = wi + 24 [9 f (ti +1, wi +1 ) + 19 f (ti −1, wi −1 )
− 5 f (ti −1 , wi −1 ) + f (ti − 2 , wi − 2 )] para cada i = 4, 5, …, N-1, con (21) error de truncamiento local h 5 (6) para cada i = 2, 3, 4, …, N-1, con ri +1 = 95 y (qi ) . 288 error de truncamiento local Los métodos de multipaso r = − 19h 4 y (5) (q ) . i +1 i 720 implícitos se construyen usando (ti +1 , f (ti +1 , y (ti +1 ))) como un nodo 2.3.8. Método de Adamsde interpolación adicional en la Moulton de Cuatro Pasos: aproximación de la integral t i +1
∫t
i
f (t , y (t ))dt .
(19)
También mostramos una relación de los más usados. 2.3.6. Método de AdamsMoulton de Dos Pasos: w0 = α ,
w1 = α1 ,
h wi +1 = wi + 12 [5 f (ti +1, wi +1 ) + 8 f (ti , wi )
− f (ti −1, wi −1 )]
(20) F. Antoine S.
w0 = α , w1 = α1 , w2 = α 2 , w3 = α 3 , wi +1 = wi +
h [251 f 720
(ti +1, wi +1 )
+ 646 f (t i , wi ) − 264 f (t i −1 , wi −1 )
+ 106 f (ti − 2 , wi − 2 ) − 19 f (ti − 3 , wi − 3 )] (22)
para cada i = 3, 4, …, N-1, con error de truncamiento local 3h 5 ( 6 ) ri +1 = − 160 y ( qi ) . 2.4. Método de Milne A. Sangiacomo C.
47
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
Un método particular que resulta cuando un polinomio regresivo de Newton se integra sobre [ti − 3 , ti +1 ] es el método explícito denominado método de Milne. Al igual que el método de RungeKutta, el de Milne es un método de exactitud elevada. Supongamos que en el segmento [ a , b] se necesita hallar la solución numérica de la ecuación diferencial ordinaria
y ′ = f ( t , y) , a ≤ t ≤ b , y(a ) = α .
(23)
(25)
ui = yi − 2 + h3 ( wi′ + 4 yi′−1 + yi′− 2 ) , (26)
donde wi′ = f (ti , wi ) . Con el fin de deducir las fórmulas de Milne (25 y 26) utilicemos la primera fórmula de interpolación de Newton para la derivada y ′ en cierto punto escogido t k . En este caso nos limitamos por las diferencias de tercer orden; esto es equivalente al hecho de que la integral y = y( t ) de la ecuación diferencial ordinaria (23) se aproxima por un polinomio de cuarto grado. Tenemos
Dividamos el segmento [ a , b] en n partes iguales por los puntos ti = a + ih , donde h = (b − a ) / n , i = 0, 1, …, n, en el paso de integración. Utilizando los datos iniciales, y′ = yk′ + qΔyk′ + q(q − 1) Δ2 yk′ 2! encontramos por un método q (q − 1)(q − 2) 3 + Δ yk′ . cualquiera los primeros valores 3! y1 = α1 , y2 = α 2 , sucesivos y3 = α 3 de la función buscada resolviendo y(t ) .
(27)
y′ = yk′ + qΔyk′ + 12 (q 2 − q )Δ2 yk′
Las aproximaciones wi y u j + 16 (q 3 − 3q 2 + 2q) Δ3 yk′ (28) para los siguientes valores de yi con i = 4, 5, …, n, se determinan donde q = (t − t ) / h . k sucesivamente con ayuda de las Suponiendo en (28) que k = i − 4, fórmulas de Milne obtenemos 4h wi = yi − 4 + 3 (2 yi′−3 − yi′− 2 + 2 yi′−1 ) , F. Antoine S.
A. Sangiacomo C.
48
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
y′ = yi′− 4 + qΔyi′− 4 + 12 (q 2 − q )Δ2 yi′− 4
+ 16 (q 3 − 3q 2 + 2q )Δ3 yi′− 4 .
Integrando esta última respecto a t entre ti − 4 y ti ti
∫t
y′dt = ∫
i −4
ti t i −4
entonces, sustituyendo en (30), resulta la primera fórmula de (29) Milne (25) con
wi = yi − 4 + 43h (2 yi′− 3 − yi′− 2 + 2 yi′−1 ) ,
Ahora poniendo en (29) k = i − 2 e integrando con respecto a t entre ti − 2 y ti nos resulta:
[ yi′− 4 + qΔyi′− 4
+ 12 (q 2 − q)Δ2 yi′− 4 + 16 (q 3 − 3q 2 + 2q )Δ3 yi′− 4 ]dt .
y′ = yi′− 2 + qΔyi′− 2 + 12 (q 2 − q )Δ2 yi′− 2
+ 16 ( q 3 − 3q2 + 2q ) Δ3 yi′− 2 . (31)
Recordando que q = (t − ti − 4 ) / h y donde q = (t − ti − 2 ) / h . dt = hdq , tenemos 2 ti yi − yi − 4
4 4 = h ⎡ yi′− 4 ∫ dq + Δyi′− 4 ∫ qdq ⎢⎣ 0 0
∫t
i−2
y′dt = h ∫ [ yi′− 2 + qΔyi′− 2 0
+ 12 (q 2 − q )Δ2 yi′− 2 + 16 (q3 − 3q 2 + 2q)Δ3 yi′− 2 ]dt .
4
+ 12 Δ2 yi′− 4 ∫ (q 2 − q )dq
(
0
yi − yi − 2 = h 2 yi′− 2 + 2Δyi′− 2 + 13 Δ2 yi′− 2
+ 16 Δ3 y′ i − 4 ∫ (q 3 − 3q 2 + 2q )dq ⎤ . ⎥⎦ 0 4
yi − yi − 4 = h(4 yi′− 4 + 8Δyi′− 4 + 20 Δ2 yi′− 4 + 83 Δ3 yi′− 4 3
)
),
(32)
y llegamos a (26) yi = yi − 2 + h3 ( yi′ + 4 yi′−1 + 2 yi′− 2 ) ,
(30)
Usando la definición diferencia finita
donde para yi′ = f (ti , wi ) , de haciendo wi′ = yi′ se tiene
Δyi′−4 = yi′−3 − yi′−4 ,
Δ2 yi′−4 = yi′−2 − 2 yi′−3 + yi′−4
y
ui = yi − 2 + h3 ( wi′ + 4 yi′−1 + yi′− 2 ) . (26)
2.4.1. Ejemplo
Δ3 yi′−4 = yi′−1 − 3 yi′−2 + 3 yi′−3 − yi′−4 ,
F. Antoine S.
A. Sangiacomo C.
49
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
Resolver y ′ = y − t , 0 ≤ t ≤ 1.5 , diferencial ordinaria (EDO) de y (0) = 1.5 , por el método de orden mayor en un sistema de y EDO de primer orden. Milne i 0 1 2 3 4 5 6
i 0 1 2 3 4
ti
yi
0.0000 0.2500 0.5000 0.7500 1.0000 1.2500 1.5000
1.5000 1.8920 2.3243 2.8084
vienen …
yi′ = f (ti , yi )
1.5000 1.6420 1.8243 2.0585
∈i
ui
wi
wi
van …
0.0000 0.0000 0.0000 0.0000 3.3588 3.9947 4.7402
2.3588 2.7447 3.2402 yi
yi′
…
3.3590
2 ⋅10 −4
3.3590
2.3590
5
3.9950
3 ⋅10 −4
3.9950
2.7450
6
4.7406
−4
4.7406
4 ⋅10
Tabla 7.
Problema
Un sistema de orden m de problemas de valor inicial de primer orden se puede expresar en la forma ⎧ du1 ⎪ dt = f1 (t , u1 , u 2 ,..., u m ) ⎪ du ⎪ 2 = f 2 (t , u1 , u 2 ,..., um ) ⎨ dt ⎪L L L L L ⎪ dum = f m (t , u1 , u2 ,..., u m ) ⎪ ⎩ dt
(1)
para a ≤ t ≤ b , con las condiciones iniciales u1 ( a ) = α1 ,
u 2 (a) = α 2 ,
(2) …, u m (a) = α m . Deduzca la fórmula de AdamsBashforth de orden cinco. La idea aquí es hallar m Sugerencia: Usar un término más funciones u1 , u 2 , …, u m que de satisfagan las ecuaciones la ecuación (5) o (5’). diferenciales del sistema y las 2.5. Ecuaciones de Orden Mayor condiciones iniciales. y Sistemas de Ecuaciones Discutiremos la existencia y unicidad de las soluciones de los Diferenciales Ordinarias sistemas de ecuaciones, Resolveremos en esta parte las extendiendo la definición de las ecuaciones diferenciales de orden condiciones de Lipschitz para mayor sujetas a condiciones funciones de varias variables.
iniciales. Las técnicas que discutiremos se limitan a aquellas 2.5.1. Definición que transforman una ecuación F. Antoine S.
A. Sangiacomo C.
50
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
que la función Supongamos que D = {(t , u1,..., um ) f (t , y1 , y 2 ,..., y m ) , definida en el a ≤ t ≤ b, − ∞ < ui < ∞, para cada conjunto i = 1,2,..., m} y sea f i (t , u1 , u 2 ,..., u m ) , para cada D = {(t , u1,..., um ) a ≤ t ≤ b, − ∞ < ui < ∞, para cada i = 1,2,..., m} i = 1, 2, ..., m continua en D y tal que satisface la condición de satisface la condición de Lipschitz ahí. El sistema de Lipschitz de D en las variables ecuaciones diferenciales u1 , u2 , …, um si existe una ordinarias de primer orden (1) constante L > 0 con la propiedad sujetas a las condiciones iniciales (2) tiene una solución única u1 (t ) , de que u 2 (t ) , …, u m (t ) para a ≤ t ≤ b . f (t , u , u ,..., u ) − f (t , z , z ,..., z ) < Se
dice
1
2
m
1
2
m
m
< L⋅∑ uj − zj
(3)
j =1
para
toda
(t , u1 , u 2 ,..., u m )
y
(t , z1 , z 2 ,..., z m ) de D. Usando el teorema del Valor Medio, se puede demostrar que si f y sus primeras derivadas parciales son continuas en D y si ∂ f (t , u1 , u2 ,..., u m ) ≤L ∂ ui
Los métodos para resolver sistemas ecuaciones diferenciales ordinarias de primer orden son generalizaciones de los anteriores métodos para una sola variable de ecuaciones de primer orden. Por ejemplo, el método de Euler, Heun o el de Runge-Kutta de cuarto orden; usados para resolver el problema de valor inicial y ′ = f (t , y ) , y (a) = α .
a ≤t ≤b,
ahora cada i = 1, 2, …, m y toda (t , u1 , u 2 ,..., u m ) en D entonces f Tomaremos por esta oportunidad el de Runge-Kutta dado por satisface la condición de w0 = y0 = α Lipschitz L. 2.5.2. Teorema
F. Antoine S.
k1 = hf (ti , wi )
k 2 = hf (ti + h2 , wi + 12 k1 ) A. Sangiacomo C.
51
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
k3 = hf (ti + h2 , wi + 12 k 2 )
k 4 = hf (ti + h, wi + k3 ) wi +1 = wi + 16 [k1 + 2k 2 + 2k3 + k 4 ]
valores w1, j +1 , w2, j +1 , …, wm, j +1 . Para ello calculamos los valores de los k p,q , p = 1, 2, 3 y 4; q = 1, 2, …, m.
para cada i = 0, 1, …, N-1. Usados para resolver el problema k1,i = hf i (t j , w1, j , w2, j ,..., wm, j ) , (5) de valor inicial k2,i = hf i (t j + h2 , w1, j + 12 k1,1, w2, j
y ′ = f (t , y ) , a ≤ t ≤ b , y (a ) = α ,
+ 12 k1, 2 ,..., wm, j + 12 k1, m )
(6)
k3,i = hfi (t j + h2 , w1, j + 12 k2,1, w2, j
se puede generalizar así Escogemos un entero N > 0 y h = (b − a ) / N tomamos para dividir el intervalo [ a , b] en N subintervalos con puntos de red
+ 12 k 2, 2 ,..., wm, j + 12 k2, m )
(7)
k 4, i = hf i (t j + h, w1, j + k3,1 , w2, j + k3, 2 ,..., wm, j + k3, m )
(8)
t j = a + jh , para cada j = 0, 1, …, N. y
wi , j +1 = wi , j + 16 (k1,i + 2k 2,i + 2k3,i + k 4,i )
Usaremos la notación wi, j para denotar una aproximación de ui (t j ) para cada j = 0, 1, …, N e i = 0, 2, …, m; esto es, wi, j aproximará a la i-ésima solución ui (t j ) de (1) el j-ésimo punto de red t j . Para las condiciones iniciales, tomamos w1,0 = α1 ,
w2,0 = α 2 ,
…, wm,0 = α m .
para cada i = 1, 2, …, m. Debe notarse que k1,1 , k1,2 , …, k1, m debemos ser calculados antes de que k 2, i para cada i = 1, 2, …, m, etc.
2.5.3. Algoritmo de Runge-Kutta para Sistemas de Ecuaciones Diferenciales Ordinarias de (4) primer orden
Ahora construimos el proceso iterativo con los valores w1, j , w2, j , …, wm, j para obtener los F. Antoine S.
(9)
Paso 1: Definir f i (t , u1 , u 2 ,..., u m ) { i = 1, …, m} Paso 2: Entrar a , b; {Límites del intervalo} Entrar α1 ,...,α m {condiciones iniciales} Entrar N {número de particiones} Paso 3: Hacer h = (b − a ) / N A. Sangiacomo C.
52
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
t=a
Paso 4: Para k = 1 hasta m hacer wk = α k . Paso 5: Publicar (t , w1 , w2 , ..., wm ) Paso 6: Para i = 1 hasta N hacer Paso 7: Para j = 1 hasta m hacer
k1, j = hf j (t , w1 , w2 ,..., wm )
Paso 8: Para j = 1 hasta m hacer
k 2, j = hf j (t + h2 , w1 + 12 k1,1 , w2
+ 12 k1,2 ,..., wm + 12 k1, m ) Paso 9: Para j = 1 hasta m hacer
k3, j = hf j (t + h2 , w1 + 12 k 2,1 , w2
+ 12 k 2, 2 ,..., wm + 12 k 2, m )
así obtenemos el sistema de Primer orden ⎧ du1 dy ⎪ dt = dt = u 2 ⎪ du dy ′ ⎪ 2 = = u3 dt ⎪ dt ⎪⎪L L L L ⎨ dum −1 dy ( m − 2) = um ⎪ dt = dt ⎪ ( m −1) ⎪ dum = dy = y ( m) ⎪ dt dt ⎪ = f (t , y, y ′,..., y ( m −1) ) = f (t , u1 ,..., um ) ⎩⎪
Paso 10: Para j = 1 hasta m hacer
k 4, j = hf j (t + h, w1 + k3,1 , w2
+ k3, 2 ,..., wm + k3, m ) Paso 11: Para j = 1 hasta m hacer w j = w j + 16 ( k1, j + 2k 2, j + 2k3, j + k 4, j ) Paso 12: Hacer t = a + ih Paso 13: Publicar (t , w1 , w2 , ..., wm )
Paso 14: Parar.
y las condiciones iniciales son u1 (a) = y (a) = α1 , u 2 (a ) = y ′(a ) = α 2 ,
…,
u m (a) = y ( m −1) = α m .
2.5.4. Ejemplo
.
Para convertir una ecuación Resolver la ecuación diferencial diferencial ordinaria general de ordinaria de segundo orden orden m de la forma y ' '−2 y '+2 y = e 2t sin(t ) , 0 ≤ t ≤ 1 , y ( m ) (t ) = f (t , y , y ′,..., y ( m −1) ) ,
a≤t ≤b,
con
condiciones iniciales y (0) = −0.4 , y ′(0) = −0.6 .
con
condiciones iniciales y ( a ) = α1 , y ′(a) = α 2 , …, Solución: y ( m −1) (a) = α m , en un sistema de Hacemos u1 (t ) = y (t ) , u 2 (t ) = y ′(t ) , ecuaciones diferenciales de la transformándose en el sistema forma (1) y (2), se toma una ⎧u1′ (t ) = u 2 (t ) nueva variable u1 (t ) = y (t ) , ⎨ 2t ⎩u 2′ (t ) = e sin(t ) + 2u2 (t ) − 2u1 (t ), u 2 (t ) = y ′(t ) , …, u m (t ) = y ( m −1) (t ) . Y
F. Antoine S.
A. Sangiacomo C.
53
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
con
condiciones iniciales u1 (0) = −0.4 , u 2 (0) = −0.6 . Ahora usamos el algoritmo de Runge-Kutta anterior para aproximar la solución de la ecuación diferencial ordinaria. Si tomamos N = 10, h = 0.1. w1 = −0.4 ,
− 2( w1 (t0 + h2 ) +
2t 0
= 0.1 ⋅ [e
k 4, 2 = h[e 2(t 0 + h ) sin (t0 + h)
+ 2( w2 (t0 + h) + k3, 2 ) − 2( w1 (t0 + h) + k3,1 )]
w2 = −0.6
= −0.02178637298
k 2,1 = h[ w2 (t 0 + h2 ) + 12 k1, 2 ] = 0.1 ⋅ (−0.6 − 12 (0.04)) = −0.062 2 (t 0 + h2 )
+
w1 = w1 + 16 (k1,1 + 2k 2,1 + 2k3,1 + k 4,1 ) = −0.4617333423
w2 = w2 + 16 (k1, 2 + 2k 2, 2 + 2k3, 2 + k 4, 2 )
sin(0) + 2(−0.6) − 2( −0.4)]
= −0.04
k 2, 2 = h[e
k1, 2 2
sin (t0 + h2 ) + 2( w2 (t0 + h2 )
) − 2( w1 (t0 + h2 ) +
k1,1
)]
2
= h[e0.3sin(0.15) + 2(−0.6 − 0.03) − 2(−0.4 − 0.02)]
= −0.0324754475 7 k3,1 = h[ w2 (t0 + h2 ) +
k 2, 2 2
)]
k 4,1 = h[ w2 (t 0 + h) + k3,2 ] = −0.06315240924
sin (t 0 ) + 2 w2 (t 0 ) − 2 w1 (t 0 )]
2⋅0
2
= −0.03152409237
k1,1 = h[ w2 (t 0 )] = 0.1 ⋅ (−0.6) = −0.06 y k1, 2 = h[e
k2,1
= −0.6316312421
En la tabla se muestra los resultados que siguen del problema: N
ti
w1, i
w2, i
yi
0 1 2 3 4 5 6 7 8 9 0
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
-0.4000000000 -0.4617333423 -0.5255598832 -0.5886014356 -0.6466123060 -0.6935666553 -0.7211518991 -0.7181529518 -0.6697113266 -0.5564429025 -0.3533988604
-0.6000000000 -0.6316312421 -0.6401489478 -0.6136638059 -0.5365820287 -0.3887380973 -0.1443808672 0.2289970176 0.7719917959 1.5347814763 2.5787663372
-0.4000000000 -0.4617329707 -0.5255590476 -0.5886000461 -0.6466102841 -0.6935639464 -0.7211484906 -0.7181488962 -0.6697067731 -0.5564381368 -0.3533943569
yi − w1, i 0.0E 0 3.7E-7 8.4E-7 1.4E-6 2.0E-6 2.7E-6 3.4E-6 4.1E-6 4.6E-6 4.8E-6 4.5E-6
Tabla 8.
]
= −0.0612382238 k3, 2 = h[e
2 (t0 + h2 )
sin (t0 + h2 )
+ 2( w2 (t0 + h2 ) +
F. Antoine S.
k 2, 2 2
) Figura 1.
A. Sangiacomo C.
54
Capítulo 2
2.5.5. Programa en Pascal
unit Run_Siste_Va_Sim1_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TRunge_sis1 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; Label4: TLabel; Memo1: TMemo; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Label5: TLabel; Edit4: TEdit; Button1: TButton; Button2: TButton; Memo2: TMemo; Memo3: TMemo; Label6: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); Procedure Valor_Matriz(Sender: TObject); Procedure Calculo(sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); end; _r = Extended; _i = integer; _s = string; _v = array [0..30] of _r; _m = array [0..30] of _v; var Runge_sis1: TRunge_sis1; implementation
{$R *.DFM} var wj, v1, v2 : _v; kj : _m; mm, Lx : _i; nnn : _i; Lim_a, lim_b, h : _r; Matriz_s : _s; Math11 : _m; procedure TRunge_sis1.Button2Click(Sender: TObject); begin Close; end; procedure TRunge_sis1.FormCreate(Sender: TObject); begin Memo1.Clear;CheckBox1.Checked:=true; Memo1.Text:='[ 0 , 1 , 1 ]'; Memo2.Clear; end; ////////////////////Entrador de datos/////////////////////////////// function f(s:_s; x :_r) : _r; begin f:= StrToFloat(s); end;
F. Antoine S.
Método Numéricos para la Solución de Ecuaciones Diferenciales
{Convierte el string en una matriz del tipo m x (m+1) o sea: [ 2 , 4 , 6 , 7] }
Procedure TRunge_sis1.Valor_Matriz(Sender: TObject); var i,j,k, Li ,ii :_i; s : _s; procedure Minus(s:_s;var s1:_s); Var ii :_i; begin k:=length(s); ii:=0; repeat ii:=ii+1; if s[ii]=' ' then begin delete(s,ii,1); k:=k-1;ii:=ii-1; end until ii>= length(s);S1:=S end; begin minus(Matriz_s,Matriz_s); k := length(Matriz_s); ii :=0-1; j:=0; Li := 1; for i := 1 to k do if Matriz_s[i] in [ #13,#10 ] then Matriz_s[i] := ' '; minus(Matriz_s,Matriz_s); if Matriz_s[1] <> '[' then Matriz_s := '['+Matriz_s; if Matriz_s[length(Matriz_s)] <> ']' then Matriz_s := Matriz_s+']'; k := length(Matriz_s); for i := 1 to k do begin if Matriz_s[i]='[' then begin ii:=ii+1; j:=0; Li := Li +1 end; if Matriz_s[i] in [',',';',']'] then begin j:=j + 1 ; s := copy(Matriz_s,li,i-li); math11[ii,j]:= f(s,0); Li := i +1; end; end; {mmm:=ii;} nnn := j; end; ////////////////////FIN/////////////////////////////// Procedure TRunge_sis1.Calculo(sender: TObject); var m:_i; t:_r; sx1,s : _s; Procedure funcion(va:_v;var vR:_v); begin { Poner aquí el SISTEMA de EDO va[0] es t va[1] es y va[2] = y' ... por ejemplo Si fuera una Ecuación diferencial de segundo orden: y '' + 6Y ' + 8Y = 0 Se procede hacer el cambio de variable Y ' = va[2]; Y = va[1] y Y '' + 6*va[2] + 8*va[2] = 0; escribir en el} vr[1]:=va[2]; vr[2]:= - 6 * va[2] - 8 * va[1]; end; function f(ii:_i;va:_v):_r; {función de cálculo} begin funcion(va,va);f:=va[ii] end; procedure recal(vx,v:_v); var i,k:_I; procedure ir_;var j:_I; begin for j:=1 to MM do begin kj[i,j]:=h*f(j,v); end; end; begin {cálculo de los Kij[ ]} m:=0; t:=vx[1];v[30]:=0;v[29]:=200/lx; h:=(vx[2]-vx[1])/lx;wj:=v1; str(t:1:8,sx1);// memo2.Lines.Add(' Y(a) = '+ FloatToStr(wj[1])+ A. Sangiacomo C.
55
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
' Y '+chr(39)+' (a) = '+ FloatToStr(wj[2])); repeat m:=m+1 ; i:=1; v[0]:=t; for k:=1 to MM do v[k]:=wj[k]; ir_; i:=2; v[0]:=t+h/2; for k:=1 to MM do v[k]:=wj[k]+kj[1,k]/2; ir_; i:=3; v[0]:=t+h/2; for k:=1 to MM do v[k]:=wj[k]+kj[2,k]/2; ir_; i:=4; v[0]:=t+h; for k:=1 to MM do v[k]:=wj[k]+kj[3,k]; ir_; {cálculo de wij[ ]} if CheckBox2.Checked then for i:=1 to 4 do begin sx1:= ''; for k:=1 to MM do begin str(kj[i,k]:1:8,s);sx1:= sx1+' ['+intToStr(i) +','+IntToStr(k)+']='+s; end;memo2.Lines.Add(sx1); end; str(t+h:1:5,sx1);sx1:= ' t = '+sx1; for k:=1 to MM do begin wj[k]:=wj[k]+(kj[1,k]+2*kj[2,k]+2*kj[3,k]+kj[4,k])/6; str(wj[k]:1:10,s);sx1:=sx1 + ' wj['+IntToStr(k)+'] = '+s end; v[30]:=v[30]+v[29]; if v[30]>0.99 then begin memo2.Lines.Add(sx1);v[30]:=v[30]-1 end; t:=t+h; //memo2.Lines.Add(sx1); Until lx<=m; end; begin recal(v2,v1); end; procedure TRunge_sis1.Button1Click(Sender: TObject);var i:_i; begin Lim_a:= StrToFloat(Edit1.text); v2[1]:=Lim_a; Lim_b:= StrToFloat(Edit2.text); v2[2]:=Lim_b; mm := StrToInt(Edit3.text); // Número de variables // Valores iniciales Matriz_s:=Memo1.Text; Valor_Matriz(Sender); Lx := StrToInt(Edit4.text); // Número. de pasos if CheckBox1.Checked then memo2.Clear; for i:=1 to mm do begin v1[i]:= math11[0,i]; end; Calculo(Sender); end;
'Begin { Poner aquí el SISTEMA de EDO'+#13#10+ ' va[0] es t va[1] es y va[2] = y '' ... }'+#13#10+
'Vr[1] = 2*va[1] - va[2] + va[3] + va[0] / 2;' +#13#10+
'Vr[2] = -va[1] + 2*va[2] - 3*va[3] + g(va[0]);'+#13#10+ 'Vr[3] = va[2] + va[3] + va[0] * va[0];'+#13#10+ 'end;'+#13#10+#13#10+ ''+#13#10+
'Si fuera una Ecuación diferencial de segundo orden:'+#13#10+
' y '' '' + 6Y '' + 8Y = 0'+#13#10+ 'Se procede hacer el cambio de variable Y '' = va[2];’+ ’ Y = va[1] '+#13#10+ 'y Y '' '' + 6*va[2] + 8*va[2] = 0; escribir en el' +#13#10+#13#10+ 'Procedure funcion(va:_v;var vR:_v);'+#13#10+ 'begin { Poner aquí el SISTEMA de EDO'+#13#10+ ' va[0] es t va[1] es y va[2] = y '' ... }'+#13#10+ 'vr[1]:=va[2];'+#13#10+ 'vr[2]:= - 6 * va[2] - 8 * va[1];'+#13#10+ 'end;'+#13#10+#13#10+ 'Particularmente la Solución de y '' '' + 6Y '' + 8Y = 0' +#13#10+ ' y = exp(-2*t)/2 - exp(-4*t)/2'+#13#10+ 'Usted puede comparar los resultados con los de " w[1] " !!! '+#13#10+ 'Y así sucesivamente para Y '' '' '' haciendo aquí' +#13#10+ 'va[1] = y ; va[2] = y '' ; va[3] = y '' '' '+#13#10+ 'o Y '' '' '' '' '' '', haciendo ... !!! '+#13#10+ 'va[1] = y ; va[2] = y '' ; va[3] = y '' '' '+#13#10+ 'va[4] = y '' '' ''; va[5] = y '' '' '' '' ; va[6] = y '' '' '' '' '' ' +#13#10+ 'y Así sucesivamente para otras' ;//+#13#10+ memo2.Lines.Add(Matriz_s);Matriz_s :=''; memo2.Visible:=not false; end; procedure TRunge_sis1.BitBtn2Click(Sender: TObject); begin memo2.Clear; end; end.
La EDO es y ' ' + 6Y ' + 8Y = 0; para su uso procedure TRunge_sis1.BitBtn1Click(Sender: TObject); ejecute el programa y vea el auxilio. begin memo2.Clear;memo2.Visible:=false; Matriz_s := 'A U X I L I O "H E L P"'+#13#10+#13#10+ 'Debemos tener en cuenta las siguientes consideraciones:'+#13#10+ 2.6. Problemas 'Se considera z'' = dZ/dt, y a " t " variable independiente siempre.'+#13#10+
'Internamente se debe de poner va[0] = t y'+#13#10+ 'entonces los g(t) en función de g(va[0])'+#13#10+ 'Se debe poner la variables de la Forma'+#13#10+ 'por ejemplo:'+#13#10+ 'x'' = 2x - y + z + t / 2 // Aquí f(t) = t / 2'+#13#10+ 'y'' = -x + 2y - 3z + g(t)'+#13#10+ 'z'' = y + z + t ^ 2 // Aquí h(t) = t * t'+#13#10+ 'Para el paquete se debe de transformar a:' +#13#10+#13#10+ 'Procedure funcion(va:_v; var vR : _v);'+#13#10+
F. Antoine S.
1.
Aproximar las soluciones de los siguientes sistemas de ecuaciones diferenciales ordinarias de primer orden
A. Sangiacomo C.
56
Capítulo 2
a)
Método Numéricos para la Solución de Ecuaciones Diferenciales
u1′ = 3u1 + 2u 2 u 2′ = 3u1 + u 2
,
u1 (0) = 0,
0 ≤ t ≤ 1,
u 2 ( 0) = 1.
con h = 0.1 y compare con la solución exacta 5t −t u1 (t ) = 13 (e 5t − e −t ) y u 2 (t ) = 13 (e + 2e ) . ′ a) u1 = −4u1 − 2u 2
u 2′ = 3u1 + u 2 − 3sin(t )
,
0≤t≤2
,
u1 (0) = 0,
2.
Aproximar las soluciones de las siguientes ecuaciones diferenciales ordinarias de orden superior
a) y ′′ + 2ty ′ + t y = e 2
t
, 0 ≤ t ≤ 2,
y (0) = 1 , y ′(0) = 1 .
u 2 (0) = −1.
Use h = 0.1 y h = 0.01 y compare los resultados con series de con h = 0.05 y compare con la potencias por los primeros solución exacta cinco términos. u (t ) = 2(e −t − e −2t ) + sin (t ) 1
y
u 2 (t ) = −3e −t + 2e −2t .
u1′ = u 2
a) u ′ = −u + 2e − t + 1 , 2 1
0 ≤ t ≤1
b) t 2 y ' '−2ty ′ + 2 y = t 3 ln(t ) , 0 ≤ t ≤ 2 ,
,
u1 (0) = 3,
y (0) = 1 ,
y ′(0) = 0 .
u 2 (0) = 0,
h = 0.05 y y Use h = 0.1 compare los resultados con la con h = 0.01 y compare con la solución exacta solución exacta dada por t 3 ln(t ) 3t 3 7t −t y ( t ) = + − 4 . u1 (t ) = cos(t ) + sin(t ) + e + 1 , 4 2 0 ≤ t ≤ 3, u 2 (t ) = − sin(t ) + cos(t ) − e −t y c) y ' ' '+2 y ' '− y '−2 y = et , u3 (t ) = cos(t ) − sin(t ) . y (0) = −1 , y ′(0) = 2 , y ′′(0) = −2 . Use h = 0.2 y h = 0.05 y compare u1′ = u 2 − u3 + t u1 (0) = 1, los resultados con la solución a) u 2′ = 3t 2 , 0 ≤ t ≤ 1 , u2 (0) = 1, u 3 ( 0 ) = −1 . real. u3′ = u 2 + e − t 4 con h = 0.05 y compare con la d) y ' ' '+6 y = 0 , 1 ≤ t ≤ 1.9 , y(1) = −1 , y ′(1) = −1 , y ′′(1) = −2 . solución exacta dada por u1 (t ) = −0.05t 5 + 0.25t 4 + t + 2 − e −t , Use h = 0.1 y h = 0.05 y compare los resultados con la solución u 2 (t ) = t 3 + 1 y real y (t ) = (t − 2) −1 . 4 −t . u3 (t ) = 0.25t + t − e u3′ = −u1 + e
−t
+1
u3 (0) = 1.
2.7. Estabilidad F. Antoine S.
A. Sangiacomo C.
57
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
Discutiremos la razón por la cual se espera que estos métodos den resultados satisfactorios mientras que otros métodos similares no los dan. 2.7.1. Definición Se dice que un método de ecuación de diferencia con error de truncamiento local ri en el iésimo paso es consistente con la ecuación diferencial ordinaria que aproxima si lím máx ri = 0 .
h → 0 1≤ i ≤ N
lím máx yi − wi = 0 ,
h → 0 1≤ i ≤ N
(2)
donde yi = y (ti ) denota el valor exacto de la solución de la ecuación diferencial y wi es la aproximación obtenida por el método de diferencia en el i(1) ésimo paso.
Se debe notar que aquí se define esencialmente una definición local ya que para cada uno de los valores ri estamos comparando el valor exacto f (ti , yi ) con la aproximación de la ecuación diferencial de y ′ . Para efectos de analizar las consecuencias de hacer h pequeña es para determinar el efecto global del método, que es el error máximo del método sobre el rango completo de aproximación, suponiendo que el método da el resultado exacto en el valor inicial. F. Antoine S.
2.7.2. Definición Se dice que un método de ecuación de diferencia es convergente con respecto a la ecuación diferencial que aproxima si
A manera de reforzar esta definición recordemos la estimación del error del método Euler dada por máx y (ti ) − wi ≤
1≤ i ≤ N
hM L(t i − a ) [e − 1] . 2L
(3)
Así el método de Euler es convergente con respecto a la ecuación diferencial ordinaria (EDO) que satisfaga las condiciones de ese teorema y la razón de convergencia es O(h) . Para analizar que métodos son estables por lo menos parcialmente, trataremos de determinar que métodos son A. Sangiacomo C.
58
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
estables, en el sentido de que la condición de Lipschitz en la pequeños cambios o variable w en el conjunto perturbaciones en las condiciones D = {(ti , wi , h) a ≤ t ≤ b, iniciales producen cambios − ∞ < w < ∞, 0 ≤ h ≤ h0 } , correspondientemente pequeños en las aproximaciones entonces subsecuentes; esto es, un método i) El método es estable estable es aquel que depende ii) el método de diferencias es continuamente de sus datos convergente si y sólo si es iniciales. consistente; o sea, si y sólo si Como el concepto de estabilidad φ (t , y, h) = f (t , y ) , para toda de una ecuación de diferencias a ≤ t ≤ b; ordinarias de un paso es análogo iii) Si el error de truncamiento a la condición de una ecuación local, ri , satisface diferencial esté bien planteada, ri ≤ r (h) , para todo i = 1, 2, …, N no es sorprendente que la condición de Lipschitz aparezca 0 ≤ h ≤ h0 , siempre que aquí. r ( h) L (t i − a ) y (ti ) − wi ≤ e entonces Para esto veamos el siguiente L teorema. para cada i = 1, 2, …, N donde L denota a la constante de 2.7.3. Teorema Lipschitz. Suponga que el problema de valor inicial Desarrollemos un ejemplo para y ′ = f (t , y ) , a ≤ t ≤ b , aclarar. y (a ) = α , (4) 2.7.4. Ejemplo se aproxima por el método de diferencia de un paso en forma Considerando el método de Euler modificado dado por w0 = α , wi +1 = wi + h ⋅ φ (ti , wi , h) . w0 = α , Si existe un número h0 > 0 y φ (ti , wi , h) es continua y satisface F. Antoine S.
wi +1 = wi + h2 [ f (ti , wi ) A. Sangiacomo C.
59
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
+ f (ti , wi + hf (ti , wi ))]
≤ L w − w + 12 L hf (t , w) − hf (t , w )
para i = 0, 1, …, N-1.
≤ L w − w + 12 L2 w − w
Solución:
≤ L + 12 L2 w − w .
(
Para este método tenemos φ (t , w, h) =
1 2
)
Entonces φ satisface la condición de Lipschitz en w en el conjunto {(t , w, h) a ≤ t ≤ b
f (t , w)
− ∞ < w < ∞,
+ 12 f (t + h, w + hf (t , w)) . 0 ≤ h ≤ h0 } , para cualquier h0 > 0
con constante
Tomando h = 0 , φ (t , w,0) =
1 2
L = L + 12 L2 .
f (t , w)
+ 12 f (t + 0, w + 0 ⋅ f (t , w)) = f (t , w) , Finalmente, si f es continua en {(t , w) a ≤ t ≤ b, −∞ < w < ∞} , enton-
así que se satisface la condición de consistencia expresada en el teorema anterior parte (ii). Si f satisface la condición de {(t , w) a ≤ t ≤ b, Lipschitz en −∞ < w < ∞} con constante L, entonces, como φ (t , w, h) − φ (t , w , h) =
1 2
f (t , w)
+ 12 f (t + h, w + hf (t , w)) − 12 f (t , w ) + 12 f (t + h, w + hf (t , w ))
ces
φ
es
continua
en {(t , w, h) a ≤ t ≤ b , −∞ < w < ∞, 0 ≤ h ≤ h0 } ; así el teorema implica que el método de Euler modificado es convergente y estable. Y también deja notar que el error de truncamiento local es de O(h 2 ) ; lo que hace ver que el método de Euler tendrá también una rapidez de O ( h 2 ) . ♦ Problema
para explotar la condición de Lipschitz, tomamos valor El método de Heun w0 = y0 = α absoluto φ (t , w, h) − φ (t , w , h) ≤ L w − w 1 2
+ 12 L w + hf (t , w) − w − hf (t , w ) F. Antoine S.
k1 = hf (ti , wi )
k 2 = hf (ti + 23 h, wi + 23 k1 ) wi +1 = wi + 14 [k1 + 3k 2 ] . A. Sangiacomo C.
60
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
Para cada i = 0, 1, …, N-1. Es convergente y estable. Solución:
φ (t , w, h) − φ (t , w , h) ≤ 14 L w − w + 34 L w +
≤
L 4
+ 34L
wi +1 = wi + h4 [ f (ti , wi ) + 3 f (ti + 23 h, wi + 23 hf (ti , wi ))]
Tomando
(
1 [f 4
Entonces φ satisface la condición de Lipschitz en w en el conjunto {(t , w, h)
− ∞ < w < ∞,
a ≤t ≤b,
para cualquier h0 > 0 con
constante (t , w)
+ 3 f (t + 23 ⋅ 0, w + 23 ⋅ 0 ⋅ f (t , w))]
φ (t , w,0) = f (t , w)
así que se satisface la condición de consistencia expresada en el teorema anterior parte (ii). Si f satisface la condición de Lipschitz en {(t , w) a ≤ t ≤ b, −∞ < w < ∞} con constante L, entonces, como φ (t , w, h) − φ (t , w , h) = 14 [ f (t , w) + 3 f (t + 23 h, w + 23 hf (t , w))] − 14 [ f (t , w )
L = L + 12 L2 .
Finalmente, si f es continua en {(t , w) a ≤ t ≤ b, −∞ < w < ∞} , entonces φ es continua en {(t , w, h) a ≤ t ≤ b, − ∞ < w < ∞ , 0 ≤ h ≤ h0 } ; así el teorema implica que el método de Heun es convergente y estable. Problema El Método de Runge - Kutta de Tercer Orden w0 = y0 = α
+ 3 f (t + h, w + hf (t , w ))] 2 3
2 3
para explotar la condición de Lipschitz, tomamos valor absoluto F. Antoine S.
)
≤ L + 12 L2 w − w .
0 ≤ h ≤ h0 } ,
h = 0,
f (t , w) − 23h f (t , w )
≤ L w − w + 12 L2 w − w
Para este método tenemos + 3 f (t + 23 h, w + 23 hf (t , w))]
2h 3
≤ L w − w + 12 L hf (t , w) − hf (t , w )
para i = 0, 1, …, N-1.
φ (t , w, h) = 14 [ f (t , w)
f (t , w) − w − 23h f (t , w )
w − w + 34L w − w
w0 = α ,
φ (t , w,0) =
2h 3
k1 = hf (ti , wi ) k 2 = hf (ti + h2 , wi + 12 k1 ) k3 = hf (ti + h, wi − k1 + 2k 2 ) A. Sangiacomo C.
61
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
wi +1 = wi + 16 [k1 + 4k 2 + k3 ]
para cada i = 0, 1, …, N-1. Es convergente y estable. Solución:
Si f satisface la condición de Lipschitz en {(t , w) a ≤ t ≤ b, −∞ < w < ∞} con constante L, entonces, como φ (t , w, h) − φ (t , w , h) = 16 [ f (t , w)
w0 = α ,
4 f (t + h2 , w + 12 hf (t , w)) +
wi +1 = wi + 16 h[ f (t , w) 4 f (t +
f (t + h, w − hf (t , w)
h , w + 12 2
hf (t , w)) +
+ 2hf (t + h2 , w + 12 hf (t , w)))]
f (t + h, w − hf (t , w)
− 16 [ f (t , w )
+ 2hf (t + h2 , w + 12 hf (t , w)))]
4 f (t + h2 , w + 12 hf (t , w )) + f (t + h, w − hf (t , w )
para i = 0, 1, …, N-1.
+ 2hf (t + h2 , w + 12 hf (t , w )))]
Para este método tenemos φ (t , w, h) = 14 [ f (t , w) + 3 f (t + 23 h, w + 23 hf (t , w))]
φ (t , w, h) = 16 [ f (t , w) +
para explotar la condición de Lipschitz, tomamos valor absoluto φ (t , w, h) − φ (t , w , h) ≤ 16 f (t , w) − f (t , w ) +
4 f (t + h2 , w + 12 hf (t , w))
+ f (t + h, w − hf (t , w)
1 f (t + h, w − hf (t , w) 6 + 2hf (t + h2 , w + 12 hf (t , w)))
+ 2hf (t + h2 , w + 12 hf (t , w)))]
Tomando
+
h = 0,
− f (t + h, w − hf (t , w )
φ (t , w, 0) = 16 [ f (t , w) 4 f (t + 0, w +
4 f (t + h2 , w + 12 hf (t , w)) 6 − f (t + h2 , w + 12 hf (t , w ))
1 0f 2
+ 2hf (t + 12 , w + 12 hf (t , w )))
(t , w)) +
Trabajamos individualmente cada valor absoluto y luego sumamos: + 2 ⋅ 0 f (t + 02 , w + 12 0 f (t , w)))] 1 f (t , w) − f (t , w ) = L w − w ; 6
f (t + 0, w − 0 f (t , w)
φ (t , w, 0) = 16 [ f (t , w) + 4 f (t , w) + f (t , w)]
φ (t , w,0) = f (t , w)
así que se satisface la condición de consistencia expresada en el teorema anterior parte (ii). F. Antoine S.
6 4 f (t + h2 , w + 12 hf (t , w)) 6 − f (t + h2 , w + 12 hf (t , w ))
≤
4L 4L w−w + w + 12 hf (t , w) 6 6 − w − 12 hf (t , w )) A. Sangiacomo C.
62
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
4L 4L w−w + w−w 6 6 4 L2 h + f (t , w) − h2 f (t , w ) 6 2 4L 4L 2 L2 ≤ w−w + w−w + w−w 6 6 6
≤
1 f (t + h, w − hf (t , w) 6 + 2hf (t + h2 , w + 12 hf (t , w)))
− f (t + h, w − hf (t , w ) + 2hf (t +
≤
1 ,w 2
+ hf (t , w ))) 1 2
L w−w 6 L + w − hf (t , w) − w + hf (t , w ) 6 L + 2hf (t + h2 , w + 12 hf (t , w)) 6 − 2hf (t + h2 , w + 12 hf (t , w ))
2L w−w 6 L + hf (t , w) − hf (t , w ) 6 2 L2 + w + 12 hf (t , w) − w + 12 hf (t , w ) 6 2L 2 L2 L2 ≤ w−w + w−w + w−w 6 6 6 L2 + hf (t , w) − hf (t , w ) 6 2L 2 L2 L2 ≤ w−w + w−w + w−w 6 6 6 L3 + w−w 6
≤
L w−w 6 4L 4L 2 L2 + w−w + w−w + w−w 6 6 6
φ (t , w, h) − φ (t , w , h) ≤
F. Antoine S.
+
;
2L 2 L2 L2 w−w + w−w + w−w 6 6 6 L3 + w−w 6
11L w−w 6 L3 5 L2 + w−w + w−w 6 6
φ (t , w, h) − φ (t , w , h) ≤
φ (t , w, h) − φ (t , w , h) ≤(
11L 5 L2 L3 L3 + + ) w−w + w−w 6 6 6 6 11L 5 L2 L3 L= + + . 6 6 6
Finalmente, si f es continua en {(t , w) a ≤ t ≤ b, −∞ < w < ∞} , entonces φ es continua en {(t , w, h) a ≤ t ≤ b, − ∞ < w < ∞ , 0 ≤ h ≤ h0 } ; así el teorema implica que el método de Runge - Kutta de tercer orden es convergente y estable. Problema: Quedará hacer el mismo proceso para Euler Modificado y para Runge - Kutta de cuarto orden.
Para el caso de multipaso, la consistencia, la convergencia y la estabilidad se complican debido al número de aproximaciones que tiene involucradas en cada paso. En los métodos de un paso, la A. Sangiacomo C.
63
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
wi +1 aproximación depende directamente sólo de la aproximación previa wi mientras que los métodos de multipaso usan por lo menos dos de las aproximaciones anteriores y los métodos que se usan comúnmente utilizan aún más. El método de multipaso general para aproximar la solución del problema de valor inicial
y′ = f (t , y ) , a ≤ t ≤ b , y (a ) = α .
(5)
Como en los métodos de un paso, mide que tanto la solución y(t ) de la ecuación diferencial ordinaria falla en satisfacer la ecuación de diferencias. Hemos tenido el error para Adams-Bashforth de cuatro pasos ri +1 =
para
251h 4 720
y (5) (qi ) ,
t i − 3 < qi < t i +1 ,
mientras que el error de truncamiento local para AdamsBashforth de tres pasos es 5
se puede escribir en la forma w0 = α , w1 = α1 , w2 = α 2 , …, wm −1 = α m −1 ,
h ri +1 = 95 y (6) (qi ) , 288
para ti − 2 < qi < ti +1 ,
y (ti +1 ) − am −1 y (ti ) − ... − a0 y (ti − m ) h
que, desde luego y ∈ C 5 [ a , b] . A lo largo del análisis se harán dos suposiciones concernientes a la función F: i) Si f ≡ 0 (esto es, la ecuación diferencial es homogénea) entonces también F ≡ 0 lo es; ii) F satisface un tipo de condición de Lipschitz con respecto a la sucesión
− F [ti , h, y (ti +1 ), y (ti ),..., y (ti +1− m )]
{w j }ij+=1i +1− m , en el sentido de
wi +1 = am −1wi + am − 2 wi −1 + ... + ao wi +1− m
+ h[bm f (ti +1 , wi +1 ) + bm −1 f (ti , wi )
+ ... + b0 f (ti +1− m , wi +1− m )] , (6)
para i = m − 1 , m, …, N-1, donde los a0 , a1 , …, am −1 , son constantes y, el paso es h dado por h = (b − a) / N , ti = t0 + ih . ri +1 =
para cada i = m, m+1, …, N-1;
F. Antoine S.
siempre
que existe una constante K con A. Sangiacomo C.
64
Capítulo 2
Método Numéricos para la Solución de Ecuaciones Diferenciales
F [ti , h, wi +1 ,..., wi +1− m ] − F [ti , h, vi +1 ,..., vi +1− m ] type
_r = extended; _i = integer; _s = string; _v=array[0..10] of _r; _M=array[0..21] of _v; ≤K⋅ wi +1− j − vi +1− j TForm1_Adams_rug = class(TForm) j =0 Memo1, MainMenu1, Archivos1, Calculos1, DATOS1, N1, FinExit1, RunEjecutar1, Datos2: TMenuItem; para cada i = m-1, m, …, N y Calcular1, Limpiar1, Exit1: TMenuItem; PopupMenu1, RadioButton1, RadioButton2, RadioButton3, {w j }Nj= 0 sucesivamente y RadioButton4, RadioButton5, RadioButton6, RadioButton7, RadioButton8, RadioButton9: TRadioButton; Edit1, Edit2, Edit3, Edit4: TEdit; {v j }Nj= 0 . Label6, Label7, Label8, Label9: TLabel; TCheckBox; BitBtn1, BitBtn2: TBitBtn; Los métodos de Adams- CheckBox1: procedure BitBtn2Click(Sender: TObject); Bashforth y Adams-Moulton procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); satisfacen estas condiciones Procedure Adamas(Sender: TObject); Adams_brashf2(Sender: TObject); siempre que f satisfaga la procedure procedure Adams_brashf3(Sender: TObject); procedure Adams_brashf4(Sender: TObject); condición de Lipschitz. procedure Adams_brashf5(Sender: TObject); procedure Adams_Moulton2(Sender: TObject); procedure Adams_Moulton3(Sender: TObject); procedure Adams_Moulton4(Sender: TObject); Apéndice procedure Milne11(Sender: TObject); procedure Datos(Sender: TObject); Programa integrado que resuelve cada uno procedure BitBtn3Click(Sender: TObject); de los métodos desde Adams, Adams- end; m
∑
Bashforth de 2do, 3ro , 4to , 5to orden, Adams- var Form1_Adams_rug: TForm1_Adams_rug; Moulton de 2do , 3ro , 4to orden y Milne. Con caja de múltiples elecciones implementation {$R *.DFM}
, resuelve usando método de Runge-Kutta de cuarto orden.
el
Var a,b,c,x,y,y0,y1,y2,z,t,t1,t2,h,k1,k2,k3,k4:_r; i,j,k,n,m,lx:_i; v1,v2,v3:_v; m1,ma:_m; d,s:string; Function fxy(t,y: _r):_r; {función de cálculo} Begin {CAMBIAR AQUÍ LA FUNCIÓN DE LA EC. DIFERENCIAL} {===============================} fxy:= 1+t-y ; {===============================} End;
Procedure recal; Begin k1:=h*fxy(t,y); k2:=h*fxy(t+h/2, y+k1/2); k3:=h*fxy(t+h/2, y+k2/2); k4:=h*fxy(t+h, y+k3); t:=t+h; y:=y +(k1+2*k2+2*k3+k4)/6; End; Procedure pro2; var as1:_i; Begin {cuerpo de ejecución del método de Runge-Kutta4 } if n>20 then n:=20; y:=y0; t:=t1; h:=(t2-t1)/n; as1:=0; unit Adam_Rug_2xT; ma[as1+1,1]:=0;ma[as1+1,2]:=t; ma[as1+1,3]:=y; {FUNCIONA TODOS LOS MÉTODOS DE BRASHFORTH Y DE Repeat a:=y; MOULTON} recal;ma[as1+2,1]:=as1+1; ma[as1+2,2]:=t; ma[as1+2, 3]:=y; interface ma[as1+1,5]:=k1/h; ma[as1+1,6]:=k1; as1:=as1+1; uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Until (as1>3); Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Menus, ComCtrls, End; ToolWin; F. Antoine S.
A. Sangiacomo C.
65
Capítulo 2
procedure TForm1_Adams_rug.BitBtn2Click(Sender: TObject); begin close; end; Procedure Publicar; var i,j:_i; Begin Form1_Adams_rug.Memo1.Lines.Add(' Método de Adams 4to Orden'); Form1_Adams_rug.Memo1.Lines.Add( ' i ti '+ 'yi Ayi y''i q'+ ' Aq AAq AAAq'); for i:=1 to n+1 do Begin s:=''; For j:=1 to 9 do begin str(ma[i,j]:1:8,d); s:=s+' '+d; end; Form1_Adams_rug.Memo1.Lines.Add(s); End; End; Procedure TForm1_Adams_rug.Adamas(Sender: TObject); begin fillchar(ma,sizeof(ma),0); Datos(Sender); pro2; For i:=1 to 3 do Begin For j:=1 to 4-i do Begin ma[j, 6+i] :=ma[j+1, 5+i]-ma[j, 5+i] end End; i:=3; Repeat i:=i+1; k2:=ma[i, 6]+ma[i-1, 7]/2 +5*ma[i-2, 8]/12+3*ma[i-3, 9]/8; ma[i, 4]:=k2; ma[i+1, 3]:=k2+ma[i,3]; ma[i+1, 2]:=t; ma[i+1, 1]:=i; ma[i+1, 5]:=fxy(t,ma[i+1, 3]); ma[i+1, 6]:=h*ma[i+1, 5]; ma[i, 7] :=ma[i+1, 6]-ma[i, 6]; ma[i-1, 8] :=ma[i, 7]-ma[i-1, 7]; ma[i-2, 9] :=ma[i-1, 8]-ma[i-2, 8]; t:=t+h; Until (t>t2+h/1000); Publicar; end; procedure TForm1_Adams_rug.Datos(Sender: TObject); begin t1 := StrToFloat(Edit1.text); t2 := StrToFloat(Edit2.text); y0 := StrToFloat(Edit3.text); N := StrToInt(Edit4.text);// número de pasos end; procedure TForm1_Adams_rug.Adams_brashf2(Sender: TObject); begin Datos(Sender); y:=y0; t:=t1; h:=(t2-t1)/n; k:=0; v1[0]:=y; Repeat recal; k:=k+1; v1[k]:=y; Until (k>0); Memo1.Lines.Add('Método de Adams Brashforth 2do Orden'); For i:=0 to 1 do Memo1.Lines.Add(IntToStr(i)+' t =' +FloatToStr(t-h*(1-i))+' y = '+FloattoStr(v1[i])); For i:=1 to n-1 do Begin y:=y + (3*fxy(t,v1[1])-fxy(t-h,v1[0])) * h/2; v1[0]:=v1[1];v1[1]:=y; Memo1.Lines.Add(IntToStr(i+1)+' t =' +FloatToStr(t+h)+' y = '+FloattoStr(y)); F. Antoine S.
Método Numéricos para la Solución de Ecuaciones Diferenciales
t:=t+h; End; end; procedure TForm1_Adams_rug.Adams_brashf3(Sender: TObject); begin Datos(Sender); y:=y0; t:=t1; h:=(t2-t1)/n; k:=0; v1[0]:=y; Repeat recal; k:=k+1; v1[k]:=y; Until (k>1); Memo1.Lines.Add('Método de Adams Brashforth 3er Orden'); For i:=0 to 2 do Memo1.Lines.Add(IntToStr(i)+' t =' +FloatToStr(t-h*(2-i))+' y = '+FloattoStr(v1[i])); For i:=2 to n-1 do Begin y:=y + (23*fxy(t,v1[2])-16*fxy(t-h,v1[1])+ 5*fxy(t-2*h,v1[0])) * h/12; v1[0]:=v1[1];v1[1]:=v1[2];v1[2]:=y; Memo1.Lines.Add(IntToStr(i+1)+' t =' +FloatToStr(t+h)+' y = '+FloattoStr(y)); t:=t+h; End; end; procedure TForm1_Adams_rug.Adams_brashf4(Sender: TObject); begin Datos(Sender); y:=y0; t:=t1; h:=(t2-t1)/n; k:=0; v1[0]:=y; Repeat recal; k:=k+1; v1[k]:=y; Until (k>2); Memo1.Lines.Add('Método de Adams Brashforth 4to Orden'); For i:=0 to 3 do Memo1.Lines.Add(IntToStr(i)+' t =' +FloatToStr(t-h*(3-i))+' y = '+FloattoStr(v1[i])); For i:=3 to n-1 do Begin y:=y + (55*fxy(t,v1[3])-59*fxy(t-h,v1[2])+ 37*fxy(t-2*h,v1[1])-9*fxy(t-3*h, v1[0])) * h/24; v1[0]:=v1[1];v1[1]:=v1[2];v1[2]:=v1[3]; v1[3]:=y; Memo1.Lines.Add(IntToStr(i+1)+' t =' +FloatToStr(t+h)+' y = '+FloattoStr(y)); t:=t+h; End; end; procedure TForm1_Adams_rug.Adams_brashf5(Sender: TObject); begin Datos(Sender); y:=y0; t:=t1; h:=(t2-t1)/n; k:=0; v1[0]:=y; Repeat recal; k:=k+1; v1[k]:=y; Until (k>3); Memo1.Lines.Add('Método de Adams Brashforth 5to Orden'); For i:=0 to 4 do Memo1.Lines.Add(IntToStr(i)+' t =' +FloatToStr(t-h*(4-i))+' y = '+FloattoStr(v1[i])); For i:=4 to n-1 do Begin y:=y + (1901*fxy(t,v1[4])-2774*fxy(t-h,v1[3]) +2616*fxy(t-2*h,v1[2])-1274*fxy(t-3*h,v1[1]) +251*fxy(t-4*h, v1[0])) * h/720; v1[0]:=v1[1];v1[1]:=v1[2];v1[2]:=v1[3]; v1[3]:=v1[4]; v1[4]:=y; Memo1.Lines.Add(IntToStr(i+1)+' t =' +FloatToStr(t+h)+' y = '+FloattoStr(y)); t:=t+h; End; A. Sangiacomo C.
66
Capítulo 2
end; procedure TForm1_Adams_rug.Adams_Moulton2(Sender: TObject); begin Datos(Sender); y:=y0; t:=t1; h:=(t2-t1)/n; k:=0; v1[0]:=y; Repeat recal; k:=k+1; v1[k]:=y; Until (k>0); Memo1.Lines.Add(' Método de Adams Moulton 2do Orden'); For i:=0 to 1 do Memo1.Lines.Add(IntToStr(i)+' t =' +FloatToStr(t-h*(1-i))+' y = '+FloattoStr(v1[i])); For i:=1 to n-1 do Begin v1[10]:=fxy(t , v1[1])*8 - fxy(t- h, v1[0]); v1[4]:=y; k:=0; t:=t+h; repeat v1[7]:=v1[4]; k:=k+1; v1[4]:=y + (5*fxy(t,v1[4])+ v1[10] ) * h/12; if k>100 then break; until Abs(v1[4]-v1[7])<0.000000001;y:=v1[4]; v1[0]:=v1[1];v1[1]:=y; Memo1.Lines.Add(IntToStr(i+1)+' t ='+FloatToStr(t) +' y = '+FloattoStr(y)); End; end; procedure TForm1_Adams_rug.Adams_Moulton3(Sender: TObject); begin Datos(Sender); y:=y0; t:=t1; h:=(t2-t1)/n; k:=0; v1[0]:=y; Repeat recal; k:=k+1; v1[k]:=y; Until (k>1); Memo1.Lines.Add(' Método de Adams Moulton 3er Orden'); For i:=0 to 2 do Memo1.Lines.Add(IntToStr(i)+' t =' +FloatToStr(t-h*(2-i))+' y = '+FloattoStr(v1[i])); For i:=2 to n-1 do Begin v1[10]:=fxy(t , v1[2])*19 - 5*fxy(t- h, v1[1])+ fxy(t-2*h, v1[0]); v1[4]:=y; k:=0; t:=t+h; repeat v1[7]:=v1[4]; k:=k+1; v1[4]:=y + (9*fxy(t,v1[4])+ v1[10] ) * h/24; if k>100 then break; until Abs(v1[4]-v1[7])<0.000000001;y:=v1[4]; v1[0]:=v1[1];v1[1]:=v1[2];v1[2]:=y; Memo1.Lines.Add(IntToStr(i+1)+' t ='+FloatToStr(t)+ ' y = '+FloattoStr(y)); End; end; procedure TForm1_Adams_rug.Adams_Moulton4(Sender: TObject); begin Datos(Sender); y:=y0; t:=t1; h:=(t2-t1)/n; k:=0; v1[0]:=y; Repeat recal; k:=k+1; v1[k]:=y; Until (k>2); Memo1.Lines.Add(' Método de Adams Moulton 4to Orden'); For i:=0 to 3 do Memo1.Lines.Add(IntToStr(i)+' t =' +FloatToStr(t-h*(3-i))+' y = '+FloattoStr(v1[i])); For i:=3 to n-1 do Begin v1[10]:=fxy(t , v1[3])*646 - 264*fxy(t- h, v1[2])+ 106*fxy(t-2*h, v1[1])-19*fxy(t-3*h, v1[0]); v1[4]:=y; k:=0; t:=t+h; repeat v1[7]:=v1[4]; k:=k+1; v1[4]:=y + (251*fxy(t,v1[4])+ v1[10] ) * h/720; F. Antoine S.
Método Numéricos para la Solución de Ecuaciones Diferenciales
if k>100 then break; until Abs(v1[4]-v1[7])<0.000000001;y:=v1[4]; v1[0]:=v1[1];v1[1]:=v1[2];v1[2]:=v1[3]; v1[3]:=y; Memo1.Lines.Add(IntToStr(i+1)+' t =' +FloatToStr(t+h)+' y = '+FloattoStr(y)); End; end; procedure TForm1_Adams_rug.Milne11(Sender: TObject); begin Datos(Sender); y:=y0; t:=t1; h:=(t2-t1)/n; k:=0; v1[0]:=y; Repeat recal; k:=k+1; v1[k]:=y; Until (k>2); Memo1.Lines.Add(' Método de Milne'); For i:=0 to 3 do Memo1.Lines.Add(IntToStr(i)+' t =' +FloatToStr(t-h*(3-i))+' y = '+FloattoStr(v1[i])); For i:=3 to n-1 do Begin v1[10]:=v1[0]+(2*fxy(t-2*h, v1[1]) -fxy(t-h, v1[2])+2*fxy(t, v1[3]))*4*h/3; v1[9]:= fxy(t+h, v1[10]); y:=v1[2]+ (v1[9]+ 4*fxy(t, v1[3])+fxy(t-h, v1[2])) * h/3; v1[0]:=v1[1]; v1[1]:=v1[2]; v1[2]:=v1[3]; v1[3]:=y; Memo1.Lines.Add(IntToStr(i+1)+' t =' +FloatToStr(t+h)+' y = '+FloattoStr(y)); t:=t+h; End; end; procedure TForm1_Adams_rug.BitBtn1Click(Sender: TObject); begin if CheckBox1.Checked then memo1.Clear; if RadioButton1.Checked then Adamas(Sender) else if RadioButton4.Checked then Adams_brashf4(Sender) else if RadioButton2.Checked then Adams_brashf2(Sender) else if RadioButton3.Checked then Adams_brashf3(Sender) else if RadioButton5.Checked then Adams_brashf5(Sender) else if RadioButton8.Checked then Adams_Moulton4(Sender) else if RadioButton6.Checked then Adams_Moulton2(Sender) else if RadioButton7.Checked then Adams_Moulton3(Sender) else if RadioButton9.Checked then Milne11(Sender); end; procedure TForm1_Adams_rug.FormCreate(Sender: TObject); begin Memo1.Clear; RadioButton1.Checked :=true; CheckBox1.Checked := true; end; procedure TForm1_Adams_rug.BitBtn3Click(Sender: TObject); begin Close; end; end.
A. Sangiacomo C.
67
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
CAPÍTULO 3
Objetivo: Es estudiar una ecuación diferencial de segundo orden lineal y no lineal con valor de frontera, por métodos aproximados y numéricos.
Los problemas físicos que dependen de la posición en vez de depender del tiempo se describen por lo general en términos de ecuaciones diferenciales con condiciones impuestas en más de un punto. El problema general de valor de frontera en dos puntos que trataremos aquí, involucra a una ecuación diferencial de segundo orden de la forma
3.0. PROBLEMA DE VALOR DE FRONTERA PARA ECUA- y ' ' = f ( x, y, y ′) , a ≤ x ≤ b , CIONES DIFERENCIALES junto a sus condiciones ORDINARIAS frontera Los métodos ya vistos en los capítulos anteriores nos dieron sólo la solución de las ecuaciones diferenciales ordinarias sujetas a condiciones iniciales, o sea, sujetas en uno de sus extremos, en cambio en este capítulo nos ocuparemos de las ecuaciones diferenciales ordinarias que están sujetas al comienzo y al final, o sea, en sus fronteras.
y (a ) = α
y
(1)
de
y (b) = β .
La mayoría del material que trataremos puede extenderse a las condiciones generales α1 y(a) + β1 y′(a) = α
y α 2 y (b) + β 2 y′(b) = β , donde α1 + β1 ≠ 0 y α 2 + β 2 ≠ 0 , a pesar que las técnicas son pesadas, pero con auxilio del computador se puede paliar un tanto.
3.1. El Método del Disparo Lineal Figura 1. F. Antoine S.
A. Sangiacomo C.
68
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
Las condiciones generales que aseguran que la solución de un problema de valor de frontera de segundo orden, la existencia y unicidad, nos las da el teorema siguiente:
3.1.2. Ejemplo Hacer que se cumpla el teorema 3.1.1. en el problema de valor de frontera y ' '+e − xy + sin( y′) = 0 ,
1 ≤ x ≤ 2 , y (1) = y (2) = 0 , 3.1.1. Teorema Supóngase que la función f en el Solución: problema de valor de frontera Se puede representar como y ' ' = f ( x, y, y′) , a ≤ x ≤ b , f ( x, y, y′) = −e − xy − sin( y ′) , y (a ) = α , y (b) = β , y como es continua en el conjunto ∂f ( x, y, y′) ∂y
D = {( x, y, y′) a ≤ x ≤ b,
− ∞ < y < ∞,−∞ < y ′ < ∞} ,
y que
∂f ∂y
y
∂f , ∂y′
son también
continuas en D. Si i)
∂f ( x, y, y′) >0 ∂y
para
( x, y , y ′) ∈ D ,
para
( x, y , y ′) ∈ D ,
∂f ( x, y, y′) = − cos( y′) ≤ 1 . ∂y′
Por tanto este problema tiene solución única. ♥
todo Cuando f ( x, y, y′) expresarse en forma
y ii) existe una constante M, con ∂f ( x, y , y′) ≤M ∂y′
y
= xe − xy > 0
todo
puede
f ( x, y, y′) = p( x) y′ + q( x) y + r ( x) ,
la ecuación diferencial ordinaria y ' ' = f ( x, y , y′)
entonces el problema de valor de la EDO se llama lineal. Estos frontera tiene una solución única. problemas son los más comunes. Aclaremos ejemplo.
F. Antoine S.
con
el
siguiente 3.1.3. Corolario Si el problema lineal de valor de frontera A. Sangiacomo C.
69
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
y ' ' = p ( x) y ′ + q ( x) y + r ( x) , a ≤ x ≤ b , y (a ) = α , y (b) = β , (2)
que satisface: i)
p(x) , q(x)
y
r (x)
son
continuas en [a, b] . ii) q( x) > 0
en [a, b] ,
entonces tiene solución única. El método del disparo lineal garantiza la aproximación a la solución única, cuando se satisfacen las hipótesis del corolario anterior, consideremos primero los problemas de valor inicial y ′′ = p ( x ) y′ + q ( x) y + r ( x ) , a ≤ x ≤ b , y (a ) = α , y′(a ) = 0 ,
y ( x) = y1 ( x) +
β − y1 (b) y2 (b)
y2 ( x) ,
(5)
es la solución a nuestro problema de valor de frontera, siempre y cuando, desde luego y2 (b) ≠ 0 . El método del disparo se basa en este reemplazo del problema (2) por dos problemas (3) y (4) de valor inicial. Para aproximar las soluciones y1 ( x) y y2 ( x) se puede utilizar cualquiera de los métodos vistos en el capítulo 1, una vez aproximada la solución, la solución del problema de valor de frontera puede aproximarse usando la ecuación (5). Una idea gráfica está en la figura 2.
(3)
y ′′ = p ( x) y ′ + q ( x) y , a ≤ x ≤ b , y (a) = 0 , y ′( a ) = 1 . (4)
Figura 2. La solución única se establece 3.1.4. Algoritmo de Disparo por el teorema de sistemas, dado Lineal en la primera parte. Si y1 ( x) denota la solución de (3) Paso 1: Definir f ( x, y, u ) = p( x)u + q( x) y + r ( x) yf = u y y2 ( x) la solución de (4) no es Paso 2: g ( x, w, v) = p( x)v + q( x) w difícil verificar que F. Antoine S.
A. Sangiacomo C.
70
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
Paso 7: Publicar (i; Yfi ; Y ′f i ) Paso 8: Parar.
yg = v Paso 3: Entrar a, b, y las α, β y N. { intervalo, condiciones de frontera y número de pasos}
Paso 4: Hacer h=(b-a)/N; wy f ,0 = α , wu0 = 0 , wy g ,0
= 0 , y=α; u=0; wv0 = 1 ,
3.1.5. Programa en Delphi del Disparo Lineal
w=0; v=1; x=a; Paso 5: Para i = 0 hasta N-1 hacer k1,1 = h ⋅ u , k1,2 = h ⋅ f ( x, y, u ) ,
k 2,1 = h ⋅ (u +
k1, 2
k 2,2 = h ⋅ f ( x + h2 , y + k3,1 = h ⋅ (u + k3, 2 = h ⋅ f ( x +
h , 2
),
2 k1,1 2
k 2, 2
k1, 2
),
2
),
2 k 2 ,1
y+
,u +
2
unit Run_Dis2_1;
,u +
k 2, 2 2
),
k 4,1 = h ⋅ (u + k3, 2 ) ,
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
k 4, 2 = h ⋅ f ( x + h, y + k3,1 , u + k3, 2 ) , u = u + ( k1, 2 + 2k 2, 2 + 2k 3, 2 + k 4, 2 ) / 6 , y = y + (k1,1 + 2k 2,1 + 2k 3,1 + k 4,1 ) / 6 ;
wu i +1 = u wy f ,i +1 = y { * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
;
k1,1 = h ⋅ v , k1,2 = h ⋅ g ( x, w, v) ,
k 2,1 = h ⋅ (v +
k1, 2
k 2,2 = h ⋅ g ( x + h2 , w + k3,1 = h ⋅ (v +
k 2, 2 2
k3, 2 = h ⋅ g ( x + h2 , w +
),
2 k1,1 2
,v +
k1, 2 2
),
), k 2 ,1 2
,v +
k 2, 2 2
),
k 4,1 = h ⋅ (v + k 3, 2 ) ,
k 4, 2 = h ⋅ g ( x + h, w + k 3,1 , v + k 3, 2 ) , v = v + (k1,2 + 2k 2,2 + 2k 3,2 + k 4,2 ) / 6 , w = w + ( k1,1 + 2k 2,1 + 2k 3,1 + k 4,1 ) / 6 ,
wvi +1 = v ; wy g ,i +1 = w ;
x := x + h
Paso 6: Para i = 1 hasta N hacer β − wy f , N Yf i = wy f , i + ⋅ wy g , i , wy g , N
Y ' f i = wu i +
F. Antoine S.
interface
β − wy f , N wy g , N
⋅ wvi ;
type TDisparo_Lineal1 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Edit2: TEdit; Label2: TLabel; Label4: TLabel; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Label5: TLabel; Edit4: TEdit; Button1: TButton; Button2: TButton; Memo2: TMemo; Edit5: TEdit; Edit6: TEdit; Label6: TLabel; Label7: TLabel; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); Procedure Calculo(sender: TObject); end; _r = double; _i = integer; _s = string; _v = array [0..200] of _r; _m = array [0..4] of _v; var Disparo_Lineal1: TDisparo_Lineal1; implementation {$R *.DFM} var wj, v1, v2, dis1, dis2 :_v; kj :_m; mm, Lx :_i; Lim_a, lim_b, h :_r; procedure TDisparo_Lineal1.Button2Click(Sender: TObject); begin Close; end; procedure TDisparo_Lineal1.FormCreate(Sender: TObject); begin CheckBox1.Checked:=true; Memo2.Clear; end; Procedure TDisparo_Lineal1.Calculo(sender: TObject); var m:_i; t:_r; sx1 : _s; aa : _v; Procedure funcion(va:_v;var vR:_v); begin { Poner aqui el SISTEMA de la EDO y"+ay'+by=c y'=u ; u'=-au-by + c Usamos vr[ i ] representa y', u' ... va[ 0 ] es x; va[1] es y; va[2] es u; ... repectivamente } vr[1]:=va[2]; // y " = -y if v2[5]>1 then vr[2]:=-va[1] // la No homogénea else vr[2]:= - va[1] ; // la homogénea end; function f(ii:_i;va:_v):_r; {función de cálculo} begin funcion(va,va);f:=va[ii] end; procedure recal(vx,v:_v); var i,k:_I; procedure ir_;var j:_I; begin for j:=1 to MM do begin kj[i,j]:=h*f(j,v); end end; begin {calculo de los Kij[ ]}m:=0;t:=vx[1];// Runge - Kutta h:=(vx[2]-vx[1])/lx;wj:=v1; str(t:1:8,sx1);// memo2.Lines.Add(' Y(a) = '+ FloatToStr(wj[1])+ ' Y '+chr(39)+' (a) = '+ FloatToStr(wj[2])); repeat m:=m+1 ; i:=1; v[0]:=t; for k:=1 to MM do v[k]:=wj[k]; ir_;
A. Sangiacomo C.
71
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
i:=2; v[0]:=t+h/2;for k:=1 to MM do v[k]:=wj[k]+kj[1,k]/2; ir_; i:=3; v[0]:=t+h/2;for k:=1 to MM do v[k]:=wj[k]+kj[2,k]/2; ir_; i:=4; v[0]:=t+h; for k:=1 to MM do v[k]:=wj[k]+kj[3,k]; ir_; {calculo de wij[ ]} for k:=1 to MM do begin wj[k]:=wj[k]+(kj[1,k]+2*kj[2,k]+2*kj[3,k]+kj[4,k])/6; if CheckBox2.Checked then begin memo2.Lines.Add(FloatToStr(kj[1,k])+' '+FloatToStr(kj[2,k]) +' '+FloatToStr(kj[3,k])+' '+FloatToStr(kj[4,k])); memo2.Lines.Add(IntToStr(m)+' w['+IntToStr(k)+']= ' +FloatToStr(wj[k]) ); end; end; if v2[5]>=1 then dis1[m]:=wj[1] else dis2[m]:=wj[1]; t:=t+h Until lx<=m; end; begin aa := v1; // Ir a calcular la no Homogénea Y0 = a Y'0 = 0 v2[5] := 10; v1[1]:=aa[1]; v1[2]:=0; recal(v2,v1); // Ir a calcular la Homogénea Y0 = 0 Y'0 = 1 v2[5] := 0; v1[1]:=0 ; v1[2]:=1; recal(v2,v1);// Calcula Y = Y1 - (beta-y1(b))/Y2(b)*y2 memo2.Lines.Add(' alfa ='+FloatToStr(aa[1])+' beta =' +FloatToStr(aa[2])+ ' Y1(b) ='+FloatToStr(dis1[Lx])+' Y2(b) =' +FloatToStr(Dis2[Lx])); memo2.Lines.Add(IntToStr(0)+' y1 = '+FloatToStr(aa[1])+' y2 = '+ FloatToStr(0)+' y = '+FloatToStr(aa[1])); for m:=1 to lx do begin v2[7]:=Dis1[m]+(aa[2]-dis1[lx])/Dis2[lx]*dis2[m]; memo2.Lines.Add(IntToStr(m)+' y1 = '+FloatToStr(Dis1[m]) +' y2 = '+ FloatToStr(Dis2[m])+' y = '+FloatToStr(v2[7])) end; end; procedure TDisparo_Lineal1.Button1Click(Sender: TObject); var nx : word; i:_i; begin Lim_a:= StrToFloat(Edit1.text); v2[1]:=Lim_a; Lim_b:= StrToFloat(Edit2.text); v2[2]:=Lim_b; mm:=2; // Valor iniciales v1[1]:= StrToFloat(Edit5.text);v1[2]:= StrToFloat(Edit6.text); Lx := StrToInt(Edit4.text); if Lx>200 then nx:=MessageDlg('Sólo un Máximo de 200 particiones ! ! ! ', mtConfirmation,[MByes,MBno],0); if Lx>200 then Lx:=200; if CheckBox1.Checked then memo2.Clear; Calculo(Sender); end; end.
Ejemplo: y ' '+4 y = cos( x) , 0 ≤ x ≤ π4 , y (0) = 0 ,
y ( π4 ) = 0 ;
n = 4.
ky3 = 0.196349540849*(0+0.195404064142/2 ) = 0.0191837491372282 ku3 = 0.196349540849*(0*0.09770203 4*0.0096382855 + cos(0.098174770424681)) = 0.187834172374732 ky4 = 0.196349540849*(0+0.187834172375 ) = 0.0368811535015986 ku4 = 0.196349540849362*(0*0.187834172375 - 4*0.0191837491372 + cos(0.196349540849)) = 0.177509858139531 1 wf[1]= 0.0189669656613017 wf[2]= 0.190055978670521 Para x= 0.196349540849362 ky1 = 0.196349540849*0.19005597867 = 0.0373174041476 ku1 = 0.196349540849*(0*0.19005597867 4*0.0189669656613 + cos(0.196349540849)) = 0.177680119483378 ky2 = 0.196349540849*(0.19005597867 +0.177680119483/2 ) = 0.0547611090869 ku2 = 0.196349540849362*(0*0.27889603841 4*0.0376256677351 + cos(0.294524311274)) = 0.158343665205489 ky3 = 0.196349540849*(0.19005597867 +0.158343665205/2 ) = 0.0528627571273 ku3 = 0.196349540849*(0*0.269227811273 4*0.0463475202048 + cos(0.294524311274)) = 0.151493538294398 ky4 = 0.196349540849*(0.19005597867 +0.151493538294398 ) = 0.0670630908334 ku4 = 0.196349540849362*(0*0.341549516965 - 4*0.0718297227887 + cos(0.392699081699)) = 0.124988389653 2 wf[1]= 0.072238336896247 wf[2]= 0.343779798026569 Para x= 0.392699081698724 ky1 = 0.0675010054958032 ku1 = 0.124667464883516 ky2 = 0.0797402052401693 ku2 = 0.0899213953229474 ky3 = 0.0763290178379005 ku3 = 0.0851150728226076 ky4 = 0.0842133109638822 ku4 = 0.0465741490567852 3 wf[1]= 0.149547130665551 wf[2]= 0.43066555639847 Para x= 0.589048622548086 ky1 = 0.0845609842584747 ku1 = 0.0458046348397197 ky2 = 0.0890578437682505 ku2 = 0.0011191849576052 ky3 = 0.084670859984750 ku3 = - 0.0006467276424119 ky4 = 0.0844339995828325 ku4 = - 0.0451142878739386 4 wf[1]= 0.235622529223436 wf[2]= 0.430938099997832
y " = 0 * y ' + -4 * y +cos(x); Y(a) = 0 Y ' (a) = 0 Para x= 0 ky1 = 0.196349540849362*(0) = 0 ku1 = 0.196349540849362*(0*0 - 4*0 + cos(0)) = 0.196349540849362 ky2 = 0.196349540849362*(0 +0.196349540849 y " = 0 * y ' + -4 * y; Y(a) = 0 Y ' (a) = 1 /2 ) = .01927657109587 Para x= 0 ku2 = 0.196349540849*(0*0.098174770425 ky1 = 0.196349540849*(1) = 0.196349540849 4*0 + cos(0.098174770424)) = 0.195404064142 ku1 = 0.196349540849*(0*1 - 4*0) = 0 F. Antoine S.
A. Sangiacomo C.
72
Capítulo 3
ky2 = 0.196349540849*(1+0/2 ) = 0.196349540849362 ku2 = 0.196349540849362*(0*1 4*0.098174770425) = -0.0771062843835106 ky3 = 0.196349540849362*(1 0.0771062843835/2 ) = 0.188779649081711 ku3 = 0.196349540849362*(0*0.961446857808245 4*0.098174770425) = -0.0771062843835 ky4 = 0.196349540849362*(1 0.0771062843835) = 0.181209757314059 ku4 = 0.196349540849362*(0*0.922893715616 - 4*0.188779649082) = - 0.148267189676 1 wg[1]= 0.191302946337595 wg[2]= 0.923884612131728 Para x= 0.196349540849362 ky1 = 0.196349540849*(0.923884612131728) = 0.181404319389856 ku1 = 0.196349540849*(0*0.923884612132 4*0.1913029463376) = -0.1502489827061 ky2 = 0.196349540849*(0.923884612132 0.1502489827061/2 ) = 0.166653660006 ku2 = 0.196349540849*(0*0.8487601207787 4*0.282005106032) = -0.2214862923467 ky3 = 0.196349540849*(0.923884612131728 0.221486292346/2 ) = 0.159659953487 ku3 = 0.196349540849*(0*0.813141465958 4*0.2746297763407) = - 0.215693721952 ky4 = 0.196349540849*(0.923884612132 0.215693721952) = 0.139052956120 ku4 = 0.196349540849*(0*0.708190890179 4*0.350962899824) = - 0.275645616942 2 wg[1]= 0.353483696753531 wg[2]= 0.707175507424015 Para x= 0.392699081698724 ky1 = 0.13885358618262 ku1 = - 0.277625446221163 ky2 = 0.11159777173580 ku2 = - 0.332153122005653 ky3 = 0.106244529683874 ku3 = - 0.321449788701439 ky4 = 0.075737067764968 ku4 = - 0.361069704705904 3 wg[1]= 0.461862906218022 wg[2]= 0.382858678700473 Para x= 0.589048622548086 ky1 = 0.075174125773031 ku1 = - 0.362746278285043 ky2 = 0.0395615931799898 ku2 = - 0.392267088443616 ky3 = 0.0366633944199212 ku3 = - 0.378282079597363 ky4 = 0.0008986131325472 ku4 = - 0.391541640926365 4 wg[1]= 0.499950025235589 wg[2]= 0.000294302818245256
alfa =0 beta =0 Y1(b) =0.235622529223436 Y2(b) =0.499950025235589 0 y1 = 0 y2 = 0 y=0 1 y1 = 0.01896697 y2 = 0.19130295 F. Antoine S.
Método Numéricos para la Solución de Ecuaciones Diferenciales
y = -0.0711926138741102 2 y1 = 0.072238337 y2 = 0.353483697 y = -0.0943557594418203 3 y1 = 0.14954713 y2 = 0.461862906 y = -0.0681252378202706 4 y1 = 0.235622529 y2 = 0.49995002 y=0
3.1.5. Problemas 1.
Use el algoritmo anterior para aproximar la solución de los siguientes problemas de valor de frontera. a) y ' '+ y = 0 , 0 ≤ x ≤ π , y (0) = 1 , y (π ) = −1 . Use h = π / 3 . b) Haga la parte (a) pero para los h = π4 ;
π
; 5
π
; 8
π
10 .
Use el algoritmo anterior para aproximar la solución de los siguientes problemas de valor de frontera. y ' '+4 y = cos( x) , 0 ≤ x ≤ π4 ,
2.
y (0) = 0 , π y ( π4 ) = 0 . Use h = 12 .
3.
Haga ver que el corolario 3.1.3 no se aplica a los siguientes problemas de valor de frontera, pero que el algoritmo lo aproxima aún.
A. Sangiacomo C.
73
Capítulo 3
a)
y ''=
Método Numéricos para la Solución de Ecuaciones Diferenciales
4 2 2 y′ − 2 y + 2 ln( x) , x x x
1 ≤ x ≤ 2 , y (1) = 12 , y (2) = ln(2) . π Use h = 12 .
4.
Use h =
π
y (0) = 0 , y (1) =
0 ≤ x ≤ π4 ,
y ' '+4 y = cos( x ) , y( π ) 4
π
= 0 . Use h = 12 .
Haga ver que el corolario 3.1.3 no se aplica a los siguientes problemas de valor de frontera, pero que el algoritmo lo aproxima aún. 4 2 2 a) y ' ' = y′ − 2 y + 2 ln( x) , 5.
x
x
x
1 ≤ x ≤ 2 , y (1) = , y (2) = ln(2) . 1 2
π
Use h = 12 . b) y ' ' = − y ,
6.6. − y ' '+ y = x ; y (0) = 1 ; y (1) = 1 + e −1 . 6.7. y ' '− x = sin( x) ;
40 .
Use el algoritmo anterior para aproximar la solución de los siguientes problemas de valor de frontera.
y ( 0) = 0 ,
y (0) = 0 = y (1) . Sol: y = ( x − 1)e − x . 6.5. − y ' '+4 y = 4 x(1 − e −2 ) ; y (0) = 0 = y (1) .
b) y ' ' = − y , 0 ≤ x ≤ π4 , y (0) = 1 , y ( π4 ) = 1 .
w=25; P=500; E= 12(105 ) ; I=5.72 y(0)=0; y(L)=y(3)=0 6.4. y ' ' = −( x + 1) y '+2 y + (1 − x 2 )e − x ;
Sol: y = x +
x3 6
7 6
− sin(1)
− sin( x)
6.8. y ' ' = ln( x) ; y (1) = 54 , y (2) = 2 ln(2) . Sol: y =
x2 2
(ln( x) − 32 ) + x + 1
x2 2
+1
6.9. xy' ' = y ' ; y (0) = 1 , y (2) = 3 . Sol: y =
6.10. ( x 2 + 1) y ' ' = 2 xy ' ; y (0) = 1 , y (2) = 15 . Sol: y = x 3 + 3 x + 1 6.11. y ' '−tan( x) y '+2 y = 0 ;
y (0) = 0 , y ( π4 ) = 1.42200152559493
Sol: y = sin( x) + (1 − sin( x) ln(tan( π +42x ))) 6.12. y ' '− x x−1 y '+ x1−1 y = x − 1
y (0) = 0 , y (1) = e + 1
Sol: y = e x + 3 x − x 2 − 1 6.13. y ' '−
2x x 2 +1
y '+
2 x +1 2
y=0
y (0) = −1 , y(1)=1. Sol: y = x + ( x 2 − 1)
0 ≤ x ≤ π4 ,
y ( π4 ) = 1 . Use h =
y ( 0) = 1 ,
π
40 .
6.14. (3x + 2 x 2 ) y ' '−6(1 + x) y '+6 y = 6 y (1) = 6 , y(2)=15. Sol: y = x 3 + 2 x + 3 .
6. Varios:
6.1. y ' '+ xy = x 3 −
4 x3 2
; y(1) = −1; y(2)=3.
Solución: y = x − 2 / x 6.2. y ' ' = 3 x + 1 ; y(0)=0; y(1)=0. 6.3. EI y ' ' = Py − F. Antoine S.
wx 2 2
;
3.2. Método del Disparo para Ecuaciones Diferenciales Ordinarias No Lineales A. Sangiacomo C.
74
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
solución del problema de valor de La técnica del disparo para un frontera (6). problema no lineal de valor de Lo que aquí se ve claramente es un disparo a un blanco, con frontera de segundo orden diferentes pendientes como se y ' ' = f ( x, y, y′) , a ≤ x ≤ b , muestra en la figura y (a ) = α , y (b) = β . (6) Las soluciones previas son iguales al caso lineal, lo que diferencia el caso es al final pues no se puede expresar como una simple combinación lineal de las soluciones de dos problemas de valor inicial. Debemos usar una sucesión de soluciones al Figura 3. problema de valor inicial dado por El cambio de la pendiente y ' ' = f ( x, y, y′) , a ≤ x ≤ b , y′(a ) = t k , partiendo de t0 nos va y (a) = α , y′(a ) = t , (7) acercando al valor de β, en cuanto cambiemos apropiadaque involucran un parámetro t, mente los valores de t , así k para aproximar la solución de sucesivamente con la idea de que nuestro problema de valor de se debe cumplir (8), en la figura 4 frontera. Esta t lo escogemos de se muestra un conjunto de forma discreta, o sea, t = t k y que disparos: al final cumpla lím = y (b, t k ) = y (b) = β ,
k →∞
(8)
donde y ( x, t k ) denota la solución del problema de valor inicial (7) con un valor particular de t y como de costumbre y(x) es la
F. Antoine S.
A. Sangiacomo C.
75
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
Figura 4.
k 2,1 = h ⋅ (u +
Con las hipótesis del teorema y ( x, t ) para 3.1.1 y con representar la solución del problema de valor inicial (6) el problema de escoger el parámetro t de la pendiente y′(a ) = t k para disparar, se convierte en un problema de determinar t tal que y (b, t ) − β = 0 .
(9)
Como esta es una ecuación no lineal, se dispone de una serie de métodos (Bisección, Secantes, . . . (ver el apéndice B.1 del final)) para encontrar sus raíces. Por ejemplo si usamos el método de la Secante, necesitamos escoger dos aproximaciones iniciales t0 y t1 generando con estas la sucesión iterativa para t t k +1 = t k −
( y (b, t k ) − β )(t k − t k −1 ) , y (b, t k ) − y (b, t k −1 )
k = 1, 2, …
(10)
k1, 2 ), 2
k 2, 2 = h ⋅ f ( x + h2 , y f +
k 3,1 = h ⋅ (u +
k 2, 2 2
k1,1 k , u + 12, 2 ) , 2
),
k3,2 = h ⋅ f ( x + h2 , y f +
k 2,1 2
,u +
k 2, 2 2
),
k 4,1 = h ⋅ (u + k3,2 ) ,
k 4,2 = h ⋅ f ( x + h, y f + k3,1 , u + k3, 2 ) , y f = y f + (k1,1 + 2k 2,1 + 2k3,1 + k 4,1 ) / 6 , u = u + (k1,2 + 2k 2, 2 + 2k 3,2 + k 4,2 ) / 6
x = x + h ; wyf,i+1=yf; wui+1=u; terminar Retornar
{Retorno al lugar de llamado}
Paso 3: Entrar a, b, y las α, β. {intervalo, condiciones de } Entrar ER, t , t0 ; {frontera, error permisible, pendientes} Paso 4: Hacer h = (b − a) / N ;
tx = t
Paso 5: Mientras t x − t0 > ER Hacer
yf =α ,
{ inicio de proceso iterativo
u = t0 , t = t x { de método de la secante}
Efectuar paso 2; { ir y retornar} wt = y f , y f = α , u = t , Efectuar paso 2;
tx = t −
{ ir y retornar}
( y f − β )(t − t 0 ) ( y f − wt )
,
{ fórmula de la secante}
t0 = t Paso 5: Para i = 1 hasta N hacer Publicar (i; wui ; wy f , i = Y ′f i ) Paso 6: Parar.
3.2.1. Algoritmo de Disparo No 3.2.2. Ejemplo Lineal Resolver Usando el algoritmo Paso 1: Definir y ' = u ; y ′′ = f ( x, y, u ) . desarrollado arriba para {EDO no lineal despejada} Paso 2: Para i = 0 hasta N-1 hacer aproximar el problema de valor {Procedimiento repetido} de frontera empezar k1,1 = h ⋅ u , k1, 2 = h ⋅ f ( x, y f , u ) ,
F. Antoine S.
y ' ' = 18 (32 + 2 x 3 − yy′) , 1 ≤ x ≤ 3 , A. Sangiacomo C.
76
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
y (1) = 17 ,
y (3) = 43 / 3 .
Solución: (La solución exacta es y ( x ) = x 2 + 16x ). En este caso usamos el método de la secante como en el algoritmo: Usando Runge-Kutta de un paso:
k y1 = −44.8390241 018 ,
ku1 = 103.7829262163 , k y 2 = 58.9439021145 , ku 2 = 51.9308984795 , k y 3 = 7.0918743777
ku 4 = 332.382552 3499 ,
originando y (b, t ) = 14.3333658390
k y1 = 2(-22.2195120509 ) = - 44.4390241018
t k +1 = t k − 102.9329262163 ) 2
= 58.4939021145 − 44.4390241018 ) 2 102.9329262163 (−22.2195120509 + )) 2
50.1637033737 ) 2 58.4939021145 ku 3 = 2 18 (32 + 2(2) 3 − (17 + )) 2 50.1637033737 (−22.2195120509 + ) 2 k y 3 = 2(-22.2195120509 +
u = 57.8528155789
.
( y (b, t k ) − β )(t k − t k −1 ) y (b, t k ) − y (b, t k −1 )
t k +1 = −22.419512051 − (
− 0.000006502 ) − 2.228613168
t k +1 = −22.419514968
ku 2 = 2 18 (32 + 2(2) 3 − (17 +
= 50.1637033737
;
Calculando nuevo t
= 102.9329262163 k y 2 = 2(-22.2195120509 +
ku 3 = −29.1966548 733 ,
k y 4 = −103.2323338485 ,
y′(1) = t0 = −22.2195120509 ku1 = 2 ⋅ 18 (32 + 2(1) 3 − (17)(−22.2195120509)
,
Así sucesivamente, en las tablas de abajo se ven cálculos semejantes.
= −21.0936202637 k y 4 = 2(-22.2195120509 − 21.0936202637)
= −86.6262646293 k u 4 = 2 ⋅ 18 (32 + 2(3) 3 − (17 + 5.7246792720)
(−22.2195120509 − 21.0936202637)) = 267.5692600287 ,
originando
Para Runge-Kutta con de un paso (dos iteraciones): x
wi
yi′
y (x)
0 1
1.0 3.0
17.0000000000
-22.4205623460
17.0000000000
0.00
14.3214994635
57.9011581640
14.3333333333
1.2 ⋅10−3
0 1
1.0 3.0
17.000000000
-22.4195120509
17.0000000000
0.00
14.3333658394
57.8528155773
14.3333333333
3.3 ⋅10 −5
n
Error
y (b, t ) = 16.561979007 ; u = 49.2208800 266 . y ′(1) = t1 = −22.4195120509 F. Antoine S.
A. Sangiacomo C.
77
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
Para Runge-Kutta con 4 pasos (una iteración): n 0 1 2 4
x
wi
yi′
1.0 1.5
17.0000000000
-14.2353486725
12.9604508918
2.0 3.0
12.0235377667 14.3333334761
y (x)
Error
17.0000000000
0.00
-4.2120037027
12.9166666667
4.4 ⋅ 10
0.0507659518
12.0000000000
2.4 ⋅ 10
4.2100836839
14.3333333333
1.4 ⋅ 10 −7
−2
−2
Label5: TLabel; Button1: TButton; Button2: TButton; Edit7: TEdit; Memo2: TMemo; Label6: TLabel; Label7: TLabel; Edit6: TEdit; Edit8: TEdit; Label8: TLabel; Label9: TLabel; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); Procedure Calculo(sender: TObject); end; _r = double; _i = integer; _s = string; _v = array [0..200] of _r; _m = array [0..4] of _v; var Disp_No_Lin1: TDisp_No_Lin1; wj, v1, v2, dis1, dis2, wjj :_v; kj :_m; mm, Lx :_i; Lim_a, lim_b, h, alfa, Beta, error, Pendi :_r; Matriz_s : _s; Math11 : _m; implementation
Para Runge-Kutta con 10 pasos (una iteración): yi′
y (x)
n
x
0 1
1.0 1.2
17.0000000000
-14.0036220956
17.0000000000
14.7743907503
-8.7144592403
14.7733333333
1.4
13.3896722079
-5.3658323952
13.3885714286
1.6
12.5609215155
-3.0519237789
12.5600000000
4
1.8
12.1296020909
-1.3397231076
12.1288888889
5
2.0
12.0005250725
6
2.2
12.1130946718
7
2.4
12.4269062532
8
2.6
12.9139844107
2.8326478867
12.9138461539
2.8
13.5543453145
3.5588239506
13.5542857143
3.0
14.3333333333
4.2219676959
14.3333333333
2 3
9 10
wi
-0.0011059849 1.0933678827 2.0215752758
Error 0.00 1.1
⋅10 −3
1.1
⋅10 −3
9.2
⋅10 −4
7.1
⋅10 −4
5.3
⋅10 −4
3.7
⋅10 −4
2.4
⋅10 −4
1.4
⋅10 −4
6.0
⋅10 −5
12.0000000000 12.1127272727 12.4266666667
0.0
Tabla 1.
3.2.3. Programa en Pascal
{ES SÓLO MODIFICAR EL PROGRAMA 2.5.5 } { Método_Disparo_no_Lineal_R_K_para_S; E.D. de primer orden} unit Run_DisNo1_1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TDisp_No_Lin1 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label4: TLabel; Edit4: TEdit; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Edit5: TEdit;
F. Antoine S.
{$R *.DFM} procedure TDisp_No_Lin1.Button2Click(Sender: TObject); begin Close; end; procedure TDisp_No_Lin1.FormCreate(Sender: TObject); begin CheckBox1.Checked:=true; Memo2.Clear; end; Procedure TDisp_No_Lin1.Calculo(sender: TObject); var m:_i; t:_r; sx1, s : _s; aa : _v; Procedure funcion(va : _v; var vR : _v); begin { Poner aqui el SISTEMA de EDO No Lineal} vr[1]:=va[2]; vr[2]:=4+va[0]*va[0]*va[0]/4-va[1]*va[2]/8; //(32+2*x^3-y'*y)/8 end; function f(ii : _i; va : _v) : _r; {función de cálculo} begin funcion(va,va); f := va[ii] end; procedure recal(vx,v:_v); var i,k:_I; procedure ir_;var j:_I; begin for j:=1 to MM do begin kj[i,j]:=h*f(j,v); end; end; begin {calculo de los Kij[ ]}m:=0;t:=vx[1]; h:=(vx[2]-vx[1])/lx;wj:=v1; str(t:1:8,sx1);// memo2.Lines.Add(' Ya = '+ FloatToStr(wj[1]) +' Y '+chr(39)+'a = '+ FloatToStr(wj[2])); repeat m:=m+1 ; i:=1; v[0]:=t; for k:=1 to MM do v[k]:=wj[k]; ir_; i:=2; v[0]:=t+h/2;for k:=1 to MM do v[k]:=wj[k]+kj[1,k]/2; ir_; i:=3; v[0]:=t+h/2;for k:=1 to MM do v[k]:=wj[k]+kj[2,k]/2; ir_; i:=4; v[0]:=t+h; for k:=1 to MM do v[k]:=wj[k]+kj[3,k]; ir_; {calculo de wij[ ]} for k:=1 to MM do begin wj[k]:=wj[k]+(kj[1,k]+2*kj[2,k]+2*kj[3,k]+kj[4,k])/6; if k=1 then wjj[m]:=wj[k]; end; Memo2.Lines.Add(' wj '+ FloatToStr(wj[1])); t:=t+h Until lx<=m; end; procedure Disapro_no_lineal; var tx,ty,td,tw:_r;c:char; {NUEVO DISPARO} begin tx:=Pendi+pendi/500;ty:=v1[1]; td:=Pendi; v1[2]:=tx; v1[1]:=ty; recal(v2,v1);tw:=wjj[m]; repeat Pendi:=td; v1[2]:=td; v1[1]:=ty; recal(v2,v1); // calcular por Runge - Kutta td:=Pendi-(wjj[m]-beta)*(Pendi-tx)/(wjj[m]-tw); sx1:=FloatToStrF(td,ffGeneral,10,10)+' = '; sx1:=sx1+FloatToStrF(pendi,ffGeneral,10,10)+' - ('; sx1:=sx1+FloatToStrF(wjj[m]-beta,ffGeneral,10,10)+ ') * ('+FloatToStrF(pendi-tx,ffGeneral,10,10)+' / '; sx1:=sx1+FloatToStrF(wjj[m]-tw,ffGeneral,10,10)+' )'; Memo2.Lines.Add(sx1); tx:=Pendi;v1[1]:=ty;tw:=wjj[m]; until abs(Pendi-td)
200 then Lx:=200; Pendi := StrToFloat(Edit5.text); Error := StrToFloat(Edit6.text); if CheckBox1.Checked then memo2.Clear; beta:= v1[2];v1[2]:=pendi; Calculo(Sender); end; End.
3.2.4. Problemas Use el algoritmo para aproximar la EDO con valor de frontera y ' ' = −( y′) 2 − y + ln( x) , 1 ≤ x ≤ 2 , y (1) = 0 , y (2) = ln(2) . h = 0.5, 0.4, 0.25, 0.1 . La Con solución exacta es y( x) = ln( x) . 2. Use el algoritmo para aproximar la EDO con valor de frontera 1.
y ''=
xy′ − y
y (1) = −1 ,
x2
, 1 ≤ x ≤ 1 .6 ,
y (1.6) = −0.847994 .
Con h = 0.15, 0.04, 0.025, 0.1 . 3. Resolver los problemas del ítem 3.4.9. 4. Desarrollar el método de Newton para aproximar la ecuación diferencial ordinaria no lineal como en el punto 3.2. 3.3. Métodos de Diferencias Finitas para Problemas Lineales F. Antoine S.
El problema lineal de segundo orden de valor de frontera y ' ' = p ( x) y ′ + q ( x) y + r ( x) , a ≤ x ≤ b , y (a) = α , y (b) = β ,
(1)
requieren que se usen diferencias finitas cocientes para aproximar y′ y y′′ . Para esto tenemos que seleccionar un número N > 0 y dividimos el intervalo [a, b] en (N+1) subintervalos, cuyos puntos extremos son los de red xi = a + ih , para i = 0, 1, …, h = (b − a ) /( N + 1) . N+1, donde Escogiendo la constante h así facilitará la aplicación de un algoritmo de matrices, de dimensiones N×N. En los puntos o nodos interiores de red i = 1, 2, …, N, la ecuación diferencial a aproximar es y ' ' ( xi ) = p( xi ) y′( xi ) + q( xi ) y ( xi ) + r ( xi ) , (2)
Mediante la expansión de Taylor de tercer grado alrededor de xi y la evaluación en los puntos xi +1 y xi −1 nos da la fórmula y ' ' ( xi ) =
y ( xi +1 ) − 2 y ( xi ) + y ( xi −1 ) h2
−
h 2 ( 4) y ( qi ) , 12
A. Sangiacomo C.
79
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
(3)
qi , algún punto xi −1 < qi < xi +1 . La ecuación (3) se llama fórmula de diferencias finitas centrales para y ' ' ( xi ) . También tendremos en cuenta la fórmula para las derivadas de primer orden
para
y ′( xi ) =
y ( xi +1 ) − y ( xi −1 ) h 2 − 2h 6
= −r ( xi )
(5)
para cada i = 1, 2, …, N. Si reorganizamos la ecuación (5) nos quedará una forma más manipulable como
⎛ hp( xi ) ⎞ 2 − ⎜1 + ⎟wi −1 + (2 + h q( xi ))wi 2 ⎠ ⎝ ⎛ hp( xi ) ⎞ 2 − ⎜1 − ⎟ wi +1 = −h r ( xi ) , (3) y (ri ) , (4) 2 ⎠ ⎝
para
algún punto xi −1 < ri < xi +1 . El uso de esta fórmula diferencias centrales en ecuación (2) da lugar a ecuación y ( xi +1 ) − 2 y ( xi ) + y ( xi −1 ) h2
ri ,
de la la
=
y ( xi +1 ) − y ( xi −1 ) + q ( xi ) y ( xi ) 2h h 2 (3) h 2 ( 4) + r ( xi ) − y (ri ) − y (qi ) 6 12
= p ( xi )
Un método de diferencias finitas con un error de truncamiento de orden O(h 2 ) resulta de usar esta ecuación junto con las condiciones de frontera y (a) = α y y (b) = β para definir
Red unidimensional para una lámina. Figura 5.
y el sistema resultante de ecuaciones se expresa en al forma matricial tridiagonal de N×N que mostramos Aw = b ,
(6)
donde la matriz A se presenta así hp(x1) ⎤ ⎡ 2 0 0 L ⎥ ⎢2 + h q( x1) −1 + 2 ⎥ ⎢ hp(x2 ) hp( x2 ) ⎥ ⎢−1 − 2 + h2q( x2 ) −1 + O M 2 2 ⎥ ⎢ 0 O O O ⎥ ⎢ 0 hp(xN −1) hp( xN −1) ⎥ ⎢ M 2 1 2 ( ) 1 h q x O − − + − + − N 1 ⎢ 2 2 ⎥ ⎥ ⎢ hp(xN ) 0 2 + h2q( xN ) ⎥ L −1 − ⎢ 0 2 ⎦ ⎣
w0 = α , wN +1 = β ,
y
2wi − wi +1 − wi −1 h
F. Antoine S.
2
+ p( xi )
wi +1 − wi −1 + q( xi ) wi , 2h A. Sangiacomo C.
80
Capítulo 3
⎡ w1 ⎤ ⎢w ⎥ ⎢ 2 ⎥ w=⎢ M ⎥ ⎢ ⎥ ⎢ w N −1 ⎥ ⎢⎣ w N ⎥⎦
Método Numéricos para la Solución de Ecuaciones Diferenciales
,y
⎤ ⎡⎛ hp( x1 ) ⎞ ⎟⎟ w0 − h 2 r ( x1 ) ⎥ ⎢⎜⎜1 + 2 ⎝ ⎠ ⎥ ⎢ 2 ⎥ ⎢− h r ( x1 ) ⎥ b = ⎢⎢ M ⎥ ⎥ ⎢− h 2 r ( x N −1 ) ⎥ ⎢ 2 ⎥ ⎢⎛⎜1 − hp( x N ) ⎞⎟ w h r ( x ) − N +1 N +1 ⎥⎦ ⎢⎣⎜⎝ 2 ⎟⎠
− 2 y ' ' ( x) + y ( x) = e −0.2 x , 0 ≤ x ≤ 10 , y (0) = 1 , y(10) = 4 .
Usando h = 1 . Solución:
Para garantizar una solución única del sistema tridiagonal En la ecuación diferencial las fórmulas lineal (6) enunciaremos el reemplazamos equivalentes de y′′ y y′ por sus siguiente teorema: valores en diferencias finitas de 3.3.1. Teorema (3) y (4). Supóngase que p, q y r son continuas en [a, b] . Si q ( x ) ≥ 0 en [a, b] , entonces el sistema Figura 6. lineal tridiagonal (6) tiene solución única siempre que De la retícula mostrada en la h < 2 / L donde L = máx p (x) . a ≤ x ≤b figura las ecuaciones en los Este teorema en sus hipótesis nodos i = 1, 2, …, 9 son los garantiza la solución única del siguientes problema de valor de frontera (1), pero no garantiza que y ∈ C 4 [a, b] sea continua. Este requisito de la continuidad es necesario para que el error de truncamiento sea de orden O(h 2 ) . 3.3.2. Ejemplo
2(− yi −1 + 2 yi − yi +1 ) + yi = e −0.2i ,
donde se deja notar que xi = i en este caso particular. Para los extremos tenemos que sustituir la condición de frontera izquierda y0 = y (0) = 1 , en las ecuaciones anteriores y nos queda:
Determinar las ecuaciones en 5 y1 − 2 y2 = e −0.2 + 2 , diferencias para el siguiente problema con valor de frontera y derecha y10 = y (10) = 4 dando F. Antoine S.
A. Sangiacomo C.
81
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
− 2 y8 + 5 y9 = e −1.8 + 8 .
Poniéndolo problema
como
Los espacios vacíos son los ceros, pues es una matriz banda. el La forma de resolver consiste en utilizar una variante del método de Gauss, cuya presentación es:
sistema =1
y0
= e −0 .2 + 2
5 y1 − 2 y2
2( − yi −1 + 2 yi − yi +1 ) + yi = e −0.2i ,
para i = 2, 3, …, 8 − 2 y8 + 5 y9 = e −1.8 + 8
y10 = 4 .
Cualquier método para resolver sistemas lineales existentes, permite encontrar la solución al problema de frontera.
3.3.4. Algoritmo de Tridiagonales Paso 1: Asimilar (7). {Cargar los datos de tridiagonal } Paso 2: Iniciar las variables Paso 3: Para i = 2 hasta N hacer {eliminar las Ci de (7)} Paso 4: T = Ai / Bi −1 , Paso 5: Bi = Bi − TCi −1 , Paso 6: Di = Di − TDi −1 . Paso 7: Calculamos wN = DN / BN Paso 8: Para i = N-1 hasta 2 hacer {proceso hacia atrás}
wi = ( Di − Ci wi −1 ) / Bi
El sistema tridiagonal anterior Paso 9: Parar. tiene solución particular la cual es bastante fácil y es como sigue: 3.3.5. Algoritmo de Diferencias Finitas para el Problema Lineal 3.3.3. Solución de Sistemas por Paso 1: Definir p (x) , q (x) , r (x) . Medio de Tridiagonales Paso 2: Entrar a, b; α, β; N. {Intervalo, valor de frontera y número de pasos}
Para simplificar escribamos el sistema tridiagonal de la forma: ⎡ B1 ⎢A ⎢ 2 ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
C1 B2
C2
A3
B3
C3
O
O Ai
O Bi Ci O O
AN
⎤ ⎡ w1 ⎤ ⎡ D1 ⎤ ⎥ ⎢w ⎥ ⎢ D ⎥ ⎥⎢ 2 ⎥ ⎢ 2 ⎥ ⎥ ⎢ w3 ⎥ ⎢ D3 ⎥ ⎥ ⎥⎢ ⎥ ⎢ ⎥ ⎢M ⎥ = ⎢M ⎥ ⎥ ⎢ wi ⎥ ⎢ Di ⎥ ⎥ ⎥⎢ ⎥ ⎢ C N −1 ⎥ ⎢M ⎥ ⎢M ⎥ B N ⎥⎦ ⎢⎣ w N ⎥⎦ ⎢⎣ D N ⎥⎦
(7)
Paso 3: Hacer h = (b − a ) /( N + 1) , Paso 4: Para i = 1 hasta N hacer Paso 5: x = a + ih , Paso 6: Bi = 2 + h 2 q ( xi );
Paso 7: Si i < N Ci = −1 + hp( xi ) / 2 ; Paso 9: Ai = −1 − hp( xi ) / 2; Paso 10: Si i=1 Di = −h 2 r ( xi ) + (1 + hp( xi ) / 2)α Si i=N Di = −h 2 r ( xi ) + (1 − hp( xi ) / 2) β En otro caso Di = −h 2 r ( xi ) . Paso 11: Ir a algoritmo tridiagonal y resolver el sistema Paso 12: Para i=0 hasta N+1 hacer
F. Antoine S.
A. Sangiacomo C.
82
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
Publicar (i, xi = a + ih, wi ) . Paso 13: Parar.
Programa en Delphi Pascal para Diferencias Finitas Lineales
3.3.6.
{Programa Ec_Diferenciales_con_Valores_en_la_FRONTERA_p_Tridiagonal; } unit Difere_FintaX2_1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TDifere_Finit1 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Edit4: TEdit; Label2: TLabel; Edit2: TEdit; Label4: TLabel; Label5: TLabel; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Edit3: TEdit; Button1: TButton; Button2: TButton; Memo2: TMemo; Edit5: TEdit; Label3: TLabel; Label6: TLabel; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure publicador; procedure datoS_resultado; Procedure Calculo(sender: TObject); end;// Aquí se define las variables y matrices para usar _r = double; _i = integer; _s = string; _v = array [0..10000] of _r; _m = array [0..4] of _v; var Difere_Finit1: TDifere_Finit1; implementation {$R *.DFM} var Ma, Mb, Mc, bt, r1, v1 :_v; Lx :_i; Lim_a, lim_b, h1, alfa, Beta :_r; sx1, s : _s; procedure TDifere_Finit1.Button2Click(Sender: TObject); begin Close; end; procedure TDifere_Finit1.FormCreate(Sender: TObject); begin CheckBox1.Checked:=true;Memo2.Clear; end; { ****** Y" = p(x)y' + q(x)y + r(x) ***** } function fp(x:_r):_r; begin fp:= -2/x;{ P(x) :=-2/x} end; function fq(x:_r):_r; begin fq:= 2/x/x;{q(x):=2/x^2} end; function fr(x:_r):_r; begin fr:= sin(ln(x))/x/x;{r(x):=sin(ln(x))/x^2} end; procedure resol_Por_tridiagonal;Var i,n1:_i; {tridiagonal } begin n1:=Lx-1; // resuelve el sistema Tridiagonal for i:=2 to n1 do begin mb[i]:=mb[i]-ma[i]*mc[i-1]/mb[i-1]; bt[i]:=bt[i]-ma[i]*bt[i-1]/mb[i-1];ma[i]:=0 end; r1[n1]:=bt[n1]/mb[n1]; for i:=n1-1 downTo 1 do r1[i]:=(bt[i]-mc[i]*r1[i+1])/mb[i]; end;
F. Antoine S.
procedure TDifere_Finit1.publicador;var i:_i; begin if not CheckBox2.Checked then exit; Memo2.Lines.Add(''); for i:=1 to Lx-1 do begin str(ma[i]:1:3,s);sx1:=' Ma['+IntToStr(i)+']= '+s; str(mb[i]:1:3,s);sx1:=sx1+' Mb['+IntToStr(i)+']= '+s; str(mc[i]:1:3,s);sx1:=sx1+' Mc['+IntToStr(i)+']= '+s; str(bt[i]:1:6,s);sx1:=sx1+' bt['+IntToStr(i)+']= '+s; Memo2.Lines.Add(sx1); end; Memo2.Lines.Add(''); end; procedure TDifere_Finit1.datoS_resultado;var i:_i; begin r1[0]:=alfa; r1[Lx]:=beta; Memo2.Lines.Add(' Resultados '); for i:=0 to Lx do begin str(Lim_a+i*h1:1:3,s);sx1 := ' x= '+s; str(r1[i]:1:9,s); sx1 := sx1+' r1['+IntToStr(i)+']= '+s; Memo2.Lines.Add(sx1); end; end;{****************************************} procedure Ecuac_Doferen_fronte;var i:_i; x:_r; begin h1:=(Lim_b-Lim_a)/(Lx); x:=Lim_a+h1; mb[1]:=2+ h1*h1*fq(x); mc[1]:=-1+h1*fp(x)/2; bt[1]:=-h1*h1*fr(x)+(1+h1*fp(x)/2)*alfa; {S(x) o Fuentes} for i:=2 to Lx-2 do begin x:=Lim_a+i*h1; ma[i]:=-1-h1*fp(x)/2; mb[i]:=2+ h1*h1*fq(x); mc[i]:=-1+h1*fp(x)/2; bt[i]:=-h1*h1*fr(x); end; x:=Lim_b-h1; ma[Lx-1]:=-1-h1*fp(x)/2;mc[Lx-1]:=0; mb[Lx-1]:=2+h1*h1*fq(x); bt[Lx-1]:=-h1*h1*fr(x)+(1-h1*fp(x)/2)*beta; end; { ************************************* } Procedure TDifere_Finit1.Calculo(sender: TObject); begin sx1:=' y"(x) = p(x) * y ''(x) + q(x) * y(x) + r(x)'; Memo2.Lines.Add(sx1); str(Lim_a:1:5,s);sx1:=' '+S+' <= x <= '; str(Lim_b:1:5,s);sx1:=sx1+S+' alfa ='+FloatToStr(v1[1]) +' beta ='+FloatToStr(beta); memo2.Lines.Add(sx1); // Ejecuta el método de Diferencia Finita Ecuac_Doferen_fronte; Publicador; Resol_Por_Tridiagonal; Publicador; DatoS_resultado; end; procedure TDifere_Finit1.Button1Click(Sender: TObject); begin Lim_a:= StrToFloat(Edit1.text); // Limite Inferior Lim_b:= StrToFloat(Edit2.text); // Limite Superior // Valores iniciales y Carga de los valores iniciales v1[1]:=StrToFloat(Edit3.text);v1[2]:=StrToFloat(Edit5.text); Lx := StrToInt(Edit4.text); //número de pasos o particiones if Lx>1500 then MessageDlg('Sólo un Máximo de 1500 particiones ! ! ! ', mtConfirmation,[MByes,MBno],0); if Lx>1500 then Lx:=1500; if CheckBox1.Checked then memo2.Clear; alfa:= v1[1]; beta:= v1[2]; Calculo(Sender); // Va a calcular el Método de Diferencias Finitas end; End.
Ejemplo: d x (e y′) + e x y = x + (2 − x)e x , 0 ≤ x ≤ 1 , dx y (0) = y (1) = 0 . Solución: − e x y ' '−e x y '+ e x y = x + (2 − x)e x −
y ' ' = − y '+ y − e − x x − ( 2 − x) b=(2 + 0.0625*1) c=(-1 + 0.25*-1/2) f=(0.0625*(exp(-0.25)*(0.25)+(2-0.25))+0) A. Sangiacomo C.
83
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
a=(-1 - 0.25*-1/2) b=(2 + 0.0625*1) c=(-1 + 0.25*-1/2) f=(-0.0625*-(exp(-(0.5))*(0.5)+(2-(0.5)))) a=(-1 - 0.25*-1/2) b=(2 + 0.0625*1) f=(-0.0625*-(exp(-(0.75))*(0.75)+(2(0.75)))+0) Ma[1]= 0.000 Mb[1]= 2.063 Mc[1]= -1.125 bt[1]= 0.121544 Ma[2]= -0.875 Mb[2]= 2.063 Mc[2]= -1.125 bt[2]= 0.112704 Ma[3]= -0.875 Mb[3]= 2.063 Mc[3]= 0.000 bt[3]= 0.100267
1≤ x ≤ 2,
Usando h = 0.5; 0.1; 0.05; 0.025 . Solución: (La solución exacta y( x) = C1x +
r1[0]= 0 r1[1]= 0.166725653566869 r1[2]= 0.197624798441046 r1[3]= 0.132455214931225 r1[4]= 0
C2 x2
−
3 sin(ln(x)) + cos(ln(x)) ). 10
Aquí resolveremos para h = 0.1 , o sea para n = 10 N
Resultados x= 0 x= 0.25 x= 0.5 x= 0.75 x= 1
y (1) = 1 , y ( 2) = 2 .
0 1 2 3 4 5 6 7 8 9 10
wi
ti 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00
1.0000000000 1.0926005207 1.1870431288 1.2833368702 1.3814020462 1.4811202621 1.5823598957 1.6849890184 1.7888817462 1.8939210992 2.0000000000
Tabla 2.
Problemas: Resolver los problemas del punto 3.1.5. anterior usando el método Usando el algoritmo anterior y el de diferencias finitas. programa daremos solución al ejemplo siguiente. Pero las condiciones se presentan de tres tipos que mostraremos en la tabla y sus respectivas figuras: 3.3.7. Ejemplo Tipo Explicación Ejemplos Resolver por diferencias finitas la EDO con valor de frontera y ' ' = − 2x y′ + F. Antoine S.
2 x2
y+
sin(ln( x)) x2
,
a) condición en la frontera con un valor fijo (Dirichlet) b) condición en la frontera para la
Se da un valor y (0) = 0 de la función y (0) = 1 solución
Se da la y ′(0) = 0 derivada de la y′(0) = 1 solución A. Sangiacomo C.
84
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
derivada (tipo Neumann) c) condición Se relaciona un y′(0) + αy(0) de la en la frontera valor =k de tipo mixto función con la derivada.
Simplificando un poco también tenemos p ( xi ) = pi , q( xi ) = qi , f ( xi ) = f i , y ( xi ) = yi
Tabla 3.
x = xi , en lugar de la para ecuación diferencial (8), la ecuación de las diferencias finitas a
b
c
Figura 7.
Sea la ecuación ordinaria lineal
yi′′ =
h2
diferencial
(8)
con las condiciones de frontera o contorno lineal b0 y (b) + b1 y′(b) = β
yi +1 − yi −1 ; 2h
remplazando yi +1 − 2 yi + yi −1 h
2
a0 y0 + a1
a0 y (a ) + a1 y′(a ) = α , b0 + b1 ≠ 0 .
y′ =
,
para i= 1, 2, …, n.
y ' '+ p ( x ) y ′ + q ( x) y = f ( x ) ,
a0 + a1 ≠ 0 ,
yi +1 − 2 yi + yi −1
,
b0 yn + b1
(9)
+ pi
yi +1 − yi −1 + qi yi = f i , 2h
y1 − y0 =α , h
yn − yn −1 =β. h
esto nos lleva a un sistema de Suponiendo que las funciones ecuaciones lineales tridiagonales p (x) , q (x) y f (x) son continuas de la siguiente forma: en el intervalo [a, b] . De la ecuación (8) pasemos a la (a0 h − a1 ) y0 + a1 y1 = αh ecuación en diferencias finitas. A (1 − pi h ) y + (−2 + h 2 q ) y i −1 i i 2 tal efecto, subdividimos el ph intervalo [ a, b] en n partes de + (1 + i ) yi +1 = h 2 f i , tamaño
h=
xi = x0 + ih ,
i = 0, 1, …, n.
F. Antoine S.
b−a . n
x0 = a ,
2
Ponemos i=1, 2,…n-1 xn = b ,
− b1 yn −1 + (b0 h + b1 ) yn = βh , (10)
que es el caso de mixto.
A. Sangiacomo C.
85
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
Los casos Neumann se tomarán de acuerdo al problema anterior de la fórmula (6, 9, 10) respectivamente para las fronteras izquierda o derecha. Ejemplo: y' ' = y ;
y (0) − 2 y ' (0) = 3 . y (1) + 2 y ' (1) = −e −1 −x Sol: y = e
Solución: y' ' (x) = 0 * y ' (x) + 1 * y(x) + 0 0.00000 <= x <= 1.00000 Con Frontera: 1*y(a) + -2*y ' (a) = 3; 1*y(b) + 2*y ' (b) = - exp(-1). b= 2.2 c= - 2 f= 0.6 a=(-1 - 0.2*0/2) b=(2 + 0.04*1) c=(-1 + 0.2*0/2) f=(-0.04*0) a=(-1 - 0.2*0/2) b=(2 + 0.04*1) c=(-1 + 0.2*0/2) f=(-0.04*0) a=(-1 - 0.2*0/2) b=(2 + 0.04*1) c=(-1 + 0.2*0/2) f=(-0.04*0) a=(-1 - 0.2*0/2) b=(2 + 0.04*1) c=(-1 + 0.2*0/2) f=(-0.04*0) a= -1.8 b= 2 f= -0.0735758882342885
Resultados x= 0 r1[0]= 1.07197046068192 x= 0.2 r1[1]= 0.879167506750107 x= 0.4 r1[2]= 0.721531253088303 x= 0.6 r1[3]= 0.592756249550031 x= 0.8 r1[4]= 0.487691495993761 x= 1 r1[5]= 0.40213440227724
Lineal con Valores en Frontera para Diferencias Finitas Una ecuación diferencial ordinaria es no lineal si la incógnita y aparece en forma no lineal, o bien si sus coeficientes dependen de la solución. Por ejemplo una ecuación de conducción del calor en un tubo refrigerante se vuelve no lineal si existe transferencia de calor por radiación hacia afuera de la superficie. En física matemática, en los problemas de reactores es donde ocurren la mayoría de estos fenómenos. Los métodos para la solución de problemas no lineales con valores de frontera requieren de la aplicación iterativa de un método para resolver los problemas lineales. Analizaremos el proceso iterativo en un problema particular para después pasar al método con el uso de sistemas no lineales de Newton.
Problemas: Resolver los problemas del punto Consideremos la ecuación 3.1.5. anterior usando el método diferencial ordinaria no lineal de diferencias finitas. y2 − y ' '+ = e− x , 0 ≤ x ≤ b , 3.4. Problema de Ecuaciones Diferenciales Ordinarias No F. Antoine S.
100 y (0) = 0 , y (b) = 0 .
A. Sangiacomo C.
(11)
86
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
Observación: Para dar una xk ∈ [0, b] y se desarrolla como aclaración a los algoritmos de sigue: solución numérica, debemos ver lo siguiente. En primer lugar, a 1) Se hace una primera diferencia de los lineales, no se estimación de g(x); por garantiza la existencia de la podemos hacer solución. En segundo lugar, un ejemplo problema no lineal con valores en g ( x) = 0.01 (o sea, un y = 1 de la frontera puede tener más de (12)). una solución. De hecho, mediante 2) Se resuelve la ecuación (11) y un algoritmo iterativo se podría resolvemos la EDO lineal obtener distintas soluciones con −x distintas estimaciones iniciales. − y ' '+0.01 ⋅ y = e , con valores Por lo tanto, al obtener una en la frontera. solución numérica hay que 3) Aquí se toma como nuevo g a investigar si tiene significado la solución de y anterior y se físico. actualiza g ( x) = 0.01 ⋅ y ( x) , para 3.4.1. Primer método: de todo x en [0, b] . sustitución sucesiva. La ecuación 4) Si g i +1 ( x) − g i ( x) ≤ ER ir al (11) la ponemos de la forma paso 5, en otro caso se regresa −x − y ' '+ g ( x) y = e (12) a al paso 2. Aquí ER es la tolerancia. donde 5) Publicar la solución. y g ( x) = . 100
El método es una extensión del método de sustitución sucesiva para la solución de ecuaciones no lineales de una variable. Lo que creamos es una sucesión de valores de g { g i ( xk ) } in= 0 , tal que
F. Antoine S.
3.4.2. Segundo método: (llamado método de Newton). Supongamos que disponemos de una primera estimación de la solución de y, la cual denotaremos por w(x) . Y la solución exacta la expresaremos como A. Sangiacomo C.
87
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
y ( x) = w( x) + δ w( x) ,
(13)
donde δ w( x) es una corrección de la estimación. Reemplazando (13) en (11) nos queda 1 ( w 2 + 2 w δ w + (δ w) 2 ) = e − x , 100 1 1 2 − δ w ' '+ w + e−x . (2w δ w + (δ w) 2 ) = w ' '− 100 100 − ( w ' '+δ w′′) +
(14)
Si despreciamos queda − δ w ' '+
(δ w) 2 ,
La ecuación linealizada asociada es: − δ w ' '+
2 1 2 ( w ⋅ δ w) = w ' '− w + e− x . 100 100
Con un h = 0.2 , escribimos las ecuaciones en diferencias para este caso de las funciones δ w p : 2 (h 2 wi ⋅ δ wi ) = 100 1 2 2 = wi −1 − 2 wi + wi +1 − h wi + h 2 e − ih 100
− δ wi −1 + 2δ wi − δwi +1 +
nos
2 1 2 w + e− x , ( w ⋅ δ w) = w ' '− 100 100 (15)
donde xi = ih , esta ecuación la cual se puede resolver como puede ponerse en la forma una EDO lineal con valores en la tridiagonal frontera. Siendo entonces haciendo lo que sigue w( x ) + δ w ( x ) una solución ⎡2 + 0.02h w ⎤ −1 0 0 L ⎢ ⎥ aproximada de (11). −1 2 + 0.02h w O M ⎢ −1 ⎥ 2
1
2
3.4.3. Ejemplo
⎢ ⎢ ⎢ ⎢ ⎣
2
0 M 0
O O L
O
O
⎥ ⎥ −1 ⎥ 2 + 0.02h2wN ⎥⎦ 0
−1 2 + 0.02h wN −1 −1 0 2
Resolver el problema EDO con y los Di son dados por valor en la frontera 1 − y ' '+
2
y = e− x , 0 ≤ x ≤ 2 , 100 y (0) = 0 , y (2) = 0 .
Di = wi −1 − 2wi + wi +1 −
100
h 2 wi2 + h 2e − ih
para i = 1, 2, …, 9. Empezamos la iteración con la estimación inicial wi = 0 . Solución: Después de la primera 0 w = 0 hallamos la aproximación i Usaremos el segundo método de aproximaciones sucesivas segunda por w1i = wi0 + δ wi0 , quedando para el lector la δ wi0 es el primer cálculo donde primera forma. F. Antoine S.
A. Sangiacomo C.
88
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
y proseguiremos así sucesivamente hasta cumplir la tolerancia. Los resultados se muestran en las tablas 4 de valores y de errores: n
ti
w1i
wi2
wi3
0 1 2 3 4 5 6 7 8 9 10
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0
0.000000000 0.094451926 0.156154623 0.191053011 0.204010217 0.199006585 0.179299696 0.147555383 0.105954996 0.056283224 0.000000000
0.000000000 0.094439485 0.156133309 0.191024081 0.203976985 0.198973372 0.179270418 0.147532550 0.105939511 0.056275099 0.000000000
0.00000000000 0.09443948599 0.15613330937 0.19102408197 0.20397698519 0.19897337250 0.17927041832 0.14753255082 0.10593951111 0.05627509994 0.00000000000
n
ti
δ w1i
δ wi2
δ wi3
0 1 2 3 4 5 6 7 8 9 10
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0
0.000000000 -0.000012440 -0.000021314 -0.000028929 -0.000033232 -0.000033213 -0.000029278 -0.000022832 -0.000015485 -0.000008124 0.0000000000
0.000000000 -0.000000000 -0.000000000 -0.000000000 -0.000000000 -0.000000000 -0.000000000 -0.000000000 -0.000000000 -0.000000000 0.000000000
0.000000000 0.094451926 0.056154623 0.091053011 0.104010217 0.099006585 0.079299696 0.047555383 0.005954996 -0.043716775 0.000000000
Tabla 4.
3.4.4. Programa en Pascal para el Caso No Lineal por Iteraciones de Newton { No lineales por iteraciones MODIFICAR EL PROGRAMA 3.3.6.} { diferencias finitas } Program Ec_Dif_c_Val_e_l_FR_Tridiagonal_Diferencial_no_Lineal; Uses crt; Type _t=text; _r=double; _i=integer; _v=array[0..100] of _r;_s=string; Var alf,bet,h1,error1,error:_r; ma,mb,mc,bt,r1,r2:_v; c:char; x,la,lb :_r; xi1,xi2,n:_i; _as:array[0..3] of _s; Procedure sonido; var xi:_i; Begin for xi:=1 to 10 do Begin sound(4500);delay(30) end; nosound End; Function fp(x:_r):_r; begin fp:=-0; _as[2]:='0' end; Function fq(x:_r):_r; begin fq:= x/100; _as[3]:='0.001*y' end; Function fr(x:_r):_r; begin fr:= exp(-x); _as[0]:='exp(-x)' end; Procedure resol_Por_tridiagonal; var i,n1:_i; {tridiagonal } Begin For i:=2 to n-1 do {SE MODIFICÓ AQUÍ}
F. Antoine S.
Begin mb[i]:=mb[i]-ma[i]*mc[i-1]/mb[i-1]; bt[i]:=bt[i]-ma[i]*bt[i-1]/mb[i-1]; ma[i]:=0 End; r1[n-1]:=bt[n-1]/mb[n-1]; For i:=n-2 downTo 1 do r1[i]:=(bt[i]-mc[i]*r1[i+1])/mb[i]; End; Procedure publi; var i:_i; Begin For i:=1 to n-1 do Begin writeln('ma[',i:2,']=',ma[i]:10:4,' mb[',i:2,']=',mb[i]:10:4, ' mc[',i:2,']=',mc[i]:10:4,' bt=',bt[i]:1:9); if (i mod 20=0) and (i>1) then readkey End; writeln(' y"(x) = (', _as[2],')*y',chr(39),'(x) +(',_as[3],')*y(x) + ',_as[0]); End; Procedure datoS_resultado(var rv:_v); var r:_r;i:_i; Begin r1[0]:=alf; r1[n]:=bet; For i:=0 to n do Begin write(' x=',la+i*h1:2:2,' r[',i:3,']= ',rv[i]:1:11) ; if (i>0)and((i+1) mod 2=0) then writeln; if (i>0)and(i mod 42=0) then readkey End; writeln End; Procedure edfroso; var i:_i; {Se Modificó Aquí } Begin h1:=(lb-la)/(n); x:=la+h1; i:=1; For i:=1 to n-1 do Begin x:=la+(i)*h1; ma[i]:=-1; mb[i]:=2+ h1*h1*r2[i]*2/100; mc[i]:=-1; bt[i]:=h1*h1*fr(x)+r2[i-1]-2*r2[i]+r2[i+1]-h1*h1*r2[i]*r2[i]/100; End; mc[n-1]:=0; ma[1]:=0; End; Procedure datos; var i:_i; Begin write('Límite inferior a='); read(la); write('Límite superior b='); read(lb); write('Condición Izquierda alfa='); read(alf); r2[0]:=alf; write('Condición Derecha beta='); read(bet); {SE MODIFICÓ AQUÍ} write('Error Er='); read(error); write(' Número de particiones N= '); read(n); if n>100 then n:=100; r2[n]:=bet; {recálculo de los y0 iniciales } For i:=2 to n-1 do r2[i]:=0.10 End; Procedure Calculo; var k:_i; rg:_v; Procedure revisar_error(var rg:_v); var i:_i; {Se Agregó Aquí} Begin error1:=0; For i:=2 to n-1 do error1:=error1+abs(r2[i]-rg[i]) End; Begin datos; edfroso; publi; sonido; readkey; Repeat edfroso; resol_Por_tridiagonal; rg:=r2; For k:=1 to n-1 do r2[k]:=r1[k]+r2[k]; revisar_error(rg); writeln(' ********* Solución intermedia ************'); datoS_resultado(r2); sonido; writeln(' ********* ERROR ************'); datoS_resultado(r1); Until error1<=error; writeln(' ********* Solución ************'); datoS_resultado(r2); sonido; readkey; End; Begin {Programa Principal} calculo; End.
3.4.4.1. Problemas Resolver: A. Sangiacomo C.
89
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
f ( x, y, y′) Suponiendo que las siguientes y (1) = 0 ; y (2) = ln(2) . h = 0.5 , h = 0.005 . satisface 2. y ' ' = 12 y 3 , 1≤ x ≤ 2; y (1) = − 23 ; condiciones: y (2) = −1 . h = 0.05 , h = 0.005 . 3. y ' ' = 2 y 3 , 1 ≤ x ≤ 5 ; y(1) = 14 ; y (5) = 18 . 1. f y las derivadas parciales f y = ∂f / ∂y y f y ′ = ∂f / ∂y ′ son h = 0.2 , h = 0.02 . todas continuas en 4. y ' ' = y 3 − yy ' , 1 ≤ x ≤ 2 ; y (1) = 12 ; D = {( x, y, y ′) a ≤ x ≤ b, − ∞ < y, y ′ < ∞} ; y ( 2) = 13 . h = 0.1 , h = 0.001 . 5. y ' ' = 2 y 3 − 6 y − 2 x 3 , 1 ≤ x ≤ 2 ; y(1) = 2 ; 2. f y ( x, y, y′) ≥ δ > 0 en D para y ( 2) = 52 . h = 0.05 , h = 0.005 . algún δ > 0 ;
1.
y ' ' = −( y ′) 2 − y + ln( x) ,
1≤ x ≤ 2;
6. Hacer el programa en Delphi para el caso 3. de sustituciones sucesivas.
Existen constantes k y L con k=
máx
( x , y , y ′)∈D
f y ( x, y, y′)
3.4.5. Método de Solución de L = máx f y ′ ( x, y, y′) . Ecuación Diferencial Ordinaria ( x, y , y ′)∈D No Lineal Mediante la Solución Esto asegura que existe una única de Sistemas No Lineales solución a la ecuación (16). Para el problema general no Dividimos a [a, b] en (N+1) lineal de valor de frontera partes iguales cuyos extremos y ' ' = f ( x, y, y′) , a ≤ x ≤ b , están en los puntos de red y (a ) = α , y (b) = β (16) xi = a + ih para i=0, 1, 2, …, el método de diferencias es N+1. La suposición de que la similar siempre al método solución exacta tiene una cuarta aplicado anteriormente en los derivada acotada nos permite casos lineales. Aquí la diferencia reemplazar a y ' ' ( xi ) y a y ′( xi ) es que el sistema de ecuaciones en cada ecuación resultante no será lineal, así que se requiere de un proceso de y ' ' ( xi ) = f ( x, y ( xi ), y ′( xi )) (17) iteraciones para resolverlo. por una fórmula de diferencias apropiada, para obtener cada F. Antoine S.
A. Sangiacomo C.
90
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
ecuación de i=1, 2, …, N, de la Con el método de Newton para sistemas no lineales, construimos siguiente forma: una sucesión { ( w1( k ) , w2( k ) , ..., wN(k ) )T } y ( xi +1 ) − 2 y ( xi ) + y ( xi −1 ) h 2 ( 4) − y ( qi ) que convergerá a la solución del 12 h2 ⎞ sistema (19) siempre y cuando la ⎛ y ( xi +1 ) − y ( xi −1 ) h 2 y ′′′( ri ) ⎟ = f ⎜ xi , y ( xi ), − ⎟ aproximación inicial esté bastante ⎜ 2h 6 ⎠ ⎝ de la solución (18) cerca T ( w1 , w2 ,..., wN ) , y que la matriz para algún qi y ri en el intervalo jacobiana del sistema sea no ( xi −1 , xi +1 ) . singular. Para este sistema Tomando en cuenta los valores particularmente por ser la de frontera y las partes jacobiana tridiagonal asegura que principales y despreciando los es no singular. términos de error en (18), nos ⎡ 2 + h ( f ) −1 + ( f ) ⎤ L 0 0 resulta ⎢ ⎥ −1 + ( f ) O M ⎢−1− ( f ) 2 + h ( f ) ⎥ 2
h 2 2
y 1
w0 = α ,
wN +1 = β
⎢ ⎢ ⎢ ⎢ ⎢⎣
,
y −
wi +1 − 2wi + wi −1 h
2
h 2
y′ 2
0 M
O
0
w − w1 ⎞ ⎛ − w1 + 2 w2 − w3 + h 2 f ⎜ x2 , w2 , 3 ⎟=0 2h ⎠ ⎝
O
y′ 2
O
O
2 + h ( f y ) N −1
L
0
−1− h2 ( f y′ ) N
2
( f y )1 = f y ( x1 , w1 ,
( f y ' )1 = f y' ( x1 , w1 ,
iterativa
w2 − α ) 2h
.
.
.
.
.
.
.
−1+ h2 ( f y′ ) N −1⎥ ⎥ 2 + h2 ( f y ) N ⎥⎦
(20)
w2 − α ), 2h
y en forma
( f y ) i = f y ( xi , wi ,
wi +1 − wi −1 ), 2h
(19) ( f y ′ ) i = f y ' ( xi , wi , wi +1 − wi −1 ) 2h w − w N −2 ⎞ ⎛ − w N −2 + 2 w N −1 − w N + h 2 f ⎜⎜ x N −1 , w N −1 , N ⎟⎟ = 0 2h ⎝ ⎠ β − wN −1 ( f y ) N = f y ( xN , wN , ), 2h β − wN −1 ⎞ ⎛ β − wN −1 − wN −1 + 2wN + h 2 f ⎜ x N , wN , ⎟−β =0 ( f y ′ ) N = f y' ( xN , wN , ). 2h ⎠ ⎝ 2h
.
⎥ ⎥
0
−1− h2 ( f y′ )N −1
= J ( w1 , w2 ,..., wN ) ,
para cada i=1, 2, …, N. donde Obteniéndose un sistema N×N de w −α ⎞ ⎛ 2 w1 − w2 + h f ⎜ x1 , w1 , 2 ⎟ −α = 0 2h ⎠ ⎝
h 2
y 2
w − wi −1 ⎞ ⎛ + f ⎜ xi , wi , i +1 ⎟ = 0, 2h ⎝ ⎠
2
y′ 1
y para N
que tendrá una solución única El método de Newton para sistemas no lineal requiere de la siempre que h < 2 / L . F. Antoine S.
A. Sangiacomo C.
91
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
solución en cada iteración del sistema lineal N × N
AN = −1 − hf y ′ ( x, wN , z ) / 2 B N = 2 + h 2 f y ( x, w N , z ) DN = wN −1 − 2 wN + β − h 2 f ( x, wN , z )
J ( w1 , w2 ,..., wN )(v1 , v2 ,..., v N )T
(
= − g ( w1 ), g ( w 2 ),..., g ( w N )
Paso 7: Retornar
), T
para las vi respectivamente ya que wik = wik −1 + vi ,
para cada i=1, 2, …, N. y donde g ( wi ) son las ecuaciones de (19) respectivamente. 3.4.6. Algoritmo de Diferencias Finitas No Lineal (Newton) f ( x, y , z ) ; { z = y ′ } Paso 2: Definir f y ( x, y, z ) ; { ∂f / ∂y } Paso 1: Definir
Paso 3: Definir f y ′ ( x, y, z ) ; { ∂f / ∂y′ } Paso 4: Hacer x = a + h {procedimiento iterativo de ida y vuelta}
z = ( w2 − α ) /( 2h)
B1 = 2 + h 2 f y ( x, w1 , z )
Paso 8: Entrar a, b y α, β y N
{ extremos, condiciones iniciales y número de}
Entrar ER { particiones y el error o tolerancia} Paso 9: Hacer h = (b − a ) / n
w0 = α ,
Paso 5: Para i=2 hasta N-1 hacer
x = a + ih z = ( wi +1 − wi −1 ) /(2h)
Ai = −1 − hf y ′ ( x, wi , z ) / 2
wN = β
Paso 10: Para i=1 hasta N hacer
wi = α + i
( )h . β −α b−a
{ o cualquier valor} { apropiado}
Paso 11: Efectuar los pasos 4, 5, 6 Paso 12: Efectuar Solución por tridiagonal y asignar resultados a vi Paso 13: Si v ≤ ER ir al paso 16. Paso 14: En otro caso hacer w k +1 = w k + v Paso 15: ir al paso 11 Paso 16: Publicar ( xi , wik ) Paso 17: Parar.
3.4.7. Ejemplo Resolver por diferencias finitas la EDO con valor de frontera y ' ' = (32 + 2 x 3 − y′y ) / 8 , 1 ≤ x ≤ 3 ,
y (1) = 17 , y (3) = 43 / 3 .
C1 = −1 + hf y ′ ( x, w1 , z ) / 2 D1 = −2 w1 + w2 + α − h 2 f ( x, w1 , z )
{ retorna a lugar de partida después de efectuar los pasos 4, 5 y 6 }
Usando
h = 0.5; 0.2; 0.05; 0.025 .
Solución: (La solución exacta es y ( x) = x 2 + 16 / x ).
Bi = 2 + h 2 f y ( x, wi , z ) Ci = −1 + hf y ′ ( x, wi , z ) / 2 Di = wi −1 − 2 wi + wi +1 − h 2 f ( x, wi , z )
Aquí resolveremos para h = 0.2 , o sea para n = 10 :
Paso 6: Hacer x = b − h
z = ( β − wN −1 ) /( h)
F. Antoine S.
A. Sangiacomo C.
92
Capítulo 3
N 0 1 2 3 4 5 6 7 8 9 10
Método Numéricos para la Solución de Ecuaciones Diferenciales
ti
w1i
wi2
wi3
wi4
wi5
1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0
17.000000000
17.00000000
17.00000000
17.00000000
17.00000000
13.459048975
14.75780270
14.76688656
14.76688796
14.76688796
12.938602047
13.36959271
13.37937180
13.37937329
13.37937329
12.590632388
12.53327905
12.55004700
12.55004778
12.55004778
12.444240680
12.09773900
12.11935115
12.11934928
12.11934928
12.516261935
11.96811050
11.99158029
11.99157489
11.99157489
12.827803736
12.08335981
12.10583559
12.10582736
12.10582736
13.404714971
12.40353708
12.42151098
12.42150203
12.42150203
14.278053393
12.90279939
12.91048588
12.91047937
12.91047937
15.484552020
13.56608839
13.55267010
13.55266802
13.55266802
14.333333333
14.33333333
14.33333333
14.33333333
14.33333333
Tabla de errores vi . N
ti
0 1 2 3 4 5 6 7 8 9 10
1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0
v1
v3
v2
v4
v5
0.00000000
0.00000000
0.0000000
0.00000000
0.00000000
13.45904897
1.29875372
0.00908385
0.000001407
0.00000000
12.83860204
0.43099067
0.00977908
0.000001492
0.00000000
12.49063238
-0.05735333
0.01676794
0.000000783
0.00000000
12.34424068
-0.34650167
0.02161214
-0.00000186
0.00000000
12.41626193
-0.54815142
0.02346978
-0.00000540
0.00000000
12.72780373
-0.74444392
0.02247578
-0.00000823
0.00000000
13.30471497
-1.00117788
0.01797390
-0.00000894
-0.00000000
14.17805339
-1.37525399
0.00768649
-0.00000651
-0.00000000
15.38455202
-1.91846362
-0.01341829
-0.00000207
-0.00000000
0.000000000
0.000000000
0.000000000
0.00000000
0.000000000
Tabla 5.
3.4.8. Programa Pascal
en
Delphi
{ No lineales por Newton Sistemas MODIFICAR EL PROGRAMA 3.4.4.} { diferencias finitas } unit Difere_FinNO1_1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
F. Antoine S.
Dialogs, StdCtrls; type _r = double; _i = integer; _s = string; _v = array [0..200] of _r; _m = array [0..4] of _v; TDif_Finit_No_Lin1 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label4: TLabel; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Label5: TLabel; Edit4: TEdit; Button1: TButton; Button2: TButton; Memo2: TMemo; Label7: TLabel; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Label8: TLabel; Label9: TLabel; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure publicador; procedure datoS_resultado(vv:_v); Procedure Calculo(sender: TObject); end; var Dif_Finit_No_Lin1: TDif_Finit_No_Lin1; implementation {$R *.DFM} var Ma, Mb, Mc, bt, r1, v1, r2 :_v; kj :_m; mm, Lx, n :_i; Lim_a, lim_b, h1, alfa, Beta, error, Pendi :_r; Matriz_s, sx1, s : _s; Math11 : _m; procedure TDif_Finit_No_Lin1.Button2Click(Sender: TObject); begin Close; end; procedure TDif_Finit_No_Lin1.FormCreate(Sender: TObject); begin CheckBox1.Checked:=true; Memo2.Clear; end; { ****** y'' = (32+2*x*x*x-y*z)/8; z=y' ****** } function y1(w1,w2,h:_r):_r; begin y1:= (w2-w1)/2/h end; {y' -->y1} function fy(x,y,z:_r):_r; begin fy:=-z/8 end; {df/dy } function fy1(x,y,z:_r):_r; begin fy1:=-y/8 end; {df/dy' } function f1(x,y,z:_r):_r; begin f1:=(32+2*x*x*x-y*z)/8 end; {f(x,y,y'} procedure resol_Por_tridiagonal;Var i,n1:_i; {tridiagonal } begin n:=lx; // resuelve por método de tridiagonales for i:=2 to n do begin mb[i]:=mb[i]-ma[i]*mc[i-1]/mb[i-1]; bt[i]:=bt[i]-ma[i]*bt[i-1]/mb[i-1];ma[i]:=0 end; r1[n]:=bt[n]/mb[n]; for i:=n-1 downTo 1 do r1[i]:=(bt[i]-mc[i]*r1[i+1])/mb[i]; end; procedure TDif_Finit_No_Lin1.publicador;var i:_i; begin for i:=1 to Lx-1 do begin str(ma[i]:1:3,s);sx1:=' Ma['+IntToStr(i)+']= '+s; str(mb[i]:1:3,s);sx1:=sx1+' Mb['+IntToStr(i)+']= '+s; str(mc[i]:1:3,s);sx1:=sx1+' Mc['+IntToStr(i)+']= '+s; str(bt[i]:1:6,s);sx1:=sx1+' bt['+IntToStr(i)+']= '+s; Memo2.Lines.Add(sx1); end; sx1:=' y"(x) + p(x) * y '+chr(39)+' (x) + q(x) * y(x) + r(x)'; Memo2.Lines.Add(sx1); end; procedure TDif_Finit_No_Lin1.datoS_resultado(vv:_v);var r:_r;i:_i; begin Memo2.Lines.Add(' Resultados '); for i:=0 to Lx do begin str(Lim_a+i*h1:1:3,s);sx1 := ' x= '+s; str(vv[i]:1:9,s); sx1 := sx1+' r1['+IntToStr(i)+']= '+s; Memo2.Lines.Add(sx1); end; end;{****************************************} procedure edfroso;var i:_i; x, z:_r; begin h1:=(Lim_b-Lim_a)/(Lx);x:=Lim_a+h1;i:=1; z:=y1(alfa,r2[2],h1); mb[i]:=2+ h1*h1*fy(x,r2[1],z); mc[i]:= -1+h1*fy1(x,r2[1],z)/2; bt[i]:= -(h1*h1*f1(x,r2[1],z)+2*r2[i]-r2[i+1]-alfa); for i:=2 to Lx-1 do begin x:=Lim_a+(i)*h1; z:=y1(r2[i-1],r2[i+1],h1); ma[i]:= -1-h1*fy1(x,r2[i],z)/2; mb[i]:=2+ h1*h1*fy(x,r2[i],z); mc[i]:= -1+h1*fy1(x,r2[i],z)/2; bt[i]:= -(h1*h1*f1(x,r2[i],z)+2*r2[i]-r2[i+1]-r2[i-1]); end; z:=y1(r2[n-1],beta,h1/2); mb[Lx]:=2+ h1*h1*fy(x,r2[Lx],z); ma[Lx]:= -1-h1*fy1(x,r2[Lx],z)/2; bt[Lx]:= -(h1*h1*f1(x,r2[Lx],z)+2*r2[Lx]-r2[Lx-1]-beta); mc[Lx-1]:=0;ma[1]:=0; end; { ************************************* }
A. Sangiacomo C.
93
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
Procedure TDif_Finit_No_Lin1.Calculo(sender: TObject);var k:_i;rg:_v;error1:_r; procedure revisar_error(var rg:_v); var i:_i; begin error1:=0; for i:=2 to Lx-1 do error1:=error1+abs(r2[i]-rg[i]) end; begin str(Lim_a:1:5,s);sx1:=' '+S+' <= x <= '; str(Lim_b:1:5,s);sx1:=sx1+S+' alfa ='+FloatToStr(v1[1]) +' beta ='+FloatToStr(beta); memo2.Lines.Add(sx1); // Ejecuta el método de Diferencia Finita Edfroso; Publicador; Resol_Por_Tridiagonal; Publicador; // y arreglado para una proceso iterativo repeat Edfroso; Resol_Por_Tridiagonal; rg:=r2; for k:=1 to Lx-1 do r2[k]:=r1[k]+r2[k]; revisar_error(rg); memo2.Lines.Add(' **** Solución intermedia ****'); DatoS_resultado(r2); r1[0]:=0;r1[lx]:=0; memo2.Lines.Add(' **** ERROR ****'); DatoS_resultado(r1); until error1<=error; end; procedure TDif_Finit_No_Lin1.Button1Click(Sender: TObject); var i:_i; begin Lim_a:= StrToFloat(Edit1.text); // Limite Inferior Lim_b:= StrToFloat(Edit2.text); // Limite Superior // Valores iniciales y Carga o entrada de dichos alfa:= StrToFloat(Edit7.Text); beta:= StrToFloat(Edit8.Text); Lx := StrToInt(Edit4.text); // número de pasos o particiones if Lx>200 then MessageDlg( ' Sólo un Máximo de 200 particiones ! ! ! ', mtConfirmation,[MByes,MBno],0); if Lx>200 then Lx:=200; Error := StrToFloat(Edit6.text); // Error o permitividad if CheckBox1.Checked then memo2.Clear; r2[0]:=alfa;r2[Lx]:=beta; for i:=2-1 to Lx-1 do begin r2[i]:=0.10;r1[i]:=0 end; Calculo(Sender); // Va a calcular el Método de Diferencias Finitas end; End.
3.4.9. Problemas
Apéndice: A1. Fronteras del Tipo Completo
Aquí trataremos las fronteras del tipo no lineal de la forma
0 = L( y (a), y ' (a ), A) 0 = U ( y (b), y ' (b), B) y
donde a es el límite inferior de a ≤ x ≤ b , y b es el límite superior de:
y ' ' = f ( x, y, y′) , a ≤ x ≤ b , 0 = L( y (a), y ' (a), A) , 0 = U ( y (b), y ' (b), B )
(16’)
Ejemplo:
i. y ' (a) = y(a) + 5 ; y ' (b) ⋅ y (b) = 255 ; ii. y ' (a) ⋅ ( y (a )) 2 = y (a) + 1 ; y (b) ⋅ ( y ' (b)) 2 = y (b) + 1 .
1. Resolver los problemas de 3.4.4.1. por los métodos de Ahora los trasladamos a la forma: sistemas No lineales. 0 = y (a) + 5 − y ' (a) = L ; y 2. (1 + x 2 ) y ' '+ ( y ' ) 2 + 1 = 0 ; y (0) = 0 ; y (2) = 2 ln(3) − 2 . Sol: y = ln( x + 1) − x .
y (a) + 5 = L = y ' (a) . 0=
3. ( y ' ' ) = y ' ; y (1) = 1 ; y (2) = 1 / 4 . 3
255 y (b )
− y ' (b) = U ; y 255 y (b )
Sol: y = ( y + 2) 3 + 1 . 4. yy ' '+ ( y ' ) 2 = 1 ; y (2.5) = 12 ; y (3) = 2 . Sol: y 2 = −2 + ( x − 1) 2 .
0=
( y ( a )) 2 +1 − y(a)
y'
5. xy ' ' = y ' ln( x ) ; y (1) = 1 ; y (3) = 3e 4 + 1 . Sol: y = ( x − 1)e x +1 + 1 . 6. 2 y ' ' = x − y ' y ; y(1)=5; y(3)=13/3 Sol: y = x + F. Antoine S.
4 x
= U = y ' (b) .
y ' (a) = L ; y
( y ( a )) 2 +1 y(a)
0=
y (b ) +1 y (b )
= L = y ' (a)
− y ' (b) = U ; y A. Sangiacomo C.
94
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
y (b ) +1 y (b )
o (ϕ b ) y N = 1 − h U y N ( y (b), B) ; y también:
= U = y ' (b)
Nota: Aquí se entiende que L es el despeje de y ´ ∂ ϕ = −1 o (ϕb ) y N −1 = − 1 . (a) en función de y(a) y A; [ ∂ y N −1 b Poniendo esto en las matrices se tiene: y ' (a ) = L ( y (a ), A) ].
Damos la forma de las entradas para la − w0 + w1 − h L ( w0 , A) = 0 matriz A de Ax=b para frontera izquierda. w − w1 ⎞ ⎛ Haciendo: − w1 + 2 w2 − w3 + h 2 f ⎜ x2 , w2 , 3 ⎟=0 2h ⎠ ⎝ y ' (a ) = L ( y (a ), A) , (1)
.
y0 = y (a) , y1 = y (a + h) ,
y ' (a) =
y (a + h) − y (a) h
= y0 =
y1 − y 0 h
.
.
.
.
.
.
w − wi −1 ⎞ ⎛ − wi −1 + 2 wi − wi +1 + h 2 f ⎜ xi , wi , i +1 ⎟=0 2h ⎝ ⎠
.
.
Reemplazando en (1) se tiene: y1 − y 0 h
.
− w N −2
= L ( y0 , A) ;
.
.
.
.
.
.
.
(19’)
w − w N −2 ⎞ ⎛ + 2 w N −1 − w N + h 2 f ⎜⎜ x N −1 , w N −1 , N ⎟⎟ = 0 2h ⎝ ⎠
− y0 + y1 − h L ( y0 , A) = 0 ;
wN −1 − wN − hU ( wN , B) = 0
para el Jacobiano nos queda:
ϕ a = − y0 + y1 − h L ( y0 , A) ; ∂ ϕ ∂ y0 a
Sistemas no lineales, construimos una
{
= −1 − h ∂ ∂y L ( y0 , A) ;
o (ϕ a ) y0 = −1 − h Ly0 ( y0 , A) ; y también: ∂ ϕ ∂ y1 a
= 1 o (ϕ a ) y1 = 1 .
= yN =
(2) y N − y N −1 h
.
⎡ − 1 − h( L y ) 0 ⎢ h ⎢− 1 − 2 ( f y ′ ) 2 ⎢ 0 ⎢ M ⎢ ⎢ 0 ⎣
Reemplazando en (1) se tiene: y N − y N −1 h
para el Jacobiano nos queda:
ϕb = y N −1 − y N − hU ( y (b), B) ; ϕb = 1 − h ∂ ∂y U ( y(b), B) ;
F. Antoine S.
N
y
la
jacobiana
1 2 + h2 ( f y )2 O O L
⎤ 0 L 0 ⎥ − 1 + h2 ( f y′ ) 2 O M ⎥ ⎥ O O 0 ⎥ − 1 − h2 ( f y′ ) N −1 2 + h 2 ( f y ) N −1 − 1 + h2 ( f y ′ ) N −1 ⎥ 0 1 − h(U y N ) ⎥⎦ −1
= J ( w0 , w1 , w2 ,..., wN ) ,
= U ( y (b), B ) ;
y N −1 − y N − h U ( y (b), B) = 0 ;
∂ ∂ yN
}
(k )
tridiagonal:
y ' (b) = U ( y (b), B) , y N −1 = y (b − h) , y N = y (b) , y (b ) − y (b − h ) h
(k )
( w0 , w1 , w2 ,..., wN )T ,
Para frontera derecha. Haciendo:
y ' (b) =
(k )
( w1 , w2 , ..., wN )T que sucesión convergerá a la solución del sistema (19’) siempre y cuando la aproximación inicial esté bastante cerca de la solución
0
(20’)
J ( w0 , w1, w2 ,..., wN )(v0 , v1, v2 ,..., vN )T
(
= − g ( w0 ), g ( w1 ), g ( w2 ),..., g ( w N )
), T
para las vi respectivamente ya que
A. Sangiacomo C.
95
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
wik = wik −1 + vi ,
x= 3.000
para cada i= 0, 1, 2, …, N.
Y E [400]= 2.31736516365265E-14 Y[500]= 14.32270687176 Y E [500]= 7.99677339306213E-13
i
y donde g ( w ) son las ecuaciones de (19’) A2. Programa en Delphi del 3.4.4. para el respectivamente. caso no lineal por iteraciones de Newton sólo como un caso particular de la EDO. Ejemplo: Veamos el caso de:
y ' ' = (32 + 2 x 3 − y′y ) / 8 , 1 ≤ x ≤ 3 , y (1) y ' (1) = −238 ,
y (3) − y ' (3) =
91 9
y2 − y ' '+ = e− x , 0 ≤ x ≤ 2 , 100 y (0) = 0 , y (2) = 0 .
.
Pongamos aquí de la siguiente forma:
y ' (1) =
−238 y(a)
;
y ' (3) = y (3) − 91 9
Para N=5 o h=0.4, aplicando (20’) se tiene: b=(-1 - 0.4*238/(0.1)^2) c= 1 f=(0.4*238/(0.1)^2+0) a=(-1 - 0.4*(-0.1)/8/2) b=(2 + 0.16*(-0)/8) c=(-1 + 0.4 *(-0.1)/8/2) f=-(0.16*(32+2*1.4^3-0.1*0)/8+0) a=(-1 - 0.4*(-0.1)/8/2) b=(2 + 0.16*(-0)/8) c=(-1 + 0.4*(-0.1)/8/2) f=-(0.16*(32+2*1.8^3-0.1*0)/8+0) a=(-1 - 0.4*(-0.1)/8/2) b=(2 + 0.16*(-0)/8) c=(-1 + 0.4*(-0.1)/8/2) f=-(0.16*(32+2*2.2^3-0.1*0)/8+0) a=(-1 - 0.4*(-0.1)/8/2) b=(2 + 0.16*(-0)/8) c=(-1 + 0.4*(-0.1)/8/2) f=-(0.16*(32+2*2.6^3-0.1*0)/8+0) a=(-1 ) b=(1 - 0.4*1) f=(0.4*0.1-91/9-0+0)
unit Edo_N_Li_Newt1_1;
y llegamos a: Resultados con N# = 11 de iteraciones x= 1.000 Y[0]= 18.61966958729 Y E [0]= 1.54398383818152E-7 x= 1.400 Y[1]= 13.50679690426 Y E [1]= 2.02989698753659E-8 x= 1.800 Y[2]= 11.53572069532 Y E [2]= 4.71829783611055E-9 x= 2.200 Y[3]= 11.12485880271 Y E [3]= 1.12951386821603E-9 x= 2.600 Y[4]= 11.72677938614 Y E [4]= 4.03919564309283E-11 x= 3.000 Y[5]= 13.09434632704 Y E [5]= -4.81696562726398E-10
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type _r = double; _i = integer; _s = string; _v = array [0..200] of _r; _m = array [0..4] of _v; TDif_Finit_No_Lin1 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label4: TLabel; CheckBox1: TCheckBox; CheckBox2: TCheckBox; si tuviéramos el mismo cálculo con 500 Label5: TLabel; Edit4: TEdit; Button1: TButton; Button2: TButton; Memo2: TMemo; Label7: TLabel; particiones: Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Label8: TLabel; x= 1.000 Y[0]= 17.01657931840 Label9: TLabel; Y E [0]= 1.16201678495714E-12 procedure Button2Click(Sender: TObject); x= 1.400 Y[100]= 13.390960850224 Y E [100]= 1.26385493895198E-12 procedure FormCreate(Sender: TObject); x= 1.800 Y[200]= 12.1244562250586 procedure Button1Click(Sender: TObject); Y E [200]= -1.57606429983033E-12 procedure datoS_resultado(vv:_v); x= 2.200 Y[300]= 12.1045501122401 Procedure Calculo(sender: TObject); Y E [300]= -1.637341284303E-12 end; // Aquí se define las variables y matrices para usar x= 2.600
F. Antoine S.
Y[400]= 12.9037826385579
A. Sangiacomo C.
96
Capítulo 3
var Dif_Finit_No_Lin1: TDif_Finit_No_Lin1; implementation {$R *.DFM} var Ma, Mb, Mc, bt, r1, v1, r2 :_v; Lx, n :_i; Lim_a, lim_b, h1, alfa, Beta, error, x :_r; sx1, s : _s; procedure TDif_Finit_No_Lin1.Button2Click(Sender: TObject); begin Close; end; procedure TDif_Finit_No_Lin1.FormCreate(Sender: TObject); begin CheckBox1.Checked:=true; Memo2.Clear; end; { ****** y'' + y^2/100 = exp(- x ); ****** } Function fp(x:_r):_r; begin fp:=-0; {p(x):='0'} end; Function fq(x:_r):_r; begin fq:= x/100; {q(x):='0.001*y'} end; Function fr(x:_r):_r; begin fr:= exp(-x); { r(x):='exp(-x)'} end; Procedure resol_Por_tridiagonal; var i:_i; {tridiagonal } Begin For i:=2 to n-1 do {SE MODIFICÓ AQUÍ} Begin mb[i]:=mb[i]-ma[i]*mc[i-1]/mb[i-1]; bt[i]:=bt[i]-ma[i]*bt[i-1]/mb[i-1]; ma[i]:=0 End; r1[n-1]:=bt[n-1]/mb[n-1]; For i:=n-2 downTo 1 do r1[i]:=(bt[i]mc[i]*r1[i+1])/mb[i]; End; procedure TDif_Finit_No_Lin1.datoS_resultado(vv:_v);var i:_i; begin //r1[0]:=alfa; r1[Lx]:=beta; Memo2.Lines.Add(' Resultados '); for i:=0 to Lx do begin str(Lim_a+i*h1:1:4,s);sx1 := ' x= '+s; sx1 := sx1+' r1['+IntToStr(i)+']= '+FloatToStr(vv[i]); Memo2.Lines.Add(sx1); end; end;{***********************************} Procedure Ecuac_Dif_No_line_Front; var i:_i; {Se Modificó Aquí } Begin h1:=(Lim_b-Lim_a)/(n); x:=Lim_a+h1; For i:=1 to n-1 do Begin x:=Lim_a+(i)*h1; ma[i]:=-1; mb[i]:=2+ h1*h1*r2[i]*2/100; mc[i]:=-1; bt[i]:=h1*h1*fr(x)+r2[i-1]-2*r2[i] +r2[i+1]-h1*h1*r2[i]*r2[i]/100; End; mc[n-1]:=0; ma[1]:=0; F. Antoine S.
Método Numéricos para la Solución de Ecuaciones Diferenciales
End; { ******************************** } Procedure TDif_Finit_No_Lin1.Calculo(sender: TObject); var k:_i;rg:_v;error1:_r; procedure revisar_error(var rg:_v); var i:_i; begin error1:=0; for i:=2 to Lx-1 do error1:=error1+abs(r2[i]-rg[i]) end; begin str(Lim_a:1:5,s);sx1:=' '+S+' <= x <= '; str(Lim_b:1:5,s);sx1:=sx1+S+' alfa =' +FloatToStr(v1[1])+' beta ='+FloatToStr(beta); memo2.Lines.Add(sx1); // Ejecuta el método de Diferencia Finita Ecuac_Dif_No_line_Front; Resol_Por_Tridiagonal; //y arreglado para una proceso iterativo repeat Ecuac_Dif_No_line_Front; Resol_Por_Tridiagonal; rg:=r2; for k:=1 to Lx-1 do r2[k]:=r1[k]+r2[k]; revisar_error(rg); memo2.Lines.Add(' **** Solución intermedia ****'); DatoS_resultado(r2); r1[0]:=0;r1[lx]:=0; memo2.Lines.Add(' **** ERROR ****'); DatoS_resultado(r1); until error1<=error; end; procedure TDif_Finit_No_Lin1.Button1Click(Sender: TObject); var i:_i; begin Lim_a:= StrToFloat(Edit1.text); // Limite Inferior Lim_b:= StrToFloat(Edit2.text); // Limite Superior // Valores iniciales y Carga o entrada de dichos alfa:= StrToFloat(Edit7.Text); beta:= StrToFloat(Edit8.Text); Lx := StrToInt(Edit4.text); n:=Lx; // número de pasos o particiones if Lx>200 then MessageDlg( ' Sólo un Máximo de 200’+ ‘particiones ! ! ! ', mtConfirmation,[MByes,MBno],0); if Lx>200 then Lx:=200; Error := StrToFloat(Edit6.text); // Error o permitividad if CheckBox1.Checked then memo2.Clear; r2[0]:=alfa;r2[Lx]:=beta; for i:=2-1 to Lx-1 do begin r2[i]:=0.10;r1[i]:=0 end; Calculo(Sender); // Va a calcular el Método de Diferencias Finitas end; end.
A. Sangiacomo C.
97
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
B1. Método del Disparo para Ecuaciones Para facilitar los cálculos el problema (2) lo Diferenciales Ordinarias No Lineales escribiremos de la forma usando el método de Newton y ' ' = f ( x, y ( x, t ), y′( x, t )) , a ≤ x ≤ b ,
y (a) = α , y′(a) = t , (5) La técnica del disparo para un problema no lineal de valor de frontera de segundo orden recordando la prima (’) es la derivada respecto de x, pero, nosotros ahora estamos y ' ' = f ( x, y, y′) , a ≤ x ≤ b , interesados en derivadas respeto de t, o sea d y (a ) = α , y (b) = β . (1) dt y (b, t ) cuando t=tk, aplicando regla de la cadena (o Las soluciones previas son iguales al caso derivada total) nos resulta: lineal y al usado en el punto 3.2, lo que d y ' ' (b, t ) = d f ( x, y ( x, t ), y ' ( x, t )) dt diferencia el caso es usamos la derivada de dt d y ( x, t ) d y '( x, t ) función g(t)=y(b, t)-β respecto a t. De = ∇f ( x, y ( x, t ), y ' ( x, t )) ⋅ ( dx , dt , dt ) dt
y ' ' = f ( x, y, y′) , a ≤ x ≤ b , y (a) = α , y′(a) = t , (2) involucran un parámetro t, para aproximar la solución de nuestro problema de valor de frontera. Este t lo escogemos de forma
d y ( x, t ) d y '( x, t ) , dt ) dt d y ( x, t ) f y ( x, y ( x, t ), y ' ( x, t )) dt d y '( x, t ) + f y ' ( x, y ( x, t ), y ' ( x, t )) dt
= ∇f ( x, y ( x, t ), y ' ( x, t )) ⋅ (0, =
(6) las condiciones iniciales son la discreta, o sea, t = t k y que al final cumpla correspondientes derivadas de las del problema (5) o sea lím = y (b, t k ) = y (b) = β , d (3) y (a) = 0 , dtd y′(a ) = dt =1, k →∞ dt dt en a≤x≤b. donde y ( x, t k ) denota la solución del La expresión (6) se puede representa más problema de valor inicial (2), ver figuras 3 y simple si hacemos u = d y ( x, t ) , entonces se dt 4 del punto 3.2. tiene Sin embargo la iteración tendrá la u ' ' = f y ' ( x, y, y ' )u '+ f y ( x, y, y ' )u , (7) presentación siguiente (Burden y Faires o u ' ' = f y ' ⋅ u '+ f y ⋅ u p.573): con a≤x≤b, u(a)=0, u’ ( a)=1. ( y (b , t k ) − β ) Esto nos lleva a que el método de Newton, t k +1 = t k − d , requiere de valor inicial del problema (2) y ( y (b, t k ) − β ) dt del problema (7). Teniendo la presentación k = 1, 2, … (4) final d ( y (b, t ) − β ) . y requeriremos conocer dt k ( y (b , t ) − β ) Esto representa un escollo, pues poseemos la representación explicita de t); y notamos que sólo conocemos valores discretos de y(b, t0), y(b, t1), ..., tk).
F. Antoine S.
no y(b, los y(b,
t k +1 = t k −
k
u (b , t k )
.
B2.1. Algoritmo de Disparo No Lineal con método de Newton
A. Sangiacomo C.
98
Capítulo 3
Método Numéricos para la Solución de Ecuaciones Diferenciales
Paso 1: Definir
y' = u ;
y ' ' = f ( x, y , u ) . {EDO no lineal despejada}
Paso 2: Para i = 0 hasta N-1 hacer {Procedimiento repetido}
empezar k1,1 = h ⋅ u , k1, 2 = h ⋅ f ( x, y, u ) ,
k 2,1 = h ⋅ (u +
k1, 2 ), 2
k1,1 k , u + 12, 2 ) , 2
k 2,2 = h ⋅ f ( x + h2 , y +
k 3,1 = h ⋅ (u +
k 2, 2 2
k3,2 = h ⋅ f ( x +
),
Entrar ER, t0; {frontera, error permisible, pendientes} Paso 5: Hacer h = (b − a) / N ; tx=t Paso 6: Mientras t x − t0 > ER Hacer
y =α ,
k 4,1 = h ⋅ (u + k3,2 ) ,
k 4,2 = h ⋅ f ( x + h, y + k3,1 , u + k3,2 ) , u = u + ( k1,1 + 2k 2,1 + 2k3,1 + k 4,1 ) / 6 , y = y + (k1, 2 + 2k 2, 2 + 2k 3, 2 + k 4, 2 ) / 6
u = t0 , t = t x { de método de Newton}
Efectuar paso 2; { ir y retornar} wt = y , y = 0 , u = 1 , Efectuar paso 3; { ir y retornar}
tx = t −
k k h , y + 22,1 , u + 22, 2 ) , 2
{ inicio de proceso iterativo
wt − β , y
{ fórmula de Newton}
t0 = t Paso 7: Para i = 1 hasta N hacer Publicar (i; wyi ; wui = Y ′f i ) Paso 8: Parar.
x = x + h ; wyi=y; wui=u; terminar Retornar
{Retorno al lugar de llamado}
Paso 3: Para i = 0 hasta N-1 hacer {Procedimiento repetido}
empezar k1,1 = h ⋅ u , k1, 2 = h( f y ( x, y, u ) y + f y ' ( x, y, u )u ) ,
k 2,1 = h ⋅ (u +
k1, 2 ), 2
k 2, 2 = h( f y ( x + h2 , y + + f y ' ( x + h2 , y +
k 3,1 = h ⋅ (u +
k 2, 2 2
k1,1 ,u 2
+
k1, 2 )y 2
k1,1 k , u + 12, 2 )u ) , 2
), k2,1 k , u + 22, 2 ) y 2 k2,1 k , u + 22, 2 )u ) , 2
k3,2 = h( f y ( x + h2 , y + + f y ' ( x + h2 , y + k 4,1 = h ⋅ (u + k3,2 ) ,
k 4, 2 = h( f y ( x + h, y + k31 , u + k32 ) y + f y ' ( x + h, y + k31 , u + k32 )u ) ,
y = y + ( k1,1 + 2k 2,1 + 2k3,1 + k 4,1 ) / 6 , u = u + (k1, 2 + 2k 2, 2 + 2k 3, 2 + k 4, 2 ) / 6
x = x+h; terminar Retornar
{Retorno al lugar de llamado}
Paso 4: Entrar a, b, y las α, β. F. Antoine S.
{intervalo, condiciones de }
A. Sangiacomo C.
99
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
CAPÍTULO 4
Busquemos una función y = y(x) que satisfaga la ecuación diferencial lineal L[ y ] = y ' '+ p( x) y ' + q( x) y = f ( x) ,
Objetivo: Estudiar una ecuación diferencial de segundo orden lineal con valor de frontera, por métodos aproximados por expresiones analíticas y numéricas.
y las condiciones de contorno o valor de frontera Va [ y ] = a1 y (a ) + a2 y ' (a ) = α Vb [ y ] = b1 y (a ) + b2 y ' (a ) = β
(2)
en donde a1 + a2 ≠ 0 ,
4.0. SOLUCIÓN DE ECUACIONES DIFERENCIALES ORDINARIAS CON VALOR DE FRONTERA CON APROXIMACIONES POR EXPRESIONES ANALÍTICAS
(1)
b1 + b2 ≠ 0 .
Para resolver este problema elijamos, en primer lugar, un conjunto de funciones linealmente independientes u0 ( x), u1 ( x), ..., u n ( x)
(3)
(funciones básicas), de las cuales la función u0 ( x) satisface las 4.1. Procedimiento de la Colocacondiciones de contorno no ción homogéneas El procedimiento de diferencias finitas para la resolver problemas de contorno (frontera), es un método numérico y nos proporciona una tabla de valores de la función buscada. Aquí consideraremos un procedimiento con cuya ayuda obtendremos la solución de aproximaciones del problema de las condiciones de contorno en forma de una expresión analítica.
F. Antoine S.
Va [u0 ] = α , Vb [u0 ] = β ;
(4)
mientras que las otras funciones ui (x) , i=1, 2, …, n, satisfacen las condiciones de contorno homogéneas: Va [ui ] = 0 , Vb [ui ] = 0 ; i=1, 2, …, n. (5)
Si las condiciones de contorno (2) son homogéneas (α = β = 0), A. Sangiacomo C.
99
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
podemos poner y i=1, 2, …, n, puede cumplirse la u0 ( x) = 0 considerar únicamente el sistema ecuación de funciones R ( x, C , C , ..., C ) = 0 para a ≤ x ≤ b , 1
ui (x) ,
i=1, 2, …, n.
Busquemos ahora una combinación lineal de estas funciones básicas n
y = u0 ( x) + ∑ Ci ui ( x) ,
(6)
i =1
como la solución de aproximación del problema de las condiciones de frontera (1) y (2). Claramente, la función y satisface las condiciones de frontera (2); que luego a causa de la linealidad de las condiciones de contorno se cumple que n n Va [ y] = Va [u0 ] + ∑ CiVa [ui ] = α + ∑ Ci ⋅ 0 = α , i =1
i =1
y análogamente Vb [ y ] = β .
Si sustituimos la expresión (6) en la ecuación diferencial (1), obtenemos R ( x, C1, C2 , ..., Cn ) = L[ y ] − f ( x ) i =1
n
entonces la función y es la solución exacta del problema de las condiciones de frontera (1), (2). Una elección adecuada de esta naturaleza de los coeficientes Ci no es en general posible. Por consiguiente, hay que limitarse al postulado de que la función R ( x, C1 , C2 , ..., Cn ) debe ser cero, para un sistema de puntos dados suficientemente compactos, en el intervalo [a, b] (es decir el sistema de puntos de colocación). En estos puntos se cumple exacta-mente la ecuación diferencial (1). Como puntos de colocación puede elegirse, por ejemplo, puntos tales que dividan al intervalo [a, b] en un número de partes iguales. Como resultado obtenemos el sistema de ecuaciones lineales: R( x1 , C1 , C2 , ..., Cn ) = 0
R( x2 , C1 , C2 , ..., Cn ) = 0
n
= L[u0 ] − f ( x) + ∑ Ci L[ui ] .
2
(7)
. . . . . . . .
. .
(8)
R( xn , C1 , C2 , ..., Cn ) = 0
Si además con una elección más Si el sistema (8) tiene solución, apropiada de los coeficientes Ci , podemos de ahí averiguar los coeficientes C1 , C2 , ..., Cn . F. Antoine S.
A. Sangiacomo C.
100
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
La solución aproximada del En los puntos de colocación problema de condiciones de x = − 1 , x = 0 , x1 = 12 se cumple frontera se da entonces por la −1 2 0 fórmula (6). R ( x−1 ) = 0 , R ( x0 ) = 0 , R ( x1 ) = 0 . De ahí obtenemos, si empleamos la fórmula (1), el sistema de Aproximar por medio del ecuaciones lineales para la procedimiento de colocación el determinación de los coeficientes C1 y C 2 : problema de valor de frontera 4.1.1. Ejemplo
y ' '+ (1 + x 2 ) y + 1 = 0 ,
−1 ≤ x ≤ 1,
y (−1) = y (1) = 0 .
(9)
1 − C1 + 2C 2 = 0 1 − 17 C − 49 C = 0 . 16 1 64 2
Luego resulta
Solución:
C1 = 0.957 ,
C 2 = −0.022 .
Como funciones básicas elegimos Por consiguiente obtenemos la en este caso los polinomios solución aproximada u n ( x ) = x 2 n − 2 (1 − x 2 ) , n=1, 2, …, (10) y ≈ 0.957 (1 − x 2 ) − 0.022( x 2 − x 4 ) . que satisfacen evidentemente las En especial se cumple que condiciones de contorno y(0) = 0.957 . u n (±1) = 0 . Como puntos de colocación elegimos x−1 = − 12 ,
x0 = 0 ,
x1 =
1 2
.
Limitándonos a dos funciones básicas; sustituimos y = C1 (1 − x 2 ) + C 2 ( x 2 − x 4 )
en la ecuación diferencial (9), Para comprobar Usted puede obtenemos resolver el problema por 2 R( x) = −2C1 + C2 (2 − 12 x ) diferencias finitas y verá que la 2 2 2 4 + (1 + x )[C1 (1 − x ) + C2 ( x − x )] + 1 solución aproximada cumple con = 1 − C1 (1 + x 4 ) + C2 (2 − 11x 2 − x 6 ) . F. Antoine S.
A. Sangiacomo C.
101
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
y (0) = y0 = 0.967 .
⎧α para i = 0 Va [ui ] = ⎨ ⎩0 para i > 0
♠ y
Problemas 1. Resolver y ' ' + y = 3x , x ∈ [0, 2] con y(0)=0, y y(2)=3.5; usando el método de colocación. 2. Resolver los problemas del punto 4.4.5 del final por colocación. 2
4.2. Método de los Mínimos Cuadrados
⎧ β para i = 0 Vb [ui ] = ⎨ ⎩0 para i > 0.
Si sustituimos la expresión (3) en la ecuación diferencial (1), obtenemos entonces la desviación (error): R ( x, C1 , C2 , ..., Cn ) = n
= L[ y] − f ( x) = L[u0 ] − f ( x) + ∑ Ci L[ui ] , (4) i =1
Consideramos el mismo que en el intervalo a ≤ x ≤ b debe problema de valor de frontera ser un valor absoluto lo más anterior pequeña posible. Por pongamos la L[ y ] = y ' '+ p( x) y′ + q( x) y = f ( x) , (1) consiguiente, condición y las condiciones de contorno o b 2 I = R ( x, C1 , C 2 , ..., C n ) ∫ valor de frontera a (5) es mínimo Va [ y ] = a1 y ( a ) + a2 y ' (a ) = α Vb [ y ] = b1 y (a ) + b2 y ' (a ) = β
(2)
4.2.1. (método de la integral de los mínimos cuadrados). b1 + b2 ≠ 0 . a1 + a2 ≠ 0 , La existencia de un mínimo para la integral I está condicionada por Manteniendo las expresiones la existencia de una solución del introducidas anteriormente sistema de ecuaciones lineales pongamos siguiente: n b 1 ∂I ∂R y = u0 ( x) + ∑ Ci ui ( x) , (3) ⋅ = R dx = 0 en donde
i =1
En donde las funciones ui = ui ( x) son tales que se cumplan las condiciones F. Antoine S.
2 ∂C1 ∫ a ∂C1 b 1 ∂I ∂R ⋅ =∫ R dx = 0 a 2 ∂C2 ∂C2
.
.
.
.
.
.
. .
A. Sangiacomo C.
(6)
102
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
b 1 ∂I ∂R ⋅ =∫ R dx = 0 . a 2 ∂Cn ∂Cn
Esto es, determinan a coeficientes C1 , C 2 , ..., Cn .
En virtud del procedimiento de los mínimos cuadrados descrito formemos la los anteriormente, expresión 1
I = ∫ R 2 ( x) dx
4.2.2. Ejemplo
1
0
[
= ∫ 1 − (1 + x 4 )C1 + (2 − 11x 2 − x 6 )C2 0
] dx 2
Con el método de los mínimos cuadrados, aproxime el problema de condiciones de frontera o contorno
y determinemos los coeficientes C1 y C 2 de tal forma que la integral I sea mínima. Entonces obtenemos el sistema de y ' ' + (1 + x 2 ) y + 1 = 0 , − 1 ≤ x ≤ 1 , ecuaciones 1 1 ∂I y(−1) = y (1) = 0 . (7) ⋅ = − ∫ (1 + x 4 )[1 − (1 + x 4 )C1 2 ∂C1
Solución:
+ (2 − 11x 2 − x 6 )C 2 ]dx = 0
Utilizando de nuevo las aproximaciones con la funciones
1 1 ∂I ⋅ = ∫ (2 − 11x 2 − x 6 )[1 − (1 + x 4 )C1 0 2 ∂C2
+ (2 − 11x 2 − x 6 )C 2 ]dx = 0
o
u1 = 1 − x 2 , u 2 = x 2 − x 4 ,
resultando entonces y = C1 (1 − x 2 ) + C2 ( x 2 − x 4 ) .
0
(8)
68 3548 5 C1 + C2 = 45 1155 4 3548 63404 38 C1 + C2 = . 1155 4095 21
Si sustituimos esta expresión en De ahí resulta C1 = 0.985 , C 2 = −0.078 . la ecuación diferencial (7), y luego en (4); obtenemos la Por consiguiente es desviación: y = 0.985(1 − x 2 ) − 0.078( x 2 − x 4 ) . R ( x) = 1 − (1 + x 4 )C1 + (2 − 11x 2 − x 6 )C 2 . (9)
♦ (10)
Del proceso (5) a (6) en lugar del Debido a la simetría de este mínimo de la integral (5), se problema, es suficiente puede emplear también el considerar como intervalo básico mínimo de la sumatoria finita llamado también: a [0, 1] . F. Antoine S.
A. Sangiacomo C.
103
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
4.2.3. (método de los puntos de los mínimos cuadrados):
x− 3 = − 34 , x− 2 = − 12 , x−1 = 14 , x0 = 0 ,
N
I N = ∑ R 2 ( xi , C1 , C2 ,..., Cn ) ,
(11)
i =1
para la determinación de los Ci . En donde x1, x2, …, xN representa un sistema de puntos suficientemente compacto del intervalo [a, b] (para simplificar, se elige de ordinario un sistema de puntos equidistantes). En este método de los mínimos cuadrados, se tiene que elegirse N≥n, es decir, el número de puntos xi , i=1, 2, …, N, tiene que ser mayor que el número de parámetros Ci , i=1, 2, …, N. Cuando N=n, los parámetros C j pueden determinarse a partir del sistema de ecuaciones R ( xi , C1 , C2 , ..., Cn ) = 0 ,
para
i=1, 2, …, n,
x1 = 14 , x2 = 12 , x3 = 34 .
Se eligen como interpolación.
puntos
de
Solución: Debido a la simetría de este problema, elegimos el intervalo [0, 1] como intervalo básico (o sea, la mitad solamente). Pongamos u1 = 1 − x 2 , u 2 = x 2 − x 4 , resultando entonces y = C1 (1 − x 2 ) + C 2 ( x 2 − x 4 ) .
En la desviación o error R( x) = 1 + α i C1 + β i C2 ,
i=0, 1, 2, 3.
En donde α i = −(1 + xi4 ) ,
es decir, con el uso del Entonces es procedimiento de colocación. 3
β i = 2 − 11xi2 − xi6 . 3
I = ∑ R 2 ( xi ) = ∑ (1 + α i C1 + β i C2 ) 2 .
4.2.4. Ejemplo Con el método de los puntos de los mínimos cuadrados, determinar la solución del problema de condiciones de frontera anterior, cuando los puntos son F. Antoine S.
i =0
i =0
(12)
Empleando las condiciones precisas para la existencia de un mínimo de la función I, obtenemos el sistema normal
A. Sangiacomo C.
104
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
1 ∂I ⋅ = ∑ α i + C1 ∑ α i2 + C2 ∑ α i β i = 0 2 ∂C1 i i i
1 ∂I ⋅ = ∑ β i + C1 ∑α i β i + C2 ∑ β i2 = 0 . 2 ∂C2 i i i
(13)
Los valores de α i , β i , α i β i , α i2 , β i2 , ∑ α i , ∑ α i2 , ∑ β i , ∑ α i β i , i
i
∑ βi2
i
γi
ηi L
α i βi
αi γ i
α i ηi L
αi
α i2
βi
αiβ i
β i2
β iγ i
β iηi L
γi ηi
α iγ i
β iγ i
γ i2
γ iηi L
α iηi
β iηi
γ iηi
M
ηi2 L
M
M
M
M
se los mostramos en la Problemas
tabla 6 x
α
β
α2
αβ
β2
0
-1 -1.0030
2 1.3123
1 1.0078
-2 -1.3174
4 1.7222
1 2
-1.0625
-0.7656
1.1289
0.8134
0.5861
3 4
-1.3164
-4.3655
1.7329
5.7465
19.0576
-.4.3828
-1.8188
4.8696
3.2425
25.3659
∑
βi
i
i
1 4
αi
Tabla 6.
1. Resolver y ' ' + y = 3 x 2 , x ∈ [0, 2] con y(0)=0, y y(2)=3.5; usando el método de Mínimos Cuadrados. 2. Resolver los problemas del punto 4.4.5 del final por Mínimos Cuadrados.
De ahí obtenemos para la 4.3. Método de Galerkin determinación de los coeficientes C1 y C 2 el sistema de ecuaciones El procedimiento de Galerkin se basa, en esencia, en un teorema 4.8696C1 + 3.2425C 2 = 4.3828 de la teoría de las series de 3.2425C1 + 25.3659C 2 = 1.8188 Fourier. y de ahí se hallan las soluciones 4.3.1. Teorema C1 = 0.9317 , C 2 = −0.0474 , Sea { un ( x)} un sistema ortogonal luego y = 0.9317 (1 − x 2 ) − 0.0474( x 2 − x 4 ) . ♥ completo, en el intervalo [a, b] con norma distinta de cero. Si la Nota: Para generalizar la fórmula función continua f(x) es ortogonal (13) se puede usar la tabla en el intervalo [a, b] a todas las funciones un ( x) , es decir, si se siguiente: cumple b ∫ a f ( x)un ( x)dx = 0 , n=1, 2, …, (1) F. Antoine S.
A. Sangiacomo C.
105
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
b
entonces es f (x) ≡ 0
para a ≤ x ≤ b .
Prueba:
∫a
f 2 ( x)dx = 0 ,
y por consiguiente f ( x) = 0 , para a ≤ x ≤ b . ♦
Consideremos la serie de Fourier 4.3.2. Observación: De la de la función f(x) referente al fórmula (6) podemos deducir que sistema ortogonal { un ( x)} : para cualquier función continua ∞ f(x), que sea ortogonal al sistema f ( x ) = ∑ cn u n ( x ) . (2) finito de funciones n =1 u1 ( x ) , u 2 ( x) , …, u N (x) Como es sabido, se determinan los coeficientes de Fourier cn (es decir, c1 = c2 = ... = c N = 0 , se cumple siempre la expresión por medio de la fórmula cn =
1 un
b
2 ∫a
b
f ( x)un ( x)dx ,
(3)
∫a
f 2 ( x) dx =
∞
∑
un
n = N +1
2 2 cn
<∈
para N suficientemente grande. Esto significa que la función f ( x) b 2 es en el intervalo [a, b] en media u n = ∫ u n2 ( x)dx > 0 , (4) a (norma) es tan pequeña como se Mediante algunas En virtud de la condición (1), quiera. suposiciones adicionales, resulta obtenemos, por consiguiente, de ahí que también f ( x) es cn = 0 , para n=1, 2, … (5) pequeño en el intervalo [a, b] . Para un sistema de funciones { un ( x)} completo en lo que Ahora ya podemos proceder en la respecta a cada función continua explicación del procedimiento de Galerkin. f (x) ∞ Sea dado el problema lineal de b 2 2 2 f ( x ) dx = u c (6) condiciones de contorno lineales ∑ n n. ∫a n =1 L[ y ] = f ( x) , (7) De ahí obtenemos, teniendo en en donde cuenta (6) en donde
L[ y ] = y ' ' + p( x) y ' + q ( x) y
F. Antoine S.
A. Sangiacomo C.
106
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
y las condiciones lineales de Cualquiera que sea la elección de frontera las funciones coordinantes ui ( x) , Va [ y ] = a1 y (a ) + a2 y ' (a ) = α la función y definida mediante la Vb [ y ] = b1 y (a) + b2 y ' (a ) = β (8) fórmula (9) satisface, evidentemente, para coeficientes cualescon quiera ci las condiciones de b1 + b2 ≠ 0 . a1 + a2 ≠ 0 , contorno o frontera (8). SustituElijamos un sistema finito de yamos ahora la expresión (9) en funciones coordinantes { ui ( x)}, la ecuación diferencial (7), i=0, 1, .., n, las cuales deben entonces obtenemos la desviación pertenecer a un sistema ortogonal (error) de funciones completo. La R ( x, C1, C2 ,..., Cn ) = elección se realiza de forma que n la función u0 ( x) satisfaga las = L[u0 ] + ∑ Ci L[ui ] − f ( x) . condiciones de frontera no i =1 homogéneas Para la solución exacta y de Va [ y ] = α , Vb [ y ] = β , nuestro problema de condiciones de frontera, la función R es y las funciones ui (x) , i=1, 2, …, idénticamente cero. Para determin deben satisfacer las condiciones nar una aproximación que se de frontera homogéneas diferencie lo menos posible de la exacta, es conveniente para ello Va [ y ] = 0 , Vb [ y ] = 0 , elegir los coeficientes Ci tales para i=1, 2, …, n. que la función R, en un sentido La solución del problema de determinado, sea lo más pequeño condiciones de frontera (7) y (8) posible. la buscamos como en los El procedimiento de Galerkin procedimientos de colocación en exige que la desviación R debe ser ortogonal a toda las funciones la forma n coordinantes ui ( x ) , i=1, 2, …, n. y = u 0 ( x ) + ∑ Ci ui ( x ) . (9) Con un número suficientemente i =1 grande de funciones coordinantes, la desviación en media es tan pequeña como se quiera, en F. Antoine S.
A. Sangiacomo C.
107
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
virtud de la observación dada Como función coordinante ui ( x) , anteriormente. En general, no i=0, 1, 2, 3. Elijamos aquí puede decirse que en media la u0 ( x) = 1 − x , u1 ( x ) = x (1 − x ) , solución de aproximación así u ( x) = x 2 (1 − x) , u ( x) = x 3 (1 − x) , 2 3 determinada se diferencie de la (11) exacta. Los coeficientes Ci , i=1, 2, …, n se obtienen del sistema de ecuaciones lineales b
∫ a u1( x)R( x, C1, C2 , ..., Cn )dx = 0 b
∫ a u2 ( x)R( x, C1, C2 , ..., Cn )dx = 0 . . . . . . . . . . b
∫ a un ( x)R( x, C1, C2 , ..., Cn )dx = 0
Busquemos la aproximación en forma de un polinomio y = (1 − x) + C1x(1 − x) + C2 x 2 (1 − x) + C3 x 3 (1 − x) ,
o de forma más simple
la solución de aproximación del n problema. b ∑ Ci ∫ a ui ( x) L[ui ]dx = Si sustituimos este polinomio en i =1 el primer miembro de la ecuación b = ∫ ui ( x){ f ( x) − L[u0 ]}dx , diferencial (10), obtenemos a entonces la desviación (error) para i=1,2,…n. 4.3.3. Ejemplo
R( x, C1 , C2 , C3 ) = (1 − 4 x) + C1 (−2 + 2 x − 3x 2 ) + C2 (2 − 6 x + 3x 2 − 4 x3 ) + C3 (6 x − 12x 2 + 4 x3 − 5x 4 )
.
(12)
Con el procedimiento de Galerkin, aproximar una solución Las condiciones de ortogonalidad a la ecuación diferencial de la función R y de las funciones ordinaria con valores de frontera coordinantes u1 ( x) , u 2 ( x) , u3 ( x) nos proporcionan el sistema de y ' ' + xy ' + y = 2 x , 0 ≤ x ≤ 1 , ecuaciones y (0) = 1 , y (1) = 0 . (10) 1 2
∫ 0 (x − x
Solución: F. Antoine S.
1
∫ 0 (x
2
) R( x,C1 , C2 , C3 )dx = 0
− x 3 ) R( x,C1, C2 , C3 )dx = 0
A. Sangiacomo C.
108
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
1
∫ 0 (x
3
− x 4 ) R( x,C1 , C2 , C3 )dx = 0 .
Si sustituimos aquí en vez de R(x) la expresión (12) e integramos con respecto a x, obtenemos así el sistema de ecuaciones 133C1 + 63C2 + 36C3 = −70
Un problema lineal de valor de frontera en dos puntos que es importante en el análisis de fuerzas aplicadas a vigas, está dado de manera especial por la ecuación diferencial ordinaria −
d ⎛ dy ⎞ ⎜ p ( x) ⎟ + q ( x) y = f ( x) , dx ⎝ dx ⎠
0 ≤ x ≤ 1, (1)
140C1 + 108C2 + 79C3 = −98 264C1 + 252C2 + 211C3 = −210 .
De ahí resulta
y con condiciones de contorno o frontera y (0) = y (1) = 0 .
(2)
C1 = −0.2090 , C2 = −0.7894 , C3 = 0.2090 ,
y por consiguiente y = (1 − x)(1 − 0.2090x − 0.7894x 2 + 0.2090x 3 ) .
Figura 1.
Figura 2.
♣ 4.4. Método de Rayleigh-Ritz
F. Antoine S.
Esta ecuación diferencial describe la deflección y(x) de una viga de longitud unitaria (uno) con sección transversal variable representada por q(x). La causa de la deflección son las cargas extras p(x) y f(x). A. Sangiacomo C.
109
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
En los desarrollos posteriores Sean p ∈ C1[a, b] , q, f ∈ C[0,1] , y supondremos que p ∈ C1[0,1] y p( x) ≥ δ > 0 , para 0 ≤ x ≤ 1 . (3) q, f ∈ C[ a, b] . Además, se requerirá que exista una La función y ∈ C02 [0,1] es la única solución de la EDO constante δ > 0 tal que p( x) ≥ δ > 0 , para 0 ≤ x ≤ 1 , d ⎛ dy ⎞ − ⎜ p( x) ⎟ + q ( x) y = f ( x) , dx ⎝ dx ⎠ y que (4) 0 ≤ x ≤ 1, q( x) ≥ 0 , para 0 ≤ x ≤ 1 . si y sólo si y es la única función 2 Suponiendo esto es suficiente en C0 [0,1] que minimiza la para garantizar que el problema integral de valor de frontera (1) y (2) I [u ] = 1 ( p( x)[u′( x)]2 + q( x)[u ( x)]2 − 2 f ( x)u ( x))dx ∫0 tienen una solución única. (5) En muchos problemas de valor de ♣ frontera que describen fenómenos físicos, la solución de la ecuación Para el procedimiento de de la viga satisface una propiedad Rayleigh-Ritz, la integral I se varicional. El principio minimiza, no sobre todas las variacional para la ecuación de la funciones en C02 [0,1] , sino sobre viga es fundamental en el desarrollo del método de un conjunto más pequeño de Rayleigh-Ritz y caracteriza a la funciones que consiste de solución de la ecuación de la viga combinaciones lineales de cierta como la función que minimiza base de funciones φ1 , φ 2 , …, φn . n cierta integral sobre todas las Las funciones de la base { φ k } k =1 ser linealmente funciones en C02 [0,1] , (el conjunto deben de aquellas funciones u en independientes y satisfacer C 2 [0,1] con la propiedad de que φi (0) = φi (1) = 0 , u(0)=u(1)=0). para cada i=1, 2, …, n. El siguiente teorema da la n caracterización. φ ( x ) = Una aproximación ∑ ciφi ( x) i =1
4.4.1. Teorema F. Antoine S.
a la solución y(x) de la ecuación A. Sangiacomo C.
110
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
(4) se obtiene entonces hallando Las ecuaciones en (8) se c1, c2, …, cn, que minimicen a consideran normalmente como un ⎡n ⎤ sistema lineal Ac=b, donde la I ⎢∑ ciφi ( x)⎥ . matriz A es simétrica y esta dada ⎣⎢ i =1 ⎦⎥ por De la ecuación (5), a ij = ∫
⎡n ⎤ I [φ ] = I ⎢∑ ciφi ( x)⎥ ⎢⎣ i =1 ⎥⎦ 2 2 ⎛ ⎡n ⎤ ⎡n ⎤ 1⎜ = ∫ ⎜ p ( x) ⎢∑ ciφi′( x)⎥ + q ( x) ⎢∑ ciφi ( x)⎥ 0⎜ ⎣⎢ i =1 ⎦⎥ ⎣⎢ i =1 ⎦⎥ ⎝
1
0
( p( x)φi′( x)φ ′j ( x) + q( x)φi ( x)φ j ( x) )dx
y b se halla por 1
bi = ∫ f ( x)φi ( x)dx . 0
⎤⎞ ⎡n − 2 f ( x) ⎢∑ ciφi ( x)⎥ ⎟dx ⎟ ⎦⎥ ⎠ ⎣⎢ i =1
Aquí trataremos el primer tipo de (6) funciones bases que involucran polinomios lineales segmentarios. El mínimo es alcanzado al El primer paso consiste en formar considerar I como función de c1, una partición de [0, 1] escogiendo c2, …, cn y cuando puntos x0, x1, …, xn+1, con ∂I 0 = x0 < x1 < ... < xn +1 = 1 . = 0, ∂c j
Tomando h = xi +1 − xi para cada i=0, 1, …, n, definimos las Diferenciando entonces (6) nos funciones φ1 ( x) , φ 2 ( x) , …, φ n (x) resultará mediante n
para cada j=1, 2, …, n.
(7)
1⎛ ∂I = ∫ ⎜ 2 p( x)∑ ciφi′( x)φ ′j ( x) 0⎜ ∂c j i =1 ⎝
⎞ + 2q ( x)∑ ciφi ( x)φ j ( x) − 2 f ( x)φ j ( x) ⎟dx ⎟ i =1 ⎠ n
y sustituyendo en (7) queda n
(
)
1 0 = ∑ ⎡∫ p( x)φi′( x)φ ′j ( x) + q( x)φi ( x)φ j ( x) dx⎤ ⎢ 0 ⎥⎦ i =1 ⎣
⎧0, ⎪ x − xi −1 , ⎪ ⎪ h φi ( x) = ⎨ i −1 x −x ⎪ i +1 , ⎪ hi ⎪⎩0,
0 ≤ x ≤ xi −1 xi −1 < x ≤ xi
(9)
xi < x ≤ xi +1 xi +1 < x ≤ 1,
para cada i=1, 2, …, n.
1
− ∫ f ( x)φ j ( x)dx 0
para cada j=1, 2, …, n.
F. Antoine S.
(8)
A. Sangiacomo C.
111
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
(
)
a ii = ∫ p( x)[φi′( x)]2 + q( x)[φi ( x)]2 dx 1
0
2
2
x ⎛ −1⎞ ⎛ 1 ⎞ ⎟⎟ p ( x)dx + ∫ i +1 ⎜⎜ ⎟⎟ p( x)dx = ∫ ⎜⎜ xi −1 h xi ⎝ i −1 ⎠ ⎝ hi ⎠ xi
2
⎛ 1 ⎞ ⎟⎟ ( x − xi −1 ) 2 q( x)dx + ∫ ⎜⎜ xi −1 h ⎝ i −1 ⎠ xi
Figura 3.
+∫
xi +1 ⎛ − 1 ⎞
2
⎜⎜ ⎟⎟ ( xi +1 − x) 2 q ( x)dx ⎝ hi ⎠
xi
Como las funciones φi son i=1, 2, …, n. lineales por pedazos, las para cada 1 φ i′ , derivadas aunque no a i,i +1 = ∫ 0 ( p( x)φi′( x)φi′+1 ( x) + q( x)φi ( x)φi +1 ( x) )dx 2 xi +1 ⎛ 1 ⎞ continuas, son constantes en el =∫ − ⎜⎜ ⎟⎟ p ( x)dx xi subintervalo abierto ( x j , x j +1 ) para ⎝ hi ⎠ 2 xi +1 ⎛ − 1 ⎞ cada j=0, 1, …, n. Por lo tanto, ⎜⎜ ⎟⎟ ( x − xi )( xi +1 − x)q( x)dx , +∫ xi ⎝ hi ⎠ tenemos que ⎧0, ⎪ 1 , ⎪ ⎪ hi −1 φi′( x) = ⎨ −1 ⎪ , ⎪ hi ⎪⎩0,
0 ≤ x ≤ xi −1 xi −1 < x ≤ xi
para cada i=1, 2, …, n-1. (10)
a i ,i −1 = ∫
1 0
( p( x)φi′( x)φi′−1 ( x) + q( x)φi ( x)φi −1 ( x) )dx
xi < x ≤ xi +1
2
⎛ 1 ⎞ ⎟⎟ p ( x)dx = ∫ − ⎜⎜ xi −1 ⎝ hi −1 ⎠ xi
xi +1 < x ≤ 1,
2
xi ⎛ − 1 ⎞ para cada i=1, 2, …, n. ⎟⎟ ( xi − x)( x − xi −1 )q ( x)dx + ∫ ⎜⎜ xi −1 h i 1 − ⎝ ⎠ Debido a que φ i y φi′ , son diferentes de cero solamente en para cada i=2, 3, …, n. ( x j , x j +1 ) , Para las componentes de b tenemos φi′( x)φ ′j ( x) ≡ 0 y φi ( x)φ j ( x) ≡ 0 , 1
bi = ∫ f ( x)φi ( x)dx 0
excepto cuando j es i-1, i o i+1. xi 1 =∫ ( x − xi −1 ) f ( x )dx En consecuencia, el sistema xi −1 h i −1 xi +1 1 lineal (8) se reduce a un sistema +∫ ( xi +1 − x) f ( x)dx , xi h tridiagonal n×n. Las i componentes distintas de cero de para cada i=1, 2, …, n. A están dadas por Las componentes c son las desconocidas; la solución c1, c2, F. Antoine S.
A. Sangiacomo C.
112
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
beti = − I pN + I b ; bi = I c + I d ; I p1 = I pN ;
…, cn, nos proporcionan la aproximación de Rayleigh-Ritz φ dada por
I q1 = I qN ;
n
φ ( x) = ∑ ciφi ( x) .
Paso 7: Hacer
i =1
I pN
4.4.2. Algoritmo Segmentario Lineal de Rayleigh-Ritz Paso 1: Entrar n para i=1 hasta n entrar xi Paso 2: Hacer x0 = 0 , xn +1 = 1 . Paso 3: Para i=0 hasta n hacer hi = xi +1 − xi , Paso 4: Para i=1 hasta n hacer 0 ≤ x ≤ xi −1
⎧0, ⎪ x − xi −1 , ⎪ ⎪ h φi ( x) = ⎨ i −1 x −x ⎪ i +1 , ⎪ hi ⎪⎩0,
xi −1 < x ≤ xi xi < x ≤ xi +1 xi +1 < x ≤ 1,
Paso 5: Calcular I p1 = ⎛⎜ 1 ⎞⎟ ⎜ ⎟ ⎝ h0 ⎠
I q1
⎛ 1 ⎞ = ⎜⎜ ⎟⎟ ⎝ h0 ⎠
2
x1
∫x
0
2
x1
∫x
p ( x )dx
I pN
I qN
( x − x0 ) 2 q ( x ) dx .
2
xi +1
∫x
i
1
xi +1
∫x
⎛1⎞ = ⎜⎜ ⎟⎟ ⎝ hi ⎠
⎛1⎞ I a = ⎜⎜ ⎟⎟ ⎝ hi ⎠ ⎛1⎞ I b = ⎜⎜ ⎟⎟ ⎝ hi ⎠
2
∫x
i
xi +1 i
( x − xi ) q ( x)dx ; 2
( xi +1 − x) q ( x)dx ; 2
( xi +1 − x)( x − xi )q ( x)dx ; xi
F. Antoine S.
2
⎛ 1 ⎞ x n+1 I a = ⎜⎜ ⎟⎟ ∫ ( xn +1 − x) 2 q ( x)dx ; x ⎝ hn ⎠ n xn 1 Ic = ( x − xn −1 ) f ( x)dx ; ∫ hn −1 x n−1 1 x n+1 Id = ( xn +1 − x) f ( x)dx ; hn ∫ x n alf n = I p1 + I pN + I q1 + I a ; bn = I c + I d ; Paso 8: Resolver por tridiagonal el sistema formado por beti , alf i , beti , bi , y asignar la solución a ci . {por simetría de la tridiagonal}
Paso 9: Publicar ci Paso 10: Parar.
4.4.3. Ejemplo
( x − xi −1 ) f ( x)dx ; hi −1 ∫ xi −1 1 xi +1 Id = ∫ ( xi +1 − x) f ( x)dx ; hi xi alf i = I p1 + I pN + I q1 + I a ; Ic =
p ( x)dx ;
n
p( x)dx ;
xi +1
∫x
x n +1
∫x
i
2
2
2
0
Paso 6: Para i=1 hasta n-1 hacer ⎛1⎞ = ⎜⎜ ⎟⎟ ⎝ hi ⎠
⎛ 1 ⎞ = ⎜⎜ ⎟⎟ ⎝ hn ⎠
Considere el problema de valor de frontera − y ' '+π 2 y = 2π 2 sin(π x) ,
0 ≤ x ≤ 1,
y (0) = y (1) = 0 .
Solución: En este problema asumiremos hi = h = 0.1 , y los nodos xi = ih = i ⋅ 0.1 para cada i=1, 2, …, 9. Ahora continuamos con los pasos del algoritmo A. Sangiacomo C.
113
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
I c = −2π cos(0.9π ) + 20[ sin(0.9π ) − sin (0.8π )]
Paso 5: ⎛ 1 ⎞ I p1 = ⎜ ⎟ ⎝ 0.1 ⎠ ⎛ 1 ⎞ I q1 = ⎜ ⎟ ⎝ 0.1 ⎠
2
2
= 100 ∫
0.1
∫
0
0.1
∫0
(1)dx = 100 ∫
0.1
alf i = 20 +
0
( x − 0) 2 π 2 dx
0.1 2 2 x π dx 0
=
π2 30
I a = 100 ∫ I b = 100∫
I c = 10 ∫
0.1i + 0.1 0.1i
0.1i + 0.1 0.1i
0.1i + 0.1 0.1i
0.1(i −1)
( x − 0.1i ) 2 π 2 dx =
π2
;
30
π2
(0.1i + 0.1 − x) π dx = 2
⎡alf1 ⎢bet ⎢ 1 ⎢0 ⎢ ⎢M ⎢⎣0
2
0.1i
60
(0.1(i + 1) − x)2π 2 sin(πx)dx
= 2π cos(0.1π i) − 20[ sin(0.1π (i + 1)) − sin(0.1π i)] ;
alf i = 10 + 10 +
π2
π2
beti = −10 +
60
30
+
π2 30
= 20 +
π2 15
;
I p1 = 10 ; 30
Paso 7: I a = 100 ∫ F. Antoine S.
Publicar los valores de
c1 =0.3102866742 c3 =0.8123410598
c2 =0.5902003271 c4 =0.9549641893
c5 =1.004108771
c6 =0.9549641893
c7 =0.8123410598 c8 =0.5902003271 c9 =0.3102866742
n
φ ( x) = ∑ ciφi ( x) .
Para efectos de comparación la solución exacta es y ( x) = sin(π x) .
;
I pN = 100∫
alf n −1 bet n −1
betn − 2 0
i =1
= 40sin(0.1π i)[1 − cos(0.1π )] ;
π2
O L
⎤ ⎡ c1 ⎤ ⎡b1 ⎤ ⎥ ⎢ c ⎥ ⎢b ⎥ ⎥ ⎢ 2 ⎥ ⎢ 2 ⎥ ⎥ ⋅ ⎢ M ⎥ = ⎢M ⎥ ⎥ ⎥ ⎢ ⎥ ⎢ bet n −1 ⎥ ⎢cn −1 ⎥ ⎢bn −1 ⎥ alf n ⎥⎦ ⎢⎣ cn ⎥⎦ ⎢⎣bn ⎥⎦
0 M 0
; El cual es una aproximación de y (x) por la aproximación segmentaria lineal
bi = 40 sin(0.1π i ) − 20[ sin(0.1π (i + 1)) + sin(0.1π (i − 1))]
I q1 =
L O O
por
π 2 ; ci
( x − 0.1(i − 1))2π 2 sin(πx)dx
0.1i + 0.1
bet1 0 alf 2 bet2 O O
; Paso 9:
30
= −2π cos(0.1π i) + 20[ sin(0.1π i) − sin(0.1(i − 1)π )] ;
I d = 10∫
;
Paso 8: Resolver tridiagonal
;
(0.1(i + 1) − x)( x − 0.1i)π 2 dx =
0.1i
π2
15 b9 = 40 sin(0.9π ) − 20[ sin(π ) + sin (0.8π )] ;
Paso 6: Para i=1 hasta 8 hacer 0.1i + 0.1 I pN = 100∫ dx = 10 ; 0.1i I qN = 100∫
I d = 2π cos(0.9π ) − 20[ sin(π ) − sin(0.9π )]
dx = 10 ;
1 0.9
1 0.9
dx = 10 ;
(1 − x) 2 π 2 dx =
π2 30
;
Prosiguiendo, hagamos el cálculo del primer punto de red x1 = 0.1 y tercero x3 = 0.3 , y luego de un
A. Sangiacomo C.
114
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
punto intermedio entre puntos de red x = 0.27 . Para i=1; x − x0 ) + 0 + ... + 0 h0 x −x = 0.3102866742 ( 1 0 ) h0
φ (0.1) = 0.3102866742 (
= 0.3102866742 (
0 .1 ) = 0.3102866742 0 .1
Para i=3; φ (0.3) = 0 + 0 + 0.8123410598 ( = 0.8123410598 (
x − x2 ) + 0 + ... + 0 h2
x3 − x2 0.1 ) = 0.8123410598 ( ) h2 0.1
= 0.8123410598
Para
x = 0.27 ,
entre i=2 y i=3;
x −x x − x2 φ (0.27) = 0.5902003271 ( 3 ) + 0.8123410598 ( ) h2 h2 0.3 − 0.27 0.27 − 0.2 = 0.5902003271 ( ) + 0.8123410598 ( ) 0. 1 0. 1
= 0.745698839
o sea, interpola entre los dos puntos laterales. ♥ 4.4.4. Programa en Pascal del Método Rayleigh-Ritz
{$n+ MODIFICAR EL PROGRAMA 3.3.6.} unit Difere_Ele_Fi1_2; interface uses
F. Antoine S.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type _r = Extended; _i = integer; _s = string; _v = array [0..2000] of _r; _m = array [0..4] of _v; TDif_Elem_Finit1 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label4: TLabel; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Label5: TLabel; Button1: TButton; Button2: TButton; Memo2: TMemo; Edit3: TEdit; Label3: TLabel; Label8: TLabel; Edit4: TEdit; Edit5: TEdit; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure publicador; procedure datoS_resultado(vv:_v); Procedure Calculo(sender: TObject); end; var Dif_Elem_Finit1: TDif_Elem_Finit1; implementation {$R *.DFM} var Ma, Mb, Mc, bt, r1, r2 :_v; mm, Lx, n :_i; Lim_a, lim_b, h1, alfa, Beta :_r; sx1, s : _s; procedure TDif_Elem_Finit1.Button2Click(Sender: TObject); begin Close; end; procedure TDif_Elem_Finit1.FormCreate(Sender: TObject); begin CheckBox1.Checked:=true; Memo2.Clear; end; {*Aquí poner la -(P(x)y')'+q(x)y=r(x)**} function fp(x:_r):_r; begin fp:=1; end; function fq(x:_r):_r; begin fq:=sqr(pi); end; function fr(x:_r):_r; begin fr:= 2*pi*pi*sin(pi*x); end; function integp(a,b,hi:_r;i:_i):_r; var ii:_i;rs, h2:_r; begin h2:=(b-a)/mm;rs:=0;rs:=rs+fp(a); for ii:=1 to mm-1 do begin a:=a+h2; if ii mod 2 =0 then rs:=rs+2*fp(a) else rs:=rs+4*fp(a) end; rs:=rs+fp(b); rs:=rs/3*h2/hi/hi; integp:=rs; end; function integq(a,b,hi:_r;i:_i):_r;var ii:_i;rs,sd,h2:_r; begin h2:=(b-a)/mm;rs:=0;sd:=a; for ii:=1 to mm-1 do begin sd:=sd+h2; if ii mod 2 =0 then rs:=rs+2*fq(sd)*sqr(sd-a) else rs:=rs+4*fq(sd)*sqr(sd-a) end;rs:=rs+fq(b)*sqr(b-a); rs:=rs/3*h2/hi/hi; integq:=rs; end; function integq1(a,b,hi:_r;i:_i):_r;var ii:_i;rs,sd,h2:_r; begin h2:=(b-a)/mm;rs:=0;sd:=a;rs:=rs+fq(sd)*sqr(b-a); for ii:=1 to mm-1 do begin sd:=sd+h2; if ii mod 2 =0 then rs:=rs+2*fq(sd)*sqr(b-sd) else rs:=rs+4*fq(sd)*sqr(b-sd) end; rs:=rs/3*h2/hi/hi; integq1:=rs; end; function integq12(a,b,hi:_r;i:_i):_r;var ii:_i;rs,sd,h2:_r; begin h2:=(b-a)/mm;rs:=0;sd:=a; for ii:=1 to mm-1 do begin sd:=sd+h2; if ii mod 2 =0 then rs:=rs+2*fq(sd)*(b-sd)*(sd-a) else rs:=rs+4*fq(sd)*(b-sd)*(sd-a)
A. Sangiacomo C.
115
Capítulo 4
end; rs:=rs/3*h2/hi/hi; integq12:=rs; end; function integf(a,b,hi:_r;i:_i):_r;var ii:_i;rs,sd,h2:_r; begin h2:=(b-a)/mm;rs:=0;sd:=a; for ii:=1 to mm-1 do begin sd:=sd+h2; if ii mod 2 =0 then rs:=rs+2*fr(sd)*(sd-a) else rs:=rs+4*fr(sd)*(sd-a) end;rs:=rs+fr(b)*(b-a); rs:=rs/3*h2/hi; integf:=rs; end; function integf1(a,b,hi:_r;i:_i):_r;var ii:_i;rs,sd,h2:_r; begin h2:=(b-a)/mm;rs:=0;sd:=a;rs:=rs+fr(sd)*(b-a); for ii:=1 to mm-1 do begin sd:=sd+h2; if ii mod 2 =0 then rs:=rs+2*fr(sd)*(b-sd) else rs:=rs+4*fr(sd)*(b-sd) end; rs:=rs/3*h2/hi; integf1:=rs; end; procedure resol_Por_tridiagonal;Var i,n1:_i; begin n1:=n-1; {Resuelve por tridiagonal } for i:=2 to n1 do begin mb[i]:=mb[i]-ma[i]*mc[i-1]/mb[i-1]; bt[i]:=bt[i]-ma[i]*bt[i-1]/mb[i-1];ma[i]:=0 end; r1[n1]:=bt[n1]/mb[n1]; for i:=n1-1 downTo 1 do r1[i]:=(bt[i]-mc[i]*r1[i+1])/mb[i]; end; procedure TDif_Elem_Finit1.publicador;var i:_i; begin if CheckBox2.Checked then for i:=1 to Lx-1 do begin str(ma[i]:1:3,s);sx1:=' Ma['+IntToStr(i)+']= '+s; str(mb[i]:1:3,s);sx1:=sx1+' Mb['+IntToStr(i)+']= '+s; str(mc[i]:1:3,s);sx1:=sx1+' Mc['+IntToStr(i)+']= '+s; str(bt[i]:1:6,s);sx1:=sx1+' bt['+IntToStr(i)+']= '+s; Memo2.Lines.Add(sx1); end; sx1:=' - ( p(x) * y''(x))'' + q(x) * y(x) = r(x)'; Memo2.Lines.Add(sx1); end; procedure TDif_Elem_Finit1.datoS_resultado(vv:_v);var i:_i; begin Memo2.Lines.Add(' Resultados '); for i:=0 to Lx do begin str(Lim_a+i*h1:1:4,s);sx1 := ' x= '+s; sx1 := sx1+' r1['+IntToStr(i)+']= '+FloatToStr(vv[i]); Memo2.Lines.Add(sx1); end; end;{****************************************} procedure Ecuac_Difer_Front;var i:_i;Ia,ib,ic,id,ie,ig,isx,it, x:_r; begin h1:=(Lim_b-Lim_a)/(n); x:=Lim_a+h1; isx:=integp(Lim_a,x,h1,1); it:=integq(Lim_a,x,h1,1); for i:=1 to n-1 do begin x:=Lim_a+(i+1)*h1; Ia:=integp(x-h1,x,h1,i); Ib:=integq(x-h1,x,h1,i); ic:=integq1(x-h1,x,h1,i); id:=integq12(x-h1,x,h1,i); ie:=integf(x-2*h1,x-h1,h1,i); ig:=integf1(x-h1,x,h1,i); mc[i]:=-Ia+Id; mb[i]:=isx+Ia+It+ic; ma[1+i]:=mc[i]; bt[i]:=Ie+Ig; isx:=Ia; it:=ib end; Ia:=integp(Lim_b-h1,Lim_b,h1,n); ic:=integq1(Lim_b-h1,Lim_b,h1,n); ie:=integf(Lim_b-2*h1,Lim_b-h1,h1,n); ig:=integf1(Lim_b-h1,Lim_b,h1,n); mc[n-1]:=0; ma[1]:=0;
F. Antoine S.
Método Numéricos para la Solución de Ecuaciones Diferenciales
mb[n-1]:=isx+Ia+It+ic; bt[n-1]:=Ie+Ig; end; { ************************************* } Procedure TDif_Elem_Finit1.Calculo(sender: TObject); begin Ecuac_Difer_Front; publicador; resol_Por_tridiagonal; publicador; datoS_resultado( r1 ); end; procedure TDif_Elem_Finit1.Button1Click(Sender: TObject); var i:_i; begin Lim_a:= StrToFloat(Edit1.text); // Limite Inferior Lim_b:= StrToFloat(Edit2.text); // Limite Superior mm:=16; // Valores Frontera Alfa:= StrToFloat(Edit3.text); Beta:= StrToFloat(Edit4.text); Lx := StrToInt(Edit5.text); n:=lx;// número de pasos o particiones if Lx>2000 then MessageDlg( ' Sólo un Máximo de 2000 particiones ! ! ! ', mtConfirmation,[MByes,MBno],0); if Lx>2000 then Lx:=2000; if CheckBox1.Checked then memo2.Clear; r2[0]:=alfa; r2[Lx]:=beta; for i:=2-1 to Lx-1 do begin r2[i]:=0.10;r1[i]:=0 end; Calculo(Sender); end; End.
4.4.5. Problemas Use el algoritmo de RayleighRitz para aproximar la solución de cada uno de los siguientes problemas de valor de frontera o contorno π2 π2 π a) y ' '+ 4 y = 16 cos( 4 x ) , 0 ≤ x ≤ 1 , y (0) = y (1) = 0 . Use x0 = 0 , x1 = 0.3 , x2 = 0.7 y
1.
x3 = 1 .
También resuelva usando h = 0.1 . Compare y critique. b) −
d ( xy ' ) + 4 y = 4 x 2 − 8 x + 1 , dx
0 ≤ x ≤ 1 , y (0) = y (1) = 0 .
Use
x0 = 0 , x1 = 0.4 , x2 = 0.8
y
x3 = 1 . A. Sangiacomo C.
116
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
También resuelva usando h = 0.1 . Compare y critique. c) Resuelva la parte a) y b) por los métodos de colocación, Mínimos cuadrados por cualquier polinomios apropiados y Galerkin. Compare los resultados y de su opinión. 2. Demuestre que los siguientes problemas de valor de frontera o de contorno satisfacen las hipótesis del teorema 4.4.1. Use el algoritmo de RayleighRitz. a) − y ' '+ y = x , 0 ≤ x ≤ 1 , y (0) = y(1) = 0 . Use h = 0.1 , y compare los resultados con la solución real ⎛ e ⎞ y = x + ⎜ 2 ⎟(e − x − e x ). ⎝ e −1⎠
Use h = 0.05 , y compara con la solución exacta y = x(e x − e). 3.
Demuestre que la matriz A en el método de Rayleigh-Ritz es definida positiva.
Apéndice
A1.1. Método de Ritz
b) − x 2 y ' '−2 xy′ + 2 y = −4 x 2 , 0 ≤ x ≤ 1 , Como una base del elemento finito que constituye esto, que se basa que se basa en y (0) = y (1) = 0 . una elegante rama de la matemática: el cálculo de variaciones. Use h = 0.05 , y comparar con El cálculo de variaciones busca optimizar una clase especial de funciones denominadas la solución exacta y = x( x − 1). funcionales. Esta es d x x x b c) − (e y′) + e y = x + (2 − x)e , I [ y ] = F ( x, y, y ' )dx (1) ∫ dx a Esto va de la mano con la idea de encontrar y (0) = y (1) = 0 . 0 ≤ x ≤ 1, la función y(x) que minimice la distancia Use h = 0.1 , y compara con la entre dos puntos. En este caso sencillo, la es la integral de la distancia a lo solución exacta y = ( x − 1)(e − x − 1). funcional largo de cualquiera de estas curvas: d) − d (e − x y ′) + e − x y = ( x − 1) − ( x + 1)e −( x−1) , dx
0 ≤ x ≤ 1, F. Antoine S.
I[ y] = ∫
x2 x1
( dx ) 2 + ( dy ) 2 = ∫
x2 x1
dy
1 + ( dx ) 2 dx
y (0) = y (1) = 0 . A. Sangiacomo C.
117
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
Para minimizar I[y], se deriva y se iguala a cero, con la condición de que cada curva pasa por ( x1 , y1 ) y ( x2 , y2 ) . Además para la trayectoria óptima debe cumplirse la ecuación de Euler - Lagrange esto es: d ∂ F ( x, y, y ' ) = ∂∂y F ( x, y, y ' ) . (2) dx ∂ y '
se tiene sólo derivadas de primer orden, en vez de segundo orden. Esto a parte de simplificar los cálculos permite encontrar soluciones aun cuando haya discontinuidades que pueden provocar que no tenga derivadas suficientemente altas. En caso de no conocerse la solución, quizá podamos aproximarnos a ésta mediante Al aplicar a la funcional para la distancia algunas funciones (casi) arbitrarias y ver si más corta se tiene: es posible minimizar la funcional por medio de una elección adecuada de los parámetros 2 F ( x, y , y ' ) = 1 + ( y ' ) de la aproximación. Se hace u(x), que es la ∂ F ( x , y , y ' ) = 0 . aproximación a y(x) (la solución exacta), sea ∂y una suma: (2 y ' ) ∂ 1 F ( x , y , y ' ) = ⋅ , u ( x) = c0 v0 ( x) + c1v1 ( x) + ... + cn vn ( x) ∂ y' 2 1+ ( y ' ) 2
[
]
d ∂ dx ∂ y '
=
d ( dx
( y ') 1+ ( y ' ) 2
)=
∂F ∂y
= 0.
n
= ∑ ci vi ( x) .
(5)
i =0
Sobre la v hay dos condiciones: deben escogerse de modo que u(x) cumpla las ( y ') condiciones de frontera, y las v individuales =C. 2 deben ser linealmente independientes 1+ ( y ' ) ( vi debe ser homogénea para i≠0. v0 debe despejando para resolver se tiene: cumplir las condiciones de frontera.). Las v 2 y ' = C 2 = b =constante, se denominan funciones ensayo; las c y las v 1− C deben escogerse para hacer de u(x) una integrando aproximación aceptable a la solución y = bx + a . verdadera de la ecuación (3). Una recta que debe para por los puntos Si u(x) según se ha definido en la ecuación (x1 , y1 ) y ( x2 , y2 ) . (5) se sustituye por la funcional, ecuación Pero el caso no es así de trivial para una (4), se obtiene EDO. Considere el problema con valor en la I (c ,c ,...,c ) = 0 1 n frontera lineal de segundo orden sobre [a, b]: b d = ∫ [( dx ∑ c i v i ) 2 − Q(∑ c i v i ) 2 + 2 F ∑ c i v i ] dx a y ' ' + Q( x ) y = F ( x ) , (3) (6) y ( a ) = y0 , y (b) = yn . Se observa que I es una función normal de Llevado a la funcional tendremos las c desconocidas después de esta b du 2 2 I [ y ] = ∫ [( dx ) − Qu + 2 Fu ] dx (4) sustitución. a Para minimizar I, se toman sus derivadas La ecuación (4) puede convertirse en la (3) y parciales con respecto a cada incógnita c y se viceversa por las condiciones de Euler - iguala a cero. Lo que resulta es un conjunto Lagrange, de modo que al optimizar (4) se de ecuaciones en las c que podemos resolver. obtiene la solución de la (3). Observe Esto define a u(x) en la ecuación (5). cuidadosamente el beneficio de operar con la Luego se sustituye la u(x) de la ecuación (5) funcional en vez de la EDO original: ahora en la funcional. Si se deriva parcialmente Esto último por (2). A partir de esto, se concluye que
F. Antoine S.
A. Sangiacomo C.
118
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
con respecto a, por ejemplo, ci donde esta es − 2 2[ 7 x +c ( x 2 − 2 x) +c ( x 3 − 2 x 2 )]( x 3 − 2 x 2 )dx 2 ∫0 4 1 una de las c desconocidas, se obtiene 2 ∂I b ∂ (11) + 2 ∫ (3 x 2 )( x 3 − 2 x 2 )dx ; 2( du ) ( du )dx ∂ ci
∫a
dx ∂ ci dx
0
b
∂u
b
∂u
a
i
a
i
− ∫ 2Qu ( ∂ c )dx + ∫ 2F ( ∂ c ) dx
luego: 2
0 = c1 ∫ [(2 x − 2) 2 − ( x 2 − 2 x) 2 ]dx
0 (7) 2 donde la integral se ha separado en tres + c2 ∫ [(3x 2 − 4 x)(2 x − 2) − ( x 3 − 2 x 2 )( x 2 − 2 x)]dx 0 partes. 2 + ∫ [(3x 2 )( x 3 − 2 x) + 74 (2 x − 2) − 74x ( x 2 − 2 x)]dx ; 0 A1.2. Ejemplo: (10’) Resolver la ecuación y ' ' + y = 3x 2 , con 2 puntos fronterizos (0, 0) y (2, 3.5) (aquí Q=1 0 = c1 ∫ [(2 x − 2)(3x 2 − 4 x) − ( x 2 − 2 x)( x 3 − 2 x 2 )]dx 0 y F = 3x 2 ). Use funciones polinomiales de 2 + c [(3x 2 − 4 x) 2 − ( x 3 − 2 x 2 ) 2 ]dx 2 ∫ grado 3. 0 2 Si u(x) se define como + ∫ [ (3x 2 )( x 3 − 2 x 2 ) + 74 (3x 2 − 4 x) − 74x ( x 3 − 2 x 2 )]dx ; 0 2 7x u (x) = 4 + c1 ( x − 2) x + c2 ( x − 2) x , (8) (11’) se tiene las v linealmente independientes. Ahora se realiza las integraciones. Si El Cumple las condiciones de frontera, y debido resultado se puede escribir así: 16 74 a los v1 = ( x − 2) x y v2 = ( x − 2) x 2 son c + 16 c = 15 5 1 5 2 ceros en los puntos frontera. 16 c + 128 c = 36 , (12) ∂I ∂I 5 5 1 21 2 ; , = 0 = 0 ∂ c1 ∂ c2 de donde c1 = 173 ; c2 = 119 . En (8): 152 228 2 du 7 = + c ( 2 x − 2 ) + c ( 3 x − 4 x ) 1 2 dx 4 u ( x) = 74x + 173 ( x − 2) x + 119 ( x − 2) x 2 228 152 ∂ du ∂ du = 2 x − 2 , ∂ c dx = 3 x 2 − 4 x , en la figura se ven las funciones coordenadas ∂ c dx 1
∂u ∂ c1
2
= ( x − 2) x ;
∂u ∂ c2
= ( x − 2) x 2 .
y la solución:
(9) Ahora se sustituye (9) en (7) pero, agrupando para c1 y c2 y las que no tienen c. ∂I ∂ c1
=0
2
= ∫ 2[ 74 + c1(2 x − 2) + c 2 (3 x 2 − 4 x)](2 x − 2)dx 0 2
− ∫ 2[ 74x +c1( x 2 − 2 x) +c 2 ( x 3 − 2 x 2 )]( x 2 − 2 x)dx 0
2
+ 2 ∫ (3 x 2 )( x 3 − 2 x)dx ; 0
∂I ∂ c2
(10)
=0
2
= ∫ 2[ 74 +c1(2 x − 2) +c 2 (3 x 2 − 4 x)](3x 2 − 4 x)dx 0
F. Antoine S.
Figura xx1 Comparando las soluciones exacta con aproximada
A. Sangiacomo C.
119
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
Exacta: y = 6 cos( x) + 3( x 2 − 2)
Aproximada: u ( x) = 74x + 173 ( x − 2) x + 119 ( x − 2) x 2 228 152 A1.3. Ejemplo: Resolver y ' ' + xy = x 3 −
4 x3
;
Integral [1] = 0.089256462419067 Fila 2 para la Integral de [1;2] de Coeficientes aij y bi de Ac = b f ' [2,1] = (2*(x-1)*(x-2)+(x-1)^2)*((x-2)+(x-1))-x*((x1)^2*(x-2))*((x-1)*(x-2)) Integral [2,1] = 0.140476000184814 f ' [2,2] = (2*(x-1)*(x-2)+(x-1)^2)*(2*(x-1)*(x-2)+(x-1)^2)x*((x-1)^2*(x-2))*((x-1)^2*(x-2)) Integral [2,2] = 0.117858002272745 r(x) [2] = -(x^3-4/x^3)*((x-1)^2*(x-2))-(2*(x-1)*(x-2)+(x1)^2)*(4)+x*(4*x-5)*((x-1)^2*(x-2)) Integral [2] = 0.06678732958464 Matriz de coeficientes de los Ci 0.2833C1 + 0.1405C2 = 0.0893 0.1405C1 + 0.1179C2 = 0.0668 C[1] = 0.083280 C[2] = 0.467414 >>> y = 4*x-5+(0.0832801691)*((x-1)*(x-2)) +(0.4674138664)*((x-1)^2*(x-2)) Datos por Intervalo {comparación} 0 Cal y (1 ) = -1 1 Cal y (1.1 ) = -0.6117019400166 0.608181818181818 2 Cal y (1.2 ) = -0.2282820707808 0.226666666666667 3 Cal y (1.3 ) = 0.1530640909058 0.151538461538462 4 Cal y (1.4 ) = 0.5351410282416 0.531428571428571 5 Cal y (1.5 ) = 0.920753224425 0.916666666666667 6 Cal y (1.6 ) = 1.3127051626544 7 Cal y (1.7 ) = 1.7138013261282 1.71352941176471 8 Cal y (1.8 ) = 2.1268461980448 2.12888888888889 9 Cal y (1.9 ) = 2.5546442616026 2.55736842105263 10 Cal y (2 ) = 3
Ex y (1 ) = -1 Ex y (1.1 ) = Ex y (1.2 ) = Ex y (1.3 ) = Ex y (1.4 ) = Ex y (1.5 ) = Ex y (1.6 ) = 1.31 Ex y (1.7 ) = Ex y (1.8 ) = Ex y (1.9 ) = Ex y (2 ) = 3
y(1)= - 1; y(2)= 3. La solución exacta es y = x 2 − 2x . Solución: MÉTODO DE RITZ d((1) * y ' )/dx + (x) * y = x^3-4/x^3 p(x)=1; q(x)=x; r(x)=x^3-4/x^3 u0 = 4*x-5 Æ f ' 0 = 4 u1 = (x-1)*(x-2) Æ f ' 1 = (x-2)+(x-1) u2 = (x-1)^2*(x-2) Æ f ' 2 = 2*(x-1)*(x-2)+(x-1)^2 Coeficientes Algebraicos y Sus Integrales Fila 1 para la Integral de [1;2] de Coeficientes aij y bi de Ac = b f ' [1,1] = ((x-2)+(x-1))*((x-2)+(x-1))-x*((x-1)*(x-2))*((x1)*(x-2)) Integral [1,1] = 0.28333314259847 f ' [1,2] = ((x-2)+(x-1))*(2*(x-1)*(x-2)+(x-1)^2)-x*((x1)*(x-2))*((x-1)^2*(x-2)) Integral [1,2] = 0.140476000184814 r(x) [1] = -(x^3-4/x^3)*((x-1)*(x-2))-((x-2)+(x1))*(4)+x*(4*x-5)*((x-1)*(x-2))
F. Antoine S.
Figura xx2.
A2.1. Método de Rayleigh-Ritz cúbicas A. Sangiacomo C.
120
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
dos derivadas continuas en [ x0 , x4 ] la única El uso de una base de funciones posibilidad es la de modificar (b) a segmentarias cúbicas para que sea b’) S ( x j ) = f ( x j ) para j= 0, 2, 4. diferenciable C02 [0,1] es un tanto más El trazador - B básico S definido en seguida complicado. Estas funciones base son usa los nodos igualmente espaciados similares a los trazadores interpolantes x0 = −2 , x1 = −1 , x2 = 0 , x3 = 1 , x4 = 2 . cúbicos. Satisface las condiciones interpolantes Un trazador interpolante cúbico S en los b’) S ( x0 ) = 0 , S ( x1 ) = 1 , S ( x4 ) = 0 ; cinco nodos x0, x1, x2, x3 y x4 se define para así como ambos conjuntos de condiciones una función f mediante: i) S ' ' ( x0 ) = S ' ' ( x4 ) = 0 . a) S es un polinomio cúbico, denotado por ii) S ' ( x0 ) = S ' ( x4 ) = 0 . S j en [ x j , x j +1 ] para j=0, 1, 2, 3. (Esto da 16 constantes a seleccionar par S, 4 Como consecuencia, S ∈ C02 (−∞, ∞) . constantes para cada cúbico). ⎧0, x ≤ −2 b) S ( x j ) = f ( x j ) para j= 0, 1, 2, 3, 4. (5 3 3 3 ⎪1
[(2 − x) − 4(1 − x) −6 x + 4(1 + x) 3 ] 4 ⎪ condiciones especificadas). ⎪ − 2 < x ≤ −1 c) S j +1 ( x j +1 ) = S j ( x j +1 ) para j= 0, 1, 2. (3 ⎪1 3 3 3 ⎪ [(2 − x) − 4(1 − x) −6 x ] condiciones especificas). S ( x) = ⎨ 4 −1 < x ≤ 0 d) S ' j +1 ( x j +1 ) = S j ( x j +1 ) para j= 0, 1, 2. (3 ⎪ ⎪ 1 [(2 − x) 3 − 4(1 − x) 3 ], 0 < x ≤ 1 condiciones especificas). ⎪4 1< x ≤ 2 e) S ' ' j +1 ( x j +1 ) = S j ( x j +1 ) para j= 0, 1, 2. (3 ⎪ 14 [(2 − x) 3 ], ⎪0, 2 < x. condiciones especificas). ⎩
f) Se satisface una de las siguientes condiciones de frontera. i) Libre: S ' ' ( x0 ) = 0 . (2 condiciones especificas). ii) y Sujeta: S ' ( x0 ) = f ' ( x0 ) (2 condiciones S ' ( x4 ) = f ' ( x 4 ) . especificas). Como la unicidad de la solución requiere que el número de constantes en (a), 16, sea igual al número de condiciones en (b) hasta (f), sólo puede especificarse una de las condiciones de frontera en (f) para los trazadores interpolantes cúbicos. Las definiciones de trazador cúbico que usaremos para nuestras funciones base se llaman trazadores - B o trazadores de forma de campana. Estos trazadores interpolantes en que se satisfacen ambos conjuntos de condiciones de frontera en (f). Esto requiere de la relajación de dos de las condiciones de (b) hasta (e). Como el trazador debe tener F. Antoine S.
Para construir las funciones base φ j en C02 [0,1] dividimos primero [0, 1] escogiendo
un entero positivo n y definiendo h =
1 . n +1
Esto produce los nodos igualmente espaciados xi = ih , para cada i=0, 1, . . .,n+1. La gráfica de un S i típico lo vemos en seguida.
Es fácil demostrar que {S i }in=+01 es un conjunto linealmente independiente de trazadores cúbicos. Para que el conjunto
A. Sangiacomo C.
121
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
{Si }in=+01 satisfaga las condiciones de frontera φi (0) = φi (1) = 0 , es necesario modificar S 0 , S1 , S n y S n +1 . La base con esta modificación se define como ⎧S 0 ( x) − 4S ( x + h ), i = 0, h ⎪ x+h i = 1, ⎪S1 ( x) − S ( h ), ⎪S ( x), 2 ≤ i ≤ n − 1, φi ( x ) = ⎨ i − x ⎪S ( x) − S ( ( n + 2) h ), i = n, h ⎪ n ⎪S n +1 ( x) − 4S ( x − ( n + 2) h ), i = n + 1, h ⎩
A2.2. Algoritmo con trazador cúbico n +1
Con trazados cúbico - B. φ ( x) = ∑ ciφ i ( x) . i =0
Paso 1: Definir − ( p( x) y ' ) ' + q ( x) y = f ( x) , 0 ≤ x ≤ 1 ; y (0) = y (1) = 0 . Paso 2: Entrar n. Paso 3: Hacer h = n1+1 . Paso 4: Para i=0 hasta n+1 hacer xi = ih Paso 5: x− 2 = x−1 = 0 ; xn + 2 = xn + 3 = 1 ; Paso 6: Definir la función S: ⎧0, x ≤ −2 ⎪ 1 [(2 − x) 3 − 4(1 − x) 3 −6 x 3 + 4(1 + x) 3 ] ⎪4 ⎪ − 2 < x ≤ −1 ⎪1 3 3 3 ⎪ 4 [(2 − x) − 4(1 − x) −6 x ] S ( x) = ⎨ −1 < x ≤ 0 ⎪ ⎪ 1 [(2 − x) 3 − 4(1 − x) 3 ], 0 < x ≤ 1 ⎪ 14 3 1< x ≤ 2 ⎪ 4 [(2 − x) ], ⎪0, 2 < x. ⎩
Como φi (x) y φ 'i ( x) son diferentes de cero Paso 7: Definir la base {S i }in=+01 por solamente para xi − 2 ≤ x ≤ xi + 2 , la matriz en φ0 ( x) = S ( hx ) − 4 S ( x +h h ) , la aproximación de Rayleigh-Ritz será una x− x matriz banda con un espesor de banda de la φ1 ( x) = S ( h 1 ) − S ( x +h h ) , más siete: x − xi ... ... 0 0 ⎤ ⎡a00 a01 a02 a03 0 φ ( x ) = S ( ), i =2,…, n -1, para ⎥ ⎢a i O M a a a a h 11 ⎢ 10 ⎢a20 a21 ⎢ ⎢a30 a31 ⎢0 a41 ⎢ M O ⎢ ⎢M ⎢ ⎢M ⎢0 ... ⎣
12
13
14
a22 a32
a23 a33
a24 a34
a25 a35
O a36
0
a42 a43 a44 a45 O O O O
a46 O
a47 O
O O ...
...
0
an +1, n − 2
an +1, n −1 an +1, n
⎥ ⎥ ⎥ ⎥ ⎥ 0 ⎥ ⎥ ⎥ ⎥ ⎥ an +1, n +1 ⎥⎦
M 0
10.43
x − xn x − ( n + 2) h ) − S( h ) , h x− x x − ( n + 2) h S ( hn+1 ) − 4S ( h ) .
φ n ( x) = S ( φn +1 ( x) =
Paso 8: Para i=0 hasta n+1 hacer [9 a 12] Paso 9: Para j=i hasta mím (i=3, n+1) L=máx( x j − 2 , 0) , U=mím ( xi + 2 , 0) ,
donde 1
aij = ∫ { p( x)φ 'i ( x)φ ' j ( x) + q ( x)φi ( x)φ j ( x)}dx 0
para cada i,j=0, 1, . . ., n+1. La matriz es definida positiva, así que el sistema lineal puede resolverse fácilmente con el algoritmo de eliminación Gaussiana. F. Antoine S.
aij = ∫
U L
{ p( x)φ 'i ( x)φ ' j ( x)
+ q ( x)φi ( x)φ j ( x)}dx a ji = aij , // simetría
Paso 10: Si i ≥ 4 ⇒ para j=0, …i-4
A. Sangiacomo C.
122
Capítulo 4
Método Numéricos para la Solución de Ecuaciones Diferenciales
hacer aij = 0 . Pasa 11: Si i ≤ n − 3 ⇒ para j=i+4, …, n+1 hacer aii = 0 . Paso 12: Hacer L=máx( x j − 2 , 0) , U=mím ( xi + 2 , 0) , bi = ∫
U L
f ( x)φi ( x)dx
Paso 13: Resolver Ac = b, donde A = (aij ) ,
4 Apr y( 0.4 ) = 0.951069711300547 Ex y( 0.4 ) = 0.951056516295154 5 Apr y( 0.5 ) = 1.0000137657138 Ex y( 0.5 ) = 1 6 Apr y( 0.6 ) = 0.951069711300547 Ex y( 0.6 ) = 0.951056516295154 7 Apr y( 0.7 ) = 0.809028044359792 Ex y( 0.7 ) = 0.809016994374947 8 Apr y( 0.8 ) = 0.587793644476371 Ex y( 0.8 ) = 0.587785252292473 9 Apr y( 0.9 ) = 0.30901943116088 Ex y( 0.9 ) = 0.309016994374947 10 Apr y( 1 ) = 2.838072443063E-20 Ex y( 1 ) = 1.572093150104E-18
b = (b0 , b1 , ..., bn +1 )T y c = (c0 , c1 , ..., cn +1 )T . Paso 14: Para i=0 hasta n+1 hacer Paso 15: Publicar c Paso 15: Parar.
A2.3. Ejemplo: Resolver el Problema − y ' ' + π 2 y = 2π 2 sin(π x) , 0 ≤ x ≤ 1 , y (0) = y (1) = 0 . Solución: Resultados x= 0 C 0= 5.0306554474755E-6 y = 0 x= 0.1 C 1= 0.20942888217673 y = 0.309020688824741 x= 0.2 C 2= 0.398362195936599 y = 0.58779364447637 x= 0.3 C 3= 0.548296911982353 y = 0.809028044359791 x= 0.4 C 4= 0.644562333573153 y = 0.951069711300547 x= 0.5 C 5= 0.67773259892722 y = 1.0000137657138 x= 0.6 C 6= 0.644562333573154 y = 0.951069711300547 x= 0.7 C 7= 0.548296911982353 y = 0.809028044359792 x= 0.8 C 8= 0.3983621959366 y= 0.587793644476371 x= 0.9 C 9= 0.20942888217673 y = 0.30901943116088 x= 1 C 10= 5.030655447561E-6 y = 2.83807244306266E-20 Intervalo (comparación) 0 Apr y( 0 ) = 0 Ex y( 0 ) = 0 1 Apr y( 0.1 ) = 0.309020688824741 Ex y( 0.1 ) = 0.309016994374947 2 Apr y( 0.2 ) = 0.58779364447637 Ex y( 0.2 ) = 0.587785252292473 3 Apr y( 0.3 ) = 0.809028044359791 Ex y( 0.3 ) = 0.809016994374947
F. Antoine S.
A. Sangiacomo C.
123
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
F ( x, y, u, u x , u y , u xx , u xy , u yy ) = 0 . (1)
CAPÍTULO 5
En donde x, y son las variables independientes, u la función buscada y u x , u y , u xx , u xy , u yy son sus derivadas parciales Objetivo: Es estudiar una ecuación diferencial parcial y los primera y segunda respecto a x y métodos más comunes de solución algebraicos y, la y, respectivamente. teoría necesaria para la existencia de una solución. Una función u = u ( x, y ) se dice que es solución de la ecuación diferencial (1), si ella transforma 5.0. SOLUCIONES NUMÉIR- esa ecuación en una identidad. La CAS DE ECUACIONES DIFE- representación gráfica de la RENCIALES PARCIALES solución es una superficie en el espacio R 3 (superficie integral) Nota: por efectos de simplicidad se usará indistintamente “ecuación diferencial parcial” o “EDP”.
5.1. Clasificación de las Ecuaciones Diferenciales Parciales Figura 1. En este capítulo trataremos métodos de aproximación para la 5.1.1. Ejemplo resolución de algunos problemas para ecuaciones diferenciales Resolver la ecuación diferencial parciales de segundo orden con ∂ 2u = 0. dos variables independientes. En ∂ y2 el caso general, una ecuación diferencial cualquiera tiene la Solución: forma F. Antoine S.
A. Sangiacomo C.
124
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
Integrando dos veces esta D = AC − B 2 , ecuación diferencial con respecto a y, obtengamos entonces se llama el discriminante de la ecuación (2). En función del u = yh( x) + g ( x) , signo de la función D, la ecuación diferencial (2) pertenece en donde h(x) y g (x) son a uno de los tres tipos siguientes, funciones cualesquiera. Las en el dominio respectivo: superficies integrales son en este D > 0, tipo elíptico, caso superficies planas, que se D = 0, tipo parabólico, encuentran paralelas al plano y, u. D < 0, tipo La ecuación diferencial (1) se llama lineal si la función F hiperbólico; depende linealmente de la función buscada y de todas sus si D cambia de signo en el derivadas, es decir, si la podemos dominio considerado, la ecuación (2) se dice que es del tipo mixto. escribir en la forma siguiente: El tipo de ecuación diferencial lineal (2) es una característica ∂ 2u ∂ 2u ∂ 2u + +C A 2 + 2B importante que se conserva en ∂ x∂ y ∂ y2 ∂x una transformación cualquiera de ∂u ∂u +a +b + cu = F ( x, y ) . la forma ∂x ∂y (2)
En donde los coeficientes A, B, C, a, b y c tienen sólo que depender de x y y. En el caso especial en que todos los coeficientes sean constantes, esto es, que no dependan de x ni de y, entonces diremos que la ecuación diferencial (2) es una ecuación diferencial lineal con coeficientes constantes. A la expresión F. Antoine S.
q = φ ( x , y ) , r = ψ ( x, y ) ,
(3)
con su determinante funcional distinto de cero: (jacobiano de q, r) ∂ ( q, r ) ≠ 0. ∂ ( x, y )
5.1.2. Ejemplo
A. Sangiacomo C.
125
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
La temperatura u = u ( x, y ) del punto (x, y) de una placa para una distribución estacionaria de temperatura (es decir, independiente del tiempo) satisface la ecuación diferencial de Laplace, si no existen fuentes de calor ∂ u 2
∂x
2
+
∂ u 2
∂y
2
= 0.
(4)
las fuentes de calor. Si en la barra no existen fuentes de calor, la ecuación de la conductividad térmica tiene entonces la forma ∂u ∂ 2u = a2 . ∂t ∂ x2
Si ponemos a 2t = τ ,
obtenemos entonces la ecuación En donde A = 1; B = 0; C = 1 ; reducida de la conductividad luego D = AC − B 2 > 0 , es decir, la térmica ∂ u ∂ 2u EDP homogénea anterior es del = . (6) ∂ τ ∂ x2 tipo elíptico. Las ecuaciones (5) y (6) son ejemplos del tipo parabólico.
5.1.3. Ejemplo La temperatura u = u( x, y) en un punto de abscisa x de una barra delgada homogénea satisface en el momento t la ecuación de la conductividad térmica unidimensional 2 ∂u 2 ∂ u −a = F ( x, t ) . ∂t ∂ x2
(5)
En donde α es una constante que depende de las propiedades físicas de la barra, mientras que F ( x, t ) es una función que está relacionada con la intensidad de F. Antoine S.
5.1.4. Ejemplo La ordenada de un punto de la cuerda homogénea de abscisa x en el instante t es u = u ( x, t ) . Esta ordenada satisface la ecuación de onda no homogénea unidimensional si se aplica una fuerza exterior ∂2 u ∂ t2
−a
2
∂ 2u ∂ x2
= F ( x, t ) .
A. Sangiacomo C.
(7)
126
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
+a
∂u ∂u +b + cu = F ( x, y ) ∂x ∂y
(10)
se llama la ecuación característica. Figura 2. Para una ecuación diferencial parcial (10) del tipo hiperbólico en donde a es una constante y AC − B 2 < 0 existen por cada F ( x, t ) representa la fuerza de la punto del dominio considerado influencia exterior. La ecuación dos características diferencial parcial (7) es la ecuación de la cuerda oscilante. φ ( x, y ) = C ψ ( x, y ) = C 2 1, Si no existe fuerza exterior alguna (oscilaciones libres), la Si efectuamos en la EDP (1) la EDP de la cuerda que oscila tiene transformación de coordenadas entonces la forma ∂2 u ∂ t2
=a
2
∂ 2u ∂ x2
q = φ ( x, y ) ,
.
r = ψ ( x, y ) ,
(8)
es decir, si introducimos los parámetros de las características Las ecuaciones diferenciales (7) como nuevas coordenadas y (8) de la cuerda que oscila curvilíneas, obtenemos entonces pertenece al tipo hiperbólico. la forma canónica de la EDP del tipo hiperbólico: La Ecuación diferencial ordinaria A(dy ) 2 − 2 Bdxdy + C (dx) 2 = 0 , (9)
u qr + α ( q, r )u q + β ( q, r )u r + + γ (q, r )u = f (q, r ) .
formada con las constantes A, B, C de la ecuación diferencial lineal ∂ 2u
∂ 2u ∂ 2u +C + A 2 + 2B ∂ x∂ y ∂x ∂ y2
F. Antoine S.
A. Sangiacomo C.
127
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
φ ( x , y ) − iψ ( x , y ) = C 2 ;
donde i 2 = −1 (i = − 1) . Por medio de la transformación
q = φ ( x, y ) , Figura 3.
r = ψ ( x, y )
obtenemos la forma canónica de la EDP del tipo elíptico:
Para una ecuación diferencial parcial (1) del tipo parabólico Δu + α ( q, r )u q + β ( q, r )u r + + γ ( q , r )u = f ( q , r ) . existe sólo un conjunto de características reales En donde el operador φ ( x, y ) = C . ∂2 ∂2 + 2, Δ= 2 ∂q
∂r
Por medio de la transformación q = φ ( x, y ) , r = y , la EDP del tipo es el operador de Laplace. hiperbólico para la forma canónica siguiente: La ecuación diferencial parcial más simple del tipo elíptico es
u rr + α (q, r )u q + β (q, r )u r + γ ( q, r )u = f ( q, r )
Δu = 0
y se llama ecuación diferencial Si finalmente, la EDP (10) es del de Laplace. tipo elíptico, no tiene La ecuación de Laplace no características reales, sino dos homogénea grupos de características complejas Δu = f (q, r )
φ ( x, y ) + iψ ( x, y ) = C1 y F. Antoine S.
se llama ecuación diferencial de Poisson. A. Sangiacomo C.
128
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
5.2. Presentación de la Solución Aquí la ecuación diferencial de Ecuación Diferencial Parcial lineal de segundo orden (10) la podemos escribir como por Operadores Cuando sólo se tiene dos variables, x y y independientes, la EDP puede ser escrita en la forma simbólica compacta φ ( Dx , D y )u = F ( x, y ) ,
donde Dx =
∂ , ∂x
Dxj D iy
=
Dy =
∂ j +i ∂ j x∂ i y
,
(11)
∂ , ∂y (12)
y donde el operador φ ( Dx , D y ) denota a un polinomio de grado m en Dx y D y , en el cual sus coeficientes son funciones sólo en x y y. Particularmente cuando la ecuación (11) es de segundo orden se pude simplificar la simbología con
( RDx2 + SDx D y + TD y2 + PDx + QD y + Z )u = F ( x, y ) ,
(14)
o también como Rr + Ss + Tt + Pp + Qq + Zu = F ( x, y ) ,
(15)
donde R, S, T, P, Q, y Z como F, son funciones sólo de x y y. Si F ≡ 0 la ecuación es de la forma φ ( Dx , D y )u = 0 ,
(15)
es una EDP homogénea. Si F ≠ 0 , se dice que la EDP es no homogénea. Cualquier función de x y y, el cual sustituida por u en (11), y que satisface la identidad, es llamada una particular integral 2 de (11). Una función de x y y , el ∂u ∂u ∂ u ∂p p= , q= , r= 2 = , cual sustituida por u en (15), y ∂y ∂x ∂x ∂x que satisface la identidad ∂ 2u ∂ q t= = homogénea, es llamada una ∂ y2 ∂ y solución complementaria o ∂ p ∂q ∂ 2u ∂ 2u función complementaria. A causa s= = = = . ∂ y ∂ x ∂ x∂ y ∂ y∂ x del carácter lineal de (11), la (13) suma de la función particular y
F. Antoine S.
A. Sangiacomo C.
129
Capítulo 5
complementaria forman una solución completa de (11). Un teorema básico, que es importante en esta parte y que puede probarse fácilmente, es el siguiente. 5.2.1. Teorema Si u1 , u2 , …, un son n soluciones de una ecuación diferencial parcial lineal homogénea, c1u1 + c2u 2 + ... + cn u n , entonces donde los coeficientes ci son constantes cualquiera, es también una solución. 5.3. Ecuaciones Homogéneas Reducibles
Método Numéricos para la Solución de Ecuaciones Diferenciales
grado en Dx y D y . Una ecuación irreducible no puede ser puesta en factores de primer grado. 5.3.1. Ejemplo Reducible: ( Dx2 − Dx Dy − Dx + D y )u =
= ( Dx − D y )( Dx − 1)u = 0
es una EDP de segundo grado reducible. Irreducible: ( Dx3 − Dx D y )u = Dx ( Dx2 − D y )u = 0
es una EDP de segundo grado irreducible, como se nota el Hallaremos la solución 2 complementaria de la ecuación factor Dx − D y no se puede diferencial parcial con resolver en factores lineales. ♥ coeficientes constantes dada por Ahora tratemos las EDP φ ( Dx , D y )u = 0 . (16) homogéneas reducibles de orden m, el cual puede ser escrita como Nosotros por conveniencia, separamos la ecuación (16) en φ ( Dx , D y )u = (α1Dx − β1D y − γ 1 )... ...(α m Dx − β m D y − γ m )u = 0 , dos clases, el cual serán llamadas, (17) ecuaciones reducible e irreducible respectivamente. Para una ecuación reducible donde α i , β i y γ i son constantes tenemos el operador que puede y algunas pueden ser ceros. ser resuelto en factores de primer F. Antoine S.
A. Sangiacomo C.
130
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
Evidentemente cualquier solución m-ésima de la ecuación de Lagrange (α m Dx − β m D y − γ m )u = = α m p − β m q − γ mu = 0
(18)
u=e
γ mx αm
f m (α m y + β m x) ,
(19)
donde f m es función arbitraria, y si β m ≠ 0 , tendremos una solución alternativa general dad por −γ m y
es también una solución de (17).
u=e
βm
f m (α m y + β m x) .
(20)
En efecto: si u = f ( x, y ) satisface Si α m y β m no son ambos ceros a (18) o sea y si α m Dx − β m D y − γ m es un operador lineal, factor de (α m Dx − β m D y − γ m ) f = 0 , φ ( Dx , D y ) , entonces una combinación lineal de (19) y (20) tenemos es una solución o una de ellas. Ahora los factores lineales (19) o φ ( Dx , D y )u = [(α1Dx − β1D y − γ 1 )... (20) los reemplazamos en (16) en ...(α m −1Dx − β m −1D y − γ m −1 )](0) = 0 . cualquier orden, consecuentemente cada factor La ecuación de Lagrange (18) da α i Dx − β i D y − γ i , i=1, 2, …, m, el la ecuación subsidiaria siguiente cual nos da una solución completa de (16) dx dy du = = . αm
− βm
γ mu
u=e
γ 1x α1
f1 (α1 y + β1x) + ...
γ mx De las dos primeras relaciones, ... + e α m f m (α m y + β m x) , (21) nosotros conseguimos α m y + β m x = α . Si α m ≠ 0 , la primera y la tercera relación dan donde f1 , f 2 , …, f m son todas γ x log( z ) = m + log(b) , de donde la funciones arbitrarias, el cual αm también satisfacen la ecuación (16). Si algún α i = 0 se integral general de (16) es reemplaza por (20).
F. Antoine S.
A. Sangiacomo C.
131
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
Si dos factores no son Veamos ahora el caso con linealmente independientes se factores repetidos, o sea, aplica un factor y o x (αDx − βD y − γ ) 2 u = respectivamente. = (αDx − βD y − γ )(αDx − βD y − γ )u = 0 (22)
5.3.2. Ejemplo
si α ≠ 0 la ecuación de Lagrange Resolver la ecuación de tercer tiene como primera solución a orden γ x z = e α f (αy + βx) , ( Dx2 Dy + Dx Dy2 − 2 Dx2 − 3D D + 2 D )u = 0 donde nosotros tenemos x
y
x
Solución: Tenemos tres factores distintos que son Dx ( Dx + D y − 1)( D y − 2)u = 0 .
Teniendo como solución β1 = 0 ,
α1 = 1 , α2 = 1,
γ1 = 0 ,
β 2 = −1 , γ 2 = 1 , α 3 = 0 ,
(αDx − βD y − γ )u = αp − βq − γu =e
γ x α
f (αy + βx)
Tomando nuevamente la solución de la ecuación de Lagrange, teniendo la ecuación subsidiaria nos da dx
α
=
dy = −β
du
γu + e
γ x α
.
f (αy + βx)
β 3 = −1 , γ 3 = 2 ,
Como antes de las dos primeras relaciones tenemos αy + βx = k , resultando k constante. Usando esta primera solución en primera y tercera u = f1 ( y ) + e x f 2 ( y − x) + e 2 y f 3 ( x) , relación tenemos donde las arbitrarias.
F. Antoine S.
fi
son funciones
γ x
dz γ 1 − u = e α f (k ) . α dx α
A. Sangiacomo C.
132
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
El cual después de resolver nos Aquí la solución requerida es queda: u=
1
α
γ x α
u = x 2 f1 ( y ) + xf 2 ( y ) + f3 ( y )
e [ f (k ) x + b].
+ e −3 y [ yf 4 ( x) + f5 ( x)] ,,
La cual queda desarrollada
la cual contiene cinco funciones arbitrarias. u = e [xf1 (αy + βx) + f 2 (αy + βx)] , γ x α
(23) 5.3.4. Problema
donde esta claro f (αy + βx ) / α = f1 (αy + βx ) f 2 (αy + βx) como b / α .
que y
2.
5.3.3. Ejemplo Resolver la ecuación de quinto orden ( Dx3 D y2 + 6 Dx3 D y + 9 Dx3 )u = 0
Solución: Transformando en factores nos queda Dx3 ( D y + 3) 2 u = 0 . Primero tenemos triple en Dx3 , resultando x 2 f1 ( y ) + xf 2 ( y ) + f 3 ( y ) . Segundo la doble cual tiene
1.
3.
Halle la solución alternativa si β m ≠ 0 , para la solución de (22). Proponga la solución para p factores repetidos, tanto para α m ≠ 0 , como para β m ≠ 0 . Resolver las siguiente ecuaciones: 2 2 a) (3Dx − 13Dx D y + 4 D y )u = 0 , g) (3Dx2 D y − 4 Dx D y2 )u = 0 , b) (2 Dx2 + 7 Dx D y + 5 D y2 )u = 0 , h) (7 D 3y Dx − D y4 )u = 0 c) ( Dx3 − Dx D y2 )u = 0 , d) (4 Dx4 + 4 Dx2 D y + Dx2 D y2 )u = 0 , e) ( Dx4 Dy2 + 3Dx2 Dy2 + 3Dx2 Dy4 + Dx D5y )u = 0 , f) (2 D + D D − 12 D − 6 D D + 18D + 9 D )u = 0 . 3 x
2 x
y
2 x
x
y
x
y
5.4. Ecuaciones Homogéneas ( D y + 3) 2 , el Irreducibles
e −3 y [ yf 4 ( x ) + f 5 ( x )] . F. Antoine S.
A. Sangiacomo C.
133
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
Si la ecuación diferencial parcial son cualquiera n pares de valores, con coeficientes constantes, el cual poniéndolo en ecuación (24), tenemos una solución φ ( Dx , D y )u = 0 , (24) u = c1e a1x + b1 y + c2 e a2 x + b2 y + ... que no puede resolverse en ... + cn e an x +bn y (27) factores lineales, nosotros aplicamos las siguientes técnicas sugerida por una función donde los ci son constantes exponencial, posiblemente arbitrarias. multiplicado por algunos de los 5.4.1. Ejemplo factores,
Dxj D yk e ax + by = a j b k e ax + by , Resolver la ecuación
( 2 Dx2 D y − D y2 )u = 0 .
para j, k = 0, 1, …, cuando a y b son constantes cualquiera, tal que Solución: Aquí notamos que el operador φ ( Dx , D y )e ax + by = φ (a, b)e ax + by , (25) tiene un factor lineal, D y , y un factor irreducible, (2 Dx2 − D y ) , En consecuencia la función correspondiendo a este 2a 2 − b = 0 , o b = 2a 2 . experimental exponencial e ax + by , la cual satisface la ecuación (24) si y sólo si a y b son tales que Por fin nos resulta φ ( a, b) = 0 .
(26)
u = f ( x ) + c1e a1 x + 2 a1 y + c2e a2 x + 2 a2 y + ... 2
2
... + cn e a n x + 2 a n y , 2
Para cualquier elección de a, la relación (26), se llama la f (x) es una función ecuación auxiliar, y da distintos donde arbitraria y en la única variable x, valores de b, y viceversa. Aquí los pares son dados por n es cualquier número entero ( a1 , b1 ) , ( a2 , b2 ) , …, ( an , bn ) , y F. Antoine S.
A. Sangiacomo C.
134
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
ci son una de las expresiones Pn ( x, y ) es positivo y las ai y una solución de (24). constantes arbitrarias. ♣
Para el caso se puede poner b en función de a denotándolo como b = g (a) , de donde obtenemos la función auxiliar de (27) de la forma siguiente e ax + by = e ax + g ( a ) y como una función de a, con x y y con el rol de parámetros. Expandiendo por series de Taylor (Maclaurin) nos resulta a e ax + g ( a ) y = P0 ( x, y ) + P1 ( x, y ) + ... 1! n a ... + Pn ( x, y ) + ... , (28) n!
5.4.2. Ejemplo Hallar la solución polinomial de cuarto grado, para dar solución a EDP irreducible ( 2 Dx2 − D y )u = 0 .
Solución: Notamos rápidamente que la ecuación auxiliar 2a 2 − b = 0 , se b = 2a 2 , transforma en la ponemos en función exponencial solución
P1 , P2 , … son donde P0 , 2 funciones de x y y. u = e ax + g ( a ) y = e ax + 2 a y = G (a ) , Esta última serie (28), también satisface la ecuación (24) para desarrollando ahora los P0 , P1 , todos los valores permisibles de P ,… a, y aquí sustituyendo (28) en 2 (24) nos queda la serie la cual es 2 G (a ) = e ax + 2 a y , G (0) = 1 , idénticamente cero para toda a: a 1!
φ ( Dx , D y ) P0 + φ ( Dx , D y ) P1 + ...
an ... + φ ( Dx , D y ) Pn + ... ≡ 0 . n!
G ′( a ) = ( x + 4ay )e ax + 2 a G ′(0) = x ,
2
y
,
G ' ' ( a ) = [( x + 4ay ) 2 + 4 y ]e ax + 2 a
2
y
,
G ' ' ( 0) = x 2 + 4 y ,
En consecuencia cada coeficiente φ ( Dx , D y ) Pn , debe ser G ' ' ' ( a ) = [( x + 4ay ) 2 + 12 y ] ideáticamente cero en (24). Cada F. Antoine S.
A. Sangiacomo C.
135
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
( x + 4 ay )e ax + 2 a
2
y
G ' ' ' (0) = x 3 + 12 xy ,
5.5.1. Ejemplo Hallar la solución de la EDP
G ( 4) (a ) = [( x + 4ay ) 2
(2 Dx2 − D y )u = 0 .
(29)
+ 24 y ]( x + 4ay ) 2 + 8 y ( x + 4ay ) 2 + [( x + 4ay ) 2 + 12 y ](4 y )]e ax + 2 a
2
y
G ( 4) (0) = x 4 + 24 x 2 y + 48 y 2 .
Solución: Cuando es posible hallamos la solución de la forma u = X ( x) ⋅ Y ( y ) ,
(30)
Ahora en la serie de Maclaurin nos queda donde X es función sólo de x y Y es función sólo de y. Esta última 2 x + 4y 2 expresión la sustituimos en (29), G (a ) = 1 + xa + a 2! y tenemos +
x 3 + 12 xy 3 x 4 + 24 x 2 y + 48 y 2 4 a + a + ... 3! 4!
Se ve claramente polinomios son
que
1, x, x 2 + 4 y , x 3 + 12 xy , x 4 + 24 x 2 y + 48 y 2 ,
los
2 X ' ' Y − XY ' = 0 ,
(31)
con la notación de costumbre X ''=
d 2X dx 2
y Y '=
dY ; dy
dividiendo entre u queda X '' Y ' = . 2Y X
(32)
y cualquier combinación lineal de ellos también es una solución de Esta última expresión tiene que (24). ♠ es igual a una constante k.
5.5. Separación de Variables
X '' Y ' = =k. 2Y X
(33)
Daremos la explicación con el Vemos que nos resulta siguiente ejemplo.
F. Antoine S.
A. Sangiacomo C.
136
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
X ' '−kX = 0 ,
Y '−2kY = 0 .
k
d)
(35)
+ c2 e − x
k
,
(36)
Y ( y ) = c3e 2ky .
f) ( Dx8 + 2 Dx4 D y2 + D y4 )u = 0 . 2.
3.
(37) 4.
de donde u = [c 4 e x
k
+ c5e − x
k
]e 2ky ,
k
+ c5e − x
k
]e 2ky ,
si
∂ 2w
k > 0,
u = [c6 cos( x − k ) + c7 sin ( x − k )]e 2 ky ,
si
k < 0,
u = c4 x + c5 , si k = 0 .
Resolver usando series las EDP del problema (1), con 4 términos. Resolver por separación de variables las que pueda de (1). Usando separación de variables resuelva
(38)
donde c 4 = c 1 c 3 y c5 = c2 c3 . Como casos particulares tenemos: u = [c4 e x
(5 D x3 − D x D y + D x )u = 0 ,
e) ( Dx2 + D y4 )u = 0 ,
Resolviendo esta ecuación diferencial ordinaria anterior nos da: X ( x) = c1e x
c) ( Dx4 + 2 Dx2 D y + D y2 )u = 0 .
(34)
♣
∂ x2
+
∂ 2w ∂ y2
Sugerencia:
+
∂ 2w ∂ z2
=0
w = X ( x) ⋅ Y ( y ) ⋅ Z ( z ) .
5.7. Ecuaciones Diferenciales Parciales No Homogéneas Veamos la EDP no homogénea lineal dada por φ ( Dx , D y )u = F ( x, y ) .
(39)
5.6. Problemas 1.
Aquí una solución de (39) es dada por la suma de las Resolver por la primera forma soluciones de la función de irreducibles las siguientes complementaria y la solución EDP. integral particular. a) ( Dx + 3D y2 )u = 0 , Cuando la ecuación (39) es de 2 2 3 3 b) ( Dx D y − Dx − D y + Dx D y )u = 0 , orden m y es reducible se aplica
F. Antoine S.
A. Sangiacomo C.
137
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
f1 ( y + 2 x) + e − y f 2 ( y + x) ,
las soluciones por ecuaciones de Lagrange sucesivamente. φ ( D x , D y )u = (α1Dx − β1D y − γ 1 )...(α m Dx − β m D y − γ m )u
= F ( x, y ) .
(40)
f 2 son funciones con f1 y arbitrarias de x y y. Para hallar la integral particular hacemos
Haciendo
z = ( D x − D y − 1)u ,
(α 2 Dx − β 2 D y − γ 2 )...
y ( D x − 2 D y ) z = ( 2 + 4 x )e − y ,
...(α m Dx − β m D y − γ m )u = z , (41)
donde u es una solución integral por ecuación de Lagrange particular, para el primer factor y dx dy dz = = aplicamos la ecuación de . 1 − 2 ( 2 + 4 x )e − y Lagrange A = y + 2x
(α1Dx − β1D y − γ 1 ) z = F ( x, y ) . (42) Tenemos
y esta relación en la segunda y tercera,
5.7.1. Ejemplo
dz = (2 + 4 x )e − y dy /( −2) = ( y − A − 1)e − y dy ,
Resolver la EDP ( Dx2 − 3Dx D y + 2 D y2 − Dx + 2 D y )u = ( 2 + 4 x ) e − y .
z = ( A − y )e − y + B = 2 xe− y + B .
Cuya Solución: Reduciendo la EDP nos queda ( Dx − 2 D y )( Dx − D y − 1)u = (2 + 4 x)e − y .
La solución complementaria es
F. Antoine S.
primera
z = 2 xe
−y
+
integral es f1 ( y + 2 x) , prosiguiendo
( Dx − D y − 1)u = 2 xe − y ,
lo que resulta y además
( Dx − D y )u = u + 2 xe − y ,
A. Sangiacomo C.
138
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
dx dy du = = 1 − 1 u + 2 xe − y
1 / φ ( Dx , D y ) donde es el operador inverso. Este se usa así por ejemplo
;
con y + x = C y
1 dz + u = −2 xe − y = −2(C − y )e − y , dy
y
2 Dx2 − D y =
u = (−2Cy + y 2 + E )e− y
=
1
( 2
1
Dx 1 − ( D y /( 2 Dx2 ))
)
⎤ Dy D y2 D 3y 1 ⎡ ⎢1 + ⎥. + + Dx2 ⎢⎣ 2 Dx2 4 Dx4 8Dx6 (1 − D y /(2 Dx2 )) ⎥⎦
(44)
= (− y 2 − 2 xy + E )e− y
Aquí se toma 1 / Dx y 1 / D y por fin llegamos omitiendo E a la como integrales con respecto a x solución y y respectivamente. u = f1( y + 2 x) + e− y f 2 ( y + x)
5.7.2. Ejemplo
− ( y 2 + 2 xy)e− y .
♦ Hallar la integral particular de
Como comentario trasforma a
se
Solución:
u = f1( y + 2 x) + e − y f3 ( y + x) + x 2e − y .
♦
Algunas veces cuando es irreducible se puede aplicar la siguiente forma de solución de la EDP u=
1 ⋅ F ( x, y ) , φ ( Dx , D y )
(2 Dx2 − D y )u = 3 x − y 2 + 2 x 2 y .
puede
u=−
1 Dy
⎡ 2 Dx2 ⎤ 2 2 ⎢1 + ⎥ (3 x − y + 2 x y ) D y ⎦⎥ ⎣⎢
=−
1 Dy
⎡ ⎤ 2 2 2 (4 y )⎥ ⎢3 x − y + 2 x y + Dy ⎣⎢ ⎦⎥
= −3xy − y 3 − x 2 y 2 .
5.8. Problemas
(43) 1.
Resolver las siguientes EDP a) ( Dx2 − D y2 )u = 6 , b) ( D x2 + 2 D y2 )u = 30 xy 2 ,
F. Antoine S.
A. Sangiacomo C.
139
Capítulo 5
c) (2 Dx2 − 3D y2 + Dx )u = 10e x − y , d) ( D y2 + 3Dx D y )u = 2 x + 6 y − 9 , e) ( 2 D x D y + 2 D y2 − D y )u
= 6 cos(2 x − 3 y) − 30 ⋅ sin(2 x − 3 y) , f) (3Dx2 − 2 D y2 + 1)u = 3e x − y cos( x − y ) , 2 2 g) ( Dx + Dx D y − Dx − D y )u = 1 / y ,
h) ( Dx2 − D y2 − Dx + D y )u = ( x + 1) / x 2 ,
i) ( Dx2 − 4 D y2 )u = 3x − 4 y j) ( Dx2 − Dx D y )u = 2 xe x + y , k) ( Dx3 − D y2 )u = 6 y 2 − 2 x 3 , l) 2.
3.
( Dx2 D y2 − 2 Dx D y )u = 8 y 2 − 8 xy .
La que se puedan reducir y resolver por operador inverso de los problemas de (1). Formular la forma (44) para el factor Dy
5.9. Condiciones Iniciales y de Frontera (Contorno). Problema del Valor Inicial de Cauchy. Problema Mixto. Enfoque Correcto del Problema Mixto
Método Numéricos para la Solución de Ecuaciones Diferenciales
mediante una ecuación diferencial en derivadas parciales, se tiene que precisar, por consiguiente, para la caracterización única de este proceso, condiciones suplementarias. Estos datos adicionales constan en el caso más simple de condiciones iniciales de contorno. Estas dos condiciones sólo podemos diferenciarlas ahora si una de las variables independientes representa el tiempo y la otra es una coordenada espacial (en el caso de dos variables independientes). Por eso a las condiciones iniciales se les llama así porque indican el momento inicial del proceso. Mientras que las condiciones que indican el establecimiento de los valeres de las coordenadas (normalmente son las coordenadas de los puntos de contorno o frontera del continuo lineal considerado) se les llama condiciones de contorno o de frontera. Indicaremos en un ejemplo lo dicho líneas arriba:
Partamos del principio que una ecuación diferencial en derivadas parciales tiene en general infinitas soluciones. Si un 5.9.1. Ejemplo proceso físico se describe F. Antoine S.
A. Sangiacomo C.
140
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
Tomaremos una barra de longitud l calentada en forma homogénea y aislada térmicamente (prescindiendo de los extremos). Las coordenadas de los puntos de la barra los expresamos por x donde (0 ≤ x ≤ l ) . La temperatura de la barra u = u ( x, t ) en el punto x (0 < x < l ) con satisface la ecuación de conductividad térmica en el tiempo t
(1), ya que desde el punto de vista físico está claro que la distribución de temperatura u ( x, t ) en la barra para un tiempo t > t0 depende fundamentalmente de las condiciones en que se encuentran los extremos de la barra x = 0 y x = l . Si nos fijamos con cuidado nos sale a la palestra por ejemplo estas preguntas 5.9.2. ¿Qué régimen de 2 ∂ u ∂u temperatura tiene lugar allí? = a2 , (1) ¿Tiene lugar allí una pérdida ∂t ∂ x2 de calor? Si nos fijamos debemos tener en en donde a es una constante. cuenta otras condiciones y se Solución: encuentran en función de las condiciones en que se encuentra el extremo de la barra. Figura 4. Comencemos con x = 0 , 1. El extremo de la barra x = 0 Para los puntos interiores de la se mantiene a una barra se da la distribución de la temperatura dada temperatura en el momento inicial t = t0 . De ahí obtenemos la u (0, t ) = φ (t ) , (3) condición inicial
u ( x, t 0 ) = f ( x ) ,
(2)
para (0 < x < l ) , donde f (x) es una función conocida. La condición (2) no garantiza la unicidad de la solución de la EDP F. Antoine S.
en donde φ (t ) es una función conocida. En el caso particular si esta temperatura es igual a cero, la condición de contorno es entonces u (0, t ) = 0 .
(4) A. Sangiacomo C.
141
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
2. El extremo de la barra x = 0 está aislada térmicamente, es decir no existe una perdida de calor con el medio circundante:
otro extremo de la barra x = l . Mediante la combinación de tales condiciones para los extremos x = l , obtenemos x=0 y condiciones de frontera para la barra, que junto con las iniciales (2) u x (0, t ) = 0 (5) condiciones garantizan, en general, la 3. En el extremo de la barra unicidad de la solución. ♣ x=0 tiene lugar una radiación térmica hacia el 5.9.3. Ejemplo medio circundante, cuya temperatura se modifica según Consideremos las oscilaciones libres de una cuerda homogénea una ley dada de longitud l. La deformación u = u ( x, t ) satisface u (0, t ) + αu x (0, t ) = φ (t ) . (6) transversal para 0 < x < l en el tiempo t la En donde α es una constante ecuación de onda 2 ∂2 u 2 ∂ u y φ (t ) es una función =a , (8) 2 ∂ t ∂ x2 conocida. Si la temperatura del medio ambiente es igual a en donde α es una constante. cero (caso especial), tenemos Solución: En el momento inicial t = t0 se u (0, t ) + αu x (0, t ) = 0 . (7) dan de ordinario la posición de la cuerda y la distribución de la Con un poco de observación velocidad para sus puntos. De ese notaremos que la condición (6) es modo obtenemos las condiciones la general, puesto que si ponemos iniciales u ( x, t 0 ) = φ ( x ) , (9) α = 0 , obtenemos (3), si α = ∞ ut ( x, t 0 ) = φ1 ( x ) . tendremos la (5). Sin embargo (10) pueden presentarse otras condiciones de frontera. En donde φ (x) y φ1 ( x) son Análogamente, podemos fijar funciones definidas y conocidas condiciones de frontera para el en el intervalo 0 < x < l . En F. Antoine S.
A. Sangiacomo C.
142
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
función de la fijación de los extremos de la cuerda x = 0 y x = l , obtenemos para t0 ≤ t < ∞ los siguientes tipos de condiciones de frontera o contorno: 1. Los extremos de la cuerda están sujetos rígidamente u (0, t ) = 0 ; u (l , t ) = 0 . (10a) 2. Los extremos de la cuerda están sujetos elásticamente u x (0, t ) − k1u (0, t ) = 0 ; u x (l , t ) + k 2u (l , t ) = 0 .
3.
∂ 2u
∂ 2u L[u ] = A 2 + 2 B ∂ x∂ y ∂x
+C
∂ 2u ∂y
2
+a
∂u ∂u +b + cu . (12) ∂x ∂y
El determinar una solución u = u ( x, y ) de la ecuación diferencial (11) se llama condiciones iniciales de Cauchy.
(10b)
En donde k1 y k 2 son constantes positivas. Los extremos están libres u x (0, t ) = 0 ; u x (l , t ) = 0 . (10c)
Figura 5 Si las funciones φ (x) y φ1 ( x) del problema de las condiciones de contorno (9), (10) son Podemos dar una interpretación idénticas, el problema tiene una geométrica sencilla; buscaremos solución única. ♠ una superficie integral u = u ( x, y ) de (11) que intercepta a una Consideremos ahora la superficie curva dada por formulación general de un problema de valor inicial. ⎧ y = y0 Sea dada la ecuación lineal Γ:⎨ (13) ⎩u = φ ( x) L[u ] = F ( x, y ) ,
en donde F. Antoine S.
(11)
y que en los puntos M ( x, y0 , u ) de la curva de intersección exista un A. Sangiacomo C.
143
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
sistema de vectores dados . Este Figura 6. sistema de vectores se encuentra en el plano x=const. y forma con La expresión (13) preestablece las condiciones iniciales de el eje y el ángulo β, siendo Cauchy para las rectas y = y0 . tan ( β ) = φ1 ( x ) . Sin embargo, esto no es absolutamente necesario. Las Si consideramos al eje y como el condiciones iniciales pueden ser tiempo, el problema de Cauchy preestablecidas para cada función tiene entonces el significado lisa. mecánico siguiente: (γ )Φ( x, y ) = 0 . (14) en el momento inicial y = y0 se da previamente la forma de una consiguiente, podemos curva plana u = φ ( x, y0 ) y la Por distribución de velocidad de formular el problema general del valor inicial de Cauchy: ∂u = φ1 ( x, y0 ) . Búsquese una solución u = u ( x, y ) sus puntos ∂y de la ecuación diferencial (11) Supongamos que cualquier que satisfaga las condiciones punto de esta curva desarrolla iniciales un movimiento paralelo al eje u, para lo cual se da la ley del u γ = φ ( x, y ) , movimiento por medio de la ecuación diferencial (11) luego ∂u = φ1 ( x, y ) . (15) el problema consiste en la ∂xγ determinación de la forma de esta curva para el momento Por otras parte en lugar de la siguiente y > y0 . ∂u derivada , puede llegar a ser ∂x
preestablecida derivada
∂u , ∂y
también
la
luego en la curva γ
se cumple
F. Antoine S.
A. Sangiacomo C.
144
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
∂u dy = dφ ( x, y ) , ∂y
diferentes, que pasan por los puntos extremos P y Q. Al mismo tiempo se supone, ∂Φ ∂Φ dx + = 0. (16) naturalmente, que los ∂y ∂x coeficientes de la ecuación Pero también pueden llegar a ser diferencial son continuos en el preestablecidas condiciones con dominio correspondiente. derivadas completas, o sea, con respecto a la normal φ1( x, y )dx +
∂u ∂u ∂u = cos(n, x) + cos(n, y ) . ∂n ∂x ∂y
El problema de valor inicial de Cauchy se propone comúnmente para EDP lineales (11) del tipo hiperbólico o parabólico. Si la EDP (11) es hiperbólica, entonces es necesario para que el problema de Cauchy tenga solución, que la curva inicial γ no represente una característica de la ecuación. Cumplida esta suposición y si están preestablecidas las condiciones iniciales en un arco PQ finito de la curva γ, entonces la solución del problema de Cauchy esta definida de forma única en un triángulo esférico PQR (zona de certidumbre). Este triángulo se encuentra formado por el arco PQ y por los arcos PR y QR de las características de dos grupos F. Antoine S.
Figura 7. Supongamos que las condiciones iniciales de Cauchy para la ecuación diferencial (11) estén dadas en el intervalo a < x < b y que la solución u = u ( x, y ) de esta ecuación diferencial deba averiguarse en el dominio K = {a ≤ x ≤ b; 0 ≤ y < ∞} . Luego para que el problema tenga una solución única tienen que ponerse aún condiciones adicionales a las rectas x = a y x = b .
A. Sangiacomo C.
145
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
sustituyen por condiciones determinadas en el infinito. El problema mixto para EDP (11) puede formularse, en general, como sigue: sea dado en el plano xy un dominio limitado o ilimitado, que tenga por frontera una curva (una función lisa a tramos) formada por segmentos.
Figura 8. Esto nos conduce al problema mixto. A este tipo pertenece, por ejemplo, la averiguación de una solución u = u ( x, y) de la EDP (11) en el dominio K que satisfaga las condiciones iniciales y de frontera o contorno u ( x,0) = φ ( x) , u y ( x,0) = φ1 ( x) ,
a ≤ x ≤ b,
y=0
(17)
y α 0u (a, y ) + α1u x (a, y ) = ψ ( y ) ⎫ ⎬ , (18) β 0u (b, y ) + β1u x (b, y ) = ψ 1 ( y )⎭
α 0 + α1 ≠ 0 ;
β 0 + β1 ≠ 0 ;
Figura 9.
Se busca en el dominio G una solución de la ecuación diferencial L[u ] = F ( x, y ) ,
(19)
0 < y < ∞,
que satisfaga en los segmentos Γ1 , Γ2 , …, Γn , las condiciones respectivamente. Al caso límite a = −∞ o b = ∞ siguientes hay que dedicar atención Lij [u ] = φij ( x, y ) , ( x, y ) ∈ Γi , especial. Aquí o las condiciones de contorno (18) quedan i=1, 2, …, n; j=1, 2, …, pi (20) totalmente descartadas o se
F. Antoine S.
A. Sangiacomo C.
146
Capítulo 5
En donde Lij son los operadores diferenciales a lo sumo de primer orden en las variables x y y, mientras que φij ( x, y ) son las funciones dadas. Evidentemente, podemos considerar al problema del valor inicial de Cauchy como un caso especial de este problema mixto general. En los problemas de física las φij ( x, y ) se averiguan de forma experimental. Por consiguiente, la solución de un problema mixto tiene entonces un significado práctico sólo, cuando errores pequeños en las condiciones iniciales y de contorno no pueden conducir a grandes desviaciones entre las soluciones. Si está garantizada esta dependencia continua de las condiciones iniciales y de contorno (frontera), se dice que el problema mixto esta bien planteado.
5.9.4. Definición Se dice que el problema mixto (19) y (20) está bien planteado (formulado correctamente) en el dominio G (que responde a la realidad) cuando la existencia y la unicidad de la solución y la unicidad de la solución están F. Antoine S.
Método Numéricos para la Solución de Ecuaciones Diferenciales
aseguradas y cuando para cualquier valor de ∈> 0 existe un η = η (∈) > 0 de forma que la solución u = u ( x, y ) del problema formulado varíe en el dominio G en menos de ∈ para una variación de las funciones φij ( x, y ) en una magnitud, que en valor absoluto sea menor que η . En el caso contrario se dice que el problema (19) y (20) no esta bien planteado (que no responde a la realidad).
5.9.5. Nota: Para EDP elípticas en general no se cumplen las condiciones iniciales de Cauchy. Con el siguiente ejemplo, dado por el matemático francés Hadamard ilustraremos este caso.
5.9.6. Ejemplo Determinar en el semiplano superior y > 0 una solución de la EDP de Laplace ∂ 2u ∂x
2
+
∂ 2u ∂y
2
= 0,
(21)
que para y = 0 satisface las condiciones iniciales de Cauchy A. Sangiacomo C.
147
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
u ( x,0) = 0 , u y ( x,0) = 1n cos( nx) ,
(22)
en donde n es un número natural.
la solución (23) no está acotada, por pequeño que sea η > 0 , en el campo 0 < y < h , si n → ∞ . En efecto, si y > 0 , se cumple por ejemplo que u (0, y ) =
1 n2
sinh(ny ) → ∞ ,
Solución:
para n → ∞ .
Como pueda demostrarse fácilmente, la solución de este problema tiene la forma
Si consideramos por el contrario, a las condiciones iniciales homogéneas
u ( x, y ) =
1 n2
cos( nx ) sinh ( ny )
(23)
Aunque las condiciones iniciales (22) para un valor cualquiera de n suficientemente grande puede hacerse a voluntad pequeña, es decir, aunque se cumpla u (x,0) < η ,
u y (x,0) < η ,
Figura 10.
F. Antoine S.
u ( x,0) = 0 , u y ( x,0) = 0 ,
entonces la solución de este problema de valor inicial de Cauchy es, evidentemente u 0 ( x, y ) = 0 .
Por consiguiente en este caso, una modificación pequeña cualquiera de las condiciones de contorno conduce a una diferencia muy grande entre las soluciones correspondientes. Por el motivo ejemplificado anteriormente es que trataremos las condiciones de contorno o frontera de EDP elípticas en forma separada.
A. Sangiacomo C.
148
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
5.10. Problema de las Condi- ecuaciones diferenciales elípticas ciones de Frontera para Ecua- son: ciones Diferenciales Parciales 5.10.1. Primer problema de las del tipo Elíptico condiciones de contorno. En la El estudio estacionario de frontera Γ del dominio G está diversos fenómenos físicos dada una función continua φ (P ) . conduce a menudo a ecuaciones Busquemos una función diferenciales elípticas (por φ ( P) = φ ( x, y) que en el interior de ejemplo oscilaciones, G satisfaga la ecuación conductividad térmica y otros). diferencial (1) y en la frontera Γ tome los valores φ (P) dados, es L[u ] = Δu + au x + bu y + cu = F ( x, y ) . decir, (1)
En donde a, b, c y F, son funciones continuas de las variables x y y, dadas. Para estas EDP sólo se dan normalmente condiciones de frontera, ya que el problema de Cauchy para las ecuaciones diferenciales elípticas quizá no puede formularse correctamente.
L[u ( P)] = F ( P) para P ∈ G , u ( P) = φ ( P) para P ∈ Γ .
5.10.2. Segundo problema de las condiciones de contorno. En al frontera Γ del dominio G está dada una función continua φ1 ( P) . Busquemos una función u ( P) = u ( x, y) que en el interior de G satisfaga la ecuación diferencial (1) y cuya derivada parcial normal en Γ tome los valores dados φ1 ( P ) , es decir L[u ( P)] = F ( P) para P ∈ G ,
Figura 11.
∂ u ( P) = φ ( P) ∂n
para
P∈Γ .
Los problemas más usuales de 5.10.3. Tercer problema de las condiciones de frontera para las condiciones de contorno. En al F. Antoine S.
A. Sangiacomo C.
149
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
frontera Γ del dominio G está dada una función continua ψ ( P) = ψ ( x, y) . Busquemos una función u ( P) = u ( x, y ) que cumpla las condiciones siguientes L[u ( P)] = F ( P)
para P ∈ G , ∂ u ( P) α 0u ( P) + α1 = ψ ( P) , para P ∈ Γ . ∂n
En donde α 0 + α1 ≠ 0 .
las condiciones mixto.
de
contorno
5.11. Algunas Observaciones sobre Funciones Armónicas. Unicidad de la Solución del Problema de Dirichlet 5.11.1. Definición Una función derivable sucesivamente dos veces en el dominio G, que satisface dentro de G la ecuación diferencial de Laplace, se llama función armónica. Las funciones armónicas más simples de dos variables x y y son:
Se observa que el tercer problema es la generalización de los dos anteriores de acuerdo a los valores que tomen α 0 , α1 . Advirtamos que los problemas de La función lineal u = ax + by + c las condiciones de contorno señalamos en el caso de un y dominio G: Si se refieren al La función logaritmo u = ln(r ) interior del dominio de G se donde r = ( x − x0 ) 2 + ( y − y0 ) 2 llaman problemas de condiciones interiores, y exteriores si se (solución fundamental de la refieren al exterior de G. ecuación de Laplace. Nota: Al primer problema de las condiciones de contorno se le llama también problema de Dirichlet, al segundo se llama problema de Neumann. En el tercer se trata de un problema de
F. Antoine S.
El problema de las condiciones de contorno de Dirichlet lo podemos formular ahora de la siguiente forma: Buscamos una función armónica en el interior de G que tome en la frontera Γ
A. Sangiacomo C.
150
Capítulo 5
valores continuos preestablecidos. La unicidad de la solución de este problema de las condiciones de frontera y su dependencia continua con las condiciones de la corrección del problema de las condiciones frontera, resultan de las siguientes propiedades de las funciones armónicas. 5.11.2. Propiedad I (Principio de máximo) Una función continua y armónica en el interior G en un dominio cerrado G = G + Γ no puede tomar valores en G que sean mayores que su valor máximo en la frontera Γ, ni menores que su valor mínimo en su frontera. Prueba: Sea M el máximo de la función u ( x, y ) en la frontera Γ. Supongamos que la función u( x, y) en un punto determinado P0 ( x0 , y0 ) dentro de G tome el valor q = u ( x0 , y0 ) con la condición de que q > M . Sea la función auxiliar v ( x, y ) = u ( x , y ) q−M + [( x − x0 ) 2 + ( y − y0 ) 2 ] , 2 2d
F. Antoine S.
Método Numéricos para la Solución de Ecuaciones Diferenciales
en donde d es el diámetro del dominio G. Evidentemente se cumple ahora que v ( x0 , y0 ) = u ( x0 , y0 ) = q . Además para ( x, y) ∈ Γ cumple la desigualdad q−M
v ( x, y ) ≤ M +
2d
2
d2 =
se
q+M
En consecuencia, la función v( x, y ) toma su máximo en el interior G en un punto determinado ( x , y ) . Por eso se cumple en ese punto las condiciones necesarias para la existencia de un máximo: ∂2 v ∂v ∂v ≤ 0, = = 0, ∂x ∂y ∂ x2
∂2 v ∂ y2
≤ 0.
De la expresión ∂2 v ∂ x2
+
∂2 v ∂ y2
∂2 u
=
∂ x2
= 0+
+
∂2 u ∂ y2
+
2( q − M )
2(q − M ) d2
d2
> 0,
podemos deducir que al menos una de las dos derivadas ∂2 v ∂ x2
,
∂2 v ∂ y2
,
A. Sangiacomo C.
151
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
es positiva en el interior G. Por 5.11.3. Propiedad II (Unicidad consiguiente, la función v( x, y ) de la solución del problema de no toma en ningún punto Dirichlet). interior G un máximo. Luego El problema de la condición de hemos obtenido una frontera de Dirichlet para un contradicción y se cumple que dominio cerrado y acotado tienen a lo sumo una solución, u ( x, y ) ≤ M . Una presentación análoga es es decir, no pueden existir dos para el mínimo. Haciendo que funciones armónicas continuas u ( x, y ) en el interior G es distintas en un dominio G siempre mayor o igual que m, cerrado y acotado, que en la siendo m el mínimo de la frontera tomen los mismos función u ( x, y) en la frontera Γ. valores. Prueba: ♥ Supongamos que las dos 5.11.2.1. Consecuencia: Si la funciones armónicas u1 ( x, y ) y función u = u ( x, y) en el u 2 ( x, y ) en el dominio G G es dominio acotado armónica y el dominio cerrado coinciden en toda la frontera Γ. Ahora consideramos la función G = G + Γ es continuo, se u ( x, y ) = u1 ( x, y ) − u 2 ( x, y ) . cumple la desigualdad m ≤ u ( x, y ) ≤ M ,
donde m y M son el mínimo y el máximo de la función u( x, y) respectivamente. O sea, una función armónica en el dominio G acotado y cerrado, que no sea igual a una constante, no toma en el interior G ni su máximo ni su mínimo.
Se ve que la función u ( x, y ) es ahora una función armónica, que en la frontera Γ de G es cero. Según la propiedad I, esta función no puede tomar en el interior G ni valores mayores ni menores que cero. Por consiguiente, u ( x, y ) ≥ 0 en el interior G; por lo tanto, u1 ( x, y ) = u 2 ( x, y ) . ♣ Observación: Aquí se afirma solamente que la solución del
F. Antoine S.
A. Sangiacomo C.
152
Capítulo 5
Método Numéricos para la Solución de Ecuaciones Diferenciales
φ ( x, y ) = φ1 ( x, y ) − φ 2 ( x, y ) .
problema de Dirichlet es única cuando existe.
5.11.4. Propiedad III (Corrección de problemas de Dirichlet) La solución al problema de condiciones de contorno de Dirichlet para un dominio acotado y cerrado depende de forma continua de las condiciones de contorno. Prueba: Supongamos que u1 ( x, y ) y u 2 ( x, y ) sean dos soluciones del problema de las condiciones de frontera de Dirichlet, que toman en la frontera Γ los valores φ1 ( x, y ) y φ 2 ( x, y ) , respectivamente. Además tiene que cumplirse en toda la frontera Γ la desigualdad φ1 ( x, y ) − φ2 ( x, y ) <∈,
Ya que en Γ es siempre − ∈< φ ( x, y ) <∈ , obtenemos en virtud de la propiedad I − ∈< u ( x, y ) <∈ ,
para
( x, y ) ∈ G ,
es decir
− ∈< u1 ( x, y ) − u 2 ( x, y ) <∈
o u1 ( x, y ) − u2 ( x, y ) <∈ .
En consecuencia, para problema de condiciones frontera de Dirichlet cumplen las exigencias corrección para q =∈ .
el de se de
A. Sangiacomo C.
153
en donde ∈ es un número cualquiera positivo y pequeño. Consideramos ahora la función armónica u ( x, y ) = u1 ( x, y ) − u 2 ( x, y ) . En la frontera Γ esta función toma los valores
F. Antoine S.
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
R={(x,y)| a≤x≤b, c≤y≤d},
Capítulo 6
Objetivo: Estudiar una ecuación diferencial parcial lineal y no lineal con valor de frontera, y los métodos más comunes para hallar la solución por aproximación numérica.
6.0. SOLUCIONES NUMÉRICAS DE ECUACIONES DIFERENCIALES PARCIALES POR DIFERENCIAS FINITAS
6.1. Ecuaciones Diferenciales Parciales Elípticas
y Γ es la frontera de R. Para esta discusión supondremos que ambas f y g son continuas en su dominio con lo que se asegura una solución única de la ecuación (1). El método que aplicaremos es una adaptación del método de diferen-cias finitas para problema de valor de frontera que fue discu-tido en el capítulo 3. El primer paso consiste en escoger dos enteros n y m, y en definir los tamaños de paso h y k por h=(b–a)/n y k=(d–c)/m. Partiendo el intervalo [a,b] en n partes iguales h y [c,d] en m partes iguales k, da una manera de asociar una red al rectángulo R con rectas verticales y horizontales que pasan por los puntos con coordenadas (xi,yj) donde
La ecuación diferencial parcial xi=a+ih, elíptica que consideramos es la para cada i=0, 1, …, n, de Poisson y yj=c+jk, ∂2 u ∂ 2u 2 ∇ u ( x, y ) =
∂ x2
( x, y ) +
∂ y2
( x, y ) = f ( x, y )
(1)
para (x,y)∈R y u(x,y)=g(x,y) para (x,y)∈Γ, donde F. Antoine S.
para cada j=0, 1, …, m.
Las rectas x=xi y y= yj se llaman líneas de red y sus intersecciones se llaman puntos de red (nodos). Por cada punto de red en el interior de la malla (xi,yj), i=1, A. Sangiacomo C.
154
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
2, …, n-1 y j=1, 2, …, m-1, u ( x0 , y j ) = g ( x0 , y j ) usamos la serie de Taylor en la para cada j=0, 1, …, m, variable x alrededor de xi para generar la fórmula de diferencias u ( xn , y j ) = g ( xn , y j ) centrada para cada j=0, 1, …, m, ∂2 u ∂ x2
( xi , y j ) =
u ( xi +1 , y j ) − 2u ( xi , y j ) + u ( xi −1 , y j ) h2
h2 ∂ 4 u (qi , y j ) , − 12 ∂ x 4
para cada i=0, 1, …, n-1, (2)
donde qi∈(xi-1,xi+1); y la serie de Taylor en la variable y alrededor de yj par la fórmula de diferencias centrales ∂2 u ∂y
2
( xi , y j ) =
u ( xi , y0 ) = g ( xi , y0 ) u ( xi , ym ) = g ( xi , ym )
para cada i=0, 1, …, n-1, (4)
u ( xi , y j +1 ) − 2u ( xi , y j ) + u ( xi , y j −1 ) k2
k 2 ∂4 u − ( xi , r j ) , 12 ∂ y 4
(3)
donde ri∈(yi-1,yi+1). Reemplazando (2) y (3) en la Figura 1. ecuación (1) podemos expresar la ecuación de Poisson en los puntos (xi,yj) como En la forma de la ecuación de u( xi +1, y j ) − 2u( xi , y j ) + u( xi −1, y j ) diferencia, esto da lugar a un método llamado de diferencias h2 u ( xi , y j +1 ) − 2u ( xi , y j ) + u ( xi , y j −1 ) centrales, con error de trunca+ miento local de orden O(h2+k2), k2 que puede escribirse h2 ∂ 4 u k 2 ∂4 u , = f ( xi , y j ) + ( q , y ) + ( x , r ) i j i j 4 4 12 ∂ x
12 ∂ y
para cada i=1, 2, …, (n-1) y j=1, 2, …, (m-1), y las condiciones de frontera siguientes F. Antoine S.
⎡⎛ h ⎞ 2 ⎤ 2⎢⎜ ⎟ + 1⎥ wi , j − ( wi +1, j + wi −1, j ) ⎢⎣⎝ k ⎠ ⎥⎦
A. Sangiacomo C.
155
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
2
La figura hace ver que se aproxima una región en forma de estrella de cuatro puntas al rededor del para cada i=1, 2, …, n-1 y j=1, punto (xi,yj). 2, …, m-1, además Usando ahora la información de w0, j = g ( x0 , y j ) las condiciones de frontera en el sistema (5), o sea: en todos los para cada j=0, 1, …, m, puntos (xi,yj) que están adyacenwn, j = g ( xn , y j ) tes a un punto de red en la para cada j=0, 1, …, m, frontera, tendremos un sistema de (n–1)(m–1) ecuaciones lineales wi ,0 = g ( xi , y0 ) con (n–1)(m–1) incógnitas, estas para cada i=0, 1, …, n-1, aproximaciones son las aproximaciones wij de u(xi,yj) wi , m = g ( xi , ym ) para los puntos interiores de la para cada i=0, 1, …, n-1, (6) red. ⎛h⎞ − ⎜ ⎟ ( wi , j +1 + wi , j −1 ) = −h 2 f ( xi , y j ) ⎝k⎠ (5)
donde wi,j aproxima a u(xi, yj). La típica ecuación (5) envuelve aproximaciones a u(x,y) en los puntos ( xi −1 , y j ) , ( xi , y j ) , ( xi , y j −1 ) , ( xi , y j +1 ) , ( xi +1 , y j )
El sistema lineal que contiene a estas incógnitas puede expresarse más eficientemente para los cálculos de la matriz si se introduce un renombramiento de los puntos interiores de la red. Etiquetar de una manera apropiada estos puntos es tomar Pl(xi,yj)
Figura 2. F. Antoine S.
y
wl=wij,
donde l = i + (m − 1 − j )(n − 1) para cada i=1, 2, …, n-1 y j=1, 2, …, m-1. Esto, de hecho reordena los puntos de la red consecutivamente de izquierda a derecha de arriba hacia abajo. Como aclaración A. Sangiacomo C.
156
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
presentémoslo para n=4 y m=5, problema se expresará matemáesta nueva ordenación da por ticamente así: resultado una malla cuyos puntos ∂2 u ∂ 2u los mostramos en la figura 3. ( x, y ) + ( x, y ) = 0 , (7) 2 2 ∂x
∂y
De esta manera se asegura que para (x,y) en el conjunto los puntos forman una matriz R={(x,y)|0
Si tomamos la malla de n=m=4 y la ecuación de diferencias (5) queda 4 wij − wi +1, j − wi −1, j − wi , j −1 − wi , j +1 = 0 , (8)
Figura 3.
para cada i=1, 2, 3 y j=1, 2, 3.
6.1.1. Ejemplo Determinar la distribución estacionaria de calor en una lamina delgada de metal en forma de cuadrado con dimensiones de 0.5 m por 0.5 m, la cual se mantiene a 00C en dos fronteras adyacentes mientras que el calor en las otras fronteras se va incrementando linealmente de 00C a 1000C en la esquina donde estos lados se encuentran. Si ponemos los lados con condiciones de frontera cero a lo largo de los ejes x y y, el F. Antoine S.
Figura 4. Expresando en términos de los puntos interiores de la red reetiquetados wi=u(Pi) implica que las ecuaciones son: 4 w1 − w2 − w4 = w0,3 + w1,4 A. Sangiacomo C.
157
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
4w2 − w3 − w1 − w5 = w2,4 4 w3 − w2 − w6 = w4,3 + w3, 4 4 w4 − w5 − w1 − w7 = w0, 2
4 w5 − w6 − w4 − w2 − w8 = 0
particularmente resolviendo por Gauss tenemos i
1
2
3
4
5
6
7
8
9
wi
18.75
37.50
56.25
12.50
25.00
37.50
6.25
12.50
18.75
4 w6 − w5 − w3 − w9 = w4, 2
Tabla 1.
4 w7 − w8 − w4 = w0,1 + w1,0
4 w8 − w9 − w7 − w5 = w2,0 4 w9 − w8 − w6 = w3,0 + w4,1
Estas soluciones son correctas puesto que la solución exacta es
u(x,y)=400xy. donde las expresiones de la derecha de cada ecuación se Y además se tiene obtienen de las condiciones de ∂ 4 u ∂ 4u = 0; = frontera dadas por (8) tomadas ∂ x4 ∂ y 4 así: w1,0 = w2,0 = w3,0 = w0,1 = w0,2 = w0,3 = 0 ; así que el error de truncamiento es cero en cada paso. ♠ w1, 4 = w4,1 = 25 , w2,4 = w4,2 = 50 6.1.2. Ejemplo y w3,4 = w4,3 = 75 . Y nos resulta el sistema lineal Si usamos directamente los asociado con este problema valores de wij para las aproximasiguiente: ciones podemos resolver la ecuación de Poisson ⎤ ⎡ w1 ⎤ ⎡ 25⎤ ⎡ 4 −1 0 −1 ⎥ ⎢ w ⎥ ⎢ 50⎥ ⎢− 1 4 − 1 0 − 1 ⎥ ⎢ 2⎥ ⎢ ⎥ ⎢ ⎥ ⎢ w3 ⎥ ⎢150⎥ ⎢ 0 −1 4 0 0 −1 ⎥⎢ ⎥ ⎢ ⎥ ⎢ 4 −1 0 −1 ⎥ ⎢ w4 ⎥ ⎢ 0⎥ ⎢− 1 0 0 ⎥ ⎢ w5 ⎥ = ⎢ 0⎥ ⎢ −1 0 −1 4 −1 0 −1 ⎥⎢ ⎥ ⎢ ⎥ ⎢ − 1 0 − 1 4 0 0 − 1 ⎥ ⎢ w6 ⎥ ⎢ 50⎥ ⎢ ⎢ −1 0 0 4 − 1 0⎥ ⎢ w7 ⎥ ⎢ 0⎥ ⎥⎢ ⎥ ⎢ ⎥ ⎢ − 1 0 − 1 4 − 1⎥ ⎢ w8 ⎥ ⎢ 0⎥ ⎢ ⎢ − 1 0 − 1 4⎥⎦ ⎢⎣ w9 ⎥⎦ ⎢⎣ 25⎥⎦ ⎣
∂2 u ∂ x2
( x, y ) +
∂ 2u ∂ y2
( x, y ) = − F ( x, y ) , (a1)
con las condiciones de frontera ∂u = u para la frontera izquierda, ∂x
Usualmente para resolver este ∂ u = u − 2 para la frontera inferior, sistema es usando el método ∂y Gauss u otro método para el caso, u=5 para la frontera derecha, F. Antoine S.
A. Sangiacomo C.
158
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
u=7 para la frontera superior.
donde utilizamos la condición en (a2) la frontera izquierda para Con los intervalos de la retícula eliminar ⎛⎜ ∂ u ⎞⎟ . ⎝ ∂ x ⎠1,1 unitarios en ambas direcciones. Ahora para la derivada parcial con respecto a y se aproxima por Solución: ⎛ ∂2 u ⎞ ⎜ ⎟ = ⎜ ∂ y2 ⎟ ⎝ ⎠1,1
( w1, 2 − w1,1 ) =
1
⎛∂u⎞ ⎛∂u⎞ ⎜⎜ ⎟⎟ ⎟⎟ − ⎜⎜ ⎝ ∂ y ⎠1,1+ 1 ⎝ ∂ y ⎠1,1 2
1/ 2
− ( w1,1 − 2)
1/ 2
= −4 w1,1 + 2 w1, 2 + 4 ,
(a4)
utilizando aquí la condición de Figura 5. Las condiciones en las fronteras superior y frontera derecha son valores fijos, obtenemos las ecuaciones en diferencias sólo para los siguientes cuatro puntos de la retícula (1,1), (2,1), (1,2) y (2,2) . Para el punto (1,1) . Aproximamos la derivada parcial con respecto a x por ⎛ ∂2 u ⎞ ⎟ = ⎜ ⎜ ∂ x2 ⎟ ⎠1,1 ⎝
Sustituyendo (a4) y (a3) en (a1) nos queda 8w1,1 − 2 w1, 2 − 2 w2,1 = 4 + F .
1 1/ 2
2
1/ 2
− w1,1
= −4w1,1 + 2 w2,1 , (a3)
(a5)
Para el punto (2,1). Las derivadas parciales se aproximan por ⎛ ∂2 u ⎞ ⎟ = w1,1 − 2 w2,1 + w3,1 , ⎜ ⎜ ∂ x2 ⎟ ⎝ ⎠ 2,1
⎛∂u⎞ ⎛∂u⎞ −⎜ ⎜ ⎟ ⎟ ⎝ ∂ x ⎠1+ 1 ,1 ⎝ ∂ x ⎠1,1
( w2,1 − w1,1 ) =
⎛∂u⎞ ⎟⎟ . ⎝ ∂ y ⎠1,1
frontera ⎜⎜
⎛ ∂2 u ⎞ ⎜ ⎟ = ⎜ ∂ y2 ⎟ ⎝ ⎠ 2,1
(a6)
⎛∂u⎞ ⎛∂u⎞ ⎟⎟ ⎟⎟ ⎜⎜ − ⎜⎜ ⎝ ∂ y ⎠ 2,1+ 12 ⎝ ∂ y ⎠ 2,1 1/ 2
= 2w2, 2 − 4w2,1 + 4 .
(a7)
Reemplazando en (a1) queda F. Antoine S.
A. Sangiacomo C.
159
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
6w2,1 − w1,1 − 2 w2,2 − w3,1 = 4 + F . (a8)
Para el punto aproximamos por ⎛ ∂2 u ⎞ ⎜ ⎟ = ⎜ ∂ x2 ⎟ ⎝ ⎠1,2
(1,2) .
⎛∂u⎞ ⎛∂u⎞ −⎜ ⎜ ⎟ ⎟ ⎝ ∂ x ⎠1+ 1 , 2 ⎝ ∂ x ⎠1, 2
Aquí 6.1.3. Algoritmo de Diferencias Finitas para la Ecuación de Poisson La Ecuación de Poisson: ∂2 u ∂ 2u ( x , y ) + ( x, y) = f ( x, y ) , 2 2
2
1/ 2
= 2 w2,2 − 4 w1,2 , ⎛∂ u⎞ ⎜ ⎟ = w1,1 − 2 w1, 2 + w1,3 . ⎜ ∂ y2 ⎟ ⎝ ⎠1,2
(a9)
∂x
∂y
a≤x≤b,
c≤y≤d.
2
(a10)
Sustituyendo en (a1) resulta 6w1,2 − w1,1 − 2 w2,2 − w1,3 = F .
(a11)
Para el punto (2,2) . La ecuación en diferencias es 4w2,2 − w1,2 − w3,2 − w2,1 − w2,3 = F . (a12)
Juntando todas las ecuaciones obtenidas resulta el sistema 8w1,1 − 2 w1, 2 − 2 w2,1 = 4 + F
6 w2,1 − w1,1 − 2 w2, 2 = 9 + F
{Límites y condiciones de frontera y tamaño de paso}
Paso 2: Hacer h = (b − a ) / N
k = (d − c) / M {Construimos los puntos de la red} Paso 3: Para i=1 hasta N-1 hacer xi = a + ih , {Cargado de valores x} Paso 4: Para j=1 hasta N-1 Hacer yi = c + jk , {Cargado de valores y}. Paso 5: Para i=1 hasta N-1 Hacer Para j=1 hasta M-1 Hacer wij = 0 k
{ l contador de iteraciones}
Paso 7: Mientras l ≤ Tope hacer
(a13)
Al igual que el ejemplo anterior se resuelve usando cualquier método para resolver sistemas lineales. Se deja como tarea al lector que lo resuelva. F. Antoine S.
Paso 1: Entrar a, b, c, d, M, N, ER, Tope.
2 Paso 6: Hacer λ = h ; r = 2(1 + λ ) ; l = 1 . 2
6 w1,2 − w1,1 − 2 w2, 2 = 7 + F 4 w2, 2 − w1, 2 − w2,1 = 12 + F .
Sujeta a la condición de frontera: u(x,y)=g(x,y). Si x=a o x=b y c≤y≤d u(x,y)=g(x,y). Si y=c o y=d y a≤x≤b
Paso 8: z = ( − h 2 f ( x1 , y M −1 ) + g ( a, y M −1 ) + λg ( x1 , y M −1 ) + λw1, M − 2 + w2, M −1 ) / r
Norm = z = w1, M −1 w1.M −1 = z Paso 9: Para i=2 hasta N-2 hacer z = ( − h 2 f ( x i , y M −1 ) + λ g ( x i , d ) + wi −1, M −1 + wi +1, M −1 + λwi , M − 2 ) / r
si wi , M −1 − z > Norm entonces A. Sangiacomo C.
160
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
Norm = wi , M −1 − z ;
Hacer wi , M −1 = z ; Paso 10: hacer z = ( − h 2 f ( x N −1 , y M −1 ) + g (bi , y M −1 ) + λg ( x N −1 , d ) + w N − 2, M −1 + λw N −1, M − 2 ) / r
si wN −1, M −1 − z > Norm entonces Norm = wN −1, M −1 − z ;
Hacer wN −1, M −1 = z ; Paso 11: Para j=M−2 hasta 2 hacer Paso 12: z = (− h 2 f ( x1 , y j ) + g ( a, y j ) + λw1, j −1 + w2, j ) / r
+ λg ( x N −1 , c ) + w N − 2,1 + λw N −1, 2 ) / r
si wN −1,1 − z > Norm entonces Norm = wN −1,1 − z ;
wN −1.1 = z . Paso 18: Si Norm ≤ ER entonces Paso 19: Para i=1 hasta N-1 hacer Para j=1 hasta M-1 hacer Publicar ( xi , y j , wik ) . Paso 20: Parar. Paso 21: Hacer l = l + 1 . Paso 22: Número Máximo de iteraciones excedido Parar.
si w1, j − z > Norm entonces Norm = w1, j − z ;
w1. j = z . Paso 13: Para i=2 hasta N-2 hacer z = ( − h 2 f ( xi , y j ) + wi −1, j + λwi , j +1
6.1.4. Programa en Delphi para Elípticas
+ wi +1, j + λwi , j −1 ) / r
si wi , j − z > Norm entonces Norm = wi , j − z ;
Hacer wi , j = z ; Paso 14: z = ( − h 2 f ( x N −1 , y j ) + g (b, y j ) + λw N −1, j +1 + λwi , j −1 ) / r
si wN −1, j − z > Norm entonces Norm = wN −1, j − z ;
Hacer wN −1, j = z ; Paso 15: Hacer z = ( − h 2 f ( x1 , y1 ) + g ( a , y1 ) + λg ( x1 , c ) + λw1, 21 + w2,1 ) / r
si w1,1 − z > Norm entonces Norm = w1,1 − z ;
Hacer w1,1 = z ; Paso 16: Para i=2 hasta N-2 hacer z = ( − h 2 f ( xi , y1 ) + λg ( xi , c ) + wi −1,1 + λwi , 2 + wi +1,1 ) / r
si wi ,1 − z > Norm entonces Norm = wi ,1 − z ;
wi.1 = z . Paso 17: hacer z = ( − h 2 f ( x N −1 , y1 ) + g (b, y1 ) F. Antoine S.
unit Eliptica17; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, FunctY, StdCtrls, Buttons; type _v = array[0..800] of _r; _M = Array[1..800] of _v2; TElipticas11 = class(TForm) Memo1: TMemo; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Edit1: TEdit; Edit2: TEdit; BitBtn3: TBitBtn; Label1: TLabel; Label2: TLabel; Edit3: TEdit; Edit4: TEdit; Label3: TLabel; Label4: TLabel; Edit5: TEdit; Edit6: TEdit; Label5: TLabel; Label6: TLabel; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BitBtn3Click(Sender: TObject); end; var Elipticas11: TElipticas11; implementation {$R *.DFM} var Ma , Mb :_m; ss, s1:_s; b,r1:_v; mm, nn, kt : Longint{_i}; hh, kk, aa, bb, cc, dd :_r; procedure TElipticas11.BitBtn2Click(Sender: TObject); begin close end; function u_0_y(x,y:_r):_r; begin // para frontera izquierda vertical Result := 0; end; function u_n_y(x,y:_r):_r; begin // para frontera derecha Vertical Result := y*200; end; function u_x_0(x,y:_r):_r; begin // para frontera Inferior horizontal Result := 0; end; function u_x_m(x,y:_r):_r;
A. Sangiacomo C.
161
Capítulo 6
begin // para frontera Superior horizontal Result := x*200; end; function u_f(x,y:_r):_r; begin // función fuente f(x,y) Result := 0; end; // algoritmo de Gauss Especial; procedure Gauss_E; var i, i1, j, k, l :_i; vs :_v2; x1, x2:_r; begin i1:=29-nn; l:=-1; for i:=1 to kt-1 do begin ss:=''; x1:=ma[i,i1+nn-1] ; if (kt-i)0 then begin x2:=ma[i+j,28 - j]/x1; for k:=0 to nn-1 do begin vs[k]:=-ma[i,i1+k+nn-1]*x2;ss:=ss+' v '+FloatToStr(vs[k]); ma[i+j,28- j+k]:=ma[i+j,28- j+k]-ma[i,i1+k+nn-1]*x2; end;b[i+j]:=b[i+j]-b[i]*x2; end; end; end; for i:=1 to kt do begin ss:=''; for j:=0 to 2*nn-2 do begin str(ma[i,j+i1]:1:3,s1); ss:=ss+' '+s1; end; str(b[i]:1:3,s1); ss:=ss+' '+s1; Elipticas11.Memo1.Lines.Add(ss); end; // Atras r1[kt]:=b[kt]/ma[kt,28];l:=nn; ss:=''; str(r1[kt]:1:3,s1); ss:=ss+' R '+s1; for i:=kt-1 downto 1 do begin x1:=0; if (kt-i)28 then nn:=28; // protección de rebase ancho edit1.text:=IntToStr(nn); mm:=StrToInt(edit2.text); if (nn-1)*(mm-1)>800 then exit; // proteccion de rebase matriz aa:=StrToFloat(Edit3.text); bb:=StrToFloat(Edit4.text); cc:=StrToFloat(Edit5.text); dd:=StrToFloat(Edit6.text); hh:=(bb-aa))/nn; kk:=(dd-cc)/mm; memo1.Lines.Add(' nn ='+intToStr(nn)+' mm ='+IntToStr(mm)); k:=0; i1:=28; for j:=mm-1 downto 1 do begin for i:=1 to nn-1 do begin k:=k+1; i1:=i1-1; b[k]:=-u_f(aa+hh*i,cc+kk*j)*hh*hh; l:=i+(mm-1-j)*(nn-1); Ma[k,l+i1]:=2*(hh*hh/kk/kk+1); if i+10 then begin l:=i-1+(mm-1-j)*(nn-1); Ma[k,l+i1]:=-1 end else begin b[k]:=b[k]+hh*hh/kk/kk*u_0_y(aa,cc+kk*j); end; if j+10 then begin l:=i+(mm-1-j+1)*(nn-1); Ma[k,l+i1]:=-hh*hh/kk/kk; end else begin b[k]:=b[k]+hh*hh/kk/kk*u_x_0(aa+hh*i,cc); end; end; end; i1:=29-nn; kt:=k;
F. Antoine S.
Método Numéricos para la Solución de Ecuaciones Diferenciales
for i:=1 to k do begin ss:=''; for j:=0 to 2*nn-2 do begin str(ma[i,j+i1]:1:3,s1); ss:=ss+' '+s1; end;str(b[i]:1:3,s1); ss:=ss+' '+s1; Memo1.Lines.Add(ss); end; Gauss_E; end; procedure TElipticas11.FormCreate(Sender: TObject); begin memo1.Clear; end; procedure TElipticas11.BitBtn3Click(Sender: TObject); begin memo1.Clear; end; end.
6.1.5. Problema 1.
Resolver la ecuación diferencial parcial (EDP) elíptica; usando h=k=0.5, ∂2 u ∂ x2
+
∂ 2u ∂ y2
= 4,
0
u ( x,0) = x 2 , u ( x,2) = ( x − 2) 2 ,
0≤x≤1,
u (0, y ) = y 2 , u (1, y ) = ( y − 1) 2 ,
2.
Resolver
la
EDP
0≤y≤2. elíptica;
h = k = 1/ 3 ,
∂2 u ∂ x2
+
∂ 2u ∂ y2
= x,
y <1;
0< x,
u ( x,0) = x 3 / 6 , u ( x,1) = x 3 / 6 ,
u (0, y) = 0 ,
3.
u (1, y) = 1 / 6 ,
Resolver la h = k = 0.1 , ∂2 u ∂ x2
+
∂ 2u ∂ y2
= 0,
EDP 0< x,
u ( x,0) = 0 ,
u ( x,1) = x ,
u (0, y ) = 0 ,
u (1, y ) = y ,
0≤x≤1, 0≤y≤1. elíptica; y <1;
0≤x≤1, 0≤y≤1.
A. Sangiacomo C.
162
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
Comparar con la solución 0
+
∂ 2u ∂ y2
y <1;
= −2 , 0 < x ,
u (0, y ) = 0 ,
u ( x,1) = sinh(π ) sin(πy ) ,
0 ≤ y ≤1,
6.2. Ecuaciones Diferenciales Parciales Parabólica 6.2.1. El caso Homogéneo
u ( x,0) = u ( x,1) = x(1 − x) ,
0≤x≤1.
Como ejemplo de ecuación Comparar con la solución diferencial parcial parabólica exacta tomaremos la ecuación del calor u ( x, y ) = sinh(πx) sin(πy ) + x(1 − x) . o de difusión, que estudiaremos aquí: 5. Resolver la EDP elíptica; 2 ∂u 2∂ u h = 0.2, k = 0.1 , ( x, t ) = α ( x, t ) , 0
∂x
2
+
∂ u 2
∂y
2
∂t
= ( x 2 + y 2 )e xy ,
u (0, y ) = 1 , 6.
u ( x,1) = e x , u (2, y ) = e
t >0,
(1)
con las condiciones
0
∂ x2
0≤x≤2, 2y
, 0≤y≤1.
u (0, t ) = 0 , u (l , t ) = 0 , t > 0 ,
y u ( x,0) = f ( x) , 0≤x≤l.
Resolver la EDP h = π / 5 , k = π / 10 ,
elíptica; El enfoque que usaremos para aproximar la solución a este problema consiste en el aplicar ∂ 2 u ∂ 2u , + = − cos( x + y ) − cos( x − y ) las diferencias finitas y es similar ∂ x2 ∂ y2 al método visto anteriormente. 0
F. Antoine S.
A. Sangiacomo C.
163
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
xi=ih para i=0, 1, …, m, y tj=jk, donde wij aproxima a u(xi, tj). para j=0, 1, … Nos resulta el método de diferencias finitas usando la serie de Taylor en t para formar el coeficiente diferencial u ( xi , t j +1 ) − u ( xi , t j ) ∂u ( xi , t j ) = k ∂t 2 k∂ u − ( xi , r j ) , 2 ∂ t2
(2)
Figura 6.
donde ri∈(tj,tj+1); y la serie de El error de truncamiento local Taylor en la variable y alrededor para esta ecuación de diferencias de yj par la fórmula de diferencias es centrales ∂ u 2
∂ x2
( xi , t j ) =
u ( xi +1 , t j ) − 2u ( xi , t j ) + u ( xi −1 , t j ) h2
h2 ∂ 4 u − (qi , t j ) , 12 ∂ x 4
(3)
Ei , j =
2 4 k ∂2 u 2 h ∂ u ( x , r ) − α (qi , t j ) . i j 2 ∂ t2 12 ∂ x 4 (5)
Trabajando con la ecuación (4), despejando wi,j+1
donde qi∈(xi-1,xi+1). ⎛ 2α 2 k ⎞ k wi , j +1 = ⎜1 − 2 ⎟ wi, j + α 2 2 ( wi +1, j + wi −1, j ) , ⎟ ⎜ La EDP (1) implica que en los h ⎠ h ⎝ puntos de red interiores (xi,tj) (6) para cada i=1, 2, …, m-1 y j=1, para cada i=1, 2, …, (m-1) y j=1, 2, …, tenemos que 2, … Como la condición inicial ∂u ∂2 u u(x,0)=f(x), para cada 0≤x≤l, ( xi , t j ) − α 2 ( x , t ) = 0 ; i j implica que wi,0=f(xi) para cada ∂t ∂ x2 i=0, 1, …, m, estos valores así, el método de diferencias, con pueden usarse en la ecuación (6) el uso de los coeficientes para encontrar el valor de wi,1 diferenciales (2) y (3) nos queda para cada i=1, 2, …, (m-1). Las wi , j +1 − wi , j wi +1, j − 2wi , j + wi −1, j condiciones adicionales u(0,t)=0 −α 2 = 0, 2 k h y u(l,t)=0 implican que (4) w =w =0; así que todas las 0,1 m,1 F. Antoine S.
A. Sangiacomo C.
164
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
componentes de la forma wi,1 Siendo pueden ser determinadas. Si el T 0 procedimiento se aplica nueva- w = ( f ( x1 ), f ( x2 ),..., f ( xm −1 )) mente, una vez que se conocen y j T todas las aproximaciones wi,1 los w = ( w1, j , w2, j ,..., wm −1, j ) valores wi,2, wi,3, …, wi,m-1 se para cada j=1, 2, …, pueden obtener de manera la solución aproximada está dada sucesiva. por w j=Aw j–1 para cada j=1, 2, … Este procedimiento se conoce con el nombre de método progresivo. Si la solución de la EDP tiene cuatro derivadas parciales continuas en x y dos en t, entonces la ecuación (5) implica que el método es orden O(k+h2). Figura 7.
La presentación explícita del método de diferencias expresado en la ecuación (6) genera una matriz de (m-1)×(m-1) el cual es de la forma tridiagonal λ 0 L 0⎤ ⎡(1 − 2λ ) ⎢ λ (1 − 2λ ) λ O M⎥⎥ ⎢ A=⎢ O O O 0 0⎥ ⎥ ⎢ M O λ (1 − 2λ ) λ⎥ ⎢ ⎢⎣ L 0 λ (1 − 2λ )⎥⎦ 0
donde λ = α ( 2
F. Antoine S.
k h
2
) < 14 .
Regresivas: Otra forma de resolver el problema es con el método de diferencias regresivas que es incondicionalmente estable que lo describiremos a continuación. De las ecuaciones u ( xi , t j ) − u ( xi , t j −1 ) k ∂ 2 u ∂u ( xi , t j ) = + ( xi , r j ) , ∂t k 2 ∂ t2
donde ri∈(ti-1,ti) y con la ecuación (3) llegamos a:
A. Sangiacomo C.
165
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
wi , j − wi , j −1
wi +1, j − 2wi , j + wi −1, j
diagonal estrictamente dominante h puesto que λ>0. donde wi,j aproxima a u(xi, tj) y Veamos el comportamiento en la figura 7: i=1, 2, …, m-1 y j=1, 2, … El error de truncamiento local para esta ecuación de diferencias es k
Ei , j = −
−α 2
2
=0,
2 4 k ∂2 u 2 h ∂ u − ( x , r ) α (qi , t j ) . i j 2 ∂ t2 12 ∂ x 4
Trabajando con la ecuación (4’), despejando wi,j-1 y haciendo λ=
α 2k h2
: Figura 8.
(1 + 2λ ) wi , j − λwi +1, j − λwi −1, j = wi , j −1 ,
6.2.2. El caso No Homogéneo para cada i=1, 2, …, (m-1) y j=1, 2, … Usando wi,0=f(xi) para cada 6.2.2.1. El caso progresivo: i=1, 2, …, m-1, y w0,j=wm,j=0 para j=1, 2, …, y la Si la ecuación (1) se presenta de representación matricial es: la forma no homogénea −λ 0 0⎤ ⎡ w ⎤ ⎡ w L ⎡(1 + 2λ ) ⎤ tendremos: ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
1, j
0 M 0
1, j −1
M⎥⎥ ⎢⎢ w2, j ⎥⎥ ⎢⎢ w2, j −1 ⎥⎥ M⎥ = ⎢ M⎥ 0⎥ ⎢ O O O ⎥⎢ ⎥ ⎢ ⎥ − λ ⎥ ⎢ wm − 2, j ⎥ ⎢ wm − 2, j −1 ⎥ O − λ (1 + 2λ ) − λ (1 + 2λ ) ⎥⎦ ⎢⎣ wm −1, j ⎥⎦ ⎢⎣ wm −1, j −1 ⎥⎦ 0 L
− λ (1 + 2λ ) − λ
O
∂2 u ∂u ( x, t ) = α 2 ( x, t ) + F ( x, t ) , ∂t ∂ x2
0 0 ,
(7)
en forma compacta la expresión es Aw j=w j–1 para j=1, 2, …
(1’)
con las condiciones u (0, t ) = T0 , u (l , t ) = Tl , t > 0 ,
y u ( x,0) = f ( x) , 0≤x≤l.
Aquí tenemos una característica a nuestro favor la cual es que la Y con un análisis semejante al matriz A es definida positiva y de hecho de (2) a (6) nos resulta: F. Antoine S.
A. Sangiacomo C.
166
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
wi , j +1 = (1 − 2λ )wi , j + λ ( wi +1, j + wi −1, j ) + kFi ,
∂u ∂2 u =α2 +F, ∂t ∂ x2 0
(8)
donde λ =
α 2k h2
y con
u (0, t ) = T0 , u (l , t ) = Tl , t > 0 ,
0⎤ λ 0 L ⎡(1 − 2λ ) ⎢ ( 1 − 2 ) λ λ λ O M⎥⎥ ⎢ A= ⎢ 0 0⎥ O O O ⎢ ⎥ M O λ (1 − 2λ ) λ⎥ ⎢ ⎢⎣ 0 L 0 λ (1 − 2λ )⎥⎦
u ( x,0) = f ( x) , 0≤x≤l.
.
Paso 1: Entrar a=0, b=l, k, N, T0 , Tl . {Límites y condiciones de frontera y} tamaño de paso}
Paso 2: Hacer h = (b − a ) / N
λ=
W [ N ] = f ( Nh) + Tl ,
⎡ w1, j + λT0 ⎤ ⎡ kF1 ⎤ ⎢ w2, j ⎥⎥ ⎢ kF2 ⎥ ⎢ ⎥, ⎢ M⎥ + ⎢ A⎢ M⎥ ⎥ ⎢ ⎢ ⎥ wm − 2, j ⎥ ⎢kFm − 2 ⎥ ⎢ ⎢ wm −1, j + λTl ⎥ ⎢ kF ⎥ ⎦ ⎣ m −1 ⎦ ⎣
(9)
donde
w0 = ( f ( x1 ), f ( x2 ),..., f ( xm −1 ))T
Cuyo algoritmo describiremos a continuación Nota: para ser estable a priori necesita 2 la condición de que λ = α (
k h
2
α 2k
; Tope = 1 / k h2 W [1] = f (h) + T0 ,
Tenemos ⎡ w1, j +1 ⎤ ⎥ ⎢ w 2, j +1 ⎥ ⎢ ⎢ M⎥ = ⎥ ⎢ ⎢ wm − 2, j +1 ⎥ ⎢ wm −1, j +1 ⎥ ⎦ ⎣
0
) < 14 .
Paso 3: Para i=2 hasta N-1 hacer W [i ] = f (ih) , {Cargado de valores iniciales} Paso 4: Hacer p = (1 − 2λ ) , q = λ . Paso 5: (Construcción de matriz tridiagonal con T1, T2, T3, vectores) T 3[i ] = q , i = 1 ; T 2[i ] = p , Paso 6: Para i=2 hasta N-1 hacer T 1[i ] = q , T 2[i ] = p , T 3[i ] = q Paso 7: i = N , T1[i] = q , T 2[i] = p , Paso 8: Para m=1 hasta m ≤ Tope hacer {Producto Wi +1 = AWi + Fi }
W 1[i ] = T 1[i ] ⋅ W [i − 1] + T 2[i ] ⋅ W [i ] + T 3[i ] ⋅ W [i + 1] + kFi Paso 9: W = W 1
Paso 10: Paso 11:
Publicar W Parar.
6.2.2.3. El caso regresivo
6.2.2.2. Algoritmo de Aquí se tomará en cuenta la Diferencias Finitas para función F(x,t) en la ecuación (7) Ecuaciones Dife-renciales quedando así: Parciales Parabólica para es Caso Progresivo Sea F. Antoine S.
A. Sangiacomo C.
167
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
−λ 0 0⎤ L ⎡(1 + 2λ ) ⎢ − λ (1 + 2λ ) − λ O M⎥⎥ ⎢ 0 0⎥ O O O A= ⎢ ⎢ ⎥ − λ⎥ M O − λ (1 + 2λ ) ⎢ ⎢ − λ (1 + 2λ )⎥⎦ 0 0 L ⎣ ⎡ w1, j ⎤ ⎡ w1, j −1 + λT0 ⎤ ⎡ F1 ⎤ ⎢ w ⎥ ⎢ ⎥ ⎢ F ⎥ w2, j −1 ⎥ 2, j ⎥ ⎢ 2⎥ ⎢ ⎢ ; M⎥ = ⎢ M⎥ + k ⎢ A× ⎢ M⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ wm−2, j −1 ⎥ ⎢ wm−2, j ⎥ ⎢ ⎢ Fm−2 ⎥ ⎢ wm−1, j ⎥ ⎢ wm−1, j −1 + λTl ⎥ ⎢⎣ Fm−1 ⎥⎦ ⎣ ⎦ ⎣ ⎦
Paso 6: Para i=2 hasta N-1 hacer T 1[i ] = q , T 2[i ] = p , T 3[i] = q Paso 7: i = N , T 1[i ] = q , T 2[i ] = p , Paso 8: Para i=2 hasta N-1 hacer b[i ] = b[i ] + kFi , {Cargado de valores iniciales con F} Paso 9: Para m=1 hasta m ≤ Tope hacer {Resolver por tridiagonal }
Paso 10: Resolver por tridiagonales el (10) sistema (10) dado por AW = b , Paso 12: b = W + F Paso 10: Publicar W Paso 11: Parar.
6.2.2.4. Algoritmo de Diferencias Finitas para 6.2.2.5. Programa en Dephi Ecuaciones Dife-renciales Pascal de Regresivas y Parciales Parabólica para el Progresivas Caso Regresivo Sea ∂2 u ∂u =α2 +F , ∂t ∂ x2
0
u (0, t ) = T0 , u (l , t ) = Tl ,
t >0,
u ( x,0) = f ( x) , 0≤x≤l. Paso 1: Entrar a=0, b=l, k, N, T0 , Tl . {Límites y condiciones de frontera y tamaño de paso}
Paso 2: Hacer h = (b − a ) / N
λ=
α 2k 2
h Tope = 1 / k b[1] = f (h) + T0 , b[ N ] = f ( Nh) + Tl , Paso 3: Para i=2 hasta N-1 hacer b[i ] = f (ih) , {Cargado de valores iniciales} Paso 4: Hacer p = (1 + 2λ ) , q = −λ . Paso 5: (Construcción de matriz tridiagonal con T1, T2,
T3, vectores de la A) T 3[i ] = q , i = 1 ; T 2[i ] = p , F. Antoine S.
{CON CORRECCIONES m+1 m m-1 } {NO HOMOGENEA} unit Calor_2x2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm_Parabolicas1 = class(TForm) Memo1: TMemo; GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; Label4: TLabel; Edit4: TEdit; Label5: TLabel; Edit5: TEdit; Memo2: TMemo; Label6: TLabel; Edit6: TEdit; Label7: TLabel; Edit7: TEdit; Label8: TLabel; Edit8: TEdit; Label9: TLabel; Edit9: TEdit; Edit10: TEdit; Label10: TLabel; GroupBox2: TGroupBox; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Label11: TLabel; Label12: TLabel; Edit11: TEdit; procedure Button5Click(Sender: TObject);
A. Sangiacomo C.
168
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure publicador; procedure Calculo1; procedure Calculo; end; _r = double; _i = integer; _s =string; _v=array[0..500] of _r; var Form_Parabolicas1: TForm_Parabolicas1;
else bt[i]:=a1+c*k11; if i=n_Particiones_X-1 then bt[i]:=a1+(Val_xL_Superior*alf/h11/h11+c)*k11; if probt[i]then proM:=bt[i]; bt[0]:=Val_U0_Frontera_Derecha;bt[n_Particiones_X] :=Val_xL_Superior; end; b:=bt;end; procedure TForm_Parabolicas1.Calculo; (* calcula con progresivas para separación de variables *) begin xi2:=1;datosI_;b:=fx;publicador; L_Particiones_de_T:=Round(1/k11+0.08); implementation k11:=tiempo_final/L_Particiones_de_T; L_Particiones_de_T:=0; {$R *.DFM} repeat L_Particiones_de_T:=L_Particiones_de_T+1;Cal_ulo; var maa,mbb,mcc,b,fx,r1,bt:_v;x11,x12,x13,x14:_R; if tiempo_final<=L_Particiones_de_T*k11 then Val_x0_Inferior, Val_xL_Superior, begin tiempo_final:=L_Particiones_de_T*k11; tiempo_final,sa,h11,k11,alf, Val_UL_Frontera_Izquieda, if probt[0] then proM:=bt[0]; s1,s2, f_inic, f_fuen: _s; if proM>bt[n_Particiones_X] then proM:=bt[n_Particiones_X]; exit end procedure TForm_Parabolicas1.Button5Click(Sender: TObject); until false; begin close; end; end; (* fin de Calculo *) procedure cal_ulo1; var i:_i;c:_r; procedure TForm_Parabolicas1.FormCreate(Sender: TObject); begin begin for i:=1 to n_Particiones_X-1 do Memo1.Clear; memo2.Clear; GroupBox1.Visible := false; begin tt:=L_Particiones_de_T*k11;xx:=a*i; Memo1.Visible := False; funcion_Fuente(xx,tt,c); Memo2.Text:=' Solución Por Separación de Variables y Métodos’+ if i=1 then ‘Numéricos de la Ecuación del Calor'; b[i]:=b[i]+(Val_U0_Frontera_Derecha*alf/h11/h11+c)*k11 Memo2.Lines.Add(' u (x , t ) = u ( x , t ) + S (x , t )'); else b[i]:=b[i]+c*k11; Memo2.Lines.Add(' t xx'); if i=n_Particiones_X-1 then Memo2.Lines.Add(' u ( Xo , t ) = To , u ( XL , t ) = TL'); b[i]:=b[i]+Val_xL_Superior*alf/h11/h11*k11; Memo2.Lines.Add(' u ( x , 0 ) = f(x) ; To <= x <= TL'); if prob[i]then proM:=bt[i]; Memo2.Lines.Add('Nota: Use Sólo la Variables x y t únicamente'); end;b[0]:=Val_U0_Frontera_Derecha; end; b[n_Particiones_X]:=Val_xL_Superior; (*** ***) procedure TForm_Parabolicas1.Button1Click(Sender: TObject); resol_;r1[0]:=Val_U0_Frontera_Derecha; begin GroupBox1.Visible := Not false; end; r1[n_Particiones_X]:=Val_xL_Superior;b:=r1;xi2:=-1;datosI_; Procedure funcion_Fuente(x,t:_r;var c:_r); end; begin c:=0 end; // Aquí poner la función FUENTE S(x,t) procedure TForm_Parabolicas1.Calculo1; (* calcula con regresivas function funcion_fx_Inicial(x:_r):_r; para separación de variables *) begin Result := sin(pi*x) end; // aquí poner la función f(x) inicial begin procedure TForm_Parabolicas1.publicador;var i:_i; xi2:=-1; datosI_; publicador; begin bt:=fx; L_Particiones_de_T:=Round(1/k11+0.08); for i:=1 to n_Particiones_X-1 do k11:=tiempo_final/L_Particiones_de_T; begin str(maa[i]:1:3,s1);s2:=' Ma['+IntToStr(i)+']= '+s1; L_Particiones_de_T:=0;b:=fx;bt:=fx; str(mbb[i]:1:3,s1);s2:=s2+' Mb['+IntToStr(i)+']= '+s1; repeat L_Particiones_de_T:=L_Particiones_de_T+1;cal_ulo1; str(mcc[i]:1:3,s1);s2:=s2+' Mc['+IntToStr(i)+']= '+s1; (**** ***) str(bt[i]:1:6,s1);s2:=s2+' bt['+IntToStr(i)+']= '+s1; until tiempo_finalbt[0]then proM:=bt[0]; q:=alf*k11/h11/h11*xi2; {Valor 'p y q' } if proM>bt[n_Particiones_X]then proM:=bt[n_Particiones_X]; for i:=1 to n_Particiones_X-1 do end; (* fin de calculo1 *) begin if i=1 then begin mbb[1]:=p;mcc[1]:=q end ///////////////////////////////////////////////////////////////////// else if i501 then begin bt[i]:=a1+(Val_U0_Frontera_Derecha*alf/h11/h11+c)*k11
F. Antoine S.
A. Sangiacomo C.
169
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
Aquí tenemos α 2 = 1 ; u ( x,0) = f ( x) = sin(π ⋅ x) + x(1 − x) , h=0.1, k=0.0001, t=0.25. Usando el programa anterior nos resulta siguiente tabla:
n_Particiones_X:=500;Edit1.Text:='500' end; if n_Particiones_X<3 then begin n_Particiones_X:=3;Edit1.Text:='3' end;// solo valores 3<= nn <= 500 s1:=Edit2.Text; Val_x0_Inferior:= Valor_(s1); // Valor Xo Limite inferior s1:=Edit3.Text; Val_xL_Superior:= Valor_(s1); // Valor XL superior if Val_x0_Inferior>Val_xL_Superior then begin a:=Val_x0_Inferior; Val_x0_Inferior := Val_xL_Superior; Val_xL_Superior := a end; a:=abs(Val_xL_Superior - Val_x0_Inferior)/n_Particiones_X; // Calcula el valor de h lo pone en h11 s1:=Edit4.Text; k11:= Valor_(s1); // valor de k if 1/k11 > 999040000 then k11:=1/999040000;// Protección h11 := a; str(a:1:12,s1); Edit5.Text:=s1; s1:=Edit6.Text; Alf:= Valor_(s1); // Valor de alfa al cuadrado s1:=Edit7.Text; tiempo_final:= Valor_(s1); // Ahora entramos los valores delas condicones de Frontera s1:=Edit8.Text; Val_U0_Frontera_Derecha:= Valor_(s1); s1:=Edit9.Text; Val_xL_Superior:= Valor_(s1); 0 // Ahora entramos los valores de u(x,0) = f(x) y de la fuente S(x,t) 1 s1:=Edit10.Text; f_inic := s1; s1:=Edit11.Text; f_fuen := s1; 2 // Cálculo del primer vector inicial 3 valor_Inicial; I := MessageDlg( ' Progresivo "Yes" Regresivo "No" ?', 4 mtConfirmation,[MByes,MBno],0); if i = 7 then calculo1 else Calculo; 5 s1:=''; memo1.Lines.Add(' '); 6 if i=6 then s1:=' P O R M É T O D O D E P R O G R E S I V 7 A S' else s1:=' P O R M É T O D O D E R E G R E S I V A S'; 8 memo1.Lines.Add(' R E S U L T A D O S '+S1);s1:=''; for i:=0 to n_Particiones_X do 9 begin str(bt[i]:1:8,s2); s1:=s1+ '['+IntToStr(i)+' ] = '+ s2 end; memo1.Lines.Add(s1); 10 memo1.Lines.Add(' con m = '+IntToStr(L_Particiones_de_T)+' y con t = '+FloatToStr(tiempo_final)+ ' Proporción ='+FloatToStr(Pro)); end;
a)
Progresiva
n
u ( x, t )
x
wn
0.000 0.100
0.0000000000 0.1167096140
0.0000000000 0.1162061777
0.00
0.200
0.2108047048
0.2098471121
9.6 ⋅ 10 −4
0.300
0.2799266771
0.2786086639
1.3 ⋅ 10 −3
0.400
0.3222037391
0.3206543217
1.5 ⋅ 10 −3
0.500
0.3364341264
0.3348049725
1.6 ⋅ 10 −3
0.600
0.3222037391
0.3206543217
1.5 ⋅ 10 −3
0.700
0.2799266771
0.2786086639
1.3 ⋅ 10 −3
0.800
0.2108047048
0.2098471121
9.6 ⋅ 10 −4 5.0 ⋅ 10 −4 0.00
0.900
0.1167096140
0.1162061777
1.000
0.0000000000
0.0000000000
error 5.0 ⋅ 10 −4
Tabla 2.
Regresiva
End.
b) n
x
6.2.2.6. Ejemplo
0 1
0.000 0.100
0.0000000000 0.1167736726
0.0000000000 0.1162061777
0.00
2
0.200
0.2109265516
0.2098471121
1.1 ⋅ 10 −3
3
0.300
0.2800943849
0.2786086639
1.5 ⋅ 10 −3
4
0.400
0.3224008914
0.3206543217
1.7 ⋅ 10 −3
5
0.500
0.3366414246
0.3348049725
1.8 ⋅ 10 −3
6
0.600
0.3224008914
0.3206543217
1.7 ⋅ 10 −3
7
0.700
0.2800943849
0.2786086639
1.5 ⋅ 10 −3
8
0.800
0.2109265516
0.2098471121
1.1 ⋅ 10 −3
9
0.900
0.1167736726
0.1162061777
10
1.000
0.0000000000
0.0000000000
5.7 ⋅ 10 −4 0.00
Sea ∂ u ∂2 u − = 2, ∂ t ∂ x2
0
u (0, t ) = 0 , u (1, t ) = 0 , t > 0 , u ( x,0) = sin(π ⋅ x) + x(1 − x) ,
La
solución
0≤x≤1.
exacta
u ( x, t ) = e −π t sin(π ⋅ x ) + x(1 − x) .
u ( x, t )
wn
error 5.7 ⋅ 10 −4
Tabla 3.
es
2
Solución:
F. Antoine S.
Un problema del método de diferencias regresivas es que el error de truncamiento local tiene A. Sangiacomo C.
170
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
un orden de O(k), lo cual requiere que los intervalos en el tiempo sean más pequeños que los intervalos en el espacio. Si deseamos un error de truncamiento local de orden O(k2+h2) el primer paso consiste en usar una ecuación de diferencias que tenga un error de O(k2) para ul(x,t) en lugar de la que se uso para regresivas O(k). Usando la expansión de Taylor par la función u(x,t) en el punto y evaluándola con (xi,tj) diferencia centrales en (xi,tj-1) y (xi,tj+1) para obtener: u ( xi , t j +1 ) − u ( xi , t j −1 ) k 2 ∂ 3 u ∂u ( xi , t j ) = ( xi , r j ) − 2k 2 ∂ t3 ∂t
,
Otro método que si es mas fácil de manejar y más estable es el promedio de la diferencia progresivas y regresivas así: Progresivas paso i: wi , j − wi , j −1 k
−α2
wi +1, j − 2wi , j + wi −1, j h2
=0
El error de truncamiento local k ∂2 u = ( xi , r j ) + O(h 2 ) . 2 2 ∂t
Ei, j
Con la diferencia regresivas pero en el paso (j+1) wi, j +1 − wi , j k
−α 2
wi +1, j +1 − 2wi, j +1 + wi −1, j +1 h2
=0
El error de truncamiento local Ei , j = −
k ∂2 u ( xi , r j ) + O(h 2 ) . 2 ∂ t2
donde ri∈(ti-1,tj+1); sustituyendo Trabajando con la suposición de ello nos queda el llamado método que r j ≈ r j entonces el método de de Richardson y: diferencias promedio nos da: − 2 + wi , j +1 − wi , j −1 w w w i +1, j i, j i −1, j −α 2 = 0 , wi , j +1 − wi , j w − 2wi , j + wi −1, j 2 1 2 ⎡ i +1, j 2k
h
donde wi,j aproxima a u(xi,tj) y i=1, 2, …, m-1 y j=1, 2, … En este método de Richardson el error de truncamiento es de O(k2+h2), peor también tiene problemas d estabilidad.
k
− 2α ⎢ h2 ⎣ wi +1, j +1 − 2wi , j +1 + wi −1, j +1 ⎤ ⎥ = 0, h2 ⎦
Tiene un error de truncamiento de O(k2+h2), siempre que desde luego, se satisfaga las condiciones usuales de diferenciabilidad. 6.2.2.7. El método de Crank - Ello es la presentación del Nicolson método de Crank - Nicolson.
F. Antoine S.
A. Sangiacomo C.
171
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
Lo representamos de la forma Parciales Parabólica para el matricial Caso Crank - Nicolson (j+1) (j) Aw =Bw para cada j=0, 1, … , donde Sea λ=
α 2k h
2
,
w( j ) = ( w1, j , w2, j ,..., wm −1, j )t ,
y las matrices A y B son:
∂u ∂2 u =α2 , ∂t ∂ x2
0
u (0, t ) = T0 ,
u (l , t ) = Tl ,
t >0,
⎡(1 + λ ) u ( x,0) = f ( x) , 0≤x≤l. L − λ2 0 0⎤ ⎥ ⎢ λ λ O M⎥ ⎢ − 2 (1 + λ ) − 2 ⎢ A= O O O 0 0⎥ Paso 1: Entrar a=0, b=l, k, N, T0 , Tl . {Límites y condiciones de frontera y tamaño de paso} ⎥ ⎢ M O − λ2 (1 + λ ) − λ2 ⎥ Paso 2: Hacer h = (b − a ) / N ⎢ ⎥ ⎢ L − λ2 (1 + λ )⎦⎥ 0 0 α 2k ⎣⎢ λ= 2 h Tope = 1/ k λ ⎡(1 − λ ) ⎤ 0 0 L 2 b[1] = f (h) , b[ N ] = f ( Nh) , ⎢ ⎥ λ (1 − λ ) λ O M ⎢ ⎥ Paso 3: Para i=2 hasta N-1 hacer 2 2 ⎢ b[i ] = f (ih) , {Cargado de valores iniciales} B= 0 0⎥ O O O ⎢ ⎥ λ Paso 4: Hacer p1 = (1 + λ ) , q = − 2λp . M O λ2 (1 − λ ) ⎢ 2⎥ 1 ⎢ λ (1 − λ ) ⎥ 0 0 L Paso 5: Para i=2 hasta N-2 hacer 2 ⎣ ⎦ λu pi = 1 + λ + 2i −1 ; ui = 2λp . i
λu N −2
Paso 6: Hacer p N −1 = 1 + λ + . 2 Paso 7: Para j=1 hasta N hacer Paso 8: Hacer t = jk , { t j actual}
[
Como A es una matriz, definida positiva y estrictamente de diagonal dominante, ello también dice que es no - singular.
]
z1 = (1 − λ ) w1 + λ2 w2 / p1
Figura 6’ y 8’
Paso 10: Para i=2 hasta N-1 hacer zi = (1 − λ ) wi + λ2 ( wi +1 + wi −1 + zi −1 / pi
[
]
Paso 11: wN −1 = z N −1 . Paso 12: Para i=N-2 hasta 1 hacer wi = zi − ui wi +1 . Paso 13: Publicar los wi Paso 14: Parar
6.2.2.8. Algoritmo de Diferencias Finitas para 6.2.2.9. Programa en Delphi Ecuaciones Dife-renciales Pascal de Crank - Nicolson F. Antoine S.
A. Sangiacomo C.
172
Capítulo 6
unit Calor_1x1;
{ CRANK - NICOLSON }
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm_Parabolicas1 = class(TForm) Memo1: TMemo; GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; Label4: TLabel; Edit4: TEdit; Label5: TLabel; Edit5: TEdit; Memo2: TMemo; Label6: TLabel; Edit6: TEdit; Label7: TLabel; Edit7: TEdit; Label8: TLabel; Edit8: TEdit; Label9: TLabel; Edit9: TEdit; Edit10: TEdit; Label10: TLabel; Button1: TButton; GroupBox2: TGroupBox; Button2: TButton; Button3: TButton; Edit11: TEdit; Button4: TButton; Button5: TButton; Label11: TLabel; Label12: TLabel; Edit12: TEdit; Label13: TLabel; CheckBox1: TCheckBox; procedure Button1Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure DATOS11(Sender: TObject); procedure Button2Click(Sender: TObject); procedure CALCULO(Sender: TObject); end; _r = double; _i = integer; _s =string; _v=array[0..1500] of _r; var Form_Parabolicas1: TForm_Parabolicas1; implementation {$R *.DFM} var A_n, B_n, C_n, D_n, T_n, TB_n, S_n:_v; AL_n, DT_n, DX_n, GA_n, Theta_n, ZE_n, ET_n, X0_n, XL_n, Tiempo_n, ValorX0_n, ValorXL_n :_r; MI_n, NT_n, nMax_n :_i; s, S_ns:_s; procedure TForm_Parabolicas1.Button1Click(Sender: TObject); begin GroupBox1.Visible:=true; end; procedure TForm_Parabolicas1.Button4Click(Sender: TObject); begin GroupBox1.Visible:=Not true; end; procedure TForm_Parabolicas1.Button5Click(Sender: TObject); begin Close; end; procedure TForm_Parabolicas1.FormCreate(Sender: TObject); begin Memo1.Clear; memo2.Clear; GroupBox1.Visible := false; Memo1.Visible := False;CheckBox1.Checked:=true; Memo2.Text:=' Solución Por Separación de Variables y Métodos Numéricos’ +’ de la Ecuación del Calor'; Memo2.Lines.Add(' u (x , t ) = u ( x , t ) + S (x , t )'); Memo2.Lines.Add(' t xx'); Memo2.Lines.Add(' u ( Xo , t ) = To , u ( XL , t ) = TL');
F. Antoine S.
Método Numéricos para la Solución de Ecuaciones Diferenciales
Memo2.Lines.Add(' u ( x , 0 ) = f(x) ; To <= x <= TL'); Memo2.Lines.Add('Nota: Use Sólo la Variables x y t únicamnete'); end; Procedure Tridiagonal; var i:_i; r:_r; begin for i:=2 to MI_n do begin r := A_n[i]/B_n[i-1]; B_n[i] := B_n[i]-r*c_n[i-1]; D_n[i] := D_n[i]-r*D_n[i-1]; end; D_n[MI_n] := D_n[MI_n] / B_n[MI_n]; for i:=Mi_n-1 Downto 1 do begin D_n[i] := (D_n[i]-C_n[i]*D_n[i+1])/B_n[i]; end; end; procedure TForm_Parabolicas1.DATOS11(Sender: TObject); begin /// GA_n := AL_n * DT_n / DX_n / DX_n; ZE_n := Theta_n * GA_n; ET_n := (1-Theta_n)*GA_n; end; procedure TForm_Parabolicas1.CALCULO(Sender: TObject); procedure Explicitas; var i:_i; begin for i:=1 to MI_n do begin D_n[i]:=TB_n[i]+(TB_n[i-1]-2*TB_n[i]+TB_n[i+1])*ET_n; end; D_n[1]:=D_n[1]+ZE_n*TB_n[0]; D_n[MI_n]:=D_n[MI_n]+ZE_n*TB_n[MI_n+1]; end; procedure Implicitas;var i:_i; begin for i:=1 to MI_n do begin A_n[i] := -ZE_n; B_n[i] := 1+2*ZE_n; C_n[i] := -ZE_n; end; Tridiagonal; end; procedure CALCULO_1; var i:_i; begin NT_n:=0; repeat NT_n:=NT_n+1; Explicitas; if Theta_n > 00.001 then Implicitas; Str(TB_n[0]:1:3,s); s_ns:=' Resutados t = '+FloatToStr(NT_n*DT_n)+#13#10+' '+s; for i:=1 to MI_n do begin TB_n[i]:=D_n[i]; Str(D_n[i]:1:3,s); S_ns:=S_ns+' '+s; end; Str(TB_n[MI_n+1]:1:3,s); s_ns:=S_ns+' '+s+#13#10; Memo1.Lines.Add(S_ns); until NT_n>=nMax_n; end; begin /// FillChar(TB_n,SizeOf(TB_n),0); DX_n:=( XL_n - X0_n ) / MI_n; MI_n:=MI_n-1; DT_n:= Tiempo_n/nMax_n; TB_n[0]:=ValorX0_n; TB_n[MI_n+1]:=ValorXL_n; DATOS11(Sender); Memo1.Lines.Add(' N= '+IntToStr( MI_n)+#13#10 +' Xo = '+FloatToStr( X0_n)+#13#10 +' XL = '+FloatToStr( XL_n)+#13#10 +' t = '+FloatToStr( X0_n)+#13#10 +' Theta = '+FloatToStr( Theta_n)+#13#10 +' u(0,t) = '+FloatToStr( ValorX0_n)+#13#10 +' u(L,t) = '+FloatToStr( ValorXL_n)+#13#10 ); CALCULO_1; end; procedure TForm_Parabolicas1.Button2Click(Sender: TObject); begin // memo1.Visible:=true; GroupBox1.Visible:=Not true; if CheckBox1.Checked then Memo1.Clear; MI_n :=StrToInt(Edit1.Text);
A. Sangiacomo C.
173
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
S_n[1000] :=StrToFloat(Edit4.Text); AL_n :=StrToFloat(Edit6.Text); X0_n :=StrToFloat(Edit2.Text); XL_n :=StrToFloat(Edit3.Text); Tiempo_n :=StrToFloat(Edit7.Text); ValorX0_n :=StrToFloat(Edit8.Text); ValorXL_n :=StrToFloat(Edit9.Text); Theta_n :=StrToFloat(Edit12.Text); if Theta_n<0 then Theta_n:=0; if Theta_n>1 then Theta_n:=1; //ValorX0_n, ValorXL_n nMax_n:=round( Tiempo_n / S_n[1000]+0.49); if MI_n<3 then MI_n:=3; CALCULO(Sender); end; end.
mientras pasa el tiempo se calienta. Tinicial=1000C y Tfinal=500C. Material: Aluminio (al) λal = 0.49 cal / s cm 0C , Cp = 0.2174cal / s 0C , ρ = 2.7 g / cm3 . Luego: α2 =
6.2.2.10. Ejemplo:
λ al
Cp ⋅ ρ
=
0.49 0.2174⋅ 2.7
= 0.83478
de ello tenemos si k=1, h=2: Dada una barra de aluminio 10 λ = α 2 k = 0.83478⋅0.1 = 0.02086 . 22 h2 cm. De largo y que está en las Con wi,0=0, i=1, …, 4. condiciones de la figura w1,0 +1 = w1,0 + λ ( w0,0 − 2w1,0 + w2,0 )
w1,1 = 0 + λ (100 − 2 ⋅ 0 + 0) = 2.086 , w2,1 = w2,0 + λ ( w1,0 − 2w2,0 + w3,0 )
Solución: Usando método progresivo wi, j +1
w2,1 = 0 + λ (0 − 2 ⋅ 0 + 0) = 0 ,
⎛ 2α 2 k ⎞ k = ⎜1 − 2 ⎟ wi , j + α 2 2 ( wi +1, j + wi −1, j ) ⎜ ⎟ h h ⎠ ⎝
w3,1 = w3,0 + λ ( w2,0 − 2w3,0 + w4,0 ) w3,1 = 0 + λ (0 − 2 ⋅ 0 + 0) = 0 w
=w
+ λ (w
− 2w
+w
)
4,1 4, 0 3,0 4, 0 5,0 cinco particiones como se muesw4,1 = 0 + λ (0 − 2 ⋅ 0 + 50) = 1.043 tra en la figura se puede calcular la temperatura en cualquier punto de barra después de 0.1, 0.5 y 1.0 Es como queda después del primer 0.1 segundos.
segundo.
Para ello podemos escribir la Continuando para el 0.2 segundo: w1, 2 = w1,1 + λ ( w0,1 − 2 w1,1 + w2,1 ) ecuación (6) de la forma k w1, 2 = 100λ + λ (100 − 2(100λ ) + 0) = 4.087 , w = w +α 2 (w − 2w + w ) i , j +1
i, j
h2
i +1, j
i, j
i −1, j
y la figura es reformulada
w2, 2 = w2,1 + λ ( w1,1 − 2w2,1 + w3,1 )
w2, 2 = 0 + λ (100λ − 2 ⋅ 0 + 0) = 0.044 , w3,2 = w3, 2 + λ ( w2, 2 − 2w3, 2 + w4, 2 ) w3,2 = 0 + λ (0 − 2 ⋅ 0 + 50λ ) = 0.022
Entendemos que en el instante cero la temperatura es 00C,
w4, 2 = w4,1 + λ ( w3,1 − 2w4,1 + w5,1 ) w4, 2 = 50λ + λ (0 − 2(50λ ) + 50) = 2.043
luego para 0.3, 0.4, ..., 1.0 se tiene F. Antoine S.
A. Sangiacomo C.
174
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
Resutados t = 0.3 100.000 6.004 0.127 0.064 3.002 50.000 Resutados t = 0.4 100.000 7.843 0.249 0.127 3.922 50.000 Resutados t = 0.5 100.000 9.608 0.405 0.209 4.804 50.000
+
haciendo
wi +1, j +1 − 2 wi , j +1 + wi −1, j +1 h2
λ=
gk h2
]
, donde g es una
constante (g=α2). Despejando para obtener un sistema Aw=b, reordenando nos queda: 2wi , j +1 − 2wi , j = λ ( wi +1, j − 2wi , j + wi −1, j )
Resutados t = 0.6 100.000 11.302 0.593 Resutados t = 0.7 100.000 12.930 0.810 Resutados t = 0.8 100.000 14.494 1.055 Resutados t = 0.9 100.000 15.998 1.325 Resutados t = 1 100.000 17.445 1.619
0.309 5.651 50.000 0.426 6.465 50.000 0.560 7.248 50.000 0.710 8.001 50.000 0.875 8.725 50.000
+ λ ( wi +1, j +1 − 2wi , j +1 + wi −1, j +1 ) ,
y reordenando nos resulta: 2(λ − 1) wi , j = λ ( wi −1, j + wi +1, j + wi +1, j +1 )
− 2(λ + 1) wi , j +1 + λwi −1, j +1
como se nota los puntos iniciales en la primera vez en los puntos j fijos y quedan las incógnitas todas las j+1. j=0, para i=1, 2, 3 y 4; i=1; 2(λ − 1) w1,0 = λ ( w1−1,0 + w1+1,0 + w1+1,0 +1 )
es como queda la temperatura después de un segundo.
− 2(λ + 1) w1,0 +1 + λw1−1,0 +1 i=2; 2(λ − 1) w2,0 = λ ( w2 −1,0 + w2 +1,0 + w2 +1,0 +1 )
− 2(λ + 1) w2,0 +1 + λw2 −1,0 +1 i=3; 2(λ − 1) w3,0 = λ ( w2,0 + w4,0 + w4,1 )
− 2(λ + 1) w3,1 + λw2,1 i=4; 2(λ − 1) w4,0 = λ ( w3,0 + w5,0 + w5,1 )
− 2(λ + 1) w4,1 + λw3,1
continuando
Figura xx
i=1; 2(λ − 1)(0) = λ (0 + 100 + w2,1 )
− 2(λ + 1) w1,1 + λ ⋅ 100
Si se resuelve por el método Crank - Nicolson tendríamos algo parecido, pues es la semisuma del explicito con el implícito (vea en el apéndice método implícito). wi , j +1 − wij k
F. Antoine S.
= 12 g[
wi +1, j − 2wi , j + wi −1, j h
2
+
i=2; 2(λ − 1)(0) = λ (0 + 0 + w3,1 )
− 2(λ + 1) w2,1 + λw1,1 i=3; 2(λ − 1)(0) = λ (0 + 0 + w4,1 )
− 2(λ + 1) w3,1 + λw2,1 i=4; 2(λ − 1)(0) = λ (50 + 0 + 50)
− 2(λ + 1) w4,1 + λw3,1
ordenando matricialmente Aw=b: A. Sangiacomo C.
175
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
−λ 0 0 ⎤ ⎡ w11 ⎤ ⎡2λ ⋅ 100⎤ ⎡2(λ + 1) ⎢ −λ λ λ 2 ( + 1 ) − 0 ⎥⎥ ⎢⎢ w21 ⎥⎥ ⎢⎢ 0 ⎥⎥ ⎢ = ⎢ 0 −λ 2(λ + 1) − λ ⎥ ⎢ w31 ⎥ ⎢ 0 ⎥ ⎥ ⎢ ⎢ ⎥⎢ ⎥ 0 −λ 2(λ + 1)⎦ ⎣ w41 ⎦ ⎣ 2λ ⋅ 50 ⎦ ⎣ 0
reemplazando y resolviendo resulta: Resultados t = 0.1 100.000 2.045 0.021 0.011 1.022 50.000. El siguiente es: j=1, para i=1, 2, 3 y 4; i=1; 2(λ − 1) w1,1 = λ ( w0,1 + w2,1 + w2,2 )
Resultados t = 0.7 100.000 12.712 0.903 Resultados t = 0.8 100.000 14.258 1.153 Resultados t = 0.9 100.000 15.746 1.427 Resultados t = 1 100.000 17.178 1.723
0.483 6.357 50.000 0.622 7.131 50.000 0.777 7.876 50.000 0.945 8.594 50.000
6.2.3. Problemas
− 2(λ + 1) w1, 2 + λw0,2 i=2; 2(λ − 1) w2,1 = λ ( w1,1 + w3,1 + w3, 2 )
1.
− 2(λ + 1) w2, 2 + λw1, 2 i=3; 2(λ − 1) w3,1 = λ ( w2,1 + w4,1 + w4, 2 )
∂ u ∂2 u − =0, ∂ t ∂ x2
− 2(λ + 1) w3, 2 + λw2, 2 i=4; 2(λ − 1) w4,1 = λ ( w3,1 + w5,1 + w5, 2 )
con valores
u ( x,0) = sin(π ⋅ x) ,
i=1; 2(λ − 1)(2.0436) = λ (100 + 0.02099 + w2, 2 )
− 2(λ + 1) w12 + λ ⋅ 100
− 2(λ + 1) w2, 2 + λw1, 2 i=3; 2(λ − 1)(0.01066) = λ (0.02099 + 1.0218 + w4, 2 )
− 2(λ + 1) w3, 2 + λw2,2 i=4; 2(λ − 1)(1.0218) = λ (0.01066 + 50 + 50)
F. Antoine S.
0≤x≤1.
u ( x, t ) = e −π t sin (π ⋅ x ) . 2
− 2(λ + 1) w4, 2 + λw3,2
Resultados t = 0.2 100.000 4.006 0.083 0.042 2.003 50.000 Resultados t = 0.3 100.000 5.889 0.182 0.094 2.945 50.000 Resultados t = 0.4 100.000 7.698 0.316 0.164 3.849 50.000 Resutados t = 0.5 100.000 9.436 0.482 0.253 4.718 50.000 Resultados t = 0.6 100.000 11.106 0.679 0.360 5.554 50.000
t >0,
Con h = 0.1 , k = 0.0005 , usando el algoritmo progresivo y el regresivo. La solución exacta es
i=2; 2(λ − 1)(0.02099) = λ (2.0436 + 0.01066 + w3,2 )
con
0
u (0, t ) = 0 , u (1, t ) = 0 ,
− 2(λ + 1) w4, 2 + λw3, 2
⎡2λ (100) + 0.02099λ − 2(λ − 1)(2.0436) ⎤ ⎢λ (2.0436 + 0.01066) − 2(λ − 1)(0.02099)⎥ ⎥ b=⎢ ⎢λ (0.02099 + 1.0218) − 2(λ − 1)(0.01066) ⎥ ⎢ ⎥ ⎣2λ (50) + 0.01066λ − 2(λ − 1)(1.0218) ⎦
Haga la aproximación para la EDP, para t=0.5
2.
Compare.
Usar diferentes valores para h y k y t. Haga la aproximación para la EDP, para t = 0.4, 0.2 ∂ u ∂2 u =0, − ∂ t ∂ x2
u (0, t ) = 0 ,
0
u (2, t ) = 0 , t > 0 ,
u ( x,0) = sin( x ⋅ π / 2) ,
0≤x≤2.
A. Sangiacomo C.
176
Capítulo 6
3.
Método Numéricos para la Solución de Ecuaciones Diferenciales
Con h = 0.1 , k = 0.005 , Usando el algoritmo progresivo y el regresivo. Usar diferentes valores para h y k y t. Haga la aproximación para la EDP, para t = 0.4, 0.2 ∂ u 1 ∂2 u − = 0, ∂ t 16 ∂ x 2
u ( x,0) = 2sin( x ⋅ 2π ) ,
t >0,
0≤x≤1.
u (0, t ) = 0 ,
6.
u ( x,0) = sin( x ⋅ 2π ) ,
F. Antoine S.
0≤x≤2.
Con h=0.1, k=0.005, Usando el algoritmo progresivo y el regresivo. Usar diferentes valores para h y k y t. Haga la aproximación para la EDP, para t=0.5, 0.35, 0.24
0
0 0 ,
u ( x,0) = sin( x ⋅ π / 4)(1 + 2 cos( x ⋅ π / 4)) , 0 ≤ x ≤ 4.
t >0,
0≤x≤2.
Con h=0.1, k=0.005, Usando el algoritmo progresivo y el regresivo. Usar diferentes valores para h y k y t. Haga la aproximación para la EDP, para t=0.5, 0.35, 0.24
u (2, t ) = 0 , t > 0 ,
∂ u 4 ∂2 u − = 0, ∂ t π 2 ∂ x2
0
u (2, t ) = 0 ,
0
u ( x,0) = x(2 − x) ,
Con h = 0.25 , k = 0.04 , Usando el algoritmo progresivo y el regresivo. Usar diferentes valores para h y k. Haga la aproximación para la EDP, para t = 0.4, 0.2 ∂ u ∂2 u − =0, ∂ t ∂ x2
5.
u (0, t ) = 0 ,
0
u (0, t ) = 0 , u (1, t ) = 0 ,
4.
∂ u ∂2 u − =0, ∂ t ∂ x2
7.
Con h=0.1, k=0.005, Usando el algoritmo progresivo y el regresivo. La solución exacta es u ( x, t ) = e −t sin ( x ⋅ π / 2) + e −t / 4 sin( x ⋅ π / 4) . Compare con sus soluciones. Usar diferentes valores para h y k y t. Haga la aproximación para la EDP, para t = 0.5, 0.4, 0.25 ∂ u 1 ∂2 u − = 0, ∂ t π 2 ∂ x2 A. Sangiacomo C.
177
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
donde α es una constante. Para el método de diferencias u (0, t ) = 0 , u (1, t ) = 0 , t > 0 , finitas seleccionaremos un entero u ( x,0) = cos(π ( x − 1 / 2)) , 0≤x≤1. m>0 y un tamaño de paso k>0. Con h=0.1, k=0.005, Usando el Con h=l/m, los puntos de red algoritmo progresivo y el (xi,tj) se define como regresivo. x = ih , La solución exacta es i para cada i=0, 1, …, m, u ( x, t ) = e −t cos(π ( x − 1 / 2)) . ti = jk , para cada j=0, 1, …. Compare con sus soluciones. Usar diferentes valores para h y En cualquier punto interior de la k y t. Resolver las EDP del 1 al 7 por red (xi,tj) la ecuación de onda será 2 el método de Crank - Nicolson ∂ 2 u 2 ∂ u ( x , t ) − α ( x, t ) = 0 . (2) 2 2 0
8.
0
∂t
∂x
6.3. Ecuaciones Diferencia- El método se obtiene como de costumbre usando los cocientes les Parciales Hiperbólica de aproximación por diferencias La ecuación diferencial parcial finitas centrales para las segundas hiperbólica que estudiaremos será derivadas parciales, que son: la ecuación de onda, la cual se presenta así: ∂2 u ∂t
2
( x, t ) = α
0
2
∂2 u ∂x
2
h2
donde ∂2 u
u (0, t ) = 0 , u (l , t ) = 0 , t > 0 ,
y
F. Antoine S.
∂x
−
(1)
con las condiciones
∂u ( x,0) = g ( x) , ∂t
u ( xi +1 , t j ) − 2u ( xi , t j ) + u ( xi −1 , t j )
( xi , t j ) = 2
( x, t ) ,
t >0,
u ( x,0) = f ( x) ,
∂2 u
0≤x≤l. 0≤x≤l,
∂t
2
h2 ∂ 4 u (qi , t j ) , 12 ∂ x 4
qi ∈ ( xi −1 , xi +1 ) ;
( xi , t j ) =
(3)
y
u ( xi , t j +1 ) − 2u ( xi , t j ) + u ( xi , t j −1 ) k2
−
k 2 ∂4 u ( xi , r j ) , 12 ∂ t 4
(4)
donde ri∈(ti-1,ti+1).
A. Sangiacomo C.
178
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
Reemplazando (3) y (4) en la Esta ecuación se satisface para ecuación (2) podemos expresar la cada i=1, 2, …, m-1 y j=1, 2, …. ecuación en los puntos (xi,yj) Las condiciones de frontera dan como w0,j=wm,j=0, u( xi , t j +1) − 2u( xi , t j ) + u( xi , t j −1 ) (8) para cada j=1, 2, … −α
k2 2 u ( xi +1 , t j ) − 2u ( xi , t j ) + u ( xi −1 , t j ) h
Y la condición inicial implica
2
2 4 k 2 ∂4 u 2 h ∂ u = − ( x , r ) α (qi , t j ) , (5) i j 12 ∂ t 4 12 ∂ x 4
wi,0=f(xi), para cada i=1, 2, …, m-1.
(9)
Teniendo en cuenta el miembro para cada i=1, 2, …, m-1 y j=1, de la derecha de (7), tenemos la 2, …. matriz A tridiagonal dada por Si despreciamos el error de truncamiento nos quedará la ecuación de aproximaciones en la forma wi, j +1 − 2wi, j + wi, j −1 k2
−α 2
wi+1, j − 2wi, j + wi−1, j h2
= 0.
(6)
Si hacemos
λ=
αk h
, podemos
escribir la ecuación diferencias como
de
⎡2(1 − λ2 ) 0 0⎤ λ2 L ⎢ ⎥ 2 2 2 λ 2(1 − λ ) λ O M⎥ ⎢ A= ⎢ 0 0⎥ O O O ⎢ ⎥ 2 2 2 M O λ 2(1 − λ ) λ ⎥ ⎢ ⎢ 0 L 0 λ2 2(1 − λ2 )⎥⎦ ⎣
Ahora escribiendo todo sistema matricial nos resulta ⎡ w1, j +1 ⎤ ⎢ w ⎥ 2, j +1 ⎥ ⎢ ⎢ M⎥ = ⎢ ⎥ ⎢ wm − 2, j +1 ⎥ ⎢ wm −1, j +1 ⎥ ⎣ ⎦
.
el
⎡ w1, j ⎤ ⎡ w1, j −1 ⎤ ⎢ w ⎥ ⎢ w ⎥ 2, j ⎥ 2, j −1 ⎥ ⎢ ⎢ M⎥ − ⎢ M⎥ . (10) A⎢ ⎢ ⎥ ⎢ ⎥ ⎢ wm − 2, j ⎥ ⎢ wm − 2, j −1 ⎥ ⎢ wm −1, j ⎥ ⎢ wm −1, j −1 ⎥ ⎣ ⎦ ⎣ ⎦
wi, j +1 − 2wi, j + wi, j −1
La expresión (10) tiene un pro− λ2 (wi +1, j − 2wi, j + wi −1, j ) = 0 blema el cual es que para el paso (j+1) en el tiempo requiere de los de esta última despejamos la valores de los pasos j y del paso aproximación más avanzada en el (j–1) en el tiempo. tiempo expresada por wi,j+1, así: wi, j +1 = 2(1 − λ2 )wi, j + λ2 (wi +1, j + wi −1, j ) − wi, j −1 . F. Antoine S.
(7) A. Sangiacomo C.
179
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
+
k 2 ∂2 u ( xi , si ) 2 ∂ t2
k 2 ∂2 u = u ( xi ,0) + kg ( xi ) + ( xi , si ) . 2 ∂ t2
Donde si despreciamos el error k 2 ∂2 u ( xi , si ) 2 ∂ t2
Figura 9.
y usamos las aproxi-
maciones wi,j nos resulta
Aquí tenemos un problema inicial, ya que los valores para j=0 están dados por la ecuación (9), en cambio los valores para j=1, que son necesarios en (10) para calcular wi,2, deben obtenerse de la condición de la velocidad inicial
wi ,1 = wi ,0 + kg ( xi ) ,
para cada i=1, …, m-1. (12)
Sin embargo, de la ecuación (11) podemos ver con (12) da una aproximación con un error de truncamiento de sólo O(k). Una mejor aproximación a la solución u(xi,tj) puede obtenerse fácil∂u ( x , 0) = g ( x ) , 0 ≤ x ≤ l . mente, particularmente cuando se ∂t puede determinar la segunda Lo primero que se podría hacer deri-vada f en xi, de sería reemplazar ∂ u / ∂ t por la consideremos: aproximación de diferencias u ( xi , t1 ) − u ( xi ,0) ∂ u progresivas, ( xi ,0) = u ( xi , t1 ) − u ( xi ,0) ∂u ( xi ,0) = k ∂t 2 k∂ u − ( xi , si ) , 2 ∂ t2
∂t k 2 3 k∂ u k ∂ u + ( xi ,0) + ( xi , si ) , 2 2 ∂t 6 ∂ t3 2
(13)
(11)
para alguna 0
∂2 u ∂ t2
( xi ,0) − α 2
∂2 u ∂ x2
( xi ,0) = 0 ,
A. Sangiacomo C.
180
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
para cada i=0, 1, …, m.
o, haciendo
Si f ’’ existe, entonces ∂2 u ∂t
2
( xi ,0) = α 2 =α2
∂2 u ∂x
2
λ=
kα h
,
u ( xi , t1 ) = u ( xi ,0) + kg ( xi ) + +
( xi ,0)
d 2 f ( xi ) d x2
λ2 2
⋅ [ f ( xi +1 ) − 2 f ( xi ) + f ( xi −1 )] + O(k 2 + h 2 k )
= α 2 f ′′( xi ) . = (1 − λ2 ) f ( x ) + λ f ( x ) + λ f ( x ) i i +1 i −1 2 2 + kg ( xi ) + O(k 2 + h 2 k ) 2
2
Sustituyendo en (13) y resolviendo para u(xi,t1) se obtiene Entonces, se puede ecuación de diferencia u ( xi , t1 ) = u ( xi ,0) + kg ( xi ) +
α 2k 2 2
f ' ' ( xi ) +
k 2 ∂3 u ( xi , si ) 6 ∂ t3
wi ,1 = (1 − λ2 ) f ( xi ) +
y wi ,1 = wi ,0 + kg ( xi ) +
α 2k 2 2
+ f ' ' ( xi ) .
(14)
λ2 2
λ2 2
usar
la
f ( xi +1 )
f ( xi −1 ) + kg ( xi ) ,
(15)
para encontrar a wi,1 para cada Esta es una aproximación con un i=1, 2, …, m-1. error de truncamiento local de O(k2) para cada i=1, 2, …, m-1. 6.3.1. Programa en Delphi de Si f∈C4[0,1] pero f ''(xi) no puede Regresivas para Hiperbólicas conseguirse fácilmente, podemos usar la ecuación f ' ' ( xi ) =
f ( xi +1 ) − 2 f ( xi ) + f ( xi −1 ) h2
−
h 2 ( 4) f (vi ) , 12
para algún vi entre (xi-1,xi+1). Esto implica que la aproximación se convierte en u ( xi , t1 ) − u ( xi ,0) = g ( xi ,0) k +
kα 2 f ( xi +1 ) − 2 f ( xi ) + f ( xi −1 ) ⋅ + O(k 2 + h 2 k ) 2 2 h
{Modificar el programa 6.2.2.5 .} {$M 16384,0,9360} {con función S<>0 o sea no homogénea} unit Onda_Hiperbolica1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, operaXY1; type TForm1_Hiperbolicas1 = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; Memo1: TMemo; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Edit3: TEdit;
F. Antoine S.
A. Sangiacomo C.
181
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
Edit4: TEdit; Label3: TLabel; Label4: TLabel; Edit5: TEdit; Edit6: TEdit; Label5: TLabel; Label6: TLabel; Edit7: TEdit; Label7: TLabel; Edit8: TEdit; Label8: TLabel; BitBtn3: TBitBtn; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure FormCreate(Sender: TObject); end;
Begin if i=1 then begin mbb[1]:=p; mcc[1]:=q end else if i
La solución se la mostramos en la siguiente tabla para la EDP ∂2 u ∂ t2
−
∂2 u ∂ x2
( x, t ) = 0 ,
0
t >0,
(1)
con las condiciones u (0, t ) = 0 , u (1, t ) = 0 , t > 0 ,
y
u ( x,0) = sin(2π ⋅ x) ,
∂u ( x,0) = 2 ⋅ π ⋅ sin(2π ⋅ x) , ∂t
donde
F. Antoine S.
0≤x≤1.
k = 0.0001
y
0≤x≤1,
h = 0.05 ,
xi
wi
ui
0.000
0.0000000000
0.0000000000
error
0.00
A. Sangiacomo C.
182
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
1
0.100
0.3793620932
0.3773813624
2.0 ⋅10 −3
2
0.200
0.6138207607
0.6106158710
3.2 ⋅10 −3
3
0.300
0.6138207606
0.6106158710
3.2 ⋅10 −3
4
0.400
0.3793620930
0.3773813624
2.0 ⋅10 −3
5
0.500
6
0.600
7
0.700
0.0000000000 -0.0000000000 3.5 ⋅10−11 -0.3793620931 -0.3773813624 2.0 ⋅10 −3 -0.6138207607 -0.6106158710 3.2 ⋅10 −3
8
0.800
9
0.900
-0.6138207606 -0.6106158710 3.2 ⋅10 −3 -0.3793620930 -0.3773813624 2.0 ⋅10 −3
10
1.000
0.0000000000
0.0000000000
y ∂u ( x,0) = sin(π ⋅ x) , ∂t
donde después con
0.00
Tabla 4.
6.3.2. Problemas 1.
3.
∂ t2
−4
∂2 u ∂x
( x, t ) = 0 , 2
0
t >0
∂2 u ∂ t2
u ( x,0) = sin(π ⋅ x) , ∂u ( x,0) = 0 , ∂t
donde
y
2.
∂2 u ∂ t2
−
∂2 u ∂ x2
( x, t ) = 0 ,
0
u (0, t ) = 0 , u (1, t ) = 0 , F. Antoine S.
t >0,
t >0,
y
1 ∂2 u ( x, t ) = 0 , 4 ∂ x2
u ( x,0) = 0 ,
h = 0.05 .
0 < x < 0.5 ,
0≤x≤0.5.
∂u ( x,0) = sin(4π ⋅ x) , ∂t
h = 0.05 .
Vea que sucede con la solución cuando k = 0.05 y h = 0.1 . De una apreciación crítica. Con el programa 6.3.1 resuelva el problema, para t = 0.5 ;
−
y
0≤x≤1.
Compare con la solución exacta u ( x, t ) = sin(π ⋅ x) cos(2π ⋅ t ) .
k = 0.0001
y
u (0, t ) = 0 , u (0.5, t ) = 0 , t > 0 ,
0≤x≤1,
k = 0.0001
h = 0.25 ,
t >0,
,
u (0, t ) = 0 , u (1, t ) = 0 , t > 0 ,
y
k = 0.25 ,
0≤x≤1,
Con el programa 6.3.1 resuelva el problema, para t=1/2;
Con el programa resuelva el problema, para t=1; ∂2 u
0≤x≤1.
u ( x,0) = sin(2π ⋅ x) ,
4.
0≤x≤0.5,
donde k=0.25, h=0.25, y después con k=0.0001 y h=0.05. Con el programa 6.3.1 resuelva el problema, para t=1/2; ∂2 u ∂ t2
−
∂2 u ∂ x2
( x, t ) = 0 ,
0
t>0
,
u (0, t ) = 0 , u (1, t ) = 0 , t > 0 ,
y u ( x,0) = sin(π ⋅ x) , ∂u ( x,0) = 0 , ∂t
0≤x≤1.
0≤x≤1,
donde k = 0.05 , h = 0.1 , y después con k = 0.0001 y h = 0.05 . A. Sangiacomo C.
183
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
∂2 i
Compare con la solución exacta u ( x, t ) = sin(π ⋅ x) cos(π ⋅ t ) . Vea que sucede con la solución cuando k=0.05 y h=0.05. De una apreciación crítica. 5.
6.
Haga las modificaciones correspondientes al programa 6.3.1 para el uso de la fórmula (15) con f y repita los problemas del (1) al (4).
∂ t2
− LC
∂2 i ∂ x2
( x, t ) = 0 ,
0
t >0
,
donde L es la inductancia por unidad de longitud y C es la capacitancia por unidad de longitud. Suponga que la línea tiene 200 m de longitud y que las constantes C y L están dadas por C = 0.1 faradios / m L = 0.3henrios / m
Supongamos también que el Con el programa 6.3.1 resuelva voltaje y la corriente satisfacen que el problema, para t=1/2; V (0, t ) = V (200, t ) = 0 , t > 0 ∂2 u ∂2 u − ( x, t ) = 0 , 0 0 , ∂ t 2 ∂ x2 π ⋅x ) , 0 0 , 200
y
∂V ( x,0) = 0 , ∂t
⎧⎪ 1, 0 ≤ x ≤ 12 u ( x,0) = ⎨ 1 < x ≤ 1, ⎪⎩− 1, 2 ∂u ( x,0) = 0 , 0≤x≤1, ∂t donde k = 0.05 , h = 0.1 ,
después con 7.
k = 0.0001
∂2 V ∂ t2
F. Antoine S.
− LC
∂2 V ∂ x2
( x, t ) = 0 ,
i (0, t ) = i (200, t ) = 0 , t > 0 i ( x,0) = 5.5sin(
y y h = 0.05 .
En una línea de transmisión eléctrica de longitud l que lleva corriente alterna de alta frecuencia, el voltaje V y la corriente i se describen por 0
t >0,
0
π ⋅x 200
),
0
0
Aproxime el voltaje y la corriente en t = 0.2 y en t = 0.5 , usando el algoritmo y programa 6.3.1 con h = 10 , k = 0.1 . b) Encuentre los primeros tres términos de la solución en a)
A. Sangiacomo C.
184
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
series de Fourier para V e i ⎡⎛ h ⎞ 2 ⎤ y compare los resultados en 2⎢⎢⎜⎝ k ⎟⎠ + 1⎥⎥ wi, j − ( wi +1, j + wi −1, j ) ⎣ ⎦ los puntos V (50, 0.2) , V (50, 0.5) , 2 ⎛h⎞ i (50, 0.2) , i (50, 0.5) con los de − ⎜ ⎟ ( wi , j +1 + wi , j −1 ) = −h 2 f ( xi , y j ) ⎝k⎠ (a). (5) 8.
Haga los problemas del (1) al para cada i=1, 2, …, n y j=1, 2, (7) para diferentes valores de t. …, m, además
Nota: En el disco compacto se encuentran todos los programas de los capítulos de este libro y muchos más de los tratados aquí.
w0, j = g ( x0 , y j )
para cada j=0, 1, …, m, wn, j = g ( xn , y j )
para cada j=0, 1, …, m,
Apéndice
wi ,0 = g ( xi , y0 )
Si resolvemos por los puntos mepara cada i=0, 1, …, n-1, dios de cada rectángulos los cálwi , m = g ( xi , ym ) culos son aproximados también: para cada i=0, 1, …, n-1, (6)
donde wi,j aproxima a u(xi,yj) La típica ecuación (5) envuelve aproximaciones a u(x,y) en los puntos medios de los rectángulos como se ve en la figura 1,
Figura 1.
( xi + 1 , y j + 1 ) ,
( xi − 1 , y j + 1 ) , 2
2
2
2
( xi + 1 , y j − 1 ) , ( xi + 1 , y j + 3 ) , ( xi + 3 , y j + 1 ) 2
2
2
2
2
2
En la forma de la ecuación de diferencia, esto da lugar a un método llamado de diferencias centrales, con error de truncamiento local de orden O(h2+k2), que puede escribirse F. Antoine S.
A. Sangiacomo C.
185
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
Pl(xi,yj)
y
wl = wij,
donde l = i + (m − 1 − j )(n − 1) para cada i=1, 2, …, n y j=1, 2, …, m. Esto, de hecho reordena los puntos de la red consecutivamenFigura 2. te de izquierda a derecha y de arriba hacia abajo. Como La figura hace ver que se aclaración presentémoslo para aproxima una región en forma de n=4 y m=5, esta nueva ordenaestrella de cuatro puntas al ción da por resultado una malla rededor del punto ( xi + 1 , y j + 1 ) . cuyos puntos medios los mostra2 2 mos en la figura 3. Usando ahora la información de las condiciones de frontera en el De esta manera se asegura que sistema (5), o sea: en todos los los puntos medios forman una puntos (xi,yj) que están adyacen- matriz banda con un espesor de tes a un punto de red en la 2n–1. frontera, tendremos un sistema de (n)(m) ecuaciones lineales con (n)(m) incógnitas, estas aproximaciones son las aproximaciones wi + 1 , j + 1 de u ( xi + 1 , y j + 1 ) para los 2
2
2
2
semi puntos interiores de la red. El sistema lineal que contiene a estas incógnitas puede expresarse Figura 3. más eficientemente para los cálculos de la matriz si se introduce un renombramiento de los puntos 6.1.1. Ejemplo interiores de la red. Etiquetar de Determinar la distribución estauna manera apropiada estos cionaria de calor en una lamina puntos es tomar delgada de metal en forma de F. Antoine S.
A. Sangiacomo C.
186
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
cuadrado con dimensiones de 0.5 m por 0.5 m, la cual se mantiene a 00C en dos fronteras adyacentes mientras que el calor en las otras fronteras se va incrementando linealmente de 00C a 1000C en la esquina donde estos lados se encuentran. Si ponemos los lados con condiciones de frontera cero Figura 4. a lo largo de los ejes x y y, el problema se expresará matemátiExpresando en términos de los camente así: puntos interiores de la red reeti2 2 quetados wi=u(Pi) tomando la ∂ u ∂ u ( x , y ) + ( x , y ) = 0 , (7) figura 2, y la ecuación (8) implica ∂ x2 ∂ y2 que las ecuaciones son: para (x,y) en el conjunto R={(x,y)| 0
A. Sangiacomo C.
187
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
P5 ≡ wij ; 4 P5 − P6 − 0 − P1 − P9 = 0 ,
Y nos resulta el sistema lineal − P1 − 0 − 0 − 0 + 4 P5 − P6 − 0 − 0 − 0 − P9 = 0 . asociado con este problema siguiente: P6 ≡ wij ; 4 P6 − P7 − P5 − P2 − P10 = 0 , − P2 − 0 − 0 − P5 + 4 P6 − P7 − 0 − 0 − P10 = 0 . P7 ≡ wij ; 4 P7 − P8 − P6 − P3 − P11 = 0 , − P3 − 0 − 0 − P6 + 4 P7 − P8 − 0 − 0 − P11 = 0 . 5 ) − P7 − P4 − P12 = 0 , P8 ≡ wij ; 4 P8 − 200( 16 − P4 − 0 − 0 − P7 + 4 P8 − 0 − 0 − 0 − P12 = 125 . 2 P9 ≡ wij ; 4 P9 − P10 − 0 − P5 − P13 = 0 , − P5 − 0 − 0 − 0 + 4 P9 − P10 − 0 − 0 − P13 = 0 . P10 ≡ wij ; 4 P10 − P11 − P9 − P6 − P14 = 0 , Usualmente para resolver este sistema es usando el método − P6 − 0 − 0 − P9 + 4 P10 − P11 − 0 − 0 − P14 = 0 . Gauss u otro método para el caso. P11 ≡ wij ; 4 P11 − P12 − P10 − P7 − P15 = 0 , Particularmente resolviendo por − P7 − 0 − 0 − P10 + 4 P11 − P12 − 0 − 0 − P15 = 0 . Gauss tenemos 25 0 −1 ⎡ 4 −1 0 ⎤ ⎡ w1 ⎤ ⎡ 2 ⎤ ⎢− 1 4 − 1 0 ⎥ ⎢ w ⎥ ⎢ 75 ⎥ 0 −1 ⎢ ⎥ ⎢ 2⎥ ⎢ 2 ⎥ ⎢ 0 −1 4 −1 0 ⎥ ⎢ w3 ⎥ ⎢ 125 ⎥ 0 −1 ⎥ ⎢ 2 ⎥ ⎢ ⎥⎢ 0 −1 4 0 0 0 −1 ⎢ 0 ⎥ ⎢ w4 ⎥ ⎢175⎥ ⎢− 1 0 ⎥ ⎢ w5 ⎥ ⎢ 0⎥ 0 0 4 −1 0 0 −1 ⎥ ⎢ ⎥ ⎢ ⎥⎢ −1 0 0 −1 4 −1 0 0 −1 ⎢ ⎥ ⎢ w6 ⎥ ⎢ 0⎥ ⎢ ⎥ ⎢ w ⎥ ⎢ 0⎥ −1 0 0 −1 4 −1 0 0 −1 7 ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ −1 0 0 −1 4 0 0 0 −1 ⎢ ⎥ ⎢ w8 ⎥ ⎢ 125 2 ⎢ ⎥ ⎢ w ⎥ = ⎢ 0⎥ −1 0 0 0 4 −1 0 0 −1 ⎢ ⎥ ⎢ 9⎥ ⎢ ⎥ ⎢ ⎥ ⎢ w10 ⎥ ⎢ 0⎥ −1 0 0 −1 4 −1 0 0 −1 ⎥ ⎢ ⎥ ⎥⎢ ⎢ −1 0 0 −1 4 −1 0 0 −1 ⎥ ⎢ w11 ⎥ ⎢ 0⎥ ⎢ ⎢ ⎥ ⎢ −1 0 0 −1 4 −1 0 0 − 1 w12 ⎥ ⎢ 0⎥ ⎥ ⎢ ⎥ ⎥⎢ ⎢ −1 0 0 0 4 −1 0 0⎥ ⎢ w13 ⎥ ⎢ 0⎥ ⎢ ⎢ ⎥ ⎢ −1 0 0 − 1 4 − 1 0⎥ ⎢ w14 ⎥ ⎢ 0⎥ ⎥ ⎥⎢ ⎢ −1 0 0 − 1 4 − 1⎥ ⎢ w15 ⎥ ⎢ 0⎥ ⎢ ⎢ ⎥ ⎢ −1 0 0 − 1 4⎦⎥ ⎢⎣ w16 ⎥⎦ ⎢ 25 ⎥ ⎣ ⎣ 2⎦
3 P12 ≡ wij ; 4 P12 − 200( 16 ) − P11 − P8 − P16 = 0 ,
P2 = 13.3670040146 P3 = 48.5202268881
P2 = 30.3754336331 P4 = 67.3372826589
P13 ≡ wij ; 4 P13 − P14 − 0 − P9 − 0 = 0 ,
P5 = 10.5925824253
P6 = 22.1145036299
− P9 − 0 − 0 − 0 + 4 P13 − P14 = 0 .
P7 = 33.8681912602
P8 = 45.8289037474
P9 = 6.8888220565
P10 = 13.6218072011
P11 = 19.0091307754 P13 = 3.3408985998
P12 = 19.6101410707 P14 = 6.4747723426
P15 = 8.9363835695
P16 = 10.2616311600
− P8 − 0 − 0 − P11 + 4 P12 − 0 − 0 − 0 − P16 =
75 2
.
P14 ≡ wij ; 4 P14 − P15 − P13 − P10 − 0 = 0 ,
− P11 − 0 − P13 + 4 P14 − P15 = 0 . P15 ≡ wij ; 4 P15 − P16 − P14 − P11 − 0 = 0 ,
− P11 − 0 − 0 − P14 + 4 P15 − P16 = 0 . P16 ≡ wij ;
1 4 P16 − 200( 16 ) − P15
− P12 − 0 = 0 ,
− P12 − 0 − 0 − P15 + 4 P16 =
25 2
.
Tabla 1. La solución exacta es
u(x,y)=400xy. donde las expresiones de la derecha de cada ecuación se obtuvieron de las condiciones de 6.1.2. Ejemplo frontera dadas por (8).
F. Antoine S.
♠
A. Sangiacomo C.
188
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
Resolver el problema de la figura si sabemos por casualidad k=h=1/4, y los valores de frontera están en la figura:
− P4 + 4 P5 − P6 = 32 . P6 ≡ wij ; 4 P6 − 16 − P5 − 14 − P8 = 0 ,
− P5 + 4 P6 − 0 − P8 = 30 . P7 ≡ wij ; 4 P7 − 10 − 12 − P3 − P9 = 0 ,
− P3 − 0 − 0 − 0 + 4 P7 − 0 − P9 = 22 . P8 ≡ wij ; 4 P8 − 16 − 10 − P6 − P10 = 0 ,
− P6 − 0 + 4 P8 − 0 − P10 = 26 . P9 ≡ wij ; 4 P9 − 10 − 12 − P7 − 8 = 0 ,
− P7 − 0 + 4 P9 = 30 . P10 ≡ wij ; 4 P10 − 16 − 10 − P8 − 8 = 0 ,
− P8 − 0 + 4 P10 = 34 .
Si usamos directamente los valores de wij para las aproximaciones podemos resolver la ecuación: ∂2 u ∂ x2
( x, y ) +
∂ 2u ∂ y2
( x, y ) = 0
⎤ ⎡ w1 ⎤ ⎡24⎤ ⎡ 4 −1 −1 ⎥ ⎢ w ⎥ ⎢24⎥ ⎢− 1 4 0 − 1 ⎥ ⎢ 2⎥ ⎢ ⎥ ⎢ ⎥ ⎢ w3 ⎥ ⎢12⎥ ⎢− 1 0 4 − 1 0 0 − 1 ⎥ ⎢ ⎥ ⎥⎢ ⎢ 0 1 1 4 1 − − − ⎥ ⎢ w4 ⎥ ⎢ 18⎥ ⎢ ⎥ ⎢ w5 ⎥ ⎢32⎥ ⎢ 0 0 −1 4 −1 ⎥=⎢ ⎥ ⎥⎢ ⎢ 0 −1 4 0 −1 ⎥ ⎢ w6 ⎥ ⎢30⎥ ⎢ ⎥ ⎢ w ⎥ ⎢22⎥ ⎢ 0 −1 −1 0 0 0 4 ⎥ ⎢ 7⎥ ⎢ ⎥ ⎢ 0 −1 0 4 0 − 1⎥ ⎢ w8 ⎥ ⎢26⎥ ⎢ ⎢ 0 − 1 0 4 0⎥ ⎢ w9 ⎥ ⎢30⎥ ⎥ ⎢ ⎥ ⎥⎢ ⎢ ⎢⎣ − 1 0 4⎥⎦ ⎢⎣ w10 ⎥⎦ ⎢⎣34⎥⎦
4wij − wi +1, j − wi −1, j − wi , j −1 − wi , j +1 = 0
P1 = 12.3224095858 P2 = 12.7432736829 P3 = 12.5463646602
P1 ≡ wij ; 4 P1 − P2 − 12 − 12 − P3 = 0 ,
P4 = 14.6506851458 P5 = 15.3131022400
Solución:
4 P1 − P2 − P3 = 24 . P2 ≡ wij ; 4 P2 − 12 − P1 − 12 − P4 = 0 ,
− P1 + 4 P2 − 0 − P4 = 24 . P3 ≡ wij ; 4 P3 − P4 − 12 − P1 − P7 = 0 ,
− P1 − 0 + 4 P3 − P4 − 0 − 0 − P7 = 12 .
P6 = 14.6017238143 P7 = 11.2123639094 P8 = 13.0937930171 P9 = 10.3030909773 P10 = 11.7734482543
P4 ≡ wij ; 4 P4 − P5 − P3 − P2 − 18 = 0 ,
− P2 − P3 + 4 P4 − P5 = 18 . P5 ≡ wij ; 4 P5 − P6 − P4 − 14 − 18 = 0 , F. Antoine S.
6.1.3. Ejemplo A. Sangiacomo C.
189
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
∂2 u
∂ 2u
∂x
∂y
( x, y ) + 2
2
( x, y ) = 0 , (a1)
con las condiciones de frontera ∂u = u para la frontera izquierda, ∂x
para los siguientes cuatro puntos de la retícula (1), (2), (3) y (4) , creamos otros cuatro puntos subliminales a la izquierda (i) y abajo (j) así:
∂u = u − 2 para la frontera inferior, ∂y
u=5 para la frontera derecha, u=7 para la frontera superior. (a2)
Con los intervalos de la retícula Para la izquierda el Pi-1 unitarios en ambas direcciones. calculamos su aproximación: ∂u ∂x
=u,
u ij
uij − ui −1, j
= ui −1, j
1+ h
= ui −1, j
h
o
Pi 1+ h
= Pi −1
Solución: Para abajo el Pj-1 calculamos su aproximación: ∂u ∂y
uij − ui , j −1
=u−2,
u ij + 2 k
1+ k
k
= ui , j −1
P j +2 k
o
1+ k
= ui , j −1 − 2 = Pj −1 .
Ello nos lleva a la formulación de un sistema de la forma: 4 wij − wi +1, j − wi −1, j − wi , j −1 − wi , j +1 = 0
Figura 5.
P1 ≡ wij ; 4 P1 − P2 − Pi −1 − 7 − P3 = 0 , P
Las condiciones en la frontera superior y frontera derecha son valores fijos, obtenemos las ecuaciones en diferencias sólo F. Antoine S.
4 P1 − P2 − 1+1h − P3 = 7 , 7 P1 2
h=1,
− P2 − P3 = 7 ,
P2 ≡ wij ; 4 P2 − 5 − P1 − 7 − P4 = 0 ,
− P1 + 4 P2 − 0 − P4 = 12 . A. Sangiacomo C.
190
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
P3 ≡ wij ; 4 P3 − P4 − Pi −1 − P1 − Pj −1 = 0 , P
4 P3 − P4 − 1+3h − P1 −
P3 + 2 k 1+ k
= 0,
− P1 + 3P3 − P4 = 1 P4 ≡ wij ; 4 P4 − 5 − P3 − P2 − Pj −1 = 0 ,
4 P4 − 5 − P3 − P2 −
P4 + 2 k 1+ k
= 0,
− P2 − P3 + 72 P4 = 6
de donde resulta ⎡ 7 −1 −1 ⎤ ⎡ w1 ⎤ ⎡ 7 ⎤ ⎢ 2 ⎥ 0 − 1⎥ ⎢⎢ w2 ⎥⎥ ⎢⎢12⎥⎥ ⎢− 1 4 = ⎢− 1 0 3 − 1⎥ ⎢ w3 ⎥ ⎢ 1⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ − 1 − 1 72 ⎥⎦ ⎣ w4 ⎦ ⎣ 6⎦ ⎢⎣
= 4.3571428571 P2 = 5.1071428571 P3 = 3.1428571429 P4 = 4.0714285714 P1
Parabólicas Implícitas (atrás) Ejemplo: Dada la barra de aluminio del ejemplo 6.2.2.10 p. 174.
la cual se resolverá por método implícito. Solución: Usando λ = gk2 , de h
wi , j +1 − wij k
=g
wi −1, j +1 − 2wi , j +1 + wi +1, j +1 h2
despejando tenemos: F. Antoine S.
wij = wi , j +1 + λ ( wi −1, j +1 − 2wi , j +1 + wi +1, j +1)
Usamos el sistema de manejo fácil dado por: − λwi −1, j +1 + (2λ + 1) wi , j +1 − λwi +1, j +1= wi , j Con los datos anteriores del ejemplo de página 174 de arriba y su fórmula resolvemos ahora: j=0, k=0.1; i=1; − λ w01 + (2λ + 1) w11− λw21= w10 − λ100 + (2λ + 1) w11− λw21= 0 i=2; − λw11+ (2λ + 1) w21− λ w31 = 0 i=3; − λw21 + (2λ + 1)w31 − λ w41 = 0 i=4; − λw31+ (2λ + 1) w41− λ50 = 0 ; Resultando (2λ + 1)w11 − λ w21 =100λ − λw11 + (2λ + 1) w21− λw31= 0 − λw21 + (2λ + 1) w31− λw41= 0 − λw31 + (2λ + 1) w41= 50λ ; el cual se resuelve por 0 0 ⎤ ⎡ w11 ⎤ ⎡100λ ⎤ ⎡ 2λ + 1 − λ ⎢ −λ 2λ + 1 − λ 0 ⎥⎥ ⎢⎢ w21 ⎥⎥ ⎢⎢ 0 ⎥⎥ ⎢ = ⎢ 0 −λ 2λ + 1 − λ ⎥ ⎢ w31 ⎥ ⎢ 0 ⎥ ⎥ ⎢ ⎢ ⎥⎢ ⎥ −λ 0 2λ + 1⎦ ⎣ w41 ⎦ ⎣ 50λ ⎦ ⎣ 0
Resolviendo por cualquier método del mercado se tiene w11 = 2.0032691204 , w21 = 0.040532509 , w31 = 0.020869194 , w41 = 1.0016466338 , o sea: T01 = 100; T11 = 2.003; T21 = 0.041; T31 = 0.021; T41 = 1.002; T51 = 50 Resultados t = 0.2 n =2 100.000 3.930 0.119 0.062 1.965 50.000 Resultados t = 0.3 n =3 100.000 5.780 0.232 0.122 2.890 50.000 Resultados t = 0.4 n =4 100.000 7.559 0.379 0.200 3.780 50.000 Resultados t = 0.5 n =5 100.000 9.271 0.555 0.296 4.636 50.000 Resultados t = 0.6 n =6 100.000 10.918 0.760 0.409 5.460 50.000 Resultados t = 0.7 n =7 A. Sangiacomo C.
191
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
100.000 12.504 0.991 0.538 Resultados t = 0.8 n =8 100.000 14.031 1.246 0.682 Resultados t = 0.9 n =9 100.000 15.503 1.523 0.840 Resultados t = 1 n =10 100.000 16.921 1.821 1.013
6.254 50.000 7.019 50.000 7.756 50.000 8.467 50.000
f ( x + h) − f ( x ) . (3) h Si de esta última expresión logramos despeja de alguna manera f(x+h) y f(x) tendremos pues la integral de f ’ (x). f ' ( x) ≈
Así, pues si usamos las diferencias finitas y despejamos podremos tener la integral de la EDP. Para
Método Explícito (Adelante)
∂T ; sus aproximaciones respecti∂t ∂x vas serán: ∂T Ti j +1 − Ti j = y ∂t Δt k
∂ 2T 2
=
∂ 2T ∂x 2
=
Ti −j 1 − 2Ti j + Ti +j 1 (Δ x) 2
,
(4)
Un caso particular para explicar directamente (para ingenieros) Ecuación del Calor
∂T , (1) ∂x 2 ∂ t donde k es la característica del material. Nota: para resolver la Ecuación Diferencial Parcial EDP, necesitamos integrarla; para ello tomamos las diferencias finitas ( Δf i = f i +1 − f i o Δf ( x) = f ( x + h) − f ( x) ) que son un camino para hallar dicha integral o función primitiva. Ejemplo: f ( x + h) − f ( x ) ; (2) f ' ( x) = Lím h →0 h a esta expresión si sólo la aproximamos para un h apropiado sin hacer el paso al límite, tendremos: k
F. Antoine S.
∂ 2T
=
Reemplazando en la EDP se tiene Ti −j 1 − 2Ti j + Ti +j 1 Ti j +1 − Ti j . (5) k = Δt (Δ x) 2 Haciendo operaciones elementales y kΔ t , haciendo λ = (Δ x) 2 kΔ t (T j − 2Ti j + Ti +j 1) = Ti j +1 − Ti j , 2 i −1 (Δ x) Ti j +1 = Ti j + λ (Ti −j 1 − 2Ti j + Ti +j 1) .
(6)
Ejemplo:
A. Sangiacomo C.
192
Capítulo 6
Método Numéricos para la Solución de Ecuaciones Diferenciales
Particularizando a un problema especifico, podemos decir, que en tiempo cero “0”, la j=0, Δt = 0.1 ; 1 0 0 0 0 temperatura es 0 0 C a toda la barra de 10 i=1; T1 = T1 + λ (T0 − 2T1 + T2 ) = 0 + λ (100 − 2(0) + 0) = 100λ ; cm. Está a temperatura cero o sea Ta = Tb = 0 . i=2; T21 = T20 + λ (T10 − 2T20 + T30) = 0 + λ (0 − 2(0) + 0) =0; Ahora si la sometemos a temperatura en los extremos
de
T f .inicial =1000 C
T f . final = 500 C , se ve en la figura:
1 0 0 0 0 y i=3; T3 = T3 + λ (T2 − 2T3 + T4 ) = 0 + λ (0 − 2(0) + 0) =0;
Para estos materiales particularmente para aluminio tenemos: L = 10cm
λal = 0.49 cal / s cm C 0
c p = 0.2174cal / s 0C
ρ = 2.7 g / cm3 k=
λal 0.49cal / s cm 0C = c p ρ 0.2174cal / s cm 0C • 2.7 g / cm3
= 0.83478 kΔ t 0.83478 λ= = = 0.02086 (Δ x) 2 22
Δ t = 0.1 Δ x = 2.0
i=4; T41 = T40 + λ (T30 − 2T40 + T50) = 0 + λ (0 − 2(0) + 50) = 50λ resultando la temperatura después Δt = 0.1 ; T01 = 100; T11 = 2.086; T21 = 0;
de
T31 = 0; T41 = 1.043; T51 = 50
j=1, Δt = 0.2 ; i=1; T12 = T11 + λ (T01 − 2T11 + T21) = 100λ + λ (100 − 2(100λ ) + 0) = 200λ − 200λ2 ; i=2; T22 = T21 + λ (T11 − 2T21 + T31)
= 0 + λ (100λ − 2(0) + 0) = 100λ2 ; i=3; T32 = T31 + λ (T21 − 2T31 + T41) = 0 + λ (0 − 2(0) + 50λ) = 50λ2 ; i=4; T42 = T41 + λ (T31 − 2T41 + T51) = 50λ + λ (0 − 2(50λ ) + 50) = 50λ − 50λ2 T02 = 100; T12 = 4.085; T22 = 0.044;
2 2 2 Esta es una discretización, en la cual T3 = 0.022; T4 = 2.042; T5 = 50 debemos calcular la temperatura en cada Para este método, explícito, la convergencia se da cuando λ < 14 ; debemos tener en punto como se ve en la figura cuenta que no es un método estable. Usted debe seguir el proceso hasta llegar el tiempo t=1 segundo.
Método Implícito (Atrás)
Aplicando a la fórmula (6) tenemos: F. Antoine S.
A. Sangiacomo C.
193
Capítulo 6
k
∂ 2T
Método Numéricos para la Solución de Ecuaciones Diferenciales
=
− λT31 + (2λ + 1)T41 = 50λ ; ∂T ; sus aproximaciones respectiel cual se resuelve por ∂t
∂x 2 vas serán ∂T Ti j +1 − Ti j = ∂t Δt ∂ 2T ∂x
2
=
0 0 ⎤ ⎡T11 ⎤ ⎡100λ ⎤ ⎡2λ + 1 − λ ⎢ ⎥ ⎢ −λ 2λ + 1 − λ 0 ⎥⎥ ⎢T21 ⎥ ⎢⎢ 0 ⎥⎥ ⎢ = ⎢ 0 2λ + 1 − λ ⎥ ⎢T31 ⎥ ⎢ 0 ⎥ −λ ⎥ ⎢ ⎥⎢ ⎥ ⎢ 0 2λ + 1⎦ ⎢⎣T41 ⎥⎦ ⎣ 50λ ⎦ −λ ⎣ 0
y
Ti −j +11 − 2Ti j +1 + Ti +j +11 (Δ x)
2
,
(7) Resolviendo por cualquier método del mercado se tiene T11 = 2.0032691204 , T21 = 0.040532509 ,
T31 = 0.020869194 , T41 = 1.0016466338 , o sea: T01 = 100; T11 = 2.003; T21 = 0.041;
Reemplazando en la EDP se tiene T31 = 0.021; T41 = 1.002; T51 = 50 Ti −j +11 − 2Ti j +1 + Ti +j +11 Ti j +1 − Ti j . (8) k = Δt (Δ x) 2 Método de Crank - Nicolson (Semi suma) Haciendo operaciones elementales y kΔ t , haciendo λ = Ti −j1 − 2Ti j + Ti +j1 1 2 + (Δ x) 2 k( (Δ x) 2 kΔ t . (10) (T j +1 − 2Ti j +1 + Ti +j +11) = Ti j +1 − Ti j , Ti −j1+1 − 2Ti j +1 + Ti +j1+1 Ti j +1 − Ti j 2 i −1 )= + (Δ x) Δt ( Δ x) 2 j j +1 j +1 j +1 j +1 Ti = Ti + λ (Ti −1 − 2Ti + Ti +1 ) . (9) Haciendo operaciones elementales y Usamos el sistema de manejo fácil dado por: kΔ t , haciendo λ = − λTi −j +11 + (2λ + 1)Ti j +1 − λTi +j +11 = Ti j . (9’) (Δ x) 2 Con los datos anteriores del ejemplo de 2T j +1 − 2T j = λ (T j − 2T j + T j ) i i i −1 i i +1 arriba y la fórmula (9), resolvemos ahora: j +1 + λ (Ti −1 − 2Ti j +1 + Ti +j1+1) j=0, Δt = 0.1 ; Acomodando i=1; − λT01 + (2λ + 1)T11 − λT21 = T10 2(λ − 1)Ti j = λTi −j1 + λTi +j1 + λTi +j1+1 1 1 , − λ100 + (2λ + 1)T1 − λT2 = 0 j +1 j +1 − 2 ( λ + 1 ) T + λ T i i + 1 i=2; − λT11 + (2λ + 1)T21 − λT31 = 0 (11) 1 1 1 o también i=3; − λT2 + (2λ + 1)T3 − λT4 = 0 − λTi −j1+1 + (2λ + 1)Ti j +1 − λTi +j1+1 = i=4; − λT31 + (2λ + 1)T41 − λ50 = 0 ; , j j j = λ T + ( 1 − 2 λ ) T + λ T i −1 i i +1 Resultando (12) 1 1 (2λ + 1)T1 − λT2 =100λ − λT11 + (2λ + 1)T21 − λT31 = 0 − λT21 + (2λ + 1)T31 − λT41 = 0 F. Antoine S.
Resolviendo el ejemplo de arriba se tiene: j=0, Δt = 0.1 ; A. Sangiacomo C.
194
Capítulo 6
i=1;
Método Numéricos para la Solución de Ecuaciones Diferenciales
− λT01 + (2λ + 1)T11 − λT21 = = λT00 + (1 − 2λ )T10 + λT20
,
− 100λ + (2λ + 1)T11 − λT21 = = 100λ + (1 − 2λ )0 + λ 0
i=2;
,
(2λ + 1)T11 − λT21 = 200λ − λT11 + (2λ + 1)T21 − λT31 =
= λ 0 + (1 − 2λ )0 + λ 0 − λT11 + (2λ + 1)T21 − λT31 = 0
i=3; − λT21 + (2λ + 1)T31 − λT41 = 0 i=4; − λT31 + (2λ + 1)T41 = 100λ ; Resultando 0 0 ⎤ ⎡T11 ⎤ ⎡200λ ⎤ ⎡2λ + 1 − λ ⎢ ⎥ ⎢ −λ 2λ + 1 − λ 0 ⎥⎥ ⎢T21 ⎥ ⎢⎢ 0 ⎥⎥ ⎢ = ⎢ 0 −λ 2λ + 1 − λ ⎥ ⎢T31 ⎥ ⎢ 0 ⎥ ⎥⎢ ⎥ ⎢ ⎢ ⎥ −λ 0 2λ + 1⎦ ⎣⎢T41 ⎦⎥ ⎣100λ ⎦ ⎣ 0 y T11 = 4.006256 , T21 = 0.082536 ,
T31 = 0.042210 , T41 = 2.003141 , o sea: T01 = 100; T11 = 4.006; T21 = 0.083; T31 = 0.042; T41 = 2.003; T51 = 50
F. Antoine S.
A. Sangiacomo C.
195
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
o complejos; x = ( x1 , x2 ,..., xn ) . A la expresión
CAPÍTULO 7
I = I [ y ( x)]
se llama funcional (real o complejo) de la función y (x) Objetivo: Es estudiar los métodos variacionales para la solución (función de una función) si se le de una ecuación diferencial con valor de frontera. asocia a cada función y ( x) ∈ K , de forma unívoca, un número I 7.0. MÉTODOS VARIACIONA- (real o complejo). LES PARA LA RESOLUCIÓN DE El conjunto K = { y ( x)} para el PROBLEMAS DE CON- que está definido el funcional en cuestión se llama dominio de DICIONES DE FRONTERA definición del funcional, 7.1. Concepto de Funcional y de mientras que a las funciones en si se les conoce con el nombre de Operador funciones admisibles. En el presente capítulo se definen los conceptos de funcional y de 7.1.3. Ejemplo operador sólo para funciones. En general se puede definir para Sea K = { y ( x)} el conjunto de conjuntos generales de todas las funciones reales y elementos, cosa que no haremos diferenciable en el punto x = 0 . A la expresión aquí. d 7.1.1. Definición k = [ y ( x)] x = 0 = y ′(0) dx Dado un conjunto K = { y ( x)} de funciones y (x) de las variables independientes x. En donde x es se le puede consideran como un número real o complejo o el funcional de y (x ) , el cual está conjunto de n componentes reales definida en el conjunto K, luego a cada función de K se le asocia de F. Antoine S.
A. Sangiacomo C.
193
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
forma unívoca un número real, a saber, el valor de y′(0) de su derivada en el punto x = 0 . 7.1.4. Ejemplo Considere el conjunto de todas las funciones y (x) continuas y diferenciable en el intervalo [a, b] o dicho de otra forma, y ( x) ∈ C 1[a, b] . La longitud de arco s de la curva y = y (x ) entre los puntos (a, y (a )) y (b, y (b)) , es una funcional de y (x) en el conjunto C 1[a, b] . Este funcional se puede expresar por la fórmula
b Figura 1. En la figura se ve como la longitud de arco es una función creciente. 7.1.5. Ejemplo
Sea K el conjunto de todas las funciones no negativas z = f ( x, y ) , que en un dominio cerrado G son b s = ∫ 1 + y′ 2 dx . continuas y que en la frontera Γ a de ese dominio, son cero. Una O sea, s es una función creciente, representación de este volumen pues, a medida que x se aleja de es a, crece la longitud de arco. V = ∫∫ f ( x, y )dxdy G
y es un funcional de f ( x, y ) .
a F. Antoine S.
A. Sangiacomo C.
194
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
El funcional I = I [ y ] se llama lineal si está definido en un conjunto K de funciones lineales y si para dos funciones admisibles cualesquiera u y v se cumple la expresión I [αu + βv] = αI [u ] + βI [v] .
Figura 2. 7.1.6. Definición Un conjunto K de funciones se llama lineal si con dos funciones cualesquiera u , v ∈ K tanto su suma u + v ∈ K , como el producto α u ∈ K , donde α es una constante cualquiera (real o compleja). 7.1.7. Ejemplo Son conjuntos K de funciones lineales: a) El conjunto de todos los polinomios. b) El conjunto de todas las funciones continuas. c) El conjunto de todas las funciones que son cero en la frontera de un dominio. 7.1.8. Definición F. Antoine S.
En donde α y β son constante cualesquiera. 7.1.9. Ejemplo El funcional considerado en el ejemplo
7.1.3
= y′(0) , es lineal.
k=
d [ y ( x)] x = 0 dx
7.1.10. Definición En el conjunto K = { y ( x)} está definido un operador L si a cada función y ( x) ∈ K se le asocia por medio de L, de forma unívoca, una función z = z (x) . (La función z puede también depender de una de las otras variables t = (t1 , t 2 ,..., t m )). Esta asociación entre funciones se expresa simbólicamente como L( y ) . z = Ly o El conjunto K de todas las funciones y = y (x) , en el que el operador L está definido, se le A. Sangiacomo C.
195
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
llama dominio de definición de este operador, y a las funciones y ∈ K se les llaman funciones admisibles.
(operador diferencial lineal) con los valores z ∈ C[ a, b] . Si consideramos, por ejemplo, al operador definido por
L( y ) = y ' '+ y ,
7.1.11. Ejemplo
Sea K = { y ( x)} el conjunto de entonces es: todas las funciones derivables. d L(1) = 0 + 1 = 1 , , o la Entonces la operación dx L( x) = 0 + x = x , determinación de la derivada, es L ( x 2 ) = 2 + x 2 , L ( e − x ) = 2e − x , un operador (llamado operador L ( sin ( x )) = 0 . diferencial): Por medio del operador diferencial lineal L podemos escribir la ecuación diferencial de orden n ordinaria, lineal, no y (x ) Si en general las funciones homogénea y general, en forma [ a , b ] en el intervalo son abreviada, como sigue: continuamente derivables sucesivamente n veces, esto es, Ly = f (x ) . (2) n y ∈ C [a, b] , entonces el operador En donde L es un operador de la L es del tipo forma (1), f (x ) es una función z = Ly = p0 ( x) y ( n ) + p1 ( x) y ( n −1) + ... continua dada y y la solución ... + p ( x ) y + p ( x) , (1) buscada. d y′( x) = y ( x) . dx
n −1
n
donde los coeficientes son 7.1.12. Ejemplo funciones continuas pi ∈ C[a, b] . Consideremos el conjunto Esto es, un operador definido en K = { u ( x, y )} de todas las n K = C [ a, b] un conjunto funciones u ∈ C 2 (G ) , en donde G F. Antoine S.
A. Sangiacomo C.
196
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
La combinaciones lineales αu + βv la una función admisible, con α y β constantes cualesquiera), y por 2 2 ∂ u ∂ u consiguiente se cumple las + Δu = 2 2 , ∂y ∂x condiciones: entre u y Δu es un operador 1. L (αu ) = αLu , definido (operador de Laplace Δ ) en el conjunto K. Si ponemos Δu igual a una función conocida 2. L(u + v ) = Lu + Lv . f ( x, y ) , obtenemos entonces la ecuación diferencial de Poisson De ahí resulta la expresión
es un dominio dado. asociación definida por fórmula
Δu = f ( x , y ) .
(3)
L(αu + βv) = αLu + βLv
Si en particular f ( x, y ) es para α y β constantes idénticamente cero, obtenemos cualesquiera. entonces la ecuación diferencial Como se ve fácilmente, que los de Laplace
Δu = 0 .
(4)
operadores
d , dx
L
y
Δ,
considerado en los ejemplos Por consiguiente, podemos anteriores, son lineales. considerar a las ecuaciones diferenciales, tanto ordinarias 7.1.14. Ejemplo como en derivadas parciales, desde un punto de vista general, El operador L definido mediante como ecuaciones de operador. Ly = y 2 7.1.13. Definición Un operador se llama lineal si él no es lineal. esta definido en un conjunto En efecto, tenemos lo siguiente: lineal (es decir, con dos funciones admisibles u y v, es también cada una de sus F. Antoine S.
A. Sangiacomo C.
197
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
L(u + v) = (u + v) 2
resultar
debe
Lu + Lv = u 2 + v 2
cualesquiera u y v se cumple la expresión
∫ϖ uLv dϖ = ∫ϖ vLu dϖ
pero claramente se ve que resulta o L(u + v) = (u + v) = u + v + 2uv , 2
2
2
( Lu , v) = (u, Lv) .
(5) en general uv tiene diversos valores y no siempre es cero. ♠ Si además para cada función admisible u se cumple la Sea K el conjunto de todas las desigualdad funciones u continua y reales en ( Lu , u ) ≥ 0 , el dominio ϖ . Si ahora es u ∈ K y v ∈ K , al número con lo cual es válida, entonces y sólo entonces, la igualdad (u , v) = ∫ uv dϖ , ϖ
( Lu , u ) = 0 , se llama producto escalar de las funciones u y v. Se deja ver u = 0, se cumple cuando claramente que (u , v) = (v, u ) . entonces al operador L se la llama positivo. 7.1.15. Definición Sea { u} un conjunto de funciones lineales, continuas y definidas en un dominio ϖ . En este conjunto de funciones, sea definido un operador L lineal cuyos valores sean igualmente funciones continuas definidas en el dominio ϖ . Un operador lineal cualquiera se llama simétrico (autoadjunto) si para dos funciones admisibles
F. Antoine S.
7.1.16. Ejemplo Consideremos definido por
al
operador
Ly = − y ′′ ,
en el conjunto de todas las y ∈ C 2 [0,1] , siendo funciones y (0) = 0 y y (1) = 0 . A. Sangiacomo C.
198
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
Y deja notar que el operador L es también positivo.
Solución: Si u y v son dos funciones admisibles, obtenemos entonces Con ésta teoría dada líneas arriba podemos entrar al problema 1 1 (vLu − uLv )dx = (−vu ′′ + uv′′)dx variacional.
∫0
∫0
1
= (uv′ − vu ′) 0 = 0 .
7.2. Problema Variacional
Luego es 1
∫0
1
vLudx = ∫ (uLv )dx ,
Sea dado el funcional
0
I = I [ y ( x)] ,
(1)
es decir, ( Lu , v) = (u , Lv ) .
Y por consiguiente L es un operador simétrico. Si consideramos que u = 0 , en virtud de las condiciones de contorno dadas, es la única función admisible con u ′ = 0 , obtenemos entonces para u ′ ≠ 0 , además ( Lu , u ) = ∫
1 0
= −uu ′
y
1
uLudx = − ∫ (uu ′′)dx 0
1 0
( Lu , u ) = 0 ,
para u = 0 .
1
+ ∫ (u ′ 2 )dx > 0
del cual; suponemos que está definido en un conjunto K = { y ( x)} de funciones determinadas. Al problema de determinar el extremo del funcional (1) se le llama problema variacional. Algo más exacto se formula, como sigue, el problema variacional. Búsquese una función y = y ( x) ∈ K de forma que para todas las funciones admisibles y = y (x) que se diferencien muy poco de la función y (x ) se cumpla la desigualdad
0
I [ y] ≥ I [ y ] , en caso de un mínimo, o I [ y] ≤ I [ y ] ,
F. Antoine S.
A. Sangiacomo C.
199
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
en caso de un máximo. Observemos que puede explicarse el concepto de la diferencia entre las funciones y y y de forma diferente.
Figura 3. Solución: Este problema conduce a la determinación de un mínimo del funcional s=∫
7.2.1. Ejemplo Consideremos el problema siguiente: a partir del conjunto de las curvas correspondientes a funciones lisas o regulares y = y (x ) , que pasan por los N (b, B) , puntos M (a, A) y determínese la curva de longitud de arco más pequeña.
b a
1 + y ′2 dx ,
para las funciones y = y (x) de la 1 clase C [a, b] , siendo
y (a) = A y
y (b) = B .
Por consideraciones geométricas, es evidente que la solución buscada es la recta y = A+
B−A ( x − a) . b−a
Por eso se cumple que
a
smín = (b − a ) 2 + ( B − A) 2 .
7.3. Teorema Fundamental del Método Variacional para la Resolución de los Problemas de Condiciones de Frontera b F. Antoine S.
A. Sangiacomo C.
200
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
Dado en el dominio G con Γ una ecuación frontera diferencial lineal (ordinaria o en derivadas parciales), siendo los coeficientes funciones continuas. Búsquese una solución y de esta ecuación diferencial, la cual satisfaga en la curva de contorno (en la frontera) Γ las condiciones de contorno lineales dados. Al primer miembro de la ecuación diferencial lo podemos considerar como un operador lineal L aplicado a la función y, por lo cual L está definido en un conjunto K de funciones, cuyos elementos tienen derivadas sucesivas del orden exigido en G + Γ y que satisfacen además en Γ las condiciones de contorno dadas. Por consiguiente, nuestro problema de las condiciones de contorno conduce a la solución de la ecuación de operador
Ly = f (P ) ,
(1)
en donde P es el conjunto de variable independientes y f (P) es una función conocida (que nosotros consideramos como continuas). La función y pertenece a la clase K y satisface,
F. Antoine S.
por consiguiente, en la frontera Γ las condiciones de contorno
R[ y ] = 0 ,
(2)
R es un funcional lineal dado o un operador deferencia lineal de orden inferior al de L. El problema de las condiciones de contorno o frontera no homogéneas Ly = f (P ) ,
siendo la condición de contorno
R[ y ] = φ ( P ) para P ∈ Γ ,
(3)
en donde φ (P ) es una función conocida, pueden transformarse en un problema de condiciones de contorno homogéneas. Para tal fin necesitamos introducir mediante
y = z + y1 una nueva función desconocida z, siendo y1 una función lisa que satisfaga la condición de contorno (3): R[ y1 ] = φ ( P) . A. Sangiacomo C.
201
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
Empecemos con los teoremas De las fórmulas (1) y (3) importantes. obtenemos 7.3.1. Teorema 1: Sea L un operador positivo, lineal Lz = f ( P ) − Ly1 y simétrico definido en el y conjunto K. La ecuación de R[ z ] = 0 . operador (1) con la condición de La función y1 , en general, puede contorno (2) tiene a lo sumo una solución en el conjunto K: es indentificarse fácilmente. decir, si existe una solución del La idea fundamental del método problema de las condiciones de variacional, expuesto en nuestro contorno (1), (2), ésa es única. caso, consiste en sustituir el problema de las condiciones de Prueba: contorno (1) y (2), por un Supongamos que el teorema 7.3.1 problema equivalente al de la no sea correcto y que el problema determinación de un extremo de las condiciones de contorno (normalmente mínimo) para un funcional determinado. El tenga dos soluciones y1 y y2 , es método variacional para la decir, que se cumpla resolución de problemas de las Ly1 = f ( P) , R[ y1 ] = 0 , (4) condiciones de contorno encontró una gran difusión después que el y matemático alemán Ritz en el año Ly 2 = f ( P ) , R[ y2 ] = 0 . (5) 1908 propusiera un procedimiento cómodo para Restando las anteriores resolver de forma aproximada el ecuaciones (4) y (5) obtenemos problema variacional. El método de Ritz se tratará más adelante Ly1 − Ly 2 = L( y1 − y2 ) = 0 , (aunque ya dimos una forma en y R[ y1 − y2 ] = 0 , (6) el método de Rayleigh-Ritz visto en el anterior capítulo 4). es decir, ( y1 − y2 ) ∈ K . F. Antoine S.
A. Sangiacomo C.
202
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
homogéneas tiene la solución y , El producto escalar de la primera el funcional F [ y ] toma para ecuación de (6), por la diferencia y = y un mínimo. Si por el ( y1 − y2 ) , resulta contrario, en el conjunto K existe una función y , para la cual el ( L( y1 − y2 ), ( y1 − y2 )) = 0 . (7) funcional (8) toma un mínimo, entonces esta función es la como se ha supuesto que el solución de la ecuación (1). operador L es positivo en el conjunto K y la función y1 − y2 Prueba: pertenece a K, resulta de la Primera forma: Sea la función y , una solución fórmula (7) que del problema de las condiciones ( y1 − y2 ) = 0 , de contorno (1) y (2), es decir, que se cumple que es decir, y1 = y2 , que es lo que R[ y ] = 0 . Ly = f (P ) y queríamos probar. ♣ Si sustituimos ahora en la 7.3.2. Teorema Sean L un operador positivo, fórmula (8) f (P ) por Ly , simétrico y definido en el obtenemos entonces conjunto K, y F [ y ] un funcional F [ y ] = ( Ly , y ) − 2( Ly , y ) . (9) de la forma
F[ y] = ( Ly, y) − 2( f , y)
En virtud de la simetría del operador L, resulta
= ∫ ( Ly − 2 f ) ydϖ . ϖ (8)
( Ly , y ) = ( y , Ly ) = ( Ly , y ) .
Aquí, f = f (P ) es el segundo Por tanto es miembro de la ecuación (1). Si el problema de las condiciones F [ y ] = ( Ly , y ) − ( y , Ly ) − ( Ly , y ) de contorno (1) y (2), con condiciones de contorno = ( Ly, y − y ) − [( Ly, y) − ( Ly , y )] − ( Ly , y ) F. Antoine S.
A. Sangiacomo C.
203
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
mínimo del funcional F [ y ] está = ( Ly , y − y ) − ( Ly , y − y ) − ( Ly , y ) dado por la expresión siguiente: = ( L( y − y ), ( y − y )) − ( Ly , y ) . (10)
En el miembro derecho de la ecuación (10) sólo el primer sumando es variable. Evidentemente, y − y pertenece a K. De Ahí obtenemos, en virtud de que el operador L es positivo, ( L ( y − y ), ( y − y )) ≥ 0 .
Fmín [ y ] = F [ y ] = −( Ly , y ) .
Segunda forma: Supongamos que existe una función y del conjunto K para la cual el funcional (9) toma un mínimo. Esto significa que para cualquier función y1 ∈ K de un entorno pequeño de y se cumple la desigualdad
F [ y1 ] − F [ y ] ≥ 0 . Por consiguiente, el funcional F [ y ] toma su valor mínimo para Pongamos ahora aquellas funciones admisibles, y sólo para ésas, para las que se q = ( y1 − y ) ∈ K cumple que
( L( y − y ), ( y − y )) = 0 .
De ahí obtenemos, en virtud de la definición del operador positivo ( y − y) = 0 ,
es decir, y= y.
De la ecuación (10) podemos todavía deducir que el valor F. Antoine S.
y consideremos el grupo de funciones y = y + αq ,
(11)
en donde α es un número real. Evidentemente, la función y es admisible para cualquier valor de α, y para valores suficientemente pequeños de α se cumple la desigualdad ΔF = F [ y ] − F [ y ] ≥ 0 . A. Sangiacomo C.
204
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
( Ly − f , q ) = 0 .
Según la ecuación (8), obtenemos ΔF = ( Ly, y ) − 2( f , y ) − ( Ly , y ) + 2( f , y )
= ( Ly , y ) − 2( Ly , y ) + 2( Ly − f , y )
− 2( L y − f , y ) + ( L y , y )
Por consiguiente, función q ∈ K es
∫ϖ
para
( L y − f , q ) dϖ = 0 ,
toda
(14)
y luego Ly − f = 0 , = ( Ly, y) − 2( Ly , y) + 2( Ly − f , y − y ) + ( Ly , y ) ≥ 0 . (12) es decir, Ly = f . De ahí resulta, si empleamos la transformación (10) y la ecuación Esto significa que y es una (11). solución de nuestro problema de ΔF = ( L( y − y ), ( y − y )) − ( Ly , y ) las condiciones de contorno. ♦ + 2( Ly − f , y − y ) + ( Ly , y )
7.4. Transformación del α 2 ( Lq, q ) + 2α ( Ly − f , q) ≥ 0 . (13) Problema de Condiciones de Contorno Lineal para una El miembro izquierda de la Ecuación Diferencial Ordinaria desigualdad (13) es un trinomio de Segundo Orden en un de segundo grado con respecto al Problema Variacional parámetro α , el cual debido a (13) no cambia su signo. En Consideremos la ecuación consecuencia, la ecuación de diferencial ordinaria segundo grado correspondiente no tiene raíces reales, es decir, y ' '+ P( x) y′ + Q( x) y = h( x) , (1) tiene un discriminante negativo ( Ly − f , q ) 2 − ( Lq, q ) ⋅ 0 ≤ 0 .
De ahí tenemos
F. Antoine S.
con las condiciones de contorno lineales α1 y ′(a ) + α y (a ) = A , A. Sangiacomo C.
205
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
β1 y ′(b) + β y (b) = B .
(2)
q( x) = p( x)Q( x) , Supongamos que las funciones f ( x) = p( x)h( x) . P(x) , Q(x) y h(x) son continuas en el intervalo [a, b] . Supongamos Una ecuación diferencial de segundo orden de la forma (4) se que también se cumple que llama autoadjunta. Si α1 + α ≠ 0 y β1 + β ≠ 0 . introducirnos el operador lineal p ( x) > 0 ,
d
Transformamos la ecuación (1) Ly = − [ p ( x) y′] − q ( x) y , dx en su forma especial, en la llamada forma autoadjunta. Con este fin, multipliquemos todos obtenemos sus términos por el factor Ly = − f (x ) , positivo x
p ( x) = e ∫ a
P ( x ) dx
(5)
(6)
en donde p (x) , p′(x) , q(x) y f (x) son funciones continuas en Obtenemos el intervalo [a, b] . Consideremos en primer lugar el p ( x) y ′′ + p ( x) P ( x) y ′ + p ( x )Q( x) y caso en que las condiciones de = p ( x ) h( x ) . (3) frontera (2) sean homogéneas, es decir, que Teniendo en cuanta la expresión α1 y ′( a ) + α y ( a ) = 0 , x
p′( x) = e ∫ a
P ( x ) dx
.
⋅ P( x) = p ( x) P( x) ,
β1 y ′(b) + β y (b) = 0 .
(7)
la ecuación (3) la podemos siendo expresar como d [ p( x) y ′] + q( x) y = f ( x) . dx
Aquí se cumple que F. Antoine S.
α1 + α ≠ 0
y
β1 + β ≠ 0 .
(4)
Supongamos que α1 > 0 y β1 > 0 . Entonces podemos demostrar, A. Sangiacomo C.
206
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
teniendo en cuenta esas suposiciones, que el operador L es autoadjunto en la clase K = { y} de funciones, si entendemos por K a la clase y ∈ C 2 [a, b] de funciones derivables sucesivamente dos veces en el intervalo [a, b] , las cuales satisfacen en los extremos del intervalo x = a y x = b las condiciones de frontera (7). Sean u y v dos funciones de K. Entonces se cumple, en virtud de la fórmula (5), que ( Lu , v) − ( Lv, u ) = ∫
b a
⎧ ⎡d ⎤ ⎨− v ⎢ ( p( x)u ′) − q ( x)u ⎥ ⎦ ⎩ ⎣ dx
⎡d ⎤⎫ + u ⎢ ( p ( x)v′) − q ( x)v ⎥ ⎬dx ⎣ dx ⎦⎭ =∫
b a
b a
(8)
Con w( x) =
F. Antoine S.
u ( x) v( x) . u ′( x) v′( x)
u ′(a) = −
o u (a) = −
o
α ≠ 0 . En
α α u (a) , v′(a) = − v(a) α1 α1
α1 u ′(a ) , v(a ) = − α1 v′(a) . α α
Tenemos entonces que se cumple
Análogamente, se puede señalar que
Por consiguiente resulta de la ecuación (8) que ( Lu , v) − ( Lv, u ) = 0 , es decir,
b a
= p (b) w(b) − p(a ) w(a ) .
Siendo α1 ≠ 0 consecuencia es
w(b) = 0 .
d [ p ( x)(uv′ − vu ′)]dx dx
= p ( x)(uv′ − vu ′)
α1u ′(a ) + αu (a ) = 0 , a1v′(a) + α v(a ) = 0 .
w(a) = 0 .
[ p ( x)(uv′′ − vu′′) + p′( x)(uv′ − vu′)]dx
=∫
Las funciones u (x) y v(x) satisfacen las condiciones de frontera homogéneas
(9)
( Lu , v) = ( Lv, u ) . La última ecuación nos indica que el operador L es simétrico. A. Sangiacomo C.
207
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
A continuación estudiaremos las condiciones para que el operador L sea positivo. Para las funciones y ∈ K se cumple
Consiguientemente, el problema de las condiciones de frontera (6) y (7), si se cumplen las desigualdades (12) y (14), es equivalente, según el teorema b ⎧d 7.3.2 al de la determinación de un ⎫ ( Ly, y ) = − ∫ ⎨ [ p ( x) y′] − q ( x) y ⎬ ydx . a ⎩ dx ⎭ mínimo para el funcional (10)
F [ y ] = ( Ly , y ) + 2( f , y ) , (15) Si integramos por partes el primer término de la ecuación en la clase K de funciones. Si (10) resulta empleamos la ecuación (11) resulta que b ( Ly , y ) = − p ( x) y y ′
+∫
b a
a
F [ y ] = p(a) y (a) y′(a) − p(b) y (b) y′(b)
[ p( x) y ′ 2 − q( x) y 2 ]dx .
(11)
+∫
b
[ p ( x) y ′2 − q ( x) y 2 + 2 f ( x) y ]dx .
a p ( x) > 0 , resulta de Ya que (11), que el operador L es positivo si se cumplen las En particular, para condiciones β1 > 0 resulta que
q ( x) ≤ 0 para a ≤ x ≤ b ,
y
(12)
y (a ) y ′( a ) ≥ 0 , y (b) y′(b) ≤ 0 .
(13)
Dado por supuesto que α1 ≥ 0 y β1 ≥ 0 , en virtud de las condiciones de frontera (7), la desigualdad (13) es equivalente a las dos desigualdades
α ≤ 0, F. Antoine S.
β ≥ 0.
(14)
F ( y) = −
+∫
b a
(16)
α1 > 0
y
α β p(a ) y 2 (a ) + p (b) y 2 (b) α1 β1
[ p ( x) y′2 − q ( x) y 2 + 2 f ( x) y ]dx . (17)
Una expresión análoga se obtiene también en los otros casos. Volvamos ahora al problema de las condiciones de frontera (6), siendo las condiciones frontera (2) no homogéneas. Para eso supongamos que las A. Sangiacomo C.
208
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
desigualdades (12) y (14) se cumplen. En la clase K1 de las funciones que satisfacen las condiciones de frontera (2) el operador L es en general positivo y no simétrico. Por este motivo no podemos emplear aquí directamente el teorema 7.3.2 dado anteriormente. Sea z = z (x) una función de clase C 2 [a, b] , que satisfaga las condiciones frontera (2), es decir, que se cumpla que α1 z ′(a ) + α z (a ) = A , β1 z ′(b) + β z (b) = B .
(18)
y la ecuación diferencial Lu = Ly − Lz ,
es decir
Lu = − f ( x ) − Lz .
(21)
En consecuencia, la función u pertenece a K. El operador L es simétrico y positivo en la clase K de funciones. En consecuencia, la solución u del problema de las condiciones de frontera (2), (21) proporciona según el teorema 7.3.2, un mínimo al funcional F [u ] = ( Lu , u ) + 2( f ( x) + Lz , u ) .
Sea y la solución del problema de condiciones de frontera (6), (2) e De ahí obtenemos, por ecuación induzcamos una función nueva (11), u = u (x) que esté definida F [u ] = p (a)u (a )u ′(a) − p (b)u (b)u ′(b) mediante
u = y−z.
(19)
+∫
b a
[ p ( x)u ′2 − q( x)u 2 + 2( f ( x) + Lz )u ]dx . (22)
Esta función u satisface las condiciones de frontera De (19) podemos deducir que la homogéneas solución y del problema de las condiciones de frontera (6), (2) ′ α1 z (a ) + α z (a ) = 0 , proporcionan un mínimo al funcional siguiente β1 z ′(b) + β z (b) = 0 , (20) F1[ y ] = p(a )[ y (a) − z (a )][ y′(a ) − z ′(a )]
F. Antoine S.
A. Sangiacomo C.
209
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
− p(b)[ y (b) − z (b)][ y′(b) − z ′(b)] +∫
b a
[ p( x)( y′ − z ′) 2 − q( x)( y − z ) 2
Sustituyendo esta expresión en (23), obtenemos entonces por transformaciones elementales
+ 2( f ( x ) + Lz )( y − z )]dx
F1[ y ] = p (a )[ y ( a ) − z ( a )][ y ′( a ) − z ′(a )]
= p ( a )[ y (a ) − z ( a )][ y′(a ) − z ′(a )]
− p (b)[ y (b) − z (b)][ y′(b) − z ′(b)]
− p(b)[ y (b) − z (b)][ y′(b) − z ′(b)] +∫ +∫ + 2∫
b a
b a
b a
+∫
[ p( x) y′ − q( x) y + 2 f ( x) y ]dx 2
2
b
[ p( x) y ′ 2 − q( x) y 2 + 2 f ( x) y ]dx
a
−∫
b a
[ p ( x) z ′2 − q ( x) z 2 + 2 f ( x) z ]dx . (24)
[ p ( x) z ′ 2 − q ( x) z 2 + 2 f ( x) z ]dx
[ − p ( x) y ′z ′ + q ( x) yz + ( y − z ) Lz ]dx . (23)
Por integración obtenemos
“por
Sean α1 > 0 y β1 > 0 . Usando las condiciones frontera (2) nos resulta
partes” y′(a ) =
b
∫ a ( y − z) Lzdx =
y
⎡d ⎤ = − ∫ ( y − z ) ⎢ ( p( x) z '+ q( x) z ⎥ dx a ⎣ dx ⎦ b
y′(b) =
A − α y (a)
α1 B − β y (b)
β1
, z ′(a) =
,
z ′(b) =
A − α z (a)
α1
B − β z (b)
β1
.
Luego resulta = −( y − z ) p ( x ) z ′
b a
b
+ ∫ [ p ( x) z ′( y ′ − z ′) − q( x) z ( y − z )]dx
F1[ y ] =
a
−
= p(a)[ y (a ) − z (a)]z ′(a)
− p(b)[ y (b) − z (b)]z ′(b) +∫
b a
[ p ( x) z ′( y ′ − z ′) − q ( x) z ( y − z )]dx .
+∫
b a
p(a)
α1
p(b)
β1
[2 Ay (a) − α y 2 (a )]
[2 By (b) − β y 2 (b)]
[ p( x) y′2 − q( x) y 2 + 2 f ( x) y ]dx
⎧ p(a) −⎨ [2 Az (a ) − α z 2 (a )] ⎩ α1 p (b) − [2 Bz (b) − β z 2 (b)]
β1
F. Antoine S.
A. Sangiacomo C.
210
Capítulo 7
+∫
Método Numéricos para la Solución de Ecuaciones Diferenciales
[ p ( x) z ′2 − q ( x) z 2 + 2 f ( x) z ]dx ⎫⎬ . a) ⎭
b a
(25)
Si α1 = 0 y β1 ≠ 0 se deduce el funcional siguiente A
y (a ) = z (a ) = . Ya que los términos existentes α entre las llaves “ {} ” de la ecuación (25) son constantes y no Tomando la ecuación (24) se dependen de la función y, desprende que para h[ y ] puede podemos considerar, en lugar del tomarse el funcional funcional F1[ y ] , el funcional siguiente p (b) 2 h[ y ] =
p(a)
α1 −
+∫
b a
h[ y ] = −
[2 Ay (a) − α y 2 (a)]
p(b)
β1
+∫
[2 By (b) − β y (b)] 2
b)
[ p ( x) y ′2 − q( x) y 2 + 2 f ( x) y ]dx . (26)
Por tanto, el problema de las condiciones de frontera (6) y (2) con condiciones de frontera no homogéneas, teniendo en cuenta la suposición de que se cumplen las desigualdades (12) y (14), es equivalente al problema variacional para el funcional (25) en la clase K1 de funciones, en donde los elementos de K1 satisfacen las condiciones de frontera (contorno) prefijadas.
b a
β1
[2 By (b) − βy (b)]
[ p ( x) y ′ 2 − q ( x) y 2 + 2 f ( x) y ]dx .
De forma parecida, puede demostrarse que en el caso en que Si α1 = 0 y β1 = 0 se cumple
h[ y ] = ∫
b a
[ p( x) y′2 − q( x) y 2 + 2 f ( x) y ]dx
. Nota: Para darse una idea práctica del manejo de esta teoría muy importante, ver los problemas resueltos por el método de Rayleigh-Ritz al final del capítulo 4 (en el 4.4).
7.5. Problemas de las 7.4.1. Casos particulares: A manera de observación Condiciones de Frontera (Contorno) para la Ecuación tenemos los dos casos:
F. Antoine S.
A. Sangiacomo C.
211
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
Diferencial de Poisson y de homogéneas (1), (3). Con este fin Laplace señalemos que el operador
Lu = − Δu
Sea dada la EDP de Poisson − Δu = f ( x , y ) ,
(1)
en donde Δu =
y
∂2 u ∂ x2
+
∂2 u ∂ y2
f ( x, y ) ∈ C (G ) .
es simétrico y positivo en la clase de funciones f ∈ C 2 (G ) , las cuales son cero en la frontera Γ. A esta clase de funciones las designamos por K = { u ( x, y )} . Sea u ∈ K y v ∈ K . Formando la expresión ⎡ ∂2 u ∂2 u ( Lu , v) − ( Lv, u ) = ∫∫ ⎢− v( 2 + ) ∂x ∂ y2 ⎢ G ⎣
Búsquese una solución continua en el dominio cerrado G = G + Γ ∂2 v ∂2 v ⎤ + u( 2 + )⎥ dxdy de la ecuación diferencial (1) que ∂x ∂ y 2 ⎥⎦ se satisface en la frontera Γ de ⎡ ∂ ∂u ⎤ ∂ ∂v ∂u ∂v ese dominio, la condición de = ∫∫G ⎢⎣ ∂ x (u ∂ x − v ∂ x ) + ∂ y (u ∂ y − v ∂ y )⎥⎦ dxdy contorno Con el auxilio de la fórmula de u Γ = φ (P) , (2) Green ⎛∂Q ∂ P⎞ en donde P es el punto ( x, y ) y ∫Γ ( Pdx + Qdy) = ∫∫G ⎜⎜⎝ ∂ x − ∂ y ⎟⎟⎠dxdy φ (P ) una función continua prefijada. Consideremos obtenemos, empleando las primeramente el caso φ ( P) = 0 , es condiciones de frontera decir (contorno) homogéneas,
uΓ = 0,
(3)
uΓ = 0, vΓ = 0
y resolvamos el problema de las condiciones de frontera la expresión F. Antoine S.
A. Sangiacomo C.
212
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
∂v ∂u ⎡ ( Lu , v) − ( Lv, u ) = ∫ ⎢− (u )dx −v Γ ⎣ ∂x ∂x ⎤ ∂u ∂v −v + (u )dy ⎥ ∂y ⎦ ∂y
= 0.
(4)
En consecuencia se cumple que ( Lu , v) = ( Lv, u ) .
∂u
∂u
∫ (−u ∂ y dx + u ∂ x dy ) = 0 ,
pero
Γ
quedándonos ⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎤ ⎟ ⎥ dxdy , ( Lu , u ) = ∫∫ ⎢⎜ ⎟ +⎜ ∂ x ⎠ ⎜⎝ ∂ y ⎟⎠ ⎥ ⎝ G ⎢ ⎣ ⎦ (5)
es decir,
( Lu , u ) = ( − Δu , u ) ≥ 0 .
Esto significa que el operador L es simétrico. Si ( Lu, u ) = 0 , resulta de (5) la Ahora tenemos que demostrar expresión que el operador L es positivo. Para ello se tiene que cumplir que ∂u ∂u = = 0. ⎡ ∂2 u ∂2 u ⎤ ( Lu , u ) = − ∫∫ ⎢u ( 2 + ) dxdy 2 ⎥ ∂ ∂ x y ⎢ ⎣ ⎦⎥ G ⎡ ∂ ∂u ∂ ∂u ⎤ (u )+ (u )⎥ dxdy = − ∫∫ ⎢ x x y y ∂ ∂ ∂ ∂ ⎣ ⎦ G
⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎤ ⎟⎟ ⎥ dxdy . + ∫∫ ⎢⎜ ⎟ + ⎜⎜ x y ∂ ∂ ⎢ ⎠ ⎝ ⎝ ⎠ ⎥⎦ G ⎣
Si empleamos la primera de la fórmula de obtenemos, en virtud condiciones de frontera función u ( Lu , u ) = − ∫ (−u Γ
integral Green, de las para la
∂u ∂u dx + u dy ) ∂x ∂y
⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎤ ⎟⎟ ⎥ dxdy , + ∫∫ ⎢⎜ ⎟ + ⎜⎜ ∂ x y ∂ ⎢ ⎝ ⎠ ⎝ ⎠ ⎥⎦ G ⎣ F. Antoine S.
∂x
∂y
De ahí se obtiene u ( x, y ) = c , y en virtud de la condición de frontera u ( x, y ) = 0 . (3) resulta En consecuencia, el operador L es también positivo. Por tanto, se cumplen para el problema de las condiciones de frontera (1) con las condiciones homogéneas (2) las suposiciones del anterior teorema 7.3.2. En consecuencia, este problema de las condiciones de frontera (contorno) es equivalente al problema variacional para el funcional F [u ] = ( Lu , u ) − 2(u , f )
A. Sangiacomo C.
(6)
213
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
en la clase de funciones K definidas anteriormente. Según la y es una solución de la ecuación fórmula (5), obtenemos diferencial ⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎤ ⎢ ⎟ ⎜ F [u ] = ∫∫ ⎜ ⎟ +⎜ ⎟ − 2 fu ⎥ dxdy . ∂ x y ∂ ⎢ ⎥⎦ ⎠ ⎝ ⎠ ⎝ G ⎣ (7)
Volvamos al problema de las condiciones de frontera (1) con las condiciones de frontera no homogéneas (2). Sea K1 = { u ( x, y )} la clase de funciones u ∈ C 2 (G + Γ) , cuyos elementos satisfacen las condiciones de frontera (2). Con lo visto anteriormente, construyamos en primer lugar una función z = z ( x, y ) ∈ C 2 (G + Γ) , que satisfaga las condiciones de frontera. Para ello introduzcamos la función v( x, y ) = u ( x, y ) − z ( x, y ) , (8)
en donde u ( x, y ) es la solución de nuestro problema de las condiciones de contorno no homogéneas. La función así definida v = v( x, y ) satisface en la frontera Γ la condición de contorno homogénea. vΓ =0 F. Antoine S.
(9)
Lv = Lu − Lz = f ( P ) − Lz . (10)
Aquí Lz = − Δ z es una función conocida. Según (6), la solución v = v( x, y ) del problema de las condiciones de frontera (contorno) (10), (9) proporciona un mínimo para la funcional F [v ] = ( Lv, v ) − 2(v, f ( P ) − Lz ) . (11)
Si volvemos a tener en cuenta en la última igualdad a la función u, obtenemos entonces, con el auxilio de las propiedades del producto escalar y del operador lineal L F [u − z ] = F1[u ] = ( L(u − z ), u − z ) − 2(u − z , f ( P) − Lz )
= ( Lu , u ) − 2(u , f ) + (u , Lz ) − ( z, Lu ) + 2( z, f ) − ( Lz , z )
(12)
Siendo los dos últimos términos de (12) independientes de la función buscada u = u ( x, y) , la función u = u ( x, y) , para la cual el funcional (12) toma un mínimo, y minimiza también al funcional A. Sangiacomo C.
214
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
F2 [u ] = ( Lu, u ) − 2(u, f ) + [( Lz , u ) − ( Lu, z )] ,
obtenemos ( Lz , u ) − ( Lu , z ) = ∫ φ ( x, y )(
(13)
Γ
∂u ∂ z − )ds . ∂n ∂n
(14) haciendo que tenga igualmente un mínimo. Demostraremos ahora que el Por otra parte, resulta según la funcional (13) puede sustituirse fórmula (5) por un funcional independiente ∂u ds ( Lu , u ) = − ∫ u de z. Si empleamos las ∂n Γ transformaciones utilizadas en la ⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎤ fórmula (4) obtenemos ⎟⎟ ⎥ dxdy , + ∫∫ ⎢⎜ ⎟ + ⎜⎜ ⎢⎣⎝ ∂ x ⎠ ∂u = − ∫ φ ( x, y ) ds ∂ n Γ G
( Lz , u ) − ( Lu , z ) = ∫∫ ( zΔu − uΔz )dz G
⎡ ∂u ∂u ∂u ∂u ⎤ )dx + ( z )dy ⎥ = ∫ ⎢− ( z −u −u y y x x ∂ ∂ ∂ ∂ ⎣ ⎦ Γ
= ∫ (z Γ
donde n expresa la normal exterior en Γ y entonces se cumple y ∂u d − s ∂yd y ∂z d − s ∂yd
Debido a
⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎤ ⎟⎟ ⎥ dxdy . + ∫∫ ⎢⎜ ⎟ + ⎜⎜ ∂ x y ∂ ⎢ ⎠ ⎝ ⎝ ⎠ ⎥⎦ G ⎣
(15)
Sustituyendo la ecuación (14) y (15) en la (13), obtenemos
∂u ∂u −u )ds , ∂n ∂n
∂u ∂u d = ∂n ∂x d ∂z ∂z d = ∂n ∂x d
⎝ ∂ y ⎠ ⎥⎦
x , s x . s
⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎤ ⎥ dxdy ⎜ ⎟ + − F2 [u ] = ∫∫ ⎢⎜ 2 fu ⎟ ⎜ ⎟ ∂ x y ∂ ⎢ ⎥⎦ ⎠ ⎝ ⎝ ⎠ G ⎣ ∂z − ∫ φ ( x, y ) ds . (16) ∂ n Γ
Siendo los dos últimos sumandos de la fórmula (16) independiente de la función u, el problema de las condiciones de frontera (1) y (2) equivale al problema variacional para el funcional
z Γ = u Γ = φ ( x, y ) , F. Antoine S.
A. Sangiacomo C.
215
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
⎤ ⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎟⎟ − 2 fu ⎥ dxdy h[u ] = ∫∫ ⎢⎜ ⎟ + ⎜⎜ ∂ x⎠ ⎝∂ y⎠ ⎥⎦ G ⎢ ⎣⎝ (17)
Para simplificar, consideremos el método de Ritz para un funcional particular de la forma F [u ] = ( Lu , u ) − 2( f , u ) ,
(1)
en la clase K1 de funciones. En particular si tenemos definido en un conjunto lineal f ( x, y ) = 0 , obtenemos entonces K = { u} . la ecuación diferencial de Con los supuestos: Laplace que L es un operador lineal positivo, Δu = 0 . f una función continua dada. Además, supongamos que las Así el problema de las funciones u de la clase K condiciones de frontera satisfacen la condiciones de (contorno) (1) y (2) se llama frontera lineales problema de Dirichlet cuya R[u ] = φ ( P ) . (2) solución de este problema se Aquí R es un funcional lineal deduce de la ecuación (17), la conocido y φ un valor función u de la clase K1 , hace constante dado o una función. que la integral de Dirichlet ⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎤ ⎟⎟ ⎥ dxdy h[u ] = ∫∫ ⎢⎜ ⎟ + ⎜⎜ ∂ x y ∂ ⎢ ⎠ ⎝ ⎝ ⎠ ⎥⎦ G ⎣
tenga un mínimo.
Construyamos una serie de funciones linealmente independientes lisas u0 ( P ) , u1 ( P ) , …, un (P) ,
donde u0 ( P) tiene que satisfacer 7.6. Conceptos Fundamentales las condiciones de frontera del Método de Ritz (contorno) no homogénea El método de Ritz ofrece soluciones de forma aproximada de los problemas variacionales. F. Antoine S.
R[u0 ] = φ ( P ) ,
A. Sangiacomo C.
(3)
216
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
y las funciones ui (P) , i=1, 2, …, Llegamos n, satisfacen las condiciones de ecuaciones frontera homogéneas ∂h =0, ∂ c1 R[ui ] = 0 , para i=1, 2, …, n. (4)
al
sistema
∂h = 0, ∂ c2
…,
de
∂h =0, ∂ cn
y a partir del cual podemos Ahora a partir de esta funciones, determinar las constantes ci , i=1, formemos la combinación lineal 2, …, n, en la ecuación (5). Por lo tanto el problema n u ( P, c1 , c2 ,..., cn ) = u0 ( P ) + ∑ ci ui ( P ) . variacional (1) y (2) se i =1 transforma aproximadamente en (5) la determinación de un extremo Aplicando las condiciones de de la función h(c1 , c2 ,..., cn ) de varias variables. La exactitud de frontera (contorno) (3), resulta n la aproximación crece, en R[u ] = R[u0 ] + ∑ ci 0 = φ ( P) , general, al aumentar el número i =1 de las variables en la función h. es decir, u ∈ K y c1 , c2 ,..., cn constantes cualesquiera. La solución aproximada del 7.6.1. Método de Ritz para el problema variacional (1) y (2) la Problema de la Condiciones de buscamos ahora en la ecuación Frontera Simple (5). Con este fin, sustituimos u ( P, c1 , c2 ,..., cn ) en el funcional Sea dada la ecuación diferencial lineal (1). Así nos resulta F [u ] = h(c1 , c2 ,..., cn ) , (6) d dx
[ p ( x) y′] + q ( x) y = f ( x)
(1)
donde h es una función conocida, que depende de las n parámetros con la condiciones de frontera c1 , c2 ,..., cn . Buscando ahora los (contorno) más simples coeficientes c1 , c2 ,..., cn de forma y (a ) = A , y (b) = B , (2) F [u ] tome un mínimo. que F. Antoine S.
A. Sangiacomo C.
217
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
p , q y f ∈ C[ a , b ] siendo y p > 0 para a ≤ x ≤ b . De las condiciones de frontera α1 = 0 , completas se tiene β1 = 0 y nos queda el problema variacional más simple que es el funcional
Busquemos una solución para este problema variacional como una combinación lineal de la forma n
y ( x) = u0 ( x) + ∑ ci ui ( x) ,
(4)
i =1
donde ci , i=1, 2, …, n, son por definir. (3) parámetros Evidentemente, la función K = { y ( x)} de definida mediante la combinación en la clase (4) satisface las funciones y que pertenecen a la lineal clase C 2 [a, b] y satisfacen las condiciones de frontera, es decir, se cumple que condicionas de frontera (2). F[ y] = ∫
b
a
[ p( x) y ′2 − q( x) y 2 + 2 f ( x) y ]dx ,
Para la solución del problema variacional (3) y (2) empleamos el método de Ritz. Para tal efecto, elegimos un sistema de funciones linealmente independientes (funciones coordinantes) u0 ( x) , u1 ( x) , …, u n (x) , u0 (a) = A , que u0 (b) = B y las funciones restantes ui (x) , i > 0 , satisfagan las condiciones de frontera (contorno) homogéneas, es decir, que se cumple
de
forma
y ( a ) = A , y (b) = B . Elijamos ahora los coeficientes c1 , c2 ,..., cn de tal manera que la función y (x) proporcione un extremo al funcional (3). Si sustituimos la expresión (4) en (3), entonces, obtenemos b⎧ ⎪
2
n ⎡ ⎤ − q( x) ⎢u0 ( x) + ∑ ci ui ( x)⎥ i =1 ⎣⎢ ⎦⎥
2
n ⎡ ⎤ F [ y ] = ∫ ⎨ p( x) ⎢u0′ ( x) + ∑ ci ui′ ( x)⎥ a⎪ i =1 ⎣⎢ ⎦⎥ ⎩
n ⎤ ⎫⎪ ⎡ + 2 f ( x) ⎢u0 ( x) + ∑ ci ui ( x)⎥ ⎬dx ⎥⎦ ⎪⎭ ⎢⎣ i =1
= g (c1 , c2 ,..., cn ) .
ui (a ) = ui (b) = 0 , para i=1, 2, …, n. F. Antoine S.
A. Sangiacomo C.
218
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
g (c1 , c2 ,..., cn ) Siendo una función de segundo orden de los c1 , c2 ,..., cn . En parámetros condición precisa para el caso de un extremo de la función derivable g (c1 , c2 ,..., cn ) , que se cumplan las ecuaciones siguientes ∂g ∂g ∂g = 0, = 0 ,…, = 0. ∂ c1 ∂ c2 ∂ cn
(5)
El sistema de ecuaciones (5) es, lineal respecto a los coeficientes (parámetros) buscados c1 , c2 ,..., cn . El número de ecuaciones es igual al número de incógnitas. Cuando (5) tiene solución, la determinemos a partir de los coeficientes ci , i=1, 2, …, n. Según eso obtenemos la solución al problema variacional y, como consecuencia, la solución del problema de las condiciones de frontera por medio de la fórmula (4). La evaluación del error para el método de Ritz es relativamente difícil, de forma que renunciamos a profundizar en este tema aquí. Digamos únicamente que la exactitud de la solución depende del alto grado de la elección adecuada de las funciones F. Antoine S.
coordinantes y crece, en general, al aumentar su número. 7.6.2. Ejemplo Resolver la ecuación diferencial y ' '+ (1 + x 2 ) y + 1 = 0 .
Con las condiciones de frontera y (−1) = y (1) = 0 .
Solución: Como funciones coordinantes { ui ( x)} , elijamos polinomios en x 2 que satisfacen las condiciones
de frontera homogéneas u 0 ( x) = 0 , u1 ( x) = 1 − x 2 ,
u 2 ( x) = 1 − x 4 ,
…………… u n ( x) = 1 − x 2n .
Para dar un procedimiento ilustrativo y simplificar las operaciones, tomemos únicamente tres funciones coordinantes, es decir, busquemos la función y = y (x ) en forma de suma A. Sangiacomo C.
219
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
y = c1 (1 − x 2 ) + c2 (1 − x 4 ) .
(6)
Para la ecuación diferencial en cuestión en la que se cumple que
4 1⎞ ⎛ 38 = 8⎜ c1 + c 2 − ⎟ , 9 3⎠ ⎝ 105
{
1 ∂F = ∫ 8 x 3 (2c1 + 4c2 x 3 ) -1 ∂ c2
− 2(1 + x 2 )(1 − x 4 )[c1 (1 − x 2 )
p ( x) = 1 , q( x) = 1 + x 2 , f ( x) = −1 ,
}
+ c2 (1 − x 4 )] − 2(1 − x 4 ) dx 2488 2⎞ ⎛4 c2 − ⎟ , = 8⎜ c1 + 3465 5⎠ ⎝9
es evidente que es autoadjunta. Formemos el funcional Igualando a cero para obtener un correspondiente óptimo (mínimo), entonces resulta el sistema de ecuaciones F[ y] = ∫
1
[ y ′ 2 − (1 + x 2 ) y 2 − 2 y ]dx .
-1
Si sustituimos aquí y por la expresión (6), obtenemos entonces F[ y] = ∫
1 -1
{(2c x + 4c x ) 3
1
2
2
− (1 + x 2 )[c1 (1 − x 2 ) + c2 (1 − x 4 )]2
}
− 2[c1 (1 − x ) + c2 (1 − x )] dx . 2
4
38 4 1 c1 + c2 = , 105 9 3 4 2488 2 c1 + c2 = , 9 3465 5
y con este sistema se tiene la solución c1 = 0.988 y c2 = −0.054 .
Si sustituimos los valores Las derivadas parciales con averiguados c1 y c2 en la respecto a c1 y c2 la calculamos fórmula (6), nos resulta la así solución aproximada buscada
{
1 ∂F = ∫ 4 x(2c1 x + 4c2 x 3 ) -1 ∂ c1
y = 0.934 − 0.988 x 2 + 0.054 x 4 .
(7)
− (1 + x 2 )2(1 − x 2 )[c1 (1 − x 2 )
}
+ c2 (1 − x 4 )] − 2(1 − x 2 ) dx Figura 4 F. Antoine S.
A. Sangiacomo C.
220
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
Problema Resolver la EDO y ' '+ y = 3 x 2 ; con puntos frontera (0, 0) hasta (2, 3.5) . Usando la s funciones: u 0 ( x ) = 74x , u1 ( x) = x(2 − x) , u 2 ( x ) = x 2 ( 2 − x ) ; u3 ( x ) = x 3 ( 2 − x ) .
⎡1.6000 1.6000 1.9810 ⎤ ⎡c1 ⎤ ⎡- 2.4667⎤ ⎢1.6000 3.0476 4.8763⎥ ⎢c ⎥ = ⎢- 3.6000 ⎥ ⎢ ⎥⎢ 2 ⎥ ⎢ ⎥ ⎣⎢1.9810 4.8763 8.9401⎦⎥ ⎣⎢c3 ⎦⎥ ⎣⎢- 5.4094 ⎦⎥
Solución de Ac=b C[1] = -0.855890 C[2] = -0.527986 C[3] = -0.127442 y = 7*x/4+(-0.85589)*(x*(2-x))+(-0.52799)*(x^2*(2x))+(-0.12744)*(x^3*(2-x)) O también y = 74x − 0.85589(2 x − x 2 ) − 0.52799(2 x 2 − x 3 + 0.12744(2 x 3 − x 4 )
Solución:
Figura 6. Figura 5. p(x) = 1 ; q(x) = 1 ; r(x) = 3x 2 . derivada u0 ' = 7 / 4 derivada u1 ' = (2 − x) − x derivada
u 2 ' = 2 * x * (2 − x) − x ^ 2
derivada u 2 ' = 3 * x ^ 2 * (2 − x) − x ^3 . A[1,1] = ((2-x)-x)*((2-x)-x)-(x*(2-x))*(x*(2-x)); Integral de [1,1] = 1.59999593098958 A[1,2] = ((2-x)-x)*(2*x*(2-x)-x^2)-(x*(2-x))*(x^2*(2-x)); Integral de [1,2] = 1.59999593098958 A[1,3] = ((2-x)-x)*(3*x^2*(2-x)-x^3)-(x*(2-x))*x^3*(2-x); Integral de [1,3] = 1.98096871376038 b[1] = -(3*x^2)*(x*(2-x))-((2-x)-x)*7/4+7*x/4*x*(2-x); Integral de [1] = -2.46665445963542 A[2,1] = (2*x*(2-x)-x^2)*((2-x)-x)-(x^2*(2-x))*x*(2-x): Integral de [2,1] = 1.59999593098958 A[2,2] = (2*x*(2-x)-x^2)*(2*x*(2-x)-x^2)-(x^2*(2x))*(x^2 *(2-x)); Integral de [2,2] = 3.04763944943746 A[2,3] = (2*x*(2-x)-x^2)*(3*x^2*(2-x)-x^3)-(x^2*(2-x)) *(x^3*(2-x)); Integral de [2,3] = 4.87625575065613 b[2] = -(3*x^2)*(x^2*(2-x))-(2*x*(2-x)-x^2)*(7/4)+(7*x/4) *(x^2*(2-x)); Integral de [2] = -3.59997049967448 A[3,1] = (3*x^2*(2-x)-x^3)*((2-x)-x)-(x^3*(2-x))*(x*(2x)) Integral de [3,1] = 1.98096871376038 A[3,2] = (3*x^2*(2-x)-x^3)*(2*x*(2-x)-x^2)-(x^3*(2-x)) *(x^2*(2-x)); Integral de [3,2] = 4.87625575065613 A[3,3] = (3*x^2*(2-x)-x^3)*(3*x^2*(2-x)-x^3)-(x^3*(2-x)) *(x^3*(2-x)); Integral de [3,3] = 8.94005673596015 b[3] = -(3*x^2)*(x^3*(2-x))-(3*x^2*(2-x)-x^3)*(7/4) +(7*x/4)*(x^3*(2-x)); Integral de [3]= 5.40942327181498 Matriz de coeficientes Ci o sea Ac=b:
F. Antoine S.
Nota: Las integración numérica se hizo por el método de Simpson
7.6.3. Aplicaciones del Método de Ritz para la Solución de Problemas de Condiciones de Frontera de Sturm Liouville Sea la ecuación diferencial autoadjunta homogénea [ p ( x) y′]′ + [q ( x) + λg ( x)] y = 0 ,
(1)
con las condiciones de frontera (contorno) homogéneas α 0 y (a ) + α1 y′( a ) = 0 , β 0 y (a ) + β1 y ′(a ) = 0 .
(2)
Donde tenemos que: p ( x) > 0 , α 0 + α1 ≠ 0 ,
β 0 + β1 ≠ 0 .
A. Sangiacomo C.
221
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
Además p (x) , q(x) , g (x) son funciones continuas y λ un parámetro. Evidentemente la función y = 0 es una solución trivial de ecuación diferencial (1) que satisface las condiciones de frontera (2). Nosotros, nos interesamos por las soluciones no triviales del problema de las condiciones de frontera (1) y (2). La determinación de la soluciones no triviales de la ecuación diferencial (1) que satisfacen las condiciones de frontera homogéneas (2) es el problema de Sturm Liouville. Este problema se presenta a menudo en las ecuaciones diferenciales de la física matemática. A los valores del parámetro λ, para los cuales existen soluciones no triviales del problema (1) y (2), se les conoce como autovalores del problema de Sturm Liouville. Las soluciones no triviales correspondientes a ellos se les llaman autofunciones o autosoluciones de este problema. Limitémonos aquí a la ecuación diferencial (1) con la condiciones de frontera más sencillas
y ( a ) = 0 , y (b) = 0 ,
y señalemos cómo se resuelve de forma aproximada con ayuda del método de Ritz el problema de Sturm Liouville. Con este fin, formemos para la ecuación diferencial (1), como ya se hizo anteriormente, el funcional correspondiente F[ y] = ∫
b a
{ p ( x) y ′ 2 − [q ( x) + λ g ( x)] y 2 } dx ,
(4)
y
busquemos la función y = y ( x, λ ) para que minimice a este funcional, además, cumpla las condiciones
y ( a, λ ) = 0 ,
y (b , λ ) = 0 .
Aquellos valores del parámetro λ, para los cuales nuestro problema variacional tiene una solución no trivial, son los autovalores del problema de Sturm Liouville considerado. Representemos la función buscada y por una aproximación en una combinación lineal de la forma n
y = ∑ ci ui ( x) , i =1
F. Antoine S.
(3)
A. Sangiacomo C.
(5)
222
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
autovalores de nuestro problema de las funciones coordinantes, de las condiciones de frontera con (contorno) la ecuación algebraica de grado n ui (a) = ui (b) = 0 , para i=1, 2, …, n. Δ (λ ) = 0 , (7) En virtud de la homogeneidad de este problema, pongamos es la ecuación característica o u0 ( x) = 0 . Si introducimos la ecuación de frecuencias del expresión (5) en la integral (4), problema de Sturm Liouville. Si la ecuación obtenemos entonces, después de resolvemos característica (7), tendremos los n hacer operaciones sencillas primeros autovalores λ1 , λ2 , ..., λn . F [ y ] = h(c1 , c2 , ..., cn , λ ) , Para hallar los valores de los coeficientes c1 , c2 , ..., cn se tiene donde h es una función de que sustituir cada uno los segundo orden en las variables autovalores λi ya determinados c1 , c2 , ..., cn . en el sistema de ecuaciones (6), Los coeficientes c1 , c2 , ..., cn los del cual pueden determinarse encontramos a partir de las entonces las soluciones no condiciones necesarias para un triviales. Las autofunciones extremo de la función h: y = y ( x, λ j ) , para j=1, 2, …, n, ∂h ∂h ∂h =0, = 0 ,…, =0. ∂ c1 ∂ c2 ∂ cn
(6)
El sistema de ecuaciones homogéneas (6) tiene entonces, y sólo entonces, una solución no trivial, si el determinante del sistema Δ(λ ) , que evidentemente es una función del parámetro λ, es cero. Por tanto obtenemos para la determinante de los F. Antoine S.
las determinamos por la fórmula (5), en donde los coeficiente ci , con i=1, 2, …, n, son sustituidos por los valores determinados anteriormente. Observemos que por medio del método de Ritz pueden determinarse únicamente unos cuantos autovalores del problema de Sturm Liouville, y éstos sólo A. Sangiacomo C.
223
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
de forma aproximada. En general, tales problemas tienen, infinitos autovalores. Para el método Ritz puede decirse en general que cuanto mayor es el número de funciones coordinantes utilizadas, más autovalores del problema de condiciones de frontera podemos averiguar y mayor será la exactitud de las operaciones.
Teniendo en cuenta las condiciones de frontera, podemos elegir, por ejemplo, las funciones coordinantes siguientes u1 ( x) = x(1 − x) , u2 ( x) = x 2 (1 − x) .
Pongámoslas en (5) y tenemos 2
y = ∑ ci ui ( x) = c1 x(1 − x) + c2 x 2 (1 − x) i =1
(11)
7.6.4. Ejemplo Por medio del método de Ritz, determinar los primeros autovalores y las dos primeras autofunciones del problema de Sturm Liouville para la ecuación diferencial
y ' '+ λ y = 0 , siendo las frontera
condiciones
y (0) = y (1) = 0 .
(8)
F. Antoine S.
− λ[c1 x(1 − x) + c2 x 2 (1 − x)]2 } dx .
de Ahora derivando con respecto a los parámetros c1 y c2 , resulta (9)
1
0
1
F [ y ] = ∫ {[c1 (1 − 2 x) + c2 (2 x − 3x 2 )]2 0
Solución: Usando la fórmula (4) para esta ecuación diferencial nos queda el funcional F [ y ] = ∫ { y′2 − λ y 2 } dx .
en donde c1 y c2 son coeficientes constantes y particularmente c1 ⋅ c2 ≠ 0 . Si sustituimos la expresión (11) en (10), obtenemos
(10)
1 ∂F = 2∫ {(1 − 2 x)[c1 (1 − 2 x) + c2 (2 x − 3x 2 )] 0 ∂ c1
− λx(1 − x)[c1 x(1 − x) + c2 x 2 (1 − x)]} dx 1 ⎞ 1 ⎞ ⎛1 ⎛ 1 = ⎜ c1 + c2 ⎟ − λ ⎜ c1 + c2 ⎟ 6 ⎠ 60 ⎠ ⎝3 ⎝ 30 1 ∂F = 2 ∫ {(2 x − 3x 2 )[c1 (1 − 2 x) + c2 (2 x − 3x 2 )] 0 ∂ c2
− λx 2 (1 − x)[c1 x(1 − x) + c2 x 2 (1 − x)]} dx A. Sangiacomo C.
224
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
2 ⎞ 1 ⎛1 ⎛ 1 ⎞ = ⎜ c1 + c2 ⎟ − λ ⎜ c1 + c2 ⎟ 15 ⎠ 105 ⎠ ⎝6 ⎝ 60
Determinemos ahora los coeficientes c1 y c2 a partir del Para conseguir los óptimos sistema de ecuaciones (12). Para hagamos las derivadas parciales el valor de λ = λ1 = 10 se obtiene igual acero c1 = c y c2 = 0 . Resultando la primera 1 ⎞ 1 ⎞ ⎛1 ⎛ 1 ⎜ c1 + c2 ⎟ − λ ⎜ c1 + c2 ⎟ = 0 autofunción de nuestro problema 6 ⎠ 60 ⎠ ⎝3 ⎝ 30 de las condiciones de frontera, 2 ⎞ 1 ⎛1 ⎛ 1 ⎞ c2 ⎟ = 0 ⎜ c1 + c2 ⎟ − λ ⎜ c1 + según la fórmula (11) 15 ⎠ 105 ⎠ ⎝6 ⎝ 60 o y1 = cx(1 − x) , para c ≠ 0 . 1 ⎞⎛ λ⎞ ⎛1 ⎜ c1 + c2 ⎟⎜1 − ⎟ = 0 , ⎝3
6
⎠⎝
10 ⎠
1 ⎛ λ⎞ 2 ⎛ λ⎞ c1 ⎜1 − ⎟ + c2 ⎜1 − ⎟ = 0 6 ⎝ 10 ⎠ 15 ⎝ 14 ⎠
(12)
2c1 + c2 = 0 ,
resultando
− 16c1 − 8c2 = 0 .
λ⎞ ⎛ λ⎞ ⎛ 2⎜1 − ⎟ ⎜1 − ⎟ ⎝ 10 ⎠ ⎝ 10 ⎠ = 0 , λ⎞ ⎛ λ⎞ ⎛ 5⎜1 − ⎟ 4⎜1 − ⎟ ⎝ 10 ⎠ ⎝ 14 ⎠
simplificando determinante,
Ahora usamos el otro valor λ = λ2 = 42 , obtenemos
al
efectuar
λ ⎞⎛ λ⎞ ⎛ ⎜1 − ⎟⎜ 3 − ⎟ = 0 . ⎝ 10 ⎠⎝ 14 ⎠
De ahí resulta el
(13)
c1 = c ,
c 2 = −2 c .
Introduciendo estos últimos valores en (11) nos queda la segunda autofunción y2 = c( x − 3x 2 + 2 x 3 ) , c ≠ 0 .
Obtenemos las aproximaciones para los dos primeros autovalores De este problema particular, del problema conocemos su solución exacta λ1 = 10 , λ2 = 42 . (14) F. Antoine S.
A. Sangiacomo C.
225
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
donde sus autovalores son dados u Γ = f ( x, y ) . (2) por λn = π 2 n 2 , para n=1, 2, …, Sea Γ una curva cerrada sencilla que delimite un dominio acotado y las autofunciones se determinan y f ( x, y ) una función continua en por la fórmula Γ. Según lo visto anteriormente este problema de las condiciones yn = c ⋅ sin (π n x ) , de frontera es equivalente al para n=1, 2, …, problema variacional para el funcional siendo c ≠ 0 . En particular cuando ⎡⎛ ∂ u ⎞ 2 ⎛ ∂ u ⎞ 2 ⎤ ⎟⎟ ⎥ dxdy , F [u ] = ∫∫ ⎢⎜ (3) ⎟ + ⎜⎜ n = 1 se tiene ⎢⎝ ∂ x ⎠ ⎝ ∂ y ⎠ ⎥ G
λ1 = π 2 = 9.87 ,
⎣
⎦
y
en la clase K de funciones y ∈ C 2 , en el dominio G + Γ cerrado, las cuales satisfacen en Como deja ver el error relativo es 6.4% la frontera Γ la condición de 1.3% de y del frontera (2). Construyamos ahora respectivamente. el sistema de funciones linealmente independientes 7.6.5. Método de Ritz para el (funciones coordinantes) Problema de Dirichlet u0 ( x, y ) , u1 ( x, y ) , …, u n ( x, y ) ∈ C 2 (G + Γ) Determinemos ahora una solución de la ecuación diferencial de Laplace de forma que se cumpla λ2 = 4π 2 = 39.48 .
Δu = 0 , para ( x, y ) ∈ G ,
(1)
u 0 ( x, y ) Γ = f ( x, y ) ,
u ( x, y ) Γ = 0 , que satisfaga la condición de i para i=1, 2, …, n. contorno
La combinación lineal F. Antoine S.
A. Sangiacomo C.
226
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
n
φ ( x, y ) = u0 ( x, y ) + ∑ ci ui ( x, y ) , (4)
⎛ n ∂ ui ⎞ ∂ u j ⎤ ⎟ + ⎜⎜ ∑ ci ⎟ ∂ y ⎥ dxdy = 0 ∂ y ⎥⎦ ⎝ i =0 ⎠
(6)
i =1
donde j=1, 2, …, n. para o de otra forma
pertenece entonces, constantes cualesquiera c1 , c2 , ..., cn , a la clase K de funciones admisibles. La fórmula (4) podemos escribirla en forma abreviada como sigue
[u0 , u1 ] + c1[u1 , u1 ] + ... + [u0 , u 2 ] + c1[u1 , u 2 ] + ... +
cn [un , u1 ] = 0, cn [un , u1 ] = 0,
... ... ... ... ... [u0 , un ] + c1[u1 , un ] + ... + cn [u n , u n ] = 0.
(6’)
donde se tiene que n
φ ( x, y ) = ∑ ci ui ( x, y ) , i =0
(4’)
donde c0 = 1 . Si introducimos la expresión (4’) en el funcional (3) obtenemos 2 2 ⎡⎛ n ⎞ ⎛ n ∂ ui ⎞ ⎤ u ∂ i ⎟ + ⎜ ∑ ci ⎟ ⎥ dxdy . F [φ ] = ∫∫ ⎢⎜⎜ ∑ ci ⎟ ⎜ ⎟ ⎥ ⎢ x y ∂ ∂ ⎠ ⎝ i =0 ⎠ ⎦ G ⎣⎝ i = 0
(5)
Determinemos ahora los coeficientes c1 , c2 , ..., cn para que el funcional F [φ ] tome un mínimo. A tal efecto, tiene que simplificarse las condiciones necesarias: ⎡⎛ n ∂ ui ⎞ ∂ u j ∂ ⎟ F [φ ] = 2 ∫∫ ⎢⎜⎜ ∑ ci ⎟ ∂x ∂ cj ∂ x ⎢ ⎠ G ⎣⎝ i = 0
F. Antoine S.
⎡ ∂ u ∂ u j ∂ ui ∂ u j ⎤ + [ui , u j ] = ∫∫ ⎢ i ⎥ dxdy ∂ ∂ ∂ ∂ x x y y ⎦ G ⎣
y se cumple que [ui , u j ] = [u j , ui ] .
(7)
A partir del sistema de ecuaciones lineales (6’) pueden determinarse ahora los coeficientes c1 , c2 , ..., cn . φ ( x, y ) con los La función coeficientes determinados a partir de (6’) representan una solución de aproximación del problema de las condiciones de frontera (contorno) de Dirichlet. La exactitud o error de aproximación depende de la elección de las funciones coordinantes uk ( x, y) y del número de ellas.
A. Sangiacomo C.
227
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
7.6.6. Ejemplo A partir de esas funciones, Determinar una función u ( x, y ) formamos la combinación lineal que, en el dominio x > 0 , y > 0 , x + y < 1 , sea armónica y en la φ ( x, y ) = x 2 + y 2 + c1 xy (1 − x − y ) frontera x = 0 , y = 0 . x + y = 1 , de + c2 x 2 y (1 − x − y ) + c3 xy 2 (1 − x − y ) . (9) ese dominio satisfaga la condición Puede probarse fácilmente que la u Γ = x2 + y2 . (8) función φ ( x, y ) satisface para valores cualesquiera de las constantes c1 , c2 , c3 la condición de contorno (8). Para el establecimiento del sistema de ecuaciones (6’), calculemos los coeficientes de las c1 , c2 , c3 y los incógnitas términos absolutos. Los resultados están resumidos en la tabla Figura 7. Solución: Elijamos el siguiente sistema de funciones coordinantes u 0 ( x, y ) = x 2 + y 2 ,
j 1 2 3
[u0 , u j ]
[u1 , u j ]
[u2 , u j ]
[u3 , u j ]
1 30 1 − 90 1 − 90
1 90 1 252 1 252
1 252 3 1120 1 70
1 252 1 70 3 1120
−
Tabla 1.
u1 ( x, y ) = xy (1 − x − y ) , u 2 ( x, y ) = x 2 y (1 − x − y ) ,
u3 ( x, y ) = xy (1 − x − y ) . 3
F. Antoine S.
De ahí obtenemos el sistema de ecuaciones lineales siguientes para determinar los coeficientes 1 1 1 1 c1 + c2 + c3 = 90 252 252 30
A. Sangiacomo C.
228
Capítulo 7
Método Numéricos para la Solución de Ecuaciones Diferenciales
1 3 1 1 c1 + c2 + c3 = 252 1120 70 90 1 1 3 1 c1 + c2 + c3 = 252 70 1120 90
Resolviendo el sistema , nos da c1 =
3031 ≈ 3.0401 , 997 56 c2 = c3 = − ≈ −0.0562 . 997
Si
sustituimos estos valores c1 , c2 , c3 en (9) la solución aproximada es: φ ( x, y ) = x 2 + y 2 +
−
3031 xy (1 − x − y ) 997
56 2 56 2 x y (1 − x − y ) − xy (1 − x − y ) 997 997
F. Antoine S.
A. Sangiacomo C.
229
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
= F = 1.46308814969555 1 Stress = Tensión = 21.6688786817538 APÉNDICE 2 Stress = Tensión = 28.4455581989223 3 Reacción = -26002.6544181045 A.1 Una aplicación directa del capítulo 4 para 4 Reacción = -25601.00237903 Elementos Finitos uni - dimensionales sería. Pero en Realidad en esta Solución Veamos la siguiente figura que También Necesitamos Desarrollos de corresponde a un problema que es real y Teoría y más Teoría para que sean que se presenta en Ingeniería Entendidos! (especialmente en Ingeniería Civil): Iniciamos un estudio comparativo de lo que conocemos nosotros y como es visto por parte de la ingeniería. Primero una EDO (Ecuación Diferencial Ordinaria) dada (se presenta así):
y ' '+b( x) y '+c( x) y = r ( x) Una barra rígida, está soportada por una La ponemos de la Forma Ritz (para efectos barra de acero (1 a 3) (elemento ) y una de de facilidad de cálculo [forma adjunta]): aluminio (2 a 4) (elemento ). Se aplica − ( p( x) y' )'+Q( x) y = f ( x) una carga P=30×103 N. Para una Solución u(x) dada; ponemos sus coeficientes p, Q y f en la Funcional (ya fue Acero (1) Aluminio (2) visto en el método de Ritz) [Capít. 4]: A=1200 mm2 A=900 mm2 1 E = 200×103 N/mm2 E=70×103 N/mm2 I [u ] = ∫ ( p( x)[u′( x)]2 0 l = 4.5m l = 3.0m + Q ( x)[u ( x)]2 − 2 f ( x)u ( x)) dx Cuyos resultados se consiguen por una simple corrida de un proceso de Ritz. Aquí para un mejor entendimiento lo pondremos en forma paralela a la realidad Basta un Planteamiento “¿?” y resolver (forma de entendimiento de los Ingenieros): sistema de matriz banda 1 DESPLAZAMIENTO = F = 0.487598525316494 2 DESPLAZAMIENTO = F = 1.21914335326184 3 DESPLAZAMIENTO = F = 4.875497703394E-5 4 DESPLAZAMIENTO = F = 4.800187946068E-5 5 DESPLAZAMIENTO F. Antoine S.
Energía de Π= deformación + unitaria
Potencial de trabajo
U
WP
+
o sea: 1
U = 12 ∫ ( p( x)[u′( x)]2 + Q( x)[u ( x)]2 )dx 0
A. Sangiacomo C.
230
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
por eso no sabe las aplicaciones” frase que debemos ya superar, el resto son presentaciones del álgebra lineal, multiplicación de vectores internamente.
1
WP = − ∫ f ( x)u ( x)dx 0
Pero, Nosotros los Matemáticos, aquí debemos ver que esto es también Real, Este resultado lo optimizamos por: pues la Energía Potencial la cinética y la ∂I [u ] ∂Π =0 o =0 acción y reacción están presentes, lo que ∂ci ∂qi falta es especificar:
La energía de deformación unitaria lineal Luego pasamos a construir la Matriz de Rigidez Global y el Vector de Carga, la es 12 σ T ∈ Matriz Banda: de ésta, la total: U =
∫
1 2 v
Estos, nuevamente son aspectos técnicos diríamos de la ingeniería, pero, son del álgebra lineal.
σ T ∈ dV
El potencial de trabajo WP dado por (aquí Matriz de rigidez local para el elemento e: se debe entender que se tiene las fuerzas ⎡ 1 − 1⎤ 1 1 q o U e = qT k e q de carga, tracción, pesos puntuales que se U e = qT c e ⎢ ⎥ 2 2 ⎣− 1 1 ⎦ presentan en un módulo real de trabajo): WP = − ∫ uT fdV − ∫ uT TdS − ∑ u i T Pi v s E A e i Con : c = e e le Uniendo tenemos: Vector de carga: Π = 12 ∫ σ T ∈ dV − ∫ uT fdV WPe = qT f e + qT T e v v
−∫
s
uT TdS − ∑ uiT Pi i
Comparando para U: 1 2
1
∫ 0 ( p( x)[u′( x)]
2
Ee Ae f 2
⎡1⎤ e Tle ⎡1⎤ ⎢1⎥ y T = 2 ⎢1⎥ ⎣⎦ ⎣⎦
Para asociar cada Elemento basta la:
+ Q( x)[u ( x)]2 )dx =
∫
1 2 v
σ T ∈ dV
Y para WP:
TABLA DE CONECTIVIDAD Elemento Nro 1 2
1
− ∫ f ( x)u ( x)dx = − ∫ uT fdV 0
donde: f e =
Nodo 1 Nodo 2 3 1 4
2
v
− ∫ uT TdS − ∑ u i T Pi s
i
Para el elemento (1) del problema 1 de arriba y aplicando los datos:
Esta comparación se debe tomar con pinzas pues sucede siempre sólo que aveces no estamos enterados, y por esa desinformación se tiene problemas grabes como matemáticos, sale una frase “es matemáticos! F. Antoine S.
A. Sangiacomo C.
231
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
[como si superpondrían los valores y una matriz sobre la otra] Para todos los NODOS se tiene la matriz global incompleta: 1
3 k1 =
1
3
E1 A1 ⎡ 1 − 1⎤ 200 × 10 × 1200 ⎡ 1 ⎢− 1 ⎢ ⎥= 4500 l1 ⎣− 1 1 ⎦ ⎣ 3
k1 =
3
4
0 − 53.33 0 ⎡ 53.33 ⎢ 0 − 21 0 21 ⎢ 3 K = 10 ⎢− 53.33 0 53.33 0 ⎢ 1 − 21 0 21 ⎢ 0 − 1⎤ 3 ⎢⎣ 0 0 0 0
1 ⎥⎦ 1
Y por los nodos que intervienen se tiene: 3
2
1
5 0⎤ 1 0⎥⎥ 2 0⎥ 3 ⎥ 0⎥ 4 0⎥⎦ 5
Para Completar se considera condiciones de frontera teniendo:
las
⎡ 1 0 − 1⎤ 3 200 × 10 3 × 1200 ⎢ 0 0 0 ⎥⎥ ⎢ 4500 ⎢⎣− 1 0 1 ⎥⎦ 1
Y para el Elemento (2) se tiene: 4 k2 =
2
4
2
E 2 A2 ⎡ 1 − 1⎤ 70 × 10 3 × 900 ⎡ 1 − 1⎤ 4 ⎢ ⎥= ⎢− 1 1 ⎥ 2 l 2 ⎣− 1 1 ⎦ 3000 ⎣ ⎦
Y tomando en cuenta los nodos se tiene:
β1Q p1 + β 2Q p 2 = β 0
esto origina la matriz de restricciones la cual se debe acoplar a la matriz de rigidez: ⎡ 1 0 − 1⎤ 4 3 ⎡ Cβ12 70 × 10 × 900 ⎢ Cβ1 β 2 ⎤ ⎥ k2 = 0 0 0 ⎢ ⎥ ⎢ ⎥ 3000 Cβ 22 ⎦⎥ ⎣⎢Cβ1 β 2 ⎣⎢− 1 0 1 ⎦⎥ 2 la cual usaremos con la proporcionalidad que Para K global se superponen los K1 y K2 se tenga. Así: La barra de la figura hace fuerza de carga ⎡ 21 0 − 21⎤ proporcional a los puntos de aplicación x, 1, ⎡ 53.33 0 − 53.33⎤ 3⎢ y ⎥ 3⎢ 10 ⎢ 0 0 0 ⎥⎥ 2, 5, los cuales tienen sus respectivas 10 ⎢ 0 0 0 ⎥ ⎢⎣− 21 0 21 ⎥⎦ distancias, aplicando la proporcionalidad que ⎢⎣− 53.33 0 53.33 ⎥⎦ allí existe se tiene: 4
2
y ello alegóricamente se vería algo así:
⎡ 53.33 0 − 53.33⎤ 103 ⎢⎢ 0 ⎡ 21 0 00 −⎥⎥21⎤ ⎢ 00 53 ⎢⎣−10 533.33 0 .33 ⎥⎦0 ⎥
⎢ ⎢⎣− 21 0
F. Antoine S.
⎥ 21 ⎥⎦ A. Sangiacomo C.
232
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
1 Stress = Tensión = 21.6688786817538 2 Stress = Tensión = 28.4455581989223 3 Reacción = -26002.6544181045 4 Reacción = -25601.00237903 Una figura podría ser:
de donde se tiene el planteamiento siguiente: Q1 2 esto origina Q1 − 13 Q5 = 0 = Q5 6 y Q2 5 = esto origina Q2 − 56 Q5 = 0 Q5 6 1
5
⎡ 53.33 − 17.77⎤ 1 10 7 ⎢ ⎥ ⎣− 17.77 5.9259 ⎦ 5 2
y
5
⎡ 53.33 − 44.44⎤ 2 10 7 ⎢ ⎥ ⎣− 44.44 37.037 ⎦ 5
Hace un instante arriba se mencionó el método de Galerkin para la solución de problemas de elementos finitos en algunos casos, yo diría muchos, la exposición está en capítulo 4. Caso Real
Y agregando F (vector de carga) por fin Para el caso real con el planteamiento de obtenemos: arriba de Galerkin tomaremos un problema de armaduras. 0 − 53.33 0 ⎡ 533386.7 ⎢ 0 533354.3 0 − 21 ⎢ 103 ⎢− 53.33 0 533386.7 0 ⎢ − 21 0 533354.3 ⎢ 0 0 0 ⎣⎢− 177777.7 − 444444.4
177777.7 ⎤ ⎡Q1 ⎤ ⎡ 0⎤ − 444444.4⎥⎥ ⎢⎢Q2 ⎥⎥ ⎢⎢ 0 ⎥⎥ ⎥ ⎢Q3 ⎥ = ⎢ 0 0⎥ ⎥⎢ ⎥ ⎢ ⎥ 0 0⎥ ⎥ ⎢Q4 ⎥ ⎢ 429629.6 ⎦⎥ ⎣⎢Q5 ⎦⎥ ⎣⎢30000⎦⎥
KQ = F
La idea es como calcular, en lo que se ve a simple vista, un puente como el de la figura donde los elementos son los párantes travesaños y puntales inclinados, como se nuestra en la figura.
Que es un Sistema Lineal de N×N. K es matriz N×N, Q es N×1 y F es N×1
Cuya solución es: 1 DESPLAZAMIENTO = F = 0.487598525316494 2 DESPLAZAMIENTO = F = 1.21914335326184 3 DESPLAZAMIENTO = F = 4.875497703394E-5 4 DESPLAZAMIENTO = F = 4.800187946068E-5 5 DESPLAZAMIENTO = F = 1.46308814969555 F. Antoine S.
para el caso de un párante inclinado se tiene la siguientes disposición:
A. Sangiacomo C.
233
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
entonces tenemos:
Par un desplazamiento virtual: φ = φ (x) dφ y la deformación unitaria: ∈ (φ ) = dx La forma de Galerkin considerado aquí es:
∫Lσ
T
∈ (φ ) Adx − ∫ φ T fAdx L
− ∫ φ T Tdx − ∑ φ iPi = 0
q ' = Lq
Con matriz L de transformación: ⎡l m 0 0 ⎤ L=⎢ ⎥. ⎣0 0 l m ⎦ Con Ke Usando la matriz k anterior se tiene: E A ⎡ 1 − 1⎤ k= e e⎢ ⎥ le ⎣ − 1 1 ⎦
1 T q' k ' q' , 2 y usando L de arriba y q ' = Lq obtenemos: sobre la región discretizada, la ecuación 1 anterior toma la forma: U e = qT [ LT k ' L]q 2 ∑ ∫ L σ T ∈ (φ ) Adx − ∑ ∫ L φ T fAdx 1 e e y simplificando: U e = q T kq 2 − ∑ ∫ φ T Tdx − ∑ φ iPi = 0 T L donde se a tomado k = [ L k ' L] ; o e i con interpolación de las ecuaciones ⎡ l2 lm − l 2 − lm ⎤ ⎢ φ = Nψ ; ∈ φ = Bψ 2 2⎥ L
i
Ue =
ke =
La disposición anterior debe tratarse para un sistema de coordenadas local y luego pasar al Global con: Coordenada local:
Ee Ae ⎢ lm m le ⎢− l 2 − lm ⎢ 2 ⎣⎢− lm − m
− lm − m ⎥ l2 lm ⎥ ⎥ lm m 2 ⎦⎥
Veamos el siguiente Problema que se presenta muy a menudo y que ilustra a cuerpo entero ello:
q' = [q'1 q '2 ]T Coordenada Global:
q = [q1 q2 q3 q4 ]T y cuya relación es dada por: q'1 = q1 cos(θ ) + q2 sin(θ ) ; q'2 = q3 cos(θ ) + q4 sin(θ ) que son los cosenos directores
l = cos(θ ) , m = cos(φ ) , cos(φ ) = sin(θ ) , F. Antoine S.
para resolverlo haremos: Cuya tabla de Conectividad es dada por: A. Sangiacomo C.
234
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
1
Elemento 1 2 3 4
1 1 3 1 4
2 2 2 3 3
2
3
1 1 ⎡ k11 k12 ⎢ 1 1 k k 22 k 1 = ⎢ 21 ⎢k1 k1 32 ⎢ 31 1 1 k k ⎣⎢ 41 42
4 1 ⎤1 k14 1 ⎥2 k 24 ⎥ 1 ⎥3 k34 ⎥ 1 4 k 44 ⎦⎥
1 k13 1 k 23 1 k33 1 k 43
Elemento 2: 5
6
3 4
⎡0 0 ⎢ 1 29.5(10 ) ⎢0 k2 = ⎢0 0 30 ⎢ ⎣0 − 1
0 0⎤ 5 0 − 1⎥⎥ 6 0 0⎥ 3 ⎥ 0 1⎦ 4
6
5
Matriz de valores de los cosenos directores es dada por: Elemento le l m 1 40 1 0 2 30 0 − 1 3 50 0.8 0.6 4 40 1 0 Matriz de rigidez para: [por ejemplo] Elemento 1:
2 ⎡ k 55 ⎢ 2 k k 2 = ⎢ 65 ⎢k 2 ⎢ 35 2 ⎣⎢k 45
⎡ 1 ⎢ 1 29.5(10 ) ⎢ 0 k = ⎢− 1 40 ⎢ ⎣ 0 6
2
3 4
0 − 1 0⎤ 1 0 0 0⎥⎥ 2 0 1 0⎥ 3 ⎥ 0 0 0⎦ 4
considerada para el caso de armado de la matriz global se tendrá para las entradas, los N # de elemento k Nodo , para este caso será: Nodo 1
2
F. Antoine S.
3
2 k56 2 k 66 2 k36 2 k 46
2 k 53 2 k 63 2 k 33 2 k 43
4 2 ⎤5 k 54 2 ⎥6 k 64 ⎥ 2 ⎥3 k 34 ⎥ 2 4 k 44 ⎦⎥
Elemento 3: 1
2
5
6
0.48 − 0.64 − 0.48⎤ 1 ⎡ 0.64 ⎢ 0.48 0 .36 − 0.48 − 0.36 ⎥⎥ 2 29.5(10 ) ⎢ k3 = ⎢ − 0.64 − 0.48 0.64 0.48⎥ 5 50 ⎢ ⎥ 0.48 0.36⎦ 6 ⎣ − 0.48 − 0.36 6
1
1
6
2
5
3 3 ⎡ k11 k12 ⎢ 3 3 k k 22 k 3 = ⎢ 21 ⎢k 3 k 3 52 ⎢ 51 3 3 ⎢⎣ k 61 k 62
6
3 k15 3 k 25 3 k55 3 k 65
3 ⎤1 k16 3 ⎥2 k 26 ⎥ 3 ⎥5 k56 ⎥ 3 6 k 66 ⎥⎦
8
5 6
y también para el k4 Elemento 4: 7 ⎡ 1 ⎢ 29.5(10 ) ⎢ 0 k4 = ⎢− 1 40 ⎢ ⎣ 0 6
0 − 1 0⎤ 7 0 0 0⎥⎥ 8 0 1 0⎥ 5 ⎥ 0 0 0⎦ 6
A. Sangiacomo C.
235
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
7 4 ⎡k 77 ⎢ 4 k k 4 = ⎢ 87 ⎢k 4 ⎢ 57 4 ⎣⎢k 67
8
5
4 k 78 4 k88 4 k58 4 k 68
4 k 75 4 k85 4 k55 4 k 65
−3 ⎧Q3 ⎫ ⎧ 27.12(10 ) ⎫ ⎪ ⎪ ⎪ −3 ⎪ Q 5 . 65 ( 10 ) ⎬ pulgadas = ⎨ 5⎬ ⎨ ⎪Q ⎪ ⎪− 22.25(10 − 3 ) ⎪ ⎩ 6⎭ ⎩ ⎭
6 4 ⎤7 k 76 4 ⎥8 k86 ⎥ 4 ⎥5 k56 ⎥ 4 6 k 66 ⎦⎥
Q = [0, 0, 27.12(10 −3 ), 0, 5.65(10 −3 ), − 22.25(10 −3 ), 0, 0]T
Cuya Matriz de rigidez global es dada Una figura de esta solución podría ser: por: 1
2
1 3 1 3 ⎡ k11 + k11 k12 + k12 ⎢ 1 3 1 3 ⎢k 21 + k 21 k 22 + k 22 1 ⎢ k1 k32 31 ⎢ 1 1 k 42 ⎢ k 41 3 ⎢ k3 k52 51 ⎢ 3 3 ⎢ k 61 k 62 ⎢ 0 0 ⎢ ⎢⎣ 0 0
3
4
5
1 k13 k 123
1 k14 k 124
3 k15 3 k 25
6
1 2 k33 + k33 1 2 k 43 + k 43 2 k53 2 k 63 0 0
1 2 k34 + k34 1 2 k 44 + k 44 2 k54 2 k64 0 0
2 k35 2 k 45 2 3 4 k55 + k55 + k55 2 3 4 k65 + k 65 + k 65 4 k 75 4 k85
7
3 k16 3 k 26
2 k56 2 k 66
2 k36 2 k 46 3 4 + k56 + k56 3 4 + k 66 + k 66 4 k 76 4 k86
0 0 0 0 4 k57 4 k 67 4 k 77 4 k87
8 0 ⎤1 ⎥ 0 ⎥2 0 ⎥3 ⎥ 0 ⎥4 4 ⎥5 k58 ⎥ 4 6 ⎥ k 68 4 ⎥7 k 78 ⎥ 4 ⎥8 k88 ⎦
que son los elementos de la matrices Ke dispuestos en estricto orden y en las entradas respectivas. Representando en la maqueta es: Remplazando sus respectivos valores en las entradas nos resulta: 1
2
3
4
5
6
7
0 0 − 7.68 − 5.76 ⎡ 22.68 5.76 − 15.0 ⎢ 5.76 4 . 32 0 0 5 . 76 4 . 32 0 − − ⎢ ⎢ − 15.0 0 15.0 0 0 0 0 ⎢ 0 0 20.0 0 0 − 20.0 29.5(10 6 ) ⎢ 0 0 0 22.68 5.76 − 15.0 600 ⎢ − 7.68 − 5.76 ⎢ 0 0 − 20 5.76 24.32 ⎢ − 5.76 − 4.32 ⎢ 0 0 0 0 0 15.0 − 15.0 ⎢ 0 0 0 0 0 0 ⎢⎣ 0
8 0⎤ 1 0⎥⎥ 2 0⎥ 3 ⎥ 0⎥ 4 0⎥ 5 ⎥ 0⎥ 6 0⎥ 7 ⎥ 0⎥⎦ 8
----------------------------------------------------Después de aplicar las condiciones de frontera Q1 = Q2 = Q4 = Q7 = Q8 = 0 (o sea, los que no se mueven) se tiene: 0 0⎤ ⎧Q3 ⎫ ⎡ 20000⎤ ⎡15 29.5(10 6 ) ⎢ ⎪ ⎪ 0 22.68 5.76⎥⎥ ⎨Q5 ⎬ = ⎢⎢ 0⎥⎥ ⎢ 600 ⎪ ⎪ ⎣⎢ 0 5.76 24.32⎦⎥ ⎩Q6 ⎭ ⎣⎢− 25000⎦⎥
Como se ve es interesante. Y su solución es dada por:
F. Antoine S.
A. Sangiacomo C.
236
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
(3) + g1 ( x, y )u ( x, y ) = g 2 ( x, y ) finitos bi - dimensional aplicando donde θ1 y θ 2 son los ángulos direccionales de aproximaciones numérica la normal de la frontera que apunta hacia afuera en el punto ( x, y ) , como se puede observar en la Se complementa con el capítulo 4. figura a.1. B.1. Introducción al Método de Elementos
En los procesos en ingeniería que involucran ecuaciones diferenciales parciales para dar una solución aproximada frecuentemente se recurre al método de elementos finito. Este método se vio en el capítulo 4 y en el 7, aquí lo presentamos para dos dimensiones particularmente. La ventaja del método de elementos finitos sobre los métodos de diferencias finitas es la relativa facilidad con la que se manejan las condiciones de frontera del problema. Una variedad grande de problemas físicos de condiciones de frontera, tienen la frontera irregular y otros en estas condiciones contienen derivadas. La técnica de Figura a.1. diferencias finitas se vuelven engorrosas y difíciles, por el problema de que cada condición En muchos de los problemas físicos en las áreas de frontera con derivada debe aproximarse de mecánica de sólidos y elasticidad se presenta mediante cociente diferenciales en los puntos de ecuaciones diferenciales parciales similares a la la malla y las formas irregulares de la frontera ecuación (1). Para dar solución a un problema de hacen bastante difícil la elección de los puntos de este tipo consiste en la minimización de un cierto red. El método de elemento finito incluye las funcional que involucra integrales, sobre una condiciones de frontera como integrales en un clase de funciones determinadas por el problema. funcional que se debe minimizar, así que el Supongamos que p , q , r y f son todas procedimiento de construcción de la base es continuas en D ∪ G , que las primeras derivadas independiente de las condiciones de frontera parciales de p y q son continuas y que g1 y particulares del problema en cuestión. Consideraremos aquí la ecuación diferencial g 2 son continuas en G2 . Además supongamos parcial que p ( x, y ) > 0 , q ( x, y ) > 0 , r ( x, y ) ≤ 0 y
∂u ∂ ∂u ∂ g1 ( x, y ) > 0 . Entonces la solución de (1) ( p ( x, y ) )+ ( q ( x, y ) ) ∂y ∂x ∂x ∂y minimiza de manera única el funcional + r ( x, y )u ( x, y ) = f ( x, y ) , (1) 2 2 ⎛∂ w⎞ ⎛∂ w⎞ 1 ⎟⎟ con ( x, y ) ∈ D donde D es una región plana I [W ] = ∫∫ { [ p ( x, y )⎜ ⎟ + q( x, y )⎜⎜ 2 ∂ x y ∂ ⎠ ⎝ ⎝ ⎠ D con frontera G . 2 Las condiciones de frontera para este son de la − r ( x, y ) w ] + f ( x, y ) w}dxdy forma
+ ∫ {− g 2 ( x, y ) w + 12 g1 ( x, y ) w 2 }dS , (4) u ( x, y ) = g ( x , y ) , (2) G2 en una porción G1 de la frontera. En la parte sobre todas las funciones w , que satisfacen a la restante de la frontera G2 , se requiere que ecuación (2) en G1 , y que sean continuamente u ( x, y ) cumpla
p ( x, y )
∂u ∂u ⋅ cos(θ1 ) + q ( x, y ) ⋅ cos(θ 2 ) ∂x ∂y
F. Antoine S.
diferenciables dos veces. El método de elemento finito aproxima estas solución minimizando el funcional I sobre una clase menos de funciones,
A. Sangiacomo C.
237
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
de la misma manera que el método Ritz γ n +1 , γ n + 2 ,..., γ m se usan [par asegurar que se anteriormente. satisfaga la condición de frontera El primer paso en el procedimiento consiste en φ ( x , y ) = g ( x, y ) dividir la región en un número finito de secciones, o elementos, de forma regular, ya sean en G1 , mientras que el resto de las constantes rectángulos o, triángulos que son os que más se γ 1 , γ 2 ,..., γ m se usan para minimizar el acostumbran. m funcional I [
∑ γ iφi ] . i =1
Reemplazando en (4) el funcional es de la forma m
I [φ ] = I [∑ γ iφi ] i =1
= ∫∫
{ 12 [ p( x,
D
⎛ m ∂ φi ( x, y ) ⎞ ⎟ y )⎜⎜ ∑ γ i ⎟ x ∂ ⎠ ⎝ i =1
2
⎛ m ∂ φ i ( x, y ) ⎞ ⎟ + q( x, y )⎜ ∑ γ i ⎜ ⎟ ∂ y ⎝ i =1 ⎠
Figura a.2.
2
Un conjunto de funciones que se usa para el 2 ⎛m ⎞ tratamiento de aproximación es generalmente el − r ( x, y )⎜⎜ γ iφi ( x, y ) ⎟⎟ ] conjunto de polinomios segmentarios de grado ⎠ ⎝ i =1 fijo en x y y , para este proceso de m aproximación se debe pedir a los polinomios que + f ( x, y ) γ iφ i ( x, y )} dxdy unan de tal manera que la función resultante sea i =1 continua con primeras o segundas derivadas m continuas o integrables en la región entera. Los + {− g 2 ( x, y ) γ iφi ( x, y ) polinomios del tipo lineal en x y y , i =1 G2 φ ( x, y ) = a + bx + cy , 2 ⎛m ⎞ son usualmente par elementos triangulares 1 + 2 g1 ( x, y )⎜ γ iφi ( x, y ) ⎟ }dS . (5) mientras que los polinomios del tipo bilineal en ⎜ ⎟ ⎝ i =1 ⎠ x y y, Aquí tomamos como variables de I a los φ ( x, y ) = a + bx + cy + dxy , parámetros γ 1 , γ 2 ,..., γ n , y lo optimizamos para son para elementos rectangulares. Para resolver este problema, supongamos que la tener un mínimo o sea: ∂I región D ha sido dividida en elementos = 0 , para k = 1, 2, …, n. (6) triangulares. La colección de triángulos de denota ∂γk por T y los vértices de estos triángulos se llaman Derivando (5) nos resulta nodos. El método busca una aproximación de la m ∂ φ i ( x, y ) ∂ φ k ( x , y ) ∂I forma = {[ p ( x, y )∑ γ i ⋅
∑
∑
∑
∫
∑
m
φ ( x, y ) = ∑ γ iφi ( x, y ) , i =1
φ1 , φ 2 ,..., φ m son polinomios donde segmentarios de primer grado, linealmente independientes y γ 1 , γ 2 ,..., γ m son constantes. Algunas de estas constantes, digamos F. Antoine S.
∂γk
∫∫
i =1
D
m
+ q ( x, y ) ∑ γ i i =1 m
∂x
∂x
∂ φ i ( x, y ) ∂ φ k ( x, y ) ⋅ ∂y ∂y
− r ( x, y )∑ γ iφi ( x, y )φ k ( x, y )] i =1
A. Sangiacomo C.
238
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
+ f ( x, y ) φ k ( x, y )} dxdy
m
donde v = −
+ ∫ {− g 2 ( x, y )φ k ( x, y )
∑ α ik γ k ;
para cada i=1, 2, …, n.
k = n +1
La elección particular de las funciones de base es muy importante debido a que una apropiada m + g1 ( x, y ) γ iφi ( x, y )φ k ( x, y )}dS (6) elección puede hacer que la matriz A se definida positiva y en banda. Para nuestro problema (1) i =1 igualando a cero para cada k = 1, 2, …, n resulta que es de segundo orden, supondremos que D el m poligonal y que G1 es un conjunto continuo de ∂ φ ( x , y ) ∂ φ k ( x, y ) 0= [ { p ( x, y ) i ⋅ rectas, con lo que D = T . ∂x ∂x i =1 D Para empezar el procedimiento dividamos la ∂ φ ( x, y ) ∂ φ k ( x, y ) región T en una colección de triángulos + q ( x, y ) i ⋅ ∂y ∂y T1 , T2 ,..., TM con los vértices, o nodos del iésimo triángulo en G2
∑
∑ ∫∫
− r ( x, y )φi ( x, y )φ k ( x, y )} dxdy
V ji = ( x ij , y ij )
∫ g1 ( x, y)φi ( x, y)φk ( x, y)}dS ]γ i
+
Ahorrando notación, escribiremos a V ji como
G2
V j = ( x j , y j ) cuando estemos trabajando con el
+ ∫∫ f ( x, y ) φ k ( x, y ) dxdy D
∫ g 2 ( x, y)φ k ( x, y)dS ,
−
para j=1, 2, 3.
(7)
nodo fijo Ti . Con cada vértice V j asociamos un polinomio lineal
N ij = N j = a j + b j x + c j y ,
G2
Formando un conjunto de ecuaciones y se puede escribir de la forma matricial puesto que un donde N i ( x , y ) = ⎧1, si j = k . ⎨ j k k sistema lineal: ⎩0, en otro caso Aγ = b , (8) Esto produce sistemas lineales de la forma (por T ejemplo para j = 2 ) A = [α ] , γ = (γ , γ ,..., γ ) , donde ik
1
2
n
b = ( β1 , β 2 ,..., β n )T , y definidas como
α ik = ∫∫ { p( x, y ) D
∂ φ i ( x , y ) ∂ φ k ( x, y ) ⋅ ∂x ∂x
∂ φ i ( x, y ) ∂ φ k ( x, y ) ⋅ ∂y ∂y − r ( x, y )φi ( x, y )φ k ( x, y )} dxdy
+ q ( x, y )
∫ g1 ( x, y)φi ( x, y)φk ( x, y)}dS ,
+
G2
para cada i=1, 2, …, n, k=1, 2, …, m, y
β i = − ∫∫ f ( x, y ) φ k ( x, y ) dxdy
∫ g 2 ( x, y)φ k ( x, y)dS + v , G2
para cada i=1, 2, …, n.
F. Antoine S.
y1 ⎤ ⎡a j ⎤ ⎡0⎤ ⎢ ⎥ y2 ⎥⎥ ⎢b j ⎥ = ⎢⎢1 ⎥⎥ y3 ⎥⎦ ⎢⎣c j ⎥⎦ ⎢⎣0⎥⎦
en los que el elemento uno aparece en el vector de la derecha en su j-ésimo renglón. Sea E1 , E2 ,..., En una asignación de los nodos
que se encuentran en T ∪ G de izquierda a derecha y de arriba hacia abajo. Con cada nodo (9) Ek , asociamos una función φ k que es lineal en cada triángulo, tiene el valor uno y cero en cada uno de los otros nodos. Esto hace que φ k sea
D
+
⎡1 x1 ⎢1 x 2 ⎢ ⎢⎣1 x3
idéntica a N ij en el triángulo Ti cuando el nodo
Ek es el vértice denotado por V ji . B.2. Ejemplo:
A. Sangiacomo C.
239
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
da
N 12 ( x, y ) = − 13 x + 13 y . Y así también para N 31 ( x, y ) = a3 + b3 x + c3 y nos da
N 31 ( x, y ) = 1 − 13 x − 23 y . En cambio para T2 , partiendo del punto (1,1) notándolo como V12 , el (0,0) como V22 y el
(1,0) como V32 . La función lineal N12 ( x, y ) que toma el valor de uno en (1,1) y cero en los puntos (0,0) , (1,0) , y Para ilustrar supongamos que el problema de satisface elementos finitos contiene a los triángulos T1 y Figura a.3.
a1`2 + b12 (1) + c12 (1) = 1
T2 .
a12 + b12 (0) + c12 (0) = 0 ,
Si resolvemos en el orden antihorario para el T1 partiendo del punto (1,1) notándolo como V11 , el
(−1,2) como V21 y el (0,0) como V31 .
a12 + b12 (1) + c12 (0) = 0 al resolver esto nos resulta a12 = 0 , b12 = 0 ,
c 2 = 1 , y reemplazando en
La función lineal N11 ( x, y ) que toma el valor de 1 uno en (1,1) y cero en los puntos (0,0) , (−1,2) , da y satisface
N12 ( x, y ) = y .
a11 + b11 (1) + c11 (1) = 1 a11 + b11 (−1) + c11 (2) = 0 ,
De manera similar para N 22 ( x, y ) y N 32 ( x, y ) , resultándonos
a11 + b11 (0) + c11 (0) = 0
al resolver esto nos resulta a11 = 0 , b11 = 23 , y c11 = 13 , y reemplazando en
N11 ( x, y ) = a1 + b1 x + c1 y da N 11 ( x, y ) = 23 x +
1 3
N12 ( x, y ) = a1 + b1 x + c1 y
N 22 ( x, y ) = 1 − x
N 32 ( x, y ) = 1 − y ,
respectivamente.
y.
Aquí tenemos que remarcar la consecuencia y ) geométrica que en la frontera común de T1 y T2 Respectivamente para la función lineal 1 2 que toma el valor de uno en (−1,2) y cero en los se tiene N1 ( x, y ) = N1 ( x, y ) puesto que y = x. puntos (0,0) , (1,1) , y satisface
N 12 ( x,
a12 + b21 (1) + c12 (1) = 0 a12 + b21 (−1) + c12 (2) = 1 , a12 + b21 (0) + c12 (0) = 0 al resolver esto nos resulta a12 = 0 , b21 = − 13 ,
c12 = 13 , y reemplazando en N 12 ( x, y ) = a2 + b2 x + c2 y F. Antoine S.
Continuando con este proceso para la funcional I con una representación explícita por m
φ ( x, y ) = ∑ γ iφi ( x, y ) , i =1
tendremos para
T1 : φ ( x, y ) = γ 1 ( 23 x + 13 y ) + γ 2 (− 13 x + 13 y )
A. Sangiacomo C.
240
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
+ γ 3 (1 − 13 x − 23 y ) ,
T2 : φ ( x, y ) = γ 1 ( y ) + γ 2 (1 − x) + γ 3 (1 − y ) . ♣
− ∫∫ r ( a12 + b12 x + c12 y )(a32 + b32 x + c32 y )dxdy T2
B.3. Ejemplo: Con las suposiciones de líneas arriba y con los Para generar las componentes de la matriz A por datos del ejemplo A.2 anterior y con la figura a.5 facilidad tomemos la figura a.4
Figura a.5. Figura a.4. Supongamos que E1 no en nodo de G2 . La para E3 con α 32 = α 23 y relación entre los nodos y los vértices de los triángulos para esta figura es α 23 = b31b11 pdxdy + c13c11 q dxdy T1 T1 E1 = V31 = V12 , E4 = V22 ,
∫∫
E3 = V21 = V32 ,
E2 = V11 .
Como φ1 y φ3 son ambos diferentes de cero en T1 y T2 , las componentes α13 = α 31 se calculan usando (9)
α13 = ∫∫{ p T
∂ φ1 ∂ φ3 ∂φ ∂φ ⋅ +q 1 ⋅ 3 ∂x ∂x ∂y ∂y − r φ1 φ3} dxdy
= ∫∫ { p T1
∂ φ1 ∂ φ3 ∂φ ∂φ ⋅ +q 1⋅ 3 ∂x ∂x ∂y ∂y
T2
− ∫∫ r ( a13 + b31 x + c13 y )(a11 + b11 x + c11 y )dxdy T1
+ b22b12 ∫∫ pdxdy + c22 c12 ∫∫ q dxdy T2
− ∫∫
r ( a22
∂ φ1 ∂ φ3 ∂φ ∂φ ⋅ +q 1⋅ 3 ∂x ∂x ∂y ∂y
= b31b21 ∫∫ pdxdy + c13c12 ∫∫ q dxdy − ∫∫
r ( a13
+ b31 x + c13 y )(a12
T1
+ b21 x + c12 y )dxdy
T1
+ b12b32
∫∫ T2
F. Antoine S.
pdxdy + c12 c32
+ b12 x + c12 y )dxdy
T2
reemplazando los valores hallados en el ejemplo A.2
α 23 = (− 13 )( 23 ) ∫∫ pdxdy + (1)(0) ∫∫ q dxdy T1
T1
T1
+ (−1)(0) ∫∫ pdxdy + (0)(1) ∫∫ q dxdy T2
∫∫ q dxdy
T2
− ∫∫ r (1 − x)( y )dxdy
− r φ1 φ3} dxdy T1
T2
+ b22 x + c22 y )(a12
− ∫∫ r (1 − 13 x − 23 y )( 23 x + 13 y )dxdy
− r φ1 φ3} dxdy
+ ∫∫ { p
∫∫
T2
y haciendo operaciones resulta:
α 23 = (− 92 ) ∫∫ pdxdy T1
− ∫∫ r (1 − 13 x − 23 y )( 23 x + 13 y )dxdy T1
T2 A. Sangiacomo C.
241
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
− ∫∫ r (1 − x)( y )dxdy .
♦
T2
Parte de la componente β1 proviene de φ1
restringida a T1 y parte de φ1 restringida a T2 . En general, una componente β k tiene contribuciones de φ k restringidas a cada uno de los triángulos que tienen a Ek como vértice, las componentes de los nodos que se encuentran en G2 tendrán integrales de línea añadidas en A y b. Tomando la Ecuación Diferencial Parcial
∂u ∂ ∂u ∂ ( p ( x, y ) )+ ( q ( x, y ) ) ∂x ∂x ∂y ∂y + r ( x, y )u ( x, y ) = f ( x, y ) , ( x, y ) ∈ T ⊂ D sujeta a las condiciones de frontera u ( x, y ) = g ( x, y ) , ( x, y ) ∈ G1 y
TN +1 , TN + 2 ,..., TM son los triángulos restantes. (Si M = N implica que todos los triángulos tienen lados en G2 ). Marcar los tres vértices del triángulo Ti con
( x1i , y1i ) , ( x2i , y2i ) y ( x3i , y3i ) . Marcar
los
nodos (vértices) donde E1 , E2 ,..., En
E1 , E2 ,..., Em están en T ∪ G2 y En +1 , ..., Em están en G1 . (Nota: si n = m implica que G1 no contiene nodos.) Paso 3: Entrar: k , N , M , n, m , {números enteros} Entrar: Para i = 1 hasta M entrar {los vértices}
y ( x3i , y3i ) Entrar: Para i = 1 hasta m entrar Ei
( x1i , y1i ) ,
( x2i , y2i )
{los nodos (vértices)} {Nota: esto último es necesario para
hacer corresponder un vértice con
∂u ∂u un nodo o sea: Ei = ( xi , yi ) o ⋅ cos(θ1 ) + q ( x, y ) ⋅ cos(θ 2 ) p ( x, y ) ∂x ∂y Ei ↔ ( xi , yi ) .} + g1 ( x, y )u ( x, y ) = g 2 ( x, y ) , Paso 4: Para i = n + 1 hasta m hacer ( x, y ) ∈ G2 γ i = g ( xi , yi ) {con los Ei = ( xi , yi ) } donde G1 ∪ G2 es la frontera de T , y θ1 y θ 2 Paso 5: Para i = 1 hasta n hacer son los ángulos direccionales de la normal a la βi = 0 frontera. Con esto pasamos a describir el Para j = 1 hasta n α ij = 0 . algoritmo para su solución por el método de elementos finitos. Paso 6: Para i = 1 hasta M hacer 1 x1 y1 B.4. Algoritmo del Método de elemento Δ i = det 1 x2 y2 finito 1 x3 y3 Paso 1: Definir p( x, y ) , q( x, y ) , x i y i − y2i x3i y i − y3i r ( x, y ) , f ( x, y ) ; b1i = 2 ; a1i = 2 3 Δ Δ i i Paso 2: Dividir la región T en triángulos i i T1 , ..., TM tales que: T1 , ..., Tk son los x − x2 c1i = 3 triángulos con todos sus vértices Δi interiores a T . x i y i − y3i x1i y i − y1i Tk +1 , Tk + 2 ,..., TN son los triángulos ; b2i = 3 ; a2i = 3 1 Δi Δi con por lo menos un lado en G2 ;
F. Antoine S.
A. Sangiacomo C.
242
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
α tl = α tl + z k(i,)j ,
x1i − x3i x i y i − y1i x2i i = ; a3 = 1 2 ; Δi Δi
c2i
− − c3i = Δi Δi Para j = 1 hasta 3 hacer y1i
b3i =
y2i ;
x2i
N ij ( x, y )
=
a ij
en otro caso
β l = β l − γ t z k(i,)j ,
x1i
En otro caso Si t ≤ n entonces
{func. lineales}
β t = β t − γ l z k(i,)j .
+ bij x + c ij y . Paso 15:
Paso 7:
Para i = 1 hasta M hacer
α ll = α ll + z k(i,)k ,
{aquí la integrales se evaluaran por métodos numéricos}
Para j = 1 hasta 3 hacer Para k = 1 hasta j hacer
{calcula las integrales dobles sobre los triángulos}
z (ji,)k = b (ji )bk(i ) ∫∫ p( x, y )dxdy Ti
+ c (ji ) ck(i ) ∫∫ q( x, y )dxdy Ti
− ∫∫ r ( x, y ) N (ji ) ( x, y ) N k(i ) ( x, y )dxdy , Ti
Si l ≤ n entonces
β l = β l + H k(i ) . Paso 16:
Para i = K + 1 hasta N
{Calculando las integrales de línea y colocándolas en el sistema lineal}
Paso 17: Para k = 1 hasta 3 hacer Paso 18: Encontrar l tal que
El = ( xk(i ) , yk(i ) ) , Paso 19: Si k > 1 entonces Para j = 1 hasta k − 1 hacer Paso 20: Encontrar l tal que
H (ji ) = − ∫∫ f ( x, y ) N (ji ) ( x, y )dxdy .
Et = ( x (ji ) , y (ji ) ) ,
Ti
Paso 8:
Paso 21:
Para i = K + 1 hasta N
Si l ≤ n entonces Si t ≤ n entonces
{Calcula las integrales de línea}
α lt = α lt + J k(i,)j ,
Para j = 1 hasta 3 hacer Para k = 1 hasta j hacer
J (ji,)k =
∫ g1 ( x, y) N j
(i )
α tl = α tl + J k(i,)j ,
( x, y ) N k(i ) ( x, y )dS ,
en otro caso
β l = β l − γ t J k(i,)j ,
G2
I (ji ) =
∫ g 2 ( x, y ) N j
(i )
( x, y )dS .
En otro caso Si t ≤ n entonces
G2
Paso 9:
Para i = 1 hasta M hacer
β t = β t − γ l J k(i,)j .
{se construye las integrales sobre cada triángulo y se arma el sistema lineal}
Paso 10: Para k = 1 hasta 3 hacer Paso 11: Encontrar l tal que
El = ( xk(i ) , yk(i ) ) , Paso 12: Si k > 1 entonces Para j = 1 hasta k − 1 hacer Paso 13: Encontrar l tal que Et = ( x (ji ) , y (ji ) ) , Paso 14:
Si l ≤ n entonces Si t ≤ n entonces
α lt = α lt + z k(i,)j , F. Antoine S.
Paso 22:
Si l ≤ n entonces
α ll = α ll + J k(i,)k ,
β l = β l + I k(i ) . Paso 23: Resolver el sistema lineal Ac = b donde A = (α l ,t ) , b = ( β l ) , c = (γ t ) , para 1 ≤ l , t ≤ n . Paso 24: Publicar: (γ 1 , γ 2 ,..., γ m ) . {Para
k = 1 hasta m
hacer
φ k = N (ji )
A. Sangiacomo C.
en
243
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
Ti
si
Ek = ( x (ji ) , y (ji ) ) .
Entonces
m
φ ( x, y ) = ∑ γ k φ k ( x, y )
aproxima a
k =1
u ( x, y )
en
G2 = L1 ∪ L2 ∪ L3 ∪ L4 ∪ L5 .
D ∪ G1 ∪ G2 . }
Los triángulos ya marcados se muestran en la figura
Paso 25: Publicar: Para i = 1 hasta M hacer Para j = 1 hasta 3 hacer (i )
(i )
Solución: D en triángulos Primero subdividimos etiquetándolos como se sugiere en el paso 2 del algoritmo. Para este ejemplo, G1 = L6 ∪ L7 y
(i )
Publicar (a j , b j , c j ) . Paso 26: Parar. B.5. Ejemplo: La temperatura u ( x, y ) , de una región bidimensional D satisface la ecuación de Laplace
∂ 2 u ( x, y )
+
∂ 2 u ( x, y )
= 0 , en D . ∂ x2 ∂ y2 La región D considerada se muestra en la figura. Figura a.7. La condición de frontera u ( x, y ) = 4 , en L6 y
L7 , implica que γ l = 4 cuando l = 6,7,...,11 . Para
determinar
los valores de
γl
para
l = 1,2,...,5 , aplicamos los pasos restantes del algoritmo y generamos la matriz
0 0 0 ⎤ −1 ⎡ 2.5 ⎢ 0 1.5 − 1 − 0.5 0 ⎥⎥ ⎢ Figura a.6. A = ⎢− 1 4 0 0 ⎥ −1 ⎢ ⎥ 0 0 . 5 0 2 . 5 0 . 5 − − ⎢ ⎥ Y supongamos que tenemos las siguientes ⎢ 0 0 − 0.5 1 ⎥⎦ condiciones de frontera ⎣ 0 u ( x, y ) = 4 , para ( x, y ) ∈ L6 y ( x, y ) ∈ L7 , y el vector ⎡6.0666⎤ ∂ u ( x, y ) = x , para ( x, y ) ∈ L2 y ⎢0.0633⎥ ∂n ⎢ ⎥ ∂ u ( x, y ) ⎢ ⎥ b = 8 . 0000 ( x, y ) ∈ L4 , = y , para ( x, y ) ∈ L5 , ⎢ ⎥ ∂n 6.0566⎥ ⎢ ∂ u ( x, y ) x + y ⎢⎣2.0316⎥⎦ = , para ( x, y ) ∈ L1 y ∂n 2 La solución del sistema lineal Ac = b es ( x, y ) ∈ L3 . ∂u denota la derivada direccional en la Donde ∂n dirección de la normal de la frontera de la región D en el punto ( x, y ) . F. Antoine S.
A. Sangiacomo C.
244
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
⎡γ 1 ⎤ ⎡4.0383⎤ ⎢γ ⎥ ⎢4.0782⎥ ⎢ 2⎥ ⎢ ⎥ c = ⎢γ 3 ⎥ = ⎢4.0291⎥ . ⎢ ⎥ ⎢ ⎥ ⎢γ 4 ⎥ ⎢4.0496⎥ ⎢⎣γ 5 ⎥⎦ ⎢⎣4.0565⎥⎦
Objetivo: Aplicar la Solución Numérica de un sistema EDO a un sistema de Compartimentos
I. Introducción
Resultando la siguiente aproximación a la En los modelos de compartimentos las solución de la ecuación de Laplace y las sustancias u organismos en estudio se condiciones de frontera en los triángulos suponen repartidas en diferentes respectivos
T1 : φ ( x, y ) = 4.0383(1 − 5 x + 5 y ) + 4.0291(−2 + 10 x) + 4(2 − 5 x − 5 y ) T2 : φ ( x, y ) = 4.0782(−2 + 5 x + 5 y ) + 4.0291(4 − 10 x) + 4(−1 + 5 x − 5 y ) T3 : φ ( x, y ) = 4(−1 + 5 y ) + 4(2 − 5 x − 5 y ) + 4.0383(5 x ) T4 : φ ( x, y ) = 4.0383(1 − 5 x + 5 y ) + 4.0782(−2 + 5 x + 5 y ) + 4.0291(2 − 10 y ) T5 : φ ( x, y ) = 4.0782(2 − 5 x + 5 y ) + 4.0496(−4 + 10 x) + 4(3 − 5 x − 5 y ) T6 : φ ( x, y ) = 4.0496 (6 − 10 x ) + 4.0565(−6 + 10 x + 10 y ) + 4(1 − 10 y ) T7 : φ ( x, y ) = 4(−5 x + 5 y ) + 4.0383(5 x) + 4(1 − 5 y ) T8 : φ ( x, y ) = 4.0383(5 y ) + 4(1 − 5 x) + 4(5 x − 5 y ) T9 : φ ( x, y ) = 4.0291(10 y ) + 4(2 − 5 x − 5 y ) + 4(−1 + 5 x − 5 y ) T10 : φ ( x, y ) = 4.0496(10 y )
compartimentos los cuales no son más que clases de equivalencias definidas a partir de esas sustancias u organismo de tal forma que las transferencias entre tales clases de equivalencias sean proporcionales a la cantidad de unidades en cada compartimento. Llamando xi (t ) a la cantidad de material u organismo en el compartimento i en el instante t y aij al coeficiente de
proporcionalidad asociado a la transferencia del compartimento j al i el cual siempre es positivo, el balance de la masa (materia u organismos) en cada compartimento se puede escribir de la siguiente forma lineales n ⎡ n ⎤ dxi = − ⎢ ∑ a ji ⎥ ⋅ xi + ∑ aij ⋅ x j , i = 1..n ; dt ⎢⎣ j =1 ⎥⎦ j =1 (I.1) asumiendo
n
aii = ∑ a ji ,
i = 1..n
j =1 j ≠i
+ 4 (3 − 5 x − 5 y ) + 4 ( − 2 + 5 x − 5 y ) .
(I.2)
podemos escribir el sistema (I.1) de la forma La solución real del problema con valores de siguiente: frontera es dx u ( x, y ) = xy + 4 . Se le deja al lector comparar los resultados. dt
= Ax
(I.3)
donde: C.1. Identificación de Parámetros en Modelos de Compartimentos y Funciones Convexas en Procesos Farmacológicos F. Antoine S.
A. Sangiacomo C.
245
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
⎡− a11 a12 ... a1n ⎤ ⎢a − a22 ... a2 n ⎥⎥ 21 ⎢ , A= ⎢ .. .. .. .. ⎥ ⎢ ⎥ an 2 ... − ann ⎦ ⎣ an1
(I.4)
indefinidamente este carácter, lo que unido al balance de masa permite garantizar la estabilidad asintótica de estos modelos. II. Identificación de Parámetros en Modelos de Compartimentos
estas características de la matriz A garantizan Los modelos de compartimentos pueden ser que se cumple el llamado balance de masa utilizados para determinar los parámetros que del sistema, o sea que cualquier instante de describen un sistema, buscando los a que ij tiempo: hacen óptimo el ajuste entre la solución teórica del sistema (I.1) y los datos n n experimentales. (I.5) ∑ xi (t ) = ∑ xi (0) Antes de resolver este problema es necesario i =1 i =1 Para cada matriz A está claro que las conocer si es soluble a priori, o sea, si dada soluciones del sistema (I.1) están la estructura del sistema, es posible obtener unívocamente determinadas cuando se unívocamente los valores de los coeficientes conozcan sus condiciones iniciales es decir, aij de la matriz que determina el sistema. El el vector: problema no es trivial ya que existen ⎡ x1 (t 0 ) ⎤ ejemplos de sistemas en los que no es posible ⎥ ⎢ determinar unívocamente los coeficientes. x0 = ⎢ ... ⎥ Por otra parte, debe tenerse en cuesta no ⎢⎣ xn (t 0 ) ⎥⎦ xi son observables todos los el cual habitualmente se obtiene de manera experimentalmente por lo que se puede experimental. En la practica los modelos de definir un vector s cuyos componentes σ i compartimentos no están aislados del indican si la variable xi es observable exterior, por lo que debe introducirse un ( σ = 1 ) o no ( σ = 0 ). i término de perturbación u, que representa un i efecto de la entrada de la sustancia hacia los Una vez demostrado que el sistema es compartimentos desde el exterior, quedando: identificable a priori es necesario encontrar efectivamente, cuales valores de los ⎡ u1 ⎤ ⎡ x1 ⎤ coeficientes aij hacen corresponder las dx ⎢ ⎥ ⎢ ⎥ dt
= Ax + u ,
x = ⎢ ... ⎥ , ⎢⎣ xn ⎥⎦
u = ⎢ ... ⎥ ⎢⎣u n ⎥⎦
soluciones del modelo con las observaciones prácticas (empíricas). Esta tarea es la llamada (I.6) identificación a posteriori. Es necesario definir un sentido de Teniendo en cuenta las perturbaciones el proximidad entre las soluciones y las balance de masa en un momento dado t, mediciones. Esto puede hacerse de v arias queda maneras. n n T La forma más evidente es la de minimizar la (I.7) ∑ xi (t ) = ∑ xi (0)∫0 ui (r )dr desviación entre los valores observados y i =1 i =1 calculados de la manera siguiente: n
(
)
además puede demostrarse que si los valores K (a ) = ∑ σ T x (t ) − x exp (t ) 2 dt = min! ij m ∫0 m m son positivos, las soluciones mantendrán m =1 F. Antoine S.
A. Sangiacomo C.
246
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
garantizar el obtener una solución local, y luego saber si esta es global. exp donde x m (t ) es la curva experimental Teniendo en cuenta la forma de los para la variable m, y σ m es el coeficiente coeficientes de la matriz A del sistema (I.1), el problema se puede interpretar como un que indica si la curva puede ser observada o problema de programación no lineal con no. Esta forma de definir el sentido de restricciones lineales. proximidad tiene la desventaja de que para cada evaluación de la función K, es necesario Mín K (aij ) resolver el sistema(I.1) proceso este que sujeto a: consume mucho tiempo. n Para evitar este problema se puede escoger − aii + a ji = 0, i = 1..n como función a minimizar: (II.1)
K (aij ) =
n
∑ σ m ∫0
m =1
T
∑
j =1 i≠ j
⎛ d x m (t ) ⎜ dt ⎝ n
−∑
i =1
⎞ xmexp (t ) ⎟⎟ ⎠
aii ≥ 0,
2
i = 1..n . (II.3)
dt = min!
Si escribimos la matriz A como un vector del (II.2)
2
espacio E n parando sus filas una a continuación de la otra La cual tiene la ventaja de no ser necesario T de resolver el sistema (I.1) pero incluye el a = (a11 , a12 , L , a1n , a21 , a22 , L , a1n , L , an1 , an 2 , L , ann ) calculo numérico de las derivadas de las exp el problema se puede describir de la siguiente funciones x m (t ) , lo que ocupa también manera tiempo y propende por otra parte, aumentar Mín K (aij ) la importancia del ruido aleatorio que puede haberse introducido en las mediciones, por lo sujeto a: Ma = 0 que es recomendable que la utilización de a≥0. (II.4) este método sea precedido por un filtrado de 2 las curvas experimentales para evitar este donde M ∈ E n riesgo. Además generalmente las funciones ⎛ − 1 0 ... 0 1 0 ... 0 ... ... 1 0 ... 0 ⎞ ⎜ ⎟ experimentales están dadas en forma tubular, ⎜ 0 1 ... 0 0 − 1 ... 0 ... ... 0 1 ... 0 ⎟ M =⎜ incluyendo pocos puntos, por lo que la . . . . . . . . . . . . . . ⎟ ⎜ ⎟ ⎜ ⎟ aproximación resultante es pobre, por lo que ⎝ 0 0 ... 1 0 0 ... 1 ... ... 0 0 ... − 1⎠ no permite el cálculo de las derivadas con (II.5) buena exactitud. En el modelo a veces se conoce de antemano En ambos casos es necesario encontrar el que algunos aij son iguales a cero, por lo que mínimo de la función K. Este problema no es hay que añadirle nuevas restricciones al trivial ya que al no poderse garantizar que K problema. En nuestra notación esto se sea convexa, no puede ni siquiera asegurarse expresa añadiéndole a la matriz M una fila que los mínimos locales sean globales, o sea, que la solución posible en el entorno de un por cada aij = 0 , esta fila va a tener todos punto sea lo mejor posible en todo el espacio. sus componentes iguales a cero salvo el de la De todas maneras, es necesario primero posición ( n ⋅ i + j ) que será igual a uno. Con
F. Antoine S.
A. Sangiacomo C.
247
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
eso se obtiene una matriz de (n + k )n 2 , asociados al esquema de flujo arriba establecido, así: donde k es cantidad de aij iguales a cero. 0 0 ⎞ ⎛ x1 ⎞ ⎛ x&1 ⎞ ⎛ − a21 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ & III. Elección de un problema Específico de ⎜ x2 ⎟ = ⎜ a21 − a32 0 ⎟ ⋅ ⎜ x2 ⎟ ; (III.1) ⎜ x& ⎟ ⎜ 0 a32 0 ⎟⎠ ⎜⎝ x3 ⎟⎠ Identificación ⎝ 3⎠ ⎝ tenemos entonces que los coeficientes a12 , Esto se refiere que ha manera de ejemplo a , a , a y a33 son ceros. practico se desarrolla la solución de uno en 13 23 31 Luego usando una dosis conocida x1 (0) de particular. medicamento y los valores de concentración Famacocinética del medicamento en sangre x2 , que serán La farmacocinética es un de las aplicaciones medidos oportunamente por extracciones más conocida de los modelos de periódicas de sangre se logra determinar los compartimentos. La tarea aquí consiste en coeficientes a correspondientes al paciente ij modelar el proceso de absorción, dado, y con esto se optimiza la dotación de degradación y eliminación de un fármaco medicamento la cual está representado por la dado, con el fin de obtener un determinado dosis inicial. efecto terapéutico, o sea obtener la dosis optima para alcanzar un determinado efecto • Otro problema con tratamiento análogo terapéutico y no provocar fuertes efectos sería el siguiente: Tomando ahora un antibiótico que se secundarios. introduce por perfusión endovenosa, se • Tomando una sustancia que se introduce tiene entonces los compartimentos por vía oral se tiene entonces un SANGRE {1}, LÍQUIDO TISULAR {2} compartimento que es el ESTÓMAGO y la EXCRECIÓN {3}, aquí en {2} es {1}, al pasar por difusión a la SANGRE lo donde surte efecto el antibiótico. distinguimos como el compartimento {2} Veamos el esquema gráfico: y finalmente todos los procesos de expulsión del fármaco se agrupan en el compartimento {3} EXPULSIÓN. De manera que se estable el siguiente esquema d compartimentos:
Figura 2. El cual sería igual al anterior visto líneas arriba. Figura 1 Entonces
los
coeficientes
aij
serán
Obsérvese que un modela más complejo incluye sus interacciones reales y sería:
encontrados del sistema de ecuaciones
F. Antoine S.
A. Sangiacomo C.
248
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
t ∈ [0, T ] la distancia entre la curva observable y la analítica debe ser mínima. Podríamos elegir sólo la distancia simple exp
entre xm (t ) (la curva experimental observable) y xi (t ) hallada por cálculos por alguna norma definida por ejemplo: xi (t ) − xiexp (t ) ,
Figura 3
o con el correspondiente sistema de ecuaciones x(t ) − x exp (t ) . diferenciales que lo describe. 0 ⎞ ⎛ x1 ⎞ Podemos usar la desviación entre los valores a12 ⎛ x&1 ⎞ ⎛ − a21 − a31 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ − a12 − a32 0 ⎟ ⋅ ⎜ x2 ⎟ observados y los calculados, o sea, la norma a21 ⎜ x&2 ⎟ = ⎜ L2 de la siguiente manera: ⎜ x& ⎟ ⎜ 0 ⎟⎠ ⎜⎝ x3 ⎟⎠ a31 a32 ⎝ 3⎠ ⎝ n (III.2)
x(t ) − x exp (t )
2
L2
=
∑ ∫0
T
m =1
(x
exp m (t ) − xm (t )
)2dt
IV. Reducción a un Problema de en todo caso necesitamos el mínimo de las Programación No Lineal con Restricciones expresiones dadas y ello nos conduce aun problema de Optimización No Lineal, puesto Lineales que son convexas al menos en una vecindad. Retomemos nuestro problema (III.1) de la Para proseguir con esta idea debemos tomar en cuenta que en todo momento se habla de sección anterior en estudio puntos experimentales que unidos forman 0 0 ⎞ ⎛ x1 ⎞ ⎛ x&1 ⎞ ⎛ − a21 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ una curva experimental observable, esto ya ⎜ x& 2 ⎟ = ⎜ a21 − a32 0 ⎟ ⋅ ⎜ x2 ⎟ (IV.1) lo indicamos con el uso de σ i en el [II] ⎟ ⎜x ⎟ ⎜ x& ⎟ ⎜ 0 0 a 32 ⎠ ⎝ 3⎠ ⎝ 3⎠ ⎝ anteriormente. Esto permite trabajar en la solución particular de este sistema nuestros cálculos sólo con los datos homogéneo es: experimentales observables y por ende comparables, o sea, para el último caso de la − a t desviación nos resulta: ⎞ ⎛ x1 ⎞ ⎛⎜ e 21 ⎟ n ⎜ ⎟ 2 T −a t −a t ⎜ x2 ⎟ = ⎜ ae 21 − ae 32 ⎟ , (IV.2) σ m ⋅ ∫ xm (t ) − xmexp (t ) dt , ∑ 0 ⎜ x ⎟ ⎜⎜1 + be − a 21t − ae − a32 t ⎟⎟ m =1 ⎝ 3⎠ ⎝ ⎠ la cual nos evitará muchas complicaciones a a donde a = a −21a y b = a −32a ; y además innecesarias. 21 32 21 32 Para efectos de ajuste a un programa de a21 ≠ a32 . optimización, hagamos un funcional K (aij ) Son curvas del tipo exponencial para cada tal que con los conceptos anteriores se hace xi , i=1,2,3. n 2 T exp La curva formada por la unión de los puntos K (aij ) = ∑ σ m ∫0 xm (t ) − xm (t ) dt m =1 observados llamada curva observable debe ahora tenemos mínimo Mín K (aij ) , y luego ser simulada con mínimo de error y, este término mínimo nos da una idea de la tenemos que recordar que en todo momento minimización del problema, o sea, para cada se hace cumplir que los aij ≥ 0 , además no
(
)
(
F. Antoine S.
A. Sangiacomo C.
)
249
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
existen perturbaciones, o sea, u=0, pero debe cumplir con n
aii = ∑ a ji ,
i = 1..n
0 ⎛ x&1 ⎞ ⎛ − a21 ⎜ ⎟ ⎜ ⎜ x&2 ⎟ = ⎜ a21 − a32 ⎜ x& ⎟ ⎜ 0 a32 ⎝ 3⎠ ⎝
0 ⎞ ⎛ x1 ⎞ ⎟ ⎜ ⎟ 0 ⎟ ⋅ ⎜ x2 ⎟ 0 ⎟⎠ ⎜⎝ x3 ⎟⎠
el problema inmediato que surge tanto al simular como al controlar un sistema, por modelo de Compartimentos es el de obtener o sea: los parámetros del sistema en base al n conocimientos del comportamiento del aii − a ji = 0, i = 1..n sistema en ciertos casos conocidos. j =1 Ante todo para resolver este último problema i≠ j es necesario saber si es soluble a priori. El y nos resulta el planteamiento completo de la problema general de identificación a priori siguiente forma: no ha sido aún resuelto por completo, peor Mín K (aij ) existen varias condiciones necesarias y sujeto a: algunas necesarias y suficientes. n Una de estas características se encuentra en nuestra matriz A, para el balance de masa, aii − a ji = 0, i = 1..n condiciones que ya fueron dada en (I.2) y j =1 i≠ j (I.4). Por otra parte debe ser conocido el número aii ≥ 0, i = 1..n de compartimentos xi que son observables y como se ve es un problema de experimentalmente, pues una condición Programación No Lineal con Restricciones necesaria importante para nuestro caso es Lineales. que dado el sistema (I.3) se cumpla, que si α V. Solubilidad y Método de Gradiente y es el número de compartimentos para los cuales ui es idénticamente nulo y el Condición de Convexidad contenido inicial también lo es, y β el Solubilidad a priori del problema número de compartimentos σ i es nulo, Veamos el caso particular en que se tiene: entonces para que el sistema sea identificable, a priori, es necesario que al menos el número α ⋅ β de coeficientes aij j =1 i≠ j
∑
∑
sean idénticamente nulos. En este problema que abordamos tenemos α = 2 y β = 2 y el producto de α ⋅ β = 4 y los ceros son cinco. Para completar esta primera parte también debe tenerse en cuenta que debe cumplirse en todo momento la condición
Figura 4. Entonces
los
coeficientes
aij
serán
encontrados del sistema de ecuaciones diferenciales asociados al esquema de flujo arriba establecido, así:
F. Antoine S.
n
aii − ∑ a ji = 0,
i = 1..n
j =1 i≠ j
aii ≥ 0,
i = 1..n . A. Sangiacomo C.
(V.1)
250
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
Par
el
caso
λk ij > 0
por
lo
dicho
Condiciones Karush - Kuhn - Tuker que son anteriormente, (las restricciones son siempre las condiciones de convexidad del problema activas), resulta que debe cumplirse que Mín K (aij ) n
sujeto a:
(V.2) n
aii − ∑ a ji = 0, j =1 i≠ j
aii ≥ 0,
i = 1..n
aii − ∑ a ji = 0,
i = 1..n
j =1 i≠ j
i = 1..n
aii ≥ 0,
i = 1..n .
(V.5) que son las restricciones del problema. Por ello se concluye la convexidad del problema.
Sabemos que las funciones lineales son convexas, o sea, restricciones del problema. Método de Solución y Funciones convexas Falta sólo las condiciones sobre el Lagrangeno en el método de Karush - Kuhn - Una vez demostrado que el sistema es Tuker identificable α priori es necesario encontrar efectivamente, cuales valores de los ⎛ ⎞ ⎜ ⎟ s n coeficientes aij hacen corresponder las 0 0 0
∇K (aij ) + ∑ λkij ∇⎜ − aii + ∑ aij ⎟ = 0 soluciones del modelo en ecuaciones ⎜ ⎟ k =1 j =1 ⎜ ⎟ diferenciales con las observaciones prácticas i≠ j ⎝ ⎠
esta tarea es la llamada identificación a (V.3) posteriori. Aquí ∇K (aij0 ) aplica el gradiente para la Toda la idea aquí radica en la construcción variable aij , s es el número de restricciones y de una función convexa, pues si esta es una función convexa tendremos la certeza de que hay que tener en cuenta las restricciones que el punto óptimo existe. Ello lo conseguimos son activas en el problema a optimizar, con con el auxilio del punto IV de arriba. la suerte que son todas activas por Ma = 0 , Tomando en cuneta el definido sentido de por lo tanto se tiene lo siguiente: proximidad, entre las soluciones y las aij ≥ 0 , mediciones (datos experimentales). La forma entonces más evidente es minimizar la desviación ∂ entre los valores observados y los valores K (aij ) + λk pq = 0 , calculados de la manera siguiente: ∂ a pq n
(
)
queda un sistema de ecuaciones que tiene la K (a ) = σ T x (t ) − x exp (t ) 2 dt → 0 ∑ m ∫0 m ij m siguiente expresión: m =1 n T ∂ xm (t ) (V.6) 2 ∑ σ m ∫ xm (t ) − xmexp (t ) dt Esta forma de definir el sentido de 0 ∂ a pq m =1 proximidad tiene la desventaja de cada (V.4) + λk ij = 0 . evaluación de la función K, es necesario donde las combinaciones posibles resolver el sistema (I.3) proceso este que particularmente en este caso, para (p; q) son consume mucho tiempo. (2; 1) y (3; 2) y además considerando la Para evitar este problema se puede escoger como función a minimizar curva observable.
(
F. Antoine S.
)
A. Sangiacomo C.
251
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
2
columna n - dimensional g ( x) = ∇f ( x)T . 0 Cuando no hay posibilidad de ambigüedad i =1 m =1 se suprime el argumento la cual tiene la ventaja de no ser necesario aveces ( , , , ) x = x x L x y, por ejemplo se escribe 1 2 n resolver el sistema (I.3), pero el incluye el calculo numérico de las derivadas de las g k en lugar de g ( xk ) = ∇f ( xk )T . exp funciones xi (t ) , lo que ocupa también El método de descenso de mayor pendiente tiempo y propende a aumentar la importancia está definido por el algoritmo iterativo xk +1 = xk − α k g k (VI.1) del ruido aleatorio que pueda haberse introducido en las mediciones, por lo que es donde α k es un número no negativo que recomendable que la utilización de este minimiza f ( xk − α g k ) o sea resulta de método sea precedida por un filtrado de las ⎧ ⎫ curvas experimentales para evitar este riesgo. α k = ⎨α : Mín f ( xk − α g k )⎬ . ⎩ 0 ≤α ≤ ∞ ⎭ Además, generalmente las funciones Exciten algunos algoritmos para dar solución experimentales están dadas en forma tabular, al problema como son el direcciones incluyendo pocos puntos, por lo que la conjugadas y el método de Newton. aproximación resultante es pobre y el cálculo de las derivadas permite una buena exactitud. Método de Newton K (aij ) =
n
⎛ exp ⎜ dt ⎝
n
⎞ ⎟ ⎠
T dx ∑σ m ∫ ⎜ m − ∑ ami xiexp (t ) ⎟ dt → 0
En ambos casos es necesario encontrar el El método de Newton se basa en que la mínimo de la función K. función f que se minimiza se aproxima De esta manera es necesario primero localmente por una función cuadrática, y esta garantizar el obtener una solución local, y función de aproximación se minimiza luego saber si esta es global. exactamente. Así cerca de xk se puede aproximar f por la serie de Taylor truncada VI. Método de Gradiente f ( x) ≈ f ( xk ) + ∇f ( xk )( x − xk ) + 12 ( x − xk )T F ( xk )( x − xk ) , (VI.2) Uno de los métodos más antiguos y conocido de minimización de una función de varias El lado derecho se minimiza en variables es el método de mayor pendiente xk +1 = xk − [ F ( xk )]−1 ∇f ( xk )T , (VI.3) (también llamado método de Gradiente). El método es de gran importancia teórica es y esta ecuación es la forma pura del método uno de los más sencillos para los que existe de Newton. Teniendo en cuneta las condiciones de un análisis satisfactorio. suficiencia de segundo orden para un punto mínimo, se supone que en un punto mínimo El método relativo, x * , la matriz Hessiana F (x*) es Sea f una función con primeras derivadas definida positiva. parciales continuas en E n . Con frecuencia se Entonces se pude argumentar que si se tiene necesitará el vector gradiente de f, por lo que segundas derivadas parciales continuas, se dará una noción simplificadora. El F (x) es definida positiva cerca de x * , por gradiente ∇f (x) , de acuerdo con lo lo que el método esta bien definido cerca de establecido, está definido como un vector fila la solución.
n - dimensional. Por conveniencia se define F. Antoine S.
A. Sangiacomo C.
252
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
De (VII.4) para nuestro problema particular que estamos tratando aquí, no da un total de Para hallar los valores de la matriz A o sea 27 ecuaciones diferenciales de la forma: identificar los aij que mejor aproximan la m=1;
VII. Cálculo del Gradiente de K
curva experimental, se calcula el mínimo de K, de las ecuaciones (II.1) o (V.6), esto lo conseguimos aplicando el método de gradiente (aij ) k +1 = (aij ) k − α k ∇K (aij ) k (VII.1) ∂ K (aij ) ∂ aij
n
T
m =1
0
= 2 ∑σ m ∫
(x
exp m (t ) − xm (t )
)∂ ∂x a (t ) dt m
ij
∂ x3 ∂ x1 ∂ x2 d ∂ x1 = −a11 + a12 + a13 − x1 ∂ a11 ∂ a11 ∂ a11 d t ∂ a11 ∂ x3 ∂ x1 ∂ x2 d ∂ x1 = − a11 + a12 + a13 + x2 d t ∂ a12 ∂ a12 ∂ a12 ∂ a12 ∂ x3 ∂ x1 ∂ x2 d ∂ x1 = − a11 + a12 + a13 + x3 ∂ a13 ∂ a13 d t ∂ a13 ∂ a13 ∂ x3 ∂ x1 ∂ x2 d ∂ x1 = −a11 + a12 + a13 ∂ a21 ∂ a21 d t ∂ a21 ∂ a21
. . . . . . . . . . . (VII.2) ∂ x3 ∂ x2 ∂ x1 Aquí se nos presenta el problema para d ∂ x1 + a13 + a12 = −a11 ∂ xm (t ) d t ∂ a32 ∂ a32 ∂ a32 ∂ a32 calcular , para ese propósito usamos ∂ x3 ∂ x2 ∂ x1 d ∂ x1 ∂ aij el siguiente artificio: n ∂x ∂ xk d ∂ xm = −amm m + ∑ amk d t ∂ aij ∂ aij k ≠ m ∂ aij n ∂ amm ∂ amk − xm + ∑ xk ∂ aij k ≠ m ∂ aij
d t ∂ a33
= − a11
∂ a33
de ecuaciones diferenciales para
ij d wm ij ij = −amm wm + ∑ amk ⋅ wm + δ mi x j ; dt k ≠m para i ≠ j ij wm
d ij ij = −amm wm + ∑ amk ⋅ wm − δ mi xm ; dt k ≠m (VII.4) para i = j . donde δ mi es la delta de Kronecker, con condiciones iniciales nula (homogéneas).
F. Antoine S.
∂ a33
+ a13
∂ a33
m=2; ∂ x3 ∂ x1 ∂ x2 d ∂ x2 + a23 + a21 = − a22 d t ∂ a11 ∂ a11 ∂ a11 ∂ a11 ∂ x3 ∂ x2 ∂ x1 d ∂ x2 = − a22 + a21 + a23 ∂ a12 ∂ a12 d t ∂ a12 ∂ a12 ∂ x3 ∂ x2 ∂ x1 d ∂ x2 = −a22 + a21 + a23 ∂ a13 ∂ a13 d t ∂ a13 ∂ a13 ∂ x3 ∂ x2 ∂ x1 d ∂ x2 = −a22 + a21 + a23 + x1 d t ∂ a21 ∂ a21 ∂ a21 ∂ a21 ∂ x3 ∂ x2 ∂ x1 d ∂ x2 = −a22 + a21 + a23 − x2 ∂ a22 ∂ a22 d t ∂ a22 ∂ a22
(VII.3) [Es referente a la fila m del sistema (I.1). particularmente para (III.1) y para m=2, x& 2 = a21 x1 − a32 x2 + 0 x3 . En donde se han intercambiado las derivadas por conveniencia o facilidad.] ∂ x (t ) ij Haciendo wm = m , se tienen un sistema . . . . . . . . . . . ∂ aij ∂ x2 d ∂ x2 ij wm :
+ a12
d t ∂ a33
= − a22
∂ a33
+ a21
∂ x3 ∂ x1 + a23 ∂ a33 ∂ a33
m=3 ∂ x3 ∂ x2 ∂ x1 d ∂ x3 = −a33 + a32 + a31 d t ∂ a11 ∂ a11 ∂ a11 ∂ a11
. . . . . . . . . . .
∂ x3 ∂ x1 ∂ x2 d ∂ x3 + a31 + a32 = −a33 ∂ a21 ∂ a21 d t ∂ a21 ∂ a21
. . . . . . . . . . . ∂ x3 ∂ x1 ∂ x2 d ∂ x3 = −a33 + a31 + a32 − x3 d t ∂ a33 ∂ a33 ∂ a33 ∂ a33
(VII.5) A. Sangiacomo C.
253
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
Paso 6: M n = M 0 , n=0 Y agrupando nos dan un total de 9 sistemas Paso 7: Repetir hasta cumplir Tol. de ecuaciones diferenciales como por {Cuerpo del Algoritmo} ejemplo (particularmente para a12 ): ∂ K (aij ) Paso 8: Calcular ; d dt d dt d dt
∂ x1 ∂ x1 = −a21 ∂ a12 ∂ a12 ∂ x2 ∂ x1 ∂ x2 − a32 = a21 ∂ a12 ∂ a12 ∂ a12 ∂ x3 ∂ x2 a32 = ∂ a12 ∂ a12
+ x2
∂ aij
{Por Simpson o trapecios}
Paso 9: Calcular α n óptimo por
⎧
⎫
⎩ 0 ≤α ≤ ∞ Paso 10: Calcular
⎭
α n = ⎨α : Mín K (aij − α g n )⎬
(VII.6) que al resolver da el valor de los valores de ∂ x1 ∂ x2 ∂ x3 , , , del cual sólo tomamos ∂ a12 ∂ a12 ∂ a12 ∂ x2 el de , para comparar. ∂ a12 VIII. Algoritmo: Paso 1: Definir la función: ij d wm ij ij = −amm wm + ∑ amk ⋅ wm + δ mi x j ; dt k ≠m para i ≠ j
M n +1 = M n − α n
∂ K (aij ) ∂ aij
;
Paso 11: n = n + 1; Paso 12: Si M n +1 − M n ≤ Tol entonces ir paso 14; Paso 13: En otro caso M n = M n +1 ir al Paso 8; Paso 14: Publicar M n +1 . {Como el valor óptimo del proceso}
IX. Programa Delphi Pascal
ij d wm ij ij = −amm wm + ∑ amk ⋅ wm − δ mi xm ; dt k ≠m para i = j , Paso 2: Definir la función
K (aij ) =
n
∑ σ m ∫0
m =1
T
(x
exp m (t ) − xm (t )
Paso 3: Definir la función
)2 dt
∂ K (aij ) ∂ aij
Paso 4: Definir la matriz M n× n 2 (a ij )
⎛ − a0 0 0 ⎞⎟ ⎜ 11 Paso 5: Ingresar M 0 = ⎜ a 021 − a 022 0 ⎟ ⎜ ⎟ ⎜ 0 a 032 0 ⎟ ⎝ ⎠ Tol. {Valor inicial y la Tolerancia} Nota: Son los valores respectivamente de
a21 ↔ a11 y a22 ↔ a32
F. Antoine S.
La idea de lo que debemos hacer para darle solución al problema es: Primero: se plantea el problema de tres ecuaciones diferenciales (VII.5) y resolver por método numérico con las aproximaciones dadas a21 y a32 . Segundo: se compara con los datos experimentales dados pro la muestra del compartimento observable. A. Sangiacomo C.
254
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
Tercero: se tiene en cuenta la tolerancia o error con alguna norma entre los datos experimentales y los calculados. Cuarto: de acuerdo al paso tercero se regresa al primero o se para el proceso. Por lo extenso del programa sólo se muestra en el disco compacto donde están todos los programas de este apéndice “parámetros”
Figura 1.
D.1. Problema de Degradación
Modelación 1. Se desea calcular el parámetro a y b óptimos, de una ecuación diferencial I. [ Motivaciones, Conceptos, métodos, ordinaria. recursos] [Un proceso de degradación es proporcional al proceso y ' ∝ y + r , r es un parámetro.] I.1. Motivaciones: Nos motiva como poder y ' = −ay + b (1) dar solución al problema anterior donde se dada una tabla de valores nos dice como hallar la solución del mejor t y parámetro “a y b” tal que sea óptimo (una idea, es que debe ser el mejor de un conjunto de 0 =0 1 valores que puede tomar a y b tal que la distancia = 0.5 = 0.899796867714381 2 entre los datos empíricos observables y los calculados sean los mejores u óptimos). 1 = 1.58787736114947 3 2
= 1.5
2
= 2.00053378903594 = 2.53888223531423
2.5 . . . . . . 20 . . . . . . t→∞
Solución:
F. Antoine S.
=2.84098081255924 . . . . . . . =3.99781840028095 . . . . . . . y→ 4 Tabla 1.
I.2. Conceptos: ecuación diferencial de primer orden, parámetro, óptimos, distancia, error y error controlado. Norma, funcional. [Recuerde error y distancia van de la mano, una necesita de la otra y viceversa.] I.3. Métodos: Solución general de una EDO de primer orden por métodos algebraicos ordinarios. Solución de una EDO de primer orden por métodos numéricos. Solución de una EDO de primer orden por métodos de series (Taylor, Picard, coeficientes indeterminados, …). Por otro lado, se debe poner en evidencia la necesidad de optimizar a través de cálculos, convencionales o no, un determinado parámetro. [En nuestro caso necesitamos idear A. Sangiacomo C.
255
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
{modelo básico} una forma que relacione los datos podemos hacer suponiendo unos valores ya empíricos y los calculados de alguna forma apropiada, conocidos de k, a y b, como por ejemplo: pero, verificable (ver el punto II y II.5.2).] k= − b y a=0.5, b=2, el cual nos daría una a
I.4. Recursos: Bibliografía ad hoc, tabla nueva, pero, que nos permite construir calculado-ras, computadoras, datos un camino posible de solución puesto que en experimentales, datos subliminales, material la tabla y (0) = 0 . humano, . . . [Para nuestro caso en esta vez, un t poco de conocimiento de ecuaciones diferenciales, y = b + ke − at → y = 4(1 − e − 2 ) . (4) a cálculo de raíces, optimización simple, una calculadora t y de bolsillo, o sino una computadora (ver el punto II y 0 = 0 III.2.)] 1 = 0.5 =0.8847969 2 II. [Análisis del sistema, marco experimental, relaciones, restricciones, estrategias de solución]
1 3 2
= 1.5738774
= 1.5
2 2.5
II.1. Análisis del sistema: Puesto que se tiene la variable independiente . . . . . . “t” (tiempo) y la dependiente resultados del 20 proceso representado por “y”. No olvidar los . . . . . . parámetros “a y b” del problema en cuestión. t→∞
= 2.1105338 = 2.5284822 = 2.8539808 . . . . . . . = 3.9998184 . . . . . . . y → 4.0000000 Tabla 2.
Entonces este sistema presenta una ecuación diferencial de primer orden con los De aquí se tratará de reencontrar a y b parámetros “a y b” [parámetro de suponiendo conocido k [puesto que el proceso proporcionalidad]. empieza en cero se puede dar por hallado el y ' ∝ − y + r → y ' = −ay + b (2) parámetro k]. La solución general presenta otro parámetro llamado de integración, digamos “k” que deben ser tomados en cuanta en el proceso de solución del sistema y = ba + ke − at , (3) parámetros a, b y k. Otra cualidad que no debemos dejar pasar es que empieza de cero o del instante t 0 = 0 .
Figura 2.
II.2. Marco experimental: presenta la tabla 1 que son los valores experimentales II.3. Relaciones: las relaciones que tenemos es la que están referidas a la solución de una (empíricos) tomados del fenómeno. diferencial por métodos En algunos casos podemos construir nosotros ecuación algebraicos. un tabla de valores subliminales de datos seudo experimentales para conseguir una idea más clara del problema. Esto lo F. Antoine S.
A. Sangiacomo C.
256
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
La construcción del modelo básico II.5.2. Creación de un funcional, este debe alternativo, con valores supuestos, ya tener en cuenta un proceso de mejorar la conocidos de (4). forma de encontrar los parámetros a y b Estos nuevos valores pueden ser manejados h(a, b) = Experii (a, b) − Calci (a, b) (5) muy fácilmente y darnos una idea de o más particular consecución de una solución para un caso b h(a, b) = ∫ ( Experii (a, b) − Calci (a, b)) 2 dt hipotético (ver III.). a
(6) Métodos de ajuste de curvas por métodos 3 5 1 t ∈{0, 2 ,1, 2 ,2, 2 ,20} y estadísticos y otros, cálculo de raíces por donde métodos directos o numéricos [bisección, Calc (a, b) ≡ Calc (a, b, t ) , o sea depende de i i cuerdas, Newton, …]. Se puede recurrir a otros − at b métodos sofisticados como son de t, [recordar y = a + ke ]. n optimización [Áurea, Cúbicas, Newton, …], 2 máximos y mínimos, gradiente, direcciones h(a, b) = ∑ ( Experii (a, b) − Calci (a, b)) i =0 conjugadas, … n
h(a, b) = ∑ ( Experii (a, b) − Calci (a, b)) .
II.4. Restricciones: en la modelación se debe i =0 de considerar las restricciones que presenta (7) dentro de la tabla 1 y además si es problema real, no hay infinitos, no hay aparentes III. [ F o r m u l a c i ó n d e h i p ó t e s i s , saltos, el proceso es aparentemente suave. Si Formulación del modelo básico, es proceso de degradación tiene fin en algún Formulación del modelo simplificado] momento [al menos en cantidades considerables]. Tal vez, restricciones de tipo de cálculo, falta III.1. Formulación de hipótesis: de algunos pre experimentos e información H0: (H4) El valor óptimo de “a y b” se puede adicional sobre el mismo proceso de calcular optimizando el funcional h(a, b) de degradación. arriba. Se ve de la tabla que el valor b>0. Por otro lado se tiene la gran escasez de H1: La solución se hallará por métodos datos experimentales. numéricos para cada ai , bi y tendremos una II.5. Estrategia de solución: sucesión de valores { y 0 , y1 , L , y n } . Debe II.5.1. Para este caso particular la primera entenderse que los y i para cada t j , estrategia es considerar unos valores de k y de a conocidos [k= - 4 y a=0.5, b=2, ver (4)] j = 0,1, ..., N t son soluciones de (2) por y con ellos construir la tabla 2 de arriba. Con cualquier método. esta se puede idealizar una solución: H2: La solución la conseguiremos haciendo II.5.1.1. Calcular el valor de a por reemplazo cálculos en un funcional que represente a la directo en (4) de algunos valores de la tabla distancia (error) entre los datos 2, estos serán verificados. experimentales y los calculados por el II.5.1.2. Despejar a de (3), suponiendo que el modelo o un submodelo. valor de k es conocido (k= - 4). H3: El proceso debe construir una sucesión convergente de puntos {a0 , a1 , a2 ,L L, an ,L} → a , {b0 , b1 , b2 , L F. Antoine S.
A. Sangiacomo C.
257
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
L, bn ,L} → b , donde a y b son los valores y = ba + ke − at , es la solución. buscados. Con el valor de que para t=0, y=0 se obtiene k= − ba : III.2. Formulación del modelo básico: Recuerde todos los interesados en resolver y = ba (1 − e − at ) un sistema (problema) tienen en su mente Sea alguna idea, una visión o una imagen a particular de como podrían hallar un modelo, h(a, b) = (0.8847969 − b (1 − e − 2 )) 2 a una solución, de como funciona; esa misma + (1.5738774 − ba (1 − e − a )) 2 idea, visión, imagen constituye un modelo básico. − a( 3 ) + (2.1105338 − ba (1 − e 2 )) 2
Para nuestro caso particular nuestro modelo básico es una “ecuación diferencial” y de alguna solución con algún parámetro.
+ (2.5284822 − ba (1 − e −2 a )) 2
+ (2.8539808 − ba (1 − e
− a ( 52 )
)) 2
III.2.1. Usando la tabla 2 se tendrá los La filosofía de hallar un óptimo para este siguientes resultados básicos: caso cambia un tanto pues, se tiene a la vista y = ba + ke − at , es la solución. dos parámetros (variables) a y b. Nuestro nuevo problema [submodelo se de la óptica de la Con el valor de que para t=0, y=0 se obtiene optimización de varias variables], podríamos usar k= − ba : un método muy sencillo así como el método y = ba (1 − e − at ) (8) coordenado [Usted puede ver otros …] Para t = 1 , se tiene y = 1.5738374 , y t = 2 , y = 2.5284822 , remplazando Se plantea de la siguiente forma: se tiene Se traza dos gráficas particulares en calculamos un a: dirección de a y después en dirección b. las gráficas generan formas que nos dan la 1.5738374 = ba (1 − e − a ) posible certeza de un descenso. 2.5284822 = ba (1 − e −2 a )
Dividiendo miembro a miembro se tiene: 2.5284822 − 1 = e −a 1.5738374 5284822 a = − ln( 12..5738374 − 1)
esta es en dirección de a, como se nota tiene un mínimo en el intervalo [0.1, 5]
a = 0.49993279 con ese valor podemos calcular el valor de b: 1.5738374(0.49993279) = b(1 − e −0.49993278 ) b = 1.99988758 ; el cuales puede verificar para todos los valores. [Recuerde este es sólo un mero (simple) ver que resuelve.]
III.2.2. Usando la tabla 2 se tendrá los siguientes resultados básicos: F. Antoine S.
A. Sangiacomo C.
258
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
esta es en dirección de b, como se nota tiene un mínimo en el intervalo [-1, 5]
Figura 5. Figura 3. ⎛a⎞ ⎛a⎞ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ − α k Gk ; ⎝ b ⎠ k +1 ⎝ b ⎠ k
Programando este método en Delphi, en C++, en MAtLab, etcétera. El proceso de solución se vuelve tedioso pues después de 50 iteraciones empezando ⎛1 ⎞ ⎛ 0⎞ donde Gk toma direcciones ⎜⎜ ⎟⎟ o ⎜⎜ ⎟⎟ esto del punto inicial (a, b)=(1, 5) se tiene por ⎝ 0⎠ ⎝1 ⎠ solución (a, b)=(0.59779, 2.15740) y después es si k es impar o par respectivamente así: de 303 (a, b)=(0.50001, 2.00003). [Tiene sus ⎛1 ⎞ ⎛a⎞ ⎛a⎞ bemoles en el algoritmo.] ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ − α k ⎜⎜ ⎟⎟ ⎝ 0 ⎠ k impar ⎝ b ⎠ k +1 ⎝ b ⎠ k Para el caso de la tabla 1 se tiene el siguiente o resultado: ⎛0⎞ ⎛a⎞ ⎛a⎞ ⎜⎜ ⎟⎟ (10) Después de 50 iteraciones empezando del = ⎜⎜ ⎟⎟ − α k ⎜⎜ ⎟⎟ ⎝1 ⎠ k par ⎝ b ⎠ k +1 ⎝ b ⎠ k punto inicial (a, b)=(1,5) se tiene por solución (a, b)=(0.59127, 2.12668) y después donde α k se toma del conjunto de 331 (a, b)=(0.48807, 1.96257). ⎛⎛ a ⎞ ⎞ α k ∈{α : Mín h⎜ ⎜⎜ ⎟⎟ − α (Gk )⎟} . (11) ⎟ III.2.3. Una alternativa mucho mas poderosa 0 ≤α < ∞ ⎜ ⎝ b ⎠ k ⎝ ⎠ es pues de usar método de gradiente: ⎛a⎞ ⎛a⎞ Y en una figura total se ve así: ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ − α k Gk . (8) ⎝ b ⎠ k +1 ⎝ b ⎠ k
Figura 4.
(9)
donde Gk toma direcciones de gradiente o sea: ⎛ ha (a, b) ⎞ ⎟⎟ Gk = ⎜⎜ ⎝ hb (a, b) ⎠ ⎛ ha (a, b) ⎞ ⎛a⎞ ⎛a⎞ ⎟⎟ (12) ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ − α k ⎜⎜ ⎝ b ⎠ k +1 ⎝ b ⎠ k ⎝ hb (a, b) ⎠ k
n Una idea de llegar al óptimo es caminar en ha ( a, b) = 2∑ [( yi − ba (1 − e − at i )) cada coordenada y halla ese mínimo, luego i =1 en la otra, como se ve el la figura 5: ⋅ b2 (1 − e − at i )(− ba ti e − at i )]
a
n
hb (a, b) = 2∑ ( yi − ba (1 − e − at i ))( − 1a (1 − e − at i )) i =1
(12’) F. Antoine S.
A. Sangiacomo C.
259
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
donde los valores ti y yi son los valores de tabla 1 o 2 y el α k es un elemento del III.3. Formulación del modelo simplificado: Una vez que el modelizador tiene el modelo conjunto formado por básico, la siguiente etapa es el procesamiento ⎛⎛a⎞ ha (a, b) ⎞ ⎞ ⎛ y depuración de la información, ⎟⎟ ⎟ } . α k ∈ {α : Mín h⎜ ⎜⎜ ⎟⎟ − α ⎜⎜ ⎜ ⎟ formalización de conceptos, estructuramiento 0 ≤α < ∞ ⎝ hb (a, b) ⎠ k ⎠ ⎝ ⎝ b ⎠k de técnicas y depuración de datos e (13) información, y de experimentación, es cuando a comenzado la construcción del Usando los valores de la tabla 2 nos resulta modelo simplificado, ello es pues que después de 50 iteraciones empezando del estamos entrando en una mejor comprensión punto inicial (a, b)=(1,5) se tiene por del sistema. solución (a, b)=(0.86693, 2.65838) y después [En nuestro modelo se empieza ya por tener la forma de 303 iteraciones (a, b)=(0.50061, 2.00099). clara de cómo se puede encontrar el parámetro a, y b ver el punto III.2.2 y III.2.3 de arriba.] Para la tabla 1, después de 50 iteraciones empezando del punto inicial (a, b)=(1,5) se III.3.1. El valor de a y b se calcula por el tiene por solución (a, b) =(0.81380, 2.53724) óptimo de y después de 782 iteraciones (a, b)=(0.48806, n 1.96254). 1 h(a, b) = ∑ ( Experii (a, b) − Calci (a, b)) 2 i =0
Una comparación de la tabla 1, directa n 2. h(a, b) = ∑ Experii (a, b) − Calci (a, b) usando el resultado: i =0 (a, b) = (0.48806, 1.96254) b −0.48806 t 1.96254 y = 0.48806 (1 − e ). (14) 3. h(a, b) = ∫ ( Experii (a, b) − Calci (a, b)) 2 dt a
(15) tal que h(a, b) → mínimo ; ello se consigue 0 =0 =0 por [no únicos] método de Gradiente, Newton, 1 =0.870713244962 Davidon-Fletcher-Powell, …: = 0.899796867714 = 0.5 2 688 381 Con la restricción de que se verificará en = 1.587877361149 1.552885839895 = cada paso que h(a, b) n > h(a, b) n +1 . 1
t
3 2
yexperim
= 1.5
2 2.5 . . . . 20
47 =2.000533789035 94 =2.538882235314 23 =2.840980812559 24
yCalcul
02 =2.087343598484 24 =2.506072081331 III.3.2. El valor de a y b se calcula por el óptimo de 82 n =2.834130827846 h ( a, b ) = ( Experii (a, b) − Calci (a, b)) 2 53
∑
. . . . =3.997818400280 =4.020872164456 95
. . . . t→∞
i =0
(16) Pero aquí analizamos la derivada solamente, 54 ⎛ ha (a, b) ⎞ ⎟⎟ , en otras palabras o sea, Gk = ⎜⎜ 4.02110396262755 ⎝ hb (a, b) ⎠
. . . . . . . y→ 4 Tabla 3. estudiamos las variaciones en dirección del Qué correcciones se pueden hacer o deben hacerse?
F. Antoine S.
A. Sangiacomo C.
260
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
gradiente, por el criterio de descenso de h(a, b) o h(a, b) n > h(a, b) n +1 . Por los visto en el punto III.2.3, tuvimos a= 0.4880564064215341, b= 1.9625431420593951. ello se tiene comparado en la tabla 3. y=
1.96254 (1 − e −0.48806 t ) . 0.48806
Figura 6.
⋅ ∂∂b yiR − K (a, b) ,
(17)
donde yiR − K (a, b) es la solución de (1) por métodos numéricos de Runge - Kutta para un a y b particular del paso correspondiente; ∂ y R − K (a, b) y ∂∂b yiR − K (a, b) es la ∂a i derivada de (1) el cual crea dos nuevas ecuaciones diferenciales: ( y ' )'a = (−ay + b)'a ( y ' )'a = − y − a ( y )'a , haciendo u = ( y )'a se tiene: (18) u '= − y − au y ( y ' )'b = (− ay + b)'b ( y ' )'b = − a( y )'b +1 , haciendo v = ( y )'b se tiene: v ' = −a v + 1 (19) Probar que (18) y (19) son es ciertas??? Estas se resuelven por Runge Kutta pero con condiciones iniciales homogéneas.
III.3.3. Se puede usar métodos numéricos Haga los planteamientos necesarios para resolver para la solución de la ecuación diferencial por tres métodos diferentes por lo menos. [Runge-Kutta] el planteamiento podría ser IIII. Verificación: [confrontación, comprobación, como sigue: confirmación, revisión, control, prueba, demostración, ⎛ ha (a, b) ⎞ ⎛a⎞ ⎛a⎞ ⎜ ⎟ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ − α k ⎜ ⎟ (12) justificación] ⎝ b ⎠ k +1 ⎝ b ⎠ k ⎝ hb (a, b) ⎠ k
Falta verificar con CHI o t
De n
h( a, b) = ∑ [( yi − yiR − K ( a, b))]2 i =1
se tiene: n
ha ( a, b) = −2∑ [( yi − yiR − K ( a, b)) i =1
⋅ ∂∂a yiR − K (a, b) n
hb (a, b) = −2∑ [( yi − ( yi − yiR − K (a, b)) i =1
F. Antoine S.
.
Aquí es donde se hacen la confrontación, la comprobación, una confirmación y los procesos de cotejar los resultados. Otra situación que aquí se debe hacer es la revisión y control del modelo y un examen del funcionamiento en tiempo real y proyectado. Es donde se pone en evidencia la demostración y justificación con pruebas reales.
A. Sangiacomo C.
261
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
Y por último un repaso y la investigación de las evidencias que ha crea y dejado como huella el modelo.
1 3 2
= 1.57387736114947 = 1.5
= 2.11053378903594 = 2.52848223531423 = 2.85398081255924 . . . . . . . =3.99981840028095 . . . . . . . y→ 4 Tabla 3.
2 V. Validación : [legalidad, eficacia, legitimidad, 2.5 vigencia, actualidad, efectividad, autenticidad, refrendo, . . . . . . certificación, permanencia] 20 . . . . . . Falta verificar con CHI o t t→∞ En esta etapa nos proponemos ver la legalidad y la legitimidad, seguida de la eficacia, la vigencia y la efectividad del Par el punto III.2.3. modelo simplificado. III.2.3. Para el método de gradiente: De otro lado, ver la actualidad y la autenticidad del modelo, si es conveniente, si Algoritmo: es posible que se refrende solo y su certificación en su funcionamiento [ver su Paso 1: definir h(a, b) generalidad]. n También su vigor, la fuerza y permanencia, = ∑ ( Experii (a, b) − calci (a, b)) 2 de hecho la utilidad y justeza del modelo. i =0 ⎛ ha (a, b) ⎞ ⎟⎟ ; Paso 2: Definir Gk = ⎜⎜ ⎝ hb (a, b) ⎠ // como la fórmula (12) y (12’) en III.2.3. VI. Implementación: Dotar de los medios que se tengan a mano Paso 3: Entrar a0 , b0 y error; //puntos iniciales y tolerancia de cálculo obtenidos por el modelo para la consecuente Paso 4: Calcular aplicación o Implementación del trabajo que n sea productivo, que rinda frutos en la h ( a , b ) = − 2 ∑ [( yi − ba (1 − e − at i )) a utilización del modelo.
.
i =1
“Dotar de los medios necesario para hacer algo o realizar algo.”
⋅ b2 a
(1 − e − at i )(− ba ti e − at i )] n
hb (a, b) = −2∑ [( yi − ba (1 − e − at i )) i =1
Apéndice: [El caso donde se supone que la EDO y’ =f (t, y) no se puede resolver analíticamente, veamos eso en III.3.3.]
( − 1a (1 − e − at i ))]
//donde los valores ti y yi son los valores de //tabla 1 o 2 ⎛a⎞ Para y ' = −ay + b (1) Paso 5: Calcular α k y ⎜⎜ ⎟⎟ de: y con las condiciones que y(0)=0 y b=2 y ⎝ b ⎠ k +1 a=0.5. ⎛⎛a⎞ ⎛ h (a, b) ⎞ ⎞⎟ ⎟⎟ } α k ∈ {α : Mín h⎜ ⎜⎜ ⎟⎟ − α ⎜⎜ a ( , ) 0 ≤α < ∞ ⎜ ⎝ b ⎠ h a b b t y ⎝ ⎠ k ⎟⎠ k ⎝ 0 =0 // el α k es un elemento de ese conjunto 1 = 0 . 5 2 =0.884796867714381 F. Antoine S.
A. Sangiacomo C.
262
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
⎛ ha (a, b) ⎞ ⎛a⎞ ⎛a⎞ ⎟⎟ = ⎜⎜ ⎟⎟ − α k ⎜⎜ y luego ⎜⎜ ⎟⎟ ⎝ b ⎠ k +1 ⎝ b ⎠ k ⎝ hb (a, b) ⎠ k ⎛a⎞ ⎛a⎞ − ⎜⎜ ⎟⎟ < error ir a (8) Paso 6: si ⎜⎜ ⎟⎟ ⎝ b ⎠ k +1 ⎝ b ⎠ k Paso 7: en otro caso k=k+1; ir a (4) ⎛a⎞ Paso 8: publicar ⎜⎜ ⎟⎟ ; ⎝ b ⎠ k +1 Paso 9: Parar.
( y ' )'b = − a ( y )'b +1 , haciendo v = ( y )'b se tiene: v ' = −a v + 1
(19)
Algoritmo: Paso 1: Definir h(a, b) n
= ∑ ( Experii (a, b) − calci (a, b)) 2 i =0
Paso 2: Entrar a0 , b0 y error; Para el punto III.3.3. Paso 3: Definir por Runge - Kutta yiR − K (a, b) ; III.3.3. Usando métodos numéricos por el // para las condiciones iniciales del modelo método Runge - Kutta para la solución de la ∂ Paso 4: y: y R − K ( a, b ) ecuación diferencial se sigue: ∂a i ⎛ ha (a, b) ⎞ ⎛a⎞ ⎛a⎞ ∂ R−K ⎟⎟ (12) y ( a, b ) ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ − α k ⎜⎜ ∂b i b b h ( a , b ) ⎝ ⎠ k +1 ⎝ ⎠ k ⎝ b ⎠k // con las condiciones iniciales homogéneas Paso 5: Calcular n n R−K ha ( a, b) = −2∑ [( yi − yi ( a, b)) ha ( a, b) = −2∑ [( yi − yiR − K ( a, b)) i =1
i =1
⋅ ∂∂a yiR − K (a, b)
⋅ ∂∂a yiR − K (a, b)
n
hb (a, b) = −2∑ [( yi − ( yi − yiR − K (a, b))
n
hb (a, b) = −2∑ [( yi − ( yi − yiR − K (a, b))
i =1
⋅ ∂∂b yiR − K (a, b) ,
i =1
(17)
⋅ ∂∂b yiR − K (a, b)
// como la fórmula (18) y (19) en III.3.3. donde yiR − K (a, b) es la solución de (1) por //donde los valores ti y yi son los valores de métodos numéricos de Runge - Kutta para un //tabla 1 o 2 a y b particular del paso correspondiente; ⎛a⎞ ⎜⎜ ⎟⎟ Paso 6: Calcular α y de: R−K ∂ R−K ∂ k y ( a , b ) y ∂ b yi (a, b) es la ∂a i ⎝ b ⎠ k +1 derivada de (1) el cual crea un dos nuevas ⎛⎛a⎞ ⎛ h (a, b) ⎞ ⎞⎟ ⎟⎟ } α k ∈ {α : Mín h⎜ ⎜⎜ ⎟⎟ − α ⎜⎜ a ecuaciones diferenciales: ( , ) 0 ≤α < ∞ ⎜ ⎝ b ⎠ h a b b ⎝ ⎠ k ⎟⎠ k ⎝ ( y ' )'a = (− ay + b)'a // el α k es un elemento de este conjunto ( y ' )'a = − y − a ( y )'a ,
haciendo u = ( y )'a se tiene: u '= − y − au y ( y ' )'b = (− ay + b)'b F. Antoine S.
(18)
⎛ ha (a, b) ⎞ ⎛a⎞ ⎛a⎞ ⎟⎟ = ⎜⎜ ⎟⎟ − α k ⎜⎜ y luego ⎜⎜ ⎟⎟ ⎝ b ⎠ k +1 ⎝ b ⎠ k ⎝ hb (a, b) ⎠ k
⎛a⎞ ⎛a⎞ − ⎜⎜ ⎟⎟ < error ir a (9) Paso 7: si ⎜⎜ ⎟⎟ ⎝ b ⎠ k +1 ⎝ b ⎠ k A. Sangiacomo C.
263
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
2.0873519247481 8 2.5060836582987 2 = 2.52848223531423 9 Paso 10: Parar. 2.8341455245783 2.5 = 2.85398081255924 4 Usando el algoritmo para el punto III.3.3. . . . . . . . . . . . para la tabla 3 se tiene: 20 =3.9998184002809 Empezando (a, b)=(0.8, 4) y un error =1e-4 5 en un programa en Delphi, después de 154 . . . . . . . . . . . iteraciones: t→∞ y→ 4 a= 0.501471468794668 b= 2.00241097045862 h(a, b)= 2.06944326240555E-6; t=0.0; y= 0 Otro: t=0.5; y= 0.885549455453002 Usando el algoritmo de Davidon Fletcher t=1.0; y= 1.57470923492254 Powell, considerando sólo los datos del t=1.5; y= 2.11103298139873 intervalo [0, 2.5] se tiene: t=2.0; y= 2.52841537892586 t=2.5; y= 2.8532342349062 a= 0.4880564063674041 Para error =1e-10 después 532 iteraciones b= 1.9625431419652620 a = 0.500000005509842 b = 2.00000001866987 f(...) = 0.0107296347335802 en 776 Iteraciones h(a, b)= 1.97340590554093E-18 Reemplazando en t=0.0; y= 0 y = ba (1 − e − at ) t=0.5; y= 0.884796868453144 t=1.0; y= 1.57387736197043 se tiene: t=1.5; y= 2.11053378953686 652620 y = 10..9625431419 (1 − e −0.4880564063 674041t ) t=2.0; y= 2.52848223526679 4880564063 674041 t=2.5; y= 2.85398081185179 bueno así sucesivamente. t y y calculada 0 =0 =0 1 Para la tabla 1 se tiene: = 0.5 =0.88479686771 =0.8707153894208 Para un error=1e-9 después de 552 iteraciones 2 4381 05 a = 0.488056507067734 b = 1.96254330904985 1 = =1.5528908902021 1.57387736114947 h(a, b)= 0.01072963473359 3 =2.0873518857471 t=0.0; y= 0 = 1.5 = 2 2 2.11053378903594 t=0.5; y= 0.870715442451957 =2.5060836570168 2 = t=1.0; y= 1.55289095044864 2.52848223531423 6 t=1.5; y= 2.08735192474818 =2.8341455693588 2.5 = t=2.0; y= 2.50608365829879 2.85398081255924 4 t=2.5; y= 2.83414552457834 . . . . . . . . . . . 20 =3.9998184002809 =4.0209081914194 t y y calculada 5 7 0 =0 =0 . . . . . . . . . . . 1 = 0.5 =0.88479686771 =0.870715442451 2 t → ∞ y → 4 4381 957 1 = =1.552890950448 1.57387736114947 64
Paso 8: en otro caso k=k+1; ir a (5) ⎛a⎞ Paso 9: publicar ⎜⎜ ⎟⎟ ; ⎝ b ⎠ k +1
F. Antoine S.
3 2
= 1.5 =
2.11053378903594
A. Sangiacomo C.
264
Apéndice
Método Numéricos para la Solución de Ecuaciones Diferenciales
Considerando el intervalo aumentado [0, 2.5] y el punto t=20 se tiene: a= 0.4924193411800212 b= 1.9691081758046109 h(...) =0.0107482956260861 en 368 Iteraciones Problema: Se puede pensar que la expresión
y = ba (1 − e − at ) de y ' = −ay + b , del problema anterior, se le puede agregar una condición más que es b=4a. El problema toma otra versión de la optimización, podría sugerir una solución y la alcanzaría a construir una implementación.
F. Antoine S.
A. Sangiacomo C.
265
Bibliografía
Método Numéricos para la Solución de Ecuaciones Diferenciales
Bibliografía Becker, E. B. (1981). Finite Elements – An Intriduction Vol. 1 Englewood Cliffs, Nj: Prentice Hall 1981 Burden, R. Faires, J. D. (1985). Análisis Numérico. México: Ed. Grupo Editorial Iberoamérica ISBN 968-7270-09-8 Burnett, D. S. (1987). Finite Element Analysis from Comcepts to Applications. Reading, MA: Addison Wasley. Cantú, M. (1985). La biblia del DELPHI 5. Madrid: Ed. Anaya Multimedia. ISBN 84-4150994-8 Chandrupatla, T. y Belengundu, A. (1999). Elementos Finitos en Ingeniería. México Prentice Hall ISBN 970-17-0260-3 Chartre, F. (s.f.). Programación con DELPHI 4. España Ed. Anaya Multimedia Cornell, G. y Strain. T. (1995). Programación en Delphi. México: De. McGraw Hill ISBN 84-481-0339-4 Craggs, J. W. (1975). Calculo de Variaciones. México: Editorial Limusa Osier, D. y Bastón, S. (1996). Aprendiendo DELPHI 3 en 21 dias Ed. Prentice Hall Hipanoamericana S.A. México 1996 ISBN 0-672-30863-0 Demidovich, y Maron. (1985). Cálculo Numérico Fundamental. Ed. Paraninfo. Madrid. España. 1985 Demidowitsch, B. Maron, I. y Schuwalowa, E. (1980). Métodos Numéricos de Análisis. Madrid: Ed. Paraninfo ISBN 84-283-1056-4 Duntemann, J. (1989). La Biblia del turbo Pascal. España: Ed. Anaya Multimedia. ISBN-84-7614-223-4 España. 1989 Elsgotz, L. (1983). Ecuaciones Diferenciales y Cálculo Variacional. Moscú: Editorial Mir. Etter, D. (1998). Solución de Problemas de Ingeniería con MatLab. México: Ed. Prentice Hall Hispanoamericana. ISBN 0-13-397688-2 ISBN 970-17-0111-9 Gelfand, I. y Fomin, S. (1963). Calculus of Variations. New Jersey: Editorial Prentice Hall. Gerald, C. y Whwatley, P. (2000). Análisis Numérico con Aplicaciones. México: Ed. Prentice Hall Pearson Educación, sexta Edición ISBN 968-444-393-5 Heran, D. Baker, P. (1988). Gráficas por Computadora. México: Ed. Prentice Hall Hispanoamericana. Valeria, I. (1991). EDP Um Curso de Graduação. Rio de Janeiro: Editorial Impa Rio de Janeiro 1991 ISBN 85244-0065-X Issacson, E. y Keller, H. (1979). Analysis of Numerical Methods. Habana Cuba: Ed. Edición Revolucionaria Habana. Kincaid, D. y Cheney, W. (1994). Análisis Numérico, U.S.A.: Las Matemáticas de Cálculo Científico. Ed. Addison Weslwy Iberoamericana. ISBN 0-201-60130-3 Krasnov, M., Makarenko, G. y Kiseliov, A. (1976). Cálculo Variacional (ejemplos y problemas). Moscú: Editorial Mir. Nakamura, S. (1992). Métodos Numéricos Aplicados con Software. México: De. Prentice Hall Hispanoamericana. ISBN 968-880-263-8 Nieves, A. y Domínguez, F. (1997). Métodos Numéricos Aplicados a la Ingeniería. México: Ed. CECSA. ISBN 968-26-1260-8
F. Antoine S.
A. Sangiacomo C.
266
Bibliografía
Método Numéricos para la Solución de Ecuaciones Diferenciales
Noble, B. y Daniel, J. (1989). Álgebra Lineal Aplicada. México: Ed. Prentice Hall Hispanoamericana. ISBN 968-880-173-9 O’Briem, S. (1993). Turbo Pascal 7 Manual de referencia. Madrid: Ed. McGraw Hill. ISBN 84-481-0119-07 Osier, D. Grobman, S. y Batson, S. (1996). Aprendiendo DELPHI 2 en 21 Días. México: De. Prentice Hall Hispanoamericana. ISBN 0-672-30863-0 Peral A, I. (1995). Primer curso de Ecuaciones en Derivadas Parciales. E.E.U.U.: Editoprial Addison Wesley. ISBN O-201-65357-5 Pike, R. (1989). Optimización en Ingeniería. México: Edi. AlfaOmega. ISBN-968-6062-86-6 Sangiacomo, A. (1999). DELPHI Pero si es muy Fácil. Arequipa: Editorial UNSA. Sangiacomo, A. y Antoine, S. (1998). Análisis Numérico 1 Métodos del Análisis. Arequipa: Ed. UNSA. Sangiacomo, A. y Antoine, S. (2002). Compilador para Uso en la Programación para Métodos Numérico. Arequipa: Ed. Departamento Matemática UNAS. Tixeira, S. y Pacheco, X. (2000). Guía de Desarrollo Delphi. España: De. Prentice Hall. ISBN 0-672-32781-8. Tomo I y II Wylie , R. (1985). Matemáticas Superiores Para ingenieros. México D.F.: Edi. McGraw-Hill. ISBN-968-604684-4 Zienkiewicz, O. (1985). The Finite Element Method. New York: McGraw-Hill 3d ed.
HAGA TODO CON PAZ, AMOR Y FRATERNALMENTE El conocimiento es de la Inteligencia Cósmica, o sea, de toda la "Humanidad" Que el Cósmico te dé 3 veces, lo que deseas para Mí.
F. Antoine S.
A. Sangiacomo C.
267
Índice alfabético
Método Numéricos para la Solución de Ecuaciones Diferenciales
A Abierto 40, 112 Adams 40, 41, 42, 44, 45, 46, 50, 64 Adams Bashforth 44, 46, 50, 64 Adams Moulton 47, 65 Algoritmo de Adams 44 Algoritmo de diferencias finitas no lineal 82, 92, Algoritmo de diferencias finitas no lineal de Newton 92 Algoritmo de diferencias finitas para el problema lineal 82 Algoritmo de diferencias finitas para la ecuación de Poisson 160 Algoritmo de disparo lineal 70, Algoritmo de disparo no lineal 76, 98 Algoritmo de Euler 9 Algoritmo de para el caso Crank - Nicolson 171, 172, 175 Algoritmo de para el caso progresivo 167 Algoritmo de para el caso regresivo 168 Algoritmo de Runge - Kutta 22, 52, 54, 77 Algoritmo de Runge - Kutta de cuarto orden 22 Algoritmo de Runge - Kutta para sistemas 52 Algoritmo de segmentario lineal de Rayleigh - Ritz 109, 113 Algoritmo con trazador cúbico 122 Algoritmo de tridiagonales 82 Apéndice 27, 65, 118 Apéndice: Programa en Delphi para Heun 27 Apéndice: Programa Multipaso 64 Apéndice: Método de Ritz 118 Apéndice: Fronteras del Tipo Completo 94 Aproximaciones 5, 7, 12, 39, 99, 103 Aproximaciones por expresiones analíticas 99, Aproximaciones sucesivas 5, 7, 88
B Bashforth 40, 44, 46, 50, 64 Bien planteado (formulado correctamente) 3, 8, 147 Bien planteado 3, 8, 147
C Canónica 127, Caso homogéneo 163 Caso no homogéneo 167 Cauchy 140, 143, 144, 148, Cerrado 40, 151, 153, 194, 212 Coeficiente indeterminados 16, 17 Colocación 99, 104, 107 Condición de contorno 141, 148, 201 Condición de otogonalidad 109 Condición de Euler 118 Condiciones de contorno de Dirichlet 150, 153, 227 Condición de frontera 81, 98, 152, 159, 213, 237 Condición de Lipschitz 1, 4, 51, 59 Condiciones de contorno o fronteras 109, 140, 148, 201 Condiciones iniciales 7, 14, 32, 140 F. Antoine S.
A. Sangiacomo C.
268
Índice alfabético
Método Numéricos para la Solución de Ecuaciones Diferenciales
Condiciones iniciales de Cauchy 143, 147 Condiciones interiores 150 Contorno 85, 99, 140, 149, 153 Coordinantes (bases) 107, 218 Correcciones del problema Dirichlet 153 Crank - Nicolson 171, 173 Cuerda oscilante 127
D Definida positiva 117, 122, 166, 239, 252 Derivaciones sucesivas 14 Diagonal estrictamente dominante 166 Diferencias centrales 80, 155, 164, 186 Diferencias finitas centrales 80, 175, 179 Diferencias finitas para problemas lineales 79 Diferencias regresivas 166, 171 Dirichlet 84, 150, 153, 216, 226 Discriminante 125, 205 Disparo lineal 68, 70
E Ecuación característica 127, 223 Ecuación de Euler 118 Ecuación de la cuerda oscilante 127 Ecuación diferencial de Poisson 128, 197, 211 Ecuación subsidiaria 131 Ecuaciones de orden mayor 50 Ecuaciones homogéneas irreducibles 133 Ecuaciones reducibles 130, 137 EDP de diferencias finitas 154, 160, 164, 167 EDP del tipo elíptico 126, 149, 154, EDP elípticas 125, 149, 154 EDP hiperbólica 145, 175 EDP no homogénea 137, 167 EDP parabólica 163, 167, 172 EDP por operadores 129 El método de Crank - Nicolson 171 Elíptico 125, 149, 154 Enfoque correcto del problema Mixto 140 Error 6, 13, 18, 25, 30, 45, 58, 80, 102, 165 Estabilidad 25, 57, 63, 171 Euler 7, 19, 58, 118, Explícito 40, 44, 48 Expresiones analíticas 99 Extrapolación 39, 40 Extrapolación de Adams 40
F Forma Canónica 127 Fórmula de diferencias finitas centrales 80 Fourier 105, 185 Función Complementaria 129, 137 F. Antoine S.
A. Sangiacomo C.
269
Índice alfabético
Método Numéricos para la Solución de Ecuaciones Diferenciales
Funciones armónicas 150 Funciones coordinantes (bases) 107, 109, 218
H Hadamard 147 Heun 20, 27, 51, 60 Hiperbólico 125, 145 Homogéneas reducibles 130
I Implícito 40, 47, 175 Interpolación de Hermite 24 Irreducible 130, 134, 139 Iteraciones de Newton 89, 96
J Jacobiano 91, 95, 125
L Lagrange 118, 131, 136 Lagrangeano 251 Laplace 126, 128, 147, 150 Líneas de red 154 Lipschitz 1, 3, 4, 12, 50, 59, 62
M Maclaurin 135 Método de Adams 42, 44, 46 Método de Adams Moulton 47 Método de Bashforth 44, 46 Método de Coeficientes indeterminados 16 Método de diferencias finitas para problemas lineales 79 Método de diferencias regresivas 166, 171 Método de disparo lineal 68, 70 Método de disparo no lineal 76 Método estable 58, 171 Método de Euler 7, 11, 51 Método de explícito o abierto 40, 44, 48 Método de Extrapolación 40, Método de extrapolación de Adams 40, 41 Método de Galerkin 105 Método de Heun 20, 60 Método implícito o cerrado 40 Método de la integral 102 Método de la integral de los mínimos cuadrados 102 Método de la secante 33, 76, Método de los mínimos cuadrados 102, 104 F. Antoine S.
A. Sangiacomo C.
270
Índice alfabético
Método Numéricos para la Solución de Ecuaciones Diferenciales
Método de los puntos de los mínimos cuadrados 102, 104 Método de Milne 47, 50 Método de modificado de Euler 19, Método de multipaso 39, 45, 64 Método de Newton 79, 88, 92 Método de Picard 5, 6 Método del punto medio 19, 24 Método de Rayleigh - Ritz 109, 113, 115, 121 Método de Richardson 171, Método de Runge - Kutta 18, 23, 25, 27, 42, 48, 52, 77 Método de Runge - Kutta de cuarto orden 21, 25, 29 Método de Runge Kutta de segundo orden 19, 51, 69 Método de Runge Kutta de tercer orden 20, 61 Método de Taylor 14, 17, 19 Método para EDO no lineal mediante la solución de sistemas no lineales 90 Método progresivo 166, 167, 174 Método de regresivas 166 Milne 47, 50 Mínimos cuadrados 102, 104 Mixto 85, 125, 140, 146 Moulton 47 Multipaso 39, 45, 64, 134
N Neumann 85, 150 No homogéneas 99, 107, 126, 128, 137, 167 Nodos 80, 114, 122, 155
O Operador de Laplace 128 Optimización 25 Optimización del intervalo de la retícula 25 Orden mayor 50 Orden m 50, 53, 130 Oscilaciones libres 127, 142 Oscilante 127
P Parabólico 125, 145, 163, 167, 173 Picard 5, Poisson 128, 154, 159 Polinomio de Taylor 18, Primer método de sustitución sucesiva 87 Primer orden 30, 50, 118, 147 Primer problema de las condiciones de contorno 99, 149 Principio de máximo 151 Problema de Dirichlet 150, 152 Problema de Neumann 150 Problema de valor de frontera para la ecuaciones diferenciales ordinarias 68 Problema del valor inicial de Cauchy 140, 144, 147 Problema Mixto 140, 146 Problema no lineal con valores en frontera para diferencias finitas 86 F. Antoine S.
A. Sangiacomo C.
271
Índice alfabético
Método Numéricos para la Solución de Ecuaciones Diferenciales
Problema perturbado 3 Procedimiento de colocación 101, 104 Programa caso no lineal 89, 96 Programa caso no lineal por iteraciones de Newton 89 Programa de regresivas y progresivas 169 Programa del método de Rayleigh - Ritz 115 Programa para diferencias finitas caso no lineal 89 Programa regresivas para hiperbólicas 178 Puntos de red 8, 39, 52, 79, 155, 164, 175 Puntos de red (nodos) 8, 39, 52, 79, 155, 164, 175
R Rayleigh - Ritz 109, 113, 115, 121 Reducible 130, 138 Retícula 25, 81, 159 Richardson 171 Runge - Kutta 18, 20, 25, 41, 48, 52, 77
S Segmentario lineal 113, Segundo método: (llamado método de Newton) 88 Segundo problema de las condiciones de contorno 149 Separación de variables 136 Series de potencias 14, 57, Sistema de orden m 50, Sistema de orden m 50 Sistema finito de funciones 106 Sistemas de ecuaciones diferenciales ordinarias 50, 52, Solución complementaria 129, 138 Solución de ecuación diferencial ordinaria no lineal 90 Solución de sistemas no lineales 90 Solución numérica de ecuaciones diferenciales parciales 154, 173 Solución por medio de tridiagonales 82 Subsidiaria 131 Superficie integral 124, 144 Sustitución sucesiva 87
T Tamaño de paso 8, 175 Taylor 8, 11, 14, 18, 25, 80, 135, 155, 164 Tercer problema de las condiciones de contorno 150 Tipo elíptico D > 0 125, 149 Tipo hiperbólico D < 0 125, 145 Tipo Mixto 85, 125 Tipo Parabólico D = 0 125 Tridiagonales 80, 82, 165
U Unicidad de la solución del problema de Dirichlet 150, 152 F. Antoine S.
A. Sangiacomo C.
272
Índice alfabético
Método Numéricos para la Solución de Ecuaciones Diferenciales
Unicidad del problema de Dirichlet 150, 152
V Valor Medio 3, 5, 51, Valores en frontera para diferencias finitas 86
F. Antoine S.
A. Sangiacomo C.
273