Sei sulla pagina 1di 6

Amalia Luque Sendra Control y simulacin de sistemas

Prctica 4
0. INTRODUCCIN
El Mtodo de Diferencias Finitas es un mtodo de carcter general que permite
la resolucin aproximada de ecuaciones diferenciales definidas en recintos
finitos. Obtiene una solucin aproximada de las ecuaciones diferenciales
definidas en un recinto o regin de trabajo. Sobre dicho recinto habr definidas
unas condiciones de contorno o frontera y unas condiciones iniciales que
marcarn el punto de partida en la solucin de problemas concretos.
El primer paso para la
aplicacin del mtodo es definir
el recinto donde ha de
calcularse el valor de la funcin
incgnita a resolver. Dicho
recinto, que en este caso
particular ser de dos
dimensiones, se discretiza en
un nmero variable de puntos
formando una malla o matriz
rectangular. Esos puntos se
llamarn nodos. La aplicacin
del Mtodo de Diferencias
Finitas sobre el recinto dar
como resultado conocer el valor
de la funcin incgnita en cada uno de esos nodos. El nmero y disposicin de
los mismos depende de la exactitud que se desea en las soluciones.
El mtodo aproxima la funcin incgnita en cada nodo por su desarrollo en
serie de Taylor. El nmero de trminos del desarrollo, que se tendrn en
cuenta, ser el suficiente para que junto con las condiciones de contorno y las
condiciones iniciales, sea posible eliminar las derivadas y obtener, de este
modo, una ecuacin que nos permita conocer el valor de la funcin en cada
nodo. Dicha ecuacin relaciona el valor de la funcin en un nodo con el valor
de la funcin en los nodos adyacentes.
El proceso anterior se repite para cada uno de los nodos, obtenindose un
sistema de ecuaciones, cuya resolucin conduce a la obtencin de la solucin
aproximada que estbamos buscando. La solucin del sistema de ecuaciones
es un proceso iterativo que puede resolverse utilizando diferentes mtodos. La
Pgina 1
Amalia Luque Sendra Control y simulacin de sistemas
aplicacin de un mtodo u otro y el nmero de iteraciones que consideremos
influirn en el resultado final.
1. PRIMERA PARTE
Implementamos un algoritmo para integrar la ecuacin de ondas (ecuacin
hiperblica)
b t a x t x u c t x u
xx tt
0 0 ) , ( ) , (
2
con condiciones iniciales y de contorno dadas por:
) ( ) 0 , (
) ( ) 0 , (
0 ) , ( 0 ) , 0 (
x g x u
x f x u
t a u t u
t


Para esto usaremos el mtodo basado en la ecuacin en diferencias:
1 , , 1 , 1
2
,
2
1 ,
) ( ) 2 2 (
+ +
+ +
j i j i j i j i j i
u u u r u r u
r=ck/h, k es el paso de integracin en la variable t y h en la variable x para las
dos primeras filas
i i i
i i
g k f u
f u
+

2 ,
1 ,
La funcin tendr como parmetros de entrada a, b, c, n (nmero de puntos en
[0, a]) y m (nmero de puntos en [0, b]).
Probamos la integracin para a = 1 y b = 0.5:
0 ) (
) 2 ( ) ( ) (

+
x g
x sen x sen x f
El algoritmo implementado en Matlab es el siguiente:
function ec_hiper(a,b,c,n,m)
u=zeros(n,m);
k=a/n; h=b/m; r=c*k/h;
u(1,:)=0;u(a,:)=0;
for i=2:1:(n-1)
u(i,1)=sin(pi*(i-1)*h)+sin(2*pi*(i-1)*h);
u(i,2)=sin(pi*(i-1)*h)+sin(2*pi*(i-1)*h);
end
for j=3:1:m
for i=2:1:(n-1)
u(i,j)=(2-2*r^2)*u(i,j-1)+r^2*(u(i+1,j-1)+u(i-1,j-1))-u(i,j-2);
end
Pgina 2
Amalia Luque Sendra Control y simulacin de sistemas
end
surf(u)
Al ejecutar esta funcin obtenemos la integracin de la ecuacin de ondas
(ecuacin hiperblica).
2. SEGUNDA PARTE
a) Implementar el mtodo iterativo para resolver la ecuacin de Laplace
(elptica)
b y a x u u
yy xx
+ 0 0 0
y condiciones de contorno:
) ( ) , (
) ( ) , 0 (
) ( ) , (
) ( ) 0 , (
4
3
2
1
y f y a u
y f y u
x f b x u
x f x u

Para el mtodo recursivo:


Pgina 3
Amalia Luque Sendra Control y simulacin de sistemas
4
4
, 1 , 1 , , 1 , 1
,
, , ,
j i j i j i j i j i
j i
j i j i j i
u u u u u
r
r u u
+ + +

+
+ +
La funcin tendr como argumentos de entrada a, b, h (paso de integracin),
tol (criterio de convergencia) e itermax (nmero mximo de iteraciones).
Escogemos los valores iniciales de la malla nulos e integramos la ecuacin
para a = b = 4 y
0 ) , 4 ( 80 ) , 0 (
180 ) 4 , ( 20 ) 0 , (


y u y u
x u x u
El algoritmo implementado en Matlab es el siguiente:
function ec_elip(a,b,h,tol,itermax)
n=a/h; m=b/h; k=0; emax=tol;
u=zeros(n,m);r=zeros(n,m);
u(:,1)=20; u(1,:)=80;
u(:,m)=180;u(n,:)=0;
while (k<itermax)&(emax>=tol)
for j=2:1:(m-1)
for i=2:1:(n-1)
u(i,j)=u(i,j)+r(i,j);
r(i,j)=(u(i+1,j)+u(i-1,j)+u(i,j+1)+u(i,j-1)-4*u(i,j))/4;
if emax<r(i,j)
emax=r(i,j);
end
end
end
k=k+1;
end
surf(u)
Al ejecutar esta funcin obtenemos la integracin de la ecuacin de Laplace
(ecuacin elptica).
Pgina 4
Amalia Luque Sendra Control y simulacin de sistemas
b) Comprobamos como mejora la convergencia utilizando la siguiente
modificacin (mtodo de sobrerrelajacin sucesiva):
2
, , ,
1
cos
1
cos 4 2
4
1
1
]
1

,
_

,
_

,
_

+
m n
w
r w u u
j i j i j i

con n y m el nmero de puntos en las coordenadas x e y.
El algoritmo implementado en Matlab es el siguiente:
function ec_elip(a,b,h,tol,itermax)
n=a/h; m=b/h; k=0; emax=tol;w=(4/(2+sqrt(4-(cos(pi/(n-1))+cos(pi/(m-1)))))^2);
u=zeros(n,m);r=zeros(n,m);
u(:,1)=20; u(1,:)=80;
u(:,m)=180;u(n,:)=0;
while (k<itermax)&(emax>=tol)
for j=2:1:(m-1)
for i=2:1:(n-1)
u(i,j)=u(i,j)+w*r(i,j);
r(i,j)=(u(i+1,j)+u(i-1,j)+u(i,j+1)+u(i,j-1)-4*u(i,j))/4;
if emax<r(i,j)
Pgina 5
Amalia Luque Sendra Control y simulacin de sistemas
emax=r(i,j);
end
end
end
k=k+1;
end
surf(u)
Al ejecutar esta funcin obtenemos de nuevo la integracin de la ecuacin de
Laplace (ecuacin elptica), con una mejora en la convergencia.
En todos los casos hemos procurado que la salida del mtodo iterativo se
produjera por alcanzar la tolerancia a error, y nunca por alcanzar el nmero
mximo de iteraciones. En este caso podemos comprobar que, en efecto, se ha
reducido el nmero de iteraciones necesarias para alcanzar la tolerancia
introducida.
Pgina 6

Potrebbero piacerti anche