1. UNIVERSIDAD NACIONAL
“HERMILIO VALDIZAN”- HUANUCO
FACUL AD DE INGE RIA CIVIL Y ARQUIT CT
T NIE E URA
CURSO : MÉTODOS NUMÉRICOS
P OFESOR
R A : Jaimes Reátegui, Sumaya
INTEGRANTES : Domínguez Muños,
Jhon H.
Mendoza Santiago, Brigner
Salvador Salazar, Owner H
HUÁNUCO – 2 009
2.
3. SOLUCIONES NUMÉRICAS PARA LAS ECUACIONES
DIFERENCIALES PARCIALES
CUERPO ISOTROPICO
Si la conductividad térmica en cada uno de los puntos es independiente
de la dirección del flujo de calor a través del punto.
En un punto la Tº se obtiene resolviendo la siguiente ecuación
donde k, c y p son funciones de (x, y, z) y representan, respectivamente,
la conductividad térmica, el calor específico y la densidad del cuerpo en
el punto (x, y, z).
Cuando k, c y p son constantes, a esta ecuación se le denomina
ecuación simple tridimensional del calor, y se expresa como
Si la frontera del cuerpo es relativamente simple, la solución de esta
ecuación se obtiene usando la serie de Fourier. En la general si k, c y
no son constantes o cuando la frontera es irregular, la solución se
obtiene mediante métodos de aproximación.
4. consideraremos la ecuación diferencial parcial
elíptica denominada ecuación de Poisson:
0
En esta ecuación suponemos que la función f describe
los datos del problema en una región plana R cuya
frontera denotamos con S. Este tipo de ecuaciones
aparece de manera natural en el estudio de diversos
problemas físicos dependientes del tiempo; por
ejemplo la distribución de calor para estado estable
en una región plana, la energía potencial de un punto
en un plano sobre el que operan fuerzas
gravitacionales y los problemas bidimencionales del
estado estable que incluyen fluidos incompresibles.
5. Si la temperaturadentro de la region está
determinada por su distribución en la frontera de
la región, a las restricciones se les llama
condiciones de frontera de Dirichlet. Éstas están
dadas por
u(x,y) = g(x, y),
para toda (x, y) en S, o sea, la frontera de la región
R. Véase la Fig.
y
S (x,y):la temperatura se
mantiene
R constante a g(x,y)
grados
x
6. Este método permite el cálculo de la derivada de
orden r de señales discretas, a partir de la
determinación de las diferencias centrales
existentes entre datos consecutivos, la cual viene
dada de forma general mediante:
7. Para el cálculo de la derivada de cualquier orden
se sustituye r en la ecuación anterior por el orden
de la derivada de interes, obteniéndose para las
derivadas de primer, segundo, tercer y cuarto
orden las siguientes expresiones que
corresponden a los valores de r=1; r=2; r=3 y r=4
respectivamente.
8. En la forma de diferencias, esto da como resultado
el método de las diferencias centrales con un error
local de truncamiento del orden ;
h 2 h
2
2 ÷ + 1 w i,j (w i+1,j + w i1,j ) ÷ (w i,j+1 + w i,j1 ) = h2f (xi , y j )
k
k
9. Los métodos de Gauss y Cholesky hacen parte
de los métodos directos o finitos. Al cabo de un
número finito de operaciones, en ausencia de
errores de redondeo, se obtiene x* solución del
sistema Ax = b.
El método de Gauss-Seidel hace parte de los
métodos llamados indirectos o Iterativos. En
ellos se comienza con x0 = (x01; x02;…; x0n), una
aproximación inicial de la solución. A partir de
x0 se construye una 2nueva n aproximación de la
solución, x1 = (x11; x1 ;…; x1 ). A partir de x1 se
construye x2 (aquí el superíndice indica la
iteración y no indica una potencia).
Asi sucesivamente se construye una sucesión
de vectores {XK}, con el objetivo, no siempre
garantizado, de que
10. Generalmente los métodos indirectos son una buena
opción cuando la matriz es muy grande y dispersa o
rala (sparse), es decir, cuando el numero de
elementos no nulos es pequeño comparado con n2,
numero total de elementos de A. En estos casos se
debe utilizar una estructura de datos adecuada que
permita almacenar únicamente los elementos no
nulos.
En cada iteración del método de Gauss-Seidel, hay n
sub iteraciones. En la primera sub iteración se
modifica únicamente x1. Las demás coordenadas x2,
x3, ..., xn no se modifican. El calculo de x1 se hace de
tal manera que se satisfaga la primera ecuación.
11. En la segunda sub iteración se modifica
únicamente x2. Las demás coordenadas x1,
x3, ..., xn no se modifican. El calculo de x2 se
hace de tal manera que se satisfaga la segunda
ecuación.
Así sucesivamente, en la n-esima sub iteración
se modifica únicamente xn. las demás
coordenadas x1, x2, ..., xn-1 no se modifican. El
calculo de xn se hace de tal manera que se
satisfaga la n-esima ecuación.
12. La ecuación diferencial parcial elíptica que
estudiaremos es la ecuación de Poisson:
∂ 2u(x,y) ∂ 2u(x,y)
∇ 2u(x,y) = + = f(x,y) ; en (x,y) ∈ R y
∂x 2
∂y 2
U(x, y) = g(x, y); para (x,y) S, donde:
{
R = (x,y)
a < x < b, c < y < d }
Y S denota la frontera de R. Para este análisis,
suponemos que tanto f como g son continuas
en sus dominios y que se garantiza una
solución única.
13. El método usado es una adaptación de la técnica de
diferencias para problemas con valor de frontera. El primer
paso h = ( b – a ) / n y k = ( d – c ) / m. La división del
intervalo [ a , b ] en n partes iguales de ancho h, y del
intervalo [ c , d ] en m partes iguales de ancho k da como
resultado una (xi ,y j )
cuadricula en el rectángulo R al trazar líneas
verticales y horizontales a través de los puntos con
coordenadas , donde
ym = d
. . .
.
.
.
.
.
.
.
.
.
.
.
.
. . .
. . . xi = a + ih, para cada i = 0, 1, 2, 3, . . . , n,
y2
. . . yi = c + jk, para cada j = 0, 1, 2, 3, . . . , m.
y1
. . .
y0 = c
x 0= a x1 x2 x3 x4 x n= b
14. Las líneas son líneas de cuadrícula, y sus
intersecciones son los puntos de red de la
cuadrícula. En cada punto de red del interior de la
cuadrícula con i = 1, 2, …, n-1 y con j = 1, 2, …, m-
1, utilizando la serie de Taylor en la variable x
alrededor de Xi para generar la fórmula de las
diferencias centrales:
∂2u(x i , y j ) u(x i + 1, y j ) - 2*u(x i , y j ) + u(x i - 1, y j ) h2 ∂4u
= - ( ℑ, y j ),
i
∂x 2 h2 12 ∂x 4
Donde ℑ ∈ (x i - 1, x i +1 )
i
También usamos la serie de Taylor en la variable y
alrededor de Yi para generar la fórmula de las
diferencias centrales:
∂ 2u(xi , y j ) u(x i , y j+1 ) - 2*u(x i, y j ) + u(x i , y j - 1 ) h2 ∂ 4 u
= - ( xi , η j ),
∂x 2
k2 12 ∂ y 4
Donde ηi ∈ ( y i - 1, y i +1 )
15. El uso de estas fórmulas nos permite expresar la
ecuación de Poisson en los puntos como: (xi ,y j )
u(xi+1, y j )-2*u(x i , y j )+u(xi-1, y j ) u(x i, y j+1 )-2*u(x i, y j )+u(xi , y j-1 ) h2 ∂ 4 u h2 ∂ 4 u
+ = f(xi ,y j )+ ( ℑi , y j )+ ( xi , η j )
h2 k2 12 ∂x 4 12 ∂y 4
Para toda i = 1, 2, … , n-1 y j = 1, 2, …, m-1 y las
condiciones de frontera como:
u(x o , y j ) = g(x o , y j ), para cada j = 0, 1, ... ,m,
u(xn , y j ) = g(xn , y j ), para cada j = 0, 1, ... ,m,
u(xi , y 0 ) = g(x i , y 0 ), para cada i = 0, 1, ... ,n - 1,
u(xi , y m ) = g(xi , y m ), para cada i = 0, 1, ... ,n - 1.
16. En la forma de diferencias, esto da como
resultado el método de las diferencias
centrales con un error local de truncamiento del
orden o(h2 + k 2 ) ;
h 2 h
2
2 ÷ + 1 w i,j - (w i+1,j + w i-1,j )- ÷ (w i,j+1 + w i,j-1 ) = -h2f (x i , y j )
k
k
Para toda i = 1, 2, … , n-1 y j = 1, 2, …, m-1, y
uo j = g(x o , y j ), para cada j = 0, 1, ... ,m,
un j = g(x n , y j ), para cada j = 0, 1, ... ,m,
ui0 = g(x i , y 0 ), para cada i = 0, 1, ... ,n - 1,
uim = g(x i , y m ), para cada i = 0, 1, ... ,n - 1.
Donde w i,j aproxima u(xi ,y j ) .
17. La ecuación común contiene aproximaciones a
u(x,y)
en los puntos :
u(x i+1, y j ),u(x i , y j ),u(x i-1, y j ),u(x i, y j+1 ),u(x i , y j-1 )
Al reducir la parte de la cuadrícula donde estos
puntos están situados, se observa que cada
ecuación contiene aproximaciones en una región
en forma de estrella alrededor de (xi , y j )
d
yj + 1 X
yj X X
X
yj -1 X
c
a xi - 1 xi xi + 1
b
18. Si utilizamos la información de las condiciones de frontera
siempre que sea conveniente en el sistema dado, es decir, en
todos los puntos (x i , y j ) adyacentes al punto de red de la
frontera, tendremos un sistema lineal (n-1)(m-1) por
(n-1)(m-1) cuyas incógnitas son las aproximaciones w i,j
a
u(xi ,y j ) en el interior de los puntos de red.
El sistema lineal que contiene estas incógnitas se expresa
más eficientemente en cálculos matriciales, si se introduce un
remarcaje de los puntos interiores de la red. Un sistema de
marcaje de estos puntos consiste en utilizar
Pl = (xi , y j ) y Wl = w i,j,
Donde l = i + (m - 1 – j)(n – 1), para toda i = 1, 2, … , n-1 y j =
1, 2, …, m-1. Y así se marcan consecutivamente los puntos de
red de izquierda a derecha y de arriba abajo. Por ejemplo, con
n = 4 y m = 5 con el remarque se obtiene una cuadrícula cuyos
puntos se muestran en el gráfico. Al marcar los puntos de este
modo, se garantiza que el sistema necesario para determinar
sea una matriz de banda con un ancho de banda máximo
de 2n-1.
20. a, b, c, d, m, n,
PROCESO
PROCESO X, Y, v,t,
f, g(condiciones
F, w
de frontera),
tol, N
21. a: Limite inferior de las abscisas
b: Limite superior de las abscisas
c: Limite inferior de las ordenadas
d: Limite superior de las ordenadas
n: Numero de particiones del intervalo [a,b]
m: Numero de particiones del intervalo [c,d]
fun1: La función general, g(x,y)
fun2: La función, f(x,y)
tol: Tolerancia para las iteraciones
N: El numero de iteraciones
w(i,j): Variable matricial que aproxima a g(x,y)
h: Equidistancia entre los nudos horizontales
k: Equidistancia entre los nudos verticales
l: Contador que asigna el número de iteraciones
norm: Variable estático o valor constante
X: Vector fila que representa a las abscisas
Y: Vector fila que representa a las ordenadas
F: Matriz que representa a los puntos de f(x,y)
G: Matriz que representa a los puntos de G(x,y)
22. Para el comprender mejor el programa
se ha realizado un diagrama de flujo,
mediante el cual este programa puede
ser codificado en cualquier lenguaje de
programación, facilitando así a la
persona interesada en programar este
tema.
23. INICIO
INICIO
LEER:a,b,c,d,n,m,fun,fun1,fun2,fun
LEER:a,b,c,d,n,m,fun,fun1,fun2,fun F=zeros(n+1,m+1);
3,fun4,tol,N F=zeros(n+1,m+1);
3,fun4,tol,N
FOR i=1: n+1
FOR i=1: n+1
h=(b-a)/n; k=(d-c)/m;
h=(b-a)/n; k=(d-c)/m;
X=zeros(1,n+1); Y=zeros(1,m+1); FOR j=1:m+1
X=zeros(1,n+1); Y=zeros(1,m+1); FOR j=1:m+1
v=zeros(1,n+1); t=zeros(1,m+1);
v=zeros(1,n+1); t=zeros(1,m+1);
y=Y(j);
y=Y(j);
FOR i=1: n+1 x=X(i);
FOR i=1: n+1 x=X(i);
F(i,j)=eval(fun);
F(i,j)=eval(fun);
X(i)=a+(i-1)*h; NEXT (j)
X(i)=a+(i-1)*h; NEXT (j)
NEXT (i) NEXT (i)
NEXT (i) NEXT (i)
FOR j=1: m+1 w=zeros(n-1,m-1);
FOR j=1: m+1 w=zeros(n-1,m-1);
la=(h^2)/(k^2);
la=(h^2)/(k^2);
Y(i)=a+(i-1)*k; mu=2*(1+la); l=1;
Y(i)=a+(i-1)*k; mu=2*(1+la); l=1;
NEXT (j) WHILE l<=N
NEXT (j) WHILE l<=N
FOR i=1: n+1 z=(-h^2*F(2,m)+Y(m)+la*v(2)+la*w(1,m-2)+w(2,m-1))/mu;
FOR i=1: n+1 z=(-h^2*F(2,m)+Y(m)+la*v(2)+la*w(1,m-2)+w(2,m-1))/mu;
norm=abs(z-w(1,m-1));
x= X(i); v(i)=eval(fun4); norm=abs(z-w(1,m-1));
x= X(i); v(i)=eval(fun4); w(1,m-1)=z;
w(1,m-1)=z;
NEXT (i) FOR i=3: n-1
NEXT (i) FOR i=3: n-1
FOR j=1: m+1
FOR j=1: m+1 z=(-h^2*F(i,m)+la*v(i)+w(i-2,m-1)+w(i,m-1)+la*w(i-1,m-2))/mu;
z=(-h^2*F(i,m)+la*v(i)+w(i-2,m-1)+w(i,m-1)+la*w(i-1,m-2))/mu;
y=Y(j); t(j)=eval(fun2)
y=Y(j); t(j)=eval(fun2)
abs(w(i-1,m-1)-z)>norm
F abs(w(i-1,m-1)-z)>norm
NEXT (j) F
NEXT (j)
V
V
norm=abs(w(i-1,m-1)-z);
norm=abs(w(i-1,m-1)-z);
w(i-1,m-1)=z;
w(i-1,m-1)=z;
NEXT (i)
NEXT (i)
A
A
24. A B
A B
z=(-h^2*F(n,m)+t(m)+la*v(n)+w(n-2,m-1)+la*w(n-1,m-2))/mu
z=(-h^2*F(n,m)+t(m)+la*v(n)+w(n-2,m-1)+la*w(n-1,m-2))/mu z=(-h^2*F(n,j)+t(j)+w(n-2,j-1)+la*w(n-1,j)+la*w(n-1,j-2))/mu;
abs(w(n-1,m-1)-z)>norm
F abs(w(n-1,m-1)-z)>norm abs(w(n-1,j-1)-z)>norm
F F abs(w(n-1,j-1)-z)>norm
F
V
V V
V
norm=abs(w(n-1,m-1)-z);
norm=abs(w(n-1,m-1)-z); norm=abs(w(n-1,j-1)-z);
w(n-1,m-1)=z; norm=abs(w(n-1,j-1)-z);
w(n-1,m-1)=z; w(n-1,j-1)=z;
w(n-1,j-1)=z;
for j=m-1:-1:3
for j=m-1:-1:3 NEXT (j)
NEXT (j)
z=(-h^2*F(2,j)+Y(j)+la*w(1,j)+la*w(1,j-2)+w(2,j-1))/mu
z=(-h^2*F(2,2)+G(1,2)+la*G(2,1)+la*w(1,2)+w(2,1))/mu;
abs(w(1,j-1)-z)>norm
F abs(w(1,j-1)-z)>norm
F abs(w(1,1)-z)>norm
F abs(w(1,1)-z)>norm
F
V
V
V
norm=abs(w(1,j-1)-z); V
norm=abs(w(1,j-1)-z);
w(1,j-1)=z; norm=abs(w(1,1)-z);
w(1,j-1)=z; norm=abs(w(1,1)-z);
w(1,1)=z;
w(1,1)=z;
FOR i=3:n-1
FOR i=3:n-1
FOR i=3:n-1
z=(-h^2*F(i,j)+w(i-2,j-1)+la*w(i-1,j)+w(i,j-1)+la*w(i-1,j-2))/mu FOR i=3:n-1
z=(-h^2*F(i,j)+w(i-2,j-1)+la*w(i-1,j)+w(i,j-1)+la*w(i-1,j-2))/mu
z=(-h^2*F(i,2)+la*X(i)+w(i-2,1)+la*w(i-1,2)+w(i,1))/mu;
abs(w(i-1,j-1)-z)>norm
abs(w(i-1,j-1)-z)>norm abs(w(i-1,1)-z)>norm
F abs(w(i-1,1)-z)>norm
F
F
F
V
V V
V
norm=abs(w(i-1,j-1)-z);
norm=abs(w(i-1,j-1)-z); norm=abs(w(i-1,1)-z);
w(i-1,j-1)=z; norm=abs(w(i-1,1)-z);
w(i-1,j-1)=z; w(i-1,1)=z;
w(i-1,1)=z;
NEXT (i) B C NEXT (i)
NEXT (i) B C NEXT (i)
25. C
C
z=(-h^2*F(n,2)+t(2)+la*X(n)+w(n-2,1)+la*w(n-1,2))/mu
z=(-h^2*F(n,2)+t(2)+la*X(n)+w(n-2,1)+la*w(n-1,2))/mu
abs(w(n-1,j1)-z)>norm
abs(w(n-1,j1)-z)>norm
F
F
V
V
norm=abs(w(n-1,1)-z);
norm=abs(w(n-1,1)-z);
w(n-1,1)=z;
w(n-1,1)=z;
norm <= tol
norm <= tol F l==N F
F l==N F
V
V V
V
IMPRIMIR X, Y, v,t, F, w,“Procedimiento terminado con éxito IMPRIMIR X, Y, v,t, F, w, ”Excedió el numero máximo de
IMPRIMIR X, Y, v,t, F, w,“Procedimiento terminado con éxito
para l” IMPRIMIR X, Y, v,t, F, w, ”ExcedióN” numero máximo de
iteraciones a el
para l” iteraciones a N”
“Procedimiento terminado sin éxito…”
“Procedimiento terminado sin éxito…”
l=N;
l=N;
l=l+1;
l=l+1;
END WHILE
END WHILE
END
END
31. OBSERVACIONES
El numero de particiones; h, k; deben ser mayores o iguales que 3.
El tipo de problema que se presenta es mayormente de temperaturas
de placas o semejante a ellos con consideraciones de frontera.
En el grafico que se muestra al ejecutar el programa la parte oscura
representa temperatura cero en las tronteras.
El resultado se muestra en una matriz (A) que es lo mismo que (w)
que tiene dimensiones de (n-1 x m-1),
32. EJEMPLO
Consideremos el problema de determinar la distribución de calor
en estado estable, en una placa cuadrada metálica delgada, con
las dimensiones 0.5 m por 0.5 m. Conservamos dos fronteras
adyacentes de 0º C, mientras el calor en las otras dos fronteras
aumenta linealmente de 0º C en una esquina a 100º C en el sitio
donde ambos lados se encuentran. Si ponemos los lados con las
condiciones de frontera cero a lo largo de los ejes x y y, el
problema se expresa así:
∂2u(x,y) ∂2u(x,y)
+ =0
∂x 2
∂y 2
{
Para (x,y) en el dominio R = u(x,y)
0 < x < 0.5, 0 < y < 0.5 } ,
con las condiciones de frontera:
U(0,y) = 0. U(x,0) = 0, U(x,0.5) = 200x, U(0.5,y) =
200y.
• Si n = m = 4, el problema tiene la cuadrícula que se muestra y la
ecuación de diferencias:
4w i,j - w i+1,j - w i-1,j - w i,j+1 - w i,j-1 ) = 0
33. Para toda i = 1, 2, 3 y j = 1, 2,3.
Expresar esto en una función de los puntos
remarcados de la cuadrícula inferior i = u(Pi )
W
implica que las ecuaciones en los puntos Pi
son:
P1 : 4W1 - W2 - W4 = W0,3 + W1,4,
P2 : 4W2 - W3 - W1 - W5 = W2,4 ,
P3 : 4W3 - W2 - W6 = W4,3 + W3,4 ,
P4 : 4W4 - W5 - W1 - W7 = W0,2,
P5 : 4W5 - W6 - W4 - W2 - W8 = 0,
P6 : 4W6 - W5 - W3 - W9 = W4,2,
P7 : 4W7 - W8 - W4 = W0,1 - W1,0,
P8 : 4W8 - W9 - W7 - W5 = W2,0 ,
P9 : 4W9 - W8 - W6 = W3,0 - W4,1,
34. Donde los lados derechos de las ecuaciones se
obtienen de las condiciones de frontera.
u( x , 0.5 ) = 200x
0.5
P1 P2 P3
P4 P5 P6
u( 0 , y ) = 0 u( 0.5 , y ) = 200y
P7 P8 P9
u( x , 0 ) = 0 0.5
W1,0 = W2,0 = W3,0 = W0,1 = W0,2 = W0,3 = 0
W1,4 = W4,1 = 25, W2,4 = W4,2 = 50, y W3,4 = W4,3 = 75
Las condiciones de frontera implican que :
36. ECUACIONES DIFERENCIALES PARCIALES ELIPTICAS
Ingrese la cota menor de las abscisas(a):
0
Ingrese la cota mayor de las abscisas(b):
.5
Ingrese la cota menor de las ordenadas(c):
0
Ingrese la cota mayor de las ordenadas(d):
.5
Ingrese el numero de particiones de[a,b](n):
4
Ingrese el numero de particiones de[c,d](m):
4
Ingrese f(x,y):
0
Ingrese g(a,y):
0
Ingrese g(b,y):
200*y
Ingrese g(x,c):
0
Ingrese g(x,d):
200*x
Ingrese la tolerancia:
.0001
Ingrese el número máximo de iteraciones:
50
39. EJEMPLO 2
ECUACIONES DIFERENCIALES PARCIALES ELIPTICAS
Ingrese la cota menor de las abscisas(a):
0
Ingrese la cota mayor de las abscisas(b):
2
Ingrese la cota menor de las ordenadas(c):
0
Ingrese la cota mayor de las ordenadas(d):
1
Ingrese el numero de particiones de[a,b](n):
5
Ingrese el numero de particiones de[c,d](m):
6
Ingrese f(x,y):
x*exp(y)
Ingrese g(a,y):
0
Ingrese g(b,y):
2*exp(y)
Ingrese g(x,c):
x
Ingrese g(x,d):
exp(x)
Ingrese la tolerancia:
.0000000001
Ingrese el número máximo de iteraciones:
60