changeset 3:ee99933b606f

Progress
author Jordi Gutiérrez Hermoso <jordigh@gmail.com>
date Wed, 28 Apr 2010 14:26:43 -0500
parents b9f0f539805a
children 6f046bc56558
files code.tex preamble.tex rbf-ddm.tex thesis.bib thesis.tex
diffstat 5 files changed, 76 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/code.tex
+++ b/code.tex
@@ -17,11 +17,11 @@
 entre numeristas donde C++ no tiene una tradici\'on tan extensa como C
 o Fortran. Estoy hablando sobre la programaci\'on orientada a objetos
 y algunas otras cualidades m\'as avanzadas de C++, como excepciones,
-plantillas, manejo autom\'atico de memoria, espacios nominales
-\footnote{En ingl\'es, \emph{namespaces}.} y otras abstracciones que en mi
-opini\'on facilitan el desarrollo de software. Justificar\'e
+formularios, manejo autom\'atico de memoria, espacios nominales
+\footnote{En ingl\'es, \emph{namespaces}.} y otras abstracciones que
+en mi opini\'on facilitan el desarrollo de software. Justificar\'e
 brevemente la elecci\'on de haber usado algunas de estas cualidades de
-C++, pues he visto que todas ellas hayan sido criticadas por
+C++, pues hemos visto que todas ellas hayan sido criticadas por
 numeristas.
 
 \begin{description}
@@ -47,10 +47,20 @@
   opcionalmente se pueden hacer invisibles dentro de ciertos contextos
   y no complican en nada la elaboraci\'on del c\'odigo.
 
-  \item[Planillas:]\footnote{En ingl\'es, \emph{templates}} Tengo
-  varias clases que est\'an en planillas, lo cual resulta en que es
+  \item[Formularios:]\footnote{En ingl\'es, \emph{templates}} Tengo
+  varias clases que est\'an en formularios, lo cual resulta en que es
   muy f\'acil cambiar la FBR de la definici\'o o inclusive agregar
   otras FBRs que no hayamos ya definido.
+
+  \item[Apuntadores inteligentes:] Para simplificar en el c\'odigo el
+  manejo de memoria y preservar el polimorfismo propio de C++, hemos
+  recurrido al apuntador inteligente \vb{shared_ptr} de la biblioteca
+  Boost. Estos apuntadores implantan un conteo de referencias de tal
+  manera que cuando ya no hay referencias al objeto apuntado,
+  autom\'aticamente se reclama la memoria alojada con una reducci\'on
+  despreciable del desempe\~no del c\'odigo. Usamos exclusivamente en
+  el c\'odigo este tipo de apuntadores en vez de los apuntadores
+  b\'asicos de C.
   
 \end{description}
 
@@ -115,13 +125,13 @@
 sencilla, tambi\'en los \'indices comienzan desde $1$, no $0$ como en
 C++, y es posible rebanar matrices y vectores respetando ciertas
 restricciones. Las clases m\'as importantes de este espacio nominal
-son \vb{linalg::matrix! y \vb{linalg::vector}, por supuesto
+son \vb{linalg::matrix} y \vb{linalg::vector}, por supuesto
 compatibles entre s\'i. Todas las funciones aritm\'eticas b\'asicas de
 \'algebra lineal que se puedan esperar se encuentran aqu\'i. Todas
 est\'an implantadas por medio de BLAS\footnote{BLAS son las siglas en
   ingl\'es de ``Subsistema B\'asico de \'Algebra Lineal'', que es una
   interfase estandarizada que define funciones gaxpy y
-  saxpy\cite{Golub/Van-Loan} para aritm\'etica de matrices y
+  saxpy\cite{Golub/Van-Loan:1996} para aritm\'etica de matrices y
   vectores.} tal como lo implanta la GSL.
 
 Para las funciones m\'as avanzadas que ya no caen dentro de BLAS,
@@ -134,7 +144,7 @@
   decir, si ya se calcul\'o una vez la inversa, llamadas sucesivas a
   \vb{inv()} usar\'an la misma factorizaci\'on.
 
-  Como argumento opcional, se puede dar un vector $b$ como par\'ametro
+`  Como argumento opcional, se puede dar un vector $b$ como par\'ametro
   a esta funci\'on para resolver el sistema lineal $A\vec{x} =
   \vec{b}$. Normalmente, \'esta es la \'unica forma de esta funci\'on
   que se utiliza; nunca directamente la matriz inversa.
@@ -212,16 +222,16 @@
 \vb{bvp::realfunc}, una clase que detallaremos m\'as adelante. En
 efecto, puesto que una funci\'on radial es una funci\'on $\varphi :
 \RR^n \to \RR$, la herencia es razonable. Muchas clases que se
-detallar\'an en el espacio \vb{bvp! usan las clases de \verb!rbf}
-como par\'ametros de planillas. Consecuentemente, es f\'acil escoger
+detallar\'an en el espacio \vb{bvp} usan las clases de \vb{rbf}
+como par\'ametros de formularios. Consecuentemente, es f\'acil escoger
 una FBR distinta para los varios m\'etodos definiendo y pasando
 diferentes miembros del espacio \vb{rbf} como par\'ametros de
-planillas.
+formularios.
 
 \subsection{Espacio \vb{bvp}}
 
 En este espacio se encuentran la mayor\'ia de las clases y
-funcionalidad de nuestro c\'odigo. Recordando el PVF \ref{thebvp},
+funcionalidad de nuestro c\'odigo. Recordando el PVF \eqref{thebvp},
 observamos que tiene varios componentes:
 \begin{itemize}
   \item Un operador diferencial interior $\mathcal{L}$.
@@ -286,17 +296,62 @@
 
   Esta clase es madre de varias otras clases. Adem\'as de ser madre
   todos los miembros del espacio nominal \vb{rbf}, tambi\'en es
-  madre de las interpolantes \vb{interpolator! y \verb!schwarz_ddm}
-  que veremos m\'as adelante.
+  madre de las interpolantes \vb{interpolator} y \vb{schwarz_ddm}
+  que veremos m\'as adelante. Tambi\'en tiene envolturas para el tipo
+  de apuntadores a funciones que la GSL requiere mediante la clase
+  \vb{gsl_function_wrapper}.
   
 \end{description}
 
 Esta familia de clases definen los ingredientes necesarios para poder
 especificar en su totalidad un PVF. Formalizamos esta especificaci\'on
 con la clase \vb{bvp::BVP} que no es mucho m\'as que una estructura
-con los componentes del PVF \ref{thebvp}. Definimos
+con los componentes del PVF \eqref{thebvp}. Definimos tambi\'en una
+clase derivada que ha resultado suficiente para nosotros y que modela
+un PVF lineal de orden 2, \vb{linear_BVP2}.
+
+\section{La clase \vb{bvp::interpolator<RBF>}}
 
+Todas las clases descritas arriba son tan s\'olo el esquema general
+bajo el cual estamos trabajando, definen los ingredientes del
+problema. Pues bien, ahora nos enfocaremos en la primera clase que en
+efecto implanta el algoritmo de soluci\'on del PVF \eqref{thebvp}.
+Dicha clase es \vb{interpolator<RBF>}, tambi\'en dentro del espacio
+nominal \vb{bvp}, donde RBF es un par\'ametro de formulario para
+representar el tipo de FBR que se usar\'a para resolver. La clase
+\vb{interpolator<RBF>} supone modelar el ansatz o interpolador
+$\tilde{u}$ definido en \eqref{theinterp}. Ahora bien, nuestra
+intenci\'on tambi\'en es amarrar \'intimamente este interpolador a un
+PVF, as\'i que los primeros ingredientes de \vb{interpolator<RBF>} son
+\begin{itemize}
+  \item los coeficientes $u_p$ de $\tilde{u}$,
+  \item las FBRs $\phi_p$ y
+  \item un PVF.
+\end{itemize}
+Observamos que el interpolador requiere tambi\'en conocer los puntos
+del dominio en los cuales est\'a interpolando, pero esta informaci\'on
+ya est\'a contenida tanto en las FBRs como en el PVF.
 
+Antes de proseguir, algunos comentario. Propiamente, aunque
+\eqref{theinterp} es el mismo objeto matem\'atico, deber\'iamos
+llamarlo \emph{ansatz} cuando se utiliza para resolver un PVF y
+llamarlo \emph{interpolador} cuando resuelve el problema de
+interpolaci\'on. Claro que el problema de interpolaci\'on se puede
+tratar sin ninguna dificultad adicional como un PVF trivial donde el
+operador interior y frontera ambos son el operador identidad, y en
+efecto, justamente as\'i lo hemos tratado en nuestro c\'odigo. En lo
+que sigue, nos seguiremos refiriendo al $\tilde{u}$ de
+\eqref{theinterp} como ``interpolador'' acordando que el mismo objeto
+lo podemos usar tambi\'en para resolver un PVF.
+
+Usamos un \'unico m\'etodo de soluci\'on de colocaci\'on asim\'etrica
+tal como est\'a descrito en la secci\'on \ref{unsymcolloc}. Esto
+requiere invertir la matriz de Gram que por motivos de optimizaci\'on
+que ser\'an aparentes en breve, nuestro interpolador guarda en la
+memoria. Nuestro interpolador resuelve los problemas de
+interpolaci\'on y de valores en la frontera de la misma manera. De
+cualquier forma, hay ciertas diferencias en la implementaci\'on del
+problema 
 
 %%% Local Variables: 
 %%% mode: latex
--- a/preamble.tex
+++ b/preamble.tex
@@ -1,5 +1,5 @@
 \documentclass{book}
-\usepackage{amsmath, amsthm, amssymb, fullpage}
+\usepackage{amsmath, amsthm, amssymb}
 \usepackage{fancybox, url, graphicx}
 \graphicspath{{piccies/}}
 \usepackage{syntonly}
@@ -7,9 +7,6 @@
 \usepackage[spanish]{babel}
 \spanishdecimal{.}
 
-\bibliographystyle{gatech-thesis}
-
-
 \theoremstyle{plain}
 \newtheorem*{teo}{Teorema}
 \newtheorem*{lema}{Lema}
--- a/rbf-ddm.tex
+++ b/rbf-ddm.tex
@@ -1,5 +1,6 @@
 \chapter[FBR y MDD]{Funciones base radiales y descomposici\'on de dominios}
 \section{Introducci\'on}
+\label{unsymcolloc}
 Empecemos con una definici\'on clave.
 \begin{defn}
   \label{rbf-def}
@@ -10,7 +11,7 @@
 Brevemente, una funci\'on radial depende solamente de la distancia
 desde alg\'un punto en $\RR^n$. Pronto daremos ejemplos relevantes de
 funciones radiales. Antes, consid\'erese de manera general el problema
-de valor en la frontera (PVF)
+de valores en la frontera (PVF)
 \begin{equation}
   \label{thebvp}
   \begin{cases}
--- a/thesis.bib
+++ b/thesis.bib
@@ -8,7 +8,7 @@
 pages = {891--902}
 }
 
-@Book{Golub/Van-Loan,
+@Book{Golub/Van-Loan:1996,
   author = {G. H. Golub and C. F. van Loan},
   domains = {Reference book:Matrix theory},
   edition = {3rd},
--- a/thesis.tex
+++ b/thesis.tex
@@ -3,7 +3,7 @@
 \includeonly{apology, rbf-ddm, code}
 
 \begin{document}
-\bibliographystyle{acm}
+\bibliographystyle{amsalpha}
 
 \frontmatter
 \maketitle