On se donne un compact de
, et
son contour. On suppose donnée une
fonction définie sur
. Soit l'ensemble des applications de dans
.
Chaque appartenant à définit une surface, l'ensemble des
.
On cherche parmi la fonction définissant la surface minimale. On admet le fait que la
fonction vérifiant cette propriété est celle dont le laplacien est nulle, et qu'elle est unique.
On va s'intéresser ici à une méthode probabiliste résolvant le problème discrétisé. On pourrait
bien sûr s'attaquer à un problème plus général, mais par simplicité de notations on considèrera
que , et on s'intéressera seulement aux points de coordonnées entières de .
La fonction peut-être quelconque; on s'intéressera pour nos représentations schématiques à
la fonction définie ci-dessous, front.m :
Exemple Matlab : front.m
function f=front(x,y)
a=abs(x-round(x));
b=abs(y-round(y));
if (a<b) f=1; else f=0; end;
Pour résoudre le problème, on calcule séparément les valeurs de en les différents points de coordonnées
entières de . Considérons par exemple
. On considère alors le processus de Markov
ayant pour espace des états, partant de , et effectuant une marche aléatoire simple sur (ie les 4 directions sont
équiprobables). On définit un temps d'arrêt égal au nombre d'étapes avant que la marche aléatoire atteigne
, ie une abscisse ou une ordonnée égale à 0 ou , ce qui a une probabilité d'arriver.
On considère alors définie par
.
Il est clair que l'application ainsi définie vérifie bien
.
Le programme matlab correspondant est le suivant:
Exemple Matlab : lapla.m
function v=lapla(n,e)
u=zeros(n+1,n+1);
for i=0:n,
for j=0:n,
disp(sprintf('%g %%',(i*(n+1)+j)*100/((n+1)*(n+1))))
nb=0;
t=0;
err=[];
while ((2*t > e )|(nb<30))
a=i;
b=j;
while((a<n)&(a>0)&(b>0)&(b<n))
switch(floor(rand*4))
case 0
a=a+1;
case 1
a=a-1;
case 2
b=b+1;
case 3
b=b-1;
end;
end;
a=a/n; b=b/n; nb=nb+1; err=[err,front(a,b)];
if (nb>1) t=std(err)/sqrt(nb-1); end;
end;
u(i+1,j+1)=mean(err);
end;
end;
surfl(u)
shading interp
colormap autumn
v=u;
On pourra regretter que les pourcentages affichés pendant le calcul ne sont pas les pourcentages
du temps de calcul, mais les pourcentages du nombre de points calculés.
La figure obtenue par "lapla(10,0.05)" est , à gauche.
En remplaçant la fonction "front.m" par "cos(4*atan((x-0.5)/(y-0.5)))", on obtient la figure , à droite.
Figure:
Approximation de surface minimale obtenue par "lapla.m".