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
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 ?
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.