Partage
  • Partager sur Facebook
  • Partager sur Twitter

repose sur des exercices python

Sujet résolu
    2 janvier 2017 à 21:16:44

    Bonsoir, j'aimerai savoir si c'est juste ses reponse de ses exo TP
    exo 1:
    #Déterminant d’une matrice n*n
    import numpy as np
    import pylab as pl
    #Matrice
    #Programmer la manière "lourde". Définir une fonction genereM qui possède
    #comme argument le rang n et qui retourne la matrice Mn. On donne
    #ici une indication : on pourra, pour cela, utiliser deux structures itératives
    #for ainsi qu’un branchement conditionnel.
    print ('question1')
    N=10 #taille
    def fctgenereM(N):
    	M=np.zeros((N,N)) #Matrice
    	for i in range (N):
    		for j in range (N): 
    			if i==j:
    				M[i,j]=2
    			if i==j+1:
    				M[i,j]=1 
    			if i==j-1:
    				M[i,j]=1
    	return M
    for i in range (8):        
    	print(fctgenereM(i)) 
     #Appel de fonction
    Mlourd = fctgenereM(n)
    print ('Mlourd\n', Mlourd)
    
    #Programmer la manière "habile"
    print ('question2')
    dia0=2.0*np.ones(n)
    dia1=np.ones(n-1)
    Mleger=np.diag(dia1,1)+np.diag(dia1,-1)+np.diag(dia0)
    print (('Mleger\n'), Mleger, np.linalg.det(Mleger))
    #programmer une fonction calculDn
    #qui a pour argument le rang n de la matrice Mn, et qui retourne directement
    #son déterminant Dn
    print ('question3')
    def calculDn(n):
        return np.linalg.det( \
                         np.diag(np.ones(n-1),1) + \
                         np.diag(np.ones(n-1),-1)+ \
                         np.diag(2.0*np.ones(n)))
        
    #Calculer et afficher Dn pour n E {1; 2;...50}
    for i in range(1,50):
        print (calculDn(i))
    
    exo 2:
    #Développement en série entière
    #Programmer une fonction factorielle. Cette fonction aura pour argument
    #un entier n et retournera n!
    print('question1')
    import numpy as np
    import pylab as pl
    def factorielle(n):
        if n == 0:
            return 1.0
        else:
            return float(n) * factorielle(n-1)
    print('question2')
    #Programmer une fonction decomp qui retourne la décomposition en série
    #entière de la fonction sinus à l’ordre N. Cette fonction aura pour argument
    #un entier N, troncature de la somme infinie ci-dessus, ainsi qu’un tableau
    #contenant l’intervalle d’étude [a; b] discret souhaité
    def decomp(x,N):
        res = np.zeros(x.shape)
        for i in range(N+1):
            res += (-1.0)**i * x**(2*i+1) / (factorielle(2*i+1))
        return res
    #On choisit pour la suite a = 0, b = 4 et 50 points de discrétisation. Appeler
    #successivement la fonction decomp pour N=5, puis 10, puis 20, et stocker
    #chaque résultat dans une variable.
    xexact = np.linspace(0,4*np.pi,50)
    yexact = np.sin(xexact)
    ydec02 = decomp(xexact, 2)
    ydec05 = decomp(xexact, 5)
    ydec10 = decomp(xexact,10)
    ydec20 = decomp(xexact,20)    
    
    #Sur une figure, superposer ces trois de décomposition au cas théorique
    pl.figure(figsize=(12, 6))
    pl.plot(xexact, yexact, color="blue", linewidth=1.0, \
                            linestyle="-" , label="sinus")
    pl.plot(xexact, ydec02, 'o', color="yellow", label="DSE N=2")
    pl.plot(xexact, ydec05, 'o', color="red" , label="DSE N=5")
    pl.plot(xexact, ydec10, 'o', color="blue" , label="DSE N=10")
    pl.plot(xexact, ydec20, 'o', color="green" , label="DSE N=20")
    pl.xlim(0, 4*np.pi)
    pl.ylim(-5, 6)
    pl.xlabel("x")
    pl.ylabel("y")
    pl.legend(loc='best')
    pl.title("Decomposition en serie entiere de la fonction sinus")
    # pl.savefig('DSE-sinus.pdf')
    pl.show()

    -
    Edité par OMAR MABROUK 002 12 janvier 2017 à 1:17:57

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      2 janvier 2017 à 22:28:35

      Salut,

      Je t'invite à éditer ton post pour remettre le code correctement en te servant de la balise </> appropriée.

      Ensuite, pourrais-tu être plus clair sur ta demande ? Qu'attends-tu de nous ?

      • Partager sur Facebook
      • Partager sur Twitter

      repose sur des exercices python

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown