IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Programmation de fonctions


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 25
    Par défaut Programmation de fonctions
    Bonsoir,

    J'ai des soucis avec l'exercice en pièce jointe... Je suis mauvaise en Python mais c'est pour mes études...

    Pour la question 2.a, est-ce une boucle qu'il faut faire ? Pour comparer chaque valeur de l'exposant et renvoyer la plus grande ?

    Mais je n'arrive pas à implémenter ça en Python... Pourriez-vous m'aider svp ?

    D'avance, merci beaucoup.

    Nom : devoir info.png
Affichages : 978
Taille : 160,7 Ko

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par inconnue058 Voir le message
    Pour la question 2.a, est-ce une boucle qu'il faut faire ? Pour comparer chaque valeur de l'exposant et renvoyer la plus grande ?
    Pour obtenir la valeur max d'une liste il existe déjà une fonction : https://docs.python.org/fr/3/library...hlight=max#max mais si je devais écrire moi-même cette fonction j'utiliserais effectivement une boucle...

    Ceci étant dis, je ne crois pas que c'est ce qui est demandé, la valeur max de cette liste correspond à la valeur du plus grand coefficient or ce qui est demandé c'est le degré du polynôme...

    Et dans l’énoncé il précise que cette liste c'est celle des coefficients du polynôme classés dans l'ordre des degrés croissants... Ce que j'en comprend (je ne suis pas sûr d'avoir bien compris) c'est que par exemple cette liste : [7,3,2] correspond au polynôme : 7x^0 + 3x^1 + 2x^2 (2x² + 3x + 7)...

    J'en déduis que le degré du polynôme est égale à : L-1 où L est égale à la longueur de la liste des coefficients du polynôme. De là il est assez simple d'écrire une fonction qui retourne le degré du polynôme en utilisant la fonction qui retourne la longueur d'une liste : https://docs.python.org/fr/3/library...hlight=max#len)

    Voilà c'est juste ce que j'ai compris, je peux avoir mal compris...

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Citation Envoyé par inconnue058 Voir le message
    Pour la question 2.a, est-ce une boucle qu'il faut faire ? Pour comparer chaque valeur de l'exposant et renvoyer la plus grande ?
    On ne te demande pas le coefficient le plus élevé mais le degré du polynôme. Et le degré d'un polynôme est celui de son exposant le plus élevé (ce qui n'est pas la même chose). Par exemple un polynôme f(x)=12 + 7x + 5x² + 2x3 (qui s'écrira dans ton code sous forme d'une liste [12, 7, 5, 2]) a beau avoir le coefficient le plus élevé à 12, il est quand-même de degré 3 (donc longueur de la liste - 1)

    Citation Envoyé par inconnue058 Voir le message
    Mais je n'arrive pas à implémenter ça en Python... Pourriez-vous m'aider svp ?
    Ah désolé mais on n'est pas là pour faire tes exercices à ta place. Déjà c'est contraire aux règles du forum (paragraphe IV-N) et ce n'est pas ça "aider". Et les lieux communs du style "je suis mauvaise en Python" n'ont absolument pas cours ici. Si tu as un exercice c'est que tu es sensée avoir les connaissances pour le résoudre.
    Si vraiment tu as besoin de la solution pour t'aider à comprendre le cheminement logique qui amène au code alors tu utiliseras le corrigé du prof, ce sera plus honnête vis à vis de tes camarades qui, eux vont faire cet exercice par eux-mêmes. Et si vraiment tu es réellement trop mauvaise pour la prog alors autant arrêter immédiatement avant de perdre trop de temps.

    Citation Envoyé par inconnue058 Voir le message
    D'avance, merci beaucoup.
    On ne remercie jamais d'avance (question de savoir vivre). C'est une obligation déguisée derrière un masque de politesse qui met ton interlocuteur dans une position de faiblesse l'incitant à faire ce pour quoi il a été remercié.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 25
    Par défaut
    Bonsoir,

    Merci pour votre réponse.

    Voici en dessous ce que j'ai fait pour l'instant.

    Degre fonctionne.
    Etape ne fonctionne pas : que faudrait-il modifier selon vous ?
    Pour tchebychev, je n'y arrive pas : ici j'ai utilisé du global mais j'ai demandé à mon professeur et il ne veut pas... Comment modifier le programme en mettant du "local" ?
    Il y a apparemment un problème avec la liste de evalue...
    Je n'ai pas encore terminé TraceTchebychev...

    Pourriez-vous m'aider svp ?

    Je précise que T0=1, T1=X, et pour tout entier naturel n supérieur ou égal à 1, T(n+2)=2*X*T(n+1)-Tn.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    # 2a
     
    def degre(L):
        return len(L)-1
     
    # 2b
     
    def etape(L, M):
        M = [0] + [2 * m for m in M]
        len_M, len_L = len(M), len(L)
        T = [
                (M[i] if i < len_M else 0) + (L[i] if i < len_L else 0)
                for i in range(max(len_M, len_L))
        ]
        return T
     
     
    # 2c
     
    def tchebychev(n):
        global T0
        global T1
     
        if n == 0:
            return X0
        elif n == 1:
            return X1
        else:
            T_moins_2 = T0
            T_moins_1 = T1
            for _ in range(1, n):
                T = etap(T_moins_1, T_moins_2)
                T_moins_2 = T_moins_1
                T_moins_1 = T
            return T
     
     
    # 2d
     
    def evalue(P,x):
        if P==[]:
            return(0)
        else:
            b=P[len(P)-1]
            P1=P[0:len(P)-1]
            return(horner(P1,x)*x+b)
     
    # 2e
    def TraceTchebychev(n):
        x = np.linspace (-10,10,100)
        y = # Que mettre ici ?
        plt.plot (x,y)

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 56
    Par défaut Degré du polynôme de coefficients donnés dans L.
    Il faut éliminer tous les 0 en fin de liste avant de répondre si L=[1,2,0] le polynôme s'écrit 1+2x et c'est un polynôme de degré 1, pas de degré 2.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 742
    Par défaut
    Salut,

    Citation Envoyé par inconnue058 Voir le message
    Etape ne fonctionne pas : que faudrait-il modifier selon vous ?
    Ne fonctionne pas doit être précisé par un message d'erreur ou un exemple d'appel de la fonction retournant un résultat faux.
    note: si le résultat est faux c'est que vous ne faites pas ce qui a été demandé dans l'énoncé. Et comme vous devez tester votre fonction avant de l'utiliser vous devez fabriquer une liste de polynomes et de résultats attendus pour tester et vous assurer que çà fonctionne.

    Pour le reste, vous voyez bien que votre code serait bien plus facile à écrire(*) si le degré de vos polynômes était égaux et rien ne vous empêche d'ajouter des 0, le cas échéant au polynôme de degré strictement inférieur.
    (*) plus facile à écrire == plus facile à relire en cas de bug et aussi plus facile à tester.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par inconnue058 Voir le message
    j'ai utilisé du global mais j'ai demandé à mon professeur et il ne veut pas... Comment modifier le programme en mettant du "local" ?
    Dans toute fonction où tu utilises une variable globale, tu lui passes cette variable en paramètre.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 25
    Par défaut
    Merci pour les réponses.

    Finalement j'ai ça pour la 2.c (voir en dessous). Sachant que T0=1, T1=X, et T(n+2)=2X*T(n+1)-Tn.

    Mais ça ne fonctionne pas : pour n=2, on obtient [0,1] alors que T(2)=2X²-1.
    Voyez-vous où est l'erreur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    def tchebychev(n):
        T0=[1]
        T1=[0,1]
        if n == 0:
            return T0
        elif n == 1:
            return T1
        else:
            T_moins2 = T0
            T_moins1 = T1
            for i in range(1,n):
                T = etape(T_moins1, T_moins2)
                T_moins2 = T_moins1
                T_moins1 = T
            return T

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 742
    Par défaut
    Salut,

    Citation Envoyé par inconnue058 Voir le message
    Voyez-vous où est l'erreur ?
    tchebychev utilise etape et la dernière version d'etape postée ne fonctionne pas...
    Pourquoi regarder plus loin?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Mettre a jour un programme en fonction de l'utilisateur
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 02/05/2007, 10h33
  2. Réponses: 1
    Dernier message: 28/03/2007, 15h33
  3. Réponses: 10
    Dernier message: 11/01/2007, 21h45
  4. Programmer une fonction joindre_fichier
    Par leCcsympas dans le forum Réseau
    Réponses: 5
    Dernier message: 03/12/2006, 19h51
  5. Réponses: 2
    Dernier message: 31/05/2005, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo