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 2Table des matières
1 Introduction
51.1 Qu"est-ce que le calcul formel?
51.2 Structures algébriques effectives
61.3 Analyse d"un algorithme
61.4 Principes algorithmiques généraux
81.4.1 Évaluation-Interpolation
81.4.2 Méthodes modulaires
91.4.3 Diviser pour régner
92 Algorithmique rapide pour les opérations de base en calcul formel
112.1 Multiplication de polynômes
112.1.1 Algorithme naïf
112.1.2 Algorithme de Karatsuba
122.1.3 Transformée de Fourier rapide (FFT)
132.2 Inversion de séries formelles et division euclidienne
152.2.1 L"anneau des séries formelles
152.2.2 Calcul formel dans l"anneau des séries formelles
162.2.3 Application à la division euclidienne
192.3 Multiplication de matrices
2 02.3.1 Algorithme naïf
212.3.2 Algorithme de Strassen
213 Pgcd et résultant
253.1 Rappels : anneaux factoriels et anneaux euclidiens
253.1.1 Divisibilité,pgcdetppcm. . . . . . . . . . . . . . . . . . . . . . . .25
3.1.2 Division euclidienne
273.2 Calcul dupgcdet des coefficients de Bézout. . . . . . . . . . . . . . . . . . 2 9
3.2.1 Dans un anneau euclidien : le cas des entiers
293.2.2 Le théorème des restes chinois
313.2.3 Dans un anneau de polynômes
353.3 Résultant de deux polynômes
403.3.1 Matrice de Sylvester et forme échelonnée
403.3.2 Propriétés du résultant
433
3.3.3 Calcul du résultant. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.4 Résultant en plusieurs variables et élimination
444 Factorisation de polynômes à une variable
474.1 Factorisation sans carré
474.1.1 Définition et existence
474.1.2 Calcul de la factorisation sans carré
484.2 Factorisation surZ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
4.2.1 Rappels : factorisation sur un corps fini
524.2.2 Algorithme utilisant un grand nombre premier
524.2.3 Algorithme utilisant la remontée de Hensel
535 Intégration symbolique
575.1 Algèbre différentielle et fonctions élémentaires
575.2 Le cas particulier des fractions rationnelles
595.2.1 Calcul de la partie polynomiale
5 95.2.2 Calcul de la partie rationnelle
605.2.3 Calcul de la partie logarithmique
645.3 Le cas général des fonctions élémentaires
6 66 Équations différentielles linéaires et séries formelles
696.1 Résolution deL(y) = 0par des séries entières. . . . . . . . . . . . . . . . . 69
6.1.1 Structure des solutions
696.1.2 Existence de séries solutions au voisinage d"un point ordinaire
7 16.1.3 Calcul des séries solutions au voisinage d"un point ordinaire
726.2 Résolution deL(y) = 0par des séries quasi-entières. . . . . . . . . . . . . . 7 5
6.2.1 Séries quasi-entières
756.2.2 Équation indicielle et calcul des séries quasi-entières solutions
764
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 duré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 à savoirdes 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 quela 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 danscette 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é decertaines 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 sontessentiellement 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éespar 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 dansKetnadditions 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 7basé 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 matricecarré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 structurealgé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 serontutilisé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é del"é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. 81.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èsgrande 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 : R2= rem(R0;R1) =1132933844
X3+4096053844
X21838551922
X+2721193844
R3= rem(R1;R2) =1842328292309212835303849
X21523917079036812835303849
X+1096636125825612835303849
R4= rem(R2;R3) =21613227465379239544863744148979404824831944178
R5= 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 dudé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 grand1. 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)impliqueK(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. 10Chapitre 2
Algorithmique rapide pour les opérations
de base en calcul formelDans 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 desré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 alorsP 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 produitP 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"algorithmenaï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 alorsP=P0+P1Xn2
; Q=Q0+Q1Xn2 ;(2.2) oùP0; P1; Q0etQ1sont des polynômes de degré au plusn=21 = 2k11. On applique alorsla 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 é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