petit problème dans mon programme python
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

petit problème dans mon programme python



  1. #1
    souchi6

    petit problème dans mon programme python


    ------

    Bonjour, je me permets de faire appel à votre aide concernant un éxo de programmation python.
    Voici l'énoncé de l'éxo:
    On appelle fonction logistique la fonction définie sur [0:1] par : f(x)=p.x.(1-x), où p est un paramètre réel. On impose à p d'être compris entre 0 et 4 afin que l'image de f soit contenue dans le segment [0:1]. Une suite logistique est une suite récurrente définie par u0 appartenant à [0:1], et un+1=f(un), où f est la fonction logistique définie ci-dessus.
    Cette suite intervient en dynamique des populations. un représente alors le rapport entre l'effectif de la population au temps n et l'effectif maximum théorique de la population. La modélisation par la fonction logistique tient compte de deux contraintes : le facteur p.x permet de prendre en compte l'accroissement naturel de cette population. Le facteur (1-x) indique lui que si la population est trop nombreuse, les ressources naturelles lui manquent, et elle a tendance à diminuer. Bien que la suite logistique semble très simple, elle peut, suivant les valeurs de p, avoir un comportement très étrange. On se propose ici de découvrir certaines de ces propriétés.
    On peut distinguer 4 types de comportement de la suite logistique, suivant que p est pris dans les intervalles suivant : 0<p≤1 ; 1<p≤2 ; 2<p≤3 ; 3<p≤3,45 ; 3,45<p≤3,57 et 3,57<p≤4.
    1.Écrire un algorithme qui calcule les valeurs de la suite logistique avec les contraintes suivantes :
    •Définit explicitement la fonction logistique sous le nom Logistique.
    •Définit une fonction Suite prenant en arguments p, u0, nmax (indice maximal de la suite) et un tableau de taille nmax+1 et remplissant ce tableau avec les valeurs u0 à unmax.
    •Demande à l’utilisateur les valeurs u0 et nmax puis 6 valeurs du paramètre p correspondant aux 6 intervalles donnés ci-dessus. L’algorithme devra vérifier que la première valeur de p appartient au premier intervalle (]0:1]), la deuxième valeur à l’intervalle ]1:2], etc. Dans le cas contraire, une nouvelle saisie sera demandée à l’utilisateur (jusqu’à avoir une valeur correcte ...).
    •Génère 6 tableaux de taille nmax+1 (ou une matrice de taille 6×(nmax+1)) contenant les valeurs de la suite pour les 6 valeurs de p saisies.
    •Affiche à l’écran le contenu des 6 suites, valeur par valeur sur 7 colonnes avec le format suivant pour chaque ligne :
    <index n> <un pour p1> <un pour p2> ... <un pour p6>

    Voila le programme que j'ai commencé :

    Code:
    import numpy as np
    def Suite(U0,p,nmax):
     tab=np.zeros(nmax+1)
     n=0
     n=n+1
     while (n<nmax):
        tab[0]==U0
        tab[n]=p*tab[n-1]*(1-tab[n-1])
        print tab
     
    
    
    
    U0=input('rentrer la valeur de U0')
    while U0<0 or U0>1:
        U0=input('rentre une valeur de U0 dans les conditions')
    nmax=input('rentrer la  valeur de nmax')
    tabn=np.zeros(nmax+1)
    for i in range(0,nmax+1):
     tabn[i]=i
    
    
    p1=input('rentrer la valeur de p1')
    while p1<=0 or p1>1:
        p1=input('rentrer valeur de p1 dans les conditions')    
    
    p2=input('rentrer la valeur de p2')
    while p2<=1 or p2>2:
        p2=input('rentrer une valeur de p2 dans les conditions')    
       
    p3=input('rentrer la valeur de p3')    
    while p3<=2 or p3>3:
        p3=input('rentrer une valeur de p3 dans les conditions')    
        
    p4=input('rentrer la valeur de p4')
    while p4<=3 or p4>3.45:
        p4=input('rentrer une valeur de p4 dans les conditions')    
    
    p5=input('rentrer la valeur de p5')
    while p5<=3.45 or p5>3.57:
        p5=input('rentrer une valeur de p5 dans les conditions') 
    
    p6=input('rentrer la valeur de p6')
    while p6<=3.57 or p6>4:
        p6=input('rentrer une valeur de p6 dans les conditions')    
    
    print tabn
    Suite(U0,p1,nmax)
    Suite(U0,p2,nmax)
    Suite(U0,p3,nmax)
    Suite(U0,p4,nmax)
    Suite(U0,p5,nmax)
    Suite(U0,p6,nmax)

    -----

  2. #2
    souchi6

    Re : petit problème dans mon programme python

    J'ai en fait deux problèmes.
    Le premier est que les 6 tableaux ne s'affichent pas ou alors c'est une infinité de tableaux qui s'affichent ne contenant que les valeurs 0 alors que j'ai l'impression de bien avoir codé l'équation qui est sensé remplacer les 0 en valeurs de la suite.
    Le deuxième est que je ne sais pas rendre ses tableaux lignes en tableaux colonnes comme il m'est demandé dans le dernier point.
    Merci d'avance pour vos réponses.....

  3. #3
    souchi6

    Re : petit problème dans mon programme python

    L'énoncé peut paraître compliqué à première vue mais ne sert en fait qu'à définir les différentes variables et équations de mon programme...

Discussions similaires

  1. petit problème algorithme euclide (python)
    Par souchi6 dans le forum Programmation et langages, Algorithmique
    Réponses: 12
    Dernier message: 23/10/2012, 21h10
  2. Programme en Python
    Par invitec13ffb79 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 19/09/2011, 19h14
  3. Execution d'un programme avec python
    Par invite242c100d dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 06/09/2004, 16h47