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 :

maximum de fonction dans un intervalle


Sujet :

Python

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 31
    Points : 16
    Points
    16
    Par défaut maximum de fonction dans un intervalle
    bonjour à tous
    je suis débutant en Python et nouvelle sur ce forum
    je voudrais résoudre un exercice sur le théorème des valeur intermédiaire
    pour cela j'aurai besoin de traduire en python "tant qu'il existe x tel que a<x<b et f(x)=0 alors"
    si il n'y a pas de moyen de le traduire j'ai aussi pensé a calculer le maximum de la fonction dans l'intervalle (a,b)
    le problème c'est que je ne peux pas utiliser la fonction range car je ne veux pas avoir que les entiers de l'intervalle (a,b) mais tous les réelles
    avez vous une idée ?
    j'espère avoir été compréhensible
    merci

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Salut,

    "tant que" se dit while en python. (dans une autre langue aussi)

    Donc, selon les opérations qui feront varier x, tu peux utiliser simplement une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    def my_func(x):
        # retourne soit 0, soit autre chose
        return func(x)
     
    while 1:
        if not a < x < b or my_func(x):
            break
        operations sur x
    et j'ai aussi trouvé ceci sous mon oreiller: http://python.developpez.com/cours/apprendre-python3/

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    bonjour tout d'abbord un grand merci pour ton aide et pour ce cours qui va bien me servir.
    j'ai essayé ton programme mais je crois qu'il ne fait pas exactement ce que je veux mais ca doit etre de ma faute car hier je ne me suis pas exprimée correctement
    je pars avec un intervalle d'ancédant de fonction compris [a,b] et mon but est de réduire l’intervalle à [c,d] et ceci tant que toutes les images des points compris entre c et d ne sont pas nulles.
    J'ai déja écrit toutes les conditions données par l'exercice en et je sais diminuer l'intervale.
    En revanche, je ne sais pas dire " tant que toutes les images compris entre c et d ne sont pas nul....."
    si ce me base sur ce que tu as écris je pourrrais écrire:
    avant mon programme définir ma fonction f(x)
    et dans mon programme écire quelque chose du genre : while ....
    et la je ne sais pas trop comment l'écire car c'est le il existe qui me bloque
    merci pour ton aide

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    en fait dans mon exercice il y a écrit précisément d-c minimal de la fonction ce qui veut dire la même chose il y a peut etre déja une fonction sous pyhton qui le fait je ne sais psa

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    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 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Salut,

    Citation Envoyé par carryPAR Voir le message
    en fait dans mon exercice il y a écrit précisément d-c minimal de la fonction ce qui veut dire la même chose il y a peut etre déja une fonction sous pyhton qui le fait je ne sais psa
    Python est un langage de programmation. Ce que vous voulez est une fonctionnalité "particulière" pour matheux et physiciens. Pas la peine de la chercher dans les bibliothèques standards, ce n'est pas sa place. Il faut chercher dans des bibliothèques externes comme ici dans SciPy.

    Ceci dit, si le but de votre exercice est de mettre en œuvre un algo. qui... il va falloir écrire en français l'algo que vous souhaitez avant d'imaginer comment le coder en Python.

    - W

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    oui oui je l'ai déjà écrit en français !
    j'arrive a tout traduire en python sauf "tant que les images des antécédents en c et d ne sont pas toutes nulles" ie tant qu'il existe un x, c<x<d tel que f(x)=!0
    et c'est pour cela que j'ai besoin d'aide !
    merciii

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    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 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Citation Envoyé par carryPAR Voir le message
    j'arrive a tout traduire en python sauf "tant que les images des antécédents en c et d ne sont pas toutes nulles" ie tant qu'il existe un x, c<x<d tel que f(x)=!0
    et c'est pour cela que j'ai besoin d'aide !
    "tant qu'il existe un x, c<x<d tel que f(x)=!0" doit être traduit en algo. avant de pouvoir coder (l'algo.) en Python.
    On pourra vous aider à coder mais sans avoir défini l'algo. (et il y en a plusieurs), c'est même pas la peine d'essayer.

    - W

  8. #8
    Membre averti
    Avatar de sweetasnz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 212
    Points : 375
    Points
    375
    Par défaut
    oui, il te faut d'abord un algo, par exemple :

    pour tous x :
    tant que f(x) != 0
    alors je continue à travailler et je mets à jour ma function f(x)
    je recalcule tous les f(x) et je m'arrête quand ma condition est vraie

    en résumé, on pourrait imaginer qq chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    # on défini le nb d'image à tester <=> le nb de "f(x)" <=>le nb de "x"
    # ex : 
    liste =[1,2,3,4,5]
    compteur = N
    # tant que tous les f(x) ne sont pas nuls <=> tant que mon compteur != 0
    while N != 0 :
      for x in liste:
         f(x) = myFunc(x)
         if f(x) == 0:
            N -= 1
      if N !=0:
         myFunc() = anotherFunc()
    Il faut peut-être mettre à jour au fure et à mesure ta fonction myFunc() pour qu'elle s'adapte à la résolution de "tous les f(x) = 0" (ça dépend comment le "while" termine : soit quand N =0 il sort tout de suite, soit quand N=0 et qu'il finit de boucler : voir doc sur le "while")
    par exemple : si on trouve un f(x) != 0 alors myFunc() = anotherFunc() ...
    bref, avec ce que j'ai compris de ton problème, ça peut te donner une idée sur l'ago et le code
    N'ayant ni la science infuse, ni les éléments suffisant pour apprécier ton vrai problème, je peux aussi me tromper dans ma cinématique
    bonne chance

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    d'accord mais qd vous dites on défini le nombre d'image à tester ça signe qu'on ne test pas pour tous les x compris entre c et d non ?
    parce que moi c ça que je voudrais faire....

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Est-ce-que cet exemple ressemble à ce que tu veux faire:
    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
     
    # -*- coding: utf-8 -*-
     
    # Pour une suite de valeurs allant de a à b nous voulons extraire la suite
    # des valeurs répondant à f(x)=0. Dans cet exemple, les nombres pairs de c à d.
    #
    # [7, 5, 13, 27, 4, 6, 84, 2, 164, 9, 5, 73]
    #  ^             ^             ^          ^
    #  a             c             d          b
     
     
    values = [7, 5, 13, 27, 4, 6, 84, 2, 164, 9, 5, 73]
    def func(x):
        return x % 2
     
    c = 0
    for idx, val in enumerate(values):
        if not func(val):
            c += 1
     
        elif c:
            break
     
    print("Suite des nombres pairs: values[%s:%s] " % (idx-c, idx))
    print(values[idx-c:idx])
    ?

    Cela suppose que les valeurs recherchées ne sont pas dispersées dans l'ensemble, mais c'est ce que tu sembles dire.

  11. #11
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Bonjour à tous ! Et merci a tous de votre aide !
    Je pense que je ne suis pas clair. J'ai un intervalle [c,d] je veux que tant qu'il existe un x compris dans cet intervalle et tel que f(x)=!0 alors on fait...x n'est pas forcement un entier par exemple si nous sommes dans [4,6] x peut tres bien prendre la valeur 4,83 ou 5 tant que la condition f(x)=!0 est respecté.
    Je me trompe peut etre et n'hesitez pas a me le dire si c'est le cas mais j'ai l'impression que c'est algorithe prenne l'intervalle y definisse les entier compris dans cet intervalle et teste f(x) pour ces derniers et qu'il ne regarde pas tous les reelles de l'intervalle....
    J'ai aussi pense de mon cote un algo qui ferait calculer N valeur de f(x) pour N x compris dans l'intervale. Mais cette méthode pose le même probleme.
    Je ne sais plus que faire

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    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 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Citation Envoyé par carryPAR Voir le message
    J'ai aussi pense de mon cote un algo qui ferait calculer N valeur de f(x) pour N x compris dans l'intervale. Mais cette méthode pose le même probleme.
    Je ne sais plus que faire
    Tant que l'algorithme n'est pas défini, pianoter sur le clavier ne vous mènera nulle part.

    - W

  13. #13
    Membre averti
    Avatar de sweetasnz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 212
    Points : 375
    Points
    375
    Par défaut
    Citation Envoyé par carryPAR Voir le message
    Bonjour à tous ! Et merci a tous de votre aide !
    Je pense que je ne suis pas clair. J'ai un intervalle [c,d] je veux que tant qu'il existe un x compris dans cet intervalle et tel que f(x)=!0 alors on fait...x n'est pas forcement un entier par exemple si nous sommes dans [4,6] x peut tres bien prendre la valeur 4,83 ou 5 tant que la condition f(x)=!0 est respecté.
    Je me trompe peut etre et n'hesitez pas a me le dire si c'est le cas mais j'ai l'impression que c'est algorithe prenne l'intervalle y definisse les entier compris dans cet intervalle et teste f(x) pour ces derniers et qu'il ne regarde pas tous les reelles de l'intervalle....
    J'ai aussi pense de mon cote un algo qui ferait calculer N valeur de f(x) pour N x compris dans l'intervale. Mais cette méthode pose le même probleme.
    Je ne sais plus que faire
    j'ai envie de te dire qu'en programmation, tu travailles en espace fini, c'est à dire que tu définis, comme en math, ton 1. "domaine de définition", 2. "ton incrémentation", en gros en [2,4], en théorie tu as une infinité de nombres réels, comme 2.156258469554556... mais en programmation, il faut bien-sur travailler en espace "fini" et l'utilisation de méthodes numériques, dichotomies pour arriver à la solution f(x)=0, etc sont dépendantes de ce que tu veux comme précision et du temps de calcul que tu veux consacrer.

    D'ailleurs, la 1ère question serait :comment résous-tu (numériquement) l'équation f(x)=0 ?

    soit, tu commences avec des valeurs réelles que tu définis toi-même (ex : [2,2.2,3,3.15,3.56,4]) et tu résous ton PB (déjà exposé plus haut), soit tu en parles avec ton/ta prof, ton/ta tuteur, pour préciser tout ça.
    Cependant, comme le dis wiztricks, tant que tu n'as pas d'algo, c'est que tu n'as pas saisi tous les tenants de ton PB et surtout la façon de le résoudre. Je trouve que même si tu n'arrive pas à programmer dans les temps, le fait de poser le PB et les questions sont le plus intéressant dans tout ça. Ma philosophie : Programmer tête baissée, c'est aller droit dans le mur à coup sur

    ps : et donne nous l'énoncé original de ton exercice, ça aiderait à comprendre.

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    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 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Salut,

    Il y a un autre post concernant un exercice semblable ici. L'auteur à donné l'énoncé de l'exercice et y mentionne l'algorithme à utiliser: méthode de la sécante.

    A partir de là on peut essayer de vous aider à apprendre...(voir la réponse que j'ai faite) avant non.

    Si vous voulez une solution toute faite, vous pourrez la trouver avec un peu de recherche avec votre moteur favori, mais sans savoir ce qu'on cherche...

    - W

Discussions similaires

  1. Réponses: 15
    Dernier message: 10/11/2018, 21h19
  2. Réponses: 3
    Dernier message: 07/07/2015, 18h07
  3. Synchronisation de deux fonctions dans un intervalle de temps
    Par florentino dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 03/01/2008, 12h50
  4. Synchronisation de deux fonctions dans un intervalle de temps
    Par florentino dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 22/12/2007, 22h45
  5. impossible d'utiliser ma fonction dans un insert
    Par caramel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/04/2003, 15h04

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