You are on page 1of 90

APLICACIN DEL MDF Y DEL MEF A

PROBLEMAS DE CONTROL
Proyecto de fin de carrera

Departamento de Ingeniera de Sistemas y Automtica


Escuela Tcnica Superior de Ingeniera
Universidad de Sevilla

Autor: Pablo Casanovas Espinar


Tutor: Jos ngel Acosta Rodrguez

Este documento constituye el proyecto de fin de carrera llamado Aplicacin del MDF y del
MEF a problemas de control, realizado por Pablo Casanovas Espinar para la titulacin de
Ingeniera Industrial (plan 98). El proyecto depende del Departamento de Ingeniera de
Sistemas y Automtica de la Universidad de Sevilla. Este proyecto fue tutelado por D. Jos
ngel Acosta Rodrguez.
El documento fue redactado utilizando Microsoft Word, Microsoft Excel y el programa grfico
Graph.
Las fuentes utiliazadas son Calibri con tamao 11 para el texto, y Cambria Math con tamao 11
para las expresiones matemticas.

Sevilla, 24 de Junio de 2014

Agradecimientos

A mi padre, mi madre y mi hermana.

A Steffi.

A mi tutor, Jos ngel.

Resumen
Este proyecto consiste en la aplicacin dos mtodos numricos diferentes para la
aproximacin de ecuaciones diferenciales en derivadas parciales.
En primer lugar se aplic un caso particular del mtodo de las diferencias finitas, que fue
implementado en Matlab, y en segundo lugar el mtodo de los elementos finitos a travs de la
aplicacin informtica Freefem.
Ambos mtodos fueron programados para su posterior aplicacin a un problema prctico de
control de un pndulo invertido.
Finalmente se utiliz el Simulink para la simulacin del sistema mecnico usando las
aproximaciones aportadas por los mtodos anteriores.

Captulo 1 Motivacin y objetivos ............................................................................................... 1


1.1 Introduccin ........................................................................................................................ 1
Captulo 2 Ecuaciones Diferenciales Parciales y sistema mecnico del pndulo invertido ....... 2
2.1 Introduccin a las EDP ......................................................................................................... 2
2.1.1 Ecuaciones Diferenciales Ordinarias ............................................................................ 2
2.1.2 Ecuaciones diferenciales en derivadas parciales ......................................................... 4
2.1.2.1 Definicin .............................................................................................................. 4
2.1.2.2 Condiciones de contorno ...................................................................................... 5
2.1.2.3 EDP de orden dos y dos variables independientes. Tipos y ejemplos .................. 6
2.1.2.4 EDP de orden dos con m variables independientes (m > 2)................................ 9

2.1.2.5 EDP de orden superior .......................................................................................... 9

2.2 Sistema de pndulo invertido ........................................................................................... 10


Captulo 3 Mtodo de las Diferencias Finitas (MDF) ................................................................. 14
3.1 Fundamentos del mtodo de las diferencias finitas ......................................................... 14
3.1.1 Modelos de una variable independiente ................................................................... 14
3.1.2 Modelos de dos variables........................................................................................... 15
3.1.3 Obtencin de la molcula computacional.................................................................. 17
3.1.4 Criterio de estabilidad ................................................................................................ 21
3.1.4.1 Anlisis de estabilidad de Von Neumann ............................................................ 21
3.2 Resolucin mediante el mtodo de las diferencias finitas ............................................... 26
3.2.1 Condiciones de contorno aproximadas...................................................................... 26
3.2.1.1 Condiciones de contorno parablicas ................................................................. 28
3.2.1.1.1 Diferencias regresivas .................................................................................. 28
3.2.1.1.2 Diferencias centradas en q1 y progresivas en q2 ........................................ 32
3.2.1.1.3 Diferencias centradas ................................................................................... 34
3.2.2 Condiciones de contorno exactas .............................................................................. 39
3.2.2.1 Diferencias regresivas ......................................................................................... 39
3.2.2.2. Diferencias centradas ......................................................................................... 40
Captulo 4 Mtodo de los Elementos Finitos (MEF) mediante Freefem ................................... 43
4.1 Fundamentos del mtodo de los elementos finitos ......................................................... 43
4.1.1 Resea histrica ......................................................................................................... 43
4.1.2 Conceptos generales .................................................................................................. 44
4.1.2.1 Manejo del programa Freefem ........................................................................... 49
4.1.2.2 Ejemplo................................................................................................................ 50

4.1.3 Comparacin entre el MEF y el MDF.......................................................................... 55


4.2 Resolucin mediante el mtodo de los elementos finitos ................................................ 56
4.2.1 Condiciones de contorno parablicas ........................................................................ 56
4.2.1.1 Adicin de trminos de orden dos ...................................................................... 59
4.2.2 Condiciones de contorno exactas .............................................................................. 61
Captulo 5 Simulacin y comparacin de resultados ................................................................ 64
5.1 Simulacin en Simulink ..................................................................................................... 64
5.2 Resultados de simulacin .................................................................................................. 65
5.2.1 Diferencias regresivas ................................................................................................ 66
5.2.2 Diferencias centradas ................................................................................................. 67
5.2.3 Elementos finitos........................................................................................................ 70
Anexo .......................................................................................................................................... 75
A.1 Diferencias regresivas ....................................................................................................... 75
A.2 Diferencias centradas........................................................................................................ 76
A.3 Elementos finitos .............................................................................................................. 78
A.3.1 Primera aplicacin...................................................................................................... 78
A.3.2 Segunda aplicacin .................................................................................................... 79
A.3.3 Lectura del fichero u.txt desde Matlab ...................................................................... 80
A.3 Funcin gradiente ............................................................................................................. 81
A.4 Funcin interpoladora....................................................................................................... 82
Bibliografa .................................................................................................................................. 84

Captulo 1
Motivacin y objetivos
1.1 Introduccin
El objetivo de este proyecto de fin de carrera es continuar la lnea de estudio iniciada en (Lucas
Rodrguez, 2012). En el anterior proyecto se estudiaba la implementacin de un mtodo
matemtico numrico para la resolucin de una ecuacin diferencial determinada.
Concretamente mediante el mtodo de las diferencias finitas.
El inters de este proyecto reside en que ha sido abordado siguiendo vas alternativas para la
resolucin de la ecuacin mencionada. Para ello se estudian el mtodo de las diferencias
finitas (con una significativa variacin respecto al proyecto anterior) y el mtodo de los
elementos finitos usando el Freefem, detallando en ambos casos las ventajas y desventajas
que presentan, as como las dificultades y limitaciones que se han ido presentando a lo largo
del desarrollo de este proyecto.
La parte correspondiente a las diferencias finitas fue programada en lenguaje M en Matlab,
que es un lenguaje de alto nivel para el clculo numrico. Est disponible para las plataformas
Unix, Windows, Mac OS X y GNU/Linux .
En cambio, para la implementacin del mtodo de los elementos finitos se decidi explorar las
posibilidades que ofrece el Freefem, que es un lenguaje de programacin y software enfocado
en resolver ecuaciones diferenciales parciales usando el mtodo de elementos finitos.
FreeFem est escrito en C++ y desarrollado y mantenido por la Universidad Pierre y Marie
Curie y el Laboratorio Jacques-Louis Lions. Es compatible con GNU/Linux, Solaris, OS X y MS
Windows. Cabe destacar que un hecho decisivo en la seleccin de este software, fue que es
muy usado por el personal de investigacin del departamento de Ecuaciones Diferenciales y
Clculo Numrico de la Universidad de Sevilla.

Captulo 2
Ecuaciones diferenciales parciales y sistema
mecnico de pndulo invertido.
2.1 Introduccin a las EDP
2.1.1 Ecuaciones Diferenciales Ordinarias
Las Ecuaciones Diferenciales Ordinarias (EDO) y las Ecuaciones Diferenciales Parciales (EDP)
estn presentes en muchos de los modelos matemticos que modelan fenmenos presentes
en la naturaleza.
Las Ecuaciones Diferenciales Ordinarias son en realidad un caso particular de las Ecuaciones
Diferenciales Parciales en el que nicamente hay funciones con una sola variable
independiente.
Son del tipo:
, (), (), , () = 0,
siendo sta una ecuacin diferencial ordinaria de orden , para una funcin () desconocida.

La obtencin de las soluciones de las EDOs es mucho ms sencilla que las de las EDPs, aunque
tambin suponen una gran simplificacin del modelo matemtico que describe la realidad
fsica del sistema que se desea conocer. Esto se debe a que solo aparece una variable
independiente de la que dependen todas las dems.
A continuacin se exponen dos ejemplos de modelado de problemas mediante EDOs recogidos
en (Gallardo, 2012).
Ejemplo 1. Movimiento de un cuerpo en cada libre.
Se tiene un cuerpo de masa m que se deja caer desde una altura h nicamente bajo la
influencia de la gravedad tal y como se observa en la figura 2.1.1.1.

Figura 2.1.1.1

Este sistema se puede modelar mediante la segunda ecuacin de Newton.


=
,

siendo la aceleracin y cada una de las fuerzas que actan sobre la masa. La posicin
del cuerpo en cada instante es (), y por tanto la aceleracin ser su segunda derivada
(). La nica fuerza que acta en el sistema es la de la gravedad que viene dada por
= , donde g es la constante de la gravedad.
Para que nuestro sistema quede completamente definido se requieren en este caso dos
condiciones iniciales, que sern, (0) = , ya que para el instante inicial el cuerpo se
encuentra a una altura h, y (0) = 0, ya que el cuerpo se deja caer y por tanto su
velocidad inicial es cero.
La EDO es de segundo orden y queda de la siguiente forma:
2
= ,
2
(0) = ,

(0) = 0.
Ejemplo 2. Vaciado de un tanque cilndrico.
Se tiene un tanque cilndrico como el de la figura 2.1.1.2 de radio y altura 0
completamente lleno de agua. En la base inferior del tanque hay un orificio de rea . La
constante depender de la forma del orificio.
3

Figura 2.1.1.2

Aplicando la Ley de Torriceli, segn la cual podemos determinar la velocidad de salida del
fluido. Esto se consigue igualando la energa cintica
Despejando , = 2.

y la energa potencial .

El caudal de agua que sale del tanque ser y por tanto podemos definir la siguiente
relacin.
= = 2 ,
=

= 2
,

igualando ambas expresiones obtenemos:


2

= 2 .

Como el tanque est inicialmente lleno, nuestra condicin inicial ser (0) = 0 .

2.1.2 Ecuaciones diferenciales en derivadas parciales


2.1.2.1 Definicin
Aunque son de gran utilidad, existen gran cantidad de problemas que no pueden ser
abordados mediante las EDOs ya que intervienen varias variables independientes. Es en estos
casos cuando se utilizan las EDPs.
Se denomina ecuacin diferencial en derivadas parciales a la ecuacin de la forma:
1 , 2 , , , ,

,,
,,
=0,
1 1 2 2
1

donde se cumple que 1 + 2 + + =

La solucin a la anterior ecuacin en una regin determinada R, es una funcin de la forma


= (1 , 2 , , ) () que al sustituir sta y sus correspondientes derivadas en la
4

ecuacin se convierte en la identidad respecto a sus variables independientes, si por ejemplo


se tiene una EDP con dos variables independientes, . La solucin ser una superficie en el
sistema de coordenadas cartesianas , , (, ) como se muestra en la figura 2.1.2.1.1.

Figura 2.1.2.1.1

En el caso de que la ecuacin dependa de ms de dos variables independientes, no podramos


visualizar geomtricamente la solucin, ya se tendra una superficie de cuatro dimensiones o
hipersuperficie (Romero. Moreno. Rodrguez, 2001).
Por ltimo, el orden de una ecuacin diferencial en derivadas parciales es el orden superior de
las derivadas parciales que estn presentes en la ecuacin. Por ejemplo:

+
= 0 Es de primer orden

2
+
= 0 Es de segundo orden
2

2.1.2.2 Condiciones de contorno


Adems de la ecuacin diferencial, son necesarias las condiciones de contorno para que el
problema quede completamente definido. Como se plantea en (Miersemann, 2012) se
distinguen tres tipos de condiciones:

Condicin tipo Dirichlet


En este caso se fija solucin de nuestra ecuacin en la frontera determinada. Son del
tipo:
(, ) = ()
5

Refirindose a a una frontera determinada, y f(x) a los valores que se tendrn a lo


largo de sta.

Condicin tipo Newmann


Para este tipo de condiciones, se fija la derivada de la funcin incgnita a lo largo del
contorno estudiado. Son del tipo:
(, )
= ()

En este caso, el valor de la derivada de la funcin incgnita en la frontera a est


definido por la funcin g(x).
Condicin tipo Mixta
Estas condiciones combinan las dos anteriores. Son del tipo:
(, ) +

(, )
= ()

2.1.2.3 EDP de orden dos y dos variables independientes. Tipos y ejemplos


Aunque en este proyecto se estudiarn con ms detalle las EDPs de primer orden, tambin
resulta interesante comentar como se clasifican en general las de segundo orden, que
normalmente son de la forma:
2

(, ) 2 + (, ) + (, ) 2 + (, ) + (, ) = (, , ),

donde A, B, C, D y E son constantes.

Las ecuaciones de segundo orden suelen estar clasificadas segn el signo de 2 4

Ecuaciones hiperblicas, si 2 4 > 0.


Sirven para modelar fenmenos oscilatorios, tales como oscilaciones
electromagnticas, vibraciones de cuerdas, vibraciones de membranas, etc.
Como ejemplo, se muestra a continuacin la ecuacin de ondas recogida en
(Caada Villar, 2006). Se tiene una cuerda flexible como la de la figura 2.1.2.3.1
que se estira hasta quedar tensa fijando los extremos en dos puntos
representados en el eje de abscisas por (0,0) y (,0). Tras lo cual se tira de la
cuerda hasta que adopta una curva dada por la ecuacin = (). Por ltimo
se suelta la cuerda. El objetivo del problema es conocer la posicin de la cuerda
en funcin del tiempo y la posicin x.

Figura 2.1.2.3.1

Se ha supuesto que:
1. La cuerda es homognea, es decir, que el cociente de la masa entre la
longitud es constante.
2. Fuerzas gravitacionales despreciables.
Con todo ello se tiene que:
2 2
=
2 2

0 ,

(, 0) = () (1)

>0

(, )
= 0 (2)

(0, ) = (, ) = 0 (3)

La condicin (1) representa la posicin inicial de la cuerda.


La condicin (2) significa que la velocidad inicial de la cuerda es nula.
La condicin (3) significa que los dos extremos de la cuerda estn fijos.

Ecuaciones elpticas, si 2 4 < 0.


Se usan para modelar procesos de ciclo fijo que no dependen del tiempo. Como
ejemplo se ilustra a continuacin la ecuacin de Laplace recogida en (Caada
Villar, 2006). Se tiene una circunferencia C de radio unitario fijada en el origen
como se observa en la figura 2.1.2.3.2. Siendo u una funcin especificada en el
contorno C. U puede ser un por ejemplo un potencial o un campo elctrico. La
regin que encierra C se denomina R.
7

Figura 2.1.2.3.2

2 2
+
= 0,
2 2

para mayor comodidad en el modelado, se realiza el cambio de variables a


coordenadas polares. = (), = ().
Realizando las sustituciones en la ecuacin, queda:
2 1 1 2
+
+
= 0.
2 2 2

Se requiere una especificacin de contorno, que viene dada por


(1, ) = ()
Adems la funcin u debe estar acotada segn
|(, )| <
(, ) 2

Siendo K una constante.

Ecuaciones parablicas, si 2 4 = 0.
Sirven para modelar problemas que incluyen la conduccin o la transferencia
de calor. Como ejemplo, se muestra a continuacin la ecuacin del calor
recogida en (Caada Villar, 2006). Se tiene una varilla delgada de longitud .
Ambos extremos de la varilla se mantienen a 0 C. Se sabe que la distribucin
inicial de temperaturas es una funcin f(x). Se desea conocer la temperatura
en cualquier punto y en cualquier instante.
2
=
0 < < , 0 < <
2
(, 0) = () (1)

(0, ) = (, ) = 0

(2)

La condicin (1) es la distribucin de temperaturas inicial.


La condicin (2) muestra que los extremos de la varilla se mantienen a 0 C.
2.1.2.4 EDP de orden dos con variables independientes ( > )

Las EDP con ms de dos variables independientes describen modelos con otras tantas variables
independientes. Para su resolucin numrica, es necesaria la aplicacin de mtodos numricos
en tres (o ms) dimensiones, lo cual se escapa de los contenidos de este proyecto. Tienen la
siguiente forma:
1 , , , ,

2
2
2
2
,,
,
,

,
,
,

,
=0,
1
1 2
2 1 2
1

un ejemplo podra ser la ecuacin de onda escalar en un espacio de dos dimensiones (tres
variables independientes, t, x e y).

2
2 2
2
=

+
=0
2
2 2
2.1.2.5 EDP de orden superior
Las Ecuaciones Diferenciales Parciales de orden superior (n>2), se caracterizan porque
aparecen trminos diferenciales de grado superior a dos. Tienen la siguiente forma:
1 , 2 , , , ,

,,
,,
=0,
1 1 2 2
1

un ejemplo podra ser la ecuacin que describe la flexin mecnica de una placa elstica:

4
4
4 (, )
+
2
+
=
.
4
2 2 4

2.2 Sistema de pndulo invertido


En este apartado se va a describir un sistema mecnico con dos grados de libertad en el que se
aplicaran los mtodos matemticos numricos para su posterior simulacin. El sistema en
cuestin ha sido extrado de la tesis de (Acosta Rodrguez, 2004).
El sistema es un pndulo de masa formado por una varilla de inercia 1 en el extremo de la
cual hay un disco de inercia 2 como se ve en la figura 2.2.1.

Figura 2.2.1

Los grados de libertad son las variables y que son los ngulos que pueden girar la varilla y
el disco respectivamente. El objetivo del problema es hacer que el pndulo permanezca
vertical, lo cual se consigue mediante la adicin de un controlador que gobierna al disco. Se
activar un par motor que hace girar al disco en funcin de la posicin de la varilla. Se
explicar esto con ms detalle posteriormente.
Las ecuaciones que gobiernan a este sistema en coordenadas cartesianas son las de Lagrange,
y pueden ser descritas como:

1 + 2
2

2
()
0
+
=
2
1
0

(2.2.1),

para simplificar el problema, vamos a realizar un cambio de coordenadas,


1 =
2 = +

Haciendo el cambio de variables, nuestro sistema de ecuaciones (2.2.1) nos queda:


1 1 + 2 2 (1 ) = 0

10

2 2 =
Despejando las variables 1 y 2 nos queda el sistema:

()
+ 1 ,
= 1
2
1
0

y definiendo:

nos queda finalmente:

2
,
1

()

1 =
+ .
2
1
0
El controlador que se usar es el definido en la tesis Control no lineal de sistemas
subactuados (Acosta Rodrguez, 2004). Actuar sobre el disco, por tanto se controlaran las
variables anteriormente descritas y . La expresin de este controlador ha sido obtenida
usando un mtodo de control determinado y viene dado por la siguiente expresin:

donde

= ( ( )1 ) ( 1 ) ,
1

= = ,
1
1
1

= = 1 ,
2
2

= (1 ),

2
2

(1 ) (2 1 )
1
1

,
= 1

(2 1 )

y donde 1 y 2 son parmetros de control definidos por:

1 = (1,1) + (1,2) ,

2 = (1,2) + (2,2) ,

siendo , , , las ganancias de control.

11

El sistema que se va a resolver es el siguiente:


1
1
0
2
2
+ 0 1 , 2 , 1 , 2 .
=
(1 )
1
1
1
2
0

Como se ha visto antes, el vector tiene en cada una de sus dos componentes, la derivada
del potencial. Dicho potencial depende de las variables 1 y 2 . Este potencial se puede
calcular mediante la siguiente ecuacin diferencial:
1

+ 2
= (1 ) (2.2.2),
1
2

siendo 1 < 0 y 2 0 y sujeta a las condiciones de contorno:


2

12 (

1 ,2 )=(0,0)

= 1

2 2
2

12 22 1 2 (

1 ,2 )=(0,0)

1 > 0

= 2

(2.2.3),

2 > 0

La solucin analtica a la ecuacin (2.2.2) viene dada por:


(1 , 2 ) =

cos(1 ) + 2 1
2
2
1

para simplificar tomaremos unos valores de:

1 = 1 ,

2 = 4 ,

= 10 , = = 1 ,

y entonces nuestra ecuacin nos queda:

y su solucin analtica sera:

+4
= 10 (1 ) (2.2.4),
2
1

1
(1 , 2 ) = 10 cos(1 ) + (2 + 41 )2 (2.2.5).
2

Ntese que verifica las condiciones de contorno (2.2.3).

Las derivadas de la ecuacin solucin (2.2.5) con respecto a 1 y 2 son:


12

(1 , 2 )
= 10 (1 ) + 42 + 161
1
(1 , 2 )
= 2 + 41
2

Vase que sustituyendo estas derivadas en la ecuacin, se llega a la expresin 0 = 0, por tanto
la solucin dada es correcta.

13

Captulo 3
Mtodo de las diferencias finitas (MDF)
3.1 Fundamentos del mtodo de las diferencias finitas
Debido a que no siempre es posible hallar una expresin analtica de la solucin de una
ecuacin diferencial en derivadas parciales, o que su obtencin es en excesivo complicada, se
suele recurrir a mtodos numricos para el clculo de una aproximacin de la solucin.
En esta seccin se va a exponer el mtodo numrico de las diferencias finitas, que consiste en
usar derivadas para aproximar ecuaciones de diferencias.

3.1.1 Modelos de una variable independiente


Usando el Teorema de Taylor, que permite la aproximacin de una funcin derivable
determinada en torno a un punto h. Se tiene que:

() =

=0

() ()
( ) ,
!

desarrollando la expresin anterior se llega a:


() = () +

()
() ()
(2) ()
( ) +
( ) ,
( )2 + +
1!
2!
!

a partir de esta expresin es fcil llegar a:


( + ) = () +

2 () 2 3 () 3
()
+
+
+ ,

2 2!
3 3!

reagrupando los trminos llegamos a la expresin de la frmula de las diferencias hacia


delante:
( + ) () () 2 () 3 () 2
=
+
+
+

2 2!
3 3!

(3.1.1.1)

Operando de forma anloga, podemos obtener la aproximacin de f(x-h).


( ) = ()

2 () 2 3 () 3
()
+

+ ,

2 2!
3 3!

14

y de nuevo reagrupando trminos, llegamos a la frmula de las diferencias hacia atrs:


() 2 () 3 () 2
( ) ()
=
+

2 2!
3 3!

(3.1.1.2)

Para ambas expresiones podemos despreciar las derivadas de orden dos y superiores, para
llegar a las frmulas que usaremos en nuestras aproximaciones.
() ( + ) ()
( + ) ()
=
+ ()

() () ( )
() ( )
=
+ ()

Si restamos las ecuaciones (3.1.1.1) y (3.1.1.2), llegamos a la expresin de las derivadas


centradas, que es ms exacta que las anteriores ya que el error cometido es de orden 2
()
3 () 2
( + ) ( )
=2
+2
+ ,
3 3!

reagrupando trminos y despreciando las derivadas de orden tres y superiores nos queda:
() ( + ) ( )
( + ) ( )
=
+ (2 )
.
2
2

Si en vez de restar las ecuaciones (3.1.1.1) y (3.1.1.2) las hubiramos sumado, obtendramos la
aproximacin de las diferencias finitas de segundo grado. Que por supuesto se usarn en
aquellas ecuaciones en las que aparezcan estos trminos.
( + ) 2() + ( )
2 () 1
4 () 3
=2
+2
+ ,
2
2 2!
4 4!

despreciando trminos que contengan derivadas de cuarto orden y superiores, nos queda:
2 () ( + ) 2() + ( )
( + ) 2() + ( )
2)
=
+
(
.

2
2
2

3.1.2 Modelos de dos variables


En el caso de que la funcin que se desea aproximar dependa de dos variables independientes,
se lleva a cabo un procedimiento similar:
( + , ) = (, ) +

2 (, ) 2 3 (, ) 3
(, )
+
+
+

2 2!
3 3!

(3.1.2.1),

de aqu se puede calcular fcilmente la expresin de las diferencias hacia adelante,


despreciando derivadas de orden dos y superior nos queda:

15

(, ) =

(, ) ( + , ) (, )
( + , ) (, )
=
+ ()
.

(, ) =

(, ) (, + ) (, )
(, + ) (, )
=
+ ()
.

De idntica manera se obtienen las diferencias hacia adelante en caso que la variable
incrementada sea la y.
Para las frmulas de las diferencias regresivas partimos de:
( , ) = (, )

y fcilmente llegamos a:
(, ) =
(, ) =

2 (, ) 2 3 (, ) 3
(, )
+

2 2!
3 3!

(3.1.2.2),

(, ) (, ) ( , )
(, ) ( , )
=
+ ()

(, ) (, ) (, )
(, ) (, )
=
+ ()
.

De igual forma que hicimos para el caso de las ecuaciones con una sola variable independiente,
si restamos las expresiones (3.1.2.1) y (3.1.2.2), se llega a la frmula de las diferencias
centradas:
(, ) =

(, ) ( + , ) ( , )
( + , ) ( , )
=
+ (2 )
.
2
2

(, ) =

(, ) (, + ) (, )
(, + ) (, )
=
+ ( 2 )
.
2
2

De forma anloga para la otra variable independiente:

Si en vez de restarse las expresiones (3.1.2.1) y (3.1.2.2) se hubiesen sumado se llega las
frmulas de diferencias de segundo orden:
(, ) =

2 (, ) ( + , ) 2(, ) + ( , )
=
+ (2 )
2
2

(, ) =

2 (, ) (, + ) 2(, ) + (, )
=
+ ( 2 )
2
2

( + , ) 2(, ) + ( , )
.
2

(, + ) 2(, ) + (, )
.
2

16

3.1.3 Obtencin de la molcula computacional


Sustituyendo las expresiones anteriores en la ecuacin que se desee aproximar, obtendramos
la frmula de nuestra molcula, es decir, una expresin con la que podemos calcular la
solucin en un nodo determinado a partir de otros nodos conocidos (bien sea mediante
condiciones de contorno o mediante iteraciones anteriores).
En este texto nos centraremos en el clculo progresivo de nodos a partir de nodos anteriores,
es decir, en cada iteracin se obtiene la solucin en un nuevo nodo de la malla. El proceso
iterativo no acabar hasta que lleguemos al ltimo nodo de la malla.
Ntese que otra forma de proceder sera plantear un sistema de ecuaciones como en (Lucas
Rodrguez, 2012). A partir de la molcula se puede plantear un sistema de ecuaciones lineales
que habra que resolver para obtener la solucin buscada. Aunque como se coment antes, en
este texto nos centraremos en el clculo progresivo de las soluciones en los nodos.
A continuacin se ilustra con un ejemplo la forma de proceder para la aproximacin de la
solucin de una EDP mediante el Mtodo de las Diferencias Finitas. El ejemplo en cuestin es
el problema de la conduccin de calor en una varilla. El problema viene dado por:

(, ) = 2 (, )

0 , 0 , = [0, ] [0,1] ,

2 = 0,1 ,

(0, ) = (, ) = 0,

= 1,

(, 0) = ().

Empezamos representando nuestra malla en la figura 3.1.3.1, en la que nuestras variables se


vern incrementadas a razn de h y k. Valores que no tienen por qu ser iguales.

Figura 3.1.3.1

17

Se usarn las formulas anteriormente obtenidas, concretamente la de diferencias progresivas


para la t, y la de las diferencias centradas para la x.

(, + ) (, )

( + , ) 2(, ) + ( , )
2

Sustituyendo ambas expresiones en la ecuacin diferencial dada, nos queda:


(, + ) (, )
( + , ) 2(, ) + ( , )
2
,

reorganizando trminos, nos queda:

(, + ) (, ) [( + , ) 2(, ) + ( , )] ,

donde se ha definido:

2
.
2

Por tanto la molcula sera la mostrada en la figura 3.1.3.2, cuya expresin matemtica viene
dada por la ecuacin (3.1.3.1).
,+1 +1, + (1 2), + 1, (3.1.3.1).

Figura 3.1.3.2

Se conocen tres condiciones de contorno, por lo que nicamente se dispone de la solucin de


la ecuacin en tres de las cuatro fronteras de la malla.
18

En la siguiente figura se muestran como lneas rojas las fronteras que inicialmente son
conocidas. Se iniciar por tanto la iteracin desde abajo e izquierda hacia la derecha y
subiendo una fila cuando se calcule un nodo de la ltima columna.

Figura 3.1.3.3

El clculo iterativo vendra dado por:


2,2 3,1 + (1 2)2,1 + 1,1
3,2 4,1 + (1 2)3,1 + 2,1

1,2 ,1 + (1 2)1,1 + 2,1


2,3 3,2 + (1 2)2,2 + 1,2
3,3 4,2 + (1 2)3,2 + 2,2

1,3 ,2 + (1 2)1,2 + 2,2

1, ,1 + (1 2)1,1 + 2,1
Teniendo en cuenta que la solucin analtica a la ecuacin planteada es conocida, y es:
(, ) =

2 2

2
,

19

podemos establecer una comparacin entre ambas y visualizar as la calidad de nuestra


aproximacin. Siendo la solucin aproximada la mostrada en la figura 3.1.3.4, y la real la
mostrada en la figura 3.1.3.5:

u(x,t)

0.8
0.6
0.4
0.2
0
1
0.5
y

0.2

0.4

0.6

0.8

Figura 3.1.3.4

u(x,t)

0.8
0.6
0.4
0.2
0
1
0.5
t

0.2

0.4

0.6

0.8

Figura 3.1.3.5

20

La curva del error cometido en cada nodo es la representada en la figura 3.1.3.6.

-4

x 10
8

u(x,t)

6
4
2
0
1
0.5
y

0.2

0.4

0.6

0.8

Figura 3.1.3.6

El error mximo que se comete es de 6 104 que es una cifra bastante admisible teniendo en
cuenta que supone un 0,16% de error con respecto a la solucin real. Vase el previsible
comportamiento de esta curva representada en la figura 3.1.3.5, que crece a medida que nos
vamos alejando de las fronteras conocidas mediante las condiciones de contorno. De hecho el
error mximo se comete en el nodo ms alejado de las tres fronteras.

3.1.4 Criterio de estabilidad


Un criterio de estabilidad de un mtodo matemtico numrico es una herramienta que nos
permite determinar la estabilidad o inestabilidad de dicho mtodo sin necesidad de calcular la
solucin de la EDP en cuestin.
El correcto funcionamiento del Mtodo de las Diferencias Finitas est fuertemente ligado al
tipo de molculas computacionales que se obtengan (algunas molculas tendrn siempre un
comportamiento inestable) y a la relacin entre los pasos de ambas variables, siendo necesaria
una buena eleccin de ambos para lograr estabilidad.

3.1.4.1 Anlisis de estabilidad de Von Neumann


Existen diferentes mtodos para realizar el anlisis de estabilidad de la aproximacin de una
ecuacin diferencial en derivadas parciales usando las diferencias finitas. Siendo el anlisis de
Von Neumann uno de los ms sencillos de aplicar. Este mtodo consiste en suponer una
solucin armnica compleja para nuestra ecuacin (Menndez, A. 1987).
21

(, ) =

(3.1.4.1.1),

donde = () y son determinadas sustituyendo la ecuacin (3.1.4.1.1) en la expresin


matemtica de la molcula de la ecuacin que se desee aproximar.
Discretizando esta solucin, nos queda la siguiente expresin:

= ,

y definiendo como el coeficiente de amplificacin de la forma:


=

+1
.

Si el mdulo del coeficiente de amplificacin es mayor que uno, la solucin ser inestable ya
que este crecer con el tiempo, en cambio si es menor que uno, se estabilizar con el tiempo.

|| < 1

|| > 1

Veamos un ejemplo de aplicacin:


Aplicando este mtodo a la ecuacin del calor anterior dada en el apartado 3.1.3 y
sustituyendo las frmulas de las diferencias finitas en nuestra ecuacin, habamos llegado a la
siguiente expresin:
(, + ) (, ) [( + , ) 2(, ) + ( , )],

que discretizando nos queda:

+1

+1 2 + 1 ,

+1 (+1) 2 + (1) ,

donde se ha sustituido en la ecuacin (3.1.4.1.1) y que operando:


(1 2) = 0 ,
= + + (1 2).

Recordemos que para que sea estable, tiene que ser menor que uno, es decir, que la
representacin grfica de la ltima expresin en el plano complejo este dentro de la
circunferencia unidad.
Para que esto ocurra, vemos que segn la expresin obtenida de A, debe cumplirse que:
0 < 0,5

22

Tomando un valor de = 0,5 se obtiene la figura 3.1.4.1.1. Donde se muestra en rojo la


circunferencia unidad, y en azul la representacin de .

Figura 3.1.4.1.1

En la figura 3.1.4.1.1 se aprecia que un pequeo incremento inestabilizara el mtodo. Adems


no siempre se pueden tomar valores determinados de ya que es en realidad una relacin
entre los pasos de ambas variables, y stos son por definicin nmeros enteros. Es por tanto
conveniente tomar un valor ms rebajado para poder ajustar los pasos ms cmodamente.
Definiendo y como el nmero de subdivisiones que se hacen en las variables y
respectivamente, y teniendo en cuenta que ambas variables estaban definidas entre cero y
uno, podemos determinar las expresiones de y como:
=

Rescatando la definicin de anteriormente descrita como:


2
= 2

Podemos expresarla en funcin de las subdivisiones, nos queda:


2 2 2
= 2 =

23

Tomando un valor de < 0,5 podemos obtener una posible combinacin de subdivisiones
que garanticen estabilidad.
=

2 2
< 0,5

Si tomamos un valor de = 50. Tendramos la siguiente inecuacin:


2 <

50 0,5
= 250
0,1

< 15,8

Tomamos por tanto los valores de = 50 y = 15 para garantizarnos la estabilidad. Si se


hubiera tomado un valor de ms grande correramos el riesgo de encontrarnos con
inestabilidades, quizs no muy apreciables al principio pero notables a medida que vamos
aumentando el valor de dicho nmero de subdivisiones.
Con estos nmeros = 0,45. La curva de estabilidad es = 0,45 + + (1 0,9).

Vanse en la figura 3.1.4.1.2 las curvas de estabilidad y de la correspondiente solucin de la


ecuacin para los anteriores nmeros de subdivisiones.

Figura 3.1.4.1.2

Como se aprecia, la curva (azul) est completamente dentro de la circunferencia unidad


asegurndose as la estabilidad de nuestra solucin.
La solucin para para = 0,45 viene representada en la figura 3.1.4.1.3.

24

u(x,t)

0.8
0.6
0.4
0.2
0
1
0.5
0

0.2

0.6

0.4

0.8

Figura 3.1.4.1.3

Para el mismo valor de , si hubiramos tomado = 20. Obtendramos una solucin


inestable como se aprecia en la figura 3.1.4.1.4.

u(x,t)

-1
1
0.5
t

0.2

0.4

0.6

0.8

Figura 3.1.4.1.4

25

Podemos por tanto terminar este apartado destacando la importancia de una apropiada
eleccin de los pasos para una correcta aproximacin.
Se ha de tener en cuenta que cuanto menor sea el parmetro y mayor el nmero de
subdivisiones, ms precisa ser la solucin pero tambin mayor el coste computacional. Por
consiguiente se debe conocer a priori el error admisible que podemos cometer para calcular a
posteriori los pasos de nuestro mallado.

3.2 Resolucin mediante el mtodo de las diferencias finitas


En el apartado anterior se describi el sistema mecnico que se desea simular. Para ello se
daba la expresin del controlador que gobernara al disco, esta expresin dependa del
potencial del par motor transmitido al disco. En esta seccin se tratar de resolver
numricamente la ecuacin diferencial dada anteriormente mediante el mtodo de las
diferencias finitas. La ecuacin en cuestin es la (2.2.4).
Las condiciones de contorno las deberemos aproximar para simplificar el proceso de clculo,
ya que las condiciones originales (2.2.3) a las que la ecuacin estaba sujeta eran bastante
complicadas.
Por tanto probaremos nuestro mtodo numrico con distintas condiciones de contorno que
aproximen a las originales.

3.2.1 Condiciones de contorno aproximadas


En ocasiones, las condiciones de contorno reales no son del todo conocidas, aunque se sabe la
forma que deben tomar. En este apartado usaremos condiciones de contorno, de tipo
Dirichlet, que tienen la siguiente forma:

10 , 2 = cos(10 ) + (2 10 )2

1 , 20 = cos(1 ) + (20 1 )2

1 , 2 = cos(1 ) + (2 1 )2
1 , 2 = cos(1 ) + (2 1 )2

(3.2.1.1)

26

Donde
=

2
1

Siendo cada una de las fronteras mencionadas, las representadas en la malla de la figura
3.2.1.1.

Figura 3.2.1.1

En la seccin anterior se defina el problema del pndulo, y tenamos que 1 < 0 y 2 0. Por
tanto obtenemos que < 0.
Las fronteras descritas tienen dos trminos, uno sinusoidal y otro parablico. En funcin de las
constantes que tomemos estos trminos se harn ms o menos significativos.

Para las fronteras parablicas debe de cumplirse que:


|cos(1 )|
<1
|(2 1 )2 |

Operando con rdenes de magnitud para obtener una estimacin nos queda:
(2 1 )2 =

(| cos(1 )|)
(||)

(2 1 )2 =

() 1
(||)

() 1
(2 1 ) =

(||)
27

Se ve que es ms conveniente tomar valores de con rdenes de magnitud altos. Puesto que
los parmetros y son datos fijos del problema solo podemos modificar .
Para que las fronteras sean sinusoidales se debe cumplir:
|cos(1 )|
>1
|(2 1 )2 |

Cuanto ms pequeo sea el denominador, mejor ser la aproximacin. Si 2 = 1 el


denominador se anula y se produce la dominancia del trmino sinusoidal.

3.2.1.1 Condiciones de contorno parablicas


Cuando usemos las condiciones de contorno parablicas, hemos de tener en cuenta que
estamos obviando el trmino sinusoidal, no debe sorprendernos entonces la posible aparicin
de errores de exactitud. Estas condiciones de contorno tienen la siguiente forma:

10 , 2 = (2 10 )2

1 , 20 = (20 1 )2

1 , 2 = (2 1 )2

1 , 2 = (2 1 )2

Probaremos con valores de = 0,5.

3.2.1.1.1 Diferencias regresivas


Usaremos las diferencias finitas regresivas, que eran de la forma:
(1 , 2 )1

(1 , 2 )2

(1 , 2 ) (1 , 2 )

(1 , 2 ) (1 , 2 )

Las dos expresiones anteriores las sustituiremos en la ecuacin (2.2.4). Pero antes haremos el
anlisis de estabilidad para asegurarnos que la molcula que se generar a partir de las
frmulas de las diferencias finitas sea estable. Para ello implementamos el anlisis explicado
en la seccin 3.1.4.1.

28

Tomando = y sustituyendo en la ecuacin (2.2.4) y obviando el trmino


independiente ya que ste no influye en la estabilidad de la molcula. Tras hacer las derivadas
pertinentes:

llamando a:

+4

=0,

(1) + 1 = 0 ,
= 1 + = 1 + cos() ().

Representando esta curva en el plano complejo en la figura 3.2.1.1.1.1:

Figura 3.2.1.1.1.1

Llegamos por tanto a la conclusin que esta molcula ser estable si se cumple que
0<<1

Escogemos 60 espacios en cada direccin, de forma que:


=

4 1
60

=
=
= 0,25 < 1
4 16 2 4 60

Conocidos ya los valores entre los que puede moverse la relacin entre los pasos de la malla,
podemos proceder a la aproximacin de la solucin de nuestra ecuacin (2.2.4). Para ello
sustituimos en ella las frmulas de las diferencias regresivas y nos queda:
29

(1 , 2 ) (1 , 2 )
(1 , 2 ) (1 , 2 )
+4
= 10 (1 ),

+1, = (1 ), + ,1 +

10
(1 )
4

Usaremos esta recursin para calcular un nodo a partir de otros dos en cada una de las
iteraciones. Como bien se muestra en la malla de la figura 3.2.1.1.1.2, tendremos que empezar
iterando desde las fronteras uno y cuatro.

Figura 3.2.1.1.1.2

De hecho solo podremos utilizar dos de las cuatro condiciones de contorno que originalmente
tiene el problema, ya que la recursin calculada a partir de la molcula as lo requiere. Esto
podr dar lugar a inexactitudes.
Se calcularn los nodos desde arriba, de izquierda a derecha, y bajando una fila despus de
cada vez que se llegue a la frontera dos.
La solucin que nos queda es la representada en la figura 3.2.1.1.1.3:

30

Figura 3.2.1.1.1.3

y la solucin exacta en la figura 3.2.1.1.1.4:

Figura 3.2.1.1.1.4

Se pueden apreciar visibles diferencias entre ambas curvas. Podemos verlas de forma ms
evidente si representamos la diferencia de las matrices exacta y aproximada en la figura
3.2.1.1.1.5.

31

Figura 3.2.1.1.1.5

Estas inexactitudes pueden estar asociadas al hecho de que solo se han tomado dos de las
cuatro condiciones de contorno, y adems estas condiciones eran aproximadas (solo tenan
trmino parablico).
Con el mtodo de las diferencias finitas directo (calculando un nodo en cada iteracin) no
podremos nunca aspirar a utilizar las cuatro condiciones de contorno. Esto sera nicamente
posible si utilizramos el mtodo indirecto (plantear ecuaciones lineales y resolver al final el
sistema) pero este es un tema que se escapa del estudio en este texto (Lucas Rodrguez, 2012).
En lugar de conformarnos con la utilizacin de dos condiciones, podemos intentar utilizar tres,
y para ello tendremos que modificar nuestra molcula.

3.2.1.1.2 Diferencias centradas en y progresivas en

En vez de emplear las diferencias finitas regresivas como antes, podemos usar las diferencias
centradas segn la variable 1 y las diferencias progresivas segn la variable 2 . Recordemos
que eran de la forma:
(1 , 2 )1

(1 + , 2 ) (1 , 2 )
2

(1 , 2 )2

(1 , 2 + ) (1 , 2 )
2

Que sustituyendo en la ecuacin (2.2.4) nos queda:

(1 + , 2 ) (1 , 2 )
(1 , 2 + ) (1 , 2 )
+4
= 10 (1 ),
2
2

32

con una expresin recursiva:


1, = ,+1 ,1 + , 10 (1 )
En la figura 3.2.1.1.2.1 siguiente podemos ver cmo sera la malla. Es decir, en cada iteracin
calcularamos un nodo a partir de los otros tres de la fila inferior.

Figura 3.2.1.1.2.1

Antes de iniciar la aproximacin debemos realizar el anlisis de estabilidad para determinar si


es posible el uso de esta molcula, y si lo es, que rango de valores puede tomar el parmetro
para garantizar una solucin estable.

Tomando = y sustituyendo en la ecuacin (2.2.4) tras hacer las derivadas


pertinentes y obviando el trmino independiente:

+1

+1 1 + 4
=0,
2

llamando a:

(+1) (1) + +1 = 0

Operando nos queda:

33

= 1 +
Cuya representacin en el plano complejo est representada en la figura 3.2.1.1.2.2.

Figura 3.2.1.1.2.2

Como vemos, la curva representada en color verde queda fuera del crculo unidad, y no hay
valor alguno de que haga que sta quede dentro. Lo cual significa que la molcula en
cuestin es inestable.

3.2.1.1.3 Diferencias centradas


Debido a que la molcula generada mediante diferencias centradas y progresivas en el
apartado 3.2.1.1.2 era inestable, vamos a probar utilizando diferencias centradas en ambas
variables. Lo primero que debemos tener en cuenta es el anlisis de estabilidad.

Tomando = y sustituyendo en la ecuacin (2.2.4) tras hacer las derivadas


pertinentes y obviando el trmino independiente:

+1

+1 1

+4
2
2

=0,

llamando a:

34

(+1) (1) + +1 1 = 0 ,
(+1) (1) +

=0,

2 1 = 0.

Tenemos una ecuacin de segundo grado, por tanto tenemos que determinar cada una de las
dos expresiones y representarlas en el plano complejo. La primera solucin est representada
en la figura 3.2.1.1.3.1 y viene dada por:

+ 2 ( )2 + 4
2

Figura 3.2.1.1.3.1

En cuanto a la segunda solucin, es parecida a la anterior, pero con el trmino de la raz


cuadrada restando. Por ellos es lgico que la curva representada en la figura 3.2.1.1.3.2 sea
simtrica a la de la figura 3.2.1.1.3.1 con respecto al eje imaginario.

2 ( )2 + 4
2

35

Figura 3.2.1.1.3.2

Para que ambas curvas siempre queden encerradas en la circunferencia unidad, el parmetro
tiene que cumplir que 0 < < 1. Se propone que = 0,25

4
=
=
= 0,25
4 16 4 2
1 = 2

Sabiendo que se tendr estabilidad, podemos continuar con nuestro mtodo de aproximacin.
Las expresiones a utilizar son:
(1 , 2 )1

(1 , 2 )2

(1 + , 2 ) (1 , 2 )
2

(1 , 2 + ) (1 , 2 )
2

Sustituyendo en la ecuacin (2.2.4) nos queda:

(1 + , 2 ) (1 , 2 )
(1 , 2 + ) (1 , 2 )
+4
= 10 (1 )
2
2

De donde podemos generar nuestra expresin recursiva:

1, = +1, + ,+1 ,1 10 (1 )
Como se observa en la figura 3.2.1.1.3.3, tendramos dos formas distintas de proceder. En la
primera de ellas empezaramos la iteracin desde la frontera de abajo, de izquierda a derecha
y subiendo una fila cada vez que se llegara a la frontera derecha. La segunda opcin era hacer
el camino inverso, es decir, empezar desde abajo, de derecha a izquierda y subiendo una fila
cada vez que se llegara a la frontera izquierda.
36

Figura 3.2.1.1.3.3

Esta molcula es un tanto especial, si observamos bien, no se utiliza nodo alguno en la mitad
de la molcula, en cambio hay un nodo desplazado una unidad hacia abajo, lo cual nos obliga a
imponer una cuarta condicin de contorno para poder implementar nuestra iteracin.
La nueva condicin de contorno que debemos imponer es de tipo Neumann. Recordemos que
este tipo de condiciones son de la forma:

(1 , 2 )
= (1 )
2

Para utilizar este tipo de condiciones de contorno, es necesaria la adicin de una nueva
fila en nuestra malla tal y como se muestra en la figura 3.2.1.1.3.4

Figura 3.2.1.1.3.4

La idea es aplicar una frmula de las diferencias finitas entre los dos nodos marcados.
En nuestro caso podemos usar las diferencias progresivas o las regresivas, pero no las
37

centradas ya que el valor del nodo perteneciente a la penltima fila antes de realizar la
nueva adicin era desconocido.
En este caso tomaremos (1 ) = 1. Con lo cual, aplicando por ejemplo la frmula de
las diferencias finitas progresivas en esa frontera nueva tenemos que:

Y por lo tanto:

1 , 2 + 1 , 2
(1 , 2 )
= (1 ) =
=1
2

(1 , 2 + ) = (1 , 2 ) +

Es decir que las condiciones de contorno en las dos ltimas filas de la malla (la original y la
nueva) van a ser casi iguales.
Ejecutando el mtodo y haciendo que 1 = 2 = 60 (podramos haber tomado ms
valores, para conseguir una mayor precisin, pero tambin esto hara aumentar el coste
computacional). La solucin aproximada est representada en la figura 3.2.1.1.3.5

Figura 3.2.1.1.3.5

La grfica del error cometido en la aproximacin mediante las diferencias centradas es la


representada en la figura 3.2.1.1.3.6. Ntese que el error es ahora considerablemente menor
al que estbamos cometiendo al usar las diferencias regresivas (vase la figura 3.2.1.1.1.5).

38

Figura 3.2.1.1.3.6

3.2.2 Condiciones de contorno exactas


Si aplicamos condiciones de contorno exactas (de la forma de la solucin analtica al
problema), se espera obtener una aproximacin de la ecuacin diferencial ms precisa. stas
son de la forma de las condiciones de contorno (3.2.1.1).

3.2.2.1 Diferencias regresivas


La estabilidad del problema no depende de las condiciones de contorno que vayamos a
utilizar, por tanto, nos limitamos a repetir el apartado anterior pero cambiando las condiciones
de contorno. En este caso vamos a utilizar las siguientes:
(2, 2 ) = 10 cos(2) + 0,5 (2 4(2))2
(1 , 2) = 10 cos(1 ) + 0,5(2 41 )2

Con ellos nos queda la siguiente aproximacin mostrada en la figura 3.2.2.1.1.

39

Figura 3.2.2.1.1

Cuyo error con respecto a la solucin exacta puede verse en la figura 3.2.2.1.2.

Figura 3.2.2.1.2

3.2.2.2. Diferencias centradas


Volvemos a repetir el problema anteriormente descrito pero modificando las condiciones de
contorno, esta vez sern de la forma:
40

(2, 2 ) = 10 cos(2) + 0,5 (2 4(2))2


(2, 2 ) = 10 cos(2) + 0,5(2 4(2))2

(1 , 2) = 10 cos(1 ) + 0,5(2 41 )2

Adems de la de Neumann:

(1 , 2 )
=0
2

Con ello, la solucin obtenida y su error frente a la solucin exacta pueden verse en las
figura 3.2.2.2.1 y 3.2.2.2.2 respectivamente.

Figura 3.2.2.2.1

Figura 3.2.2.2.2

41

Nota: El anlisis de todos los resultados calculados en esta seccin se pospone a la seccin
cinco.

42

Captulo 4
El mtodo de los elementos finitos (MEF)
mediante Freefem
4.1 Fundamentos del mtodo de los elementos finitos
En este proyecto se van a realizar las aproximaciones mediante los elementos finitos usando el
programa Freefem.
El freefem es un programa desarrollado por la universidad francesa Marie Curie que se usa
para resolver ecuaciones diferenciales en derivadas parciales utilizando el mtodo de los
elementos finitos. El programa tiene su propia interfaz y lenguaje de programacin. Es posible
abordar dominios tanto en 2D como en 3D (aunque en este texto nos limitaremos a dominios
2D).

4.1.1 Resea histrica


El mtodo de los elementos finitos comenz a desarrollarse en la dcada de 1940 de la mano
de Hrennikoff y Mchenry, que en 1941 y 1943 respectivamente, publicaron un artculo en que
utilizaban una red lineal de elementos (barras y vigas) para la solucin de las tensiones en
solidos continuos. Aunque estos artculos no tuvieron un gran reconocimiento durante mucho
tiempo.
Tambin en 1943, Courant propuso la utilizacin de funciones polinmicas para la formulacin
de problemas elsticos en subdominios triangulares, que no era otra cosa que una aplicacin
especial del mtodo antes propuesto por Ritz. Lo utiliz clculo de variables en un sistema de
vibracin.
El inicio de la dcada de 1950 trae consigo la aparicin de las primeras mquinas de clculo.
Hasta esta fecha el clculo de estructuras se realizaba con mtodos iterativos, realizndose
stos de forma manual y por tanto resultando lentos. El clculo de las estructuras de un
edificio poda alargarse varios das o incluso semanas, por lo que el coste en tiempo era
enorme. Con la llegada de las computadoras, hubo un resurgimiento del mtodo de los
desplazamientos ya conocido muchos aos antes pero inabordable hasta la fecha por la
enorme cantidad de ecuaciones que generaba.
Entre 1960 y 1970 se da una expansin de las aplicaciones prcticas del mtodo. Se buscaba la
rapidez en el clculo lo que hizo aumentar la memoria de las computadoras. Tambin se hizo
importante la implementacin de nuevos algoritmos que aplicaran el mtodo de forma ms
ptima. Ante la expansin del mtodo de los elementos finitos a otras reas de la ingeniera
como la transferencia de calor, mecnica de fluidos o la industrial aeroespacial, surgieron

43

dificultades con las nuevas geometras a estudiar, mucho ms complejas que las de las
estructuras.
En la dcada de 1980, con el surgimiento de los ordenadores personales, se produce un amplio
desarrollo de distintos software que aplican el mtodo de los elementos finitos,
especializndose muchos en especficos campos de la ingeniera.
Un campo relativamente nuevo en el que se aplica el mtodo de los elementos finitos es la
bioingeniera, en la que an hay grandes retos que superar como la modelacin de materiales
no lineales, geometras no lineales, etc.
Desde hace ya ms de cincuenta aos se estn realizando grandes avances en el estudio de los
elementos finitos, y sin lugar a dudas, matemticos, ingenieros y otros cientficos seguirn
implementando mejoras en la aplicacin de este mtodo en diferentes reas.

4.1.2 Conceptos generales


La idea principal del mtodo de los elementos finitos es dividir el dominio en el cual est
definido el problema en un nmero determinado de subdominios o elementos. De ah el
nombre de elementos finitos. Estos elementos estn interconectados entre s mediante unos
puntos llamados nodos. El objetivo es pasar de un sistema continuo con infinitos grados de
libertad gobernado por una o varias ecuaciones diferenciales a otro con un numero finito de
grados de libertad que se rige por un sistema de ecuaciones.
En el sistema que se vaya a estudiar (vase la figura 4.1.2.1), se puede distinguir entre:

Dominio, que es el espacio geomtrico donde se va a estudiar el problema.


Condiciones de contorno, que son variables conocidas en determinados contornos del
dominio.
Incgnitas, que son las variables desconocidas del problema que se desean conocer.

Figura 4.1.2.1

El mtodo de los elementos finitos es un campo de estudio enorme y existen multitud de


variaciones y posibilidades. En general se pueden emplear dos tipos de mtodos, los basados
44

en principios variacionales y los que se basan en los residuos ponderados, en este texto nos
centraremos en los primeros.
En general, las partes principales de un algoritmo del mtodo de los elementos finitos basado
en los principios variacionales son cuatro y estn bien diferenciadas:
1. Reformulacin del problema en forma variacional.
Imaginemos una ecuacin diferencial parcial de dos incgnitas que se desea resolver.
La idea es aproximar las incgnitas y que hacen estacionario un funcional
mediante una suma ponderada de funciones.

= (, )
=1

= (, )
=+1

(4.1.2.1)

Donde y son aproximaciones de y respectivamente, unas determinadas


constantes llamadas coordenadas generalizadas y (, ) unas funciones arbitrarias
llamadas funciones de prueba, que aunque su eleccin puede ser arbitraria, deben
satisfacer las condiciones de contorno y compatibilidad del problema.
Definiendo como la siguiente ecuacin integro-diferencial:

= (, , , , , , , ) (4.1.2.2)

Derivando las expresiones 4.1.2.1 de las aproximaciones de y :

(, )

=1

(, )

=+1

(, )
=

=1

(, )
=

=+1

Sustituyendo las expresiones de aproximacin y sus derivadas en la ecuacin integrodiferencial (4.1.2.2), se obtendr el funcional que ser funcin de las coordenadas
generalizadas por ahora desconocidas.
= ( )

= 1, ,

Ahora se deben encontrar los ms adecuados, para ello aplicamos la condicin de


estacionaridad.

=
=1

= 0

45

Lo que significa que:

= 0 = 1, ,

Si el funcional fuera una funcin cuadrtica, nos quedara:

= (1 1 + 2 2 + + ) = 0
= 1,2, , ,

Donde son funciones que acompaan a cada una de las coordenadas generalizadas
.
Agrupando en trminos matriciales:
11

21

12
22

1
1 1
2 2

= 2

Resolviendo este sistema de ecuaciones obtendremos las coordenadas generalizadas,


y sustituyndolas en las ecuaciones (4.1.2.2) tendramos las aproximaciones de
nuestra ecuacin.
2. Dividir el dominio del problema en un nmero finito de subdominios tal y como se
propone en (Pars, 1996), que son los llamados elementos finitos.
El concepto de discretizacin, es quizs, desde un punto de vista ingenieril, la novedad
ms importante que presenta el mtodo de los elementos finitos, esta discretizacin
supondr la obtencin de una solucin discreta aproximada. Un ejemplo de la
utilizacin del concepto de discretizacin, podra ser el clculo del rea de un crculo. Si
se tiene un crculo cuya rea se desea calcular. (Vase la figura 4.1.2.2).

Figura 4.1.2.2

Podemos discretizar el crculo como en la figura 4.1.2.2, es decir dividir el dominio en


elementos. En este caso lo hemos hecho con seis elementos, tras lo cual, podemos
proseguir definiendo la ecuacin de cada elemento. De forma que el conjunto de
todos los clculos de todos los elementos es equivalente al clculo final que se
46

pretende realizar. En nuestro caso cada uno de los elementos definidos en el crculo
ser como el representado en la figura 4.1.2.3.

Figura 4.1.2.3

El rea del elemento finito representado en la figura 4.1.2.3 vendr dado por:
=,

adems el ngulo superior del tringulo representado es:


=

2
,

siendo el nmero de tringulos adscritos. Por tanto la superficie de cada elemento


es:

2
2
sin
= 2 sin cos =
2

Una vez calculadas las ecuaciones en cada elemento (en este caso la expresin de la
superficie del mismo), nos falta ensamblar el conjunto y resolverlo. En nuestro
problema el valor final buscado se obtiene sumando todas las reas de los tringulos.
Se obtiene:

= =
=1

2
2
sin
2

Si hacemos que el nmero de tringulos tienda a infinito, se tiene:


2
2
sin
cos
lim = lim sin
= lim 2
= lim 2
= 2

0
0
2

1
En este caso, la ecuacin que tenamos en cada elemento era exacta, y por tanto el
error era debido nicamente al proceso de discretizacin. No siempre vamos a estar
en esta situacin. Habr veces en las que es conveniente definir una ecuacin en cada
47

elemento que represente de forma aproximada el comportamiento del mismo. En


estos casos tendremos dos errores, el de discretizacin y el de la definicin de la
ecuacin del elemento. Por ltimo mencionar que el tipo de elementos que se usa, va
en funcin del tipo de dominio que estamos discretizando como se comenta en
(Celigeta Lizarza, 2000). Por ejemplo para anlisis de una sola dimensin (por ejemplo
para el estudio de barras), utilizaremos elementos como los que se muestran en la
figura 4.1.2.4.

Figura 4.1.2.4

Para reas y superficies tendrn dos dimensiones, y los elementos a usar sern como
los mostrados en la figura 4.1.2.5.

Figura 4.1.2.5

Y en el caso de trabajar con volmenes o cuerpos en tres dimensiones, los elementos


sern de la siguiente forma mostrada en la figura 4.1.2.6.

Figura 4.1.2.6

3. Ensamblar las ecuaciones de cada elemento.


Todos los elementos que tenemos en nuestra malla estn interconectados con otros
elementos a travs de los nodos, son estos nodos los que se tendrn en cuenta para el
ensamblaje de las ecuaciones en una matriz global. Esta matriz recibe el nombre de
matriz global del sistema.
48

4. Resolver el sistema de ecuaciones para obtener la aproximacin buscada.

4.1.2.1 Manejo del programa Freefem


Como se ha comentado con anterioridad, en este proyecto se va a implementar el Mtodo de
los Elementos Finitos usando para ello la aplicacin informtica Freefem. El Freefem tiene su
propio lenguaje de programacin, adems ofrece un entorno integrado de trabajo como se
representa en la figura 4.1.2.1.1.

Figura 4.1.2.1.1

Como puede apreciarse en la figura 4.1.2.1.1, el entorno de trabajo de Freefem se divide en


tres partes diferenciadas. Que son:

Editor de cdigo: En esta ventana es donde se escribe el cdigo del programa que
se desea realizar. La definicin de la ecuacin diferencial en cuestin, las
condiciones de contorno o el tipo de mallado deben se especifican aqu.

Ventana de grficos: En esta ventana se mostrarn las grficas que se hayan


ordenado en el editor de cdigos. Si son varias grficas, se ordenarn por pestaas.

Ventana de procesos: En esta ventana se pueden observar los posibles errores que
hayan surgido durante la compilacin del programa para su posterior correccin.
Una vez el cdigo sea correcto, se mostraran aqu las variables que se deseen
mostrar en pantalla despus de la ejecucin.
49

Una vez tengamos el cdigo correcto, procedemos a la ejecucin del programa presionando
sobre el botn ejecutar situado en el cuadro verde en la parte superior izquierda de la figura
4.1.2.1.1. Si insertamos uno de los cdigos explicados en los anexos al final de este texto, el
entorno de trabajo quedara como el mostrado en la figura 4.1.2.1.2.

Figura 4.1.2.1.2

Cabe destacar que si se desea trabajar con la solucin proporcionada por Freefem en otro
software como por ejemplo el Matlab, lo que se puede hacer es exportar la matriz solucin en
un archivo de texto para ser posteriormente leda con Matlab. El Freefem es una buena
herramienta para solucionar ecuaciones diferenciales en derivadas parciales, pero no para
trabajar con las soluciones que proporciona.

4.1.2.2 Ejemplo
Como ejemplo a la teora anteriormente descrita podemos proponer la siguiente ecuacin
diferencial.
(, ) + (, ) + (, ) + (, ) = (, )
Con las condiciones de contorno:

(0, ) =
(2, ) =
(, 0) = cos()

(, 0,5) = cos() 2
(, ) = (cos() sin())
50

Tenemos inicialmente el problema expresado en forma diferencial, es decir, de la siguiente


forma:
2 2
+
+
+
= (, )
2 2
En Freefem los problemas deben escribirse en forma variacional, es decir, de la forma
siguiente:

2
(, ) + 2 (, ) +
(, )
2 (, ) +


= (, ) (, )

(4.1.2.2.1)

Tenemos que buscar una funcin que aproxime usando las expresiones a continuacin.

= (, )
=1

(, )

=1

2 (, )
2
=

2
2
=1

(, )
=

=1

2
2 (, )
=

2
2
=1

Sustituyendo las anteriores frmulas de aproximacin en la ecuacin (4.1.2.2.1) escrita ya en


forma variacional, nos queda:

=1

=1

2 (, )
(, )
2 (, )
+

(,
)
+

2
2

=1

+
=1

(, )
(, ) (, ) (, )

(4.1.2.2.2)

Como veremos ms adelante, podemos tomar (, ) = + + (, ) .


Donde , son constantes y es el elemento finito . Si sustituimos (, ) en la
ecuacin (4.1.2.2.2) nos queda:

= + (, ) ( + + )
Se busca que:

=1

51


= 0 = 1, , ,

entonces tenemos:

= (1 1 + 2 2 + + ) = 0

= 1,2, , ,

+ (, ) + + = 0 = 1,2, , .
=1

Agrupando expresiones nos queda el trmino genrico


=

+ +

podemos expresar todos los trminos como un sistema de ecuaciones.


11
21

12
22

1
1 1
2 2
2
=

Que es un sistema de ecuaciones con incognitas. Una ecuacin por cada nodo que
tenemos en la malla.
La discretizacin del dominio se ha realizado mediante tringulos en un mallado regular (Vase
la figura 4.1.2.2.1), esto podra no haber sido as, pero la necesidad de exportar la solucin a
Matlab (en nuestro proyecto tenemos que exportar la solucin a Matlab para la realizacin de
la simulacin en Simulink) hace ms cmodo trabajar con este tipo de mallados.

Figura 4.1.2.2.1

52

Ntese en la figura 4.1.2.2.1 que el orden de las fronteras en sentido inverso a las agujas del
reloj, este orden se define por defecto en Freefem.
Vemos adems que a diferencia de en el mtodo de las diferencias finitas implementado en
temas anteriores, aqu podemos utilizar cuatro condiciones de contorno, lo cual har la
solucin encontrada ms precisa.
Tomando uno de los elementos aleatoriamente como el representado en la figura 4.1.2.2.2.

Figura 4.1.2.2.2

Se tendr en cada uno de los vrtices del elemento anterior, la ecuacin (4.1.2.2.2) adaptada
con los correspondientes subndices.
La funcin (, ) arbitraria la podemos elegir de tres formas distintas, tal y como se comenta
en (Hecht, 2012):

Elemento 0
Para cada tringulo (o tetraedro en caso de que tuviramos elementos finitos en 3D)
, nuestra funcin (, ) viene dada por:
(, ) = 1
(, ) = 0

Elemento 1
Para cada vrtice , la funcin (, ) viene dada por:

(, ) = + + (, )
= 1, = 0

Elemento 2
Para cada vrtice , la funcin (, ) viene dada por:

(, ) = + + + 2 + + 2 (, )
= 1, = 0

53

En nuestro caso hemos elegido 1 y el resultado es el mostrado en la figura 4.1.2.2.3.

Figura 4.1.2.2.3

Siendo la solucin exacta la mostrada en la figura 4.1.2.2.4.

Figura 4.1.2.2.4

54

El error de la aproximacin est representado en la figura 4.1.2.2.5.

Figura 4.1.2.2.5

4.1.3 Comparacin entre el MEF y el MDF


El mtodo de los elementos finitos, aunque ms complicado y abstracto que el de las
diferencias finitas, presenta varias ventajas que hacen su estudio interesante.
El mtodo de las diferencias finitas es aplicable sobre todo a problemas cuyos dominios
presentan formas simples, en cambio con los elementos finitos se pueden estudiar geometras
mucho ms complejas. Adems los problemas que presenten propiedades de materiales no
lineales o variables pueden ser abordados. Tambin podemos mencionar que la existencia de
una estructura clara en este mtodo, permite crear cdigos ms generales que pueden usarse
en una gama ms amplia de problemas.
Como desventaja podramos citar el mayor coste computacional que supone el mtodo de los
elementos finitos. Esto es as por la necesidad de resolver un sistema de ecuaciones en la
ltima parte del proceso, en cambio con las diferencias finitas podemos evitar tener que
invertir la matriz del sistema si utilizamos el mtodo directo, es decir, calculando un nodo en
cada iteracin.

55

4.2 Resolucin mediante el mtodo de los elementos finitos


En el apartado 4.1 se explic la teora del mtodo de los elementos finitos que usaremos para
aproximar la ecuacin (2.2.4) que estaba sujeta a las condiciones de contorno (2.2.3).
Al igual que hicimos cuando aplicamos el mtodo de las diferencias finitas, aproximaremos las
condiciones de contorno para una mayor simplicidad en el proceso.

4.2.1 Condiciones de contorno parablicas


Las condiciones de contorno que vamos a aplicar son las (3.2.1.1.1). Pero la numeracin de las
fronteras es distinta en esta seccin debido a que en el programa Freefem, los contornos se
ordenan as:
10 , 2 = (2 10 )2

1 , 20 = (20 1 )2

1 , 2 = (2 1 )2

1 , 2 = (2 1 )2

Para
=

= 0,5
2

2
=4
1

Si es la solucin a la ecuacin (2.2.4), podemos aproximar esta solucin como:

= (1 , 2 )
=1

Derivando esta expresin respecto a sus dos variables independientes se obtiene:

(1 , 2 )

=
1
1
=1

(1 , 2 )
=
2
2
=1

Tenemos ahora que obtener una expresin variacional de nuestra ecuacin diferencial:

(1 , 2 ) + 4
(1 , 2 ) = (1 , 2 ) (1 , 2 ),
2
1

56

sustituyendo las anteriores expresiones de aproximacin ene esta ecuacin nos queda:

=1

=1

(1 , 2 )
(1 , 2 )
(1 , 2 ) + 4
(1 , 2 ) = (1 , 2 ) (1 , 2 )

1
2

Planteadas ya las ecuaciones que tendremos en cada uno de nuestros nodos, procedemos
ahora a discretizar nuestro dominio. Vase en la figura 4.2.1.1 que debido al tipo de ecuacin,
solamente podemos aplicar dos condiciones de contorno.

Figura 4.2.1.1

Se ha definido una malla cuadrada en el Freefem en la que ambas variables varan de a .


El nmero de subdivisiones en ambas direcciones es de cien, por lo tanto tenemos un total de
10.201 nodos y 20.000 tringulos.
Esta cifra la podremos aumentar o disminuir en funcin de la calidad de la aproximacin que
busquemos.
En el Freefem se define por defecto el dominio [0,1][0,1]. Por tanto debemos modificar el
dominio original para convertirlo en [, ][, ].
= [0,1] = [, ]

Utilizaremos la siguiente ecuacin para el cambio de variable:


+ = ,

= 0 0 + = ,
por tanto:

=1 1+ =,

57

= 2

= ,

y nuestra ecuacin de cambio de variables queda:

= 2 = (2 1).

Este cambio de coordenadas tenemos que definirlo en el cdigo del programa. Al final de este
texto se muestran los cdigos de las funciones programadas para este proyecto.
Tambin cabe mencionar que para esta aproximacin han sido usadas las funciones de prueba
del tipo 1 , es decir:
(, ) = + +

(, )

= 1, = 0

Siendo el tringulo y el vrtice .

Con todo ello nos queda la siguiente solucin representada en la figura 4.2.1.2.

Figura 4.2.1.2

Como se puede apreciar a simple vista, sta no es una buena solucin, estas inexactitudes
vienen originadas por la aplicacin nicamente de dos condiciones de contorno, que adems
son aproximaciones de las originales.

58

4.2.1.1 Adicin de trminos de orden dos


En el caso anterior hemos tenido problemas en la aproximacin debido al orden de la ecuacin
que intentamos aproximar. En este caso aadiremos trminos de orden dos multiplicados por
constantes suficientemente pequeas y elegidas convenientemente para as poder aplicar
ms condiciones de contorno. De forma que nuestra ecuacin a resolver queda de la siguiente
forma:

2
2

+4

= 10 (1 )
1
2
1 2
2 2
En este caso podemos aplicar las cuatro condiciones de contorno en las fronteras de la malla
de la figura 4.2.1.1.1, por lo que es de esperar que esta solucin sea satisfactoria.

Figura 4.2.1.1.1

Expresando la ecuacin de forma variacional nos queda:


2
2
+4

(1 , 2 ) = (1 , 2 ) (1 , 2 )
1
2
1 2
2 2

(4.2.1.1.1)

(1 , 2 )
=1

(1 , 2 ) 1

Desarrollando la ecuacin (4.2.1.1.1) llegamos a:


(1 , 2 )
(1 , 2 )

(1 , 2 ) + 4
(1 , 2 )
1
2
2
1
1
2
= (1 , 2 ) (1 , 2 )

59

Reordenando trminos:

(1 , 2 )
(1 , 2 )
(1 , 2 )

1
1

=1

(1 , 2 )
(1 , 2 )
+
+ 4(1 , 2 )
= (1 , 2 ) (1 , 2 )
2
2

=1

Una vez planteado el sistema de ecuaciones, podemos proceder a mostrar los resultados que
ofrecen la resolucin del mismo. La solucin aproximada para un valor = 103 es la
mostrada en la figura 4.2.1.1.2.

Figura 4.2.1.1.2

Siendo el error cometido la curva diferencia entre la funcin exacta y la aproximada


representada en la figura 4.2.1.1.3.

Figura 4.2.1.1.3

60

Como vemos es un error considerablemente alto, aunque tenemos que tener en cuenta que
las condiciones de contorno aportadas eran nicamente parablicas.

4.2.2 Condiciones de contorno exactas


Las condiciones que usaremos sern las condiciones (3.2.1.1). Aunque en este caso la
numeracin queda como sigue ya que el Freefem las ordena de este modo por defecto.
10 , 2 = cos(10 ) + (2 10 )2

1 , 20 = cos(1 ) + (20 1 )2

1 , 2 = cos(1 ) + (2 1 )2
1 , 2 = cos(1 ) + (2 1 )2
=

= 10
1

= 0,5
2

2
3

2
=4
1

En este caso se ha agrandado la malla a unas dimensiones [2, 2][2, 2].


Utilizaremos la siguiente ecuacin para el cambio de variable:
+ =

= 0 0 + = 2 ,
por tanto:

= 1 1 + = 2 ,
= 4

= 2 ,

y nuestra ecuacin de cambio de variables queda:

= 4 2 = 2(2 1).

Este cambio de coordenadas hay que hacerlo en el cdigo del programa, se mostrar al final
del texto un anexo con las distintas funciones implementadas.
En el apartado 4.2.1 solamente fue satisfactorio uno de los casos, el de adicin de trminos de
orden dos. Por tanto en el presente apartado solo implementaremos la aproximacin de la
ecuacin (2.2.4) con condiciones de contorno exactas.

61

La matemtica del problema es exactamente la misma, solo cambian las condiciones de


contorno descritas en el cdigo.
La solucin aproximada para = 103 nos queda tal y como se ve en la figura 4.2.2.1.

Figura 4.2.2.1

Siendo la curva de error la representada en la figura 4.2.2.2.

Figura 4.2.2.2

62

Como se aprecia, estos resultados son mucho mejores. Podran incluso mejorarse si
utilizramos funciones de prueba 2 en vez de 1 , o bien disminuyramos el coeficiente o
bien utilizramos un mallado ms fino. Aunque tambin hay que tener en cuenta que se han
utilizado condiciones de contorno exactas (son como la solucin real), que en la prctica rara
vez podr disponerse de ellas.
En efecto si en vez de hacer 100 subdivisiones en la direccin de cada variable, hacemos 150,
tendremos un total de 22.801 nodos y 45.000 tringulos. Con esta medida ganaremos
precisin, aunque tambin coste computacional.
El error para el caso en que = 150 sera de 0,1583 y su representacin se ve en la figura
4.2.2.3.

Figura 4.2.2.3

Nota: Tanto los resultados de esta seccin como los de la seccin tres, se analizan y comparan
en la seccin cinco.

63

Captulo 5
Simulacin y comparacin de resultados
Recordemos que el sistema mecnico que queremos simular es el representado en la figura
2.2.1. Y que el sistema de ecuaciones obtenido era el (2.2.1).

5.1 Simulacin en Simulink


En el caso que vayamos a calcular el par motor (1 , 2 ) aproximando nuestra ecuacin
numricamente. Debemos proceder utilizando un algoritmo de la siguiente forma:
1. Resolver la ecuacin diferencial parcial en una malla determinada.
2. Configurar las condiciones iniciales que tiene el sistema mecnico.
3. Definir un tiempo de simulacin y discretizarlo, en nuestro caso hemos hecho que el
tiempo se vaya incrementando a razn de 0,1 segundos.
4. Calcular los potenciales de la solucin a la ecuacin diferencial utilizando para ello
frmulas de diferencias finitas.
5. Interpolar en las matrices de los potenciales anteriores para obtener el punto exacto
en cuestin.
6. Se calcula una aproximacin de .
7. Siendo () = [1 (), 2 (), 1 (), 2 ()] en cada instante de tiempo. Calcular
( + 1) mediante el mtodo de Runge-Kutta.

El diagrama del cual nos valemos en Simulink para implementar dicho algoritmo es el 5.1.1.

Diagrama 5.1.1

64

En donde el bloque MATLAB function llama a un grupo de funciones que se encargan de


calcular las matrices de potencial a partir de la solucin a la ecuacin diferencial, interpolar el
punto exacto deseado y usar ste para calcular mediante la ley de control descrita.
El bloque azul es el que se encarga de describir el sistema mecnico estudiado. Si miramos
dentro de este bloque, nos aparece el siguiente esquema representado en el diagrama 5.1.2.

Diagrama 5.1.2

Donde los bloques Fcn2 y Fcn1 representan a las ecuaciones diferenciales del sistema
(2.2.1) que gobiernan el sistema mecnico.
Ntese que despus de cada integrador en ambos bloques se obtienen las variables () y
() respectivamente.

5.2 Resultados de simulacin


En esta seccin vamos a utilizar los resultados que se obtuvieron en los captulos tres y cuatro,
para simular el sistema mecnico y comparar los resultados. Empezaremos recopilando los
resultados obtenidos de la aproximacin de nuestra ecuacin diferencial sujeta a condiciones
de contorno exactas mediante el mtodo de las diferencias finitas utilizando diferencias
regresivas, diferencias centradas y por ltimo mediante el mtodo de los elementos finitos.
La tabla 5.2.1 muestra diferentes datos de clculo. El parmetro representa el nmero de
subdivisiones realizadas en cada direccin, es el valor del error cometido en el nodo de
la malla donde el error es mximo, es el es el tiempo requerido para obtener la
aproximacin, es el tiempo necesario para realizar la simulacin con cada matriz
correspondiente.

65

Ntese que no se han aadido valores en la columna del tiempo de simulacin para las
diferencias regresivas, esto es debido a que para estos casos las seales de salida se iban fuera
del dominio durante la simulacin.

Diferencias Regresivas
Diferencias centradas
Elementos finitos
n
emax
t (s)
t sim (s) n
emax
t (s)
t sim (s) n
emax
t (s)
t sim (s)
50 39,5043 0,013
50 9,6598 0,0154
5
50 0,5831
0,64
5
100 39,5899 0,0285
100 4,9148 0,0372
15
75 0,3019 1,544
11
150 39,6877 0,0604
150 3,3172 0,061
33
125 0,0789 3,681
24
200
250
300
350
400
450
500

39,7507
39,7933
39,8236
39,8463
39,8638
39,8778
39,8892

0,1206
0,2204
0,2829
0,4233
0,6029
0,8248
0,9126

200
250
300
350
400
450
500

2,5034
2,0143
1,6861
1,4512
1,2737
1,1349
1,0234

0,1557
0,2377
0,3717
0,632
0,9699
1,1919
1,4996

64
118
440
900
1400
2050
3100

150
175
200
225
250
275
300

0,0317
0,0249
0,0179
0,0121
0,0066
0,0017
0,0001

5,491
7,582
9,266
12,168
14,929
18,318
22,639

33
49
64
92
118
274
440

Tabla 5.2.1

Los tiempos medidos, son algo relativos, ya que han sido medidos para un ordenador personal,
concretamente un ordenador dotado de un microprocesador de 2 GHz y una memoria RAM de
4 Gb. Si se buscara una precisin en los clculos muy alta, se requeriran matrices ms grandes
y por tanto la mejor opcin podra ser realizar las simulaciones en un equipo ms potente.

5.2.1 Diferencias regresivas


Como vemos en los datos de la tabla 5.2.1, el error cometido es prcticamente el mismo en
todos los casos, as que lo ms lgico sera tomar = 50. De todas maneras este mtodo nos
proporciona siempre un error bastante alto, lo que origina fallos a la hora de la simulacin.
Esto es debido a que cuando realizamos el clculo del gradiente (se adjunta funcin en el
anexo de funciones) de la solucin aproximada, este tiene una forma muy distinta al gradiente
de la solucin exacta, lo cual causa que en la simulacin las variables 1 y 2 alcancen valores
situados fuera del dominio que estudiamos.

Un ejemplo de este fenmeno para unas condiciones iniciales [1 , 1 , 2 , 2 ] = , 0, , 0 se


adjunta en la figura 5.2.1.1 a continuacin.

66

Figura 5.2.1.1

Donde 1 y 2 aparecen en azul y verde respectivamente. Como se aprecia en la figura 5.2.1.1,


en la simulacin usando la solucin aproximada, el proceso acaba en el instante = 1,65 ya
que el valor de alguna de las variables independientes alcanza un valor situado fuera del
dominio en ese momento, lo que hace que la funcin destinada a interpolar valores lo detecte
y detenga la simulacin.

5.2.2 Diferencias centradas


A diferencia del caso de las diferencias regresivas, en las centradas si existe una gran diferencia
en los errores cometidos en la aproximacin a medida que se va aumentando el nmero de
subdivisiones. Y aunque las variaciones del tiempo de aproximacin no son muy significativas,
si lo son las del tiempo de simulacin. Ntese que este tiempo va desde unos pocos segundos
a varios minutos segn seleccionemos un tamao u otro de las subdivisiones. La figura 5.2.2.1
muestra la simulacin en el Simulink utilizando = 150 y unas condiciones iniciales

[1 , 1 , 2 , 2 ] = , 0, , 0.

Figura 5.2.2.1

67

Aparentemente se trata de una solucin bastante aceptable con unos tiempos tambin
aceptables, aunque si se desea satisfacer un error mximo determinado, podemos interpolar
en la figura 5.2.2.2 el error mximo en cuestin usando la lnea de tendencia introducida.

Figura 5.2.2.2

Ponemos el ejemplo de que se busque una aproximacin de la ecuacin (2.2.4) cuyo error
mximo no exceda de siete. Es decir:
= 7

= 512,62 ()1,026 = 512,62 (7)1,026 = 69,71

Tomaremos = 70 para asegurarnos el cumplimiento de la condicin. La distribucin de error


obtenida se muestra en la figura 5.2.2.3.

Figura 5.2.2.3

68

Se aprecia en la figura 5.2.2.3 que el error mximo absoluto no excede de siete. El error
mximo calculado en Matlab es de 6,94.

Si simulamos el sistema utilizando = 70 y con unas condiciones iniciales [1 , 1 , 2 , 2 ] =

3 , 0, 8 , 0, se obtienen los resultados mostrados en la figura 5.2.2.4.

Figura 5.2.2.4

Se distinguen anomalas en el comportamiento de las curvas aproximadas en la zona en que la


curva exacta se estabiliza. Esto es debido al error cometido en los gradientes de la solucin
que a su vez han sido causados por un nmero insuficiente de subdivisiones. Si disminuimos
an ms el nmero de subdivisiones, por ejemplo, = 20 obtendremos cada vez unos
resultados con ms diferencias con la simulacin exacta. Vase la figura 5.2.2.5.

Figura 5.2.2.5

69

Tambin representamos los tiempos estimados de clculo y de simulacin en las figuras 5.2.2.6
y 5.2.2.7 respectivamente.

Figura 5.2.2.6

Figura 5.2.2.7

Como se observa en las dos grficas superiores, los tiempos de clculo y de simulacin no
tienen la misma relevancia, ya que el primero es en todos los casos relativamente pequeo, y
el segundo crece de manera muy rpida a medida que aumentamos el nmero de
subdivisiones.

5.2.3 Elementos finitos


Los datos de la tabla 5.2.1 revelan que si utilizamos el mtodo de los elementos finitos,
necesitamos un nmero de subdivisiones en cada eje mucho menor que en el mtodo de las
diferencias finitas (centradas) para conseguir un error similar. Es decir, que nuestra matriz
solucin estar formada por menos nodos. Si simulamos el sistema utilizando = 150 y con
70

unas condiciones iniciales [1 , 1 , 2 , 2 ] = , 0, , 0, se obtienen los resultados de la figura


5.2.3.1.

Figura 5.2.3.1

Se muestra a continuacin en la figura 5.2.3.2 la curva del error frente al nmero de


subdivisiones para el caso de los elementos finitos.

Figura 5.2.3.2

Al igual que se hizo en el caso de las diferencias centradas, se ha aadido una curva de mejor
ajuste para poder predecir la necesaria que satisfaga un error mximo determinado.
Si por ejemplo se desea que el error no exceda de 0,2:

= 52,324()0,303 = 85,2

Para asegurarnos el cumplimiento de esta especificacin, tomamos = 86. La distribucin del


error se muestra en la figura 5.2.3.3.
71

Figura 5.2.3.3

Para las mismas condiciones iniciales que antes y para una simulacin del sistema con = 86,
se ve que a pesar que no haber tomado un nmero excesivamente alto, se obtiene una
solucin admisible. Vase la figura 5.2.3.4.

Figura 5.2.3.4

Tambin representamos en la figura 5.2.3.5 el tiempo estimado de clculo. Que como puede
verse es muy superior al tiempo requerido cuando usamos las diferencias finitas centradas.

72

Figura 5.2.3.5

Por ltimo se realiza una comparacin general entre las simulaciones del sistema con unas

condiciones iniciales [1 , 1 , 2 , 2 ] = , 0, , 0 usando las diferencias finitas centradas


( = 50), los elementos finitos ( = 50) y la simulacin exacta tal y como se muestra en la
figura 5.2.3.6.

Figura 5.2.3.6

73

Concluimos indicando que como observamos en la figura 5.2.3.6 para la simulacin con =
50, el mtodo de los elementos finitos ofrece una solucin ms exacta, pero a su vez tambin
es mayor el tiempo que se requiere para calcularlas.
Por otra parte, si aplicamos el mtodo de las diferencias finitas centradas obtendremos un
error mayor, aunque su simplicidad y rapidez, lo hacen bastante efectivo.

74

Anexo
Se exponen a continuacin los cdigos de los programas principales que se han llevado a cabo
en Matlab y Freefem para este proyecto.

A.1 Diferencias regresivas. Archivo dif2.m


La funcin dif2 se encarga de aproximar nuestra ecuacin diferencial parcial usando para ello
las diferencias finitas regresivas.
function un=dif2(nx,ny)
k=(4*pi)/ny;
h=(4*pi)/nx;
lambda=k/(h*4);

Tiene como argumentos de entrada el nmero de subdivisiones que haremos en cada


direccin de las variables independientes 1 y 2 , y como argumento de salida la matriz
solucin () de la ecuacin diferencial parcial.
Se definen y como la longitud del dominio entre el nmero de subdivisiones, y es
el parmetro que relaciona a los dos anteriores.

un=zeros(ny+1,nx+1);
x=2*pi:-4*pi/nx:-2*pi;
y=-2*pi:4*pi/ny:2*pi;

Debemos definir las dimensiones de la matriz solucin y reservar dicho espacio en memoria.
Esto lo hacemos as ya que es ms cmodo que modificar estas dimensiones en el bucle
posterior.
Tambin se define el dominio de ambas variables independientes.

un(:,1)=-10.*cos(-2*pi)+0.5.*(y-4*(-2*pi)).^2; %Frontera 1
un(1,:)=-10.*cos(x)+0.5.*(2*pi-4.*x).^2; %Frontera 4

Estas son las condiciones de contorno. Recordemos que en las diferencias regresivas
solamente utilizbamos dos.

75

A continuacin se adjuntan la figura A.1.1 de nuestra malla y la expresin recursiva de la


molcula para la mejor comprensin de los bucles.
+1, = (1 ), + ,1 +

10
(1 )
4

Figura A.1.1

for i=2:ny+1
for j=2:nx+1
un(i,j)=un(i-1,j)*(1-lambda)+un(i-1,j-1)*lambda+k*2.5*sin(x(j));
end
end
end

Empezaremos calculando el valor de cada nodo desde arriba a la izquierda (elemento (2,2) de
la matriz) de la malla hacia la derecha y cada vez que lleguemos a la frontera derecha, bajamos
una fila para proseguir con la iteracin.

A.2 Diferencias centradas. Archivo dif5.m


Esta funcin aproximar la ecuacin del potencial mediante diferencias finitas centradas.
function u=dif5(nx,ny)
k=(4*pi)/ny;
h=(4*pi)/nx;
lambda=k/(h*4);
un=zeros(ny+2,nx+1);
x=-2*pi:4*pi/nx:2*pi;
y=-(2*pi+4*pi/ny):4*pi/ny:2*pi;

76

Esta primera parte del cdigo es igual que la de la funcin anterior salvo por un detalle. Dado
que en esta ocasin se va a utilizar una condicin de Neumann. Para ello debemos agrandar la
malla una fila ms, de ah que la variable 2 (representada en el cdigo como ), parta desde
= 2

4
.

un(:,1)=-10*cos(-2*pi)+0.5.*(y-4*(-2*pi)).^2; %Frontera 1
un(:,nx+1)=-10*cos(2*pi)+0.5.*(y-4*(2*pi)).^2; %Frontera 2
un(ny+2,:)=k-10.*cos(x)+0.5.*(2*pi-4.*x).^2; %Frontera 3 (Neumann)
un(ny+1,:)=-10.*cos(x)+0.5.*(2*pi-4.*x).^2; %Frontera 3

La condicin de Neumann es de esa forma debido a:


1 , 2 + 1 , 2
(1 , 2 )
= (1 ) =
=1
2

(1 , 2 + ) = (1 , 2 ) +

Al igual que antes se muestran a continuacin la expresin recursiva y la malla en la figura


A.2.1.
1, = +1, + ,+1 ,1 10 (1 )

Figura A.2.1

for i=ny:-1:1
for j=2:nx
un(i,j)=un(i+2,j)+lambda*(un(i+1,j+1)-un(i+1,j-1))-5*k*sin(x(j));
end
end

Empezamos calculando los nodos desde debajo de izquierda a derecha (elemento (


2, 1) de la matriz), y cuando se llegue al nodo anterior a la frontera de la derecha,
subimos una fila.

77

u=[ny+1,nx+1];
for i=1:ny+1
for j=1:nx+1
u(i,j)=un(i,j);
end
end
end

Recordemos que tenemos que eliminar la fila adicional que creamos para la aplicacin de la
condicin de Neumann, para ello creamos la matriz (esta vez con las dimensiones correctas)
que ser la matriz que la funcin devuelva.
El bucle es simplemente para copiar todas las filas de la matriz (salvo la ltima) en la matriz
(argumento de salida).

A.3 Elementos finitos


Como sabemos, el programa utilizado para la aplicacin del mtodo de los elementos finitos a
nuestra ecuacin diferencial es el Freefem. El Freefem tiene un lenguaje de programacin
propio, aunque es similar al C++.

A.3.1 Primera aplicacin. Archivo Prueba1.edp


En esta primera aplicacin se trat de aproximar la ecuacin usando nicamente dos
condiciones de contorno.
mesh Th=square(100,100,[4*pi*x-2*pi, 4*pi*y-2*pi]);
fespace Vh(Th,P1);

Iniciamos el cdigo declarando una malla cuadrada con cien subdivisiones en cada direccin.
El Freefem tiene por defectos mallas cuyos dominios son [0,1][0,1]. En nuestro caso
queremos que sea [2, 2][2, 2]. Para ello tenemos que hacer un cambio de
coordenadas:
= [0,1] = [2, 2]

La ecuacin de cambio de variables que utilizaremos es de la forma:


+ =
78

Con
= 0 0 + = 2 ,
= 1 1 + = 2 ,

nuestra ecuacin queda:

= 4

= 2 ,

= 4 2.
Tambin declaramos el tipo de elemento que vamos a utilizar en nuestra aproximacin, en
este caso 1 .
func f=-10*sin(x);
func g4=-10*cos(-1.)+0.5*(y-4)^2;
func g2=-10*cos(1.)+0.5*(y+4)^2;

Con estas rdenes declaramos el trmino independiente que tiene nuestra ecuacin
diferencial y las dos condiciones de contorno que vamos a aplicar. En este caso sobre las
fronteras dos y cuatro, que son las de la derecha y la izquierda (la numeracin es distinta a la
que tomamos en el mtodo de las diferencias finitas).

Vh u,v;
solve problema(u,v)=int2d(Th)((-1.)*dx(u)*v+4*dy(u)*v)int2d(Th)(f*v)+on(4,u=g4)+on(2,u=g2);
plot(u,wait=1);

En esta parte del cdigo se da la orden de resolver en 2D el problema en que tiene como
variables y , donde es la incgnita buscada y las funciones de prueba 1 . Adems se
especifica sobre que fronteras han de ser aplicadas las funciones de las condiciones de
contorno antes definidas. Por ltimo aparecer por pantalla la representacin de la solucin
obtenida.

A.3.2 Segunda aplicacin. Archivo Prueba4.edp


Con esta funcin se calcula una aproximacin de nuestra ecuacin diferencial, usando para ello
el mtodo de los elementos finitos. Este cdigo es similar al del caso anterior, pero con la
diferencia que en esta ocasin se le aadieron dos trminos (multiplicados por una constante
suficientemente pequea) de segundo orden a la ecuacin diferencial.

79

mesh Th=square(100,100,[2*pi*x-pi,2*pi*y-pi]);
plot(Th,wait=1);
fespace Vh(Th,P1);
func f=-10*sin(x);
func fex=-10*cos(x)+0.5*(y+4*x)^2;
Vh u,v;
real eps=1.e-3;
solve problema(u,v)=int2d(Th)((1.)*dx(u)*v+4*dy(u)*v+eps*dx(u)*dx(v)+eps*dy(u)*dy(v))
-int2d(Th)(f*v)+on(1,2,3,4, u=fex);
plot(u,value=1,wait=1);
Vh err=ex-u;
plot(err,wait=1);
{
ofstream file("u.txt");
file<<u[]<<endl;
}

Esta vez tenemos cuatro condiciones de contorno de Dirichlet aplicadas sobre cada una de las
fronteras.
Al final del cdigo se ordena que se registre la solucin calculada en un archivo de texto
llamado . que despus leeremos con Matlab.

A.3.3 Lectura del fichero u.txt desde Matlab. Archivo exportador.m


Sabiendo que el Freefem almacena la matriz solucin en forma de vector en un archivo de
texto (fichero u.txt), se tendr que desarrollar un programa en Matlab que lea esa informacin
y la reordene en forma de matriz.
Tambien tenemos que tener en cuenta que el primer elemento del archivo de texto es el
nmero de nodos que tena la matriz. Por tanto nuestro cdigo quedar:
filevar='u.txt';
fi2=fopen(filevar,'r');
nbv=fscanf(fi2,'%d',[1,1]);
u=fscanf(fi2,'%f',[1,nbv]);
fclose(fi2)

Con estos comandos leemos el archivo . llamando al nmero de nodos, y


almacenando todos los datos posteriores en un vector de dimensin . Por ltimo
cerramos el archivo.
n=sqrt(nbv)-1;
k=1;
for i=1:1:n+1
for j=1:1:n+1
A(i,j)=u(k);
k=k+1;
end
end

80

Si es el nmero de nodos, = 1 ser el nmero de subdivisiones en cada


direccin. Tengamos en cuenta que hemos considerado la matriz ser cuadrada y el mismo
nmero de subdivisiones en ambas variables.
Por ltimo tenemos simplemente un bucle que convierte la informacin del vector en la
matriz solucin .

A.3 Funcin gradiente. Archivo gradiente.m


El objetivo de esta funcin es calcular el gradiente de la matriz solucin.
function [dzdx, dzdy]=gradiente (x,y,v,n)
h=4*pi/n;
k=4*pi/n;

Los argumentos de salida sern los gradientes segn cada una de las variables, y los de entrada
sern la malla a estudiar ( e ), la matriz solucin de la ecuacin diferencial () y el nmero
de subdivisiones (). Tambin se definen los parmetros y que se utilizarn para clculos
posteriores.
for i=2:n
for j=2:n
dzdx(i,j)=(v(i,j+1)-v(i,j-1))/(2*h);
dzdy(i,j)=(v(i-1,j)-v(i+1,j))/(2*k);
end
end

En este bucle se calcula mediante diferencias centradas los gradientes de ambas variables en
los nodos interiores de la malla, es decir todos salvo los nodos pertenecientes a los contornos
del dominio.

for j=2:n %Fronteras superior e inferior


dzdx(1,j)=(v(1,j+1)-v(1,j-1))/(2*h); %Centrada
dzdy(1,j)=
(v(1,j)-v(1+1,j))/(k); %Regresiva
dzdx(n+1,j)=(v(n+1,j+1)-v(n+1,j-1))/(2*h); %Centrada
dzdy(n+1,j)=
(v(n+1-1,j)-v(n+1,j))/(k); %Progresiva
end
for i=2:n %Fronteras izquierda y derecha
dzdx(i,1)=(v(i,1+1)-v(i,1))/(h); %Progresiva
dzdy(i,1)=dzdy(i,2); %Centrada
dzdx(i,n+1)=(v(i,n+1)-v(i,n+1-1))/(h); %Regresiva
dzdy(i,n+1)=dzdy(i,n); %Centrada
end

81

En estos dos bucles se calculan los gradientes en los nodos pertenecientes las fronteras,
excepto los nodos que pertenezcan a dos fronteras a la vez, es decir, los vrtices de la malla.
Siempre que sea posible se realiza el clculo mediante las diferencias finitas centradas, en los
casos en los que no se puedan usar, recurrimos a las diferencias finitas progresivas o
regresivas.

i=1; j=1; %Vertice entre fronteras Superior e izquierda


dzdx(i,j)=(v(i,j+1)-v(i,j))/(h); %Progresiva
dzdy(i,j)=dzdy(1,2);%(v(i+1,j)-v(i,j))/(k); %Regresiva
i=1; j=n+1; %Vertice entre fronteras Superior y derecha
dzdx(i,j)=(v(i,j)-v(i,j-1))/(h); %Regresiva
(v(i,j)-v(i+1,j))/(k); %Regresiva
i=n+1; j=1; %Vertice entre fronteras Inferior e izquierda
dzdx(i,j)=(v(i,j+1)-v(i,j))/(h); %Progresiva
(v(i-1,j)-v(i,j))/(k); %Progresiva
i=n+1; j=n+1; %Vertice entre fronteras Inferior y derecha
dzdx(i,j)=(v(i,j)-v(i,j-1))/(h); %Regresiva
(v(i-1,j)-v(i,j))/(k); %Progresiva

En esta parte del cdigo se calculan los gradientes en los nodos restantes, es decir en los
vrtices. En los vrtices no se podrn utilizar diferencias finitas centradas, por tanto se utilizan
las regresivas y progresivas.

A.4 Funcin interpoladora. Archivo interpolador.m


Cuando simulemos nuestro sistema, no solo se necesitarn el valor del gradiente en los nodos
de la malla, sino en todo el dominio. Esta funcin se encargar de interpolar en la malla.
function [dzdxi, dzdyi ] = interpolador(xi, yi, x, y, dzdx, dzdy)

Como vemos la funcin tiene como argumentos de entrada las coordenadas , donde se
desea conocer el valor del gradiente, la distribucin de los nodos , y las matrices gradientes
y . Como argumentos de salida se tienen los valores en los puntos deseados.
x0
xf
y0
yf

=
=
=
=

x(1);
x(length(x));
y(1);
y(length(y));

82

Se definen 0 y como el primer y ltimo valor del vector (referido a la variable 1 ). dem
con 0 y .
if xi >= x0 && xi <= xf
if yi >= yf && yi <= y0
dzdxi = interp2(x,y,dzdx,xi,yi,'linear');
dzdyi = interp2(x,y,dzdy,xi,yi,'linear');
else
error('El nodo no se encuentra en el dominio')
end
else
error('El nodo no se encuentra en el dominio')
end
end

En estos bucles lo primero que se tiene en cuenta es si el punto que se desea interpolar est
dentro de nuestro dominio, es decir si pertenece a la malla. Si no es as, aparecer un mensaje
de error y se detendr la simulacin. En el caso de que el nodo en cuestin pertenezca al
dominio, se procede a su interpolacin mediante la funcin de Matlab interp2 que interpola
de forma lineal a partir de los argumentos anteriormente descritos.

83

Bibliografa
Acosta Rodrguez, J. A. (2004). Control no lineal de sistemas subactuados. PhD tesis.
Universidad de Sevilla. Sevilla.
Caada Villar, Antonio. (2006). Apuntes de ecuaciones en derivadas parciales. Universidad de
Granada. Granada.
Celigeta Lizarza, J. T. (2000). Mtodo de los elementos finitos para anlisis estructural.
Gallardo, Jos M. (2012). Ecuaciones diferenciales ordinarias. Una introduccin con SAGE.
Hecht, Freefem++ Manual. Laboratoire Jacques-Louis Lions. Universit Pierre et Marie Curie.
Paris.
Lucas Rodrguez, Carlos. (2012). Resolucin numrica de EDPs asociadas a problemas de
control. Universidad de Sevilla. Sevilla.
Menndez, ngel N, (1987). Errores en la solucin numrica de ecuaciones diferenciales.
Miersemann, Erich. (2012). Partial differential equations. Lecture notes. Leipzig University.
Leipzig.
Paris, Federico. (1996). Teora de la elasticidad.
Periago Esparza, Francisco. Fundamentos matemticos del mtodo de los elementos finitos.
Universidad Politcnica de Cartagena.
Romero, Sixto. Moreno, Francisco J. Rodrguez, Isabel M (2001). Introduccin a las Ecuaciones
en Derivadas Parciales (EDPs).
Zienkiewicz, O. C. (1981).El mtodo de los elementos finitos.

84

You might also like