LM203 - Devoir - Polygones

Pour que les graphiques produits par maxima correspondent à ceux présentés sur cette page il faut éxécuter la commande suivante au démarrage de maxima :
mon_preambule:"set size square;unset border;unset label;unset xtics;unset ytics;unset key";
On peut alors tracer un polygone à l'aide de la commande :
plot2d([discrete,float(L)],[gnuplot_curve_styles,["with lines"]],[gnuplot_preamble,mon_preambule]);
L est la liste des sommets du polygone, donnée sous la forme [[x0,y0],[x1,y1],...,[xn,yn]].
  1. À l'aide de la fonction makelist construire la liste L des sommets du pentagone régulier convexe (prendre les sommets sur un cercle de rayon 1), et le tracer à l'aide de la fonction plot2d
  2. Quelle est le rayon R du cercle inscrit dans ce pentagone ?
  3. Tracer sur la même figure le pentagone régulier convexe précédent et le pentagone étoilé dont les sommets sont sur le cercle de rayon 0.95*R
  4. De la même manière, tracer l'heptagone régulier convexe (dont les sommets sont sur un cercle de rayon 1) et à l'intérieur de celui-ci les deux heptagones étoilés. Les polygones ne doivent pas se couper : expliquer comment choisir les rayons des cercles circonscrits aux différents polygones.
  5. Écrire une procédure polygones(n):=block( ... ); dont l'argument est un nombre entier premier n>2 et qui trace sur un seul graphique tous les polygones à n sommets (convexe et étoilés) emboités les uns dans les autres. Tracer les figures :
    n=11 n=13
  6. Saurez-vous améliorer la procédure pour qu'elle puisse prendre comme argument un nombre entier n quelconque ? Tracer les figures :
    n=18 n=24