Résolution capes maths 1 2020 partie D

Bonsoir,

Question 1 sans difficulté et j'en déduis $\boxed{\forall t \in [0,1] \ M(t)=bar ((P_0,(1-t)^2),(P_1,2t(1-t)),(P_3,t^2))}$

Pour la 2 je ne m'en sors pas. Je sais qu'il faut utiliser la partie A et l'associativité du barycentre mais je m'embrouille complètement avec tous ces indices.

J'ai essayé d'utiliser l'associativité double mais il y a 2 fois $P_1$ avec 2 coefficients différents.

Je n'ai pas compris la différence entre associativité simple et double.

J'ai essayé les autres questions je n'y arrive pas. La XV je ne vois pas et la construction faut avoir compris l'algorithme...
Je saurais faire la construction pour 3 points $P_0,P_1,P_2$ mais en rajoutant un point je ne vois pas.

Réponses

  • $\def\bar{\mathrm{bar}}$
    Par associativité double, $M_{0,2}(t)=\bar\big((P_0,(1-t)^2),(P_1,t(1-t)),(P_1,t(1-t)),(P_2,t^2)\big)$.
    Donc, par définition du barycentre, $M_{0,2}(t)=\bar\big((P_0,(1-t)^2),(P_1,2t(1-t)),(P_2,t^2)\big)=M(t)$.
  • Merci mais j'essayais de trouver le lien avec les notations de la partie A pour comprendre la formule.

    Sauf que ça coince. Ici $n=2$.
    $B_0$ est le barycentre de $((P_0,\alpha_{00}),(P_1,\alpha_{01}))$ où $\alpha_{00}=1-t$ et $\alpha_{01}=t$

    D'après la formule donnée dans la partie $A$, le $B_i$ doit être barycentre des $((P_j,\alpha_{ij}) , j \in [|0,2|])$ mais ici a pour $B_1$ un barycentre de $((P_1,\alpha_{01}),(P_2,\alpha_{11}))$ où $\alpha_{10}=1-t$ et $\alpha_{11}=t$
    On a $\beta_{0}=1-t$ et $\beta_1=t$
    $M_{0,2} (t)= bar((B_0,\beta_{0}),(B_1,\beta_{1}))$

    Donc $M_{0,2} (t)$ est le barycentre des points $((P_0,\beta_0 \alpha_{00}+\beta_1 \alpha_{1,0}) , \cdots)$

    Mais $\beta_0 \alpha_{00}+\beta_1 \alpha_{1,0} =(1-t)^2+t(1-t)$

    Je ne trouve pas le bon coefficient en appliquant la formule :-S

    Aussi si $B_i=bar((P_j,\alpha_{ij}) , j \in [|0,n|]$ les $B_i$ doivent être barycentre des mêmes $P_j$ à chaque fois non ?
    Or ici notre $B_0$ est barycentre avec des $P_0,P_1$ alors que le $B_1$ des $P_1,P_2$.
    Je ne comprends pas ce détail.
  • Comme pour la partie C que tu as bien géré (et je pense que tu en es fier) tu peux te debrouiller tout seul donc vasy cherche ça sert à rien sinon

    Cette partie est pas foncièrement plus dure que la précédente
  • J'ai cherché 1 heure je ne comprends pas comment appliquer la formule de l'associativité double à cet exemple.

    Quand on reste bloqué 1 heure sur un détail ça sert encore de chercher ?
  • En prépa sur certains dm je restais des jours sur la même question. Là tu n'as pas la pression du temps en plus.
  • Ok du coup je suis passé sur la récurrence de la question suivante. Elle est assez technique je galère beaucoup mais je pense tenir le bon bout et surtout l'idée principale.

    J'ai zappé la question 2 pour l'instant car je ne vois pas.
    J'ai retenu l'idée de Gai Requin pour l'associativité et je m'en sers pour la récurrence. Même si je n'ai pas trop compris comment l'obtenir à partir de la grosse formule de la partie A.
  • En temps limité c'est quand même costaud la récurrence et même la construction.
    Pour la récurrence j'ai décidé de fixer $k$ et de faire une récurrence sur $l$.106040
    106042
    1.png 893.3K
    2.png 876.9K
  • J'ai réussi la construction de Casteljau, j'aurais quand même dû choisir une échelle plus grande.106044
    106046
    1.png 739.5K
    2.png 510.3K
  • Ca a l'air pas mal, tu peux rédiger d'abord la question 2 ici? Elle doit être facile maintenant que tu as rédigé la suite. Fais la ici rapidement au lieu de sur feuille
  • Sinon il faudrait préciser un peu pour l'associativité, c'est pas très clair (je pense que tu utilises l'associativité double et pas simple)
    Pourquoi les barycentres ça marche bien si tu multiplies les coeff de départ par 1-t et t


    Pourquoi si M = Bar((A,a), (B,b)) et N = Bar((C,c), (D,d)) alors

    Bar((M,t), (N,1-t)) = Bar((A,ta),(B,tb),(C,(1-t)c), (D,(1-t)d))

    C'est pas non plus évident sans explication


    Pour la 15-2 tu remontes de proche en proche, tu descends pas de proche en proche !
    Tu dois partir de 0, expliquer comment tu vas à l'étape 1 etc en disant bien qu'à chaque étape tu perds un point et que tu as bien ce qu'il faut et à la fin oui tu tombes sur le bon point.
  • Oui il faut revenir à ce qui est démontré dans la partie A.

    Je ne vois pas comment expliquer l'algorithme en partant de 0 comme vous dites. Ça m'a l'air compliqué.
    Je pense que c'est plus simple comme j'ai fait. A chaque fois qu'on remonte on a un point en plus donc dans l'autre sens un point en moins.

    Question 2 :
    Notons $B_0=bar((P_0,1-t),(P_1,t))$ et $B_1=bar((P_1,1-t),(P_2,t))$
    On a $t+1-t=1$
    De plus, $M_{0,2}(t) = bar((B_0,1-t),(B_1,t))$
    On a $t+1-t=1$
    Les hypothèses sont vérifiées pour appliquer le résultat sur l'associativité double et :
    $M_{0,2}(t) = bar((P_0,?),(P_1,?),(P_2,?)$

    Je ne comprends pas qui sont les $\alpha_{ij}$ ni comment utiliser ce résultat. C'est le blocage dont je parlais depuis ce matin. La somme des $\sum \alpha_{ij} \beta_i$ m'embrouille. Je ne vois pas à quoi cela correspond dans un cas concret.106062
    1.png 201.1K
  • Non mais ta démarche n'est pas logique. Tu veux construire M(t) et toi tu redescends dans l'algo (tu vas de n à n-1) ce qui suppose donc que M(t) est déjà construit...
  • Ah c'est vrai.

    On part des $\{M_{k,0}(t) , k \in [|0,n|] \} $ qui sont donnés soit $n+1$ points.

    Je ne vois pas comment expliquer avec les $M_{k,l}(t)$ Ce qui m'a permis de faire le tracé et de comprendre l'algorithme c'est de revenir en arrière.
  • C'est bizarre... t'y es vraiment presque pourtant...


    A partir de $P_0^0, P_1^0, ... P_n^0$ (tu as n+1 points)
    Tu construis les points
    $P_0^1 = Bar((P_0^0, 1-t), (P_1^0,t)) , ... P_{n-1}^1 = Bar((P_{n-1}^0, 1-t), (P_n^0,t))$ (comme sur le graphique en mode "arbre") => Tu as donc n points

    Ensuite à partir des points précédents :
    $P_0^2 = Bar((P_0^1, 1-t), (P_1^1,t)) , ... P_{n-2}^2 = Bar((P_{n-2}^1, 1-t), (P_{n-1}^1,t))$ (comme sur le graphique en mode "arbre") => Tu as donc n-1 points

    Puis tu réitères le processus encore et à la fin il te reste 2 points
    $P_0^{n-1}, P_1^{n-1}$ qui te permettent de construire le point $P_0^n = M(t) = Bar((P_0^{n-1}, 1-t), (P_1^{n-1},t))$


    En fait c'est exactement ce que tu as fait avec t = 1/2 et 3 points
  • Pour la question 2, j'ai enfin trouvé la solution (:D
    Je reprends les mêmes notations que la partie A.

    Posons :
    $B_0= bar((P_0,a_{00}),(P_1,a_{01}),(P_2,a_{02}))$ où $a_{00}=1-t$, $a_{01}=t$ et $a_{02}=0$
    $B_1= bar((P_0,a_{10}),(P_1,a_{11}),(P_2,a_{12}))$ où $a_{00}=0$, $a_{11}=1-t$ et $a_{22}=t$

    On a ici $b_0=1-t$ et $b_1=t$
    De sorte que $M_{0,2}(t) = bar((B_0,b_0),(B_1,b_1))$

    Ici $i \in [|0,1|]$ et $j \in [|0,2|]$

    On a $b_0+b_1=1$
    Pour $i=0$ on a $a_{00}+a_{01}+a_{02}=1-t+t+0=1$
    Pour $i=1$ on a $a_{10}+a_{11}+a_{12}=1-t+t+0=1$

    On peut donc appliquer le résultat les hypothèses étant vérifiées.

    Ainsi $M_{0,2}(t)= bar((P_0,b_0 a_{00} + b_1 a_{10}),(P_1,b_0 a_{01} + b_1 a_{11}),(P_2,b_0 a_{02} + b_1 a_{12})=M(t)$
  • Merci je vais essayer de comprendre comment vous avez fait.
  • Et comme c'est un sujet sympa qui se prete bien à l'info et à l'algo...

    Béziers
  • Merci j'ai compris comment vous avez fait, je me suis embrouillé car je voulais utiliser la relation obtenue à la question XV.1 au lieu de prendre la relation de récurrence.

    C'est vrai que c'est plus clair que ce que j'ai fait.
  • La 15.1 te permet justement de montrer que ton algo sert à quelque chose et que tu obtiens la même chose à la fin... Mais l'algo est là pour simplifier la démarche et passer d'un truc compliqué en 1 coup pour la décomposer en n trucs simples
  • D'accord merci, pour justifier l'associativité du barycentre dans la récurrence il faut préciser :

    $1-t+t=1$ et $\displaystyle\sum_{k=0}^l B_{l,k}(t)=1$.
  • Question XV.1
    Vouloir utiliser l'associativité c'est bien mais s'il faut autant de lignes pour préciser les valeurs des indices et des points cela n'en vaut pas la chandelle.
    D'autant que le produit artificiel par $t,1-t$ des coefficients est gênant lorsque $t\in\{0,1\}$.
    Il était plus simple ici de refaire la démonstration dans le cas particulier. En partant des relations données pour $\ell$(hypothèse de récurrence) on avait
    $$\overrightarrow{OM_{k,\ell+1}(t)}=(1-t)\sum_{0\leq j\leq\ell}B_{\ell,j}(t)\overrightarrow{OM_{k+j,\ell}(t)}+t\sum_{1\leq j\leq\ell}B_{\ell,j-1}(t)\overrightarrow{OM_{k+j,\ell}(t)}$$
    et la relation V.5.b. donnait l'hérédité en une ligne.
    Question XV.2.
    L'énoncé ayant utilisé le mot «algorithme » il me semble raisonnable de proposer :
    Calcul de M(t).
    {MK désigne UN tableau, indexé de 0 à n de points du plan}
    Initialiser MK par les points de contrôle P[sub]k,[/sub] ; 0 =< k =< n
    Pour l allant de 1 à n faire
         Pour k allant de 0 à n-l faire
              MK[k] <- (1-t)MK[k]+t MK[k+1]
         Fin de boucle sur k
    Fin de boucle sur l
    Retourner MK[0].
    
    En insistant sur le fait qu'on utilise un unique tableau dans la routine, ce qui montre l'intérêt de l'algorithme.
  • Merci AD pour ta mise en forme mais (?) j'aurais aimé que tu utilises une autre lettre que le "l" minuscule difficile à lire.

    [Rakam, c'est toi qui a choisi $\ell$ ! C'est à toi de choisir une autre lettre si celle-ci te paraît difficile à lire. :-) AD]
  • On peut en discuter des heures ! Le choix de $\ell$ convenait pour la lisibilité, pas le passage au "l" dans la technique d'écriture des algorithmes (encadrement par les balises "code") que j'ignorais.
    C'était juste pour le plaisir de "protester" !
  • D'accord merci.
    Je n'y aurais pas pensé. C'est vrai que la récurrence est longue et technique, et en temps limité mieux vaut choisir la technique la plus rapide.

    Par contre l'algorithme je n'ai pas compris. Vous mettez une boucle sur $l$ alors qu'il n'y a pas de $l$ dans les $M_k$ :-S
    Puis le barycentre a disparu dans le programme :-S

    L'énonce ne demande pas d'écrire d'algorithme de toute façon. Noobey a expliqué comment obtenir le point $M(t)$.
  • Tu ne vois pas de $\ell$ dans les $M_{k,\ell}$ ?

    Comment çà le barycentre a disparu ?
    C'est quoi le calcul $\rm{MK}[k]\gets(1-t)\rm{MK}[k]+t\rm{MK}[k+1]$ ? (à ce stade de mes boucles, l'indice $\ell$ est fixé : on travaille sur une colonne où $\ell$ est fixé - voir le schéma de l'énoncé limité aux valeurs $\ell\in\{0,1,2\}$)

    Expllicitetement il faudrait lire $\rm{MK}[k,\ell]\gets(1-t)\rm{MK}[k,\ell]+t\rm{MK}[k+1,\ell]$ mais c'est l'avantage de l'écriture algorithmique de faire disparaître le $\ell$ explicite.

    Je n'ai pas dit que l'énoncé demande l'écriture d'un algorithme !
    J'ai dit que ce serait une façon appréciable de se démarquer on est dans un concours) des candidats qui n'y ont pas pensé et que cela mettrait en évidence l'utilité de l'algorithme en montrant les économies calculatoires réalisées.

    La solution de @noobey (qui évoque lui aussi l'aspect info et algo) n'est autre que le déroulement des boucles que j'ai proposées : il est obligé de doublement indexer ses tableaux, ce qui est fait implicitement par les boucles imbriquées de l'algo.
  • Ok merci je préfère avec le $l$ explicite sinon je ne comprends pas.

    Je n'ai que très peu de connaissance en algorithme et programmation, mais on voit d'après la formule de l'énoncé qu'il faut faire une boucle sur $l$ et sur $k$ donc 2 boucles "for".

    Ne pas mettre d'indice $l$ je ne capte pas.

    Même à la fin le $MK[0]$ on ne sait pas à quoi ça fait référence. Nous on veut $M_[0,n]$

    Vu le sujet interminable je pense qu'en concours, personne n'aurai le temps ni l'envie d'écrire un algorithme.
  • Oshine a écrit:
    Vu le sujet interminable je pense qu'en concours, personne n'aurai le temps ni l'envie d'écrire un algorithme.
    TU n'as pas eu le temps, ni l'envie, arrête de parler et de penser pour les autres. Je t'ai déjà dit qu'on peut parfaitement imaginer qu'une personne fasse l'impasse de certaines questions pour arriver à grapiller des points sur des questions isolées à la fin du sujet. Je dis pas que c'est une stratégie à privilégier qui soit payante. Mais sur 2000 candidats (je sais pas combien en fait), personne n'aurait fait cette question ? avec un algo ?
  • Bien sûr on veut $\rm{MK}[0,n]$ mais si tu suis l'algorithme tu dois considérer :
    aucun outil de programmation ne permet de définir des tableaux triangulaires comme on en utilise ici.
    Sans réfléchir on place le dit tableau dans un tableau carré assez grand.

    Mais en programmation c'est parfois du temps (et de la mémoire perdue) et on essaie d'éviter çà.

    L'algorithme consiste ici à calculer $M_{k,\ell+1}=(1-t)M_{k,\ell}+tM_{k+1,\ell}$ donc utilise deux positions quiont le même indice $\ell$.
    Il est facile de voir en suivant l'algorithme que, après ce calcul, le point $M_{k,\ell}$ n'est plus utilisé.
    D'où l'idée d'utiliser sa place, devenue inutile, pour y placer le point $M_{k,\ell+1}$ qu'on vient de calculer. C'est sur cette remarque qu'on utilise un tableau à une dimension au lieu de tableau carré.

    Dans ces conditions, à la fin des boucles, la position $0$ du tableau contient bien $M_{0,n}$

    Tiens puisque tu prétends avoir fait des programmes en C, ce serait le moment de l'écrire dans ce langage que tu connais puis de suivre l'algorithme : inutile de compliquer, tu peux te limiter à des petites valeurs de $n$.
    A chaque boucle, dessine le tableau MK et regarde les points en place.
  • Franchement je n'ai jamais fait de programme Python, faudrait pas commencer par plus simple ?
  • Ben dans la scolarité d'un élève du secondaire à l'heure actuelle, c'est Scratch en collège (pour du pseudo code quoi, c'est-à-dire un algorithme en français comme l'a fait Rakam plus haut) puis python au lycée qui se poursuit en prépa. Je suis en master de proba/stat et je l'utilise tout le temps. Bref, il est très courant, l'interface est plutôt agréable, il y a des packages pour pleins de choses... Enfin, je vois pas trop pourquoi tu recules à chaque fois qu'on te le propose, surtout si t'as déjà fait du C dans ta vie et que tu as une carrière d'ingénieur derrière toi. L'algo étant au programme de lycée, c'est inclus implicitement dans le programme du CAPES et y'a toujours une question d'algo au BAC en général.

    Procure toi les nouveaux manuels de maths de lycée (réforme) et tu auras tout sur les variables, les fonctions, les boucles... Pas besoin d'acheter encore un bouquin de pro usine à gaz où tu vas rien comprendre, qui sera trop exhaustif pour les besoins que tu as. Et comme ça, tu pourras bosser les maths de lycée que tu maitrises pas.

    Et ensuite, si t'es chaud bouillant, y'a plein d'exos de maths en ligne ou ailleurs (arithmétique souvent mais pas que) qui nécessitent de coder intelligemment (complexité faible) pour obtenir un résultat en temps raisonnable. Sur îlemaths, j'ai participé aux défis pendant plusieurs années mais par exemple, les defis du projet Euler, il y a pas mal de problème qui se font très bien en C ou en Python. La force brute de C peut quand même suffire plus longtemps que celle de Python mais à un moment donné, pour les problèmes délicats, il faut réfléchir à tout (comment tester la primalité d'un nombre, trier efficacement un tableau, choisir entre itératif et récursif...) pour avoir un résultat avant de décéder si possible. C'est assez satisfaisant de chercher plusieurs heures et d'aboutir seul à un code qui donne la bonne réponse, à chaque fois, sans aucune conviction quand on voit la tronche du résultat. On te le demande souvent modulo un très grand entier tellement le résultat lui-même est grand. La difficulté de chaque problème est donnée à titre indicatif.
  • Oui je suis d'accord mais il faut être réaliste quant à mon niveau en programmation et en Python.

    En ingénierie les programmes n'étaient pas appliqués aux maths. C'était du genre commander un moteur, faire clignoter des LED etc...

    Pour commencer faudrait que je passe du temps à chercher des exercices de mathématiques plutôt. J'ai bien cherché quand même sur ce sujet et j'ai trouvé plusieurs questions.

    Mais j'aimerais apprendre à coder des choses très simples sur Python, comme le produit matriciel, calculer les termes d'une suites récurrente, tracer des courbes etc...

    Je ne saurai pas traduire l'algorithme de en Python, il faudrait peut être que je commence par des programmes plus simples non ?
    A moins que vous le trouviez déjà super simple ?
  • Tres bonne idee apprends à coder des trucs tout simples!
  • Tiens si tu veux t'amuser à mettre ça sur un programme Python :
    import numpy as np 
    import matplotlib.pyplot as plt
    import scipy as sp
    from scipy.special import binom
    from math import *
     
    def bernstein(n, t) :
        n = n-1
        return np.array([binom(n,k)*t**k*(1-t)**(n-k) for k in range(n+1)])
     
    def construct(n, rng = 1):
        n = n-1
        return [2*rng*(-1/2 + np.random.rand(2)) for _ in range(n+1)]
     
    def barycentre(points, coeff) : 
      res = np.array([0.,0.])
      for b,P in zip(coeff, points): 
          res += b*P
      return res/sum(coeff)
    
    
    
    ### Changer les points ici 
    points = [[0,0],[1,1],[2,1],[2,0]]
     
     
     
    n = len(points)
    points = np.array(points)
    for P in points : 
        plt.scatter(*P, color = 'black', linewidth = 3)
     
    pas = 0.001
    bezier = []
    for t in np.arange(0, 1 + pas, pas) : 
        bezier.append(barycentre(points, bernstein(n,t)))
    bezier= np.array(bezier)
    plt.plot(bezier[:,0], bezier[:,1])
     
    extremites = np.array([points[0],points[1]])
    plt.plot(extremites[:,0], extremites[:,1])
    plt.show()
    
    
    ### CHANGER PARAMETRE ICI
    t = 0.5
     
     
     
    for P in points : 
        plt.scatter(*P, color = 'black', linewidth = 1)
     
    plt.scatter( *barycentre(points, bernstein(n, t)), linewidth = 20)
    colors = ['red','blue', 'green', 'black']
    points_tmp = np.array(points.copy())
    for i in range(n) : 
        pts = []
        for j in range(len(points_tmp)-1) :
            plt.plot([points_tmp[j,0],points_tmp[j+1,0]], [points_tmp[j,1],points_tmp[j+1,1]], c = colors[i%len(colors)])
            B = barycentre([points_tmp[j],points_tmp[j+1]], [1-t,t])
            plt.scatter(*B, linewidth = 2, c = colors[i%len(colors)])
            pts.append(B)
        points_tmp = np.array(pts)
    
  • @noobey : on sait tous les deux très bien qu'Oshine a voulu mettre la charrue avant les boeufs sur les maths, à faire des espaces euclidiens avant les triangles semblables et des développements limités sans savoir faire des pourcentages. Du coup, ton code, là, je pense que c'est du chinois pour lui et qu'il est incapable de le faire lui même ce qui est le but à long terme que l'on peut attendre de lui ou d'un certifié.

    Je lui conseillerais donc, comme d'habitude, de lire un cours par chapitre avec des exos sur feuille (car au début c'est beaucoup sur feuille qu'on fait des algo, pas besoin d'ordi) puis ensuite, faire ses exos sur feuilles sur PC et enfin, bosser directement sur PC. Le chapitre 1, c'est souvent "variables", donc commencer par ça etc... Vraiment très progressivement sans aller trop vite.
    Parce que là, il va dire "infaisable d'écrire ça le jour J dans la copie" et pour le coup, je suis un peu d'accord si on regarde ta proposition. Par contre, ça peut le motiver à voir la richesse de Python et ce qu'on peut faire avec.
  • Alexique bien vu j'avoue c'est du chinois le programme de Noobey.
    C'est pire que lire une épreuve d'agreg externe de maths.

    En fait les développements limités c'est pas un chapitre qui m'a posé beaucoup de difficultés.
    Les chapitres calculatoires sont ceux qui me posent le moins de souci.
  • Ah non bien sûr que c'est du chinois! C'est juste pour qu'il s'amuse à mettre les paramètres qu'il veut et qu'il voit ce que ça peut donner
    Et c'est plutôt sympa à coder en plus comme algo
  • Et Geogebra est plus adapté pour le dynamique non ? Avec un curseur pour le $t$ qu'on pourrait bouger... ou alors j'ai pas tout suivi :-S

    Ici, un cours qui m'a l'air correct mais pas d'exo (mais tu peux tout exécuter ligne par ligne et voir ce qu'il se passe, donc plutôt pédagogue).
    Quand j'étais prof, je recevais des specimens de manuels. J'avais notamment reçu ce très bon cahier ou encore ce cahier d'algo que je t'invite à feuilleter (cours puis exo sur feuille puis Python). De manière progressive, tu passes d'un pseudo code en français à un code Python pour des choses élémentaires.
    Bon là c'est 2nd mais y'a déjà pas mal de trucs (je pense pas qu'un prof peut faire tout ça en 2nd avec le nombre d'heure qu'il a). Après si tu veux des trucs gratis, cherche en ligne. Tu auras sans mal des cours bien fait, j'ai juste peur que tu manques d'exos d'applications directes et je pense qu'il t'en faut beaucoup !
    Edit : y'en a plein ici !


    Ainsi, si je reprends tes exemples :
    - pour le produit matriciel, ben les matrices sont déjà dans Python donc inutile mais pour apprendre, c'est bien de savoir le faire : il faut simplement faire une boucle for en sommant ce qu'il faut. A voir comment tu considères ta matrice (s'il existe un type pour ça, s'il faut en créer un genre tableau de tableau par exemple)
    - pour tracer des fonctions, noobey a mis des "plot" dans son programme, à toi de regarder de plus près (il faut préciser les points donc le vecteur des abscisses et des ordonnées)
    - pour les suites récurrentes, c'est une fonction récursive mais ça peut se faire avec une boucle for et être plus rapide... un "if" peut être nécessaire si la récurrence de ta suite est soumise à une condition (suite de Syracuse grand classique, c'est n! en général qu'on code pour la première fois en récursif)

    Bref, tout est faisable, mais si tu fais les choses trop vite et dans le désordre, ça va encore être la cata... A toi de voir. Si tu prends des bonnes résolutions mathématiques du genre "tout recommencer de zéro" avec des maths de collège/lycée, ça semble cohérent également de partir de zéro en algo et de faire les choses bien dans l'ordre.
  • Ok merci Alexique je vais commencer par le cours niveau seconde qui a l'air cool.

    Noobey trop stylé votre programme Python je l'ai lancé ::o

    J'ai changé $t$ il ne se passe rien.
    Par contre en ajoutant des points de contrôle la courbe change d'aspect.
  • Je pense qu'il faut rajouter la commande

    plt.show()

    à la fin


    Après je pense que c'est toi qui t'es trompé tu as du oublier de sauvegarder le script avant de le relancer
    Fais du python sur Colab Google c'est pratique
Connectez-vous ou Inscrivez-vous pour répondre.