next up previous contents
Next: Estimations d'erreur Up: Tracé d'une fonction de Previous: Tracé d'une fonction de

Principe: Interpolation P1

Si le domaine de la fonction f est triangulé par des triangles, le plus raisonnable est d'approcher la fonction par son "interpolée P1", c'est a dire la seule fonction qui soit


theoreme596

Démonstration

Soit x un point à l'intérieur d'un triangle T donné par ses coordonnées barycentriques:
displaymath705
on définit la valeur de l'interpolé P1 en x par
displaymath707
Si x est sur une arête on défini l'interpolé par
displaymath709
On voit facilement que la définition interne coincide avec la définition sur les arêtes car si x tend vers une arête une des coordonnées barycentriques tend vers 0.

Les lignes de niveau de f sont
displaymath711
Si on remplace f par son interpolé, les lignes de niveau seront des lignes polygonales, car sur chaque triangle ce sont des segments de droite, puisque la fonction est affine.

Un point d'intersection q de la courbe de niveau avec une arête e du triangle sera trouvé s'il existe i,j et a, avec
displaymath713
Le principe de tracé d'une ligne de niveau est donc le suivant:

for(int k = 0; k<nt; k++)
{ m=0;
  for(int i1=0;i1<3;i1++)
  {
    int j1 = (i1+1) % 3;
    int i = t[k].v[i1]->no, j = t[k].v[j1]->no;
    float a = (mu - f[j]) / (f[i] - f[j]);
    if((a>=0)&&(a<=1)) 
    {  m++; if(m==1) move2(a * q[i].x + (1-a) * q[j].x, 
                   a * q[i].y + (1-a) * q[j].y);
        else     line2(a * q[i].x + (1-a) * q[j].x, 
                   a * q[i].y + (1-a) * q[j].y);
    }
  }
}
A ce programme il convient d'ajouter la vérification que les dénominateurs sont non nuls, que la fonction n'est pas identiquement constante, et de rajouter le tracé des frontières du domaine.


exer576
Ecrire un programme qui lit un fichier freefem de triangulation et un fichier de valeurs d'une fonction puis écrit un fichier gnuplot des tracés de ligne de niveau. On testera la présence de 2 parametres sur la ligne de commande UNIX. S'il n'y en a qu'un on tracera la triangulation au lieu de la fontion



Pironneau Olivier
Jeudi 12 mars 1998 16:24:39