Spirale dans un carré - Liste et récurrence géométrique
Bonjour,
J'ai demandé à des élèves de 6ème de construire une toile d'araignée d'Halloween en construisant des spirales affines par morceaux à l'aide de perpendiculaire. Chaque point dépend du précédent.
J'ai évidemment commencé par construire une figure pas à pas, c'est assez pénible et j'aimerais bien avoir une construction à l'aide de listes (je n'ai pas eu de souci pour l'effectuer avec asymptote/python).
Ma première tentative à l'aide de la commande Séquence n'aboutissant pas, j'ai essayé de passer à un script (je suis peu expérimenté en la matière).
La figure jointe fonctionne pour n=1 et n=2 mais ne fonctionne plus à partir de n=3. Je ne comprends pas pourquoi et GeoGebra ne me donne aucune erreur.
Des idées pour débugger ? Ou une autre façon d'obtenir la figure. Merci beaucoup !
Ah ! Ce n'est peut-être pas de ma faute alors. Si ça peut être utile, j'ai omis hier de préciser la version de GeoGebra utilisée. Cela dit, j'ai eu le même comportement en utilisant la version en ligne du site officiel.
GeoGebra Classic 5.0.504.0-d (10 October 2018)
OS: Linux
Architecture: amd64 / null
Une idée pour procéder autrement ? La question sous-jacente est en fait, comment construire une liste dont chaque terme dépend du précédent. De plus, ici on a deux listes imbriquées. La situation ressemble donc à un couple de suites récurrentes u_{n+1} = f(u_n,v_n) et v_{n+1} = g(u_n,v_n).
Pas de souci, ce n'est pas une urgence.
J'ai regardé ItérationListe mais je n'ai pas l'impression que cela puisse convenir en raison de l'imbrication. D'ailleurs, ce que j'ai écrit plus haut n'est pas correct : les points P_k et les droites d_k se calculent en alternance :
Connaissant P_n et d_n, on calcule d'abord d_{n+1} puis P_{n+1} :
d_{n+1} = f(P_n) puis P_{n+1} = g(P_n,d_{n+1}) = g(P_n,f(P_n))
avec (en gros) f la commande Perpendiculaire et g la commande Intersection.
La dernière expression, qui donne P_{n+1} en fonction de P_n est celle que j'avais essayée d'utiliser, sans succès, avec la commande Séquence.
A la réflexion, je vais quand même tenter une version avec ItérationListe et h(.)=g(.,f(.))
Pour la variante de solution avec script et "Répéter()" :
fonctionne toujours (jusqu'à preuve du contraire)
voir annexe
------------------------------------------------------------------
Note à ItérationList
Les divers paramètres qui sont transférés récursivement au cycle suivant doivent être combinés dans une liste.
ItérationListe( <Expression>, L, {{<Valeurs initiales pour L (comme liste)>}}, <Nombre> )
<Expression> est définie avantageux avec un outil utilisateur avec liste L en input et L en output.
----------------------------------------------------------------------------------------------------
Les récursions peuvent également être très bien traitées dans Tableur
-----------------------------------------------------------------------------------------------------
Je passerais bien le sujet en "Résolu" mais je ne vois pas comment faire. Si quelqu'un peut s'en charger... Merci !
Comments have been locked on this page!