• No se han encontrado resultados

Soluci´ on de la ecuaci´ on de calor sobre un intervalo usando el m´ etodo expl´ıcito de diferencias finitas

N/A
N/A
Protected

Academic year: 2022

Share "Soluci´ on de la ecuaci´ on de calor sobre un intervalo usando el m´ etodo expl´ıcito de diferencias finitas"

Copied!
4
0
0

Texto completo

(1)

Soluci´ on de la ecuaci´ on de calor sobre un intervalo usando el m´ etodo expl´ıcito de diferencias finitas

Agradezco a Yahir Uriel Guzm´an P´erez por el estudiar juntos este tema.

Requisitos. Soluci´on de problemas de frontera para ODE de segundo orden con el m´etodo de diferencias finitas.

1. La ecuaci´on de calor sobre un intervalo finito. Consideremos la ecuaci´on

(D2u)(x, t) = (D21u)(x, t) (0 < x < 1, t > 0), (1) o, en la notaci´on cl´asica, ∂tu(x, t) = ∂x22u(x, t). Suponemos que la funci´on u se anula en la frontera del intervalo:

u(0, t) = , u(1, t) = (t ≥ 0), (2)

y satisface una condici´on inicial:

u(x, t) = f(x) (0≤ x ≤ 1). (3)

Suponemos que f ∈ C([0, 1]), f(0) = f(1) = 0.

2. Discretizaci´on del espacio. Dividimos el intervalo espacial [0, 1] en n partes iguales, entonces cada parte es de longitud h := /n. En otras palabras, trabajamos con la malla uniforme de

| {z }

¿cu´antos?

nodos equidistantes:

x0 =

n = h = , x1 =

n = h, x2=

n = h,

xj =

h = h, xn =

n = h = .

Notamos que

xj+ h = =

| {z }

x???

, xj− h =

| {z }

x???

. (4)

El vector [x0, x1, . . . , xn]>se puede construir con el siguiente comando del lenguaje Matlab.

x = linspace(???, ???, ???)’;

Soluci´on de la ecuaci´on de calor con el m´etodo expl´ıcito, p´agina 1 de 4

(2)

3. Discretizaci´on del tiempo. Nuestra respuesta final ser´a la soluci´on aproximada en un momento dado T , es decir, el vector de los valores aproximados de u(xj, T ). Dividimos el intervalo [0, T ] en m partes iguales, cada una de longitud

τ := .

Los momentos del tiempo forman una malla uniforme [t0, . . . , tm]>, donde

tk= = τ.

Notamos que

tk+ τ =

| {z }

t???

. (5)

4. Ecuaci´on de la recta que pasa por dos puntos dados en el plano (repaso).

Para el siguiente ejemplo necesitamos recordar la ecuaci´on de la recta que pasa por dos puntos dados (x0, y0), (x1, y1). Escrimos la ecuaci´on en la siguiente forma:

y = k(x − x0) + b.

Poniendo x = x0 obtenemos b = . Al sustituir x = x1, obtenemos k = .

5. Ejemplo de condici´on inicial. Como un ejemplo de condici´on inicial, podemos trabajar con la siguiente funci´on lineal a trozos:

(0, 0)

(α, 1)

(1, 0) 1

α

Una de las rectas pasa por (0, 0) y (α, 1), por eso su ecuaci´on es

y = x. (6)

La otra recta pasa por los puntos ( , ) y ( , ), luego su ecuaci´on es

y = x − . (7)

Soluci´on de la ecuaci´on de calor con el m´etodo expl´ıcito, p´agina 2 de 4

(3)

La funci´on que nos interesa se puede obtener como el

| {z }

m´ınimo/m´aximo

de las dos

funciones lineales dadas (6) y (7):

f(x) =

| {z }

min / max



 ,



.

Definamos f en el int´erprete de Matlab o GNU Octave (denot´andola por f1) y dibujemos su gr´afica para comprobar que la f´ormula es correcta:

alpha = 0.3

f1 = @ (x) m?? (x / alpha, ???) xg = linspace(0, 1, 201)’;

plot(xg, f1(???));

6. C´odigo para comprobaci´on. Antes de escribir la funci´on solveheatfindifexplicit que resuelva el problema, escribamos la funci´on que har´a la comprobaci´on. Denotemos por n al n´umero de las partes en las cuales se divide el intervalo espacial [0, 1], por T al tiempo en el cual queremos calcular la soluci´on, y por nT al n´umero de partes en las cuales se divide el intervalo del tiempo [0, T ].

function [] = testsolveheat(n, nT), alpha = 0.3;

f1 = @ (x) ???;

x = linspace(0, 1, n);

# despues de escribir solveheatfindifexplicit,

# podremos descomentar la siguiente linea:

# u = solveheatfindifexpl(f1, n, nT);

# mientras definimos u de manera trivial:

u = zeros(n + 1, 1);

plot(x, f1(x), x, u, ’*’);

end

La funci´on testsolveheat ya est´a lista para ejecutar, pero muestra solamente la gr´afica de la funci´on f y la gr´afica de la funci´on nula.

Soluci´on de la ecuaci´on de calor con el m´etodo expl´ıcito, p´agina 3 de 4

(4)

7. Aproximaci´on de las derivadas parciales. En la definici´on de la derivada parcial D2 fijamos la primera variable (la coordenada espacial), por eso tenemos la siguiente aproximaci´on:

(D2u)(x, t)≈ u(x, t + τ) − u(x, t) .

En la definici´on de D21 fijamos la segunda variable (el momento del tiempo), por eso tenemos la siguiente aproximaci´on:

(D21u)(x, t)≈ u(x − h, t) − 2 +

.

Usando (5) y (4), obtenemos

(D2u)(xj, tk)≈ u(xj, ) − u( , )

, (8)

(D21u)(xj, tk)≈ u( , ) − 2 +

. (9)

8. Un an´alogo discretizado de la ecuaci´on original. Aproximamos ambos lados de la ecuaci´on (1) por los valores de la funci´on u en los puntos de la malla, usando (8) y (9):

u(xj, ) − u( , )

= u( , ) − 2 +

.

Despejamos u(xj, tk+1):

u(xj, tk+1) = u( , ) −

h2 −u( , ) + 2 − . (10)

Las condiciones de frontera significan que

u(x0, tk) = , u( , ) = , y la condici´on inicial se convierte en

u( , ) = fj.

Denotemos por U al vector [u(xj, tk)]n−1j=1, y por V al vector [u(xj, tk+1]n−1j=1. Entonces V se puede expresar a trav´es de U usando la matriz de Toeplitz tridiagonal Tn−1 con entradas diagonales −1, 2, −1:

V = U + ???∗ U.

Falta programar esta receta en una funci´on solveheatfindifexplicit.

Soluci´on de la ecuaci´on de calor con el m´etodo expl´ıcito, p´agina 4 de 4

Referencias

Documento similar

Conversamos sobre las voces del tiempo, las de Dios y las del alma para discernir y decidir cómo amar más y servir mejor para gestar la Re-evolución

CFTR2 forma parte de un proyecto de colaboración internacional que aúna registros, médicos e investigadores especializados en fibrosis quística para categorizar todas las variantes

Ortogonalidad de los espacios de autovectores de una matriz normal Sea A n×n una matriz compleja normal, y λ 1 6= λ 2 autovalores distintos de A.. El teorema de diagonalización

Porque si ni siquiera un beneficio tan poco costoso, y con tan escasa dificultad de implementación, logra concretarse en dos años... cuánto tiempo pasará para

Asumiendo que el precorte se considera factor de riesgo de compli- caciones globales en varios estudios multicéntricos, aunque como hemos referido es más discutible su relación

[r]

Se supone que a la matriz A se puede aplicar el m´ etodo de eliminaci´ on de Gauss con pivotes diagonales, es decir, para cada p en el paso n´ umero p la entrada (p, p) es no

Agradezco a Gabino S´ anchez Arzate por estudiar juntos los temas presentados en estos