3. 2 -  Programmation

Nous choisissons la méthode 3 pour prendre en compte les conditions de Dirichlet pour ce TP, les cas que nous étudions et les méthodes que nous utiliserons ne nécessitant pas, a priori, de garder la symétrie.

Coté programmation :   


$\bullet $ Le tableau cldi, de dimension $(ncl,2)$ décrit les CL de Dirichlet :

  • la 1ère colonne de cldi contient les numéros des noeuds,

  • la 2ème colonne de cldi contient les valeurs imposées,

  • le nombre de ligne est le nombre de noeuds où la valeur est imposée

$\emph{cldi(i,2)}$ est la valeur imposée au noeud numéro cldi(i,1), pour i=1,ncl.

$\bullet $ Pour modifier la matrice $A$ par la méthode 3 :

modifier les lignes il=cldi(i,1) pour i=1,ncl
en annulant les termes puis en imposant $a_{il,il}=1$

$\bullet $ Pour modifier le second membre $F$ par la méthode 3 :

modifier les lignes il=cldi(i,1) pour i=1,ncl
en imposant F(il)=cldi(i,2).

 

sous scilab : écrire, en complétant les zones grises,

   FCLdi   et   ApleinCLdi   (pour un stockage plein)  

  

\includegraphics[width=9cm]{./prog-images/FCLdi.png}
\includegraphics[width=9cm]{./prog-images/ApleinCLdi.png}

       Besoin d’aide pour remplir les zones grises ? pour vous aider, voir le QCM suivant :

Ouvrir/fermer le QCM.

  


Mettre ces functions dans un même fichier, par exemple AFCL.sce,
tester ces sous programmes en ajoutant au programme principal précédent   

  

...

exec(’AFCL.sce’,-1) ;

cldi=[1,0 ; nx,10] ;   F=zeros(nx,1) ;

K=ApleinCLdi(K,cldi) ; K

F=FCLdi(F,cldi) ; F


Vous obtenez : $ K=\left(\begin{array}{ccccc}1& 0& 0& 0& 0\\ -4& 8& -4& 0& 0\\ 0& -4& 8& -4& 0\\ 0& 0& -4& 8& -4\\ 0& 0& 0& 0& 1\end{array}\right)$  et $F=\left(\begin{array}{c}0\\ 0\\ 0\\ 0\\ 10\end{array} \right)$,

vous pouvez alors continuer par l’étape 4

fin de l’aide sur l’étape 3 - $\to $ les étapes