0% encontró este documento útil (0 votos)
133 vistas32 páginas

Ecuaciones Parabólicas y Métodos Numéricos

Este documento presenta el método numérico explícito para resolver ecuaciones en derivadas parciales parabólicas. Introduce la ecuación del calor clásica y explica cómo discretizarla espacial y temporalmente para obtener un esquema en diferencias explícito. Describe el proceso de obtener las soluciones en cada nodo espacio-temporal usando los valores conocidos de los nodos anteriores, y analiza las condiciones para la convergencia y estabilidad del método.

Cargado por

emdiazpu
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
133 vistas32 páginas

Ecuaciones Parabólicas y Métodos Numéricos

Este documento presenta el método numérico explícito para resolver ecuaciones en derivadas parciales parabólicas. Introduce la ecuación del calor clásica y explica cómo discretizarla espacial y temporalmente para obtener un esquema en diferencias explícito. Describe el proceso de obtener las soluciones en cada nodo espacio-temporal usando los valores conocidos de los nodos anteriores, y analiza las condiciones para la convergencia y estabilidad del método.

Cargado por

emdiazpu
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 32

Tema 5

Métodos Numéricos II

Ecuaciones en derivadas
parciales parabólicas (1)
Índice
Esquema. . . . . . . . . . . . . . . . . . . . . . . 2

Ideas clave . . . . . . . . . . . . . . . . . . . . . . 3

5.1 Introducción y objetivos . . . . . . . . . . . . . 3

5.2 Ecuación del calor clásica . . . . . . . . . . . . . 4

5.3 Método explícito con condiciones de contorno Dirichlet. 5

5.4 Método explícito con condiciones naturales o mixtas . . 14

5.5 Ejercicios resueltos . . . . . . . . . . . . . . . 20

5.6 Ejercicios propuestos . . . . . . . . . . . . . . 29


Esquema

Métodos Numéricos II
2
Tema 5. Esquema
Ideas clave

5.1 Introducción y objetivos

En el Tema 4 se han introducido las ecuaciones en derivadas parciales, junto con la


aproximación de dichas derivadas por diferencias finitas. Esta técnica nos permitirá
en este tema y los siguientes llevar a cabo la resolución (aproximada) de dichos pro-
blemas, sea cual sea su tipología (parábolica, hiperbólica o elíptica) y sean cuales sean
las condiciones de controno que lleve asociadas: de tipo Dirichlet, naturales o mixtas.

La técnica de diferencia finitas nos permite transformar el problema en un esquema


en diferencias, mediante la discretización del dominio de la solución, la aproximación
de sus derivadas y la evaluación de dicho esquema en los distintos pares ordenados
de nodos. Este proceso puede dar lugar a dos tipos de esquemas en diferencias:

I Explícitos: el valor de la función en cada par de nodos se aproxima mediante cálcu-


los directos empleando la información conocida, como las propias condiciones de
contorno e iniciales.

I Implícitos: en estos casos no es posible calcular directamente el valor de la función


incógnita en los nodos a partir de los datos, por lo que se obtiene mediante la reso-
lución de un sistema de ecuaciones. La técnica a utilizar dependerá de la estructura
y tamaño de la matriz de coeficientes del mismo.

Los métodos explícitos son consistentes y sencillos, pero inestables. Como veremos,
sólo bajo ciertas condiciones podremos asegurar su estabilidad y, por tanto, conver-
gencia. Estos serán el objetivo general del presente tema.

Métodos Numéricos II
3
Tema 5. Ideas clave
Los objetivos a alcanzar en este tema son:

I Introducción a las EDPs parabólicas

I Método explícito con condiciones de contorno Dirichlet

• Transformación de la EDP en una ecuación en diferencias

• Convergencia y estabilidad del método explícito

• Implementación del método explícito en Matlab

I Método explícito con condiciones naturales y mixtas

El problema clásico en el que vamos a centrarnos, parte del estudio de la distribución


de la temperatura en un cuerpo isotrópico, es decir, en el que la conductividad térmica
en cada punto es independiente de la dirección del flujo de calor, u = u(x, y, t). Este
problema se modeliza mediante la ecuación parabólica
   
∂ ∂u ∂ ∂u ∂u
h + h = cg ,
∂x ∂x ∂y ∂y ∂t

donde h, g y c son funciones de x e y: h(x, y) denota la conductividad térmica de cada


punto (x, y), g(x, y) es la densidad puntual del cuerpo en el que transmite el calor y
c(x, y) es la función calor específico (dependiente del material).

Una ecuación parabólica con condiciones iniciales (t = 0) y de contorno recibe el


nombre de Problema Parabólico.

5.2 Ecuación del calor clásica

Trabajaremos con la distribución de temperatura en una varilla de longitud L, descrita


mediante la ecuación del calor homogénea

ut − α2 uxx = 0, x ∈ [0, L], t ≥ 0, (1)

Métodos Numéricos II
4
Tema 5. Ideas clave
sujeta a la condición inicial

u(x, 0) = f (x), x ∈ [0, L]

y a las condiciones de contorno, que pueden ser de tipo Dirichlet (homogéneas o no)

u(0, t) = h1 (t), u(L, t) = h2 (t), t > 0,

o condiciones de contorno naturales

α1 u(0, t) + α2 ux (0, t) = γ, β1 u(L, t) + β2 ux (L, t) = δ, α2 , β2 6= 0,

derivadas (o tipo Neumann),

ux (0, t) = γ, ux (L, t) = δ, ,

o bien mixtas.

Independientemente de cuáles sean las condiciones de contorno del problema, el pro-


ceso comienza con la discretización de los intervalos en los que están definidas las
variables independientes x y t. Dividimos cada intervalo en nx y nt subintervalos,
respectivamente, obteniendo los nodos espaciales xi = 0 + ih, i = 0, 1, . . . , nx y
L T
temporales tj = 0 + jk, j = 0, 1, . . . , nt, mediante los pasos h = yk = .
nx nt

5.3 Método explícito con condiciones de


contorno Dirichlet

Dadas las condiciones iniciales de (1), la distribución de nodos queda como se indica
en la Figura 1.

Métodos Numéricos II
5
Tema 5. Ideas clave
Figura 1: Distribución de nodos para las EDPs parabólicas

A partir de esta estructura de nodos, para la obtención de un método explícito, apli-


camos sobre la EDP (1), diferencias progresivas en ut y centrales en uxx ,

u(x, t + k) − u(x, t) u(x + h, t) − 2u(x, t) + u(x − h, t)


= α2 ,
k h2

Evaluando la expresión anterior en los puntos (xi , tj ), i = 1, 2, . . . , nx − 1, j =


0, 1, . . . , nt − 1, y denotando u(xi , tj ) = ui,j , llegamos a la expresión en diferencias

ui,j+1 − ui,j ui+1,j − 2ui,j + ui−1,j


= α2 , i = 1, 2, . . . , nx − 1, j = 0, 1, . . . , nt − 1.
k h2

kα2
Llamando λ = y despejando las incógnitas del instante mayor
h2

ui,j+1 = (1 − 2λ)ui,j + λ(ui+1,j + ui−1,j ), i = 1, 2, . . . , nx−1, j = 0, 1, . . . , nt−1.

Vemos que para obtener el elemento ui,j+1 necesitamos conocer únicamente los ele-
mentos correspondientes al instante anterior ui,j , ui+1,j y ui−1,j , por lo que estamos

Métodos Numéricos II
6
Tema 5. Ideas clave
ante un método explícito.

Con las condiciones de contorno de tipo Dirichlet conocemos la solución en los pares
de nodos u0,j y unx,j , ∀j. Con la condición inicial conocemos la solución ui,0 , ∀i. De
modo que, en base a la información de la Figura 1, debemos obtener las soluciones
ui,j+1 en la malla de valores i ∈ {1, 2, . . . , nx − 1}, j ∈ {0, 1, 2, . . . , nt − 1}. La
estrategia consiste en obtener una expresión fijando el valor de j.

I Para j = 0:
ui,1 = (1 − 2λ) ui,0 + λ (ui+1,0 + ui−1,0 ) .

Desarrollando para cada i:





 u1,1 = (1 − 2λ) u1,0 + λ (u2,0 + u0,0 )


u2,1 = (1 − 2λ) u2,0 + λ (u3,0 + u1,0 )


.. (2)


 .


nx−1,1 = (1 − 2λ) unx−1,0 + λ (unx,0 + unx−2,0 )

 u

I Para j = 1:



 u1,2 = (1 − 2λ) u1,0 + λ (u2,0 + u0,0 )


u2,2 = (1 − 2λ) u2,0 + λ (u3,0 + u1,0 )


.. (3)


 .


nx−1,2 = (1 − 2λ) unx−1,0 + λ (unx,0 + unx−2,0 )

 u

I Y así sucesivamente para todos los valores de j hasta nt − 1.

Es decir, para aproximar el valor de la función incógnita u en los nodos correspon-


dientes a una columna temporal, utilizamos los valores ya conocidos de la columna
anterior.

Métodos Numéricos II
7
Tema 5. Ideas clave
Convergencia y estabilidad

En el Tema 4 definimos los conceptos de consistencia, convergencia y estabilidad, así


como su relación con el error de truncamiento y la capacidad del esquema de mante-
ner bajo control el error de redondeo acumulado.

Denotemos por U (x, t) a la solución exacta de la EDP y por ui,j a la solución exacta de
la ecuación en diferencias finitas F (ui,j ) = 0. Recordemos que, entonces, la diferencia

ei,j = Ui,j − ui,j = U (xi , tj ) − ui,j ,

recibe el nombre de error de truncamiento o de discretización. Recordemos que, debi-


do a las aproximaciones de las derivadas parciales utilizadas, el orden de convergencia
del método explícito es O (k + h2 ).

Por otra parte, si en la expresión en diferencias del método explícito

ui,j+1 = (1 − 2λ)ui,j + λ(ui+1,j + ui−1,j ), i = 1, 2, . . . , nx−1, j = 0, 1, . . . , nt−1.

reemplazamos en cada punto del mallado

ui,j = Ui,j − ei,j , ui,j+1 = Ui,j+1 − ei,j+1 , . . .

obtenemos

ei,j+1 = λei−1,j + (1 − 2λ)ei,j + λei+1,j

+Ui,j+1 − Ui,j + λ(2Ui,j − Ui−1,j − Ui+1,j ). (4)

Desarrollamos por Taylor cada uno de los términos Ui,j que aparecen en la expresión:

h2
Ui+1,j = U (xi + h, tj ) = Ui,j + h (Ux )i,j + U (x
2 xx i
+ θ1 h, tj ),
h2
Ui−1,j = U (xi − h, tj ) = Ui,j − h (Ux )i,j + U (x
2 xx i
− θ2 h, tj ),
k2
Ui,j+1 = U (xi , tj + k) = Ui,j + k (Ut )i,j + 2
Utt (xi , tj + θ3 k),

Métodos Numéricos II
8
Tema 5. Ideas clave
donde θ1 , θ2 , θ3 ∈]0, 1[. Sustituyendo estos desarrollos en (4),

ei,j+1 = λei−1,j + (1 − 2λ)ei,j + λei+1,j

+k Ut (xi , tj + θ3 k) − α2 Uxx (xi + θ4 h, tj ) ,


 
(5)

donde θ4 ∈]0, 1[. Esta es la llamada ecuación en diferencias para ei,j .

Sea Ej el valor máximo de |ei,j | a lo largo del instante tj y M el máximo módulo de la


1
expresión Ut (xi , tj + θ3 k) − α2 Uxx (xi + θ4 h, tj ), para todo i y j. Cuando λ ≤ , todos
2
los coeficientes de ei,j en (5) son no negativos, por tanto

|ei,j+1 | ≤ λ|ei−1,j | + (1 − 2λ)|ei,j | + λ|ei+1,j | + kM

≤ λEi + (1 − 2λ)Ei + λEi + kM = Ei + kM.

Como esto es cierto para un índice i arbitrario, también será cierto para máxi |ei,j+1 |,
luego
Ej+1 ≤ Ej + kM ≤ (Ej−1 + kM ) + kM = Ej−1 + 2kM,

de donde se sigue que

Ej ≤ E0 + jkM = tj M, ya que E0 = 0.

λh2
Cuando h → 0, entonces k = → 0, y M tiende a (Ut − α2 Uxx )i,j . Como U es la
α2
solución de la EDP, entonces Ej tiende a cero. Además,

|Ui,j − ui,j | ≤ Ej ,

lo que nos permite afirmar que u converge a U cuando h tiende a cero y t es un valor
finito, siempre y cuando λ ≤ 1/2.

Además de la consistencia del método, hemos deducido una condición suficiente para
su estabilidad. Sin embargo, pueden probarse las siguientes afirmaciones:

Métodos Numéricos II
9
Tema 5. Ideas clave
I si λ ≤ 1/2, el método es estable y por tanto convergente; los errores no crecen
pero oscilan;

I si λ ≤ 1/4, el método es estable y los errores no oscilan;

I si λ = 1/6, se minimizan los errores de truncamiento, pero el coste computacional


es inasumible.

Implementación en Matlab

Una vez desarrollado el método explícito para EDPs parabólicas, es el momento de


implementarlo en Matlab. Vamos a trabajar con la ecuación (1) bajo la condición inicial
(CI) y las condiciones de contorno (CC) de tipo Dirichlet no homogéneas, es decir,

ut − α2 uxx = 0, x ∈ [0, L], t ≥ 0,


CI: u(x, 0) = f (x), x ∈ [0, L], CC: u(0, t) = h1 (t), u(L, t) = h2 (t), t > 0.

Generaremos una función que tenga como parámetros de entrada los valores de L,
T y α. Asimismo, necesitaremos conocer también el número de nodos espaciales y
temporales, de modo que será necesario introducir como parámetros de entrada nx
y nt, respectivamente. Además, es necesario que proporcionemos la función f (x) de
la condición inicial y las funciones h1 (t) y h2 (t), correspondientes a las condiciones de
contorno.

Como parámetros de salida aportaremos las variables discretizadas xi y tj , y la solución


aproximada del problema en cada nodo ui,j . Los pasos del algoritmo a implementar
son:

I Inicializar las variables:

• Establecemos los pasos espacial h y temporal k, a partir de los cuales definimos


los nodos xi y tj .

Métodos Numéricos II
10
Tema 5. Ideas clave
kα2
• Definimos el parámetro λ = h2
.

• La matriz de tamaño (nx + 1) × (nt + 1), solución aproximada u, se define


inicialmente con ceros.

I Almacenamos en la primera columna de u los datos proporcionados por la condi-


ción inicial f (x) y en la primera y última filas, los correspondientes a las condiciones
de contorno h1 (t) y h2 (t).

I Definimos un blucle que recorra el índice j, de modo que obtengamos la solución


aproximada ui,j+1 en función de los valores de ui,j , para los valores centrales del
índice espacial i.

Debemos tener en cuenta que, mientras en nuestra notación teórica los índices co-
mienzan en cero, la primera componente de un vector en Matlab es la componente
uno. Por tanto, habrá siempre un desfase de una unidad entre los índices teóricos e im-
plementados. A continuación, mostramos una posible implementación y un ejemplo
resuelto.

CalorExpl.m

function [u,x,t] = ...


CalorExpl ( alpha ,ci ,h1 ,h2 ,L,nx ,Tmax ,nt)
% Metodo explicito para la ecuacion del calor con ...
condiciones Dirichlet
% Inicializacion
h=L/nx; x =0: h:L;
k= Tmax /nt; t =0: k: Tmax ;
cix = feval (ci ,x);
c1t = feval (h1 ,t); c2t = feval (h2 ,t);
u= zeros (nx +1 , nt +1) ;
u (1 ,:) = c1t ; u(nx +1 ,:) = c2t ;
u (: ,1) =cix ';
% Por si las condiciones iniciales y de contorno ...

Métodos Numéricos II
11
Tema 5. Ideas clave
no son consistentes
u (1 ,1) =( c1t (1) + cix (1) ) /2;
u(end ,1) =( c2t (1) + cix (end) ) /2;
% Condicion de estabilidad / convergencia
lambda =k* alpha ^2/ h ^2;
if lambda >1/2
disp ('No se cumple el criterio de convergencia ')
else
disp ('sin problema ')
end
for j =1: nt
for i =2: nx
u(i,j +1) =(1 -2* lambda )*u(i,j)+ ...
lambda *(u(i+1 ,j)+u(i -1 ,j));
end
end
end

� Accede al vídeo: Implementación del algoritmo paso a paso

Ejemplo 1. Ecuación del calor con α = 1 y L = 1, utilizando el método explícito.


Sea la EDP parabólica

ut − uxx = 0, x ∈ [0, 1], t ≥ 0,

sujeta a las condiciones

u(x, 0) = sin(πx), x ∈ [0, 1], u(0, t) = u(1, t) = 0, t > 0,

vamos a obtener la solución numérica con el método explícito. Seleccionaremos


el valor de λ para el cual el método no solo sea estable sino que los errores no

Métodos Numéricos II
12
Tema 5. Ideas clave
1
oscilen; dado que α = 1 y λ = 4
es equivalente a 4k ≤ h2 , consideraremos
h = 0.1 y k = 0.12 /4 = 0.0025. Obtendremos la solución en T = 0.03.

x u(x, 0.03)
0 0
0.1 0.229541
0.2 0.436613
0.3 0.600947
0.4 0.706455
0.5 0.742811
0.6 0.706455
0.7 0.600947
0.8 0.436613
0.9 0.229541
1 0

Tabla 1: Resultados numéricos del Ejemplo 1

Ejemplo 2.
Consideremos el problema parabólico

ut (x, t) − uxx (x, t) = 0, 0 ≤ x ≤ 1, t ≥ 0,


u(0, t) = u(1, t) = 0, t > 0; u(x, 0) = sin πx, x ∈ [0, 1],

2
cuya solución exacta es u(x, t) = e−π t sin πx. Buscamos la solución aproximada
en T = 0.5 mediante el método explícito utilizando los tamaños de paso

(a) h = 0.1, k = 0.0005

(b) h = 0.1, k = 0.01.

Utilizando el código del método explícito, obtenemos las soluciones que se mues-
tran en la Tabla 2. Basta calcular el valor de λ en cada caso para comprender por

Métodos Numéricos II
13
Tema 5. Ideas clave
qué encontramos convergencia a la solución solo en uno de los casos estudiados.

xi ui,1000 |u(xi , 0.5) − ui,1000 | ui,50 |u(xi , 0.5) − ui,50 |


0.0 0 - - -
0.1 0.002287 6.41e-5 8.20e+7 8.20e+7
0.2 0.004349 1.22e-4 -1.56e+8 1.56e+8
0.3 0.005986 1.68e-4 2.14e+8 2.14e+8
0.4 0.007037 1.97e-4 -2.51e+8 2.51e+8
0.5 0.007399 2.08e-4 2.63e+8 2.63e+8
0.6 0.007037 1.97e-4 -2.49e+8 2.49e+8
0.7 0.005986 1.68e-4 2.11e+8 2.11e+8
0.8 0.004349 1.22e-4 -1.53e+8 1.53e+8
0.9 0.002287 6.51e-5 8.04e+7 8.04e+7
1.0 0 - 0 -

Tabla 2: Resultados numéricos de los casos (a) y (b) en el Ejemplo 2.

5.4 Método explícito con condiciones naturales


o mixtas

El problema parabólico con condiciones de contorno no Dirichlet

α1 u(0, t) + α2 ux (0, t) = γ, β1 u(L, t) + β2 ux (L, t) = δ, α2 , β2 6= 0,

se resuelve de forma muy similar al descrito en la sección previa. Se ha de tener en


cuenta que el orden de las aproximaciones utilizadas ha de ser el mismo que el em-
pleado en la EDP. Asímismo, el hecho de que las condiciones no sean de tipo Dirichlet
implica un aumento en el número de incógnitas del problema, ya que en ese caso sólo
se conoce el valor exacto de la solución en el instante inicial.

Métodos Numéricos II
14
Tema 5. Ideas clave
Figura 2: Distribución de nodos para las EDPs parabólicas con condiciones no Dirichlet

En la Figura 2, observamos como los nodos en los que se conoce la solución del proble-
ma (en color verde) se sitúan únicamente en la primera columna, manteniéndose en
rojo el resto de nodos del mallado. Esto hace que el esquema en diferencias resultante
de la discretización tenga mayor amplitud en los índices espaciales:

ui,j+1 = (1 − 2λ)ui,j + λ(ui+1,j + ui−1,j ), i = 0, 1, . . . , nx, j = 0, 1, . . . , nt − 1.

kα2
donde λ = . Por otra parte, las condiciones de contorno no afectan a la estabilidad
h2
del método, por lo que las condiciones bajo las cuales está asegurada la estabilidad del
mismo se mantienen.

Dado un indice temporal j fijo y arbitrario, la primera ecuación del esquema en dife-
rencias, que permite calcular el primer elemento de la columna j + 1 es

u0,j+1 = (1 − 2λ)u0,j + λ(u1,j + u−1,j ).

Observemos que en esta expresión aparece u−1,j , es decir, la función incógnita está
evaluada en un punto u(−h, tj ) que, evidentemente, no pertenece a su dominio. Para
evitar esta circunstancia, se utiliza la condición de contorno natural evaluada en el

Métodos Numéricos II
15
Tema 5. Ideas clave
instante tj ,

α1 u(0, t) + α2 ux (0, t) = γ∀t ⇒ α1 u0,j + α2 ux (0, tj ) = γ.

Utilizamos una aproximación central de la derivada parcial ux (0, tj ),

u1,j − u−1,j
ux (0, tj ) ≈ ,
2h

que, reemplazada en la condición de contorno, nos permite despejar u−1,j ,

u1,j − u−1,j 2hα1 2hγ


α1 u0,j + α2 = γ ⇒ u−1,j = u0,j + u1,j − .
2k α2 α2

Regresando a la ecuación en la que calculamos u0,j+1 ,


 
2hα1 2hγ
u0,j+1 = (1 − 2λ)u0,j + λu1,j + λ u0,j + u1,j −
α2 α2
 
2hα1 2hγ
= 1 − 2λ + λ u0,j + 2λu1,j − λ,
α2 α2

se obtiene una expresión que ya solo depende de valores conocidos. De forma análo-
ga se gestiona la última ecuación en diferencias, correspondiente a xnx , utilizando la
segunda condición de contorno no Dirichlet, con aproximaciones de segundo orden.

Ejemplo 3.
Consideremos la ecuación en derivadas parciales:

ut = uxx + e−t , x ∈ [0, 1], t > 0,

con las condiciones:

u(x, 0) = 1 − x, x ∈ [0, 1],


ux (0, t) = 0, t > 0,
ux (1, t) + u(1, t) = 0, t > 0.

a) Describe la transformación del problema en un esquema en diferencias finitas


explícito de orden O(k + h2 ).

Métodos Numéricos II
16
Tema 5. Ideas clave
b) Aplica este esquema para determinar la solución en el instante T = 1, toman-
do h = 0.1 y k = 0.0005. Representa la solución.

Solución:

a) Consideramos los nodos xi = ih, i = 0, 1, . . . , nx y tj = jk, j = 0, 1, . . . , nt,


con h = 1/nx y k = 1/nt, siendo nx y nt el número de subintervalos en cada
variable.

Aplicando diferencias progresivas en ut y simétricas en uxx , obtenemos:

ui,j+1 = (1 − 2λ)ui,j + λ(ui+1,j + ui−1,j ) + ke−tj ,

para i = 0, . . . , nx, j = 0, . . . , nt − 1, siendo λ = k/h2 . Sin embargo, para los


valores de los índices i = 0 y i = nx aparecen en esta expresión las incógnitas
u−1,j y unx+1,j , respectivamente, que no están definidas. Para evitarlo, discre-
tizamos las condiciones de contorno derivadas mediante diferencias finitas de
orden 2,

u1,j − u−1,j
0 = ux (0, tj ) ≈ ,
2h
unx+1,j − unx−1,j
0 = ux (1, tj ) + u(1, tj ) ≈ + unx,j ,
2h

de donde se deduce que u−1,j ≈ u1,j y unx+1,j ≈ unx−1,j − 2hunx,j .

Sustituyendo estas aproximaciones obtenemos, para cada j fija y arbitraria en


j = 0, . . . , nt − 1, el sistema:

u0,j+1 = (1 − 2λ)u0,j + 2λu1,j + ke−tj ,

ui,j+1 = (1 − 2λ)ui,j + λ(ui+1,j + ui−1,j ) + ke−tj , i = 1, . . . , nx − 1,

unx,j+1 = (1 − 2λ − 2λh)unx,j + 2λunx−1,j + ke−tj .

Métodos Numéricos II
17
Tema 5. Ideas clave
CalorExplND.m

function [u,x,t] = ...


CalorExplND ( alpha ,ci ,L,nx ,Tmax ,nt)
% Metodo explicito para la ecuacion del calor ...
con condiciones Dirichlet
% Inicializacion
h=L/nx; x =0: h:L;
k= Tmax /nt; t =0: k: Tmax ;
cix = feval (ci ,x);
u= zeros (nx +1 , nt +1) ;
u (: ,1) =cix ';
% Condicion de estabilidad / convergencia
lambda =k* alpha ^2/ h ^2;
if lambda >1/2
disp ('No se cumple el criterio de ...
convergencia ')
else
disp ('sin problema ')
end
L = 1:nx -1; C = 2: nx; R = 3: nx +1;
for j =1: nt
u(1 ,j +1) = 2* lambda *u(2 ,j) + ...
(1 -2* lambda )*u(1 ,j) + k* exp (-t(j));
u(C,j +1) = lambda *(u(L,j) + u(R,j)) + ...
(1 -2* lambda )*u(C,j)+ k* exp (-t(j));
u(nx +1 ,j +1) = 2* lambda *u(nx ,j)+ ...
(1 -2* lambda *(1+ h))*u(nx +1 ,j)+k* exp (-t(j));
end
end

Métodos Numéricos II
18
Tema 5. Ideas clave
Implementamos este método en un archivo .m adaptando el que se hizo para
la ecuación del calor homogénea con condiciones Dirichlet. Tendremos que mo-
dificar la inicialización de la matriz u y el contenido del bucle, que debe incluir
expresiones específicas para la primera y última fila de la matriz u.

En este caso, se han utilizado vectores de índices C, L y R en lugar del bucle


interior correspondiente al índice i. Además, el parámetro de convergencia es
α2 k 1
λ = 2 = 0.05 ≤ por lo que podemos asegurar la convergencia del método.
h 2
Además, teniendo en cuenta que el instante final es T = 1, el número de subin-
tervalos en el eje temporal es nt = 2000. Con todos estos valores ejecutamos la
función

>> [u,x,t] = CalorExplND (1 ,@(x) 1-x ,1 ,10 ,1 ,2000)

En la Tabla 3 mostramos, tanto la solución aproximada en el instante máximo


T = 1 como la solución aproximada en instantes intermedios.

xi u(x, 0.25) u(x, 0.5) u(x, 0.75) u(x, 1)


0 0.729305 0.768393 0.774869 0.750627
0.1 0.726125 0.765870 0.772289 0.748074
0.2 0.716686 0.758300 0.764545 0.740419
0.3 0.701281 0.745676 0.751637 0.727671
0.4 0.680352 0.727990 0.733559 0.709846
0.5 0.654434 0.705226 0.710308 0.686967
0.6 0.624081 0.677361 0.681881 0.659065
0.7 0.589789 0.644359 0.648275 0.626181
0.8 0.551922 0.606177 0.609495 0.588366
0.9 0.510655 0.562758 0.565551 0.545683
1 0.465934 0.514039 0.516462 0.498211

Tabla 3: Aproximaciones por el método explícito del Ejemplo 3

Métodos Numéricos II
19
Tema 5. Ideas clave
� Accede al vídeo: Resolución del Ejemplo paso a paso

5.5 Ejercicios resueltos


Ejercicio 1.
Encuentra una solución aproximada del problema parabólico descrito por

4
ut − uxx = 0, x ∈ [0, 4], t ≥ 0,
π2

sujeta a la condición inicial

π    π 
u(x, 0) = sin x 1 + 2 cos x , x ∈ [0, 4],
4 4

y a las condiciones de contorno

u(0, t) = u(4, t) = 0, t > 0,

π2
utilizando el método explícito en T = π 2 tomando h = 0.4 y k = 50
. Obtén el
error exacto absoluto en todos los nodos sabiendo que la solución analítica es

π  π 
u(x, t) = e−t sin x + e−t/4 sin x .
2 4

Indica en una tabla la solución numérica y el error absoluto en todos los nodos
espaciales en el instante final.
Solución.
Este es un problema en el que podemos aplicar de forma directa el algoritmo im-
plementado para condiciones de contorno de tipo Dirichlet. Así, basta con iden-
tificar el valor de las variables de entrada y ejecutar: α = π2 , h1 (t) = h2 (t) = 0,
L = 4, f (x) = sin π4 x 1 + 2 cos π4 x , nx = 10 T = π 2 y nt = 50.
 

Métodos Numéricos II
20
Tema 5. Ideas clave
xi ui,nt |ui,nt − u(xi , T )|
0.000000 0.000000 0.000000
0.400000 0.025151 0.001086
0.800000 0.047836 0.002061
1.200000 0.065831 0.002827
1.600000 0.077376 0.003309
2.000000 0.081342 0.003463
2.400000 0.077346 0.003278
2.800000 0.065784 0.002776
3.200000 0.047788 0.002010
3.600000 0.025121 0.001054
4.000000 0.000000 0.000000

Tabla 4: Aproximación y error exacto en el Ejercicio 1

Ejercicio 2.
Obtén la solución numérica a la EDP

8π 2 ut − uxx = 0, x ∈ [0, 1], t ≥ 0,

cumpliendo la condición inicial

u(x, 0) = cos (2πx) , x ∈ [0, 1],

y las condiciones de controno

u(0, t) = u(1, t) = e−t/2 , t > 0,

π2 π2
mediante el método explícito en T = 4
tomando h = 0.1 y k = 100
. Obtén el
error absoluto en todos los nodos sabiendo que la solución analítica es

u(x, t) = e−t/2 cos (2πx) .

Indica en una tabla la solución numérica y el error absoluto en todos los nodos

Métodos Numéricos II
21
Tema 5. Ideas clave
espaciales.
Solución.

xi ui,nt |ui,nt − u(xi , T )|


0.000000 0.291213 0.000000
0.100000 0.236084 0.000488
0.200000 0.089823 0.000167
0.300000 -0.091498 0.001509
0.400000 -0.238364 0.002768
0.500000 -0.294487 0.003274
0.600000 -0.238364 0.002768
0.700000 -0.091498 0.001509
0.800000 0.089823 0.000167
0.900000 0.236084 0.000488
1.000000 0.291213 0.000000

Tabla 5: Aproximación y error en el Ejercicio 2

Ejercicio 3. Obtén la solución aproximada de la EDP

ut − 2uxx − u2x + u = 16t, x ∈ [0, 1], t ≥ 0,

bajo la condición inicial

u(x, 0) = x2 , x ∈ [0, 1],

y las condiciones de contorno

u(0, t) = 4t, u(1, t) = 1 + 4t, t > 0,

mediante el método explícito en T = 1 tomando h = 0.2 y k = 0.01. Obtén el


error absoluto en todos los nodos sabiendo que la solución analítica es

u(x, t) = 4t + x2 .

Métodos Numéricos II
22
Tema 5. Ideas clave
Indica en una tabla la solución encontrada y el error absoluto en todos los nodos
espaciales en el último instante T . Representa las solución aproximada.
Solución.
Consideramos los nodos espaciales xi = 0 + ih, i = 0, 1, . . . , nx y temporales
L T
tj = 0 + jk, j = 0, 1, . . . , nt, obtenidos con los pasos h = nx
yk = nt
. Como
en el caso de la ecuación del calor clásica, aplicamos diferencias progresivas en
ut y centrales en las derivadas respecto a x, ux y uxx . Evaluamos la expresión
resultante en los pares de nodos (xi , tj ), i = 1, 2, . . . , nx−1, j = 0, 1, . . . , nt−1,

ui,j+1 − ui,j ui+1,j − 2ui,j + ui−1,j (ui+1,j − ui−1,j )2


−2 − + 4ui,j = 16tj ,
k h2 4h2

2k
para i = 1, 2, . . . , nx − 1, j = 0, 1, . . . , nt − 1. Denotamos λ = , agrupamos
h2
y despejamos el instante mayor

9 7
ui,j+1 = (1 − 2λ − 4k)ui,j + λui+1,j + λui−1,j ) + 16ktj ,
8 8

para i = 1, 2, . . . , nx − 1, j = 0, 1, . . . , nt − 1. Modificamos el núcleo del bucle


principal en el programa básico,

for j =1: nt
for i =2: nx
u(i,j +1) =(1 -2* lambda -4* k)*u(i,j)+ ...
9/8* lambda *u(i+1 ,j) +7/8* lambda *u(i -1 ,j) ...
+16* k*t(j);
end
end

y, al ejecutar el programa resultante, obtenemos los resultados de la Tabla 6. No-


1
temos que se cumple la condición de convergencia, ya que λ = .
2

Métodos Numéricos II
23
Tema 5. Ideas clave
xi ui,nt |ui,nt − u(xi , Tmax )|
0.000000 4.0000 0
0.200000 4.0845 0.0445
0.400000 4.2274 0.0674
0.600000 4.4258 0.0658
0.800000 4.6815 0.0415
1.000000 5.0000 0

Tabla 6: Aproximación y error en el Ejercicio 3

La gráfica de la solución aproximada puede verse en la Figura 3.

Figura 3: Solución aproximada del Ejercicio 3


.

Ejercicio 4. Obtén la solución numérica de la EDP

1 1
ut − uxx = − + 2π cos(2πt), x ∈ [0, 1], t ≥ 0,
8 4

CI: u(x, 0) = x(x − 1), x ∈ [0, 1],

CC: u(0, t) − ux (0, t) = 1, u(1, t) = sin(2πt), t > 0,

con el método explícito en T = 1 tomando h = k = 0.1. Obtén el error absoluto


en todos los nodos sabiendo que la solución analítica es

u(x, t) = x(x − 1) + sin(2πt).

Métodos Numéricos II
24
Tema 5. Ideas clave
Indica en una tabla la solución numérica y el error absoluto en todos los nodos
espaciales. Representa la solución aproximada.
Solución.
Sean xi = ih, i = 0, 1, . . . , nx y tj = jk, j = 0, 1, . . . , nt, con h = 1/nx y
k = 1/nt, siendo nx y nt el número de subintervalos en cada variable. De todos
los pares de nodos, en aquellos (xi , tj ) con i = 0, 1, . . . , nx − 1 y j = 1, 2, . . . , nt
no se conoce el valor de la función incógnita.
Aplicando diferencias progresivas en ut y simétricas en uxx , obtenemos

k
ui,j+1 = (1 − 2λ)ui,j + λ(ui+1,j + ui−1,j ) − + 2kπ cos(2πtj ),
4

k
para i = 1, 2, . . . , nx − 1, j = 0, 1, . . . , nt − 1, siendo λ = . En el caso
8h2
particular i = 0 aparece u−1,j , que no está definida. Para eliminar este elemento,
discretizamos la primera condición de contorno con aproximaciones de orden 2
en un instante tj ,

u1,j − u−1,j
u(0, t) − ux (0, t) = 1 ⇒ u0,j − = 1,
2h

de donde deducimos u−1,j ≈ u1,j − 2hu0,j + 2h.


Reemplazando u−1,j en la primera ecuación por su aproximación, obtenemos,
para cada j fija y arbitraria en j = 0, . . . , nt − 1,

k
u0,j+1 = (1 − 2λ − 2hλ)u0,j + 2λu1,j + 2hλ − + 2kπ cos(2πtj ),
4
k
ui,j+1 = (1 − 2λ)ui,j + λ(ui+1,j + ui−1,j ) − + 2kπ cos(2πtj ),
4

para i = 1, 2, . . . , nx − 1. Modificando el fichero CalorExplND.m, generamos el


siguiente código, que nos permitirá resolver el problema.

Métodos Numéricos II
25
Tema 5. Ideas clave
Ejer0504.m

function [u,x,t] = ...


Ejer0504 ( alpha ,ci ,h2 ,L,nx ,Tmax ,nt)
% Metodo explicito para la ecuacion del calor ...
con condiciones Dirichlet
% Inicializacion
h=L/nx; x =0: h:L;
k= Tmax /nt; t =0: k: Tmax ;
cix = feval (ci ,x); c2t = feval (h2 ,t);
u= zeros (nx +1 , nt +1) ;
u (: ,1) =cix '; u(nx +1 ,:) = c2t ;
% Condicion de estabilidad / convergencia
lambda =k* alpha ^2/ h ^2;
if lambda >1/2
disp ('No se cumple el criterio de ...
convergencia ')
else
disp ('sin problema ')
end
L = 1:nx -1; C = 2: nx; R = 3: nx +1;
for j =1: nt
u(1 ,j +1) = (1 -2* lambda -2* h* lambda )*u(1 ,j)+ ...
2* lambda *u(2 ,j) +2* h* lambda - ...
k /4+2* k*pi* cos (2* pi*t(j));
u(C,j +1) = ...
(1 -2* lambda )*u(C,j)+ lambda *(u(L,j)+u(R,j))-...
k /4+2* k*pi* cos (2* pi*t(j));
end
end

Métodos Numéricos II
26
Tema 5. Ideas clave
En la Tabla 7 observamos que el método no ha logrado converger (notemos que
en este caso no se cumple la condición de convergencia, λ = 1.25. Sin embar-
go, utilizando k = 0.01, los resultados son buenos, a juzgar por el error exacto
cometido.

xi ui,10 |ui,10 − u(xi , 1)| ui,100 |ui,100 − u(xi , 1)|


0.0 -1.5527e+3 1.5527e+3 0.0626 0.0626
0.1 1.3089e+3 1.3090e+3 -0.0444 0.0456
0.2 -0.9482e+3 0.9481e+3 -0.1430 0.0170
0.3 0.5744e+3 0.5746e+3 -0.2172 0.0072
0.4 -0.2767e+3 0.2764e+3 -0.2626 0.0226
0.5 0.0837e+3 0.0839e+3 -0.2801 0.0301
0.6 0.0170e+3 0.0173e+3 -0.2721 0.0321
0.7 -0.0592e+3 0.0590e+3 -0.2401 0.0301
0.8 0.0612e+3 0.0614e+3 -0.1844 0.0244
0.9 -0.0384e+3 0.0383e+3 -0.1042 0.0142
1.0 -0.0000e+3 0.0000e+3 -0.0000 0.0000

Tabla 7: Aproximaciones y errores en el Ejercicio 4

La gráfica de la solución aproximada utilizando 100 subintervalos temporales pue-


de verse en la Figura 4.

Figura 4: Solución aproximada del Ejercicio 4 con nt = 100


.

Métodos Numéricos II
27
Tema 5. Ideas clave
Ejercicio 5. Consideremos la ecuación en derivadas parciales parabólica

ut = uxx + xux + u, 0 < x < 1, t > 0,

con las condiciones

u(0, t) = 2t, t > 0,


u(1, t) = t2 /2, t > 0,
u(x, 0) = sin x + cos x, 0 < x < 1.

Transforma el problema en un esquema en diferencias finitas explícito de orden


O(k+h2 ). Aplica este esquema para determinar la solución en el instante t = 0.5,
tomando h = 0.1 y k = 0.0005.
Solución. En la partición de los intervalos, consideramos los nodos xi = ih, i =
0, 1, . . . , nx y tj = jk, j = 0, 1, . . . , nt, con h = 1/nx y k = 1/nt, siendo nx y nt
el número de subintervalos en cada variable.
Aproximando ut por diferencias progresivas y tanto ux como uxx mediante dife-
rencias centrales, obtenemos
     
k kxi −2k k kxi
ui,j+1 = 2
+ ui+1,j + + k + 1 ui,j + − ui−1,j ,
h 2h h2 h2 2h

para i = 1, . . . , nx − 1 y j = 0, . . . , nt − 1.
En la implementación del método nos basaremos en la función básica del método
explícito. Basta con modificar la expresión en diferencias contenida en el bucle:

U(C,j +1) = (k/h ^2+ k*x(C) '/(2* h))*U(R,j) + ...


( -2*k/h ^2+ k +1) *U(C,j)+ ...
(k/h^2 -k*x(C) '/(2* h))*U(L,j);

Al ejecutar esta función con las condiciones inicial y de contorno del problema
obtenemos la aproximación de la solución en t = 0.5 que se muestra en la Tabla
8.

Métodos Numéricos II
28
Tema 5. Ideas clave
xi u(x, 0.5)
0 1.000000
0.1 0.864310
0.2 0.739442
0.3 0.625790
0.4 0.523405
0.5 0.432082
0.6 0.351443
0.7 0.280997
0.8 0.220184
0.9 0.168399
1 0.125000

Tabla 8: Aproximación

5.6 Ejercicios propuestos


Ejercicio 6. Consideremos la ecuación en derivadas parciales

ut (x, t) − uxx (x, t) = 2, x ∈ [0, 1], t ≥ 0,

con las condiciones de contorno e iniciales

u(0, t) = u(1, t) = 0, ∀t, u(x, 0) = sin πx + x(1 − x), x ∈ [0, 1].

Sabiendo que la solución exacta es

2
u(x, t) = e−π t sin πx + x(1 − x),

se pide aproximar, mediante el método explícito, la solución del problema en el


instante T = 1, tomando (a) h = 0.1, k = 0.05; (b) nx = 10 nt = 10000.
Determina el error exacto y representa dicho error.

Métodos Numéricos II
29
Tema 5. Ideas clave
Ejercicio 7. Consideremos la ecuación en derivadas parciales

ut (x, t) − uxx (x, t) − t2 u(x, t) = x cos xt, x ∈ [0, 1], t ≥ 0,

con las condiciones de contorno e iniciales

ux (0, t) = t, u(1, t) = sin t, ∀t, u(x, 0) = 0, x ∈ [0, 1].

I Describe el método explícito de orden O(k + h2 ), utilizando nx subintervalos


en [0, 1] y nt subintervalos en [0, T ], siendo T el instante máximo en el que
pretendemos aproximar la solución.

I A partir del esquema anterior, determina la solución aproximada del problema


en el instante T = 1, tomando 10 subintervalos en el eje espacial y 100 en
el eje temporal. Representa, para cada método, la solución en los instantes
t = 0.2, 0.4, 0.6, 0.8, 1.

I Sabiendo que la solución exacta es u(x, t) = sin xt, calcula el error máximo
cometido en cada uno de los instantes anteriores.

Ejercicio 8. Demuestra que el cambio de variable v(x, t) = ln (u(x, t)) transforma


el problema no lineal

vt = vxx + vx2 , 0 < x < 1, t > 0,


vx (0, t) = 1, v(1, t) = 0, t > 0,
v(x, 0) = 0, 0 < x < 1,

en el problema lineal

ut = uxx , 0 < x < 1, t > 0,


ux (0, t) = u(0, t), u(1, t) = 1, t > 0,
u(x, 0) = 1, 0 < x < 1.

Transforma el problema lineal en un esquema en diferencias explícito. Aplica di-


cho esquema para aproximar la solución en el instante t = 1.5, tomando h = 0.1

Métodos Numéricos II
30
Tema 5. Ideas clave
y k = 0.001.

Ejercicio 9. Consideremos la ecuación en derivadas parciales parabólica

ut = uxx − ux u, 0 < x < 1, t > 0

con las condiciones

u(0, t) = 2t, t > 0,


u(1, t) = t2 /2, t > 0,
u(x, 0) = senx + cos x, 0 < x < 1.

Transforma el problema en un esquema en diferencias finitas explícito de orden


O(k+h2 ). Aplica este esquema para determinar la solución en el instante t = 0.5,
tomando h = 0.1 y k = 0.0005.

Ejercicio 10. Consideremos la ecuación en derivadas parciales

ut = uxx + u2x , 0 < x < 1, t > 0,

con las condición inicial u(x, 0) = x2 sin (πx), 0 < x < 1, y las condiciones de
contorno u(0, t) = u(1, t) = 0 para t > 0.

a) Transforma el problema en un esquema en diferencias finitas explícito de or-


den O(k + h2 ). Aplica este esquema para determinar la solución en el instante
t = 2, tomando h = 0.1 y k = 0.005.

b) Utiliza el cambio de variable u = ln v para transformar el problema anterior


en un problema lineal.

c) Utiliza el método explícito para aproximar la solución del problema lineal en


t = 2, tomando h = 0.1 y k = 0.05. Compara los resultados obtenidos con los
del apartado a).

Métodos Numéricos II
31
Tema 5. Ideas clave

También podría gustarte