<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <span style="color: rgb(0, 0, 0); font-family: Arial; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: normal; orphans:
      auto; text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">Bonjour,<span
        class="Apple-converted-space"> </span></span><br style="clear:
      both; color: rgb(0, 0, 0); font-family: Arial; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px;">
    <br style="clear: both; color: rgb(0, 0, 0); font-family: Arial;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <span style="color: rgb(0, 0, 0); font-family: Arial; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: normal; orphans:
      auto; text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">Je suis en 2e
      année d'école d'ingé et j'ai un projet d'analyse numérique à faire
      sur Scilab.<span class="Apple-converted-space"> </span></span><br
      style="clear: both; color: rgb(0, 0, 0); font-family: Arial;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <span style="color: rgb(0, 0, 0); font-family: Arial; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: normal; orphans:
      auto; text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">Le but est de
      déterminer la chaleur en tout point d'une plaque de sommets (0,0);
      (2,0) ; (1,1) ; (0;1) (un carré avec un triangle rectangle isocèle
      à côté en somme) et de l'afficher dans un graphique (avec une
      animation en fonction du temps dans le meilleur des cas!)<span
        class="Apple-converted-space"></span></span><br style="clear:
      both; color: rgb(0, 0, 0); font-family: Arial; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px;">
    <span style="color: rgb(0, 0, 0); font-family: Arial; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: normal; orphans:
      auto; text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">Les conditions aux
      limites (sur les côtés) sont assez variables (un côté avec une
      température constante, deux avec un flux entrant ou sortant, et
      une paroi adiabatique). Pour commencer simplement, j'ai récupéré
      d'un prof un programme un peu similaire, qui concerne une plaque
      carrée avec des conditions aux limites simples (températures
      uniquement). Voici le code :<span class="Apple-converted-space"> </span></span><br
      style="clear: both; color: rgb(0, 0, 0); font-family: Arial;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <br style="clear: both; color: rgb(0, 0, 0); font-family: Arial;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <pre class="bbcode" style="border: 1px solid rgb(196, 198, 162); background-color: rgb(254, 255, 236); padding: 8px; overflow: auto; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">q=20;
h=1/(q-1)

function N=conduction(M)
N=M;       //ainsi N a les memes bords que M
c=1/4;

for i=2:(q-1)
    for j=2:(q-1)
    //equation de la chaleur discrete
    N(i,j)=M(i,j)+c*(M(i+1,j)+M(i-1,j)+M(i,j+1)+M(i,j-1)-4*M(i,j)); 
    end;
end;

endfunction




// Le programme thermo prend une matrice initiale puis applique le programme conduction conduction n fois.

function thermo(n)
//Initialisation. Differentes matrices initiales sont proposees en bas du fichier. 
M=A;

for i=1:n
M=conduction(M);
end;

x=0:0.1:1;
y=0:0.1:1;
clf();
plot3d(x,y,M)
endfunction;





// Le programme animation fait la meme chose que thermo mais represente chacune des etapes de l'evolution de la plaque.
 
function animation(X)
  clf()
  f=gcf()//handle figure courante
  toolbar(f.figure_id,'off')//supprime la barre d'outils
  //rect=[-1.2,-1.2,1.2,0.2];//taille de la fenetre
  
  x=0:h:1;
  y=0:h:1;

//Initialisation. 
  M=X
  plot3d(x,y,M)

  
  for t=0:100//la boucle de l'animation
     drawlater();
     //xpause(50000);
      M=conduction(M);
      clf()//efface le buffer
      plot3d(x,y,M)
     
      xinfo('t='+string(t))//voir le temps
      drawnow();
  end
  
endfunction






//Initialisation possibles avec des conditions au bord differentes.

//La temperature est nulle partout au bord. A t=0, elle est a 9 degres a l'interieur.
A=zeros(q,q);
A(2:(q-1),2:(q-1))=9*ones((q-2),(q-2));
 
//Le bord est a 0 degres d'un cote et a 10 degres de l'autre. La temperature initiale dans la plaque est nulle.
B=zeros(q,q);
B(1:q,q)=10;
B(1,1:q)=linspace(0,10,q);
B(q,1:q)=linspace(0,10,q);

//Deux cotes opposes a 0 degres et les deux autres a 10 degres. La temperature initilae est aleatoire.
C=zeros(q,q);
C(1,2:(q-1))=10;
C(q,2:(q-1))=10;
C(2:(q-1),2:(q-1))=10*rand((q-2),(q-2));

// La temperature au bord oscille partout entre 0 degres et 2 degres.
D=zeros(q,q);
D(1,2:2:(q-1))=2;
D(q,2:2:(q-1))=2;
D(2:2:(q-1),1)=2;
D(2:2:(q-1),q)=2;
 
// Bord et temperature aleatoires. Reexecuter le programme pour modifier la generateur aleatoire.
rand('seed',getdate('s'));
E=zeros(q,q);
v=abs((1:q)-6);
E(1,1:q)=10*rand(1,q);
E(q,1:q)=10*rand(1,q);
E(1:q,1)=10*rand(q,1);
E(1:q,q)=10*rand(q,1);
E(2:(q-1),2:(q-1))=10*rand((q-2),(q-2));

animation(A)</pre>
    <br style="clear: both; color: rgb(0, 0, 0); font-family: Arial;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <span style="color: rgb(0, 0, 0); font-family: Arial; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: normal; orphans:
      auto; text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">(Il y a plusieurs
      conditions aux limites possibles, il suffit de changer la matrice
      dans la dernière ligne (animation(A,B,C,D ou E))<span
        class="Apple-converted-space"> </span></span><br style="clear:
      both; color: rgb(0, 0, 0); font-family: Arial; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px;">
    <br style="clear: both; color: rgb(0, 0, 0); font-family: Arial;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <span style="color: rgb(0, 0, 0); font-family: Arial; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: normal; orphans:
      auto; text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">Pour faire le
      rapprochement avec mon projet, il faut que ma surface soit
      polygonale (le polygone que j'ai décrit plus haut). Évidemment, la
      discrétisation change, vu qu'en fonction de la "hauteur" selon y,
      le nombre de points sur une même ligne change.<span
        class="Apple-converted-space"> </span></span><br style="clear:
      both; color: rgb(0, 0, 0); font-family: Arial; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px;">
    <br style="clear: both; color: rgb(0, 0, 0); font-family: Arial;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <span style="color: rgb(0, 0, 0); font-family: Arial; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: normal; orphans:
      auto; text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">Là arrive mon
      problème. Comment tracer (avec plot3d je présume) une surface avec
      une base polygonale et où la valeur de z est donnée par la matrice
      des chaleurs (dans mon cas, elle s'appelle M)<span
        class="Apple-converted-space"> </span></span><br style="clear:
      both; color: rgb(0, 0, 0); font-family: Arial; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px;">
    <br style="clear: both; color: rgb(0, 0, 0); font-family: Arial;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <span style="color: rgb(0, 0, 0); font-family: Arial; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: normal; orphans:
      auto; text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">J'ai essayé en
      donnant comme arguments de plot3d trois vecteurs x,y,z, avec le
      i-ème point de chaque vecteur étant la coordonnée (ou la chaleur
      pour z),mais ça n'a pas marché. J'ai ensuite essayé en utilisant
      les "facet" (cf aide de Scilab [</span><a
      href="http://help.scilab.org/docs/5.5.0/fr_FR/plot3d.html"
      target="_blank" rel="nofollow" style="color: rgb(53, 95, 53);
      font-family: Arial, Helvetica, sans-serif; text-decoration: none;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">help.scilab.org</a><span
      style="color: rgb(0, 0, 0); font-family: Arial; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">]); j'arrive à
      tracer une surface polygonale, mais je ne peux donner les valeurs
      de z que pour les sommets de ce polygone...<span
        class="Apple-converted-space"> </span></span><br style="clear:
      both; color: rgb(0, 0, 0); font-family: Arial; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px;">
    <br style="clear: both; color: rgb(0, 0, 0); font-family: Arial;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <span style="color: rgb(0, 0, 0); font-family: Arial; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: normal; orphans:
      auto; text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">Je suis donc à
      l'écoute de toute proposition qui pourrait m'aider à résoudre ça,
      merci beaucoup!</span>
  </body>
</html>