\documentclass[a4paper,12pt]{article}
\usepackage{amsmath, amssymb, graphics}
\usepackage[frenchb]{babel}
%\usepackage{dsfont}
%regle la taille de la marge
\usepackage[top=2.5cm, bottom=2.5cm, left=2cm , right=1.9cm]{geometry}
%permet l'insertion de postscripts
% \usepackage{graphicx}
% \usepackage{}
% \usepackage{euscript}
% \usepackage{array}

%packatage pour un fichier pdf
\usepackage[pdftex]{graphicx,color}
\usepackage[pdftex]{hyperref}

\title{Projet 2}
\author{Dalissier Eric}
\date{}

%opening

\begin{document}

\maketitle
\newpage

\section{Introduction}
\mbox{}
\\ 
\text{  }On a sous quelque hypoth\`ese et raisonnement issue des math\'emathiques probabilistes,\\ l'\'equation de \textit{Black-Scholes} sous la forme suivante :
\begin{equation}
\left\lbrace\begin{array}{l}
\dfrac{\partial u}{\partial t} -
\dfrac{\sigma^{2}_{1}x^{2}}{2} \dfrac{\partial^{2}u}{\partial x^{2}} -
\dfrac{\sigma^{2}_{2}y^{2}}{2} \dfrac{\partial^{2}u}{\partial x^{2}} -
q\sigma_{1}\sigma_{2}xy\dfrac{\partial^{2}u}{\partial x\partial y} -
rx\dfrac{\partial u}{\partial x} - ry \dfrac{\partial u}{\partial y}
+ ru = 0 \\
u(x,y,0)=( K-x-y)^{+}\ sur\ \partial \Omega \\
u(L,y,t)=u(x,L,t)=0\ sur\ \partial \Omega
\end{array}\right.
\end{equation}
Ici, on pose $\Omega$=$(0,L)^{2}$.\\
On doit \'ecrire l'\'equation (1) sous forme divergentiele, c'est \`a dire de la forme:
\begin{equation}
\dfrac{\partial u}{\partial t} - \text{div}( K\nabla u) + \mu \nabla u+\nu u = 0
\end{equation}
On d\'eduit tout de suite que les termes : $\dfrac{\partial u}{\partial t}$ et $u$ restent inchanger.\\
D'o\`u :
\begin{center}
$\nu$ = $r$
\end{center}
Il nous reste donc \`a identifier:\\ \mbox{} \\ \mbox{}
$\dfrac{\sigma^{2}_{1}x^{2}}{2} \dfrac{\partial^{2}u}{\partial x^{2}} -
\dfrac{\sigma^{2}_{2}y^{2}}{2} \dfrac{\partial^{2}u}{\partial x^{2}} -
q\sigma_{1}\sigma_{2}xy\dfrac{\partial^{2}u}{\partial x\partial y} -
rx\dfrac{\partial u}{\partial x} - ry \dfrac{\partial u}{\partial y} $
\text{     }avec \text{    }
$- \text{div}( K\nabla u) + \mu \nabla u $\\
Pour cela nous avons d\'evelopp\'e $- \text{div}( K\nabla u) $ puis identifi\'e les d\'eriv\'ees partielles secondes. Cela nous a donn\'e:
\begin{center}
 K = $\left( \begin{array}{cc}
\dfrac{\sigma_{1}^{2}x^{2}}{2} &
\dfrac{q\sigma_{1}\sigma_{2}xy}{2}\\
\dfrac{q\sigma_{1}\sigma_{2}xy}{2} &
\dfrac{\sigma_{2}^{2}y^{2}}{2} \\
\end{array}
\right)$
\end{center}
\mbox{} \\
Comme les composantes de K d\'ependent de x et de y, ces d\'eriv\'ees par rapport a l'une o\`u l'autre des variables ne sont pas nulles. C'est d'ailleurs ce qui nous permet de trouver $\nu$.\\
On a:
\begin{center}
$\mu \nabla u - K'_{00}\frac{\partial u}{\partial x} - 
K'_{01}\frac{\partial u}{\partial y} - K'_{10}\frac{\partial u}{\partial x} - 
K'_{11}\frac{\partial u}{\partial y} = \left( \begin{array}{ll}
-rx &
-ry
\end{array}
\right) \left(\begin{array}{l}
\frac{\partial u}{\partial x}\\
\frac{\partial u}{\partial y}
\end{array}
 \right)$
\end{center}
On a apr\`es avoir remplac\'e et identifi\'e:
\begin{equation}
\mu = \left( \begin{array}{l}
x(-\dfrac{q\sigma_{1}\sigma_{2}}{2} - \sigma_{1}^{2} + r) \\
y(-\dfrac{q\sigma_{1}\sigma_{2}}{2} - \sigma_{2}^{2} + r)
\end{array}
  \right)
\end{equation}
\mbox{} \\
On va ensuite \'ecrire sous forme variationnelle l'\'equation (3). Comme le temps et l'espace n'ont pas du tout le m\^eme comportement. On va se servir d'une approximation par diff\'erence finie pour la partie en temps de l'\'equation, et d'\'element fini pour la partie en espace. Dans le calcule de la formulation variationnelle, on ne prendra pas en compte le terme $\frac{\partial u}{\partial t}$:\\
On prend $ V =\{ v\in H^{1} \text{ tel que } x\frac{\partial v}{\partial x} \in L^{1}(\Omega)\text{ et }v=0\text{ si }x=L\text{ ou }y=L \}$.\\
On multiplie l'\'equation (3) par $ v\in V$ puis on int\'egre en espace donc sur $[0,L]$.
\begin{center}
$\int_{\Omega} (-div (K\nabla u)v + \mu \nabla u v +\nu uv )\ dxdy=0$
\end{center}
\mbox{} \\
On utilise une formule de Green :\\ \mbox{}\\
$\int_{\Omega} (K ^{t}\nabla u \nabla v + \mu \nabla u\ v + \nu u v \ )dxdy - \int_{\Gamma}  K \nabla u.\overrightarrow{n} v d\Gamma=0  $ \\ \mbox{}\\
On veut que le terme en $\int_{\Gamma}  K \nabla u.\overrightarrow{n} v d\Gamma$ soit nul. On a d\'ej\`a la condition $v=0$ en $x=L$ et $y=L$. Il nous reste donc:
\begin{center}

$\int_{\Gamma_{x=0}} K \nabla u.\overrightarrow{n} v d\Gamma$ et $ \int_{\Gamma_{y=0}} K \nabla u.\overrightarrow{n} v d\Gamma$ 
\end{center}
On pose donc la condition $\nabla u = 0$ pour $x=0$ ou $y=0$. Ainsi on retombe sur l'\'equation que l'on trouve par les distributions.\\
On a donc le probl\`eme variationnelle de (3) suivant :\\ \mbox{}\\
Trouver $u$$\in$ V tel que pour tout $v$$\in$ V:\\
Avec $V= \{ v\in \mathcal{L}^{2}(\Omega) , \dfrac{\partial v}{\partial x}\in \mathcal{L}^{2}(\Omega) , \dfrac{\partial v}{\partial y}\in \mathcal{L}^{2}(\Omega),\dfrac{\partial v}{\partial \overrightarrow{\nu}}\in \mathcal{L}^{2}(\Gamma_{1} ) \bigcup \mathcal{L}^{2}(\Gamma_{4})\}$
\begin{equation}
\left\lbrace\begin{array}{l}
\int_{\Omega} (\ \frac{v\partial u}{\partial t} + 
 K ^{t}\nabla u \nabla v + \mu \nabla u\ v + \nu u v \ )dxdy 
= 0 \\
K\nabla u.\overrightarrow{n} = 0 \text{ pour } x=0 \\
K\nabla u.\overrightarrow{n} = 0 \text{ pour } y=0
\end{array}
\right.
\end{equation}
\mbox{} \\
On discr\'etise la formulation variationnelle afin de pouvoir l'\'etudier num\'eriquement.\\
Pour le temps, on utilisera un sch\'ema d'Euler semi-implicite.\\
Pour l'espace, on utilisera la m\'ethode des \'el\'ements finis de degr\'e 1 sur des triangles.\\
On \'ecrit les $w_{h}$ sur chaque triangle car si $x \in T_{k}$ (le $k^{\text{\`eme}}$ triangle) alors :
\begin{center}
$w^{k}_{h}(x,y)=w^{k}_{h}(q^{k}_{0}) \lambda^{k}_{0}(x,y) + w^{k}_{h}(q^{k}_{1}) \lambda^{k}_{1}(x,y) + w^{k}_{h}(q^{k}_{2}) \lambda^{k}_{2}(x,y) $
\end{center}
$q^{k}_{i}$ \'etant les sommets du triangle $T_{k}$.\\
$\lambda^{k}_{i}(x,y)$ sont les coordonn\'ees barycentrique de $T_{k}$.\\
Comme la restriction au triangle $T_{k}$ est $P^{1}$ et que les $w^{k}_{h}(q^{k}_{i}) \in \mathbb{R}$ , on a que les $\lambda^{k}_{i}(x,y) \in P^{1}$. Donc on peut les \'ecrire sous la forme:
\begin{center}
$\lambda^{k}_{i}(x,y) = a_{i} + b_{i} x + c_{i} y $ \text{  pour i = 0, 1, 2}
\end{center}
On a enfin que $\lambda^{k}_{i}(q^{k}_{j})= \delta_{ij}$. ( cela traduit la propri\'et\'e que les coordonn\'ees barycentrique d'un sommet valent 1 en ce sommet et 0 ailleurs. Avec ces deux propri\'et\'es de $\lambda^{k}_{i}$, on a que :\\
$w^{k}_{h} (q^{k}_{i}) = w^{k}_{h}(q^{k}_{0}) \lambda^{k}_{0}(q^{k}_{i}) + w^{k}_{h}(q^{k}_{1}) \lambda^{k}_{1}(q^{k}_{i}) + w^{k}_{h}(q^{k}_{2}) \lambda^{k}_{2}(q^{k}_{i}) = \delta_{ij} $ avec j=0,1,2\\
\mbox{} \\
On se ram\`ene donc a la m\^eme situation qu en 2 dimensions. Avec $w_{h}$ la base canonique de $V_{0h} =\{ v_{h}\in \mathcal{L}^{2}(\Omega) ,\ \dfrac{\partial v_{h}}{\partial x}\in \mathcal{L}^{2}(\Omega) ,\  \dfrac{\partial v_{h}}{\partial y}\in \mathcal{L}^{2}(\Omega) ,\dfrac{\partial v}{\partial \overrightarrow{\nu}}\in \mathcal{L}^{2}(\Gamma_{1} ) \bigcup \mathcal{L}^{2}(\Gamma_{4}),\ v_{h}=0\  pour\  t=0\}$.\\
Pour d\'eterminer les $a_{i}$, $b_{i}$ ,$c_{i}$, on se sert de la propri\'et\'e suivante: les $\lambda^{k}_{i}$ valent 1 au sommet $q^{k}_{i}$ et 0  au sommet $q^{k}_{j}$ pour $j\neq i$.
On obtient ainsi le syst\`eme suivant :
\begin{equation*}
\left\lbrace\begin{array}{l}
\lambda^{k}_{0}(q^{k}_{0}) = a_{0} + b_{0}x^{k}_{0} + c_{0}y^{k}_{0} = 1\\
\lambda^{k}_{0}(q^{k}_{1}) = a_{0} + b_{0}x^{k}_{1} + c_{0}y^{k}_{1} = 0\\
\lambda^{k}_{0}(q^{k}_{2}) = a_{0} + b_{0}x^{k}_{2} + c_{0}y^{k}_{2} = 0
\end{array}
\right.
\end{equation*}
On applique une m\'ethode de Kramer pour r\'esoudre ce syst\`eme, on obtient:
\begin{equation}
\lambda^{k}_{0} = \dfrac{\stackrel{\longrightarrow}{q^{k}_{1} q^{k}}\wedge \stackrel{\longrightarrow}{q^{k}_{2}q^{k}}}
{\stackrel{\longrightarrow}{q^{k}_{1} q^{k}_{0}}\wedge \stackrel{\longrightarrow}{q^{k}_{2}q^{k}_{0}}}
\end{equation}
avec $q^{k}$=$\left(\begin{array}{l}
x\\
y
\end{array}
 \right)$.\\
On a de m\^eme :\\
$\lambda^{k}_{1} = \dfrac{\stackrel{\longrightarrow}{q^{k}_{2} q^{k}}\wedge \stackrel{\longrightarrow}{q^{k}_{0}q^{k}}}
{\stackrel{\longrightarrow}{q^{k}_{2} q^{k}_{1}}\wedge \stackrel{\longrightarrow}{q^{k}_{0}q^{k}_{1}}}
$\\
$\lambda^{k}_{2} = \dfrac{\stackrel{\longrightarrow}{q^{k}_{0} q^{k}}\wedge \stackrel{\longrightarrow}{q^{k}_{1}q^{k}}}
{\stackrel{\longrightarrow}{q^{k}_{0} q^{k}_{2}}\wedge \stackrel{\longrightarrow}{q^{k}_{1}q^{k}_{2}}}
$
\\
Ou \'ecrit autrement:
\begin{equation}
\begin{array}{l}
\lambda^{k}_{0}= \dfrac{(x^{k}_{1}y^{k}_{2}-x^{k}_{2}y^{k}_{1}) - (y^{k}_{2}-y^{k}_{1})x + (x^{k}_{1}-x^{k}_{2})y} {(x^{k}_{1}-x^{k}_{0})(y^{k}_{2}-y^{k}_{0}) - (y^{k}_{1}-y^{k}_{0})(x^{k}_{2} - x^{k}_{0}) }\\
\lambda^{k}_{1}= \dfrac{(x^{k}_{2}y^{k}_{0}-x^{k}_{0}y^{k}_{2}) - (y^{k}_{0}-y^{k}_{2})x + (x^{k}_{2}-x^{k}_{0})y} {(x^{k}_{2}-x^{k}_{1})(y^{k}_{0}-y^{k}_{1}) - (y^{k}_{2}-y^{k}_{1})(x^{k}_{0} - x^{k}_{1}) }\\
\lambda^{k}_{2}= \dfrac{(x^{k}_{0} y^{k}_{1}-x^{k}_{1}y^{k}_{0}) - (y^{k}_{1}-y^{k}_{0})x + (x^{k}_{0}-x^{k}_{1})y} {(x^{k}_{0}-x^{k}_{2})(y^{k}_{1}-y^{k}_{2}) - (y^{k}_{0}-y^{k}_{2})(x^{k}_{1} - x^{k}_{2}) }
\end{array}
\end{equation}
Et la propri\'et\'e des coordonn\'ees barycentrique : \	$\lambda^{k}_{0} + \lambda^{k}_{1} + \lambda^{k}_{2}=1$\\
\mbox{} \\ \mbox{} \\ \mbox{} \\ \mbox{} \\ \mbox{} \\
 \mbox{}
On aura ainsi les coordonn\'ees barycentriques de chaque point dans chaque triangles du maillage facilement, en fonction des coordonn\'ees des sommets du triangles.\\
Maintenant interessons-nous \`a la formule \`a discr\'etiser.


Donc on obtient la formulation suivante apr\`es avoir discr\'etis\'e avec le sch\'ema d'Euler semi-implicite puis pass\'e sous forme variationnelle:\\
$\forall v \in V_{0h}$
\begin{center}
$\displaystyle \int_{\Omega} (\dfrac{u^{m+1}v-u^{m}v}{\delta t} + K\nabla u^{m+1} \nabla v + \mu \nabla u^{m} v+ \nu u^{m+1}v) dxdy  =0$

\end{center}
puis on remplace les $v$ et les $u^{m+1}$ et $u^{m}$ par leur expression dans la base $w^{i}$ de $V_{0h}$ :\\ 
 $u_{h}=\displaystyle\sum_{i/q^{j}\notin \Gamma} u_{h}(q^{(j)})w^{(j)}$   et   $v_{h}=\displaystyle\sum_{i/q^{i}\notin \Gamma} w^{(i)}$\\
On obtient ainsi:\\ \mbox{}
\begin{equation*}
\begin{array}{ll}
\displaystyle \int_{\Omega} (\dfrac{vu^{m+1}-vu^{m}}{\delta t} +\\
\begin{array}{ll}
\displaystyle\sum_{i/q^{i}\notin \partial \Omega} & [(K\nabla (u_{h}^{m+1}(q^{(j)})w^{(j)}) \nabla (w^{(i)}) +\\
& \mu \nabla (u_{h}^{m}(q^{(j)})w^{(j)}) w^{(i)} +\\
& \nu u_{h}^{m+1}(q^{(j)})w^{(j)}w^{(i)}] )dxdy=0
\end{array}
\end{array}
\end{equation*}
On a que $U^{m}= \displaystyle\sum_{j/q^{j}\notin \partial \Omega} u_{h}^{m}(q^{(j)})$. De m\^eme pour $U^{m+1}$. En multipliant tout pour $\delta t \neq 0$, on a :
\\ \mbox{}
\begin{equation*}
\begin{array}{l}
\displaystyle \sum_{k/T_{k}\notin \partial \Omega} \int_{T_{k}} ((w^{j}, w^{i})U^{m+1}-(w^{j}, w^{i})U^{m} + \\
\delta t (K\nabla w^{j},\nabla w^{i}) U^{m+1} +
\delta t \mu (\nabla w^{j}, w^{i}) U^{m} +
 \delta t \nu (w^{j}, w^{i})U^{m+1} ) dxdy = 0
\end{array}
\end{equation*}
On factorise ensuite par $U^{m}$ et $U^{m+1}$, et met $U^{m}$ d'un c\^ot\'e du signe \'egale et $U^{m+1}$.\\
Finalement on a :
\begin{equation}
((w^{j}, w^{i}) + \delta t [(K\nabla w^{j},\nabla w^{i}) + \nu (w^{j}, w^{i})]) U^{m+1} = ((w^{j}, w^{i})- \delta t [\mu (\nabla w^{j}, w^{i})]) U^{m} 
\end{equation}
Sur chaque $T_{k}$, on en prend l int\'egrale.\\
\mbox{} \\ \mbox{}\\ \mbox{}\\ \mbox{}
Passons maintenant a la m\'ethode de r\'esolution num\'erique du probl\`eme. Pour $m=0$, on connait $U^{0}$ d'apr\`es les conditions initiales du probl\`eme.Donc on va r\'esoudre tout d'abord :
\begin{equation}
 AU^{1}=BU^{0}
\end{equation}
Avec $A_{i,j}=\displaystyle \sum_{i,\/q_{i}\in \Omega} \int_{T_{k}}((w^{j}, w^{i}) + \delta t [(K\nabla w^{j},\nabla w^{i}) + \nu (w^{j}, w^{i})])dxdy$\\
et $B_{i,j}=\displaystyle \sum_{i,\/q_{i}\in \Omega} \int_{T_{k}}((w^{j}, w^{i})- \delta t [\mu (\nabla w^{j}, w^{i})])dxdy$\\
\mbox{}
Une fois ce syst\'eme r\'esolut en rajoutant pour les points du maillage sur le bord les conditions ad\'equates.\\
On r\'esoud pour $m=1$, car on conna\^itra alors $U^{1}$. On peut calculer ainsi tout de mani\`ere r\'ecurcive tous les $U^{m}$.
On laisse ensuite tourner notre programme sfemGC2.cpp. Qui r\'esoudra tout cela.
\newpage
%
\section{Etude par diff\'erences finies}
On va faire la d\'eriv\'ee par rapport \`a $K$ et \`a $q$ par diff\'erence fini. Tout d abord au lieu de recalculer une nouvelle fois le vecteur solution. Nous le stockons. Ensuite on va refaire le calcule pour une autre valeur de $K$ ou de $q$, selon la d\'eriv\'ee voulue. Enfin pour terminer, on regarde quel \'etait le $K$ ou le $q$ le plus grand en fonction de $K$ et $q$ initiale. Si la deuxi\`eme variable rentr\'ee est plus grande, on prendra la valeur n\'egative du vecteur solution.
En r\'esumer:\\ \mbox{} \\ \mbox{}
 Pour la d\'eriv\'ee par rapport a $K$
\begin{center}
On fait $u^{M}$=$\dfrac{u_{K}-u_{K'}}{K-K'}$ si $K>K'$\\
sinon $u^{M}$=$-\dfrac{u_{K}-u_{K'}}{K-K'}$
\end{center}
\mbox{} \\ \mbox{} \\
 Pour la d\'eriv\'ee par rapport a $q$
\begin{center}
On fait $u^{M}$=$\dfrac{u_{q}-u_{q'}}{q-q'}$ si $q>q'$\\
sinon $u^{M}$=$-\dfrac{u_{q}-u_{q'}}{q-q'}$
\end{center}
%
\mbox{} \\ \mbox{} \\ \mbox{}
\section{Etude par diff\'erentiation automatique}
On a chang\'e les $double$ en $ddouble$, dans R2.hpp. On a aussi pour cela rajouter le \textit{\#include "ddouble.h"}. Puis on a retir\'e le \textit{typedef R} dans DA.cpp. Enfin on a remplac\'e  \textit{\#include "GC.hpp"} par \textit{\#include "GCDA.hpp"} dans DA.cpp. Pour le reste, cela a \'et\'e du d\'ebugage, par exemple retirer les op\'erateurs qui posent des probl\'emes de choix au compilateur.\\
Enfin pour le faire fonctionner, on initialise la $2^{\text{i\`eme}}$ variable de chaque param\`etre a $0.$. Et l on met 1 a la variable $K$ si l'on veut la d\'eriv\'ee par rapport \`a $K$.\\
La diff\'erentiation automatique est une mani\`ere num\'erique de calculer les d\'eriv\'ees, et justement elle est en cela beaucoup plus longue que la m\'ethode des diff\'rences finies, car demande plus de calcul. Mais cela donne une bonne estimation de la d\'eriv\'ee que l'on doit obtenir. Cette m\'ethode peut donc valider ou non le calcul d'une d\'eriv\'ee.\\ \mbox{}
\includegraphics[width=17cm]{comparaison1.png}
\begin{center}
comparaison entre diff\'erence fini en vert et différentiation automatique en rouge pour $q$
\end{center}
\mbox{} \\ \mbox{} \\ \mbox{} \\
\includegraphics[width=17cm]{comparaison2.png}
\begin{center}
comparaison entre diff\'erence fini en vert et différentiation automatique en rouge pour $K$
\end{center}


\section{Open GL}
Pour la programmation des isolignes, nous avons cr\'e\'e plusieurs sous programme. Tout d'abord $isolect$ qui charge le fichier "isoval.dat" contenant la liste des isovaleurs \`a tracer. Il charge tout cela dans un vecteur auquel il rajoute en premi\`ere et derni\`ere ligne une valeur tr\`es petite , et une valeur tr\'es grande respectivement.Cela permet d'\'eviter les surprises d'isolignes non colori\'ees.\\
A la suite de cela on a modifi\'e le programme $SetColor$, pour qu'il puisse attribuer, une couleur a chaque isoligne.\\
Ensuite on a rencontr\'e le probl\`eme de savoir o\`u une isoligne coupait chacun des triangles. On a donc cr\'e\'e le programme $Labeliseur$.
Enfin on a cr\'e\'e le programme $Calpoint$ qui calcule le point d'intersection entre une isoligne et le cot\'e d'un triangle. Pour se faire, on se sert d une m\'ethode de proportionnalit\'e entre l'isovaleur et la diff\'erence des  coordonn\'ees $z$ de sommets de ce segment.
Cette m\'ethode a malheureusement ses limites dans le cas de surface courbe, si le maillage est trop grossier.
Voila une visualisation de ce que l'openGL fait:\\
\includegraphics[width=15cm]{gl.png}
\begin{center}
 Visualisation de la solution de l'\'equation de black and scholes
\end{center}

\newpage
\section{Programmes et r\'esultats:}
Les codes rajout\'es \`a $sfemGC2.cpp$ risquant d'encombrer le rapport. Nous demanderons au lecteur d'aller le voir si il veut plus d'information.\\
Dans les modifications faites, on a:\\
\_ chang\'e la condition initiale en temps\\
\_ fait un chargement des donn\'ees initiales grace au fichier "projet.txt"\\
\_ une fonctionne qui calcul le barycentre, et peut le stocker dans "g.data"\\
\_ calculer les constantes $K$ $\mu$ \`a partir des coordonn\'ees du barycentre de chaque triangle\\
\_ prend en compte des conditions aux limites sp\'ecifiques du probl\'eme ( nulles sur $\Gamma_1$ et $\Gamma_4$ )\\
\_ modifi\'e $matlap2d$ pour prendre en compte le terme en $(\nabla w^j,w^i)$ de B\\
\_ rajouter la sortie du fichier "uh.txt" pour FreeFem++\\
\_ creation de fichier d'execution pour FreeFemm++, et pour gnuplot\\
\_ fait un menu int\'ractif dans $sfemGC2$ qui permet d'obtenir tous les r\'esultats du projet\\
\mbox{} \\
\mbox{} \\
\mbox{} \\
Ensuite on a aussi \'ecrit un programme en java, qui permet de rentrer les donn\'ees. Voir pour le code $entreur.java$. Il poss\`ede m\^eme un bouton qui efface la fen\^etre et quitte le programme. Les donn\'ees sont stock\'ees dans "projet.txt".\\ \mbox{}



% Voici les graphiques obtenues grace \'a FreeFem++:\\
% \includegraphics{sol.eps}
% Solution obtenue avec FreeFem++
% \includegraphics{solfm.eps}
% \begin{center}
% Solution obtenue avec sfemGC2.cpp
% \end{center}
% \includegraphics{erreur.eps}
% \begin{center}
% L'erreur entre les 2 m\'ethodes
% \end{center}
\newpage
\section{Remerciements}
\addvspace{2 cm}

\qquad Je tiens \`a remercier tout particulierement, pour leur aide
tr\`es pr\'ecieuse, Messieur Alain PERRONNET et Hanen AMOR, sans qui ce projet n'aurait pu avancer.
\end{document}
