Advertisement
Guest User

SiranDSinfo2

a guest
Apr 4th, 2020
479
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.96 KB | None | 0 0
  1. def methodedenewton(a,epsilon):
  2.   x=a+1
  3.   while abs(x**2-a)>epsilon: #avec f(x)=x**2-a
  4.     x=x-(x**2-a)/(2*x)
  5.   return x
  6.  
  7. def derive(P):
  8.   Q=[]
  9.   n=len(P)
  10.   for i in range(1,n):
  11.     Q.append(P[i]*i) #on ajoute à Q ai*i à chaque itération en partant de i=1 car la liste Q aura un terme en moins par rapport à P, du fait de la dérivation de la constante dans P
  12.   return Q #Q est la liste correspondant à la dérivée de P
  13.  
  14.  
  15. def primitive(P):
  16.   Q=[1] #Q(0)=1 donc on ajoute au départ la constante 1 à la liste Q
  17.   n=len(P)
  18.   for i in range(0,n): #on part de 0 car on trouve une primitive pour chaque monôme constituant P
  19.     Q.append(P[i]/(i+1))
  20.   return Q #Q est la liste correspondant à la primitive de P telle que Q(0)=1
  21.  
  22. def addition(P,Q):
  23.   n=len(P)
  24.   R=[]
  25.   for i in range(0,n):
  26.     R.append(P[i]+Q[i]) #on additionne les coefficients des monômes de même degré
  27.   return R #R est la liste correspondant au polynôme P+Q
  28.  
  29. def addition_v2(P,Q):
  30.   while len(P)!=len(Q):
  31.     if len(P)<len(Q):  #on ajoute des 0 en fin de liste de P ou Q si les listes n'ont pas la même taille
  32.       P.append(0)
  33.     else:
  34.       Q.append(0)
  35.   R=addition(P,Q) #on applique addition à R
  36.   while R[len(R)-1]==0: #on retire le dernier terme de la liste si c'est 0
  37.     R.pop()
  38.   return R
  39.  
  40. def evalue_naive(P,x):
  41.   a=P[0]
  42.   X=1
  43.   n=len(P)
  44.   for i in range(1,n): #la boucle ne fonctionne pas pour le rang i=0 donc on part de i=1
  45.     X*=x #le degré de x augmente à chaque itération
  46.     a+=X*P[i] #on multiplie (pour châque monôme de degré k) x**k par le coefficient ak et on les somme
  47.   return a
  48.  
  49. def evalue_horner(P,x):
  50.   n=len(P)
  51.   a=P[n-1]
  52.   for i in range(0,n-1):
  53.     a=a*x+P[n-i-2] #d'après la relation de récurrence trouvée
  54.   return a #renvoie alpha_n-1 c'est a dire P(x)
  55.  
  56. def evalue_rapide(P,x):
  57.   a=0
  58.   n=len(P)
  59.   for i in range (n):
  60.     a+=P[i]*x**i #on somme (comme pour evalue_naive) les monômes après avoir évalué
  61.   return a
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement