Sous-sections

3.2 Méthode des résidus pondérés

La méthode des résidus pondérés est une méthode générale de recherche de solutions approchées d'équations différentielles ou aux dérivées partielles

Considérons par exemple, le problème $(\mathcal{P}_{1})$suivant:

trouvez la solution $u(x)$ de l'équation


\begin{displaymath}
\frac{d^{2}}{dx^{2}}u-f(x)=0   \forall x\in]0,1[  \textrm{\mbox{{  avec }}}  f(x)=-e^{x(1-x)}
\end{displaymath} (3.1)

associée aux conditions aux limites:


\begin{displaymath}
u(0)=0,   u(1)=0
\end{displaymath} (3.2)

Le problème $(\mathcal{P}_{1})$ n'admet pas forcément une solution analytique explicite3.1 pour toutes les fonctions $f(x)$. On va donc chercher une approximation $u^{h}(x)$ de la solution exacte $u_{e}(x)$ de $(\mathcal{P}_{1})$.

De façon générale, on va chercher cette approximation $u^{h}(x)$ comme une combinaison linéaire $N$ de fonctions de base $\phi_{j}(x)$:


\begin{displaymath}
u^{h}(x)=\sum_{j=1}^{N}\alpha_{j}\Phi_{j}(x)
\end{displaymath} (3.3)

Les fonctions de base $\phi_{j}(x)$ étant connues, il faut donc déterminer les coefficients $\alpha_{j}$ pour déterminer la solution approchée $u^{h}(x)$.

Pour que la solution $u^{h}(x)$ vérifie les conditions aux limites 3.2, on impose dans ce cas aux fonctions de base de vérifier ces conditions aux limites.

Par contre, on ne peut en général pas trouver les coefficients $\alpha_{j}$ telle que la solution approchée 3.3 vérifie l'équation 3.1 . En effet si $u^{h}(x)$ vérifie l'équation 3.1, alors $u^{h}(x)$ est la solution exacte $u_{e}(x)$!

L'équation 3.1 n'étant pas vérifiée exactement pas les solutions 3.3, on va essayer de déterminer la meilleur approximation $u^{h}(x)$, i.e. celle correspondant à une erreur la plus petite dans l'équation. Pour cela on définit le résidu $R^{h}(x)$ de l'équation 3.1 :


\begin{displaymath}
R^{h}(x)=\frac{d^{2}}{dx^{2}}u^{h}-f(x)\end{displaymath}

et on impose que ce résidu soit nul dans un certain espace $W^{h}$ (de dimension $N$). Soit $\{ w_{i}(x)\}_{i=1,N}$ une base de fonctions de $W^{h}$, cette condition est la condition d'orthogonalité de $R^{h}$ par rapport à $W^{h}$:


\begin{displaymath}
<R^{h}(x),w_{i}(x)>=0  \forall i=1,N
\end{displaymath} (3.4)

en notant $<u,v>$ le produit scalaire de 2 fonctions $u$ et $v$.

En remplaçant $R^{h}$ en fonction de $u^{h}$ donné par 3.3, il vient:


\begin{displaymath}
\sum_{j=1}^{N}\alpha_{j}<\frac{d^{2}\phi_{j}(x)}{dx^{2}},w_{i}(x)>=<f(x),w_{i}(x)>   \forall i=1,N\end{displaymath}

C'est un système linéaire de $N$ équations à $N$ inconnues $X=\{\alpha_{i}\}$:


\begin{displaymath}
A  X=B  \mbox{{  avec }}  A_{ij}=<\frac{d^{2}\phi_{j}(x)}{dx^{2}},w_{i}(x)>,   B_{i}=<f(x),w_{i}(x)>
\end{displaymath} (3.5)

qu'il suffit de résoudre pour obtenir la solution approchée de 3.1. On remarque aussi que le nombre de fonctions tests $w_{i}$ doit bien être égale au nombre de degré de liberté $\alpha_{j}$ de la solution approchée, pour que le problème approchée admette une solution unique.

Cette approche très générale de résolution d'une équation différentielle consiste donc à remplacer la recherche d'une solution analytique de 3.1 par un problème discret 3.4 plus simple de dimension $N$, qui dans le cas étudié est le système linéaire 3.5.

Dans la pratique, il reste cependant à déterminer les fonctions de base $\phi_{j}(x)$, les fonctions tests $w_{i}(x)$ et le produit scalaire $<.,.>$.

Pour le produit scalaire $<u,v>$ de 2 fonctions, on choisit l'intégrale sur le domaine du produit des 2 fonctions définie par:


\begin{displaymath}
<u,v>=\int_{0}^{1}u(x)  v(x)  dx
\end{displaymath} (3.6)

On vérifie que c'est un produit scalaire (c'est la généralisation du produit scalaire euclidien dans $\mathcal{R}^{n}$), qui définie une norme (équivalente à la norme euclidienne dans $\mathcal{R}^{n}$):


\begin{displaymath}
\left\Vert u\right\Vert =\sqrt{\int_{0}^{1}u^{2}dx}\end{displaymath}

La méthode des résidus pondérés s'écrit alors:


\begin{displaymath}
\sum_{j=1}^{N}\alpha_{j}\int_{0}^{1}\frac{d^{2}\phi_{j}(x)}{...
..._{i}(x)  dx=\int_{0}^{1}f(x),w_{i}(x)  dx   \forall i=1,N
\end{displaymath} (3.7)

3.2.1 Méthode de Galerkin

Dans la méthode de Galerkin, on choisit comme fonctions tests $w_{i}(x)$ les fonctions de base $\phi_{i}(x)$ de l'approximation.

3.2.1.1 Approximation spectrale

Comme base de fonctions $\phi_{i}(x)$, on choisit une famille de fonctions trigonométriques vérifiant les conditions aux limites 3.1, i.e.:


\begin{displaymath}
\phi_{i}(x)=\sin(i\pi x)\end{displaymath}

Ainsi, pour $N=1$, la solution approchée s'écrit:


\begin{displaymath}
u^{h}(x)=\alpha_{1}\sin(\pi x)
\end{displaymath} (3.8)

$\alpha_{1}$ est solution de l'équation scalaire


\begin{displaymath}
\alpha_{1}\int_{0}^{1}\sin(\pi x)^{2}dx=\int_{0}^{1}f(x)\sin(\pi x)  dx\end{displaymath}

qui s'écrit en remplaçant $f(x)$ par son expression et en calculant les intégrales:


\begin{displaymath}
\alpha_{1}\frac{\pi^{2}}{2}=0.7806473   \mbox{{  soit }} \alpha_{1}=0.15819
\end{displaymath} (3.9)

La solution obtenue est comparée à la solution exacte sur la figure ci dessous.

\includegraphics[width=0.5\textwidth]{CHAP1/uh}

Pour montrer que la solution obtenue est la meilleure approximation $u^{h}$ de la forme 3.8, on a tracé l'erreur entre la solution exacte et des solutions $u^{h}$ (3.8) pour plusieurs valeurs de $\alpha_{1}$ proche de la valeur optimale 3.9.

\includegraphics[width=0.5\textwidth]{CHAP1/errh}

On peut augmenter la précision de l'approximation en augmentant le nombre $N$ de fonctions de base. Par exemple pour $N=3,$ on obtiens une solution plus précise comme le montre la courbe ci dessous:

\includegraphics[width=0.5\textwidth]{CHAP1/uh3}

3.2.1.2 Approximation polynomiale

On peut aussi choisir comme fonctions de base des polynômes de degré n. Par exemple, pour $n=2$, les fonctions de base sont des polynômes de degré 2 sur $[0,1]$, qui possèdent donc à priori 3 degrés de liberté. Il faut de plus que ces fonctions vérifient les conditions aux limites 3.1, c.a.d s'annule en $x=0$ et $x=1$, ce qui supprime 2 degrés de liberté. Dans ce cas il n'y a donc qu'une seule fonction de base indépendante, que l'on choisit comme le polynôme de Lagrange de degré 2, qui s'annule en $x=0$ et $x=1$, et qui vaut 1 en $x=\frac{1}{2}$:


\begin{displaymath}
\phi_{1}(x)=4x(1-x)\end{displaymath}

La solution $u^{h}$ s'écrit


\begin{displaymath}
u^{h}(x)=\alpha_{1}\phi_{1}(x)\end{displaymath}

$\alpha_{1}$ est solution de l'équation scalaire


\begin{displaymath}
\alpha_{1}\int_{0}^{1}\phi_{1}(x)^{2}  dx=\int_{0}^{1}f(x) \phi_{1}(x)  dx\end{displaymath}

qui s'écrit en remplaçant $f(x)$ par son expression et en calculant les intégrales:


\begin{displaymath}
\frac{16}{3}\alpha_{1}=0.8154069 \mbox{{   soit  }} \alpha_{1}=0.1529\end{displaymath}

La solution obtenue est comparée à la solution exacte sur la figure ci dessous.

\includegraphics[width=0.5\textwidth]{CHAP1/uhp2}

On remarque que le coefficient $\alpha_{1}$ représente dans ce cas la valeur nodale de $u^{h}$ en $x=\frac{1}{2}$:


\begin{displaymath}
\alpha_{1}=u^{h}(\frac{1}{2})  \mbox{car}  \phi_{1}(\frac{1}{2})=1\end{displaymath}


Pr. Marc BUFFAT
marc.buffat@univ-lyon1.fr
2008-02-28