[PDF] modele quantique de bohr
[PDF] polynome scindé a racines simples
[PDF] modèle quantique de l'atome wikipedia
[PDF] modèle quantique de l'atome exercices corrigés
[PDF] modele planetaire schrodinger
[PDF] modèle plum pudding
[PDF] modèle atomique bohr
[PDF] modele atomique rutherford bohr
[PDF] modèle atomique simplifié potassium
[PDF] modèle atomique simplifié lithium
[PDF] modèle atomique simplifié calcium
[PDF] périodicité des propriétés
[PDF] modèle atomique simplifié hydrogène
[PDF] notation de lewis
[PDF] protocole infirmier medecine du travail
Algorithmes efficaces pour les grands nombres et
polyn
ˆomes : Partie 2
Salem BENFERHAT
Centre de Recherche en Informatique de Lens (CRIL-CNRS) email : benferhat@cril.fr 1/61
Ce que nous avons vu dans la premi
`ere partie ... Gr ˆace`a la d´ecomposition d"un grand nombre et grˆace`a une simple reformulation du calcul du produit, nous avons un algorithme en :
O(n1:584)
2/61
Peut-on encore mieux faire?
3/61
Retour sur les polyn
ˆomes
4/61 Polyn
ˆomesD
´efinitionp(x)=n
i=0a ixi=a0+a1x+a2x2+a3x3+⋯+anxn; o `u : aisont des r´eels (positifs ou n´egatifs ou nuls) anest diff´erent de z´ero nest appel´e le degr´e du polynˆomep(x).Ce que l"on a vu Evaluation dep(x)lorsquex=x0, avec un algorithme efficace deO(n)5/61 Polyn
ˆomesD
´efinitionp(x)=n
i=0a ixi=a0+a1x+a2x2+a3x3+⋯+anxn; o `u : aisont des r´eels (positifs ou n´egatifs ou nuls) anest diff´erent de z´ero nest appel´e le degr´e du polynˆomep(x).Ce que l"on a vu Evaluation dep(x)lorsquex=x0, avec un algorithme efficace deO(n)5/61 Repr
´esentatation d"un polynˆomeTableau
Un polyn
ˆome :
p(x)=n i=0a ixi=a0+a1x+a2x2+a3x3+⋯+anxn; sera tout simplement repr
´esent´e par un tableau de r´eels :a
0a 1a
2::::a
n-1a n012::::n-1n 6/61
Addition et produit de deux polyn
ˆomesExercice
Ecrire une fonction qui calcule la somme de deux polynˆomes. Ecrire une fonction qui calcule le produit de deux polynˆomes.7/61
Addition de deux polyn
ˆomes
1
2double*addition(doubleA[], double B[], int N)
3{
4inti;
5double*res=(double*) malloc ((N+1)*sizeof(double));
6for(i=0; i<=N; i++)
7{
8res[i]=A[i]+B[i];
9}
10returnres;
11} 8/61
Produit de deux polyn
ˆomes
1
2double*multiplicaion(doubleA[], double B[], int N)
3{
4inti, j;
5double*res=(double*) calloc ((2*(N+1))*sizeof(double), 0);
6for(i=0; i<=N; i++)
7{
8for(j=0; j<=N; j++)
9res[i+j]=res[i+j]+(A[i]*B[j]);
10}
11returnres;
12} 9/61
Complexit
´e sur les op´erations de baseR
´ecapitulatifs•
Addition :O(n)
Multiplication :O(n2)
Evaluation d"une valeur donn´ee :O(n)(Algorithme de Horner).10/61
Une autre repr
´esentation
des polyn
ˆomes
a base de points 11/61
Commenc¸ons par le point
D ´efinition d"un type enregistrement qui repr´esente un point : typdef struct float abscisse; float ordonn
´ee;
}point; 12/61
La droite
Une droite
Entre deux points de coordonn
´ees :(x0;p(x0))et(x1;p(x1))distincts
on ne peut tracer qu"une et une seule droite qui passe par ces deux points.Une droite = un polyn
ˆomeUne droite est au fait un polyn
ˆome de degr´e 1 de la forme :
p(x)=a0+a1:xIl est tr `es facile de calculera0eta1si on connaˆıt les deux points (x0;p(x0))et(x1;p(x1)).13/61
La droite
Une droite
Entre deux points de coordonn
´ees :(x0;p(x0))et(x1;p(x1))distincts
on ne peut tracer qu"une et une seule droite qui passe par ces deux points.Une droite = un polyn
ˆomeUne droite est au fait un polyn
ˆome de degr´e 1 de la forme :
p(x)=a0+a1:xIl est tr `es facile de calculera0eta1si on connaˆıt les deux points (x0;p(x0))et(x1;p(x1)).13/61
La droite
Une droite
Entre deux points de coordonn
´ees :(x0;p(x0))et(x1;p(x1))distincts
on ne peut tracer qu"une et une seule droite qui passe par ces deux points.Une droite = un polyn
ˆomeUne droite est au fait un polyn
ˆome de degr´e 1 de la forme :
p(x)=a0+a1:xIl est tr `es facile de calculera0eta1si on connaˆıt les deux points (x0;p(x0))et(x1;p(x1)).13/61
Avec trois points ...
Un peu plus loin qu"une droite
Avec trois points de coordonn
´ees :(x0;p(x0)),(x1;p(x1))et
(x2;p(x2))distincts on peut repr´esenter un (et un seul) polynˆome de degr
´e 2 de la forme :
p(x)=a0+a1:x+a2:x2Il est tr `es facile de calculera0,a1eta2si on connaˆıt les trois points : nous disposons de trois ´equations pour trois variables inconnues.14/61
Avec trois points ...
Un peu plus loin qu"une droite
Avec trois points de coordonn
´ees :(x0;p(x0)),(x1;p(x1))et
(x2;p(x2))distincts on peut repr´esenter un (et un seul) polynˆome de degr
´e 2 de la forme :
p(x)=a0+a1:x+a2:x2Il est tr `es facile de calculera0,a1eta2si on connaˆıt les trois points : nous disposons de trois ´equations pour trois variables inconnues.14/61
Avec n+1 points ...
Polyn ˆome de degr´e nAvec (n+1) points de coordonn
´ees :(x0;p(x0)), ...,(xn+1;p(xn+1))
distincts on peut repr ´esenter un (et un seul) polynˆome de degr´e n de la forme : p(x)=a0+a1:x+:::+an:xnIl est facile de calculera0, ...,ansi on connaˆıt lesn+1 points : nous disposons den+1´equations pourn+1 variables inconnues.15/61
Avec n+1 points ...
Polyn ˆome de degr´e nAvec (n+1) points de coordonn
´ees :(x0;p(x0)), ...,(xn+1;p(xn+1))
distincts on peut repr ´esenter un (et un seul) polynˆome de degr´e n de la forme : p(x)=a0+a1:x+:::+an:xnIl est facile de calculera0, ...,ansi on connaˆıt lesn+1 points : nous disposons den+1´equations pourn+1 variables inconnues.15/61 Premi `ere conclusion...Polyn
ˆome de degr´e nUn polyn
ˆome de degr´enpeut-ˆetre repr´esent´e : Soit par un vecteur de degr´es (a0, ...,an), c"est-`a-dire p(x)=a0+a1:x+:::+an:xn• Soit par (n+1) points de coordonn´ees distinctes : (x0;p(x0));:::;(xn+1;p(xn+1))• Ces deux repr´esentations sont´equivalentes16/61 Premi `ere conclusion...Polyn
ˆome de degr´e nUn polyn
ˆome de degr´enpeut-ˆetre repr´esent´e : Soit par un vecteur de degr´es (a0, ...,an), c"est-`a-dire p(x)=a0+a1:x+:::+an:xn• Soit par (n+1) points de coordonn´ees distinctes : (x0;p(x0));:::;(xn+1;p(xn+1))• Ces deux repr´esentations sont´equivalentes16/61 Premi `ere conclusion...Polyn
ˆome de degr´e nUn polyn
ˆome de degr´enpeut-ˆetre repr´esent´e : Soit par un vecteur de degr´es (a0, ...,an), c"est-`a-dire p(x)=a0+a1:x+:::+an:xn• Soit par (n+1) points de coordonn´ees distinctes : (x0;p(x0));:::;(xn+1;p(xn+1))• Ces deux repr´esentations sont´equivalentes16/61 Deuxi `eme conclusion...Impact sur la complexit
´e ...•
Comme les deux repr´esentations sont´equivalentes, si nous disposons d"algorithmes efficaces pour la repr
´esentation`a partir
de coordonn ´ees distinctes alors nous disposerons´egalement d"algorithmes efficaces pour les polyn
ˆomes repr´esent´es par des
vecteurs de degr
´es•
Enfin presque c¸a ... Car les transformations doivent rester efficaces ... 17/61 Deuxi `eme conclusion...Impact sur la complexit
´e ...•
Comme les deux repr´esentations sont´equivalentes, si nous disposons d"algorithmes efficaces pour la repr
´esentation`a partir
de coordonn ´ees distinctes alors nous disposerons´egalement d"algorithmes efficaces pour les polyn
ˆomes repr´esent´es par des
vecteurs de degr
´es•
Enfin presque c¸a ... Car les transformations doivent rester efficaces ... 17/61
Addition de polyn
ˆomes`a base de points ...
Supposons que les polyn
ˆomes sont repr´esent´es`a base de points (coordonn ´ees). Soitp1(x)etp2(x)deux polynˆomes repr´esent´es par (x0;p1(x0));:::;(xn+1;p1(xn+1))et (x0;p2(x0));:::;(xn+1;p2(xn+1))Addition de deux polyn ˆomesIl se fait enO(n). En effet, le polynˆomep1(x)+p2(x)sera tout simplement repr ´esent´e par :(x0;p1(x0)+p2(x0));:::;(xn+1;p1(xn+1)+p2(xn+1))18/61
Addition de polyn
ˆomes`a base de points ...
Supposons que les polyn
ˆomes sont repr´esent´es`a base de points (coordonn ´ees). Soitp1(x)etp2(x)deux polynˆomes repr´esent´es par (x0;p1(x0));:::;(xn+1;p1(xn+1))et (x0;p2(x0));:::;(xn+1;p2(xn+1))Addition de deux polyn ˆomesIl se fait enO(n). En effet, le polynˆomep1(x)+p2(x)sera tout simplement repr ´esent´e par :(x0;p1(x0)+p2(x0));:::;(xn+1;p1(xn+1)+p2(xn+1))18/61
Addition de polyn
ˆomes`a base de points ...
Supposons que les polyn
ˆomes sont repr´esent´es`a base de points (coordonn ´ees). Soitp1(x)etp2(x)deux polynˆomes repr´esent´es par (x0;p1(x0));:::;(xn+1;p1(xn+1))et (x0;p2(x0));:::;(xn+1;p2(xn+1))Addition de deux polyn ˆomesIl se fait enO(n). En effet, le polynˆomep1(x)+p2(x)sera tout simplement repr ´esent´e par :(x0;p1(x0)+p2(x0));:::;(xn+1;p1(xn+1)+p2(xn+1))18/61
Addition de polyn
ˆomes`a base de points ...
Supposons que les polyn
ˆomes sont repr´esent´es`a base de points (coordonn ´ees). Soitp1(x)etp2(x)deux polynˆomes repr´esent´es par (x0;p1(x0));:::;(xn+1;p1(xn+1))et (x0;p2(x0));:::;(xn+1;p2(xn+1))Addition de deux polyn ˆomesIl se fait enO(n). En effet, le polynˆomep1(x)+p2(x)sera tout simplement repr ´esent´e par :(x0;p1(x0)+p2(x0));:::;(xn+1;p1(xn+1)+p2(xn+1))18/61
Produit de polyn
ˆomes`a base de points ...
Supposons que les polyn
ˆomes sont repr´esent´es`a base de points (coordonn ´ees). Soitp1(x)etp2(x)deux polynˆomes repr´esent´es par (x0;p1(x0));:::;(xn+1;p1(xn+1)) et (x0;p2(x0));:::;(xn+1;p2(xn+1))Produit de deux polyn ˆomesIl se fait enO(n). En effet, le polynˆomep1(x)?p2(x)sera tout simplement repr
´esent´e par :
Produit de polyn
ˆomes`a base de points ...
Supposons que les polyn
ˆomes sont repr´esent´es`a base de points (coordonn ´ees). Soitp1(x)etp2(x)deux polynˆomes repr´esent´es par (x0;p1(x0));:::;(xn+1;p1(xn+1)) et (x0;p2(x0));:::;(xn+1;p2(xn+1))Produit de deux polyn ˆomesIl se fait enO(n). En effet, le polynˆomep1(x)?p2(x)sera tout simplement repr
´esent´e par :
Evaluationt de polyn
ˆomes`a base de points ...
Supposons que les polyn
ˆomes sont repr´esent´es`a base de points (coordonn ´ees). Soitp1(x)un polynˆome repr´esent´e par (x0;p1(x0));:::;(xn+1;p1(xn+1))Evaluer en x=a Aie ... Calculerp1(a)n´ecessite d"abord de transformer la repr ´esentation`a base de points vers une repr´esentation`a base de coefficients, puis appliquer l"algorithme de Horner• La transformation na¨ıve d"une repr´esentation`a base de points vers une repr ´esentation`a base de coefficients se fait enO(n2)20/61
Evaluationt de polyn
ˆomes`a base de points ...
Supposons que les polyn
ˆomes sont repr´esent´es`a base de points (coordonn ´ees). Soitp1(x)un polynˆome repr´esent´e par (x0;p1(x0));:::;(xn+1;p1(xn+1))Evaluer en x=a Aie ... Calculerp1(a)n´ecessite d"abord de transformer la repr ´esentation`a base de points vers une repr´esentation`a base de coefficients, puis appliquer l"algorithme de Horner• La transformation na¨ıve d"une repr´esentation`a base de points vers une repr ´esentation`a base de coefficients se fait enO(n2)20/61
Evaluationt de polyn
ˆomes`a base de points ...
Supposons que les polyn
ˆomes sont repr´esent´es`a base de points (coordonn ´ees). Soitp1(x)un polynˆome repr´esent´e par (x0;p1(x0));:::;(xn+1;p1(xn+1))Evaluer en x=a Aie ... Calculerp1(a)n´ecessite d"abord de transformer la repr ´esentation`a base de points vers une repr´esentation`a base de coefficients, puis appliquer l"algorithme de Horner• La transformation na¨ıve d"une repr´esentation`a base de points vers une repr ´esentation`a base de coefficients se fait enO(n2)20/61
Evaluationt de polyn
ˆomes`a base de points ...
Supposons que les polyn
ˆomes sont repr´esent´es`a base de points (coordonn ´ees). Soitp1(x)un polynˆome repr´esent´e par (x0;p1(x0));:::;(xn+1;p1(xn+1))Evaluer en x=aquotesdbs_dbs33.pdfusesText_39