Graphe d'une probabilité (python)

lorentz
Modifié (June 2022) dans Informatique théorique
Bonsoir
J'ai un code en python qui doit normalement calculer une probabilité, j'ai bien un résultat qui s'affiche (sur jupyter) mais lorsque j'essaie de visualiser mon graphe, je n'ai rien. Je ne sais pas si quelqu'un peut me proposer un remède svp.
Cordialement.
import matplotlib.pyplot as plt
import math
import numpy as np

def f(n):
    fact=1
    if n != 0:
        for i in range(1,n+1):
            fact=fact*i
    return fact

def k_parmi_n(k,n):
    return f(n)/(f(k)*f(n-k))

def proba_binom(n,p,k):
    return k_parmi_n(k,n)*p**k*(1-p)**(n-k)

def loi_bino(n,p):
    plt.bar([i for i in range(n+1)],[proba_binom(n,p,k) for k in range(n+1)])
    plt.plot([n*p-math.sqrt(n),n*p-math.sqrt(n)],[0,0.1],'r-')
    plt.plot([n*p+math.sqrt(n),n*p+math.sqrt(n)],[0,0.1],'r-')
    plt.show()

def graph(k,p):
    plt.close()
    X=[n for n in range(10,k+1)]
    plt.plot(X,p2(k,p),'r.')
    plt.plot([10,k],[p*(1-p),p*(1-p)],'b-')
    plt.show()

sum([proba-binom(10,0.55,i) for i in [0,2,8,10]])

Réponses

  • Lucas
    Modifié (June 2022)
    Bonjour
    Il faut que tu appelles ta fonction graph() sinon python ne fait rien effectivement. Par ailleurs p2 n'est pas défini.
  • lorentz
    Modifié (June 2022)
    Justement il est là le problème je ne sais pas définir p2 de paramètre k et p et qui est censé renvoyer la liste des p1(n,p) pour tous les entiers entre 10 et k et par ailleurs je ne sais comment on appelle la fonction graph():
    import matplotlib.pyplot as plt
    import math
    import numpy as np

    def f(n):
        fact=1
        if n != 0:
            for i in range(1,n+1):
                fact=fact*i
        return fact

    def k_parmi_n(k,n):
        return f(n)/(f(k)*f(n-k))

    def proba_binom(n,p,k):
        return k_parmi_n(k,n)*p**k*(1-p)**(n-k)

    def loi_bino(n,p):
        plt.bar([i for i in range(n+1)],[proba_binom(n,p,k) for k in range(n+1)])
        plt.plot([n*p-math.sqrt(n),n*p-math.sqrt(n)],[0,0.1],'r-')
        plt.plot([n*p+math.sqrt(n),n*p+math.sqrt(n)],[0,0.1],'r-')
        plt.show()

    def graph(k,p):
        plt.close()
        X=[n for n in range(10,k+1)]
        plt.plot(X,p2(k,p),'r.')
        plt.plot([10,k],[p*(1-p),p*(1-p)],'b-')
        plt.show()

    sum([proba-binom(10,0.55,i) for i in [0,2,8,10]])

    def p1(n,p):
        return sum([proba_binom(n,p,i) for i in range(10) if abs(i-n*p)>=math.sqrt(n)])
Connectez-vous ou Inscrivez-vous pour répondre.