La courbe de Joukovski
%@AUTEUR: Maxime Chupin
%@DATE: 25 janvier 2008
% La courbe de Joukovski
% Soit C un cercle coupant l'axe des abscisses en A(a,0). On crée le
% cercle C' par l'application complexe qui à un point Z (d'affixe z) du
% cercle associe le complexe Z' d'affixe z'=a^2/z. On définit ainsi pour
% chaque couple (Z,Z') le point M milieu du segment [ZZ']. Quand Z décrit
% le cercle C, M décrit la courbe de Joukovski. Ceci revient à réaliser
% l'image du cercle C par la transformation conforme de Joukovski qui à z
% associe z+a^2/z.
verbatimtex
%&latex
\documentclass{article}
\usepackage{amsmath}
\usepackage[garamond]{mathdesign}
\begin{document}
etex
u:=0.5cm;
vardef jouk(expr P,a) =
save x,y; numeric x,y;
save H; pair H;
x:=xpart P;
y:=ypart P;
H:=(0.5*(x+x/(x*x+y*y)*a*a),0.5*(y-y/(x*x+y*y)*a*a));
H
enddef;
vardef joukcer(expr P,a) =
save x,y; numeric x,y;
save H; pair H;
x:=xpart P;
y:=ypart P;
H:=(x/(x*x+y*y)*a*a,-(y/(x*x+y*y)*a*a));
H
enddef;
path cerd,cerjou, joukov,jougeo;
numeric a;
cerd:=fullcircle scaled 10u shifted (u,3u);
a:=5u;
numeric ymin, ymax, xmin, xmax;
for i:=0 upto 360:
pair Z,Zj;
Z:=(5u*cosd(i)+u,5u*sind(i)+3u);
Zj:=joukcer(Z,a);
if i=0:
ymin:=ypart Zj;
ymax:=ypart Zj;
xmin:=xpart Zj;
xmax:=xpart Zj;
fi;
if ((i<>0) and ((xpart Zj)>xmax)):
xmax:= xpart Zj;
fi;
if ((i<>0) and ((xpart Zj)<xmin)):
xmin:= xpart Zj;
fi;
if ((i<>0) and ((ypart Zj)>ymax)):
ymax:= ypart Zj;
fi;
if ((i<>0) and ((ypart Zj)<ymin)):
ymin:= ypart Zj;
fi;
if i=0:
cerjou:=Zj;
else:
cerjou:=cerjou--Zj;
fi;
endfor;
for i:=0 upto 360:
pair Z,Zj;
Z:=(5u*cosd(i)+u,5u*sind(i)+3u);
Zj:=jouk(Z,a);
if i=0:
joukov:=Zj;
else:
joukov:=joukov--Zj;
fi;
endfor;
for i:=0 upto 360:
beginfig(i);
pair Z,Zj,M,A;
drawarrow (xmin-u,0)--(xmax+u,0) withpen pencircle scaled 0.7pt;
drawarrow (0,ymin-u)--(0,ymax+2u) withpen pencircle scaled 0.7pt;
Z:=(5u*cosd(i)+u,5u*sind(i)+3u);
Zj:=joukcer(Z,a);
M:=0.5[Z,Zj];
A:=(5u,0);
if i=0:
jougeo:=M;
else:
jougeo:=jougeo--M;
fi;
draw cerd dashed evenly withpen pencircle scaled 0.8pt withcolor blue;
draw cerjou dashed evenly withpen pencircle scaled 0.8pt withcolor blue;
draw Z--Zj dashed evenly withpen pencircle scaled 0.9pt withcolor green;
draw jougeo withpen pencircle scaled 1pt withcolor red;
dotlabel.urt(btex $Z$ etex, Z);
dotlabel.urt(btex $Z'$ etex, Zj);
dotlabel.urt(btex $M$ etex,M);
dotlabel.lrt(btex $A(a,0)$ etex, A);
label.top(btex $x$ etex, (xmax+0.5u,0));
label.lft(btex $y$ etex, (0,ymax+u));
label.rt(btex $\mathcal{C}$ etex,(0,ymax/2+2u));
label.rt(btex $\mathcal{C}'$ etex, (0,ymax+0.4u));
label.rt(btex \textit{Courbe de} \textsc{Joukovski} etex, (xmin,ymax+u));
endfig;
endfor;
end.