Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Répondre
Résumé de la discussion (messages les plus récents en premier)
- LEG
- 17-08-2021 12:47:04
Re :
Ok , c'est impeccable, je viens de refaire un copier collé...plus d'érreur.
@+
- yoshi
- 17-08-2021 12:26:15
Re,
Non, non, le message d'erreur dit que la fonction cherche_racines n'existe pas...
Je ne cherche pas à comprendre pourquoi...
Je viens de supprimer le prog et ai refait un copier/coller.
Mais ne modifie pas une version, remplace-là purement et simplement par la plus récente ou enregistre sous un autre nom...
Pas vraiment doublon, je vais voir si je peux factoriser...
@+
- LEG
- 17-08-2021 12:16:37
je pensais que l'erreur venait de ce double
if expo_min==d-1:
if d==1:
traite_binome_degre1(Coff[d][0],Coff[d-1][0])
return 0,0,0,expo_min
else:
return 1,a0,Coff[-1][0],expo_min ## ici ##
else:
return 1,a0,Coff[-1][0],expo_min ## doublon ?##
mais cela ne change rien : NameError: name 'cherche_racines' is not defined
Par contre si je fais le test avec l'ancien programme tout marche bien, la différence se situe uniquement à l'affichage des racines éventuelle, que j'ai en plus par rapport à ton affichage:
- LEG
- 17-08-2021 11:57:14
Bonjour @Yoshi
j'ai donc modifier l'ancien programme que tu m'as envoyé et voila ce que j'obtiens comme erreur :
:
******************************
* Résolution des Polynômes *
* dans Z et Q *
* v3.5 *
******************************
Degré du polynôme (entier naturel >= 1 attendu) : 3
Entrer le coefficient a0 (entier relatif attendu >=0 ou <=0) : 8
Entrer le coefficient a1 (entier relatif attendu >=0 ou <=0) : 30
Entrer le coefficient a2 (entier relatif attendu >=0 ou <=0) : 37
Entrer le coefficient a3 (entier relatif attendu >=0 ou <=0) : 15
-----------------------
ANALYSE
Votre (fonction) Polynôme est :
P(X) = 15X^3+37X^2+30X+8
Diviseurs de 8 et 15 :
D(a0) = [-8, -4, -2, -1, 1, 2, 4, 8]
D(a3) = [-15, -5, -3, -1, 1, 3, 5, 15]
Racines Potentielles à tester :
(coefficients ai/an tous positifs, racines - si elles existent - toutes négatives)
{-8, -4, -8/3, -2, -8/5, -4/3, -1, -4/5, -2/3, -8/15, -2/5, -1/3, -4/15, -1/5, -2/15, -1/15}
Traceback (most recent call last):
File "/usr/lib/python3.9/idlelib/run.py", line 559, in runcode
exec(code, self.locals)
File "/home/gilbert/Programmes/Python/Resolution polynômes dans Z et Q_v3_4.py", line 246, in <module>
Sol,nb_s=cherche_racines(CRP,Coeff,0)
NameError: name 'cherche_racines' is not defined
>>>
- yoshi
- 17-08-2021 10:19:09
Bonjour,
Je ne pense qu'on ne reverra pas (je l'espère) notre ami (12e jour de silence), alors je pense que je peux poster mon code légèrement modifié :
#!/usr/bin/python
# -*- coding: utf-8 -*-
from fractions import Fraction
from math import sqrt
def titre():
print(" ******************************")
print(" * Résolution des Polynômes *")
print(" * dans Z et Q *")
print(" * v3.5 *")
print(" ******************************")
print("\n")
def Entree_Coeff_Polynome():
Coff,Signes_plus,Signes_alt,Tous_plus,Alternes,sgn=[],[],[],0,0,0
while True:
try:
d=int(input("Degré du polynôme (entier naturel >= 1 attendu) : "))
except ValueError:
print ("Erreur. Recommencez s'il vous plaît, vous n'avez pas entré un nombre entier valide !\n")
if d<0:
print("Erreur. Vous devez entrer un entier naturel >=1). Recommencez s'il vous plaît !\n")
else:
print()
break
for i in range(d+1):
try:
c=int(input("Entrer le coefficient a"+str(i)+" (entier relatif attendu >=0 ou <=0) : "))
except ValueError:
print ("Erreur. Recommencez s'il vous plaît !\n")
if i==0:
variable=""
c0=c
elif i==1:
variable="X"
else:
variable="X^"+str(i)
Coff.append((c,variable))
c0=c
Signes_plus.append(0) if c==0 else Signes_plus.append(1-2*(c<0))
nb_zr=0
while Coff[nb_zr][0]==0:
nb_zr+=1
Tous_plus=(abs(sum(Signes_plus))==d+1-nb_zr)
if 0 in Signes_plus[nb_zr:]:
Alternes=False
else:
c0=Signes_plus[nb_zr]
for c in Signes_plus[nb_zr+1:]:
Signes_alt.append(1) if c*c0<0 else Signes_alt.append(0)
c0=c
Alternes=(sum(Signes_alt)==d-nb_zr)
sgn=Tous_plus-Alternes
return Coff,d,nb_zr,sgn
def Traite_a0_nul(Coff,d,Poly,expo_min):
a,flag=Coff[0][0],0
Deg=str(d)+["er","nd","e"][d-1+(3-d)*(d>2)]
if expo_min==d:
print ("\n Votre monôme du "+Deg+" degré admet 0 comme solution dans N")
return 0,0,0,expo_min
else:
a0,a1=Coff[expo_min][0],Coff[expo_min+1][0]
c1="1" if abs(a0)==1 else ""
c2=str(abs(a1)) if abs(a1)==1 else ""
print("\n /!\ Factorisation possible par X"+("^"+str(expo_min))*(expo_min>1),end="")
print(", on prend", a0,"pour a0 :")
print ("P(X) = X"+("^"+str(expo_min))*(expo_min>1)+"(",end="")
Poly=Poly.lower()
for i in range(d,expo_min-1,-1):
expo=i-expo_min
Poly=Poly.replace("x^"+str(i),"X^"+str(expo))
if expo_min==1:
c1="1" if abs(a0)==1 else ""
c2=str(abs(a1)) if abs(a1)==1 else ""
Poly=(Poly.replace("x",c1))
Poly=(Poly.replace("X^1","X"))
print(Poly+")")
return 1,a0,Coff[-1][0],expo_min
else:
Poly=(Poly.replace("X^0",c1))
Poly=(Poly.replace("X^1","X"))
print(Poly+")")
return 1,a0,Coff[-1][0],expo_min
if expo_min==d-1:
if d==1:
traite_binome_degre1(Coff[d][0],Coff[d-1][0])
return 0,0,0,expo_min
else:
return 1,a0,Coff[-1][0],expo_min
else:
return 1,a0,Coff[-1][0],expo_min
def traite_binome_degre1(a0,an,zero):
Ens=[" Z. X ="," Q. X ="]
r=-Fraction(an,an)
print("P(",end="")
if r.denominator==1:
j=0
x=str(-r.numerator)
else:
j=1
x=str(-r.numerator)+"/"+str(denominator)
mx=len(x)
if zero=="z":
print("P(0)".ljust(mx+3)+" = 0. Solution dans"+Ens[0]+". X = 0")
print("P("+x+")".ljust(mx+3)+" = 0. Solution dans"+Ens[j]+". X = "+x+".")
return 0
def Recherche_diviseurs(a0,an):
DV=[]
for c in [a0,an]:
fin=int(sqrt(abs(c)))
L,L1=[],[]
for j in range(1,fin+1):
if c%j==0:
L.append(j)
if c//j not in L:
L.append(c//j)
for c in L:
if c!=0:
L1.append(-c)
A=sorted(L1+L)
DV.append(A)
return DV
def Affiche_polynome(Cf,d):
# Affichage du Polynôme par ordre de puissances décroissantes
Poly=""
print ("P(X) =",end=" ")
for i in range(d,-1,-1):
c,variable=Cf[i]
if c!=0:
if i==0:
c="+"+str(c) if c>0 else str(c)
else:
if abs(c)==1:
if i==d:
c="" if c==1 else "-"
else:
c="+" if c==1 else "-"
else:
if i==n:
c=str(c)
else:
c="+"+str(c) if c>0 else str(c)
Poly+=c+variable
print (Poly)
return Poly
def compilation_racines_potentielles(D,repartition_sgn):
R=[]
for c in D[0]:
for d in D[1]:
frac=Fraction(c,d)
if repartition_sgn == -1:
if frac >0 and not frac in R:
R.append(frac)
elif repartition_sgn==0:
if not frac in R:
R.append(frac)
R.append(-frac)
else:
if frac <0 and not frac in R:
R.append(frac)
R=sorted(R)
return R
def affichage_toutes_racines_potentielles(RP,repartition_sgn):
print(" Racines Potentielles à tester :")
Commente=["(coefficients à signes alternés, racines - si elles existent - toutes positives)"]
Commente.append("")
Commente+=["(coefficients ai/an tous positifs, racines - si elles existent - toutes négatives)"]
if abs(repartition_sgn)==1:
print(Commente[repartition_sgn+1])
print ("{",end="")
mx,lg=0,len(RP)
for i in range(lg):
f=RP[i]
fr=str(f.numerator) if f.denominator==1 else str(f.numerator)+"/"+str(f.denominator)
mx=max(mx,len(fr))
if f !=RP[-1]:
print(fr,end=", ")
else:
print(fr,end="}")
return mx
def cherche_racines(RP,Coeff,nb_s):
Sol=[]
for r in RP:
S,i=0,0
for c,var in Coeff:
S+=c*r**i
i+=1
if S.numerator==0:
Sol.append(r)
nb_s+=1
Sol=sorted(Sol)
return Sol,nb_s
def Affiche_Resultats(Sol,mx,nb_s,expo_min):
# Affichage racines
print ("\n\n Affichage des Racines éventuelles :")
complement,Ens=" = 0. Solution dans ",[" Z : "," Q : "]
if len(Sol)>0:
if expo_min>0:
Sol.append(Fraction(0,1))
Sol = sorted(Sol)
for r in Sol:
if r.denominator==1:
x=str(r.numerator)
j=0
else:
x=str(r.numerator)+"/"+str(r.denominator)
j=1
debut="P("+x+")"
print(debut.ljust(mx+3)+complement+Ens[j]+"X = "+x)
else:
print("\n - Pas de solutions dans Q ni dans Z -")
#Programme principal
while True:
titre()
mx,indice,Zero,rep=0,0,[],""
Coeff,n,expo_min,signes_rac=Entree_Coeff_Polynome()
print("\n ----------------------- \n")
print(" ANALYSE\n")
print ("\n Votre (fonction) Polynôme est :")
Poly=Affiche_polynome(Coeff, n)
if Coeff[0][0]!=0:
expo_min,flag=0,2
else:
flag,a,b,expo_min=Traite_a0_nul(Coeff,n,Poly,expo_min)
if flag:
if flag==2:
a0,an=Coeff[indice][0],Coeff[-1][0]
else:
a0,an,Zero=a,b,[0]
Div=Recherche_diviseurs(a0,an)
print ("\n Diviseurs de",a0,"et",an,":")
print ("D(a0) =",Div[0])
print("D(a"+str(n)+") =",Div[-1])
print()
CRP=compilation_racines_potentielles(Div,signes_rac)
mx=affichage_toutes_racines_potentielles(CRP,signes_rac)
Sol,nb_s=cherche_racines(CRP,Coeff,0)
Affiche_Resultats(Sol,mx,nb_s,expo_min)
print("\n")
while not rep in ["O","N"]:
rep=input(" Un autre Essai (O/N) ? ").upper()
if rep=="N":
break
else:
print("\n\n")
Deux exemples montrant les améliorations (d'après http://www.gecif.net/articles/mathemati … ynome.html):
******************************
* Résolution des Polynômes *
* dans Z et Q *
* v3.5 *
******************************
Degré du polynôme (entier naturel >= 1 attendu) : 3
Entrer le coefficient a0 (entier relatif attendu >=0 ou <=0) : 8
Entrer le coefficient a1 (entier relatif attendu >=0 ou <=0) : 30
Entrer le coefficient a2 (entier relatif attendu >=0 ou <=0) : 37
Entrer le coefficient a3 (entier relatif attendu >=0 ou <=0) : 15
-----------------------
ANALYSE
Votre (fonction) Polynôme est :
P(X) = 15X^3+37X^2+30X+8
Diviseurs de 8 et 15 :
D(a0) = [-8, -4, -2, -1, 1, 2, 4, 8]
D(a3) = [-15, -5, -3, -1, 1, 3, 5, 15]
Racines Potentielles à tester :
(coefficients ai/an tous positifs, racines - si elles existent - toutes négatives)
{-8, -4, -8/3, -2, -8/5, -4/3, -1, -4/5, -2/3, -8/15, -2/5, -1/3, -4/15, -1/5, -2/15, -1/15}
Affichage des Racines éventuelles :
P(-1) = 0. Solution dans Z : X = -1
P(-4/5) = 0. Solution dans Q : X = -4/5
P(-2/3) = 0. Solution dans Q : X = -2/3
Un autre Essai (O/N) ? o
******************************
* Résolution des Polynômes *
* dans Z et Q *
* v3.5 *
******************************
Degré du polynôme (entier naturel >= 1 attendu) : 6
Entrer le coefficient a0 (entier relatif attendu >=0 ou <=0) : 0
Entrer le coefficient a1 (entier relatif attendu >=0 ou <=0) : 0
Entrer le coefficient a2 (entier relatif attendu >=0 ou <=0) : 0
Entrer le coefficient a3 (entier relatif attendu >=0 ou <=0) : -8
Entrer le coefficient a4 (entier relatif attendu >=0 ou <=0) : 30
Entrer le coefficient a5 (entier relatif attendu >=0 ou <=0) : -31
Entrer le coefficient a6 (entier relatif attendu >=0 ou <=0) : 6
-----------------------
ANALYSE
Votre (fonction) Polynôme est :
P(X) = 6X^6-31X^5+30X^4-8X^3
/!\ Factorisation possible par X^3, on prend -8 pour a0 :
P(X) = X^3(6X^3-31X^2+30X-8)
Diviseurs de -8 et 6 :
D(a0) = [-8, -4, -2, -1, 1, 2, 4, 8]
D(a6) = [-6, -3, -2, -1, 1, 2, 3, 6]
Racines Potentielles à tester :
(coefficients à signes alternés, racines - si elles existent - toutes positives)
{1/6, 1/3, 1/2, 2/3, 1, 4/3, 2, 8/3, 4, 8}
Affichage des Racines éventuelles :
P(0) = 0. Solution dans Z : X = 0
P(1/2) = 0. Solution dans Q : X = 1/2
P(2/3) = 0. Solution dans Q : X = 2/3
P(4) = 0. Solution dans Z : X = 4
Un autre Essai (O/N) ? n
>>>
Sûrement perfectible...
@+
- Roro
- 05-08-2021 21:45:27
Bonsoir,
Programmes-tu, Roro ? Si oui avec que langage ?
Je programme un peu, en C, Fortran il y a pas mal d'années, maintenant plutôt en Python... et je sais combien le travail peut être long et surtout très ingrat entre la compréhension (mathématique) et l'exécution (informatique) !
Roro.
- LEG
- 05-08-2021 13:41:32
ok ;
depuis hier je cherchai ...donc je n'avais rien compris dans l'écriture....ok merci pour les explications...
En reprenant le lien que tu as fournis , et en testant le programme: effectivement avec tes explications sur l'écriture des variables = coefficients , cela permet de ne pas se tromper pour chercher les racines d'un polynôme si il y en a...
Conclusion le programme fonctionne parfaitement , si il y a une erreur, alors il est clair qu'elle est humaine et que l'on a pas ou mal saisie les valeurs des coefficients $a_n$. Encore fait il comprendre ce que signifie trouver les racines d'un polynôme = les diviseurs premiers... et comprendre ce que tu m'as expliqué ci dessus.
On verra si l'intéressé du sujet , essaye de comprendre 1) tes explications 2) si il regarde le lien que tu as fourni : http://www.gecif.net/articles/mathemati … ynome.html
Mais ceci dit, je doute fort qu'il soit capable d'écrire le programme que tu m'as envoyé.... pour tester et encore moins d'en donner les explications, car il faut connaître parfaitement ce que doit faire le programme par rapport aux racines des polynôme à trouver , ce qui veut dire qu'il faut comprendre parfaitement les explications que tu m'as fournies ci dessus pour écrire les coefficients en fonction du degré du polynôme...
Cordialement et merci de ton temps....
Gilbert
- yoshi
- 05-08-2021 13:34:14
Re,
Question : pourquoi le programme affiche les solutions sous cette forme : X = -5/7 et X = 2/3 ?
Réponse : parce que je l'ai voulu ainsi pour deux raisons et Fraction(2,3)
1. Parce que c'est plus lisible que -Fraction(5,7) et Fraction(2,3) qui est l'affichage "normal" de Python...
2. Parce qu'il est plus simple pour moi de chercher la longueur maximum de P(-5/7) ...
Quand il y a plusieurs solutions, j'ai voulu que tous les = soient alignés verticalement, donc, j'ai besoin de la longueur max
(* Je viens de comprendre : réponse plus bas)
Question : $X^3-6X^2-13x+42=0$ comment on rentre les coefficients ?
Réponse : degré du polynôme --> 3
a0 --> 42
a1 --> -13
a2--> -6
a3 --> 1
Les racines sont -3, 2 et 7 et non 2, 3 et 7
******************************
* Résolution des Polynômes *
* dans Z et Q *
* v 3.4 *
******************************
Degré du polynôme (entier naturel >= 1 attendu) : 3
Entrer le coefficient a0 (entier relatif attendu >=0 ou <=0) : 42
Entrer le coefficient a1 (entier relatif attendu >=0 ou <=0) : -13
Entrer le coefficient a2 (entier relatif attendu >=0 ou <=0) : -6
Entrer le coefficient a3 (entier relatif attendu >=0 ou <=0) : 1
Votre Polynôme est :
P(X) = X^3-6X^2-13X+42
Diviseurs de 42 et 1 :
D(a0) = [-42, -21, -14, -7, -6, -3, -2, -1, 1, 2, 3, 6, 7, 14, 21, 42]
D(a3) = [-1, 1]
Racines Potentielles à tester :
{-42, -21, -14, -7, -6, -3, -2, -1, 1, 2, 3, 6, 7, 14, 21, 42}
Affichage des Racines éventuelles :
P(-3) = 0. Solution dans Z : X = -3
P(2) = 0. Solution dans Z : X = 2
P(7) = 0. Solution dans Z : X = 7
Un autre Essai (O/N) ? o
******************************
* Résolution des Polynômes *
* dans Z et Q *
* v 3.4 *
******************************
Degré du polynôme (entier naturel >= 1 attendu) : 3
Entrer le coefficient a0 (entier relatif attendu >0 ou <0) : -42
Entrer le coefficient a1 (entier relatif attendu >0 ou <0) : 41
Entrer le coefficient a2 (entier relatif attendu >0 ou <0) : -12
Entrer le coefficient a3 (entier relatif attendu >0 ou <0) : 1
Votre Polynôme est :
P(X) = X^3-12X^2+41X-42
Diviseurs de -42 et 1 :
D(a0) = [-42, -21, -14, -7, -6, -3, -2, -1, 1, 2, 3, 6, 7, 14, 21, 42]
D(a3) = [-1, 1]
Racines Potentielles à tester :
{-42, -21, -14, -7, -6, -3, -2, -1, 1, 2, 3, 6, 7, 14, 21, 42}
Affichage des Racines éventuelles :
P(2) = 0. Solution dans Z : X = 2
P(3) = 0. Solution dans Z : X = 3
P(7) = 0. Solution dans Z : X = 7
Un autre Essai (O/N) ?
Ton polynôme de degré 3 s'écrit de façon littérale $a_3x^3+a_2x^2+a_1x^1+a_0x^0$
Tu vois la correspondance entre les indices es coefficients et les exposants de $x$ ?
Si je respecte les règles de simplification d'écriture de l'algèbre, j'écris seulement :
$a_3x^3+a_2x^2+a_1x+a_0$
parce que $x^1$, c'est $x$ et $x^0=1$
il y a quelque chose que je ne comprend pas dans les valeurs des coefficients an à rentrer ...? ............................................................................................ j'ai rentré pour ao =1
Degré du polynôme (entier naturel attendu) : 3
Entrer le coefficient a0 (entier relatif attendu) : 1
Entrer le coefficient a1 (entier relatif attendu) : -6
Entrer le coefficient a2 (entier relatif attendu) : -13
Entrer le coefficient a3 (entier relatif attendu) : 42
Votre Polynôme est : $P(X) = 42X^3-13X^2-6X+1
Pour avoir -3, 2 et 7 comme racines il ne faut pas les rentrer dans cet ordre : regarde le 1er exemple traité ci-dessus.
Pour 2, 3 7 c'est le 2e à sa suite...
******************************
* Résolution des Polynômes *
* dans Z et Q *
* v 3.4 *
******************************
Degré du polynôme (entier naturel >= 1 attendu) : 2
Entrer le coefficient a0 (entier relatif attendu >0 ou <0) : -10
Entrer le coefficient a1 (entier relatif attendu >0 ou <0) : 1
Entrer le coefficient a2 (entier relatif attendu >0 ou <0) : 21
Votre Polynôme est :
P(X) = 21X^2+X-10
Diviseurs de -10 et 21 :
D(a0) = [-10, -5, -2, -1, 1, 2, 5, 10]
D(a2) = [-21, -7, -3, -1, 1, 3, 7, 21]
Racines Potentielles à tester :
{-10, -5, -10/3, -2, -5/3, -10/7, -1, -5/7, -2/3, -10/21, -1/3, -2/7, -5/21, -1/7, -2/21, -1/21, 1/21, 2/21, 1/7, 5/21, 2/7, 1/3, 10/21, 2/3, 5/7, 1, 10/7, 5/3, 2, 10/3, 5, 10}
Affichage des Racines éventuelles :
P(-5/7) = 0. Solution dans Q : X = -5/7
P(2/3) = 0. Solution dans Q : X = 2/3
Un autre Essai (O/N) ?
Parfaitement normal :
Produit des racines ici : $(-1)^2 \times \left(-\dfrac{10}{21}\right)$
10 = 2 * 5
21 = 3 * 7
$\dfrac{10}{21}=\dfrac{2}{3}\times \dfrac{5}{7}$ ou $\dfrac{2}{7}\times \dfrac{5}{3}$
avec l'une ou l'autre des fractions négatives...
La seule façon de trancher est de faire appel à à $a_1$r via la somme des racines =$-\dfrac{a1}{a2}=-\dfrac {1}{21}$
Mais tes racines resteront fractionnaires...
Si tu veux des racines entières, voilà :
******************************
* Résolution des Polynômes *
* dans Z et Q *
* v 3.4 *
******************************
Degré du polynôme (entier naturel >= 1 attendu) : 2
Entrer le coefficient a0 (entier relatif attendu >0 ou <0) : 21
Entrer le coefficient a1 (entier relatif attendu >0 ou <0) : -10
Entrer le coefficient a2 (entier relatif attendu >0 ou <0) : 1
Votre Polynôme est :
P(X) = X^2-10X+21
Diviseurs de 21 et 1 :
D(a0) = [-21, -7, -3, -1, 1, 3, 7, 21]
D(a2) = [-1, 1]
Racines Potentielles à tester :
{-21, -7, -3, -1, 1, 3, 7, 21}
Affichage des Racines éventuelles :
P(3) = 0. Solution dans Z : X = 3
P(7) = 0. Solution dans Z : X = 7
@+
- LEG
- 05-08-2021 10:56:48
re
@Yoshi :
Il y a quelque chose que je ne comprend pas .... voici le résultat du programme pour ce Polynôme pair ,de degré 2. : P(x) = 21X² + X-10
pourquoi doit on rentrer ce coefficient a1 ??? puisque les racines sont 3 et 7 = 21 ou 2 et -5 = -10.
Résultat du programme degré et coefficients rentrés :
---------------------------------------------------------------------------------------------------------
Degré du polynôme (entier naturel attendu) : 2
Entrer le coefficient a0 (entier relatif attendu) : -10
Entrer le coefficient a1 (entier relatif attendu) : 1 :
Entrer le coefficient a2 (entier relatif attendu) : 21
Votre Polynôme est :
P(X) = 21X^2+X-10
Diviseurs de -10 et 21 :
D(a0) = [-10, -5, -2, -1, 1, 2, 5, 10]
D(a2) = [-21, -7, -3, -1, 1, 3, 7, 21]
Racines Potentielles à tester :
{-10, -5, -10/3, -2, -5/3, -10/7, -1, -5/7, -2/3, -10/21, -1/3, -2/7, -5/21, -1/7, -2/21, -1/21, 1/21, 2/21, 1/7, 5/21, 2/7, 1/3, 10/21, 2/3, 5/7, 1, 10/7, 5/3, 2, 10/3, 5, 10}
Affichage des Racines éventuelles :
P(-5/7) = 0. Solution dans Q : X = -5/7
P(2/3) = 0. Solution dans Q : X = 2/3
-------------------------------------------------------------------------------------------------------------------------------
Question : pourquoi le programme affiche les solutions sous cette forme : X = -5/7 et X = 2/3 ?
j'ai pris l'exemple du lien que tu as fournis au début du sujet ... ""méthode alternative "" http://www.gecif.net/articles/mathemati … ynome.html
si on prend l'exemple du polynôme : $X^3-6X^2-13x+42=0$ : on a donc X = 2 , et les racines du polynôme sont 2*3*7 = 42
comment on rentre les valeurs des coefficients pour le degré 3; afin que le résultat donne racine = 2,3, 7 ;
il y a quelque chose que je ne comprend pas dans les valeurs des coefficients an à rentrer ...?
............................................................................................
j'ai rentré pour ao =1
Degré du polynôme (entier naturel attendu) : 3
Entrer le coefficient a0 (entier relatif attendu) : 1
Entrer le coefficient a1 (entier relatif attendu) : -6
Entrer le coefficient a2 (entier relatif attendu) : -13
Entrer le coefficient a3 (entier relatif attendu) : 42
Votre Polynôme est :
P(X) = 42X^3-13X^2-6X+1 [question: on devrait avoir pour X =2: P(X) = X³ - 6X² - 13X + 42 = 0 c'est à dire : 2³ - 6*2² - 13*2 + 42 = 0 ; Non ?
Diviseurs de 1 et 42 :
D(a0) = [-1, 1]
D(a3) = [-42, -21, -14, -7, -6, -3, -2, -1, 1, 2, 3, 6, 7, 14, 21, 42]
Racines Potentielles à tester :
{-1, -1/2, -1/3, -1/6, -1/7, -1/14, -1/21, -1/42, 1/42, 1/21, 1/14, 1/7, 1/6, 1/3, 1/2, 1}
Affichage des Racines éventuelles : on devrait avoir comme racine avec P premier : 2, 3 et 7
P(-1/3) = 0. Solution dans Q : X = -1/3
P(1/7) = 0. Solution dans Q : X = 1/7
P(1/2) = 0. Solution dans Q : X = 1/2
......................................................................
- yoshi
- 05-08-2021 10:53:33
Re,
@Roro
Moi, si, j'ai bien avancé ;-)...
Sur ce que je montre, le script n'a plus grand chose à voir avec celui du début : la base est toujours son algorithme mité, mais qui maintenant, repensé, est sans failles.
Alors, oui notre ami peut se montrer très satisfait...
Mais, il me fatigue : il est lassant d'être aussi fuyant...
Je n'ai pas changé d'avis, c'est toujours donnant donnant...
je ne vais quand même pas lui donner mon travail de plusieurs dizaines d'heures (les "évidences" pour le cerveau humain, sont loin d'en être lorsqu'on asse à la programmation) sans effort de sa part...
Programmes-tu, Roro ? Si oui avec que langage ?
@+
- Roro
- 05-08-2021 09:52:19
Salut à tous,
J'ai l'impression qu'on a pas beaucoup avancé :
Je suis la discussion depuis quelque temps avec amusement et j'ai l'impression que la demande est limpide :
"Est ce que tu pourrais donner le code complet à notre ami ?"
A mon avis, tu perds ton temps car il ne veut pas comprendre (et ne veut pas prendre le temps) ce que tu essayes de lui expliquer étape par étape...
Roro
- LEG
- 05-08-2021 09:22:35
Bonjour
Au moins pour une fois tu as fait l'effort d'écrire correctement en Français... ???
Donc il ne te reste qu'à faire l'effort d'expliquer ligne par ligne ce que demande @YOSHI .
Ce que tu as appris en python, doit être suffisant pour expliquer un minimum de ce que fait le programme, le fait de refuser de donner des explications, indique clairement que tu ne veux pas faire d'effort et que Yoshi fasse ton travail.....c'est peine perdue ....
Car depuis le début tu fais l'effort de ne pas répondre , alors que connaissant un peu ton algorithme, ce n'est pas difficile d'expliquer ce que font plusieurs lignes des fonctions du programme et pourquoi...! Surtout avec toutes les indications qu'il t'a données...et les erreurs qu'ils y avaient dans le programme à ne pas commettre avec les explications....
Reprend depuis le début et explique ce que tu as compris dans le programme et pourquoi, et : pas dans un mois... !
- RAZAFINDRAFINDRA Hercele
- 05-08-2021 08:50:37
Bonjour!
Non, je ne suis pas capable d'expliquer ligne par ligne ce program puisque je suis encore en voie d'étudier le langage Python
- yoshi
- 04-08-2021 08:37:45
Bonjour,
Si tu essaies de m'avoir à l'usure (if you're trying to wear me down), tu perds ton temps (you're wasting time)...
Lorsque tu devras rendre ton travail, si tu n'as pas répondu à mes questions de façon satisfaisante : tu n'auras pas mon programme !
Je ne changerai pas d'avis...Est-ce que c'est plus clair, cette fois ?
Et bien non, je crois que je n'ai pas été clair...
Et ta réponse, 25 jours (!!) plus tard :
puisque je suis très satisfait pour vous me donnez les solutions de ce problème
montre que tu essaies de faire croire que je n'ai rien dit...
Donc,
simple question à laquelle tu vas répondre (et pas dans 1 mois !) :
es-tu capable d'expliquer ligne par ligne ce que fait mon programme qui compte maintenant plus de 500 lignes ?
2 réponses possibles :
1. OUI. Alors je t'en donne un morceau et tu m'expliques ce que s'y passe ligne par ligne. Si je suis satisfait, alors ok....
2. NON. Alors ce n'est plus la peine de me demander quoi que ce soit...
Et ne t'arrête pas en si bon chemin : je t'ai posé des questions auxquelles tu n'as pas répondu...
J'attends aussi tes réponses : moi je n'oublie pas !
Et maintenant tu voudrais, alors que tu n'as avancé en Python, me demander autre chose ?
Ne te moquerais-tu pas un peu du monde ?
Tu crois vraiment que tu commandes et et que moi, j'obéis ? Et bien non, ce n'est pas si simple que cela !
Si le français t'es à ce point étranger, en quelle langue faut-il que j'écrive ? Anglais ?
@+
- RAZAFINDRAFINDRA Hercele
- 04-08-2021 08:01:59
Bonjour!
Merci beaucoup pour vous m'aidez sur mon problème, puisque je suis très satisfait pour vous me donnez les solutions de ce problème. Mais maintenant, si c'est possible alors je vous demanderai encore d'autre chose. Merci