Voir : le fichier Maple "zippé"
Chainette cylindrique
Ce programme simule la figure d'équilibre d'un fil pesant inextensible fixé par ses extrémités sur un cylindre d'axe vertical.
Il a été réalisé en collaboration avec Robert Ferréol suite à la construction de la page
Chainettes de son site "mathcurve.com".
Voir ce site pour les explications mathématiques des équations.
Le programme Povray qui permet de faire des tracés un peu plus esthétiques est
ici
Trois tracés obtenus avec ce programme
restart:
scal:=proc(A,B) add(A[i]*B[i],i=1..3) end:
pv:=(U,V)->[U[2]*V[3]-U[3]*V[2],U[3]*V[1]-U[1]*V[3],U[1]*V[2]-U[2]*V[1]]: M:=[cos(u),sin(u),z(u)]:
dM:=diff(M,u):
ds:=sqrt(simplify(scal(dM,dM))):
U:=expand(dM*(z(u))/ds):
U:=diff(U,u):
U:=simplify(expand((U+[0,0,-ds])*ds^3)):
V:=[cos(u), sin(u),0]:
A:=pv(U,V):
eq:=op(solve({op(A)},diff(z(u),u$2))):
a:='a': b:='b':
sols:=simplify(expand(subs(_C1=a,_C2=b,[dsolve(eq,z(u))])),exp):
# ==================================
# ATTENTION : selon les exécutions Maple met a ou 1/a
#====================================
z1:=rhs(sols[1]):
if op([2,2],z1)=a then z1:=subs(a=1/a,z1); fi;
z1;
# on trouve z=1/2/a*ch((u+b)*a)#---------- divers cas ---------------
#z2:=subs(a=1/2,b=0,z1): ur:=-Pi-0.4..Pi+0.4 : vr:= 1..6:
#z2:=subs(a=1/4,b=0,z1): ur:=-2*Pi-0.2..2*Pi+0.2: vr:=3..11:
z2:=subs(a=1/8,b=0,z1): ur:=-3*Pi-0.2..3*Pi+0.2: vr:=7..15:
with(plots):
chainette:=tubeplot([cos(u),sin(u),z2],u=ur,radius=0.1,
color=red,style=patchnogrid):
cyl:=plot3d([cos(u),sin(u),w],u=0..2*Pi,w=vr,style=patchnogrid):#:
display([chainette,cyl],scaling=constrained);
Début