Si el dominio de la función f es triangulado, lo mas razonable es aproximar la función por su "interpolada P1", es decir, la única función que sea
La interpolada P1 de una función continue es dafinida de manera única por sus valeurs en los vértices de la triangulacion.
Démonstration
Sea x un punto en el intérior del triángulo T dado por sus coordenadas baricentricas:
Las lineas de nivel de f son
Un punto de intersection q de la curva de niveau con una arista del triángulo
sera encontrada si existe i,j y a, con
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;
int 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 este programa conviene egregarle la verificación que los denominadores no
son nulos, que la función no es identicamente constante, y agregarle el trazado
de las fronteras del domaine.
Se demuestra que el error H1 entre la interpolada y la función es O(h) mientras que el error L2 es O(h2).
Tomar 3 triangulaciones teniendo cada una 4 veces más puntos que la anterior, escribir una función que calcule el error H1 y L2 en el caso particular en que f=xy. Hacer con gnuplot un gráfico del log del error en función del log de h. Guardar la figura en formato Postscript y enviar el resultado comprimido por email.