[PDF] Master 1 - Calcul Formel Année Universitaire 2016-2017 Notes de





Previous PDF Next PDF



Démarrer en calcul formel

Pour une pratique plus avancée on se reportera à l'aide en ligne et aux différents documents disponibles à partir de la page d'accueil du logiciel. Le but de 



La vue calcul formel

Dans ce cas l'expression est numériquement évaluée et GeoGebra affiche une valeur arrondie du résultat. • Dans la zone de saisie d'une ligne



GEOGEBRA ET LE CALCUL FORMEL.

Certaines peuvent être utilisées directement en ligne de saisie. A partir de la version 4.2 il est possible de travailler dans une fenêtre « Calcul Formel » en 



Petit Guide de Survie en Scilab

Scilab de tester les commandes et de lire l'aide en ligne : c'est en essayant Contrairement `a Maple



Calcul mathématique avec Sage

Des parties de cet ouvrage sont inspirées de l'ouvrage Calcul formel : mode Le texte sage: au début de la première ligne est l'invite du système.



Ressources en ligne et enseignement des mathématiques

27 févr. 2010 calcul formel et leur place possible dans l'enseignement secondaire des mathématiques. Cet exposé se situe quant à lui



1 Premiers pas avec Xcas

apprendre à utiliser les fonctionnalités de Xcas en calcul formel une zone rectangulaire blanche numérotée 1 (première ligne de commande) dans.



Xcas logiciel de calculs Xcas en ligne : http://www.xcasenligne.fr

Avec le logiciel de calcul formel Xcas. • On définit la fonction en saisissant l'expression f(x) :=4x^2-(x-1)^2. On utilise les instructions 



Calcul formel et Mathématiques avec Xcas

6 juil. 2013 Développeur du logiciel de calcul formel giac et de son interface Xcas. ... 6.45.13 Modifier un élément ou une ligne d'une matrice contenue.



Master 1 - Calcul Formel Année Universitaire 2016-2017 Notes de

2 Algorithmique rapide pour les opérations de base en calcul formel 2 alors on rajoute artificiellement des lignes et des colonnes aux matrices pour ...



[PDF] Démarrer en calcul formel

Démarrer en calcul formel R De Graeve B Parisse B Ycart Université Joseph Fourier Grenoble Xcas est un logiciel libre de calcul formel



[PDF] Calcul Formel Année Universitaire 2016-2017 Notes de Cours

Les systèmes de calcul formel manipulent principalement trois types d'objets à savoir des nombres e g des entiers relatifs (arithmétique) des polynômes 



[PDF] GEOGEBRA ET LE CALCUL FORMEL

En cliquant sur le petit + on développe la liste de toutes les commandes du calcul formel Certaines peuvent être utilisées directement en ligne de saisie 



[PDF] Calcul formel (avec Sage) - Exo7 - Cours de mathématiques

Réaliser trois fonctions qui transforment une matrice en fonction des opérations élémentaires sur les lignes : • Li ? cLi avec c = 0 : on multiplie une ligne 



[PDF] La vue calcul formel - IREM TICE

La barre d'outils de la vue Calcul formel 4 Lien entre la vue Calcul formel et les autres vues 5 Manipulations sur les lignes 6 Exporter une formule



[PDF] Cours calcul formel

20 fév 2023 · où le calcul formel met l'accent sur les calculs exacts sur des expressions Les lignes 2 et 3 de l'algorithme déterminent l'arrêt du 



[PDF] Initiation `a un logiciel de calcul formel

Une fois le programme écrit f9 permet de le compiler pour pouvoir l'utiliser dans une ligne de commande En cas de probl`eme ou pour voir comment fonctionne le



[PDF] Introduction à Mathematica

Mathematica est un logiciel de calcul formel et numérique développé par Wolfram Wolfram Alpha (www wolframalpha com) est un outil en ligne gratuit 



[PDF] TP1 : Premiers pas en Maple

calcul formel ("exact") : Maple manipule des nombres des symboles représentant des On peut donner plusieurs commandes à Maple sur la meme ligne :



[PDF] Calcul Scientifique et Symbolique Logiciels Licence Mathématiques

sous http://www math u-bordeaux1 fr/?yger/initMS pdf une aide `a la prise en l'avant-derni`ere ligne les calculs faits dans l'algorithme de division 

:

Master 1 - Calcul Formel

Année Universitaire 2016-2017

Notes de Cours

Thomas Cluzeau

Université de Limoges - CNRS ; XLIM UMR 7252

123 avenue Albert Thomas, 87060 Limoges CEDEX

thomas.cluzeau@unilim.fr 2

Table des matières

1 Introduction

5

1.1 Qu"est-ce que le calcul formel?

5

1.2 Structures algébriques effectives

6

1.3 Analyse d"un algorithme

6

1.4 Principes algorithmiques généraux

8

1.4.1 Évaluation-Interpolation

8

1.4.2 Méthodes modulaires

9

1.4.3 Diviser pour régner

9

2 Algorithmique rapide pour les opérations de base en calcul formel

11

2.1 Multiplication de polynômes

11

2.1.1 Algorithme naïf

11

2.1.2 Algorithme de Karatsuba

12

2.1.3 Transformée de Fourier rapide (FFT)

13

2.2 Inversion de séries formelles et division euclidienne

15

2.2.1 L"anneau des séries formelles

15

2.2.2 Calcul formel dans l"anneau des séries formelles

16

2.2.3 Application à la division euclidienne

19

2.3 Multiplication de matrices

2 0

2.3.1 Algorithme naïf

21

2.3.2 Algorithme de Strassen

21

3 Pgcd et résultant

25

3.1 Rappels : anneaux factoriels et anneaux euclidiens

25

3.1.1 Divisibilité,pgcdetppcm. . . . . . . . . . . . . . . . . . . . . . . .25

3.1.2 Division euclidienne

27

3.2 Calcul dupgcdet des coefficients de Bézout. . . . . . . . . . . . . . . . . . 2 9

3.2.1 Dans un anneau euclidien : le cas des entiers

29

3.2.2 Le théorème des restes chinois

31

3.2.3 Dans un anneau de polynômes

35

3.3 Résultant de deux polynômes

40

3.3.1 Matrice de Sylvester et forme échelonnée

40

3.3.2 Propriétés du résultant

43
3

3.3.3 Calcul du résultant. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.3.4 Résultant en plusieurs variables et élimination

44

4 Factorisation de polynômes à une variable

47

4.1 Factorisation sans carré

47

4.1.1 Définition et existence

47

4.1.2 Calcul de la factorisation sans carré

48

4.2 Factorisation surZ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52

4.2.1 Rappels : factorisation sur un corps fini

52

4.2.2 Algorithme utilisant un grand nombre premier

52

4.2.3 Algorithme utilisant la remontée de Hensel

53

5 Intégration symbolique

57

5.1 Algèbre différentielle et fonctions élémentaires

57

5.2 Le cas particulier des fractions rationnelles

59

5.2.1 Calcul de la partie polynomiale

5 9

5.2.2 Calcul de la partie rationnelle

60

5.2.3 Calcul de la partie logarithmique

64

5.3 Le cas général des fonctions élémentaires

6 6

6 Équations différentielles linéaires et séries formelles

69

6.1 Résolution deL(y) = 0par des séries entières. . . . . . . . . . . . . . . . . 69

6.1.1 Structure des solutions

69

6.1.2 Existence de séries solutions au voisinage d"un point ordinaire

7 1

6.1.3 Calcul des séries solutions au voisinage d"un point ordinaire

72

6.2 Résolution deL(y) = 0par des séries quasi-entières. . . . . . . . . . . . . . 7 5

6.2.1 Séries quasi-entières

75

6.2.2 Équation indicielle et calcul des séries quasi-entières solutions

76
4

Chapitre 1

Introduction

1.1 Qu"est-ce que le calcul formel?

En mathématiques, lorsqu"un problème consiste à étudier l"existence d"un objet répondant

à certains critères, il existe deux façons différentes d"y apporter une réponse. La première

consiste à prouver l"existence de l"objet en question sans se préoccuper de sa construction alors que la seconde produit un procédé de construction de l"objet (ce qui prouve donc son existence). C"est ce qu"on appelle une preuveconstructive. On distingue alors deux types de procédés constructifs : les procédésnumériquesqui fournissent une approximation du

résultat et les procédésformelsqui fournissent un résultat exact. Ceux sont ces derniers qui

seront étudiés dans ce cours. Le termecalcul formel(en anglaiscomputer algebraousymbolic computation) désigne l"étude de la représentation et de la manipulation effective d"objets mathématiques dans un ordinateur. En d"autres termes, le calcul formel consiste à étudier dans quelle mesure et à quelle vitesse un ordinateur peut faire des mathématiques. Pour un problème donné,

nous serons donc amené à produire un algorithme (i.e., une suite de règles opératoires per-

mettant, en un nombre finie d"étapes, d"arriver avec certitude au résultat) et en évaluer les

performances. Les systèmes de calcul formel manipulent principalement trois types d"objets à savoir

des nombres,e.g., des entiers relatifs (arithmétique), des polynômes et des matrices (algèbre

linéaire). Un premier aspect du calcul formel consiste donc à proposer des algorithmes de calcul efficaces pour la manipulation de ces structures de bases. Un deuxième aspect se propose de ramener d"autres problèmes à ces derniers comme par exemple montrer que

la plupart des opérations d"algèbre linéaire peuvent se réduire à calculer des produits de

matrices (voir le théorème 2.3.1 dans la section 2.3 ). Les procédés que nous construirons reposeront toujours sur de l"algèbre donc avant de construire un algorithme il faudra toujours se placer dans un certain modèle/cadre algébrique.

Le calcul formel est une discipline récente qui a été surtout développée, à la fois par

des mathématiciens, des informaticiens et des physiciens, à partir de la seconde moitié du xx esiècle et l"apparition des ordinateurs. Aujourd"hui les grands systèmes de calcul formel 5 commeMapleouMathematicasont utilisés dans l"enseignement et la recherche mais aussi dans l"industrie.

1.2 Structures algébriques effectives

Étant donnée une structure algébrique (e.g., groupe, anneau, corps, espace vectoriel) la première question qui se pose avant de construire des algorithmes manipulant des objects de cette structure est le problème de lacalculabilité: suis-je capable de faire des calculs dans

cette structure et d"apprendre à un ordinateur à les faire? Le principal problème est letest

d"égalitéc"est-à-dire le problème de décider si une expression donnée dans cette structure

vaut0ou non. En effet pour effectuer certains calculs, comme par exemple une division, il est souvent crucial de déterminer si une expression représente0ou non. Notons que ce test à

zéro n"est pas décidable dans l"ensemble des nombres réelsR. En calcul formel, on se ramène

donc toujours à faire des calculs dans une structureeffectiveoù le test à zéro est décidable.

Définition 1.2.1.Une structure algébrique est diteeffectivesi l"on dispose : 1. d"une structur ede donné esp ouren r eprésenterles é léments; 2. d"algorithmes p ouren effe ctuerles op érationset p oury tester l" égalitéà zér o. Le lemme suivant regroupe les résultats d"effectivité sur lesquels nous nous appuierons dans ce cours.

Lemme 1.2.1.On a les résultats suivants :

1.

L"anne auZdes entiers relatifs est effectif;

2. Si Aest un anneau effectif, alors son corps des fractions est effectif,A[X]est effectif et pourN2N,A[X]=(XN+1)est effectif; 3. Si Kest un corps effectif, alors sa cloture algébriqueK, l"espace vectorielKnet l"anneau M n(K)sont effectifs.

1.3 Analyse d"un algorithme

Le calcul formel a pour but de produire des algorithmes qui calculent des objects mathéma- tiques. Rappelons tout d"abord que la correction d"un algorithme est définie comme suit : Définition 1.3.1.Un algorithme est ditcorrectsi : 1. chaqu eétap eest bien définie ; 2. l"algorithme se termi neen un nombr efini d"étap es; 3. le r ésultatr envoyéest toujours le b on,i.e., c eluique l"on attend. 6 Le problème de la calculabilité abordé ci-dessus indique uniquement la faisabilité de

certaines opérations. Pour un problème mathématique donné, il peut exister plusieurs algo-

rithmes menant au même résultat. Le calcul formel s"intéresse alors à la comparaison entre

ces différents algorithmes pour pouvoir exprimer le fait que pour un problème donné certains

algorithmes sont " meilleurs » que d"autres. Pour ce faire, on évalue l"efficacité d"un algo-

rithme en estimant sacomplexité. Estimer la complexité d"un algorithme permet d"évaluer sa qualité indépendamment de la manière dont il est programmé. En pratique, une fois l"algorithme programmé sur un ordinateur, ses performances sont

essentiellement mesurées par le temps d"exécution du programme (et la quantité de mémoire

nécessaire à son exécution). Le temps d"exécution va dépendre à la fois du nombre d"opé-

rations effectuées et du coût de chaque opération. Le programmeur contrôle essentiellement

le nombre d"opérations effectuées donc c"est avant tout sur ce point qu"il doit agir pour optimiser les performances de son programme. Une estimationa prioridu temps d"exécu- tion peut donc être obtenue en analysant le programme c"est-à-dire en comptant le nombre d"opérations effectuées, le nombre d"appels récursifs, .... Dans le cadre de ce cours, c"est justement le nombre d"opérations arithmétiques effectuées

par un algorithme qui nous servira demesure de complexité. Cette mesure est évaluée en fonc-

tion d"une (ou plusieurs) grandeurs apparaissant dans l"entrée de l"algorithme (e.g., le degré d"un polynôme, la taille d"une matrice, ...). De plus nous n"avons pas toujours une mesure exacte du nombre d"opérations mais souvent un ordre de grandeur (ou une borne supérieure). Nous utilisons alors la notationO(:)pour exprimer la complexité de nos algorithmes. Définition 1.3.2.Soientfetgdeux fonctions. On notef(n) =O(g(n))s"il existeK >0 etN >0tels que pour toutn > N,jf(n)j Kjg(n)j. Un algorithme sera ditlinéaire(resp.quadratique, cubique, logarithmique, polynomial) s"il utiliseO(n)(resp.O(n2),O(n3),O(log(n)),O(nk)aveck2N) opérations arithmétiques.

Notons que ceci donne une estimationasymptotiquede la complexité (l"inégalité est vérifiée

pourn > N) et que la valeur de la constanteKpeut jouer un rôle important dans les performances de l"algorithme. Exemple 1.3.1.SoitKun corps effectif et considérons le problème de l"évaluation d"un polynômeP=Pn i=0piXi2K[X]en un pointa2K. En faisant les calculs naïvement, nous devons calculera2; a3;:::;anpuis lesnproduitspiai et enfin faire la somme. Cela nous coutera donc(n1) +n= 2n1multiplications dans

Ketnadditions dansKsoit3n1opérations dansK.

Leschéma de Hornerproduira le même résultat en utilisant la formule suivante :

P(a) =p0+a(p1+a(p2+a(+a(pn1+apn)))):

En nous basant sur cette formule, nous pouvons donc calculerP(a)en posantu=pnpuis en calculant, pouri= 1;:::;n,u=au+pni. Cela nous coutera doncnadditions etn multiplications soit2nopérations dansK. Ainsi, nous voyons que l"algorithme basé sur le schéma de Horner semble meilleur que celui 7

basé sur le calcul naïf. Dans cet exemple particulier, nous obtenons une complexité linéaire

enO(n)pour les deux algorithmes mais parfois le nombre d"opérations peut changer signi- ficativement en passant d"une méthode à l"autre (Cf le calcul du déterminant d"une matrice

carrée à coefficients dans un corps effectif). Notons aussi qu"ici l"algorithme naïf nécessite

l"utilisation dencases mémoire alors que celui de Horner n"en a besoin que d"une seule. Dans la suite du cours, nous nous restreindrons à évaluer lacomplexité arithmétiquede nos algorithmes c"est-à-dire le nombre total d"opérations arithmétiques dans la structure

algébrique effective sous-jacenteA. En pratique, cette mesure reflète le coût réel de l"algo-

rithme lorsque le coup des opérations dansAest prépondérant et que chaque opération dans Aa un coût constant. Ceci est le cas par exemple lorsqueA=Fpest un corps fini mais pas lorsqueA=ZouQoù le coût d"une opération dépend de la taille des entiers qui entrent en jeu. Dans le cas d"algorithmes manipulant des objects surZ, la complexité arithmétique n"est pas toujours pertinente car il faut prendre en compte la taille des entiers que l"on ma- nipule qui peut grossir considérablement au cours des calculs. Un meilleur moyen d"évaluer la performancea priorid"un algorithme est alors d"évaluer sacomplexité binaireà savoir le nombre d"opérations binaires effectuées par l"algorithme.

1.4 Principes algorithmiques généraux

Dans cette section, nous allons donner brièvement trois principes algorithmiques qui seront

utilisés par la suite pour développer des algorithmes efficaces/rapides en calcul formel. Cette

liste n"est évidemment pas exhaustive et il existe bien d"autres principes très utiles pour certains problèmes comme par exemple la récursivité, la technique pas de bébés/pas de géants, ....

1.4.1 Évaluation-Interpolation

Le principe d"évaluation-interpolation est utilisé pour développer des algorithmes manipulant

des polynômes. Soit une opérationopà effectuer sur deux polynômesPetQà coefficients dans un anneau effectifA. Le principe de l"évaluation-interpolation pour calculerR=PopQ est alors le suivant : 1. On c hoisitun c ertainnom brede p ointsd"év aluationa1;:::;an2A; 2. On év alueles p olynômesPetQena1;:::;an(évaluation); 3.

On en déduit l"év aluationde Rena1;:::;an;

4. À partir des v aleursR(a1);:::;R(an), on reconstruitR(interpolation). L"efficacité de la stratégie repose alors sur le choix des pointsa1;:::;andans l"anneauA. Le nombrende points d"évaluation doit être suffisamment grand pour garantir la faisabilité de

l"étape 4. De plus les points eux mêmes doivent être choisis pour optimiser le coût des étapes

2 et 4. Par exemple, choisir comme points d"évaluation des racines de l"unité, où des points

en progression arithmétique peut s"avérer particulièrement intéressant. 8

1.4.2 Méthodes modulaires

En calcul formel, beaucoup d"algorithmes manipulant des polynômes, des fractions ration- nelles ou des matrices à coefficients entiers souffrent de la croissance des expressions inter- médiaires. En d"autres termes, les entiers apparaissants au cours des calculs sont de très

grande taille par rapport à ceux qui figurent à la fois dans l"entrée et dans la sortie de l"algo-

rithme. Pour illustrer ce propos, considérons le problème du calcul dupgcdpar l"algorithme d"Euclide (voir l"algorithme 7 au c hapitre 3 Exemple 1.4.1.Considérons les polynômesP= 7X522X4+55X3+94X287X+56 etQ= 62X497X3+73X2+4X+83. Partant deR0=P,R1=Q, l"algorithme d"Euclide produit alors la suite de restes suivante : R

2= rem(R0;R1) =1132933844

X3+4096053844

X21838551922

X+2721193844

R

3= rem(R1;R2) =1842328292309212835303849

X21523917079036812835303849

X+1096636125825612835303849

R

4= rem(R2;R3) =21613227465379239544863744148979404824831944178

R

5= rem(R3;R4) =205567911676920686950023369234912965041253639427682941980248860941972667354081

On voit donc que les coefficients dans les calculs intermédiaires font intervenir des entiers qui croissent de manière exponentielle alors que le résultat estpgcd(P;Q) = 1. Les méthodes modulaires permettent de remédier à ce problème. Au lieu d"effectuer les calculs surZ, nous effectuons les calculs dansFp=Z=(pZ)pour un (ou plusieurs) nombre(s) premier(s)p. Deux cas sont alors à différencier : 1.

Si notre algorithme consiste à décider si une propriété est vraie ou fausse, ou à calculer

un degré ou une dimension, alors l"algorithme appliqué aux entrées réduites modulop donne un algorithmeprobabilisterépondant à la question. De plus, si on peut maitriser les " mauvais » nombres premiers pour lesquels la réponse est fausse, alors on obtient un algorithmedéterministe; 2. Lorsq u"uneb ornesur la taille des en tiersdu résultat est conn ue,on p eutalors utiliser une stratégie basée sur le théorème des restes chinois (voir Chapitre 3 ) qui implique qu"un entier inférieur à un produit de nombres premiersp1pkpeut être reconstruit à partir de ses réductions modulop1;:::;pk. On effectue alors le calcul modulo suffi- samment de nombres premiers et on reconstruit le résultat. Cette stratégie est alors du même type que l"évaluation-interpolation.

1.4.3 Diviser pour régner

Un autre principe important utilisé (peut-être même le plus important) pour la construction d"algorithmes efficaces en calcul formel est le paradigme " diviser pour régner ». Il consiste 9

à résoudre un problème en le réduisant àminstances du même problème sur des entrées de

taille divisée parp(en généralp= 2) puis à reconstruire le résultat. Pour estimer le coût

totalC(n)d"un tel algorithme, on doit connaitre le coûtT(n)de la recombinaison et du

découpage initial ainsi que le coûtde l"algorithme utilisé lorsque la taillespde l"entrée

est suffisamment petite. Le coût total obéit alors souvent à une relation de la forme suivante :

C(n)T(n) +mC(dn=pe);sins;

sinon:(1.1)

L"efficacité de la technique dépend alors fortement de la fonctionTet on a le résultat (admis)

suivant qui sera suffisant dans le cadre ce cours. Théorème 1.4.1.SoitC(n)satisfaisant l"inégalité (1.1) avecm >0, >0et oùTest une fonction telle qu"il existeqetravec1< qrvérifiantq T(n)T(pn)rT(n)pourn assez grand

1. Alors lorsquen! 1, on a :

C(n) =8

>:O(T(n));siq > m;

O(T(n)log(n));siq=m;

O n logp(m)T(n)n logp(q) ;siq < m:(1.2) Exemple 1.4.2.Au chapitre2 , nous verrons que le coûtK(n)de l"algorithme de Karatsuba pour le calcul du produit de deux polynômes de degré au plusn1vérifie :

K(n)4n+ 3K(dn=2e); K(1) = 1:

Avec les notations précédentes, on a doncm= 3,p=s= 2,= 1etT(n) = 4nvérifie q T(n)T(pn)rT(n)avecq=r=p= 2. On a doncq < mde sorte que (1.2)implique

K(n) =O

n log2(3)4nn log2(2) =O(nlog2(3)):1 Notons que cette condition est vérifiée lorsqueT(n) =nlog(n)avec >0. 10

Chapitre 2

Algorithmique rapide pour les opérations

de base en calcul formel

Dans ce chapitre, nous allons nous intéresser à trois opérations de base en calcul formel à

savoir la multiplication de polynômes, la division des séries formelles (et la division eucli- dienne des polynômes) et la multiplication de matrices. Pour chaque problème, nous allons donner des algorithmes rapides permettant d"effectuer l"opération en question. Notons qu"il est d"autant plus important d"avoir des algorithmes rapides pour ces opérations que la com- plexité de beaucoup d"autres algorithmes manipulant les mêmes objects peut s"exprimer en fonction de la complexité de l"algorithme utilisé pour effectuer ces trois opérations.

2.1 Multiplication de polynômes

SoientPetQdeux polynômes univariés de degré au plusnet à coefficients dans un anneau effectifA. Le but de cette section est de donner des algorithmes rapides pour calculer le produitPQ=P Q. En d"autres termes, nous allons étudier, en fonctionn, en combien d"opérations dansAnous pouvons effectuer le produitP Q. Notons que l"on obtient des

résultats très semblables pour la complexité binaire du produit d"entiers. En effet, intuiti-

vement nous pouvons décomposer un entier sur une baseB(e.g.,B= 10;2;:::) et obtenir " en gros » les mêmes algorithmes modulo la gestion des retenues.

2.1.1 Algorithme naïf

Soient à multiplier les polynômes

P=nX i=0p iXi=p0+p1X++pnXn; Q=nX i=0q iXi=q0+q1X++qnXn; avecp0;:::;pn;q0;:::;qn2A. Le produitP Qs"écrit alors

P Q=2nX

i=0h iXi;8i= 0;:::;2n; hi=X j+k=ip jqk:(2.1) 11 Proposition 2.1.1.En utilisant la formule (2.1), le produitP Qde deux polynômesPetQ de degré au plusnpeut s"effectuer en utilisantn2additions et(n+ 1)2multiplications dans A. La complexité arithmétique de l"algorithme naïf est doncO(n2)opérations dansA: c"est un algorithme quadratique. Démonstration.Pouri= 0;:::;n, calculerhinécessiteiadditions et(i+1)multiplications. De même, pouri= 0;:::;n1, calculerh2ninécessiteiadditions et(i+1)multiplications. En conséquence le nombre total d"additions est égal à2Pn1 i=0i+n=n2et le nombre total de multiplications est égal à2Pn1 i=0(i+ 1) + (n+ 1) = (n+ 1)2.2.1.2 Algorithme de Karatsuba L"algorithme pour la multiplication de polynômes dû à Karatsuba repose sur la remarque suivante dans le cas de polynômesP=p0+p1XetQ=q0+q1Xde degré1. Le produit

P Qs"écrit alors

P Q=p0q0+ (p0q1+p1q0)X+p1q1X2;

de sorte que l"algorithme naïf effectuera les4produitsp0q0; p0q1; p1q0etp1q1et1addition.

En revanche, en remarquant que

(p0q1+p1q0) = (p0+p1)(q0+q1)p0q0p1q1; on voit que l"on peut calculerP Qen effectuant seulement des3produitsp0q0; p1q1et (p0+p1)(q0+q1)et4additions. Nous perdons certes3additions par rapport à l"algorithme

naïf mais le gain d"une multiplication va au final entrainer une amélioration de la complexité.

Pour deux polynômes quelconques, le principe de l"algorithme de Karatsuba consiste à

utiliser l"observation précédente de manière récursive en utilisant une stratégie diviser pour

régner (voir la sous-section 1.4.3 ). Soient à multiplier deux polynômesPetQde degré au plusn1avecn= 2k. On écrit alors

P=P0+P1Xn2

; Q=Q0+Q1Xn2 ;(2.2) oùP0; P1; Q0etQ1sont des polynômes de degré au plusn=21 = 2k11. On applique alors

la stratégie expliquée ci-dessus pour les polynômes de degré1et on aura3appels récursifs

sur des polynômes de degré au plusn=21pour calculerP0Q0; P1Q1et(P0+P1)(Q0+Q1).

On obtient l"algorithme

1 Proposition 2.1.2.L"algorithme1 de Kar atsubac alculel epr oduitP Qde deux polynômes de degré au plusn1avecn= 2kenO(n1:59)opérations dansA. Démonstration.SoitK(n)le nombre d"opérations arithmétiques effectuées par l"algorithme de Karatsuba. Un appel sur des polynômes de degré au plusn1fait3appels récursifs sur des polynômes de degré au plusn=21ainsi que2additions de polynômes de degré au plus n=21et2additions de polynômes de degré au plusn1. Finalement, la dernière étape peut 12 Algorithme 1Algorithme de KaratsubaEntrées :P; Q2A[X]de degré au plusn1avecn= 2k.

Sorties :Le produitP Q.

Sin= 1Alors

- RetournerP Q; Sinon - DécomposerPetQsous la forme (2.2); - CalculerH0=P0Q0etH2=P1Q1en utilisant deux appels récursifs; - CalculerP0+P1etQ0+Q1;quotesdbs_dbs42.pdfusesText_42
[PDF] registre oratoire

[PDF] registre épidictique

[PDF] greffe tribunal de commerce de bourg en bresse

[PDF] modification adresse kbis

[PDF] greffe du tribunal de commerce de bourg en bresse extrait kbis

[PDF] document registre du commerce

[PDF] cours registre ? décalage

[PDF] registre ? décalage entrée parallèle sortie série

[PDF] registre a decalage fonctionnement

[PDF] registre ? décalage 4 bits

[PDF] registre ? décalage pdf

[PDF] registre universel

[PDF] les registres ? décalage exercice corrigé

[PDF] td corrigé registre ? décalage

[PDF] geogebra pdf