2. 4 -  Programmation

Coté programmation :   

Attention : sous Scilab, les indices des tableaux doivent commencer à 1, il fant donc décaler de 1 tous les indices pour la programmation sous Scilab.

Ecriture d’un sous programme devant construire $K$ pour tout

$nx$ : nombre de points $x_ j$ du domaine ($nx=n_ h+2$) ,

$x$, tableau des abscisses des noues, $x_ j$, $j=1,nx$,

$k_ c$, tableau des coefficients $kc$ donnés par élément.


fournis par la liste d’appel du sous programme.

structure :

- affectation de la matrice élémentaire de référence,

- initialisation du stockage de $K$,

- boucle sur les éléments $i=1$ à $nx-1$

  calcul de $k_ c^{i} / (x_{i+1}-x_{i})$,

  ajout des contributions de l’élément $i$ à $K$,

- fin de la boucle sur $i$


sous scilab : écrire en complétant les zones grises du fichier Kplein1DP1.sci     pour un stockage plein .  
 

\includegraphics[width=8cm]{./prog-images/Kplein1DP1.png}

Les commentaires (commençant par //) ne sont pas obligatoires mais sont utiles pour la compréhention.

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

Ouvrir/fermer le QCM.

 

Tester ce sous-programme à l’aide du programme principal (à écrire dans la console de Scilab ou dans un fichier que l’on exécutera) :   

  

exec(’Kplein1DP1.sci’,-1) ;

nx=5 ; x=[0 , 0.25 , 0.5 , 0.75, 1] ; kc=[1 , 1 , 1,1] ;

K = Kplein1DP1(nx,x,kc) ; K

Remarque : la discrétisation uniforme de $x$ peut aussi être faite à l’aide de x=linspace(0,1,nx).

Vous obtenez bien la matrice $K=\left(\begin{array}{ccccc}4& -4& 0& 0& 0\\ -4& 8& -4& 0& 0\\ 0& -4& 8& -4& 0\\ 0& 0& -4& 8& -4\\ 0& 0& 0& -4& 4\end{array}\right)$, vous pouvez alors poursuivre par l’étape 3.

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