next up previous contents index
suivant: La limite de la monter: Un exercice tiré des précédent: Le dessin   Table des matières   Index

La taille

Pour connaitre la taille de l'arbre au bout de n années, on écrit une procédure récursive harbre qui a les mêmes paramètres que la procédure récursive arbre et qui renvoie l'ordonnée exacte du point le plus haut de l'arbre.
  harbre(A,l,t,n):={
    local B,res;
    B:=A+l*exp(i*t);
    res:=max(ordonnee(A),ordonnee(B));
    if (n>0){
      res:=normal(max(res,harbre(B,l/2,t+pi/6,n-1),
      harbre(B,l*3/4,t-pi/6,n-1)));
    } 
    return res;
  }:;
ou plutôt pour éviter des calculs trop longs on écrit harbra qui renvoie la valeur approchée de l'ordonnée du point de l'arbre le plus haut. On peut aussi utiliser harbre en mettant comme valeur de l une valeur décimale : par exemple 1.0.
harbra(A,l,t,n):={
local B,res;
B:=evalf(A+l*exp(i*t));
res:=max(ordonnee(A),ordonnee(B));
if (n>0){
res:=max(res,harbre(B,l*0.5,evalf(t+pi/6),n-1),
harbre(B,l*0.75,evalf(t-pi/6),n-1));
} 
return res;
}:;
Pour avoir la hauteur de l'arbre, il faut soit planter l'arbre en un point A d'ordonée 0, soit utiliser la procédure hauteur_arbre ci-dessous qui suppose que le tronc de l'arbre est vertical :
hauteur_arbre(A,l,n):=harbre(A,l,pi/2,n)-ordonnee(A):; On tape : harbre(0,1,pi/2,10) On obtient au bout de 30s :
(19515*sqrt(3)+52283)/32768
On tape : harbre(0,1.0,pi/2,1) On obtient au bout de 5s:
2.62707432586
On tape : hauteur_arbre(i,1.0,pi/2,1) On obtient au bout de 5s:
2.62707432586


Documentation de giac écrite par Renée De Graeve