Compléter la fonction python suivante ...

Shadows Asgard
Modifié (September 2022) dans Analyse
Titre initial "Compléter la fonction Python suivante qui prend n en entrée et renvoie en sortie les valeurs de alph"

[Le titre doit être informatif mais court. Le corps du message est là pour les développements. AD]


Bonjour je m'excuse de vous déranger mais j'ai un problème concernant cet exercice concernant la question 6 où on me demande de '' compléter la fonction Python suivante qui prend n en entrée et renvoie en sortie les valeurs de alpha n et béta n''. Je ne vois vraiment pas comment faire car je suis très nul en informatique. Pouvez-vous m'aider s'il vous plaît ?
Merci d'avance pour votre réponse

Réponses

  • dp
    dp
    Modifié (September 2022)
    As-tu essayé ? Si oui, qu'as-tu fais ? Sinon, ne t'attends pas à recevoir de l'aide de qui que ce soit.
  • Oui j'ai essayé mais je ne comprends pas avec ''mem'' je pense qu'il y a il doit y avoir une histoire de mémorisation c'est-à-dire de qu'on fait une commande pour garder en mémoire les valeurs de alpha et bêta mais je ne comprends pas beaucoup plus, le programme paraît tellement vide il y a tellement peu de commandes que j'ai du mal à comprendre comment on peut faire ce qu'ils demandent avec si peu d'éléments et si peu d'instructions dans le programme.
  • dp
    dp
    Modifié (September 2022)
    À ton avis, que cherches-tu à faire avec ce programme ? Que sais-tu d'$\alpha$ et $\beta$ ? Comment les exprimerais-tu sur ta feuille ? Où cet exercice veut-il t'emmener ? Et plein d'autres questions que tu devrais pouvoir te poser par toi-même.
  • Rescassol
    Modifié (September 2022)
    Bonsoir
    Il s'agit juste de programmer les relations de récurrence sur $\alpha_n$ et $\beta_n$ trouvées à la question 5.
    Cordialement,
    Rescassol
  • D'accord, alors voici ce que je propose comme programme , est-ce correct ?
    Et mise à part cela j'ai un problème avec la question 7a concernant la relation de récurrence d'ordre 2 que je suis censé trouver car je finis bloqué étant donné que j'ai un ''9" qui visiblement ne devrait pas être là car il m'empêche d'écrire mon équation caractéristique. Ma relation de récurrence d'ordre 2 n'est pas bonne ?
  • Rescassol
    Modifié (September 2022)
    Bonjour,

    Que fait on habituellement quand on a $u_{n+1}=a u_n+b$ et qu'on veut se ramener à $v_n=a v_n$ ?
    (suite arithmético-géométrique classique).

    Cordialement,
    Rescassol

    PS: Je n'ai pas vérifié les calculs précédents.

  • gerard0
    Modifié (September 2022)
    Bonjour.
    Le calcul de $\alpha_{n+1}$ et $\beta_{n+1}$ en fonction de $\alpha_{n}$ et $\beta_{n}$ est faux. Fais-le en évitant les lettres $\alpha$ et $\beta$ puisque tu connais leurs valeurs et qu'elle sont même plus rapides à écrire !! Cherche la simplicité.
    Cordialement.
    NB. La question 7 te permet de voir où est l'erreur.
  • gerard0
    Modifié (September 2022)
    A noter : Tu aurais pu tester (*) ton programme pour voir s'il donne les bons résultats pour $\alpha_2$ et $\beta_2$, puis $\alpha_3$ et $\beta_3$, valeurs faciles à calculer directement. Tu aurais aussi pu faire calculer $A^2$ et $A^3$ par un logiciel formel (Wolfram en ligne).
    Vérifier ses calculs, ça s'apprend déjà au collège.
    (*) à la main si tu n'as pas Python. Après tout, tu es plus intelligent qu'un ordinateur, tu peux faire ce qui est facile.
  • Ah oui j'ai re-regardé tout cela à tête reposée et j'avais fait une erreur. Donc les expressions, mon équation caractéristique et mon programme Python sont bons maintenant ?
  • As-tu vérifié ?
  • Oui j'ai vérifié et ça à l'air de fonctionner, pourquoi ?
  • D'ailleurs concernant le programme quand je le rentre dans python via Pyzo, il ne me marque pas de message d'erreur comme lorsqu'un programme est erroné mais le seul truc que je ne comprends pas c'est que quand j'appuie sur ''entrée'' après avoir écrit le programme, il m'affiche en réponse ''...'' Et visiblement il ne renvoie rien alors que je m'attendais à voir écrit alpha=quelque chose avec une valeur et beta=quelque chose avec une valeur.
  • Heu ... je connais mal Python, mais visiblement, tu ne lui as pas demandé de le faire ....
    Et je ne sais pas ce que fait l'instruction "return"
  • nicolas.patrois
    Modifié (September 2022)
    Si tu écris une fonction toute seule sans tester ce qu’elle renvoie si tu lui donnes à manger, c’est sûr que ça ne va pas marcher.
    Exemple, compare :
    def f(x):
        return x*x

    Et :
    def f(x):
        return x*x
    
    print(f(-2))

    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Gérard0, l'instruction "return" en Python à mon avis signifie que l'on veut que la fonction qu'on a défini qui ici s'appelle ''suites'' renvoie les valeurs de ce qu'on met derrière le ''return'' donc ici de alpha et de beta mais il ne les affichent toutefois pas si on ne demande pas au programme qu'il affiche là il renvoie sans afficher pour qu'il affiche les valeurs de alpha et bêta et qu'on puisse les lire sur l'ordinateur il faut mettre une instruction supplémentaire l'équivalent de l'instruction ''disp'' en Scilab qui en Python s'appelle ''print''. Merci beaucoup Monsieur Nicolas Patrois de m'avoir fait comprendre cela car en effet maintenant en ayant fait notamment les instructions print(suites(0)) et print(suites(1)) il me donne bel et bien par exemple alpha1 = 1. Merci beaucoup. Et donc je pense que si le programme Python est bon et tourne alors ça veut dire que le reste notamment mes expressions de alpha n + 1 et beta n+1 et mon équation caractéristique sont correctes désormais ! :-)
  • Une remarque quand même on a :
    $A=-1\,\mathsf{one(4,4)}+3\,\mathsf{eye(4,4)}$ et $A^2=-2\,\mathsf{one(4,4)}+9\,\mathsf{eye(4,4)}$.
    On ne peut pas en déduire que $A^2=-2A+9Id$ car $-2A+9Id=2\,\mathsf{one(4,4)}+3\,\mathsf{eye(4,4)}$ ce qui n'est pas égal à $A^2$.

    Tu peux commencer par calculer $A^2-2A$ en fonction de $\mathsf{one(4,4)}$ et de $\mathsf{eye(4,4)}$ en te rappelant que $\mathsf{eye(4,4)}=Id$.

















  • Ah oui mince merci beaucoup Verdurin en effet j'avais fait une grosse confusion au début et ça fichait en l'air complètement tout le reste dans mon exercice c'est pour ça que j'avais autant de difficultés, mon expression de A carré et donc de Alpha et beta n'était pas bonne mais ça y est j'ai corrigé. Par contre je suis bloqué à la toute dernière question de l'exercice la 8b car je pensais pour la faire, faire une récurrence mais je suis bloqué pour l'hérédité je n'arrive pas à trouver l'égalité notamment à cause des alpha et beta indice - (n + 1) je ne vois pas comment je pourrais récupérer ces indices là. Pouvez-vous m'aider s'il vous plaît ?
  • gerard0
    Modifié (September 2022)
    Bonjour SA : "Gérard0, l'instruction "return" en Python à mon avis signifie ...". Ton avis n'a aucun intérêt. Ce qu'il faut que tu saches, donc dont tu sois sûr, c'est le rôle et la syntaxe de l'instruction "return". Et donc si elle va faire ce que tu veux (*).
    Je ne vais pas apprendre Python (j'ai appris des dizaines de langages autrefois, ça ne m'amuse plus); moi, je n'en ai pas besoin. Par contre, manifestement, ça fait partie de ta formation, et il faut que tu t'y mettes (" je suis très nul en informatique" n'est pas une excuse, seulement l'indice que tu n'as jamais voulu apprendre).
    La base de la programmation est simple : L'ordinateur est bête, très bête, mais obéissant, très obéissant. Il fera exactement ce que tu lui dis de faire, tel que tu le dis, sans interpréter. Donc on définit un algorithme pour préciser tout ce qu'il faut faire et comment (ici, une boucle de calcul des $\alpha_i$ et $\beta_i$ successifs). Puis on va utiliser un langage pour traduire l'algorithme à l'ordinateur. Ce langage (Python dans ton cas), il faut l'apprendre, savoir comment il fonctionne et le sens très précis des mots du langage. On ne peut pas apprendre à ta place, et c'est contraire à la charte de faire tes exercices à ta place.
    Donc au travail !
    (*) dans certains langages, c'est une fin de boucle, dans d'autres une sortie de procédure, une fin de "programme".
  • Shadows Asgard
    Modifié (September 2022)
    Mais oui j'ai regardé, mais j'ai préféré dire ''à mon avis'' en toute modestie, dans le sens, ''d'après ce que j'ai vu dans les ressources que j'ai consultées''. D'ailleurs pour le programme c'est résolu normalement car d'ailleurs il fonctionne et donne des résultats cohérents. Mon problème maintenant n'est plus de l'informatique, il s'agit d'un problème pour la toute dernière question, la question 8)b), que j'ai tenté de faire par récurrence, mais où je suis bloqué dans l'hérédité.
  • Tu peux calculer directement $\bigl(\alpha_{n}A+\beta_{n}Id\bigr)\cdot\bigl(\alpha_{-n}A+\beta_{-n}Id\bigr)$ pour vérifier que le résultat est bien l'identité.
  • Oui sinon c'est ce que j'avais pensé faire étant donné que j'étais bloqué dans l'hérédité pour la récurrence mais seulement quand j'ai tenté de faire ce produit pour obtenir l'identité ça a commencé à me faire des calculs monstrueux et on m'avait dit qu'en général quand les calculs commencent à être beaucoup trop gros pour rentrer sur une même ligne alors c'est qu'il y a un problème de méthode quelque part et que je ne vais pas dans la bonne direction, alors j'ai arrêté... Vous pensez Verdurin que c'était bon comment j'étais parti au brouillon pour la technique du produit ?

    Et pour mon problème de blocage dans l'hérédité, vous ne voyez pas qu'est-ce que je pourrais faire pour me débloquer à tout hasard s'il vous plaît Verdurin ?
  • verdurin
    Modifié (September 2022)
    Des calculs monstrueux ? Je les ai fait sur six lignes.
    Moins que ce qu'il y a sur ton image.
    Et je crois qu'une démonstration par récurrence en prend plus.
  • gerard0
    Modifié (September 2022)
    Bonjour.
    "on m'avait dit qu'en général quand les calculs commencent à être beaucoup trop gros pour rentrer sur une même ligne alors c'est qu'il y a un problème de méthode quelque part".
    Ne jamais écouter "on", c'est le plus gros raconteurs de bobards.
    Et ici, c'est bien un bobard ! En collège, les calculs sont courts, ensuite il n'y a plus de raison que ce soit le cas ... et si ça ne tient pas dans la ligne, il suffit d'écrire beaucoup plus petit et ça tiendra :p
  • celine_L
    Modifié (September 2022)
    C'est un détail mais dans la première question c'est plutôt
    A = a*np.ones((4,4)) + b*np.eye(4)

  • Shadows Asgard
    Modifié (September 2022)
    Mais regardez ça fait des jours que je suis sur cette question, c'est à se taper la tête contre les murs, les calculs que ça donne sont monstrueux, et en plus ça n'aboutit pas car impossible de trouver la matrice identité toute seule comme résultat du produit des 2 matrices comme je suis censé trouver. Qu'est-ce qui ne va pas dans mes calculs ?
  • Oula !
    Recommence à zéro et fais des petits calculs séparés (par exemple, $\alpha_n\times \alpha_{-n}$ pour commencer, puis, etc.) simplifie au maximum les résultats, puis regroupe petit à petit. Par ailleurs, j'ai l'impression que tu va louper quelques simplifications si tu ne sais pas que $(-1)^{-n+1} = (-1)^{n+1}= -(-1)^n$ et ce genre de choses.

Connectez-vous ou Inscrivez-vous pour répondre.