Soyez le premier à donner votre avis sur cette source.
Vue 759 fois - Téléchargée 24 fois
print("Méthode de Ruffini-Horner : division d'un polynome par (x - x0)") def intInput(txt):return int(input(txt+" : ")) def floatInput(txt):return float(input(txt+" : ")) def signe(x):return "-" if x < 0 else "+" n = intInput("Degré du polynôme") a = floatInput("Racine du polynôme") p = (n+1)*[0] for i in range(0,n+1): p[n-i]=floatInput("Coefficient de x^"+str(n-i)); for i in range(0,n+1): if p[n-i]!=0: if n-i==0: print(signe(p[n-i])+" "+str(abs(p[n-i])),end=""); else: print(signe(p[n-i])+" "+str(abs(p[n-i]))+" x^"+str(n-i),end=" "); print(" = ") q = n*[0] q[n-1] = p[n] j = n-2 while j > -1: q[j] = p[j+1]+a*q[j+1] j=j-1 #for i in range(0,n): # print("Coefficient de x^"+str(n-1-i)+" : ",q[n-1-i]) print("(x "+signe(-a)+" "+str(a)+")(",end="") for i in range(0,n): x=q[n-1-i] y=str(abs(x)) if x==0:continue if n-1-i!=0: print(signe(x)+" "+y+" x^"+str(n-1-i),end=" ") else: print(signe(x)+" "+y,end="") print(")n") ######################## # Equations de degré 3 # ######################## import math # pour sqrt cos et acos import numpy # pour cbrt # a différent de 0 def eq3(a,b,c,d): # az³ + bz² + cz + d = 0 # calcul de x³ + px + q = 0 avec z = x - b/3a p = c/a-b*b/(3*a*a) q = 2*b*b*b/(27*a*a*a)+d/a-b*c/(3*a*a) Δ = q*q/4+p*p*p/27 if Δ<0.0: # 3 solutions réelles dont une # r=math.sqrt(-p*p*p/27) # t=math.acos(-q/(2*r)) t=math.acos((3*q/(2*p))*math.sqrt(-3/p)) x=2*math.sqrt(-p/3)*math.cos(t/3) else: # une seule solution réelle x δ=math.sqrt(Δ) u=numpy.cbrt(-q/2+δ) v=numpy.cbrt(-q/2-δ) x=u+v z=x-b/(3*a) return z # retourne une solution réelle if n==3: print("p : ",p[::-1]) # p = (x-x0)q print("q : ",q[::-1]) print() z = eq3(p[3],p[2],p[1],p[0]) print("Racine : ",z) print("Vérification : 0 ≈",p[0]*z*z*z+p[1]*z*z+p[2]*z+p[3]) intInput("Entrée pour terminer")
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.