Home

MATH´EMATIQUES ET INFORMATIQUE

image

Contents

1. exp 72 t 2 1 1 V2 et 2 n 1 Tr An T TInt1 lt 2 La deuxi me in galit montre en particulier que la convergence de Tp vers 7 est quadra tique Version 15 janvier 2005 12 4 La formule de Brent Salamin 403 12 4 3 Programme la formule de Brent Salamin Pour le calcul de 7 par la formule de Brent Salamin on value l approximation 2 danyi ie TDI j 1 An o ao 1 bo 1 V2 et pour n gt 1 An an bn_1 2 bi V An 10n 1 Cn An 1 An En fait il suffit de disposer de a et de c2 et il appara t que l on peut calculer par r currence ces valeurs Si l on pose en effet a a2 Bn b2 et Yn c2 on obtient ao 1 Bo 1 2 et pour n gt 0 Yn An Bn Bn41 V Qn n AQni1 An Bn 2Bn41 II Dans la proc dure ci dessous on calcule a 1 Bn 1 et Yn partir des valeurs corres pondantes pour n 1 Il est commode de garder aussi 2 dans une variable 6 ainsi que le d nominateur de mn Enfin pour calculer 5 1 on calcule d abord la racine de 1 anbn et comme les valeurs changent peu mieux vaut partir pour l valuation de la valeur obtenue l it ration pr c dente de 7 PROCEDURE IterationPi VAR alpha beta gamma delta D UnSurD UnSurRBeta piapproche Flottant Calcule l approximation suivante de m D est le d nominateur UnSurD est son inverse UnSurRBeta est l inverse de la racine de f VAR N Flo
2. PROCEDURE Jacobi n integer VAR a mat VAR sigma real Version 15 janvier 2005 92 Chapitre 5 Valeurs et vecteurs propres R alise une it ration de la m thode de Jacobi choix des indices p q calcul de la matrice de transformation et application de la transformation La somme des carr s des l ments non diagonaux est mise jour dans sigma VAR P q integer c s real BEGIN IndicesMax n a p q CoefficientsJacobi p q c s a sigma sigma 2 sgr alp ql TransformationJacobi n p q C S a END de Jacobi Quand arr ter les it rations Une bonne indication est donn e par le fait que S A ne change plus beaucoup C est ce crit re que nous appliquons avec en plus un test qui permet de sortir lorsque le nombre d it rations d passe une quantit fix e La variable MaxIteration est d finir dans le programme entourant PROCEDURE ValeursPropresParJacobi n integer VAR a mat VAR NIteration integer Remplace a par une matrice diagonale contenant les valeurs propres de a Le nombre d it rations est galement rapport VAR sigma sigmaN real BEGIN sigmaN SommeDesCarres n a NIteration 0 REPEAT sigma sigmaN NIteration Nlteration 1 Jacobi n a sigmaN UNTIL EstNul sigmaN sigma OR NIteration gt Maxlteration END de ValeursPropresParJacobi On initialise donc le processus en calculant le nombre S A par FUNCTION SommeDesCarres n
3. 1 z 1 804 1 84 Gra 1 n 1 Version 15 janvier 2005 226 Chapitre 8 Exemples combinatoires ce qui ach ve la d monstration Comme annonc l identit d Euler Th or me B 3 5 s obtient comme un simple corol laire de l identit de Jacobi en faisant la substitution de x par et de z par x7 1 2 dans l quation 3 1 Il vient J 0 a 28003 1 3 0n D 3 i Z IG E x 1 E EE A ani _ IG x n 1 n 1 et par ailleurs le terme g n ral du membre droit de l identit d Euler s crit 3 2 CRE 27 2 _ 1 22 27 2 La Me 1 x3 6n D pe g7 8n 1 L identit de Jacobi a de nombreuses autres cons quences int ressantes que nous n vo querons pas ici 8 3 3 Programme partitions d entiers Une partition est une suite finie d entiers On utilisera pour la repr senter le type mot d fini dans le chapitre suivant Ici nous n avons besoin que de la d finition et de quelques proc dures TYPE mot ARRAY O LongueurMax OF integer PROCEDURE EntrerMot VAR u mot titre texte PROCEDURE EcrireMot VAR u mot titre texte FUNCTION Longueur VAR u mot integer PROCEDURE FixerLongueur VAR u mot n integer La constante LongueurMax est fix e une taille appropri e La r daction des proc dures est expliqu e au chapitre suivant Pour engendrer les partitions de n ou des partitions restreintes d
4. 1 THEN Acolorer k ELSE Acolorer 0 END de Acolorer BEGIN de Colorer FOR i 1 TO n DO Couleur i 0 Couleur X 1 1 1 Couleur X 1 2 2 Couleur X 1 3 3 SommetsNonColores n 3 WHILE SommetsNonColores gt 0 DO FOR m 2 TO n 2 DO BEGIN k Acolorer X m IF k gt O THEN BEGIN Couleur k 6 319 On parcourt les sommets et on compte les sommets incolores Si un seul sommet est colorer son num ro est k sinon ne rien faire Initialisation Coloration du premier triangle Restent colorer Triangle colorer La couleur compl mentaire Couleur X m 1 Couleur X m 2 Couleur X m 3 SommetsNonColores END END END de Colorer SommetsNonColores 1 Version 15 janvier 2005 320 Chapitre 10 G om trie algorithmique Enfin pour choisir le meilleur emplacement des gardiens on choisi la couleur la moins fr quente FUNCTION LaMeilleureCouleur n integer Couleur Suitelndices integer Calcule une couleur qui appara t le moins souvent dans la coloration des sommets VAR Card ARRAY 1 3 OF integer Cardmin i c integer BEGIN FOR c 1 TO 3 DO Card c 0 FOR i 1 TO n DO BEGIN Calcul des fr quences c Couleur i Card c Card c 1 END La plus petite fr quence Cardmin min Card 1 min Card 2 Card 3 IF Card 1 Cardmin THEN LaMeilleureCouleur 1 ELSE IF Card 2
5. 12 3 Calcul de x par arctangente 12 3 1 Enonc calcul de x par arctangente Le calcul de x avec beaucoup de d cimales peut se faire au moyen de formules impliquant l arctangente comme par exemple i Arctan 1 2 Arctan 1 3 2Arctan 1 3 Arctan 1 7 2Arctan 1 4 Arctan 1 7 2Arctan 1 13 5Arctan 1 8 2Arctan 1 18 3Arctan 1 57 Les calculs se feront en multipr cision dans une base b telle que b soit encore un entier simple pr cision par exemple b 100 un nombre y avec y lt b p chiffres en base Version 15 janvier 2005 384 Chapitre 12 Grands nombres b sera repr sent par la suite yo 7 dentiers tels que Pp y 9 ub i 0 avec 0 lt y lt b pour i 1 p et 0 lt yol lt b On pose Sn u SOCH 2k 1 k 0 et Ru Arctan u Sn u 1 D montrer que pour avoir p chiffres en base b de Arctan 1 x o gt 1 est entier il suffit de calculer 1 x avec n gt pInb Inx 3 2 2 D montrer que si x lt b et 2n 1 lt b S 1 x peut tre valu par le sch ma de Horner et que seules des multiplications ou divisions par des entiers b sont n cessaires 3 Ecrire une proc dure qui prend en argument un entier x gt 1 et un entier p et qui calcule p chiffres en base b de Arctan 1 x 4 Ecrire un programme qui lit une suite amp 1 1 Qk k d entiers avec 1 lt x lt b et qui calcule p chiffres en base b de
6. BEGIN DecalerMantisseDroite delta v Aligne l exposant de v retenue 0 FOR k TailleMax DOWNTO 1 DO Calcul de la somme SommeChiffres ulk l v k wlkl retenue chiffre par chiffre IF retenue 1 THEN BEGIN La derni re retenue est DecalerMantisseDroite 1 w inscrite en mantisse w 1 retenue FixerExposant w 1 Exposant u et en exposant END ELSE Version 15 janvier 2005 376 Chapitre 12 Grands nombres FixerExposant w Exposant u END de PositifEtPositif La proc dure fait appel la proc dure SommeChiffres d j vue avec les grands entiers La soustraction de deux flottants de m me signe pose le probl me inverse du d calage savoir de la normalisation si le flottant n est pas nul son premier chiffre doit tre non nul On obtient cette normalisation en d calant la mantisse Ceci introduit des z ros en fin de repr sentation Voici comment on r alise la normalisation PROCEDURE NormaliserFlottant VAR u Flottant VAR d integer BEGIN d 1 WHILE d lt TailleMax AND uld 0 DO Chercher le premier d d 1 chiffre non nul IF d 1 TailleMax THEN Si u 0 ne rien faire ELSE IF d gt 1 THEN BEGIN DecalerMantisseGauche d 1 u sinon d caler de d positions FixerExposant u Exposant u d 1 et r percuter sur l exposant END END de NormaliserFlottant La proc dure suivante r alise la soustraction de deux flottants de m me signe
7. FUNCTION Puissance x real n integer real VAR i p integer BEGIN p 1 FOR i 1 TO n DO p p x Puissance p END de Puissance 423 Calcule x Le test si la repr sentation d un nombre r el est nulle ne peut se faire qu pr s On est donc naturellement conduit aux fonctions FUNCTION EstNul r real boolean BEGIN EstNul abs r lt epsilon END de EstNul FUNCTION EstPositif r real boolean BEGIN EstPositif r gt epsilon END de EstPositif Voici en premi re application la fonction signe FUNCTION signe r real integer BEGIN IF EstNul r THEN signe 0 ELSE IF r gt 0 THEN signe 1 ELSE signe 1 END de signe Les trois proc dures suivantes savoir PROCEDURE bip PROCEDURE TopChrono FUNCTION TempsEcoule real Vrai si r est nul pr s Vrai si r est positif pr s d pendent du mat riel utilis En THINK Pascal sur MacIntosh elles s crivent PROCEDURE bip BEGIN SysBeep 1 END de bip Version 15 janvier 2005 424 Annexe A Un environnement PROCEDURE TopChrono BEGIN DebutChrono TickCount END de TopChrono FUNCTION TempsEcoule real BEGIN TempsEcoule TickCount DebutChrono 60 END de TempsEcoule La variable DebutChrono de type longint est locale la biblioth que En TURBO Pascal sur PC ces m mes proc dures s crivent PROCEDURE bip
8. PROCEDURE EcrireGraphique a Pixel n integer 455 Version 15 janvier 2005 Index moyenne arithm tico g om trique B96 A accessible sommet 131 133 acyclique matrice 131 133 adjacentes faces R80 alg bre de Lie 32 B5 engendr e par une partie B2 r soluble b4 algorithme de Berlekamp de Graham alphabet alphab tique ordre angle P82 di dre anneau euclidien 326 principal ap riodique matrice 131 arc ar te 279 de Delaunay L94 p99 de Vorono 300 B Berlekamp algorithme de Bernoulli nombres de polyn mes de Bezout th or me de binomial coefficient Brent Salamin formule de B94 B96 C Catalan nombres de p42 B41 B43 suites de B41 456 cercle de Delaunay chemin longueur d un Choleski d composition de B7 coefficient binomial coloriage complexit d un algorithme concat nation conjugu d un mot p35 d une partition 221 convexe dimension d un 276 enveloppe 284 276 Crout m thode de 52 cycle 130 cyclique l ment Lsd D d but d un mot p33 d composition de Choleski b7 LU B1 Fr QRF degr Delaunay ar te de d terminant calcul du diagonale diagramme de Ferrer INDEX de Vorono 300 di dre angle division euclidienne de polyn mes Duval factorisation de E l mentaire matrice ELSE entier de Gauss B25 B26 irr ductible B25 enveloppe convexe 77 inf rieure
9. S aArctan 1 x et l utiliser pour calculer 20 d cimales de 7 x 3 1415 9265 3589 7932 3846 2643 3832 5 Apporter les modifications n cessaires au programme pour pouvoir utiliser des formules comme celle de Machin z 4Arctan 1 5 Arctan 1 239 dans lesquelles 7 4 est combinaison lin aire d expressions Arctan 1 x o l entier x est encore un entier simple pr cision mais o son carr ne l est plus n cessairement On pose R R U 00 On d finit une bijection t de R xZ sur R par Ye Ti si x T 2 00 si x 7 2 et on pose pour x y R z y tt x t y Version 15 janvier 2005 12 3 Calcul de m par arctangente 385 6 D montrer que R est un groupe isomorphe R rZ 7 D montrer que pour x y E R et zy 1 on a x y re Donner la valeur de x y dans les autres cas 8 D montrer que 1 x 1 x 1 1 x x 1 On pose Fo F1 1 et pour n gt 0 Fn 42 Fn 1 Fn D montrer que pour n gt 0 on a 1 Fon 1 1 Fon 1 Fon 1 9 Dans cette question les rationnels seront repr sent s par une paire num rateur d nominateur d entiers premiers entre eux Ecrire une proc dure qui pour x y Q avec xy 1 calcule x y et utiliser cette proc dure pour v rifier les 3 premi res des formules donn es au d but du texte Soit O j un rep re orthonorm du plan Soient A et B deux points d un cercle C de centre O On note W
10. V d si V c V d gt 1 alors on calcule V e pour e c d 2 et on consid re s par ment le cas o p e 0 et le cas o p e 0 Exemple num rique p X X 6X 11X 6 5 Compl ter ce programme pour qu il accepte des polyn mes ayant des z ros multi ples 6 On suppose que p X est sans z ros multiples D montrer que si p x 0 pour un 4 gt 0 et un r el x alors p _1 pir1 x lt 0 7 Soient a et b deux nombres r els tels que a lt b et p a p b 0 Soit xo a b un z ro de p X D montrer que si gt 0 est suffisamment petit alors V zo V o 1 et en d duire le th or me de Sturm 7 1 2 Solution suites de Sturm Donnons d abord la d finition g n rale des suites de Sturm plus g n rale que celle de l nonc Soit p X un polyn me coefficients r els et soient a et b deux nombres r els avec a lt b Une suite de polyn mes Po P1 Pm avec po p est une suite de Sturm pour p sur fa b lorsque les conditions suivantes sont v rifi es G p a p b 0 i la fonction polyn me pm ne s annule pas sur Ja b iii sip c 0 pour un c Ja b et pour un indice j tel que 0 lt j lt m alors pj 1 c p 1 c lt 0 On consid rera le plus souvent des suites qui v rifient la condition suppl mentaire iv sip c 0 pour un c Ja b alors p x p x x c gt 0 au voisinage de c Version 15 ja
11. a une matrice sym trique et soient p et q deux indices tels que p q Soit B bi j G q p AG q p Alors les coefficients de B sont bij ai ip iq JD IF bp j Cap j SGg j j p j q ba j Caq j Sap j JP j q bpp C ap p S Qg g 2SCAp q baq s app aqq 28cap q bp q 2 s ap q SC p p aq q PROPOSITION 5 1 1 Si ap 0 il existe un r el 0 m 4 7 4 0 0 unique tel qu en posant c cos 0 et s sin 0 on ait bp 0 Preuve Soit 0 tel que Ag a T cotan 20 21 Pr 2ap q et soit t la racine de plus petit module du trin me P 2rt 1 0 avec t 1 si T 0 Alors t tan 0 et en posant c cos 0 et s sin 0 on a bp 0 Un calcul rapide montre que t s exprime simplement ___ et rl V1 72 Version 15 janvier 2005 88 Chapitre 5 Valeurs et vecteurs propres o E u 1 si u lt 0 et e u 1 si u gt 0 Comme 1 C S t vli t aucun calcul de fonction trigonom trique n est n cessaire pour valuer c et s q L introduction de 0 est utile pour prouver la convergence Le param tre convenable est le carr de la norme euclidienne Pour toute matrice sym trique soit S 4 X j tA Y 0 ij 1 i 1 25 o tr M est la trace de la matrice M LEMME 5 1 2 Soit A une matrice sym trique et soit B G q p AG q p Alors S B S A 22 22 4 Preuve On a B G q p A G q p donc tr B tr G
12. l exception des coefficients en dehors de la diagonale et des sous et sur diagonales alors que pour la d composition QR on n annule que la partie triangulaire strictement inf rieure mais toute cette partie La m thode repose sur la proposition qui suit PROPOSITION 4 3 1 Soit une matrice sym trique d ordre n et soient A1 An P Ph_2 les matrices d finies par P P 2 AU A PAP P P r 1 A0 A P AP r 2 n 02 Alors la matrice An 2 est sym trique et tridiagonale Preuve Chaque matrice est videmment sym trique Montrons que les matrices Ar sont tridiagonales sur leurs r premi res lignes et colonnes c est dire que les Version 15 janvier 2005 4 3 Tridiagonalisation m thode de Householder 81 coefficients di de sont nuls si i j gt 2 et si lt r ou j lt r Ceci est bien entendu vrai pour r 0 en posant Ao Nous avons d j remarqu que la matrice P Ar 1 est tridiagonale sur les r 1 premi res colonnes parce que Ar 1 l est De plus les coefficients d indice i r sont nuls pour i r 2 n Par sym trie Ap 1 P est sym trique sur les r 1 premi res lignes Or la matrice P s crit par bloc sous la forme I 0 Peine 5 o 1 est la matrice unit d ordre r Par cons quent A P A4 _ P a les m mes r premi res colonnes que P A et les m mes r premi res lignes que Ar 1 Pp Pour le calcul il est judicieux de grou
13. p et J C 1 q On dit que A est unimodulaire si et seulement si A est de rang p et si toutes les sous matrices carr es d ordre p p ont un d terminant gal 0 1 ou 1 On dit que A est totalement unimodulaire si et seulement si le d terminant de toutes les sous matrices carr es de vaut 0 1 ou 1 1 Ecrire une proc dure qui prend en argument une matrice carr e coefficients 0 1 ou 1 et qui calcule la valeur absolue de son d terminant on pourra supposer p q lt 5 Exemple num rique 1 1 1 1 1 1 1 1 1 1 A 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 Ecrire une proc dure qui teste si une matrice coefficients 0 1 ou 1 est unimodulaire on pourra supposer p lt 5 et q lt 10 Exemples num riques tester si les matrices suivantes sont unimodulaires 1 1 0 0 AO O ER A Re MT 11100 Mely 1 1 11 amp l 05110 0 0 1 1 10011 Version 15 janvier 2005 118 Chapitre 6 Matrices en combinatoire 3 D montrer que si chaque ligne de contient exactement un 1 et un 1 les autres coefficients tant nuls alors est totalement unimodulaire Ceci fournit des exemples de matrices totalement unimodulaires 4 D montrer que est totalement unimodulaire si et seulement si la matrice a11 a12 alq 1 0 ER i a21 a22 2q 0 1 0 A Ip Apl Ap2 pq 0 0 PA 1 est unimodulaire 5 Ecrire une proc dure qui teste si est totalement unimodul
14. s 8 changements changements 1 END END Variation changements END de Variation La majoration des modules des z ros d un polyn me p X an X ao se fait en appliquant l une des formules du th or me Pour la minoration il suffit de consid rer le polyn me r ciproque X p 1 X aoX an et d en majorer les z ros Voici une r alisation FUNCTION MajorationDesZeros p pol real VAR r real i n integer BEGIN n Degre p r 0 FOR i 1 TO n DO r rmax r rPuiss abs pln i pin 1 i MajorationDesZeros 2 r END de MajorationDesZeros FUNCTION MinorationDesZeros p pol real VAR r real i n integer BEGIN n Degre p r 0 FOR i 1 TO n DO r rmax r rPuiss abs pli p 0 1 i MinorationDesZeros 1 2 r END de MinorationDesZeros En fait on est int ress par la minoration des z ros dans la situation suivante lorsque l on a d couvert un z ro r el c de p on veut d terminer un intervalle autour de c qui ne contient aucun autre z ro de p Pour cela on consid re le polyn me q X p X c X Une minoration du module des z ros de q donne un intervalle c c dans lequel il n y a aucun z ro de p l exception de c Le changement de variable indiqu se r alise par Version 15 janvier 2005 154 Chapitre 7 Polyn mes PROCEDURE ChangementVariable p pol c real
15. 0 03 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 E 1 1 a 0 03 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 E 1 a 0 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 3 Version 15 janvier 2005 12 2 Arithm tique flottante 381 0 01 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 2 0 01 41 70 00 00 00 00 00 00 00 00 00 00 00 00 00 E 2 0 01 42 84 77 70 00 00 00 00 00 00 00 00 00 00 00 E 2 0 01 42 85 71 42 24 21 89 70 00 00 00 00 00 00 00 E 2 0 01 42 85 71 42 85 71 42 85 44 95 68 54 44 49 74 E 2 0 01 42 85 71 42 85 71 42 85 71 42 85 71 42 85 72 E 2 0 01 42 85 71 42 85 71 42 85 71 42 85 71 42 85 72 E 2 1 a 0 01 42 85 71 42 85 71 42 85 71 42 85 71 42 85 72 E 2 On voit l influence des erreurs d arrondis sur la derni re d cimale on devrait avoir 71 au lieu de 72 puisque le d veloppement est p riodique Pour calculer 1 a on proc de de m me en traduisant la formule de r currence En 1 3 n az 2 n gt 0 L encore il faut choisir une valeur initiale convenable Consid rons nouveau a B a1 B7 a2B7 Si e est impair alors ya B 1 2 ar et donc L B F B B ya 4 Q1 et si e est pair 1 e 2 B 1 EON s ae _ va VaiB az La proc dure g n rale est PROCEDURE UnSurRacineFlottant a Flottant VAR b Flottant VAR e chiffre BEGIN b FlottantNul e Exposant a IF odd e THEN BEGIN FixerExposant b e 1 DIV 2 b 1
16. 1 1 pour i 1 n D entier n est la longueur de u Un mot de longueur n est repr sent par un tableau d entiers n 1 l ments l l ment d indice 0 contenant la longueur du mot Un mot u u1 Un est un mot de Lukasiewicz si n k Ju 1 et X u0 pour 1 lt k lt n 1 i 1 i 1 1 Ecrire une proc dure qui teste si un mot est un mot de Lukasiewicz Exemples num riques 1 1 1 1 1 1 1 1 et 1 1 1 1 1 1 1 1 1 Un pic du mot u u1 Un est un entier 1 lt lt n 2 tel que u 1 et Ui 1 2 1 On d finit une fonction p qui un mot u u1 u associe un mot p u de la mani re suivante plu u si u ne poss de pas de pic plu u1 Ui 1 i42 Un si u poss de un pic et si est le plus petit pic de u Soit p la fonction d finie pour un mot u par p u p u o m est le plus petit entier gt 0 tel que p u p u On pose p 1 po p 2 D montrer que u est un mot de Lukasiewicz si et seulement si p u 1 3 Ecrire des proc dures qui calculent p u et p u pour un mot u Version 15 janvier 2005 9 2 Mots de Lukasiewicz 239 4 D montrer que si u u1 Un et v v1 Um sont des mots de Lukasiewicz alors 1 u1 Un U1 Um est un mot de Lukasiewicz 5 D montrer que r ciproquement si w w1 Wn est un mot de Lukasiewicz et si n gt 1 alors w 1
17. 1 TO m DO BEGIN FOR j 1 TO n DO write Ali j 3 writeln END END de EcrireMatE Comme nous n aurons utiliser que des matrices coefficients 0 1 ou 1 la proc dure d entr e se simplifie ainsi PROCEDURE EntrerMatE VAR m n integer VAR a matE titre texte Affichage du titre puis lecture de la matrice A d ordre m n coefficients 0 1 ou 1 Les entr es sont cod es par 0 et VAR ch char i j integer BEGIN writeln Version 15 janvier 2005 6 1 Matrices unimodulaires 125 writeln titre write Nombre de lignes readln m write Nombre de colonnes readln n FOR i 1 TO m DO BEGIN writeln ligne i 2 gt FOR j 1 TO n DO BEGIN readln ch CASE ch OF 249 ali j 1 2 De ali j 1 OTHERWISE ali j 0 END END writeln END END de EntrerMatE Pour le calcul du d terminant on se contente de convertir la matrice de type matE au type mat et on utilise la proc dure determinant de la biblioth que On pourrait ventuellement utiliser une autre proc dure pour ne pas avoir passer en r els en adaptant par exemple la proc dure r cursive de calcul du d teminant qui est efficace pour des matrices carr es d ordre inf rieur ou gal 5 FUNCTION det VAR A matE p integer integer Calcule le d terminant de A VAR i j integer R mat BEGIN FOR i 1 TO p DO FOR j 1 TO p DO Ri j
18. 30 Chapitre 2 Manipulation de matrices FOR k 1 TO rang DO CopierColonne m p k u k u h MatriceNulle FOR k 1 TO n rang DO CopierColonne rang rang k a k h END de DecompositionSurBaseDesColonnes Apr s ces pr liminaires la proc dure de calcul de la pseudo inverse s crit PROCEDURE PseudoInverse m n integer a mat VAR g mat Calcule la pseudo inverse g de la matrice a d ordre m n VAR u h bg mat p vecE i r integer BEGIN DecompositionSurBaseDesColonnes m n a r u h p PseudoInverseDecomposee m r n u h bg FOR i 1 TO n DO CopierLigne m i bg plil g END de PseudoInverse Voici quelques r sultats num riques Consid rons d abord le cas d une matrice de rang maximal On obtient Matrice de d part 1 000 1 000 1 000 000 2 000 4 000 000 3 000 9 000 000 4 000 16 000 000 5 000 25 000 Bb hr H Sa pseudo inverse 1 800 0 000 0 800 0 600 0 600 1 057 0 329 0 857 0 529 0 657 0 143 0 071 0 143 0 071 0 143 Si la matrice est donn e sous forme d compos e Entrer la matrice U Ligne 1 12 Ligne 2 00 Ligne 3 00 Ligne 4 21 Entrer la matrice K Ligne 1 001 Ligne 2 000 Matrice de d part 1 000 2 000 0 000 0 000 1 000 0 000 0 000 0 000 0 000 0 000 Version 15 janvier 2005 2 1 Pseudo inverses 0 000 0 000 2 000 1 000 Matrice W 0 500 0 000 0 000 1 000 La pseudo inverse 0 167 0 000 0 667 0 000 0 000 0 000 0
19. END de EchangerFinLignes PROCEDURE EchangerColonnes i j integer VAR h integer BEGIN FOR h 1 TO m DO Echanger a h i a h j END de EchangerColonnes PROCEDURE PivoterGauss k integer Variante VAR i j integer g real BEGIN FOR i k 1 TO m DO BEGIN g ali k alk k FOR j k 1 TO n DO ali j ali j g alk j END END de PivoterGauss BEGIN de Rang rs ni k 1 WHILE k lt r DO BEGIN q ChercherPivot k independant q lt gt m 1 IF independant THEN BEGIN IF q gt k THEN EchangerFinLignes k q PivoterGauss k k k 1 END ELSE BEGIN EchangerColonnes k r r r 1 Version 15 janvier 2005 20 END de Rang END de k END Rang r Chapitre 1 Calcul matriciel Voici un exemple d ex cution de la proc dure avec quelques impressions interm diaires Entrer la matrice Ligne 1 102 Ligne 2 204 Ligne 3 316 Ligne 4 102 Ligne 5 000 Matrice lue 1 000 0 000 2 000 0 000 3 000 1 000 1 000 0 000 0 000 0 000 k 2 r 3 1 000 0 000 2 000 0 000 3 000 1 000 1 000 0 000 0 000 0 000 k 3 r 3 1 000 0 000 2 000 1 000 3 000 0 000 1 000 0 000 0 000 0 000 k 3 r 2 1 000 0 000 2 000 1 000 3 000 0 000 1 000 0 000 0 000 0 000 Rang 2 O O O N OON Oo ND OO amp N O ON 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
20. END e Modification de BEGIN writeln Actuellement epsilon vaut epsilon 10 8 write Donner la nouvelle valeur readln epsilon END Le premier param tre initialis faux permet de basculer entre deux modes lors du test d un programme En effet un programme ne marche parfois pas du premier coup Il est utile de pr voir certains endroits que l on estime appropri s des impressions interm diaires Ces impressions peuvent d ailleurs aussi tre utiles pour se faire une id e du d roulement du programme de la vitesse de convergence etc On active et d sactive les impressions interm diaires au moyen de la variable test en faisant pr c der chaque impression interm diaire par la condition IF test THEN On verra un exemple plus bas Il existe des directives de compilation sp cifiques aux compilateurs qui permettent de ne pas compiler ces tests une fois le programme au point Les deux autres param tres concernent la pr cision d affichage c est dire le nombre de d cimales souhait es et la valeur de qui est utilis pour tester qu un r el est nul Voici un exemple complet d une proc dure de menu Il s agit du menu d un programme qui teste les diverses op rations offertes dans la biblioth que concernant les polyn mes coefficients r els Le programme lui m me a l allure suivante PROGRAM LibPolynomes USES general polynomes VAR n integer
21. Ecrire une proc dure qui pour deux mots u et v d termine si u lt v Un conjugu d un mot u u1 Un est un mot de la forme v ui Un U1 Ui 1 avec 2 lt i lt n Un mot u est un mot de Lyndon si u lt v pour tout conjugu v de u Clairement un mot de longueur 1 est un mot de Lyndon 4 Ecrire une proc dure qui teste si un mot est un mot de Lyndon 5 Soit u un mot D montrer que s il existe un mot qui est la fois un d but et une fin de u alors u n est pas un mot de Lyndon 6 D montrer qu un mot u est un mot de Lyndon si et seulement si pour toute fin h de u on a u lt h Ecrire une proc dure qui teste si u est un mot de Lyndon en utilisant cette caract risation 7 D montrer que si un mot u de longueur gt 1 est un mot de Lyndon il existe deux mots de Lyndon f et g tels que u fg et f lt g et r ciproquement si f et g sont des mots de Lyndon tels que f lt g alors fg est un mot de Lyndon Utiliser cette caract risation pour crire une proc dure qui d termine tous les mots de Lyndon de longueur au plus n On les affichera dans l ordre lexicographique On testera pour n 5 Soit u u1 Un un mot Une factorisation de Lyndon du mot u est une s quence u u uP de mots de Lyndon telle que COR D O a eO Version 15 janvier 2005 9 3 Mots de Lyndon 249 Par exemple pour u 0 1 0 1 0 0 1 1 0 0 1 0 0 une factorisation de Lyndon est 0 1 0 1
22. EcrirePolynome p p X PolynomeParXn p n p EcrirePolynome p p X n END d A Valeur BEGIN write Donner la valeur de x gt readln x EcrirePolynome p p X writeln p x 1 precision Valeurd Degre p p x 1 precision END PR BEGIN u p p q q r r u EcrirePolynome p p X EcrirePolynome q q X EcrirePolynome r r X END rz Bascule test BEGIN IF test THEN BEGIN test false writeln Maintenant hors test END ELSE BEGIN test true writeln Maintenant en test END END H Modification de la pr cision d affichage BEGIN writeln Pr cision d affichage actuelle precision 1 write Donner la nouvelle valeur readln precision END Version 15 janvier 2005 446 Annexe A Un environnement amp Modification de BEGIN writeln Actuellement epsilon vaut epsilon 10 8 write Donner la nouvelle valeur readln epsilon END ARE Fin BEGIN writeln writeln J arr te halt END OTHERWISE Choix inexistant bip END case END de Menu Consid rons la proc dure de calcul du pgcd de deux polyn mes PROCEDURE PolynomePgcd a b pol VAR pgcd pol VAR r pol BEGIN WHILE NOT EstPolNul b DO BEGIN PolynomeModPolynome a b r IF test THEN EcrirePolynome r gt a b b r END PolynomeParConstante
23. FUNCTION EstEntierNul VAR u entier boolean PROCEDURE EntierNul VAR u entier FUNCTION Taille VAR u entier integer PROCEDURE FixerTaille VAR u entier p integer FUNCTION LeSigne VAR u entier integer PROCEDURE FixerSigne VAR u entier s integer PROCEDURE ChiffreEnEntier x chiffre VAR u entier Op rations arithm tiques PROCEDURE EntierPlusEntier u v entier VAR w entier PROCEDURE EntierMoinsEntier u v entier VAR w entier PROCEDURE EntierParChiffre u entier x chiffre VAR w entier PROCEDURE EntierSurChiffre u entier x chiffre VAR w entier PROCEDURE EntierParEntier u v entier VAR w entier PROCEDURE EntierDivEuclEntier u v entier VAR q r entier PROCEDURE EntierModEntier u v entier VAR w entier PROCEDURE EntierDivEntier u v entier VAR w entier Op rations sur entiers naturels PROCEDURE ChiffreEnNaturel x chiffre VAR u entier PROCEDURE NaturelPlusNaturel VAR u v w entier PROCEDURE NaturelMoinsNaturel VAR u v w entier PROCEDURE NaturelParNaturel u v entier VAR w entier PROCEDURE NaturelDivEuclNaturel u v entier VAR q r entier FUNCTION CompareNaturel VAR u v entier integer PROCEDURE NaturelParMonome u entier x chiffre n integer VAR w entier PROCEDURE NaturelParChiffre u entier x chiffre VAR w entier PROCEDURE NaturelPlusChiffre u entier x chiffre VAR w entier PROCEDURE NaturelSurCh
24. a b 4 2 a Version 15 janvier 2005 12 4 La formule de Brent Salamin 397 PROPOSITION 12 4 1 Les suites as bn et cn sont li es par les relations Cn 1 an T bn 2 An 1 Cn 1 An 4 3 A2 a An 1Cn 1 c A An 1 Cn 1 bn Preuve En effet en utilisant 1 il vient 1 a apy bi q an bn anbn 1e bn Puis 1 1 An 1 Cn 1 5 an bn 3 an bn n 1 An 1 Cn 1 3 an T bn 3 an bn bn et enfin i An 1 n 1 1e m bn an bn 1 L Cette derni re galit montre que la convergence de la suite cn et par suite galement la convergence des suites an et b est quadratique ou encore du second ordre en effet en usant de la d croissance de la suite an il vient 2 i lt HS Au a b Plus g n ralement la convergence d une suite un de limite l est dite d ordre m gt 1 s il existe une constante C gt 0 telle que lung I lt Clun if Pour C voisin de 1 une it ration fait passer de la pr cision 107 la pr cision 1077 Les suites an bn et Cn obtenues pour a 1 b 1 2 permettent de calculer m en utilisant la formule de Brent Salamin __4 1 1 V2 1 5 N A n 1 Les int grales elliptiques du premier et du second ordre sont d finies par T 2 T 2 Lab f 1 A a b o dp et Jab A a b do 4 4 o A a b a cos b sin 1 2 4 5 Les deux th or mes suivants tabli
25. c 17 c 18 c 19 c 20 c 21 c 22 c 23 1 c 24 c 25 c 26 1 c 27 c 28 1 c 29 c 30 1 La derni re R n 1 TO r DO BEGIN ChiffreEnEntierMod O0 s FOR k O TO n 1 DO BEGIN 349 EntierModParEntierMod c k l c n 1 k p p CkCn 1 k EntierModPlusEntierMod s p s END c n s D de SuiteCatalan 32 29 4 30 8 62 1 67 96 5 87 86 20 80 12 74 29 00 2 67 44 40 9 69 48 45 35 35 76 70 1 29 64 47 90 4 77 63 87 00 17 67 26 31 90 65 64 12 04 20 2 44 66 26 70 20 9 14 82 56 36 40 34 30 59 61 36 50 1 28 99 04 14 73 24 4 86 19 46 40 14 52 18 36 73 53 07 21 52 69 53 35 50 91 60 04 2 63 74 79 51 75 03 60 10 02 24 22 16 65 13 68 2 78 35 36 49 22 41 89 valeur n est juste que modulo 3536632852868115 S S p Version 15 janvier 2005 350 Chapitre 11 Probl mes arithm tiques Notes bibliographiques Les entiers de Gauss sont trait s dans de tr s nombreux ouvrages d alg bre ou de th orie des nombres Pour les replacer dans un contexte un peu plus g n ral on pourra consulter le petit livre de P Samuel P Samuel Th orie alg brique des nombres Paris Hermann 1967 Version 15 janvier 2005 351 Chapitre 12 Grands nombres 12 1 Entiers en multipr cision 12 1 1 Enonc entiers en multipr cision Les op rations arithm tiques sur de grands entiers se r alisent de la fa on suivante Soient N gt 0 et b gt 2
26. k 1 inversible true WHILE k lt n AND inversible DO BEGIN q PivotMax k inversible NOT EstCNul alq kl IF inversible THEN BEGIN IF q gt k THEN EchangerFinLignes k q PivoterGauss k END k k 1 END du while sur k IF inversible THEN Version 15 janvier 2005 g Qik kk bi i bi gbk Qij Qij JAkj Triangulation R solution 2 2 Matrices trigonalisables 45 SystemeCTriangulaireSuperieur n a b x END de SystemeCParGauss 2 2 4 Programme matrices trigonalisables Le calcul du crochet de Lie ne pose pas de probl me particulier PROCEDURE CrochetDeLie n integer A B matC VAR ALieB matC ALieB AB BA VAR AB BA matC BEGIN MatriceCParMatriceC n A B AB MatriceCParMatriceC n B A BA MatriceCMoinsMatriceC n AB BA ALieB END de CrochetDeLie Avec les exemples de la question 1 on trouve 1 2i 0 2 2i A1 A2 i l i A AA 0 1 5 0 1 2i l i 0 2 A143 A3A1 i 0 1 i 1 0 1 i En r alit on a A1 P 1B P As P 1BP et A3 P 1B3P avec 1 0 1 5 1 1 i 1 i P 0 1 i P i 1 0 i 1 i i 2 1 i i f 1 0 0 1 0 0 1 0 0 B1 1 1 0 B2 0 1 0 B3 0 1 0 0 0 1 1 0 1 0 1 1 ce qui explique les r sultats Pour calculer la dimension de l espace vectoriel E engendr par un ensemble fini E A1 4x de matrices de K et pour d terminer une base de E on transforme chaque m
27. s MOD base r s DIV base END de ProduitChiffres PROCEDURE DivisionChiffres x y chiffre VAR z r chiffre VAR s chiffre BEGIN s x r base z s DIV y r s MOD y END de DivisionChiffres A laide de ces proc dures nous mettons en place des proc dures de manipulation d entiers sans consid ration du signe savoir PROCEDURE NaturelPlusNaturel VAR u v w entier PROCEDURE NaturelMoinsNaturel VAR u v w entier PROCEDURE NaturelParNaturel u v entier VAR w entier PROCEDURE NaturelDivEuclNaturel u v entier VAR q r entier FUNCTION CompareNaturel VAR u v entier integer Ces proc dures sont ensuite tendues aux entiers avec signe Les noms correspondants sont PROCEDURE EntierPlusEntier u v entier VAR w entier PROCEDURE EntierMoinsEntier u v entier VAR w entier PROCEDURE EntierParChiffre u entier x chiffre VAR w entier PROCEDURE EntierParEntier u v entier VAR w entier PROCEDURE EntierDivEuclEntier u v entier VAR q r entier PROCEDURE EntierModEntier u v entier VAR w entier PROCEDURE EntierDivEntier u v entier VAR w entier Les proc dures suivantes constituent des cas particuliers parfois utiles PROCEDURE NaturelParChiffre u entier x chiffre VAR w entier PROCEDURE NaturelPlusChiffre u entier x chiffre VAR w entier PROCEDURE NaturelParMonome u entier x chiffre n integer VAR w entier
28. sont les z ros de Ppn 1 Preuve Observons d abord que deux polyn mes d indices cons cutifs n ont pas de z ro commun ou de mani re quivalente sont premiers entre eux En effet si p x Pn 1 0 alors par la d finition de pn on a px 2 x 0 et de proche en proche on obtient po x 0 Comme ao 0 ceci est impossible Ra isonnons par r currence sur n et supposons la propri t tablie pour n 1 Si y est un z ro de ph_1 on Pn y Pn _2 Y cn Pn 2 donc les nombres Pn y1 Pn 2 y1 ces Pn Yn 1 Pn 2 Yn 1 sont tous du signe de c Les nombres pn 2 y1 Pn 2 Yn 1 Sont de signes altern s En effet si pn 2 yi et Pn 2 yi 1 taient de m me signe le nombre de z ros de pn 2 X dans l intervalle lyi Yi 1 serait pair Or p 2 a un seul z ro simple dans cet invervalle par r currence Il r sulte des deux remarques pr c dentes que les nombres p y1 Pn Yn 1 sont de signes altern s et donc que pn a un nombre impair de z ros dans chacun des intervalles Jyi Yi pour 1 n 2 Comme pa yi Cnpn a yi le polyn me q X Pn X Pn 2 X est du signe de cn en tout point yi Or pour x on a q x x bhbn_1 donc q x est du m me signe que cn Ceci montre que q x et donc aussi Pn x change de signe dans l intervalle y1 et dans l intervalle Jyn 1 00 et donc que pn un z ro dans chacun de ces intervalles en plus des n 2 z ros d
29. writeln titre p PolynomeNul write Combien de monomes readln t writeln Donner la suite des monomes FOR i 1 TO t DO BEGIN LireMonome n m MonomePlusPolynome n m p END END de EntrerPolynome PROCEDURE EcrireMonome n integer m monome indeterminee char Affichage du mon me m x o x est l ind termin e VAR j integer EstUnOuMoinsUn boolean BEGIN EstUnOuMoinsUn abs m 0 1 IF NOT EstUnOuMoinsUn THEN write abs m 0 1 FOR j 1 TO n DO BEGIN IF m j gt O THEN BEGIN write indeterminee j 1 EstUn0uMoinsUn false IF m j gt 1 THEN write m j 1 END Version 15 janvier 2005 7 2 Polyn mes sym triques 171 END IF EstUnOuMoinsUn THEN write 1 END de EcrireMonome PROCEDURE EcrirePolynome n integer p polynome indeterminee char titre texte Affichage du titre puis du polyn me p x o x est l ind termin e VAR i NbreMonomesParLigne integer BEGIN write titre CASE n OF 1 NbreMonomesParLigne 8 2 NbreMonomesParLigne 5 3 4 5 NbreMonomesParLigne 4 OTHERWISE NbreMonomesParLigne 3 END IF Taille p 0 THEN writeln Polynome nul ELSE BEGIN IF pli 0 lt O THEN write EcrireMonome n plil indeterminee END FOR i 2 TO Taille p DO BEGIN IF pli 0 gt O THEN write ELSE write IF i MOD NbreMonomesParLigne 1 THEN writeln Ecri
30. 1 x1 0 rO x ri m Initialisation WHILE ri lt gt O DO BEGIN q r0 DIV ri r2 r0 q ri x2 x0 q x1 Calcul x0 x1 x1 x2 r0 rl ri r2 Copie END x0 x0 MOD m IF xO lt O THEN xO x0 m Pour r tablir le modulo Inverse x0 END de Inverse Les repr sentations modulaires sont des tableaux d entiers On d finit donc CONST TailleMod 8 TYPE EntierMod ARRAY 1 TailleMod OF integer VAR m EntierMod c ARRAY 1 TailleMod 1 TailleMod OF integer On d clare aussi deux tableaux sp cifiques l un qui contient les modules m l autre qui contient les coefficients c j n cessaires la conversion Nous initialisons pour fixer les id es PROCEDURE InitModules BEGIN m 1 99 m 2 97 m 3 m 5 89 m 6 83 m 7 END de InitModules 95 mi4 79 mi8 91 73 et calculons la table des c il suffit de la calculer pour 1 lt i lt j lt r par PROCEDURE InitInverses VAR i j integer BEGIN FOR i 1 TO TailleMod DO FOR j i 1 TO TailleMod DO cli j Inverse m i mlj END de Initlnverses On obtient Version 15 janvier 2005 346 Chapitre 11 Probl mes arithm tiques La table des inverses 49 24 57 9 26 4 59 48 76 78 6 22 70 23 15 7 5 10 45 52 33 69 14 8 32 20 22 61 Consid rons d abord les conversions Des entiers en multipr cision tels que pr sent s au chapitre suivant
31. 1 1 1 1 1 1 de longueur 3 et on a F 3 8 On admettra dans les questions 2 et 3 que F 1 2 F 2 7 et que F k lt 2F 1 k 2 k23 xx On note x la partie enti re de x Soit P k le nombre de facteurs de longueur k de la suite s On a P 1 2 P 2 4 P 3 6 On admettra dans les questions 2 et 3 que P 2k P k 1 P k P 2k 1 2P k 1 xxx 2 D montrer que F k lt 8 k 2 pour k gt 3 et que P k lt 4 k 1 pour k gt 2 3 Le poids d une suite t0 tx 1 est par d finition l entier ue t 3 Utiliser les r sultats de la question pr c dente pour crire un programme qui prend en argument un entier k qui calcule une fois et une seule tous les facteurs de s de longueur k et qui les affiche par ordre de poids croissant On testera avec k 3 4 5 4 D montrer et x x On se fixe un entier N gt 0 et on consid re Sy 50 8n Une occurrence d une suite finie to tx 1 comme sous mot dans Sy est une suite d indices n0 nx 1 avec 0 lt no lt ny lt lt nx 1 lt N telle que t sn pour i 0 k 1 5 Ecrire une proc dure qui prend en donn e une suite to tk 1 et qui calcule le nombre d occurrences de cette suite comme sous mot dans Sy On testera avec N 12 k 4et to Kei tk 1 1 1 1 1 6 Question ind pendante des pr c dentes Prouver que le produit S m41 lI n 0 conver
32. 1 mots sont deux deux distincts Supposons au contraire que t u1 e U2n 1 ui css U2n 1 U1 Ui 1 pour un entier gt 1 alors on a wv vu en posant u u1 u 1 et v Ui U2n 1 Par la proposition pr c dente on a u w et v w pour un mot w de longueur disons h Posons m s w h Alors 1 s x 2n 1 k m ce qui est impossible parce que k gt 2 Le nombre de mots de Lukasiewicz est donc 1 f2n I 1 f2n 2n 1 n 1 n i n s Les entiers du corollaire sont les nombres de Catalan Version 15 janvier 2005 9 2 Mots de Lukasiewicz 243 9 2 3 Programme mots de Lukasiewicz Pour tester qu un mot est un mot de Lukasiewicz il suffit de calculer la fonction s et de v rifier les conditions Ceci conduit la proc dure suivante FUNCTION EstLukasiewicz VAR u mot boolean VAR s k n integer BEGIN s 0 k 0 n Longueur u WHILE s gt 0 AND k lt n DO BEGIN L entier s doit tre positif ou nul k k 1 s s u k END EstLukasiewicz k n AND s 1 et s 1 la fin du mot END de EstLukasiewicz On peut aussi tester qu un mot est de Lukasiewicz en calculant p et en v rifiant que le r sultat est le mot 1 Nous nous contentons des proc dures r alisant p et p FUNCTION EstPic VAR u mot i integer boolean Teste si un entier i lt Longueur u 2 est un pic de u BEGIN EstPic u i 1 AND uli
33. 623 265 000 213 000 215 451 198 012 000 468 000 93 Version 15 janvier 2005 94 0 000 4 156 0 000 0 0 000 0 000 2 701 0 0 000 0 000 0 000 5 Voici un deuxi me exemple Voici la matrice lue 000 000 476 Chapitre 5 Valeurs et vecteurs propres 1 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 Apr s 23 it rations voici la matrice diagonale 0 667 0 000 0 000 0 000 0 000 0 000 3 512 0 000 0 000 0 000 0 000 0 000 2 449 0 000 0 000 0 000 0 000 0 000 5 652 0 000 0 000 0 000 0 000 0 000 4 720 Dans les deux cas 1075 Venons en au calcul des vecteurs propres Il se fait simplement en accumulant les matrices de rotation On emploie donc la proc dure PostMultiplier du chapitre 4 La proc dure principale prend alors la forme que voici PROCEDURE Jacobi2 n integer VAR a g mat VAR sigma real R alise une it ration de la m thode de Jacobi et accumule la matrice de transformation VAR P q integer C S real BEGIN IndicesMax n a p q CoefficientsJacobi p q c s a sigma sigma 2 sqr alp ql TransformationJacobi n p q c S a PostMultiplier n p q c S g END de Jacobi2 Finalement on obtient la proc dure que voici PROCEDURE ElementsPropresParJacobi n integer VAR a g mat VAR NIteration intege
34. 8 Ecrire une proc dure calculant le pgcd de deux grands entiers Utilisez la pour v rifier exp rimentalement l galit pecd F Fm Fpgcd n m 9 D montrer cette formule 12 1 2 Solution entiers en multipr cision En Pascal les entiers repr sentables par le type integer sont de taille limit e entre 215 et 215 1 sur un micro La manipulation de grands entiers exige donc la programmation d un certain nombre de proc dures qui effectuent les op rations arithm tiques sur des repr sentations appropri es d entiers de grande taille Nous consid rons le cadre que voici Soient N gt 0 et b gt 2 deux entiers tout entier positif u lt b s crit de fa on unique n u gt w b i 0 avec 0 lt n lt N 0 lt u lt b et un 0 La suite un uo est la repr sentation de u en base b On crira u un uo Chaque u sera appel un chiffre La repr sentation de 0 est 0 Tout entier de valeur absolue lt b est d crit par son signe et la repr sentation de sa valeur absolue Dans la pratique on voudrait que la base b soit la plus grande possible mais pour effectuer simplement les op rations sur les chiffres on demande que b soit major par le plus grand entier repr sentable De plus pour viter une conversion longue on choisit pour b une puissance de 10 Cela ne laisse que b 10 ou b 100 Si l on se permet l emploi du type longint on peut prendre b 10000 ce qui est
35. Ce polyn me est sym trique par construction et v rifie c f lt c f 1 En lui appli quant l hypoth se de r currence on obtient un polyn me po de poids gal deg f Posons g X1 Xn f X1 Xn ppo s1 X1 Xn sii 8n 1 X1 Xn Le polyn me g est sym trique et s annule pour Xn 0 Donc si Tr r2 r g X Qri r2 rn 1 X me Aans r1 72 Tn E KA ON a Grirrorn 0 Si rn 0 et par sym trie si r 0 r2 0 ou rh_1 0 Par cons quent g s crit sous la forme g X1 Xn Xi Xnh Xi Xn o h est un polyn me sym trique Puisque deg g lt deg f et deg h deg g n l hypoth se de r currence s applique h Donc h X1 Xn pn s1 X1 Xn Sn X1 Xn et f SnPn s1 gt 8n Pro s1 Sn 1 d o finalement Pf XnPn ppo Version 15 janvier 2005 7 2 Polyn mes sym triques 163 On a de plus poids pr lt max poids Xhpn poids po lt max n poids pz poids ppo lt max n deg h deg f lt max deg g deg f lt deg f Mais d autre part la formule F X Xn pr s1 X1 Xn TE 8n X1 Xn entra ne deg f lt poids p et donc finalement deg f poids p ce qui conclut la r currence et la d monstration du th or me Dans le cas de deux ind termin es il est facile de calculer pp partir de f La d mons tration ci dessus montre que si f est un polyn me sy
36. END END de Conversion Il s agit de savoir si l on peut attacher chaque sommet du graphe une tiquette 1 ou 1 compatible avec l tiquetage des ar tes De fa on plus pr cise il faut que pour toute ar te i j du graphe on ait la relation tiquette i tiquette j A cet effet on part de l tiquetage qui attribue l tiquette 1 chaque sommet et on modifie cet tiquetage en examinant l une apr s l autre les ar tes du graphe c est dire Version 15 janvier 2005 6 1 Matrices unimodulaires 129 les lignes de la matrice On tient simultan ment jour une fonction Pere de l ensemble des sommets dans lui m me dont le r le intuitif est de m moriser la suite des d ductions TYPE Chaque ligne d une matrice l mentaire est d termin e au signe pr s par le triplet O g 0 LigneFlementaire ARRAY 1 3 OF integer Une matrice l mentaire est repr sent e par un vecteur de Ligne Elementaire MatElementaire ARRAY 1 0rdreMax OF LigneFlementaire FUNCTION ElementaireEstTU VAR M MatElementaire p q integer boolean Teste si une matrice l mentaire est totalement unimodulaire VAR Pere Signe vecE i1 i2 j s integer b boolean Il s agit de tester si on peut d composer les colonnes en deux classes On utilise un algorithme Union Find modifi BEGIN b true FOR j 1 TO q DO Initialisation des fonctions P re et Signe BEGIN P
37. I C 1 p et J C 1 q On dit que est unimodulaire si et seulement si est de rang p et si toutes les sous matrices carr es d ordre p p ont un d terminant gal 0 1 ou 1 On dit que est totalement unimodulaire si et seulement si le d terminant de toutes les sous matrices carr es de vaut 0 1 ou 1 Les matrices unimodulaires et totalement unimodulaires outre leur int r t combina toire sont tr s utilis es en programmation lin aire en nombres entiers recherche des solutions en nombres entiers de syst mes d in quations lin aires coefficients entiers Ces matrices admettent de tr s nombreuses caract risations dont nous donnons deux exemples ci dessous D un point de vue algorithmique tester si une matrice est totale ment unimodulaire semble requ rir a priori un temps exponentiel en fonction de la taille de la matrice l algorithme sugg r dans le probl me qui constitue une am lioration par rapport l algorithme le plus na f est n anmoins exponentiel Il existe cependant un algorithme polynomial pour ce probl me d couvert par Seymour Il s agit l d un r sultat tr s difficile fond sur un th or me de d composition qui permet de d crire toutes les matrices totalement unimodulaires l aide d op rations l mentaires en par tant de matrices particuli res Pour nous familiariser avec les matrices totalement unimodulaires le mieux est d en donner tout de suite
38. IF LeSigne u 1 THEN write write u Taille u 1 FOR i Taille u 1 DOWNTO O DO EcrireChiffre ulil writeln END END de EcrireEntier L entier nul Le signe si n cessaire Le premier chiffre et les suivants Pour l affichage d un chiffre observons que s il est nul ou s il ne contient pas assez de chiffres d cimaux il convient d afficher des z ros sauf pour le premier PROCEDURE EcrireChiffre a chiffre VAR i n inte ger Version 15 janvier 2005 12 1 Entiers en multipr cision 367 FUNCTION LargeurChiffre a chiffre integer BEGIN IF a 0 THEN LargeurChiffre 1 ELSE LargeurChiffre 1 trunc log10 a END de LargeurChiffre BEGIN write n LargeurChiffre a Nombre de chiffres d cimaux de a FOR i 1 TO DecimauxParChiffre n DO write 0 1 write a 1 END EcrireChiffre La lecture d un entier au clavier est plus difficile r diger si l on veut que la saisie se fasse agr ablement c est dire sans introduire de blanc entre les chiffres On saisit alors les chiffres d cimaux appelons les digits tap s comme des caract res puis on les convertit et les regroupe en chiffres par rapport la base Voici une r alisation PROCEDURE EntrerEntier VAR u entier titre texte CONST LongueurMax 80 VAR e ARRAY O LongueurMax OF integer Pour la saisie des chiffres d cimaux c char t
39. K E de 2c 2c 2c 2c Ainsi G est une constante et nous d terminons sa valeur en faisant tendre c vers 0 Premi rement T R sin 4 E K e f U eA p O c lorsque c tend vers 0 Puis m 2 2 K f 1 d sin gaos 1 d de O c 1 0 0 lorsque c tend vers 0 Enfin lim G lim E K K E K c 0 CEE et la preuve est compl te Nous sommes maintenant en mesure de d montrer la formule de Brent Salamin Version 15 janvier 2005 402 Chapitre 12 Grands nombres TH OR ME 12 4 6 _ 4 Li V5 4 16 1 5 N A n 1l o Cn est d finie par 4 1 Preuve Prenons x x 1 V2 dans le th or me 2 4 5 nous trouvons que 1 1 1 T 2K E y 4 17 7 7 7 5 4 17 D autre part en posant a 1 et b 1 V2 dans le th or me 12 4 3 on voit que E 5 D ra K 5 4 18 n 0 car 1 1 V2 K 1 V2 et J 1 1 V2 E 1 V2 Enfin en usant du th or me 12 4 3 T 1 1 V2 4 19 LINDA 419 On compl te la preuve en substituant 4 18 dans 4 17 en employant 4 19 en notant que c 1 2 et en r solvant pour r Pour terminer nous donnons sans d monstration la majoration de l erreur commise sur le calcul de x en prenant la valeur approch e suivante 4 2 On 4 20 m 1 X 2e i l Nn TH OR ME 12 4 7 La suite Tn est croissante converge vers T et satisfait les in galit s 29n 4 T2 T Tn L
40. On num rote les r els xx pour k K d apr s leur position sur la droite et on pose K k zk est de rang pair et K k xx est de rang impair Quel que soit k 1 q le vecteur T S kEKi kEK2 est coefficients 0 1 ou 1 En effet b repr sente le nombre de points de rang pair contenus dans le segment Ik moins le nombre de points de rang impair contenus dans Ik Ce nombre est donc toujours gal 0 1 ou 1 Version 15 janvier 2005 6 1 Matrices unimodulaires 123 On se propose maintenant de d crire toutes les matrices totalement unimodulaires con tenant exactement deux coefficients non nuls dans chaque ligne la proposition fournit des exemples de telles matrices On dira qu une matrice A coefficients 0 1 ou 1 est l mentaire si pour 1 lt lt p la i i me ligne de A a exactement deux coefficients non nuls que l on notera a f i t ai g i PROPOSITION 6 1 5 Une matrice l mentaire est quilibr e si et seulement si l en semble 1 q peut tre partag en deux classes J et Ja telles que os G 1 1 jE di JE J2 Preuve D montrons d abord qu une matrice l mentaire quilibr e A v rifie L 1 Puis que est quilibr e l ensemble 1 q peut tre partag en deux classes J et J2 telles que D G gt 0 jE di JE J2 soit coefficients 0 1 ou 1 Mais puisque est l mentaire la somme des coefficients de chaque ligne
41. PROCEDURE PolynomeParXn p pol n integer VAR q pol PROCEDURE PolynomeParMonome p pol s real n integer VAR q pol PROCEDURE PolynomeParConstante p pol s real VAR q pol PROCEDURE PolynomeDivEuclPolynome a b pol VAR q r pol PROCEDURE PolynomeModPolynome a b pol VAR r pol PROCEDURE PolynomeDivPolynome a b pol VAR q pol PROCEDURE PolynomePgcd a b pol VAR pgcd pol PROCEDURE PolynomeDerive p pol VAR dp pol Enfin l valuation de la fonction polyn me se fait par FUNCTION Valeur VAR p pol x real real Une variante de cette proc dure est utile lorsque lon conna t par ailleurs le degr de p elle permet un gain de temps consid rable Version 15 janvier 2005 428 Annexe A Un environnement FUNCTION Valeurd d integer VAR p pol x real real Voici donc une r alisation de ces proc dures PROCEDURE PolynomePlusPolynome p q pol VAR r pol r p q VAR i integer BEGIN FOR i 0 TO DegreMax DO r i pli q i END de PolynomePlusPolynome PROCEDURE PolynomeMoinsPolynome p q pol VAR r pol r p q VAR i integer BEGIN FOR i 0 TO DegreMax DO r i p i q lil END de PolynomeMoinsPolynome PROCEDURE PolynomeUppose p pol VAR mp pol mp p VAR i integer BEGIN FOR i 0 TO DegreMax DO mpli p i END de PolynomeUppose PROCEDURE PolynomeParPolynome p q pol VAR r pol r pq VAR i j integer BEGIN
42. PROPOSITION 7 3 12 Soit g X f 1 La famille r g engendre H g O lt i lt a f Preuve Posons pour simplifier a a f et soit h X hX 0 lt k lt a un l ment de H g Il vient P NU hWaX NT MX NT hX TS mod g O lt k lt a 0 lt k lt AE lt k lt a Comme a est impair et puisque h h mod g il vient en notant lt i gt le reste de la division de i par hk h lt 2k gt 0 lt k lt a On partitionne alors l ensemble 0 1 suivant la relation d quivalence d finie par k k s il existe tel que k lt k 2 gt Si S est un syst me de repr sentants de cette quivalence on a h 5 he XE X XOT 5 hxrk g mod g kES kES Comme le degr des polyn mes h et rx g est inf rieur deg g on a en fait h 5 hyrx g kes Version 15 janvier 2005 186 Chapitre 7 Polyn mes PROPOSITION 7 3 13 Deux facteurs distincts d une d composition de g en produit de facteurs irr ductibles peuvent toujours tre s par s par l un des polyn mes r g lt i lt a f Preuve Soit g g1g2 gs la d composition de g en produit de polyn mes irr ductibles Quitte changer l ordre des facteurs il suffit d tablir que l un des r r g s pare g et g2 Supposons que ce soit faux Alors les polyn mes g et g divisent simultan ment lun des polyn mes r ou r 1 Autrement dit il existe ap K tel que Ti Gr mod g et ri ar mod g2 Comme les r
43. Pour la r alisation nous partons de l quation A LU avec A aij L liz U u i j On suppose 0 pour j gt i et Lii 1 et de m me w 0 pour i gt j On a alors en identifiant min i k i k li jUj k j 1 d o l on tire k 1 lir aik susx uer i gt k j 1 i 1 Uik i k Vote i lt k j 1 Il y a plusieurs strat gies pour r soudre ces quations on peut proc der ligne par ligne colonne par colonne en diagonale etc On peut galement remarquer que chaque coefficient a n est utilis qu une fois on peut donc stocker la place de a x le coefficient l x si i gt k et u x quand i lt k les l ments diagonaux de L n ont pas besoin d tre conserv s Pour pouvoir liminer un pivot u4 4 nul on constate que les formules donnant uk k et les Z x sont la division pr s formellement les m mes Ceci montre que tout x pour i gt k peut jouer le r le de ux x On adopte donc la d marche suivante on calcule pour Version 15 janvier 2005 54 Chapitre 3 D compositions chaque colonne k d abord des l ments et ui par les formules i 1 Uik i k X liju i lt k j 1 k 1 TE ole gt j 1 puis l on cherche un pivot non nul et on fait la division des par le pivot Voici une r alisation PROCEDURE DecompositionLU n integer VAR a mat VAR p vecE VAR inversible boolean Calcule dans a la d composition LU de
44. VI Avant propos th orie combinatoire des groupes l arithm tique et l informatique La g om trie algo rithmique est une discipline en plein essor Nous abordons deux probl mes typiques de cette nouvelle th orie la triangulation de Delaunay et le probl me de la galerie d art Tout particuli rement dans ce chapitre les algorithmes d crits ne sont pas les meilleurs connus La mise en uvre des algorithmes optimaux d passe tr s largement le cadre de ce livre La derni re partie traite de probl mes arithm tiques Il s agit d une part de la factorisation des entiers de Gauss et d autre part de la manipulation de grands entiers ou de grands r els L arithm tique modulaire est une premi re technique mais elle ne permet pas la division Le dernier chapitre est consacr l arithm tique positionnelle On y d taille le calcul sur les grands entiers et les grands r els et on pr sente plusieurs algorithmes de calcul des d cimales de 7 Les solutions Les th mes sont organis s sous forme de triptyques La premi re partie pr sente un nonc proche de la forme o il a t donn au concours d entr e PENS mais les th mes abord s se retrouvent comme nous l avons d j dit dans une forme voisine dans d autres concours L nonc comporte la fois des questions math matiques et des questions de programmation La deuxi me partie du triptyque donne une solu tion aux questions math mat
45. alq p 1 norme END END de CoefficientsGivensE Le calcul de la matrice G q p AG q p se fait simplement et de fa on conomique en valuant les quelques coefficients modifi s de la matrice A Voici une proc dure qui r alise cette transformation PROCEDURE TransformationGivens n p q integer c s real VAR a mat Multiplication gag o g est la matrice de rotation dont les coefficients sont d termin s par c et s VAR j integer u V W real BEGIN FOR j 1 TO n DO IF j lt gt p AND j lt gt q THEN BEGIN v alp jl w alq jl alp j c v s w alj pl alq j s v c w alj ql alp jl alq j Version 15 janvier 2005 76 Chapitre 4 Matrices tridiagonales END v alp pl u alp dl w alq dl alp pl cxcxv 2 xcxs xu s xs x v alq q s s v 2 c s u C C VW alp q c x c s s x u alq pl alp q END de TransformationGivens c s v v Notons qu il n y a que 2n coefficients modifi s donc O n op rations arithm tiques alors que le calcul de G q p AG q p par les proc dures g n rales d valuation de matrices aurait co t O n op rations La diff rence est appr ciable Il n y a plus qu utiliser cette proc dure pour 2 lt p lt q lt n PROCEDURE TridiagonalParGivens n integer VAR a mat On annule successivement les coefficients d indices p q 2 lt p lt q lt n Le p
46. b2 vec infini alpha beta real VMoinsInfini integer BEGIN b2 1 0 FOR i 2 TO n DO b2 il sgr blil infini MajorantRayonSpectral n a b VMoinsInfini Variation n a b2 infini beta infini FOR r 1 TO n DO BEGIN alpha beta beta infini ZeroParVariation r n VMoinsInfini a b2 alpha beta vp r alpha beta 2 END END de ValeursPropresParVariation La majoration du rayon spectral s obtient en utilisant l in galit de Hadamard Version 15 janvier 2005 5 3 Valeurs propres de matrices tridiagonales 109 FUNCTION MajorantRayonSpectral n integer a b vec real VAR k integer s real BEGIN s abs a 1 abs b 2 FOR k 2 TO n 1 DO s rMax s abs b k abs a k abs b k 1 MajorantRayonSpectral rMax s abs b n abs a n END de MajorantRayonSpectral Voici un exemple de l ex cution de cette proc dure avec des impressions interm diaires Voici la matrice lue 4 000 1 000 0 000 0 000 0 000 1 000 5 000 2 000 0 000 0 000 0 000 2 000 3 000 1 000 0 000 0 000 0 000 1 000 1 000 1 000 0 000 0 000 0 000 1 000 4 000 r 1 alpha 8 000 beta 8 000 gamma 0 000 W gamma 0 alpha 0 000 beta 8 000 gamma 4 000 W gamma 3 alpha 0 000 beta 4 000 gamma 2 000 W gamma 1 alpha 0 000 beta 2 000 gamma 1 000 W gamma 1 alpha 0 000 beta 1 000 gamma 0 500 W gamma 1 alpha 0 000 beta 0 500 gamma 0 250 W gamma 1 alpha 0
47. de Norme Version 15 janvier 2005 1 2 R solution de syst mes lin aires 9 FUNCTION Normelnfinie n integer VAR a vec real VAR i integer r real BEGIN r 0 FOR i 1 TO n DO r rmax r abs a i NormeInfinie r END de Normelnfinie 1 2 R solution de syst mes lin aires Soit r soudre un syst me d quations lin aires Ax b o a j est une matrice r elle d ordre n et x et b sont des vecteurs colonnes On suppose que A est de rang n Le cas des syst mes triangulaires est suffisamment simple pour tre trait imm diatement PROCEDURE SystemeTriangulaireSuperieur n integer a mat b vec VAR x vec VAR k j integer s real BEGIN FOR k n DOWNTO 1 DO BEGIN s b k FOR j k 1 TO n DO s s alk j x j x k s alk k END END de SystemeTriangulaireSuperieur Pour le cas g n ral on consid re ici deux m thodes voisines la m thode dite de Gauss et la m thode de Jordan Une variante de ces m thodes fond e sur la d composition LU sera pr sent e plus loin 1 2 1 M thode de Gauss La m thode de Gauss ou m thode du pivot partiel est compos e de deux phases une phase d limination qui transforme le syst me d quations en un syst me triangulaire quivalent et une phase de substitution dans laquelle on r sout ce syst me triangulaire Soit AUx b le syst me original Apr s une ventuelle permutation de lignes
48. du tableau contenant ses coefficients L avantage de la premi re repr sentation celle que nous adoptons ci dessous est sa sim plicit les op rations arithm tiques notamment se r alisent tr s facilement L incon v nient majeur est la lenteur du calcul du degr d un polyn me puisque l on doit par courir la suite des coefficients paradoxalement le temps de calcul du degr d cro t avec le degr L avantage de la deuxi me repr sentation qui est utilis e par exemple dans le pro gramme de factorisation de polyn mes coefficients dans Z 2Z est donc la rapidit mais la programmation est un peu plus d licate dans la mesure o il faut r ajuster le degr chaque op ration Voici les d clarations CONST DegreMax 20 Le degr maximal des polyn mes DegrePolNul 1 Le degr du polyn me nul TYPE pol ARRAY O DegreMax OF real VAR PolynomeUnite pol Polyn me pr d fini PolynomeNul pol Polyn me pr d fini Quelques fonctions et proc dures simples FUNCTION Degre VAR p pol integer Donne le degr de p FUNCTION EstPolNul VAR p pol boolean Teste si p 0 PROCEDURE ReelEnMonome s real n integer VAR p pol Donne p X sX La plus longue de ces proc dures est celle qui calcule le degr FUNCTION Degre VAR p pol integer Donne le degr du polyn me p VAR n integer BEGIN n DegreMax WHILE n gt 0 AND EstNul p n DO AND s quentiel
49. il 1 00 i 1 00 i 1 00 il 1 00 i 1 00 i 1 00 il 245 12 2 00 i 245 12 2 00 i 245 12 2 00 il 245 12 i 245 12 i 245 12 il Le plus souvent on utilisera la proc dure suivante PROCEDURE EcrireComplexe z complexe titre texte BEGIN Version 15 janvier 2005 A 3 Biblioth ques 437 write titre FormaterComplexe z AligneAGauche END A 3 4 Les rationnels Les nombres rationnels sont repr sent s par des couples d entiers normalis s de telle sorte que num rateur et d nominateur soient premiers entre eux et que le d nominateur soit positif On d clare TYPE rat ARRAY 0 1 OF integer Pour acc der aux rationnels et pour les construire on utilise les fonctions et proc dures suivantes FUNCTION Numerateur VAR r rat integer FUNCTION Denominateur VAR r rat integer PROCEDURE FixerNumerateur VAR r rat n integer PROCEDURE FixerDenominateur VAR r rat d integer PROCEDURE EntierEnRat VAR r rat e integer PROCEDURE FaireRat n d integer VAR r rat Ces proc dures font videmment appel une proc dure de calcul du pgcd Voici une impl mentation La proc dure la plus importante cr e un rationnel partir de deux entiers PROCEDURE FaireRat n d integer VAR r rat VAR p integer BEGIN n signe d n d abs d Le d nominateur est positif p pgcd n d r 0 n DIV p Num rateur et
50. na 2 4 La formule e3 montre que les polyn mes de Bernoulli sont bien des polyn mes Preuve Posons tett x t PTE Ona r ET s x t etD 0 t Du DID JB Ne Version 15 janvier 2005 8 2 Nombres de Bernoulli 213 ce qui prouve E3 Ensuite on a 1 x t x t d o la deuxi me relation La troisi me d coule par identification de 0 0x t Enfin on a 1 x t x t te gt ng ce qui prouve 2 4 COROLLAIRE 8 2 3 Poum gt letn gt l ona k L Bn41 m 1 Bh 1 n 1 Preuve Sommons la relation B pour 0 m Les termes des membres gauches successifs se compensent et on obtient Ba 1 m B ce qui donne la formule cherch e m 8 2 3 Programme nombres de Bernoulli Les programmes de cette section utilisent la biblioth que de manipulation des nombres rationnels donn e en annexe Pour le calcul des nombres de Bernoulli on utilise la formule RES P n gt 2 k 0 142 n Bn 1 Bk Lier 1 i Il suffit d valuer cette expression pour n gt 3 et n 1 pair puisque les nombres de Bernoulli d indice impair sont nuls sous la forme On range la suite des nombres de Bernoulli ainsi calcul e dans un tableau de type SuiteRat d clar comme suit TYPE SuiteRat ARRAY O LongueurMax OF rat o LongueurMax est une constante de taille appropri e Voici la proc dure cherch e Version 15 janvier 20
51. plexe engendr par d points quelconques 81 84 de S est une d 1 face de E S si et seulement si les autres points de se situent tous dans le m me demi espace dont la fronti re est l hyperplan engendr par ce simplexe d t 5 1 534 est de signe constant 1 5 Une premi re solution au calcul de l enveloppe convexe est de tester les 2 simplexes possibles Une mesure vidente de la complexit d un tel calcul est le nombre de d ter minants calcul s chaque test n cessite le calcul d au plus n d terminants le nombre total de calcul est alors lt n O n1 1 pour d constant Cette m thode est elle efficace La r ponse est non car on peut montrer que le nombre de d 1 faces de l enveloppe convexe de n points est sous l hypoth se d constant dans O nl4 21 Une seconde solution est de calculer les faces par ordre d adjacence Pour cela nous avons besoin de d finir les angles di dres d un poly dre Par d finition l angle non orient de deux demi droites vectorielles d d est le r el dans 0 x not d d d fini comme la valeur commune de Arccos ee i T lall loi o et sont des vecteurs non nuls quelconques de d et d On note aussi Tg dd Etant donn es trois demi droites d d et d on dit que d est entre d et d si d d d ou si d d ou si d d et d se situe dans l intersection des demi plans de fronti re respectives d U d et
52. r a 1 r Version 15 janvier 2005 10 2 Quelques primitives g om triques 291 FrameRect rectangle Trace les c t s du carr END de TracerCarre PROCEDURE TracerDisque a Pixel r integer VAR rectangle rect Pour le carr circonscrit au cercle BEGIN SetRect rectangle a 0 r a 1 r al0 r a 1 r PaintOval rectangle Trace le disque END de TracerDisque PROCEDURE EcrireGraphique a Pixel n integer BEGIN moveto a 0 al1l WriteDraw n 1 Ecriture dans la fen tre graphique END de EcrireGraphique PROCEDURE InitGraphik VAR cadre rect BEGIN showdrawing Montre la fen tre graphique GetDrawingRect cadre R cup re les coordonn es de cette fen tre HauteurEcran cadre bottom cadre top LargeurEcran cadre right cadre left END de InitGraphik Pour un compatible PC certaines des proc dures sont un peu plus longues crire si l on ne dispose pas par ailleurs de fonctions sophistiqu es Nous faisons le choix de nous placer en mode graphique et d y rester Le curseur est une petite croix appel e r ticule qui est activ e par les fl ches Le point vu sera saisi lorsque l on enfonce la touche retour Voici les proc dures avec quelques commentaires CONST hRet 4 vRet 4 Hauteur et largeur du r ticule VAR Reticule pointer Un pointeur sans type PROCEDURE InitReticule BEGIN MoveTo O 0 LineTo 2
53. 1 1 AND uli 2 1 END de EstPic PROCEDURE Rho VAR u mot VAR i j n integer BEGIN i 1 n Longueur u WHILE i lt n 2 AND NOT EstPic u i DO AND s quentiel issa 1 IF i lt n 2 THEN BEGIN Elimination du pic FOR j i TO n 2 DO ulj ulj 2 FixerLongueur u n 2 END END de Rho PROCEDURE RhoEtoile VAR u mot VAR n integer BEGIN REPEAT n Longueur u Sauvegarde de l ancienne longueur Rho u Calcul de p UNTIL n Longueur u Comparaison l ancienne longueur END de RhoEtoile Version 15 janvier 2005 244 Chapitre 9 Combinatoire des mots La d composition d un mot de Lukasiewicz en ses deux fils gauche et droit ainsi que la recomposition se font par les proc dures que voici PROCEDURE FilsLukasiewicz w mot VAR u v mot Le mot w commence par 1 Les mots u et v re oivent respectivement le fils gauche et le fils droit de w VAR i j s integer BEGIN s 0 i 1 REPEAT Calcul du fils gauche Lis 4 s s wli UNTIL s 1 LeFacteur w 2 i u LeSuffixe w i 1 v Le fils droit END de FilsLukasiewicz PROCEDURE PereLukasiewicz u v mot VAR w mot BEGIN LettreEnMot w 1 Concatener w u w Concatener w v w END de PereLukasiewicz Pour engendrer tous les mots de Lukasiewicz on range dans une suite de mots les mots de Lukasiewicz de longueur donn e Les mots de longueur 2n 1
54. 1 lt k lt p tel que u lt u k 1 on construit une nouvelle s quence v v 2 u 1 par v u0 pour j 1 k 1 04 uPuktD et v utd pour j k 1 p 1 On it re ce processus tant qu il est possible de raccourcir la s quence La s quence finale est une factorisation de Lyndon PROPOSITION 9 3 6 Tout mot poss de une unique factorisation de Lyndon Preuve D existence de la factorisation de Lyndon est vidente D unicit se prouve par l absurde Soit en effet u un mot de longueur minimale ayant deux factorisations de Lyndon distinctes ur Un et rss sd Sin 1 et m gt 2 alors v lt U1 lt Um et V1 Um une contradiction Si n m gt 2 supposons que u1 est plus long que v1 sinon u2 uy V2 Um est un mot plus court que u ayant deux factorisations distinctes Alors ui Vi Uk OU U1 Vi VEU pour un entier k et pour un d but w de vk 1 Dans le premier cas on a comme ci dessus v1 lt u1 lt UZ et dans le deuxi me cas v1 lt U1 lt W lt Uk 1 9 3 3 Programme mots de Lyndon Nous commen ons par une proc dure qui compare deux mots pour l ordre lexicogra phique en utilisant la d finition Cette proc dure s crit Version 15 janvier 2005 252 Chapitre 9 Combinatoire des mots FUNCTION CompareMot VAR u v mot integer Compare u et v dans l ordre lexicographique Le r sultat est 1 0 1 selon que l on a U lt V U VOUUrUV VAR i n int
55. 1 modulo 4 et donc une somme de deux carr s ne peut tre congrue 3 mod 4 Les entiers de Gauss irr ductibles autres que les entiers naturels se caract risent de la fa on suivante PROPOSITION 11 1 9 Soit z un l ment de P de partie imaginaire non nulle Les conditions suivantes sont quivalentes i z est irr ductible Version 15 janvier 2005 330 Chapitre 11 Probl mes arithm tiques i z est un nombre premier iii z est un nombre premier non congru 3 modulo 4 Preuve Comme on l a vu plus haut une somme de deux carr s ne peut tre congrue 3 modulo 4 Donc ii et iii sont quivalents i entra ne ii Soit p un diviseur premier de z z7 Par unicit de la d composition p est divis soit par z soit par Z Dans les deux cas z divise p d apr s la proposition 11 1 7 et donc p 2 ii entra ne i Si z z122 est une d composition non triviale de z on a en prenant les modules z 21 z2 ce qui montre que z n est pas premier Pour d composer un entier naturel n en produit d entiers de Gauss irr ductibles on peut proc der comme suit On commence par d composer n en facteurs premiers ce qui nous ram ne d composer un nombre premier p Si p 3 mod 4 la proposition montre que p est irr ductible Si par contre p 3 mod 4 p se d compose comme le montre le r sultat suivant PROPOSITION 11 1 10 Pour tout nombre premier p non congru 3
56. 15 9 5 1 15 7 5 3 13 11 5 1 13 9 7 1 13 9 5 3 11 9 7 3 Evidemment on peut s pargner la peine de programmer tout cela il suffit d engendrer toutes les partitions de n et de ne conserver que celles qui conviennent Mais ceci n est pas tr s efficace pour n 30 on a p 30 5604 alors qu il n y a que 18 partitions en parts distinctes et impaires Pour des valeurs de n plus grandes les calculs deviennent prohibitifs L emploi des proc dures r cursives est tr s avantageux puisque les partitions se d fi nissent de mani re r currente Version 15 janvier 2005 8 3 Partitions d entiers 233 PROCEDURE LesPartitionsDistinctesImpaires n integer Proc dure calculant ces partitions de mani re r cursive VAR a mot PROCEDURE Parts p n m integer p est la premi re position libre dans le tableau a n est l entier dont on calcule les partitions m est la plus grande part d une partition de n BEGIN IF n 0 THEN BEGIN Construction termin e FixerLongueur a p 1 EcrireMot a END ELSE IF n 2 OR m lt 0 THEN Pas de partition ELSE BEGIN IF n gt m THEN On prolonge la partition courante BEGIN alp m Parts p 1 n m m 2 Tentative pour la terminer END IF sqr m 1 DIV 2 gt n THEN Mais dans certains cas Parts p n m 2 il y en a peut tre d autres END END de Parts BEGIN IF odd n THEN Parts 1 n n ELSE Parts 1 n n 1 END de LesP
57. 2 002 2 002 Variations 3 0 Retir d attente 2 002 2 002 Trouv 0 000 0 000 Trouv 2 002 0 500 Trouv 0 500 2 002 Un z ro trouv 0 000 Un z ro dans l intervalle 2 002 0 500 Un z ro dans l intervalle 0 500 2 002 Voici le polyn me lu X74 10 000 X 3 35 000 X 2 50 000 X 24 000 Intervalle de d part a bl 20 020 20 020 Variations 4 O Nombre de z ros r els 4 Mis en attente 20 020 20 020 Variations 4 0 Retir d attente 20 020 20 020 Mis en attente 0 000 20 020 Variations 4 O Retir d attente 0 000 20 020 Mis en attente 0 000 10 010 Variations 4 0 Retir d attente 0 000 10 010 Mis en attente 0 000 5 005 Variations 4 0 Retir d attente 0 000 5 005 Mis en attente 0 000 2 503 Variations 4 2 Mis en attente 2 503 5 005 Variations 2 0 Version 15 janvier 2005 158 Chapitre 7 Polyn mes Retir d attente 2 503 5 005 Trouv 2 503 3 754 Trouv 3 754 5 005 Retir d attente 0 000 2 503 Trouv 0 000 1 251 Trouv 1 251 2 503 Un z ro dans l intervalle 2 503 3 754 Un z ro dans l intervalle 3 754 5 005 0 000 1 251 1 251 2 503 Un z ro dans l intervalle Un z ro dans l intervalle Bien entendu il est facile partir des intervalles ainsi obtenus de calculer les z ros r els au moyen par exemple d une recherche dichotomique 7 2 Polyn mes sym t
58. 3 35 000 X 2 50 000 X 24 000 Voici la suite de Sturm p 0 X74 10 000 X 3 35 000 X 2 50 000 X 24 000 p 1 4 000 X 3 30 000 X 2 70 000 X 50 000 p 2 1 250 X 2 6 250 X 7 250 p 3 3 200 X 8 000 p 4 0 562 Si le polyn me p examiner a des z ros multiples il faut les liminer auparavant Pour cela il suffit de diviser p par le polyn me pgcd de p et du polyn me d riv p Ceci est fait dans la proc dure que voici PROCEDURE EliminationZerosMultiples p pol VAR q pol BEGIN PolynomeDerive p q PolynomePgcd p q q PolynomeDivPolynome p q q END de EliminationZerosMultiples Le calcul de la variation d une suite de Sturm po Pm en y se fait en valuant les polyn mes en y et en notant les changements de signe Comme on suppose po sans z ro multiple Pm est une constante non nulle donc de signe non nul Les changements de signe se rep rent par le fait que le signe est l oppos du signe pr c dent Voici une r alisation FUNCTION Variation m integer VAR sp SuitePol y real integer Calcule la variation V y au point y VAR i s changements integer Version 15 janvier 2005 7 1 Suites de Sturm r real BEGIN changements 0 s signe sp m 0 FOR i m 1 DOWNTO O DO BEGIN r Valeur splil y IF signe r s THEN BEGIN 153 Compte les changements de signe Signe de pm non nul r pi y Ainsi on saute les termes nuls
59. 35 X 36 X 37 X 38 X 39 X 40 f 1 X72 X 3 X 4 X 5 X 76 X 9 X 10 X 11 X 14 X 15 X716 X 17 X 18 X 20 1 X X73 X74 X76 X 79 X710 X711 X714 X716 X 17 X719 X 720 Notes bibliographiques Sur les suites de Sturm et les majorations des z ros de polyn mes on pourra consulter M Mignotte Math matiques pour le calcul formel Paris Presses Universitaires de France 1989 L algorithme de localisation se trouve dans J Davenport Y Siret E Tournier Calcul formel Paris Masson 1987 Les polyn mes sym triques sont trait s dans la plupart des livres d alg bre On pourra consulter en particulier Version 15 janvier 2005 7 3 Factorisation de polyn mes 199 N Bourbaki El ments de math matique Alg bre Chapitre 5 Appendice 1 Paris Mas son 1981 Contrairement son habitude Bourbaki ne se place pas dans le cadre le plus g n ral et ne traite que le cas des polyn mes coefficients dans un corps R Godement Cours d alg bre Paris Hermann 1966 Le probl me sur les polyn mes sym triques est en partie inspir par l exercice 13 du chapitre 33 B L Van der Waerden Moderne Algebra 2 volumes Berlin Springer 1955 ou Modern Algebra 2 volumes New York F Ungar 1950 L algorithme utilis pour factoriser les polyn mes est adapt de l article suivant R J McEliece Factorization of polynomials over finite fields
60. 420 Annexe A Un environnement PROCEDURE InitRationnels BEGIN EntierEnRat RatZero 0 EntierEnRat RatUn 1 END de InitRationnels BEGIN InitRationnels Appel en Turbo Pascal END En Think Pascal par exemple la proc dure InitRationnels doit tre appel e au d but du programme principal A 3 1 G n ralit s Un certain nombre d op rations arithm tiques reviennent constamment dans les pro grammes Il est utile de disposer d un ensemble de proc dures qui les r alisent C est l objet de cette biblioth que Nous en profitons pour fixer des valeurs par d faut de cer taines variables La constante 7 existe d j en TURBO Pascal donc la d finition suivante n est pas utile dans ce cas CONST pi 3 1415926536 Pr d finie dans certains compilateurs Le type suivant sert transmettre des titres aux proc dures de lecture et d criture TYPE texte string 80 Enfin voici trois variables utiles la premi re permet de param trer la pr cision d affi chage non pas de calcul la derni re est employ e dans le calcul pr s enfin la variable test permet de basculer en mode test et ainsi d activer resp de d sactiver des impressions interm diaires VAR precision integer test boolean epsilon real Ces variables sont initialis es dans Initialisations PROCEDURE InitGeneral BEGIN precision 3 Pr cision d affichage par d faut epsilon 0 001 Nombre
61. Ali j det round determinant p R END de det Pour tester si une matrice d ordre p q est unimodulaire on calcule le d terminant de toutes ses sous matrices carr es d ordre p Pour cela on engendre toutes les parties p l ments de l ensemble 1 q Ces proc dures sont d taill es au chapitre 8 CONST LongueurSuite 12 TYPE suite ARRAY 0 LongueurSuite OF integer PROCEDURE PremierePartieRestreinte VAR x suite n k integer PROCEDURE PartieSuivanteRestreinte VAR x suite n k integer Version 15 janvier 2005 126 Chapitre 6 Matrices en combinatoire VAR derniere boolean Un sous ensemble de p colonnes tant retenu on extrait la sous matrice de correspon dante l aide de la proc dure suivante PROCEDURE ExtraitSousMatrice SousEnsemble suite p q integer A matF VAR C matE Extrait de la matrice carr e C d ordre p obtenue en s lectionnant les colonnes d indice i tel que SousEnsembleli 1 VAR i j k integer BEGIN k 0 FOR j 1 TO q DO IF SousEnsemble j 1 THEN BEGIN k k 1 FOR i 1 TO p DO Ci k Ali j END END de ExtraitSousMatrice Pour viter de faire des calculs de d terminant inutiles on utilise une proc dure qui teste si une matrice ne contient pas de colonne nulle FUNCTION UneColonneEstNulle A matE p q integer boolean Teste si A contient une colonne nulle VAR i j integer DebutColonneNul PasD
62. BEGIN urite chr 7 END de bip PROCEDURE TopChrono BEGIN DebutChrono heure END de TopChrono FUNCTION TempsEcoule real BEGIN TempsEcoule heure DebutChrono END de TempsEcoule o heure est une fonction qui transforme la repr sentation de l heure FUNCTION heure real VAR h m s c word BEGIN GetTime h m s c heure c 100 s 60 m 3600 h END de heure Notons que l appel GetTime demande d inclure la biblioth que pr d finie Dos A 3 2 Polyn mes Un polyn me coefficients r els est repr sent par la suite de ses coefficients Une fa on naturelle de repr senter un polyn me est de lui associer un RECORD qui contient d une part le degr et d autre part les coefficients Comme nous ne voulons pas utiliser cette structure nous allons repr senter un polyn me par un tableau Il y a deux fa ons de faire chacune avec ses avantages et inconv nients Fixons d abord le degr maximal des polyn mes repr sent s disons N Un polyn me p X ao a X a X avec an 0 peut tre identifi la suite finie ap an avec an 1 an 0 Avec cette convention un polyn me se repr sente par un tableau de nombres r els On Version 15 janvier 2005 A 3 Biblioth ques 425 peut aussi identifier p au couple form de son degr n et de la suite ao an de ses coefficients On range alors le degr de p dans un emplacement r serv
63. Ceci est r alis dans la proc dure suivante PROCEDURE SommePuissancesNiemes n integer VAR p q PolRat VAR k integer BEGIN Version 15 janvier 2005 216 Chapitre 8 Exemples combinatoires q p Partant de p de degr n 1 q 0 RatZero on annule le terme constant FOR k 1 TO n 1 DO BEGIN RatSurEntier q k n 1 q k on divise par n 1 END RatPlusRat RatUn q n q n et on ajoute 1 au coefficient de X END de SommePuissancesNiemes Cette proc dure est mise en uvre par une proc dure qui calcule le tableau cherch PROCEDURE SommeDesPuissances nn integer VAR PolB SommePuissances SuitePolRat VAR n integer BEGIN FOR n 1 TO nn DO SommePuissancesNiemes n PolB n 1 SommePuissances n END de SommeDesPuissances Voici le r sultat Chaque formule donne l expression de la somme des puissances n i mes jusqu X Somme des puissances Ordre 1 1 2 X 2 1 2 X Ordre 2 1 3 X 3 1 2 X 2 1 6 X Ordre 3 1 4 X 4 1 2 X 3 1 4 X 2 Ordre 4 1 5 X 5 1 2 X 4 1 3 X 3 1 30 X Ordre 5 1 6 X 6 1 2 X 5 5 12 X 4 1 12 X 2 Ordre 6 1 7 X 7 1 2 X 6 1 2 X 5 1 6 X 3 1 42 X Ordre 7 1 8 X 8 1 2 X 7 7 12 X 6 7 24 X 4 1 12 X 2 Ordre 8 1 9 X 9 1 2 X 8 2 3 X 7 7 15 X 5 2 9 X 3 1 30 X Ordre 9 1 10 X 10 1 2 X 9 3 4 X 8 7 10 X 6 1 2 X 4 3 20 X72 8 3 Partitions d entiers 8
64. FUNCTION EstFlottantNul VAR u Flottant boolean On se propose d crire dans un premier temps des proc dures pour r aliser les quatre op rations arithm tiques disons PROCEDURE FlottantPlusFlottant u v Flottant VAR w Flottant PROCEDURE FlottantMoinsFlottant u v Flottant VAR w Flottant PROCEDURE FlottantParFlottant u v Flottant VAR w Flottant PROCEDURE FlottantSurFlottant u v Flottant VAR w Flottant Les trois premi res proc dures sont faciles crire en s inspirant de la m thode scolaire pour la quatri me on calcule l inverse du diviseur par la m thode de Newton puis on multiplie le r sultat par le dividende Revenons aux proc dures de base Elles se r alisent comme suit FUNCTION Exposant VAR u Flottant chiffre BEGIN Exposant u 0 END de Exposant PROCEDURE FixerExposant VAR u Flottant p chiffre BEGIN u 0 p END de FixerExposant FUNCTION LeSigne VAR u Flottant chiffre BEGIN LeSigne u 1 END de LeSigne PROCEDURE FixerSigne VAR u Flottant s chiffre Version 15 janvier 2005 374 Chapitre 12 Grands nombres BEGIN ul 1 s END de FixerSigne FUNCTION EstFlottantNul VAR u Flottant boolean BEGIN EstFlottantNul u 1 0 END de EstFlottantNul On reconna t donc qu un flottant est nul par le fait qu il n est pas normalis Le flottant nul est initialis dans une proc dure PROCEDURE InitF
65. FUNCTION RangRestreint VAR x Suite n k integer integer VAR r integer BEGIN r 0 WHILE k gt O DO BEGIN IF x n 1 THEN BEGIN r r binomial n 1 k k k 1 END n n 1 END RangRestreint r END de RangRestreint et de la m me mani re la proc dure inverse qui pour un entier donn construit le sous ensemble correspondant 8 1 3 Permutations Une permutation de l ensemble 1 n est repr sent e par la suite o 1 o n On consid re nouveau la g n ration des permutations dans l ordre lexicographique Version 15 janvier 2005 208 Chapitre 8 Exemples combinatoires La premi re permutation est la permutation identique et la derni re la suite n 1 Soit o une permutation Pour calculer la permutation suivante on consid re la derni re mont e de o c est dire le plus grand entier lt n tel que a i lt o i 1 Si o n a pas de mont e c est la derni re permutation sinon soit 7 la suivante elle v rifie r j lt i ro min oU 00 gt ot et r i 1 7 n est la suite croissante des nombres o i o n r i Par exemple si o 8 6 3 4 7 5 2 1 la derni re mont e est 4 et la permutation qui suit o est 8 6 3 5 1 2 4 7 Comme la suite o i 1 o n est d croissante on obtient la suite r i 1 T n en renversant a i 1 o n apr s y avoir substitu a i Les proc dures suivantes r alisent n
66. FUNCTION log10 x real real FUNCTION PuissanceR x y real real Calcule x FUNCTION Puissance x real n integer real Calcule x FUNCTION signe r real integer FUNCTION EstNul r real boolean FUNCTION EstPositif r real boolean Divers PROCEDURE bip B 2 Calcul matriciel CONST OrdreMax 18 TYPE vec ARRAY 1 0rdreMax OF real mat ARRAY 1 0rdreMax OF vec vecE ARRAY 1 0rdreMax OF integer VAR MatriceUnite mat MatriceNulle mat Initialisation PROCEDURE InitMatrices Lecture criture PROCEDURE EntrerMatrice n integer VAR a mat titre texte PROCEDURE EntrerMatriceRect m n integer VAR a mat titre texte PROCEDURE EntrerVecteur n integer VAR a vec titre texte PROCEDURE EntrerMatriceSymetrique n integer VAR a mat titre texte PROCEDURE EcrireMatrice n integer VAR a mat titre texte PROCEDURE EcrireMatriceRect m n integer VAR a mat titre texte PROCEDURE EcrireVecteur n integer VAR a vec titre texte PROCEDURE EcrireVecteurE n integer VAR a vecE titre texte Version 15 janvier 2005 B 3 Polyn mes Op rations PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE Syst mes 449 MatriceParMatrice n integer a b mat VAR ab mat MatricePlusMatrice n MatriceParMatriceRect MatriceParVecteur n VecteurParMatrice n VecteurPlus
67. J OO O w AU BB 01 amp N NN D ND NH 1 La g n ration des partitions distinctes et impaires sur le m me mod le est plus com pliqu e essentiellement parce que l entier 2 n a pas de telle partition Par cons quent certains d buts de partition ne peuvent pas tre compl t s Par exemple parmi les par titions de 30 la suite 15 13 ne peut pas tre compl t e De m me un entier impair n n admet pas de partition dont la plus grande part est n 2 La situation est d crite par le lemme suivant LEMME 8 3 11 Soient n gt m gt 1 des entiers avec m impair Il existe une partition de n en parts distinctes et impaires de plus grande part m si et seulement si IN 1 mens ri et n 2 et m 2 n Preuve Posons m 2k 1 Soit a1 as une partition de n en parts distinctes et impaires et a m Posons m 2k 1 et bi as 1 pour 1 lt i lt s On a videmment n m 2 Par ailleurs pour i 1 8 2i 1 lt b lt 2 k s 2i 1 d o en sommant sur i X 2i 1 8 lt bi n lt 2s k 85 8 2sk 5 lt k i 1 i 1 Version 15 janvier 2005 8 3 Partitions d entiers 231 Supposons que k n 2 Alors k 2 lt 2sk s soit k s lt 2 ou encore k s ou k s 1 Or s lt n k 2 donc k s Comme chaque b est impair on a S n _ b s mod 2 i 1 et d autre part n k 2 k s 1 mod 2 une contradiction
68. M me exemple num rique avec 1 4 Ecrire une proc dure qui calcule les l ments cycliques de S et qui affiche un cycle pour chacun de ces l ments Exemple num rique de la question 1 Une matrice M est dite acyclique si l ensemble de ses l ments cycliques est vide 5 Montrer que est acyclique si et seulement si AS 0 6 On suppose dans cette question que est acyclique On appelle rang de i S l entier r i max m il existe un chemin vers de longueur m Ecrire une proc dure qui calcule le rang des l ments de S 0 1 0 1 0 O0 0 0 0 1 0 O0 A EN _ 0 1 0 0 0 1 Exemple num rique n 6 et 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 7 On appelle p riode d un l ment cyclique i S de et on note di le pgcd des k entiers k gt 0 tels que a i alors d i d j On note U la matrice de M dont tous les coefficients sont gaux 1 Une matrice A M est irr ductible si I p A 1 U elle est primitive s il existe un entier k gt 0 tel que ASF Si A est primitive le plus petit entier k tel que A F U est not y A 1 Montrer que si est accessible de j et j est accessible de 8 a Montrer qu une matrice primitive est irr ductible b Une matrice est ap riodique si elle poss de un l ment cyclique de p riode 1 Montrer qu une matrice irr ductible et ap riodique est primitive 9 Montrer que si A est primitive et sym tri
69. Mathematics of Compu tation 23 1969 861 867 L algorithme de Berlekamp est expos en d tail dans le livre de Knuth D E Knuth The Art of Computer Programming Reading Addison Wesley 1981 Vol 2 Seminumerical Algorithms 420 430 On pourra galement consulter l article original de Berlekamp E R Berlekamp Factoring polynomials over finite fields Bell System Technical J 46 1967 1853 1859 Version 15 janvier 2005 200 Version 15 janvier 2005 Chapitre 7 Polyn mes Partie III Combinatoire 201 203 Chapitre 8 Exemples combinatoires 8 1 G n ration d objets combinatoires Les objets que nous consid rons ici sont les sous ensembles d un ensemble les per mutations les partitions Ils sont repr sent s comme suites finies d entiers Les suites d entiers sont naturellement ordonn es par l ordre lexicographique si s 81 8n ett t1 tm sont deux suites d entiers alors s lt t dans l ordre lexicographique si n lt m et sj t pour j 1 n ou il existe tel que s lt t et sj tj pour j 1 i 1 On cherche des algorithmes pour constituer des listes d objets de taille donn e Le rang d un objet est le nombre d objets qui le pr c dent dans la liste Le premier l ment d une liste a donc rang 0 Le rang sera calcul sans num rer les objets qui le pr c dent et r ciproquement la construction de l objet de rang donn sera
70. PolynomeCaracteristique Les polyn mes sont rang s dans une table de type TYPE SuitePol ARRAY O 0UrdreMax OF pol Ceci est fait par la proc dure PROCEDURE LesPolynomesCaracteristiques n integer a b vec VAR p SuitePol Version 15 janvier 2005 5 3 Valeurs propres de matrices tridiagonales 103 Calcule la suite des polyn mes pr pour r 0 n Le dernier est le polyn me ca ract ristique de la matrice VAR r integer BEGIN p 0 PolynomeUnite p 0 1 plil PolynomeNul pli a p 1 0 al1 p 1 1 1 FOR r 2 TO n DO PolynomeCaracteristique r alr l bfrl plr 1 plr 2 plrl END de LesPolynomesCaracteristiques Pour calculer les z ros de ces polyn mes et en particulier ceux de pn on suppose que bi 0 pour i 2 n et on utilise la d marche suivante si l on conna t les z ros de Pr 1 SOit 21 2r 1 et si de plus on conna t un minorant strict 20 et un majorant strict zp des z ros de py on sait que le polyn me py a un et un seul z ro dans chacun des intervalles ouverts 24 1 2K pour k 1 r En particulier les signes de p z 1 et de p 24 sont oppos s et on peut donc appliquer la m thode de recherche dichotomique du z ro de p dans cet intervalle On utilise pour cela la proc dure ci dessous Elle fait appel la proc dure Valeurd d p x qui value le polyn me p de degr d au point x et qui permet d acc l rer les calculs
71. Preuve Soient p q avec 1 lt p lt q lt n La matrice B P ne diff re de B 4 LP que par les l ments des lignes d indice p et q et on a pour j 1 n ap g 1 p 1 D ppbps Gal ap a 1 1 DU ga pbi P Gad P i gT En raisonnant par r currence on a Ta 0 si be p p lt i lt q Mais par construction bP 0 d o le lemme 0 et si j lt p ou si j pet COROLLAIRE 3 3 2 La matrice R Bl est triangulaire sup rieure PROPOSITION 3 3 3 Toute matrice carr e admet une d composition A QR o Q est une matrice orthogonale et R est une matrice triangulaire sup rieure Preuve On a avec les notations pr c dentes R G n n 1 G n n 2 G n 1 n 2 G n 1 G n 1 1 G 2 1 A Notons U le produit des matrices de rotation Alors U est orthogonale et A UR PROPOSITION 3 3 4 Soit une matrice inversible Alors la d composition QR de A est unique si les signes des l ments diagonaux de R sont fix s Preuve Supposons que admette deux d compositions A QR Q R Comme est inversible R et R le sont et on a donc QTQ RR La matrice QIQ est orthogonale et triangulaire sup rieure donc c est une matrice diagonale De plus les l ments diagonaux de Q71Q sont de valeur absolue gale 1 Posons R r et R r j Alors r r 1 Par hypoth se les signes des l ments diagonaux de R et de R son
72. R ciproquement si u lt h alors comme h lt hw on a u lt hw par transitivit montrant que u est plus petit que ses conjugu s PROPOSITION 9 3 4 Soit u un mot de Lyndon qui n est pas une lettre il existe alors deux mots de Lyndon f et g avec f lt g tels que u fg Notons que de mani re g n rale si f et g sont deux mots de Lyndon tels que fg est un mot de Lyndon alors f lt fg lt g en vertu de la proposition pr c dente Preuve Soit g la fin de u de longueur maximale qui est un mot de Lyndon Un tel mot existe puisque la derni re lettre de u est un mot de Lyndon Posons u fg On a f lt fg lt g parce que fg est un mot de Lyndon Il reste d montrer que f est un mot de Lyndon Soit r une fin de f Puisque rg n est pas un mot de Lyndon il existe une fin s de rg telle que s lt rg Le mot r n est pas un d but de s Sinon en posant s rt on aurait t lt g Or t est une fin de g et comme g est un mot de Lyndon g lt t Ceci montre que s lt r Comme fg est un mot de Lyndon et que s est une fin de rg et donc de fg ona fg lt s donc SSIISEST ce qui montre que f est un mot de Lyndon Observons que la factorisation de u en deux mots de Lyndon f et g n est pas unique Par exemple le mot u 0 0 1 0 1 0 1 1 se factorise de quatre fa ons la premi re est 0 0 1 0 1 0 1 1 la deuxi me 0 0 1 0 1 0 1 1 la troisi me 0 0 1 0 1 0 1 1 et enfin la quatri me 0 0 1 0
73. Rappelons d abord les d finitions de types qui sont les m mes que pour les mots de Lukasiewicz CONST LongueurSuiteMot 10 LongueurTable 6 TYPE SuiteMot ARRAY 1 LongueurSuiteMot OF mot TableSuite ARRAY 0 LongueurTable OF SuiteMot TailleSuite ARRAY 0 LongueurTable OF integer Version 15 janvier 2005 254 Chapitre 9 Combinatoire des mots o l entier d indice n du tableau de type TailleSuite contient le nombre d l ments dans la n i me suite de mots Les mots de Lyndon de longueur n s obtiennent par concat nation de mots de longueur k et de mots de longueur n k avec 1 lt k lt n 1 Voici la proc dure de composition PROCEDURE ComposerLyndon VAR a b c SuiteMot VAR la lb m integer VAR i j integer u mot BEGIN FOR i 1 TO la DO FOR j 1 TO 1b DO IF EstInferieurMot ali b j THEN BEGIN Concatener ali b j u u est un mot de Lyndon InsererMot u c m On l ajoute la liste END END de ComposerLyndon Notons que l on compose deux mots a et b seulement si a lt bj D taillons l insertion du mot u obtenu dans la liste c des mots d j construits Les mots de la liste c sont rang s en ordre croissant Pour ins rer u on parcourt la liste la recherche du premier l ment de c qui est sup rieur ou gal u Si un tel mot n existe pas u est ajout en fin de liste Dans le cas contraire on v rifie s il n est pas gal u car dans ce c
74. SaisirPoint On marque un point par l une des deux proc dures que voici PROCEDURE MarquerPointCarre p Point VAR a Pixel BEGIN PointEnPixel p a TracerCarre a 4 Le choix du nombre 4 est bien s r affaire de go t END de MarquerPointCarre PROCEDURE MarquerPointRond p Point VAR a Pixel BEGIN PointEnPixel p a TracerDisque a 4 Idem END de MarquerPointRond PROCEDURE NumeroterPoint p Point n integer VAR a Pixel BEGIN PointEnPixel p a a 0 a 0 5 Petit d calage pour que n n crase pas le point EcrireGraphique a n END de NumeroterPoint Venons en au trac de droites Pour les segments on utilise PROCEDURE TracerSegment p q Point VAR a b Pixel BEGIN PointEnPixel p a PointEnPixel q b RelierPixels a b END de TracerSegment Pour tracer une demi droite d origine et de direction donn es on d termine le point d intersection de la demi droite avec le rectangle d limitant la partie utilis e de l cran puis on trace le segment obtenu Ainsi PROCEDURE TracerDemiDroite p d Point p est l origine et d est la direction VAR q Point BEGIN Clip p d q q est l intersection de la demi droite avec le cadre TracerSegment p q Version 15 janvier 2005 290 Chapitre 10 G om trie algorithmique END de TracerDemiDroite La proc dure Clip fait le d coupage Voici une criture
75. VAR a Mot n integer VAR derniere boolean Calcule dans le tableau a la partition suivante de n si elle existe Dans la n gative la variable bool enne devient vraie VAR m t j integer possible boolean BEGIN j Longueur a Le nombre de parts de a t 0 Calcul du total redistribuer possible false Pour l instant WHILE j gt 1 AND NOT possible DO BEGIN t t alj Total redistribuer en parts major es par a j 2 Version 15 janvier 2005 232 Chapitre 8 Exemples combinatoires possible CompatiblePartsDistinctesImpaires t a j 2 IF NOT possible THEN j j 1 END while possible derniere NOT possible IF possible THEN BEGIN m alj 2 WHILE t gt O DO BEGIN WHILE t lt m DO m m 2 IF t m 2 AND m gt 1 THEN m m 2 alj m t t m m m 2 j j 1 END while FixerLongueur a j 1 END c est possible Part maximale R partition Ajustement Pour qu il ne reste pas la part 2 On fait des parts Ce qui reste La taille des parts d cro t Le nombre de parts cro t Fin de la r partition Longueur de la nouvelle partition END de PartitionSuivantePartsDistinctesImpaires Voici le r sultat de cette proc dure utilis e pour lister les partitions de 30 en parts impaires et distinctes 29 1 27 3 25 5 23 7 21 9 21 5 3 1 19 11 19 7 3 1 17 13 47 9 38 17 7 5 1 15 11 3 1
76. VAR s motlong VAR n integer BEGIN s 0 1 FOR n O TO GrandeLongueur DIV 2 DO BEGIN s 2 n s n Version 15 janvier 2005 9 4 Suite de Thue Morse 267 s 2 x n 1 s n END END de ThueMorse Voici le r sultat Pour plus de lisibilit on crit le signe plus la place de 1 et un point la place de 1 Suite de Thue Morse 4 PS PR a EE ER CR SR u cc SRE RE RS SE SEE SRE PR PE ER SEE RE SR ES D sormais le d but de la suite de Thue Morse est suppos calcul et disponible dans le tableau s Extraire un facteur de la suite se fait tr s simplement PROCEDURE LeFacteurTM VAR t mot k n integer D termine t Sn Sn k 1 VAR i integer BEGIN FOR i 1 TO k DO t i s n i 1 FixerLongueur t k END de LeFacteurTM Pour tablir une liste des facteurs de longueur k de la suite de Thue Morse on extrait successivement les facteurs dont le d but d occurrence varie entre 0 et r k Puis chaque facteur est ins r s il n y figure pas d j dans une liste de mots rang s par poids croissant Il n est pas difficile de voir que cet ordre est l oppos de l ordre lexicographique sur les images miroirs les mots lus de la droite vers la gauche On pourrait donc utiliser la proc dure d insertion labor e pour
77. avec m Ru r k 1 Le mot t S2m 1 lt S2m 2k est un facteur de longueur 2k On a R t 2m 1 En effet sinon on aurait R t 2n 1 pour un entier n lt m car t n a que des d buts d occurrence impairs Or la suite Sn Sn k est gale u et donc R u lt n contrairement l hypoth se Par cons quent r 2k 1 gt r 2k gt R t 1 2r k 1 R ciproquement soit t Sn Sn 2k un facteur de longueur 2k 1 tel que n R t r 2k 1 Si n est pair et n 2m alors u Sn 8n 2 8n 2k est un facteur de s de longueur k 1 et R u m Si n 2m 1 est impair alors S2m Sn et u Sn 1 Sn 1 Sn 2k 1 est facteur de longueur k 1 avec Ru m Dans les deux cas n r 2k 1 lt 2m 1 lt 2r k 1 1 COROLLAIRE 9 4 5 On a F 1 2 F 2 7 et F k lt 2F 1 k 2 pour k gt 3 En particulier F k lt 8 k 2 pour k gt 3 Preuve Les deux premi res valeurs s obtiennent par inspection Comme F 3 8 la formule est vraie pour k 3 Ensuite on a r k 1 2r 1 k 2 pour k gt 4 donc F k 1 k 2r 1 k 2 lt 2 1 k 2 r 1 k 2 F 1 k 2 Enfin la derni re in galit est vraie pour k 3 et par r currence on obtient F k lt 2F 1 k 2 lt 2 8 k 2 1 8 2 k 2 2 lt 8 k 2 On peut en fait obtenir une expression close pour r k On v rifie en effet facilement partir de la relation de r currence qu
78. carr es d ordre n Pour p q dans 1 n p q on note G q p gij toute matrice de rotation de la forme 1 0 G q p 0 1 avec 8 1 qui ne diff re de la matrice unit que par les l ments d indice p p p q q p q q Plus pr cis ment Jii 51 ifpetifq gij 0 i j i j p q et i j a p Ip p Iq C Ipa Jq p S 1 Etant donn s une matrice et p lt q montrer qu il existe c et s tels que l l ment bp de la matrice B b j G q p A soit nul 2 On d finit une suite de matrices B 9P GE pour 1 lt p lt q lt n par BOD A BoP G q p BLP i lt p lt q lt n BP ptrp 1 2 lt p lt n o G q p est construit de mani re telle que pla 0 On pose R B 1 Montrer que R est une matrice triangulaire et qu elle s crit sous la forme R UA o U est une matrice orthogonale Version 15 janvier 2005 60 Chapitre 3 D compositions 3 Ecrire un programme qui prend en argument une matrice et qui calcule U et R comme d finis ci dessus Ajouter une proc dure qui calcule le d terminant de A 4 Compl ter ce programme pour qu ensuite il lise un vecteur b et donne la solution du syst me Ax b la matrice tant suppos e inversible Exemple num rique gt Il ODoo0ornr A OO OMR Or amp kh k ST Il A OO 5 On appelle d composition QR d une matrice un couple f
79. ces structures sont parfois assez lourdes utiliser Il est donc normal qu un compilateur qui se veut int ressant apporte des possibilit s suppl mentaires et c est une trop grande tentation pour ne pas en profiter Ensuite Pascal toujours la norme ne fixe pas de r gles commodes pour la manipulation de cha nes de caract res et est assez difficile sur les entr es sorties interactives Enfin rien n est pr vu pour l affichage graphique et sur d autres aspects qui s ils d pendent certes du mat riel utilis pourraient n anmoins tre codifi s d une mani re agr able L aussi chaque compilateur vient avec ses solutions Enfin il n y a pas de syntaxe pour l usage des biblioth ques Il ne s agit pas ici de critiquer Pascal ce langage a contribu rendre la programmation raisonnable et ce titre est tr s important les restrictions num r es sont bien connues et Wirth le p re de Pascal les a lev es pour la plupart dans son langage suivant Modula Les programmes pr sent s dans ce livre ont tous t test s soit sur Macintosh sous THINK Pascal soit sur compatible PC sous TURBO Pascal soit les deux Les modifica tions apporter pour les transf rer de l un des compilateurs l autre sont essentiellement les deux suivantes e Dans une instruction CASE le champ optionnel qui d crit l action entreprendre lorsque aucun cas ne s applique est introduit en TURBO Pascal par ELSE qu
80. des deux matrices pr d finies se fait dans la proc dure PROCEDURE InitMatrices D finition de la matrice unit et de la matrice nulle Un certain nombre de proc dures sont employ es pour les entr es et sorties de matrices et de vecteurs PROCEDURE EntrerMatrice n integer VAR a mat titre texte Affichage du titre puis lecture de la matrice a carr e d ordre n PROCEDURE EntrerMatriceRect m n integer VAR a mat titre texte Affichage du titre puis lecture de la matrice a d ordre m n PROCEDURE EntrerVecteur n integer VAR a vec titre texte Affichage du titre puis lecture du vecteur a d ordre n PROCEDURE EntrerVecteurE n integer VAR a vecE titre texte Affichage du titre puis lecture du vecteur entier a d ordre n PROCEDURE EntrerMatriceSymetrique n integer VAR a mat titre texte Affichage du titre puis lecture de la partie triangulaire inf rieure de la matrice sym trique a d ordre n La partie sup rieure de a est compl t e la lecture PROCEDURE EcrireMatrice n integer VAR a mat titre texte Affichage du titre puis de la matrice a d ordre n PROCEDURE EcrireMatriceRect m n integer VAR a mat titre texte Affichage du titre puis de la matrice a d ordre m n PROCEDURE EcrireVecteur n integer VAR a vec titre texte Affichage du titre puis du vecteur a d ordre n PROCEDURE EcrireVecteurE n integer VAR a vecE titre texte Affichage du
81. dk qk dkak Pk qk ce qui montre que tan 204 tend vers 0 et donc 6 tend vers 0 On peut m me tre plus pr cis lt r S A m tan 28k lt 2 Kam donc 6 tend vers z ro g om triquement Consid rons maintenant la norme euclidienne G qx pk T z On a G dk pr S Ile F 4 1 COS x 20k donc x Till lt lxllellG gx px Il e 204 parce que Ip est unitaire Comme la suite 0 tend vers 0 g om triquement cela prouve la convergence de la suite T En passant la limite dans l expression A TAT on obtient GAG d o la relation cherch e 5 1 3 Programme m thode de Jacobi Pour programmer la m thode de Jacobi mettons d abord en place le calcul des matrices de rotations On n en calcule que les coefficients non nuls c est dire les nombres c et s Ceci se fait comme suit en utilisant les formules de la section pr c dente PROCEDURE CoefficientsJacobi p q integer VAR c s real VAR a mat Calcule les nombres c et s tels que bp 0 On suppose que ap a 0 VAR tau t real BEGIN tau alq q alp pl 2 x alp ql IF EstNul tau THEN t 1 ELSE Version 15 janvier 2005 5 1 M thode de Jacobi 91 t signe tau abs tau sgrt 1 sqr tau c 1 sqrt 1 sqr t w t c END de CoefficientsJacobi La strat gie employer pour le choix des indices p q s crit comme suit PROCEDURE IndicesMax n integer VAR
82. dure A la fin de l ex cution de la proc dure la variable locale dispara t Consid rons par exemple la proc dure PROCEDURE somme a b c integer BEGIN c a b END L ex cution de somme 5 x 3 z quivaut alocal 5 blocal x 3 clocal z clocal alocal blocal et en particulier la valeur de z est inchang e apr s l ex cution Le passage par r f rence s effectue diff remment ce n est pas un contenu qui est trans mis mais l adresse d une variable la localisation de l emplacement Plus pr cis ment l expression substitu e au param tre formel est valu e et doit d signer une adresse L expression est donc tr s particuli re c est une variable ou une variable indic e ou toute autre expression dont le r sultat est une adresse Puis l adresse ainsi obtenue remplace le param tre formel en toutes ses occurrences Consid rons par exemple PROCEDURE produit VAR a b c integer BEGIN Les trois param tres sont pass s par r f rence On ne peut donc pas appeler produit x y 3 z parce que le r sultat de l valuation de y 3 n est pas une adresse En revanche produit ulil vli w i est un appel licite Si l on veut que le r sultat d un calcul soit disponible la sortie d une proc dure le param tre correspondant doit n cessairement tre pass par r f rence En revanche une quantit qui intervient dans un calcul sans tre modifi e est pass e
83. en effet le disque de diam tre p q est inclus dans le disque de centre p et de rayon p q qui par d finition de q ne contient aucun autre point de S Soit p q une ar te de E S tous les points de S tant situ s d un m me c t de la droite pq et les points S tant en position g n rale il existe un unique point r de S qui r alise le maximum de Pra r S p a 3 5 D apr s 3 il est clair que pqr est un triangle de Delaunay et que c est le seul triangle de Delaunay d ar te p q Nous montrons maintenant que toute ar te de Delaunay autre qu un c t de l enveloppe convexe de S est le c t de deux triangles de Delaunay Soit p q une ar te de Delaunay C un cercle de Delaunay passant par p et q D son int rieur et H1 Ho les deux demi plans Version 15 janvier 2005 298 Chapitre 10 G om trie algorithmique ouverts dont la droite pq est la fronti re Les points m de D N H sont caract ris s par pmq gt c pour une certaine constante c 0 7 On a car p q n est pas une ar te de l enveloppe convexe de S Soit r l unique point de S N H qui r alise le maximum de ralreSNHi Pour tout point s S p q ona 1 soit s H et alors psq lt prq par d finition de r 2 soit s H et alors de s r D on d duit que psq lt m c et prq lt c d o Psq lt 7 prq En d autres termes l int rieur du cercle passant par p q et r ne contient
84. engendrent H g d apr s la proposition 7 3 12 la propri t pr c dente s tend par lin arit pour tout h H g il existe ap K tel que h anmodg et h an mod g2 Or d apr s la proposition F 3 1 il existe un polyn me h H g qui s pare g et g2 et ce polyn me ne peut v rifier les relations x ci dessus ce qui conclut la d monstration par l absurde La proposition permet de d terminer les facteurs irr ductibles de g Pour trouver ceux de f il faut d abord pr ciser le lien entre les polyn mes r f et r g PROPOSITION 7 3 14 Pour tout i gt 0 il existe c K tel que r g cri f mod f Preuve Reprenons les notations de la proposition et prenons po Xt Par d finition a f est le plus petit entier strictement positif tel que Pa f po mod f Puisque Pa g Po mod g on a aussi Pa g Po mod f Or on a vu dans la preuve de la proposition 3 9 que si pn Pm mod f avec n gt m alors Ppn m po mod f Il en r sulte que a g est multiple de a f car sinon le reste r de la division de a g par f v rifierait pr po mod f en contradiction avec la d finition de a f Il en d coule ri g Po Pi Pa g 1 Z iN po p Pai f 1 ad np mod f On en d duit le r sultat suivant PROPOSITION 7 3 15 Deux facteurs distincts d une d composition de f en produit de facteurs irr ductibles peuvent toujours tre s par s par l un des polyn
85. est d int rieur non vide car la fonction distance tant continue V s contient un voisinage de s L ensemble des r gions de Vorono de S not DV S est appel le diagramme de Vorono de S Les ar tes et les sommets de DV S sont par d finition les sommets et les c t s des r gions de Vorono La triangulation de Delaunay et le diagramme de Vorono de S sont troitement li s Le th or me qui suit pr cise ce lien TH OR ME 10 3 5 Les droites support des ar tes de V s sont les m diatrices des ar tes de Delaunay de sommet s Les sommets de V s sont les centres des cercles circonscrits aux triangles de Delaunay dont l un des sommets est s Deux sommets de V s sont les extr mit s d une ar te de V s si et seulement si les triangles de Delaunay associ s sont adjacents Preuve Pour s S f s soit Ri x E d x s lt d x s le demi plan contenant s de fronti re la m diatrice H du segment s s Les ar tes de V S sont les H NV s d int rieur relatif non vide c est dire qu il existe un ouvert de H dans lequel on a d x s d x si d x S en particulier s s est une ar te de Delaunay Inversement si s s est une ar te de Delaunay alors il existe un x H tel que d x s d x si d x S mais les sites tant en position g n rale cette relation reste vraie dans un voisinage droite ou gauche ou les deux de x dans H et H N V s est bien une ar
86. i a ib b ia avec a b gt 0 Il en r sulte que a ib est diviseur de z zZ et d apr s le lemme de Gauss a ib divise soit z soit Z Par cons quent ou bien a ib divise z ou bien b ia i a ib divise z Il reste d terminer le bon facteur PROPOSITION 11 1 11 Siva ub est un multiple de p alors a ib divise z et si va ub n est pas un multiple de p alors b ia divise z Version 15 janvier 2005 11 1 Entiers de Gauss 331 Preuve Si p 2 on a a b 1 et le r sultat est clair Sinon on a n cessairement a b sinon p a b ne serait pas premier Montrons d abord que si a ib divise z alors p divise va ub Posons en effet z u iv a ib c id Alors c id ab u iv et donc d nn ce qui montre que p divise va ub R ciproquement si p divise va ub et si a ib ne divise pas z alors b ia divise z et par cons quent p divise vb ua d apr s ce qui pr c de On en d duit que p divise d une part va ub vb ua v u a b et d autre part va ub vb ua v u a b Or p ne peut diviser a b puisque a b lt a b p le cas a b a b donnant n cessairement p 2 ce qui est exclu Donc p divise v u et de m me p divise v u On en d duit que p divise 2u et 2v et donc aussi u et v puisque p est impair Par cons quent p divise z et comme a ib divise p on arrive une contradiction En r sum pour d terminer la
87. k i m n integer x chiffre BEGIN writeln writeln titre read c Lecture du premier caract re IF c THEN BEGIN Si c est le signe FixerSigne u 1 on en tient compte read c et on lit le caract re suivant END ELSE IF c THEN BEGIN Signe on proc de de m me FixerSigne u 1 read c END ELSE Sinon c est un entier positif FixerSigne u 1 n 1 e n ord c ord 0 Conversion du premier caract re en digit WHILE NOT eoln DO BEGIN Lecture et conversion des autres n n 1 read c e n ord c ord 0 Version 15 janvier 2005 368 Chapitre 12 Grands nombres END readln Au total n digits lus IF n 1 AND e n O THEN L entier nul FixerTaille u TailleEntierNul ELSE BEGIN t n 1 DIV DecimauxParChiffre FixerTaille u t La taille de l entier i n MOD DecimauxParChiffre i DecimauxParChiffre i MOD DecimauxParChiffre x 0 On groupe les digits m t par paquet de DecimauxParChiffre FOR k 1 TO n DO BEGIN x 10 x elk Sch ma de Horner bien s r i i 1 IF i DecimauxParChiffre THEN BEGIN ulm x Chiffre suivant x 0 i 0 m m 1 END END END END de EntrerEntier Consid rons une autre application Les nombres de Catalan sont d finis par 1 2n gt en e E20 Nous les avons d j rencontr s au chapitre 9 et nous les avons calcul s en arithm tique modulaire au chapitre pr c d
88. la lecture et l affichage des complexes se font par deux proc dures Version 15 janvier 2005 434 Annexe A Un environnement PROCEDURE EntrerComplexe VAR z complexe titre texte PROCEDURE EcrireComplexe z complexe titre texte La proc dure de lecture ne pr sente pas de difficult PROCEDURE EntrerComplexe VAR z complexe titre texte VAR a b real BEGIN writeln writeln titre write Partie reelle readln a write Partie imaginaire readln b CartesienEnComplexe a b z END de EntrerComplexe La proc dure d affichage est compliqu e par les probl mes de mise en page Il faut en effet viter des affichages tels que 2 14 1 1i 0 3i ou 1 2i Pour pouvoir utiliser la proc dure pour l affichage des matrices il faut aussi que la taille totale d un affichage soit ind pendante du nombre complexe On d finit d abord des constantes CONST AligneAGauche LS Centre 0 AligneADroite t La proc dure suivante permet d afficher un nombre complexe en mode align gauche align droite ou centr PROCEDURE FormaterComplexe z complexe Mode integer VAR a b r real n integer FUNCTION LargeurReel a real integer Donne le nombre de positions requises pour l affichage d un r el Compos de trois parties le signe 0 ou 2 positions la partie enti re et la mantisse 1 pr cision VAR LargeurPartieEntiere LargeurSig
89. le premier tant suppos plus grand en valeur absolue que le deuxi me On utilise la proc dure DifferenceChiffres PROCEDURE PositifDePositif delta integer VAR u v w Flottant w u v on suppose u gt v et est la diff rence des exposants de u et v VAR k retenue integer BEGIN DecalerMantisseDroite delta v retenue 0 FOR k TailleMax DOWNTO 1 DO DifferenceChiffres u k l v k w kl retenue FixerExposant w Exposant u NormaliserFlottant w On normalise le r sultat END de PositifDePositif La proc dure de soustraction est alors comme pour l addition un simple aiguillage entre les diverses possibilit s PROCEDURE PositifMoinsPositif u v Flottant VAR w Flottant VAR delta integer BEGIN delta Exposant u Exposant v IF delta gt TailleMax THEN Pas de calcul Version 15 janvier 2005 12 2 Arithm tique flottante 377 W u ELSE IF delta lt TailleMax THEN Pas de calcul W v ELSE IF delta gt 0 THEN PositifDePositif delta u v w ELSE PositifDePositif delta v u w END de PositifMoinsPositif Comme pour les grands entiers pour tenir compte du signe il faut savoir comparer deux flottants l algorithme est le m me la r alisation aussi sauf que l on compare l exposant au lieu de la taille mais est ce vraiment diff rent FUNCTION ComparePositif VAR u v Flottant integer VAR k integer BEGIN IF Exposant u
90. lt n eti j 1 j j 1 les indices sont pris modulo n Dans ce cas le contour C s pare le plan en deux r gions le polygone simple P d fini par S est la r union de C et de la r gion born e appel e l int rieur de P De plus on suppose que pour un observateur qui parcourt le contour dans le sens croissant des indices l int rieur est gauche voir figure la page suivante B P Figure 10 4 1 Un polygone simple Les sommets de P sont donn s par leurs coordonn es Soit P un polygone simple Un sommet p de P est une oreille si le triangle pi 1Pipi est contenu dans P les indices sont pris modulo n Sur la figure p1 p3 ps sont les oreilles On admet que tout polygone simple P poss de au moins deux oreilles 1 Ecrire une proc dure qui teste si un sommet p est une oreille On pourra se servir du fait que p est une oreille si et seulement si p est gauche de la droite orient e Pi p et le triangle p _1p p 1 ne contient aucun autre sommet de P Une triangulation de P est un ensemble de triangles v rifiant les trois conditions sui vantes 1 les sommets des triangles sont des sommets de P 2 la r union des triangles est P 3 les int rieurs des triangles sont deux deux disjoints 2 Ecrire une proc dure qui calcule une triangulation du polygone P Quel est le nombre de triangles dans une triangulation 3 Ecrire un programme qui prend en argument la suite des coordon
91. n n 1 Degre n END de Degre On voit l avantage d avoir choisi de repr senter le degr du polyn me nul par 1 Les deux autres proc dures s crivent comme suit FUNCTION EstPolNul VAR p pol boolean Teste si p 0 Version 15 janvier 2005 426 Annexe A Un environnement BEGIN EstPolNul Degre p DegrePolNul END de EstPolNul PROCEDURE ReelEnMonome s real n integer VAR p pol Donne le polyn me p X sX BEGIN p PolynomeNul pln s END de ReelEnMonome La deuxi me proc dure fait appel au polyn me nul pr d fini Celui ci ainsi que le polyn me unit sont initialis s dans la proc dure PROCEDURE InitPolynomes D finition du polyn me nul et du polyn me unit VAR n integer BEGIN FOR n 0 TO DegreMax DO PolynomeNul n 0 PolynomeUnite PolynomeNul PolynomeUnite 0 1 END de InitPolynomes Cette proc dure doit tre appel e avant toute manipulation Venons en aux proc dures de lecture et d criture La lecture est simple PROCEDURE EntrerPolynome n integer VAR p pol titre texte Affichage du titre puis lecture du polyn me p de degr n VAR i integer BEGIN p PolynomeNul writeln writeln titre FOR i O TO n DO BEGIN write i 2 readln plil END END de EntrerPolynome Notons que l on doit conna tre le degr n avant d utiliser la proc dure L affichage doit respecter
92. on n utilise que le type TYPE chiffre integer entier ARRAY 2 TailleMax OF chiffre et les proc dures PROCEDURE EntierPlusChiffre u entier x chiffre VAR w entier PROCEDURE EntierParChiffre u entier x chiffre VAR w entier PROCEDURE ChiffreEnEntier x chiffre VAR u entier FUNCTION Taille VAR u entier integer PROCEDURE FixerSigne VAR u entier s integer PROCEDURE EcrireEntier VAR u entier titre texte La conversion de la repr sentation en base b en repr sentation modulaire se fait comme suit PROCEDURE EntierEnEntierMod a Entier VAR u EntierMod VAR k integer BEGIN FOR k 1 TO TailleMod DO u k EvalueMod a m k END de EntierEnEntierMod La proc dure EvalueMod value l entier a modulo son deuxi me argument par le sch ma de Horner FUNCTION EvalueMod VAR a Entier m integer integer VAR k aModm integer BEGIN aModm 0 FOR k Taille a DOWNTO O DO aModm aModm base a k MOD m EvalueMod aModm END de EvalueMod R ciproquement le calcul de la repr sentation en base b partir de la repr sentation modulaire se fait en deux tapes Dans une premi re phase on calcule les coefficients vj donn s par la proposition 11 2 2 Version 15 janvier 2005 11 2 Arithm tique modulaire 347 PROCEDURE Conversion u EntierMod VAR v EntierMod VAR j K Zz integer BEGIN FOR k 1 TO TailleMod DO BEGIN
93. or me de Rolle n COROLLAIRE 7 1 4 Soit p un polyn me coefficients r els et soient a et b deux nom bres r els tels quea lt b Consid rons la suite po Pm de polyn mes d finie par po p p p o le polyn me p est le reste de la division euclidienne de p _2 par p _1 pour 2 lt i lt m et o m est le plus grand entier tel que pm 0 Si p a p b 0 alors le nombre de z ros distincts de p dans l intervalle a b est gal V a V b Preuve Avec les notations de la proposition pr c dente on a pi Pmgi pour i 0 m Il en r sulte que V po Pmi Y V go 9m Y pour tout y tel que pm y 0 Or tout z ro de pm est un z ro de p donc pm a pm b 0 Le r sultat d coule alors directement de la proposition pr c dente On consid re maintenant trois suites de nombres r els an n gt 0 bn n gt 1 et Cn n gt 2 Su jettes aux deux conditions suivantes Version 15 janvier 2005 7 1 Suites de Sturm 149 i ao 0 bi 0 ii bnbn 1Cn gt 0 pour tout n gt 2 et on d finit une suite pn de polyn mes coefficients r els par po X ao p X a1 b X Pn X an bnX pn 1 X Enpn 2 n22 II Comme bn 0 pour tout n gt 0 chaque polyn me pn est de degr n PROPOSITION 7 1 5 Les z ros de pn sont tous r els simples et pour n gt 2 on a T lt Y lt T2 lt lt Yn 1 lt Tn o 1 Zn Sont les z ros de pn et y1 Yn
94. q p G q p A tr A soit S B y b2 5 4 a i 1 iel Par ailleurs l expression des coefficients de B en fonction des coefficients de montre que l on a z a a ce a amp 5 bap baq 9 aqp Aqq T8 E A nouveau les traces des carr s de ces matrices sont gales et celles ci s crivent 2 2 Ds 2 2 bpp bag 2bp q App ga 20p q Comme b i a i pour i p q on obtient la relation TH OR ME 5 1 3 Soit A une matrice sym trique et soit A la suite de matrice obtenue par A A et AU Go px AM G qx pr o le couple qk pr est choisi chaque tape tel que max 1 lt i lt j lt n lag a Pk 4k a i j Alors la suite AW tend vers une matrice diagonale dont les l ments diagonaux sont les valeurs propres de Rappelons que la convergence d une suite de matrices d ordre n fini est ind pendante de la norme choisie Elle quivaut la convergence des n suites de scalaires form es par les l ments des matrices Version 15 janvier 2005 5 1 M thode de Jacobi 89 Preuve Soit A une matrice sym trique et soit B G q p AG q p o q p sont choisis tels que a 5 ap ql in lai j Alors on a en sommant n n 1 a gt S A et comme bp 0 le lemme ci dessus montre que 2 TTA Par ailleurs et avec les m mes notations que pour la preuve de la proposition S B S A 20 4 lt i aq q basq aqq app 2ap q8
95. r PolynomeNul FOR i O TO Degre p DO FOR j O TO Degre q DO rli j rli j pli q j END de PolynomeParPolynome PROCEDURE PolynomeParXn p pol n integer VAR q pol q pX VAR i integer BEGIN q PolynomeNul FOR i n TO DegreMax DO qli pli n END de PolynomeParXn PROCEDURE PolynomeParMonome p pol s real n integer VAR q pol q ps X VAR i integer BEGIN q PolynomeNul FOR i n TO n Degre p DO qli s pli n END de PolynomeParMonome PROCEDURE PolynomeParConstante p pol s real VAR q pol q ps Version 15 janvier 2005 A 3 Biblioth ques 429 VAR i integer BEGIN q PolynomeNul FOR i 0 TO Degre p DO q i s p i END de PolynomeParConstante PROCEDURE PolynomeDivEuclPolynome a b pol VAR q r pol a bq r VAR m n integer s real p pol BEGIN q PolynomeNul r a n Degre r m Degre b WHILE n gt m DO BEGIN s r n blm qin m s PolynomeParMonome b s n m p p X sX b X PolynomeMoinsPolynome r p r r X r X sX b X n Degre r END END de PolynomeDivEuclPolynome PROCEDURE PolynomeModPolynome a b pol VAR r pol r a mod b VAR q pol BEGIN PolynomeDivEuclPolynome a b q r END de PolynomeModPolynome PROCEDURE PolynomeDivPolynome a b pol VAR q pol q a div b VAR r pol BEGIN PolynomeDivEuclPolynome a b q
96. r END de PolynomeDivPolynome PROCEDURE PolynomePgcd a b pol VAR pgcd pol pgcd a b VAR r pol BEGIN WHILE NOT EstPolNul b DO BEGIN PolynomeModPolynome a b r a b b r END PolynomeParConstante a 1 alDegre a a pgcd a END de PolynomePgcd PROCEDURE PolynomeDerive p pol VAR dp pol dp d VAR Version 15 janvier 2005 430 Annexe A Un environnement i integer BEGIN dp PolynomeNul FOR i 1 TO Degre p DO dpli 1 i p i END de PolynomeDerive Bien entendu l valuation d un polyn me se fait par le sch ma de Horner FUNCTION Valeurd d integer VAR p pol x real real Calcule la valeur p x du polyn me p de degr d au point x VAR i integer r real BEGIN r 0 FOR i d DOWNTO O DO r r x plil Valeurd r END de Valeurd FUNCTION Valeur VAR p pol x real real Calcule la valeur p x de p au point x BEGIN Valeur Valeurd Degre p p x END de Valeur A 3 3 Les complexes Nous pr sentons dans cette section une biblioth que destin e la manipulation des nombres complexes On d clare TYPE complexe ARRAY 0 1 OF real Pour acc der aux complexes et pour les construire on utilise les fonctions et proc dures suivantes FUNCTION Re z complexe real FUNCTION Im z complexe real FUNCTION ModuleAuCarre z complexe real FUNCTION Module z complexe real FUNCTION Arg z
97. relation iola 3 3 7 R ciproquement toute relation de type B5 peut tre obtenue de la sorte PROPOSITION 12 3 4 Soient a1 ax_1 des nombres rationnels tels que 1 a ax_1 Alors il existe des points A1 A2 Ag du cercle unit coordonn es rationnelles tels que a A A 1 Preuve Soit A1 le point de coordonn es 1 0 et d finissons successivement les points A2 Apg du cercle unit par Re SRE A1 42 a1 Ag 1 k ax En vertu des relations B 7 la suite des points est bien d finie et les sont coordonn es rationnelles L analyse qui pr c de a montr l quivalence du probl me de la recherche des formules la Machin et de la r solution l quation diophantienne a b n 3 8 Les entiers de Gauss voir chapitre 11 permettent de r soudre cette quation Soit n ic 21 20 Zk la d composition de n en produit de facteurs irr ductibles sur l anneau des entiers de Gauss et soit Z le nombre complexe yt r Z 2zi Zk o zi est gal soit z soit son conjugu Z Les parties r elle et imaginaire a et b de Z sont alors solutions de l quation B 8 en effet on a n ZZ a b Par exemple de 65 4 1 2i 2 i 2 3i 3 2i que l on pr f rera crire sous la forme 65 1 2i 1 2i 2 3i 2 3i Version 15 janvier 2005 390 Chapitre 12 Grands nombres qui met en vidence les facteurs con
98. ta a N gt N N N TE pa EE e To T et Lie es N T N OKOS N A D N AN Fe Ta e N ae a 10 ae Nr es Se a Z lez N OT ao Si Tr a o A a LAN TZ a ee LEZ M i HZ Sr no ZA 8 M PS Z ij RAA ES Z T aT A 5 RAS 5 nm TEREA B A D T 7 veS A SDI A m E et rest Lee Es do a CR D AR E re SE ES oi Re PEL RS De Te HT LL D AN LD Lt AR TT LP LR N LL LR D CN LR AR A LL A OH M SL D N AR MN min mn nm MM NNA Man M Man mm Om nm nm im nm nm Min Ma CM a D M 00 m m n Mn Me Te Te TT RS TR ST D ee ee a Te D ed a TS RD ST RD SD 0 de S Le ST EN MIO EU UE a a a a a a a a HT M MORO mMUR HANAN OO mm MORE OO mi M DE OAO mm O0 AOA mMUOR OO md MIO RE OO m DUO Om ON NN N A MMMM D HO OH 10 10 10 10 19 DO OO R NN 00 00 00 00 TS RS TS Fa a a N oS N Z Ta FE A a a T G 7 N 7 N N CO 7 7 N gt gt a gt EE DT a se gt DS lt A es Se Z TS N TRS TS gt N N ae LE lt H T xn 10 HO NN 19 N N lt N S lt S AN ni Z D wn ES ES N A Fe Fe Fe Fe Se SES gt Te te Fe s e N N he lt Ten NN 19 4A N 19 S N LS AN HAN ART TS TS S TR D RTS TS RS N Pham OR NN O mn M D 2 un N D AM A mom NDmmMN mm mm TM OA NME N M M D me ON mi md OO ON mi O Ge TT n TS ST D LS E a a a d a PR TR E N S A Sl a S R N Na ter N Y AN NO YO N N SM OU 0 ON SE QU NS OU AONA NA NAUN mi ANAU YEN NA YUNA 00 ANA
99. voir la discussion dans l annexe A FUNCTION ZeroParDichotomie a b real p pol real On sait que p a p b lt 0 et qu il n y a qu un seul z ro de p dans l intervalle a b On le calcule par dichotomie et on s arr te lorsque a b lt VAR Va Vb Vm m real d integer BEGIN d degre p Va Valeurd d p a Vb Valeurd d p b WHILE NOT EstNul a b DO BEGIN m a b 2 Vm Valeur d p m IF Va Vm lt O THEN BEGIN b m Vb Vm END ELSE BEGIN a m Va Vm END END ZeroParDichotomie a END de ZeroParDichotomie Par commodit nous d finissons le nouveau type vecO qui a une coordonn e suppl mentaire d indice 0 par rapport au type vec Version 15 janvier 2005 104 Chapitre 5 Valeurs et vecteurs propres TYPE vecO ARRAY O UrdreMax OF real La proc dure suivante calcule les z ros de p suppos s tous r els en connaissant pour chaque z ro un encadrement PROCEDURE LesZerosParDichotomie r integer I vec0 p pol VAR z vecO Calcule les z ros du polyn me p de degr r On suppose que p a exactement un z ro dans l intervalle Ik 1 I pour 1 lt k lt r et que p prend des valeurs de signes oppos s aux bornes de cet intervalle On calcule ce z ro et on le range dans 24 VAR k integer BEGIN FOR k 1 TO r DO z k ZeroParDichotomie I k 1 I k p END de LesZerosParDichotomie Il ne reste donc plus qu ca
100. 0 A Ip 7 pl GAp2 oier Apg Un 0 d est unimodulaire Preuve Supposons totalement unimodulaire et soit B A Ip Il est clair que B est de rang p D autre part si C est une sous matrice carr e de taille p p de B son d terminant est celui d une sous matrice de pour le voir il suffit de d velopper le d terminant suivant les colonnes de C d indice sup rieur ou gal p Comme A est totalement unimodulaire ce d terminant est gal 0 1 ou 1 R ciproquement supposons B unimodulaire et soit Qij Qirje A Qinji e Qinjr une sous matrice carr e de d ordre r r Consid rons la matrice carr e d ordre p p Q1 ji ce 1 5 1 0 0 B Menus cons OO 29e Version 15 janvier 2005 6 1 Matrices unimodulaires 121 o pour i 1 p 7r la r i i me colonne de B contient un 1 en position r i j o j est le i i me l ment de l ensemble ordonn 1 p i1 i et des z ros ailleurs Par exemple si i1 i2 i3 2 4 7 etsip 7 ona 1 51 1 52 1 53 1 0 0 Q2 j1 2 52 2 53 a3 j 3 52 3 53 B ag Ahja Gas Q5 j1 5 52 5 53 A6 j1 6 52 6 53 Q7 j1 QTja QTja O 0 OO OO OS On OO OR Oh La matrice B a m me d terminant que A et comme B est unimodulaire ce d terminant vaut 0 1 ou 1 Nous en venons aux caract risations les plus int ressantes des matrices totalement uni modulaires dont nous ne donnerons qu
101. 000 Si l on conserve les indices des colonnes qui ont donn lieu un pivotage on obtient une base des colonnes de la matrice Il suffit de quelques changements mineurs pour adapter la proc dure pr c dente en ce sens PROCEDURE BaseDesColonnes m n integer a mat VAR r integer VAR p vecE Calcule le rang r de la matrice a et un vecteur p tel que les colonnes d indices dans p 1 VA Version 15 janvier 2005 R plr forment une base des colonnes de a k q integer 1 3 Rang d une matrice independant boolean FUNCTION ChercherPivot k integer integer PROCEDURE EchangerFinLignes i j integer PROCEDURE EchangerColonnes i j integer PROCEDURE PivoterGauss k integer BEGIN de BaseDesColonnes r n FOR k 1 TO n DO plk k k 1 WHILE k lt r DO BEGIN q ChercherPivot k independant q lt gt m 1 IF independant THEN BEGIN IF q gt k THEN EchangerFinLignes k q PivoterGauss k k k 1 END ELSE BEGIN EchangerColonnes k r p k r rer d END END de k END de BaseDesColonnes Voici un exemple avec quelques r sultats interm diaires Entrer la matrice Ligne 1 01101 Ligne 2 00000 Ligne 3 01111 Matrice lue 0 000 1 000 000 0 000 1 000 0 000 0 000 0 000 0 000 0 000 0 000 1 000 1 000 1 000 1 000 k 1 r 4 1 000 1 000 1 000 0 000 0 000 0 000 0 000 0 000 0 000 0 000 1 000 1 000 1 000 1 000 0 000 k 2 r 1 000 1 000
102. 000 000 000 000 000 000 000 720 166 619 279 Version 15 janvier 2005 96 Chapitre 5 Valeurs et vecteurs propres 0 034 0 298 0 635 0 576 0 418 0 010 0 611 0 410 0 349 0 580 AG 0 629 0 735 0 434 0 509 0 785 0 210 1 846 0 629 2 370 2 922 0 070 1 636 1 409 3 405 1 318 0 023 1 048 1 557 3 254 1 972 0 007 2 147 1 003 1 970 2 739 GD 0 629 0 735 0 434 0 509 0 785 0 210 1 846 0 629 2 370 2 922 0 070 1 636 1 409 3 405 1 318 0 023 1 048 1 557 3 254 1 972 0 007 2 147 1 003 1 970 2 739 5 2 M thode QR La m thode QR de calcul des valeurs propres d une matrice est une m thode it rative fond e sur la d composition QR voir chapitre 3 C est une m thode couramment em ploy e Soit A une matrice carr e d ordre n On forme la suite Az de matrices par A1 A et Ak 1 RkQk Qky1 Rk k gt 1 o Ak Qk Rg est une d composition QR de la matrice Az Posons Qk Q1Q2 Qk et Rk Rg RoR Alors on a Ax 1 QkAQk de sorte que les matrices A sont toutes semblables A Nous allons montrer sous des conditions assez restrictives que les matrices Ag deviennent triangulaires sup rieures en ce sens que les l ments au dessous de la diagonale tendent vers z ro et que la diagonale converge vers les valeurs propres de la matrice A TH OR ME 5 2 1 Soit une matrice carr e inversible dont les valeurs propres sont toutes de module diff rent Soit P une matrice inversib
103. 000 0 000 0 167 0 000 O OOOO 000 0 000 000 0 000 000 0 333 000 0 333 000 0 000 000 0 000 000 0 333 0 000 2 000 Enfin une matrice d composer d abord Entrer la matrice A V O O iH 0 0 Oo e O O O Ligne 1 012 Ligne 2 000 Ligne 3 000 Ligne 4 021 Matrice U 1 000 2 000 0 000 0 000 0 000 0 000 2 000 1 000 Matrice H 1 000 0 000 0 000 0 000 Vecteur permutation 4 3 2 5 1 Matrice W 0 500 0 000 0 000 1 000 Pseudo inverse avant 0 167 0 000 0 667 0 000 0 167 0 000 0 000 0 000 0 000 0 000 La pseudo inverse de 0 000 0 000 0 167 0 000 0 667 0 000 0 167 0 000 0 000 0 000 0 0 0 0 0 000 000 permutation 000 0 333 000 0 333 000 0 333 000 0 000 000 0 000 A 000 0 000 000 0 333 000 0 333 000 0 333 000 0 000 31 Version 15 janvier 2005 32 Chapitre 2 Manipulation de matrices 2 2 Matrices trigonalisables 2 2 1 Enonc matrices trigonalisables Les matrices consid r es dans ce probl me sont l ments de Kn l anneau des matrices carr es d ordre n coefficients complexes Une matrice A a j de Kn est triangulaire si aij 0 pour lt j On dit qu un ensemble E de matrices de K est trigonalisable s il existe une matrice inversible P telle que pour toute matrice de F la matrice PAP soit triangulaire Le but de ce probl me est de donner un crit re pour qu un ensemble de matrices soit trigonalisable 1 Ec
104. 06 60 E 1 alpha 0 71 77 70 01 10 46 12 99 97 82 11 93 22 36 65 77 94 26 65 00 E 0 denom 0 91 38 93 16 20 88 92 72 50 74 99 33 24 50 95 36 66 73 55 60 E 0 piapp 0 03 14 15 92 65 35 89 79 32 38 46 26 43 38 32 79 50 28 83 O4 E 1 n 5 gamma 0 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 19 beta 0 71 77 70 01 10 46 12 99 97 82 11 93 22 36 65 77 94 26 65 11 E O numer 0 02 87 10 80 04 41 84 51 99 91 28 47 72 89 46 63 11 77 06 60 E 1 alpha 0 71 77 70 01 10 46 12 99 97 82 11 93 22 36 65 77 94 26 65 00 E O0 denom 0 91 38 93 16 20 88 92 72 50 74 99 33 24 50 95 36 66 73 67 76 E O piapp 0 03 14 15 92 65 35 89 79 32 38 46 26 43 38 32 79 50 28 82 61 E 1 pi 0 03 14 15 92 65 35 89 79 32 38 46 26 43 38 32 79 50 28 82 61 E 1 La valeur exacte de m se termine par les chiffres 84 20 Comme annonc la valeur approch e de y devient n gative Version 15 janvier 2005 406 Chapitre 12 Grands nombres Notes bibliographiques Les algorithmes pour l arithm tique en multipr cision se trouvent notamment dans 8 P q P D E Knuth The Art of Computer Programming Vol Il Seminumerical Algorithms Reading Addison Wesley 1968 Ce livre contient aussi une discussion d taill e de la fa on de minimiser les erreurs d arrondi L interpr tation combinatoire des formules d arctangentes est expos e dans B Gr co Papier quadrill et calcul de pi Bulletin de l APMEP 354 1986 347 361 Pour la d termination
105. 1 Puisque h et h 1 sont premiers entre eux d apr s le th or me de Bezout on a f pgcd f h pgcd f h 1 Li On d duit de la proposition un premier crit re d irr ductibilit COROLLAIRE 7 3 6 Le polyn me f est irr ductible si et seulement si H f 0 La proposition ne fournit pas n cessairement une factorisation non triviale de f Cependant si le polyn me f est r ductible il est possible de retrouver tous ses facteurs irr ductibles l aide de la proposition 7 3 5 On dit qu un polyn me h H f s pare deux facteurs f et fj si ces deux facteurs ne divisent pas simultan ment l un des poly n mes pgcd f h ou pgcd f h 1 PROPOSITION 7 3 7 Deux facteurs distincts de la d composition de f en produit de facteurs irr ductibles peuvent toujours tre s par s par un l ment de H f Preuve Soient f et f deux facteurs distincts de la d composition de f en produit de facteurs irr ductibles D apr s le th or me chinois il existe un polyn me unique tel que deg h lt deg f h 1 mod f et h 0 mod fx pour k i Ce polyn me s pare fi et fj par construction et appartient H f puisque h h mod fx pour 1 lt k lt s Li La suite de l algorithme consiste rechercher un l ment de H f Elle repose sur le r sultat suivant PROPOSITION 7 3 8 Soit po un polyn meet soit ph n gt 0 la suite de polyn mes d finie Par Pn 1 p Il existe alors un plus petit en
106. 1 IF k j d THEN j k END 1 BEGIN Factorisation de v CopierFacteurs mE a A A aa 6 LE a a S l END END case END while CopierFacteurs Copie des facteurs en attente LeFacteur w j m f 1 END de FactorisationDuval l Cas rer Le Version 15 janvier 2005 260 Chapitre 9 Combinatoire des mots Voici un exemple d taill d ex cution de la proc dure w 001020010200010010000 l0 l0 0 l0 O 1 10 0 1 0 10 O 1 O 2 10 O 1 O 2 0 10 0 1 0 2 0 O 10 0102 00 1 100102 0010 10010200102 10 01020010 2 0 1001020010 2 0 0 0 O 1 0 2 0 O 1 O 210 0 0 1 0 2 0 O 1 O 210 0 0 O 1 0 2 0 O 1 O 210 O O0 0 O0 1 0 2 0 O 1 O 210 O O 1 0 O 1 0 2 0 O 1 O 210 O O 1 0 0 0 1 0 2 0 O 1 O 210 O O 1 0 0 O0 1 0 2 0 O 1 O 210 O O 1 O O 1 0 0 1 0 2 0 O 1 O 210 O O 1 O O 1 0 00102 0010210001001 0 0 00102 00102 0001001 0 0 0 0 O0 1 0 2 0 O0 1 0 2 0 O O 1 O O 110 0 0 1 0 2 0 O 1 O 2 0 O O 1 O O 110 0 0 O0 1 0 2 0 O 1 0 2 0 O O 1 O O 110 O O 0 O0 1 0 2 0 O0 1 0 2 0 O O 1 O O 110 O O 0 Les barres verticales indiquent la position de la variable 4 les facteurs gauche de la barre 1 dans nos notations sont s par s par des points virgules les autres facteurs lp 1 lq sont droite de la barre verticale et s tendent jusqu la position de j rep r e par le signe deux points La factorisation de Duval est 1 0 1 0 Oo 1 O NN ao E o E ee
107. 1 1 1 1 3 1 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 1 4 1 1 1 1 1 1 1 1 1 1 1 1 14 a E P 1 1 1 zirag i4 i RO EEE sit silst 1 1 1 1 Version 15 janvier 2005 246 Chapitre 9 Combinatoire des mots Let LL ETLET ET 1 Taia LEE LATE t LL TSi lIl 1i isit 1 1 1 1 1 4 LL ELLE TETE L HSE teL tets 1 t tat Lei SL ET t LL LT Le LT L EST ST TE 1 LT A1 T lt T 1 1 5 42 B I 1 01 p did LSL LAT TEL ET LEE LT LE Ltd Soit maintenant u u1 u un mot tel que s u n 1 La preuve de la propo sition donne en fait l algorithme pour calculer le conjugu de u qui est un mot de Lukasiewicz on calcule le plus petit entier tel que s u i mini lt s lt n s u k puis on d cale le mot u cette position On obtient donc la proc dure PROCEDURE ConjuguerEnLukasiewicz u mot VAR i integer VAR v mot VAR j n s smin integer BEGIN n Longueur u smin 0 Conserve mini lt k lt n slu k s 0 i 0 Conserve l indice du minimum FOR j 1 TO n DO BEGIN s s ulj IF s lt smin THEN BEGIN Ajustement du minimum smin s i j END END LeConjugue u i v Calcul du conjugu END de ConjuguerEnLukasiewicz Le calcul de la profondeur d un mot de Lukasiewicz ainsi que le trac de la figure associ e se font plus simplement en utilisant des proc dures r cursives Ainsi la d finition de la pro
108. 1 000 0 000 0 000 0 000 0 000 0 000 0 000 0 000 1 000 0 000 0 000 1 000 0 000 k 2 r 3 1 000 0 000 1 000 1 000 0 000 0 000 0 000 0 000 0 000 0 000 1 000 1 000 0 000 0 000 0 000 k 3 r 3 m 21 Voir Rang Voir Rang Voir Rang Voir Rang Initialisation de p Remplacement de colonne Version 15 janvier 2005 22 1 000 0 000 0 000 1 000 1 000 0 000 k 3 r 2 1 000 0 000 0 000 1 000 1 000 0 000 Rang 2 000 0 000 000 000 0 000 000 000 000 000 000 000 000 Indices des colonnes de la base 5 4 000 000 000 000 000 000 Chapitre 1 Calcul matriciel Bien entendu il y a d autres bases de colonnes la solution fournie par le programme est due au sens de parcours de la matrice Notes bibliographiques Tous les livres d analyse num rique exposent les diverses m thodes dites directes de r solution de syst mes d quations lin aires les m thodes it ratives sont employ es pour des syst mes tr s volumineux tels qu ils se pr sentent dans la r solution d quations aux d riv es partielles Pour plus de d tails on pourra consulter P G Ciarlet Introduction l analyse num rique matricielle et l optimisation Paris Masson 1988 Les erreurs d arrondi sont un probl me majeur de toutes les m thodes de r solution num rique Un classique est J H Wilkinson Rounding errors in algebraic processes Englewood Cliffs P
109. 2 444 0 000 1 301 2 997 2 254 Matrice pour p 3 q 5 4 000 5 477 0 000 0 000 5 477 23 467 1 396 0 000 0 000 1 396 4 483 1 409 0 000 0 000 1 409 2 444 0 000 0 000 0 796 2 589 Matrice pour p 4 q 5 4 000 5 477 0 000 0 000 5 477 23 467 1 396 0 000 0 000 1 396 4 483 1 619 0 000 0 000 1 619 6 879 0 000 0 000 0 000 5 260 Matrice G 1 000 0 000 0 000 0 000 0 000 0 183 0 201 0 849 0 000 0 365 0 663 0 475 0 000 0 548 0 340 0 196 0 000 0 730 0 636 0 122 Matrice tridiagonalis e A 4 000 5 477 0 000 0 000 5 477 23 467 1 396 0 000 0 000 1 396 4 483 1 619 0 000 0 000 1 619 6 879 0 000 0 000 0 000 5 260 Matrice GA tG 4 000 1 000 2 000 3 000 1 000 4 000 1 000 5 000 2 000 1 000 10 000 1 000 3 000 5 000 1 000 14 000 4 000 1 000 7 000 6 000 4 000 000 000 14 m 111 962 000 301 997 254 962 000 000 796 589 606 000 000 000 260 171 000 453 449 739 216 000 000 000 260 171 000 000 Chapitre 4 Matrices tridiagonales 4 3 Tridiagonalisation m thode de Householder On pourra se reporter galement la d composition QR par la m thode de Householder d crite au chapitre 3 Version 15 janvier 2005 4 3 Tridiagonalisation m thode de Householder 79 4 3 1 Enonc tridiagonalisation m thode de Householder On note P la transpos e d une matrice P Soit n gt 1 un entier Les matrices consid r es sont r ell
110. 4816 1361 1573 5255 2133 4757 4184 9468 4385 2332 3907 3941 4333 4547 7624 1686 2518 9835 6948 5562 0992 1922 2184 2725 5025 4256 8876 7179 0494 6016 5346 6804 9886 2723 2791 7860 8578 4383 8279 6797 6681 4541 0095 3883 7863 6095 0680 0642 2512 5205 1173 9298 4896 0841 2848 8626 9456 0424 1965 2850 2221 0661 1863 0674 4278 6220 3919 4945 0471 2371 3786 9609 5636 4371 9172 8746 7764 6575 7396 2413 8908 6583 2645 9958 1339 0478 0275 8968 Le calcul a pris 87 717 secondes La valeur exacte des 4 derniers chiffres est 9009 Le calcul de Arctan 1 18 a demand l valuation de 796 termes celui de Arctan 1 57 le calcul de 569 termes et celui de Arctan 1 239 le calcul de 419 termes 12 4 La formule de Brent Salamin 12 4 1 Enonc la formule de Brent Salamin Soient a b deux nombres r els positifs tels que a gt b On d finit deux suites an bn pour n N par ao a bo b et pour n gt 1 An an T bn 1 2 bn vy An 10n 1 1 D montrer que les suites an et bn admettent une limite commune Cette limite est not e u a b 2 On pose cn 4 a2 b2 D montrer que Cn 1 LL an e bn 2 an 1 Cn 1 An 2 An 1Cn 1 c JA An 1 Cn 1 bn Version 15 janvier 2005 12 4 La formule de Brent Salamin 395 En d duire que la vitesse de convergence de la suite cn est quadratique 3 On pose A a b a cos b sin 6 1 2 puis T 2 T 2 Hets f Haeba an Joe Aa bNde 0 0 En u
111. 5 Pour majorer les z ros on peut utiliser par exemple l in galit de Hadamard qui affirme rappelons le que pour toute matrice a d ordre n et toute valeur propre on a n A lt max 5 la ISFER Lorsqu un des l ments b de la matrice est nul la matrice se d compose par blocs et on est ramen deux sous probl mes de taille plus petite 5 3 3 Programme calcul par dichotomie Une premi re fa on de calculer les valeurs propres de consiste calculer les z ros de Pn Pour cela on doit d abord en calculer les coefficients puis en localiser les z ros Nous allons voir deux m thodes pour ce faire une premi re par dichotomie et une deuxi me fond e sur les suites de Sturm Nous avons vu et nous verrons d autres m thodes pour calculer les valeurs propres sans passer par le polyn me caract ristique Les relations de r currence de la proposition permettent de calculer imm diatement les coefficients des polyn mes py Nous utilisons librement la biblioth que de manipula tion de polyn mes d crite dans l annexe A Voici une r alisation PROCEDURE PolynomeCaracteristique r integer a b real pi p2 pol VAR p pol Calcule p x a x p1 x b po x Les degr s de p p p2 sont respectivement r r letr 2 VAR i integer BEGIN p PolynomeNul p 0 a p1 0 sqr b p2 0 FOR i 1 TO r DO pli a pi i p1ili 1 sqr b p2 i END de
112. 73 pouss s comme ceux des valeurs et des vecteurs propres Deux m thodes de transfor mation orthogonale d une matrice en une matrice tridiagonale sont expos es ici la m thode de Givens et la m thode de Householder 4 2 1 Enonc tridiagonalisation m thode de Givens Soit n gt 2 un entier Les matrices consid r es sont r elles d ordre n On note tP la transpos e d une matrice P Pour p q dans 1 n p q on note G q p gij toute matrice de rotation de la forme 1 0 G q p 0 1 avec s 1 qui ne diff re de la matrice unit que par les l ments d indice p p p q g p q q Plus pr cis ment gii 1l ifpetifq gij 0 i j ij p q et i j a p Ip p Iq Ipa Jq p S 1 Etant donn s une matrice et deux indices p et q avec 2 lt p lt q d montrer qu il existe c et s tels que l l ment b 9 1 de la matrice B bij G q p AG q p soit nul 2 Soit A une matrice sym trique On d finit une suite de matrices B P QUE pour 2 lt p lt q lt n par B22 BaP G q p BG D G gp 2 lt p lt q lt n Br p n p 1 3 lt p lt n o G q p est construit de mani re telle que pue 0 On pose R r j Blunt D montrer que R est tridiagonale c est dire que r j 0 pour i j gt 1 3 Ecrire une proc dure qui prend en donn e une matrice sym trique d ordre n et qui affiche comme r su
113. BEGIN 1 trunc places 1n base In x k 3 2 atan x k m a FOR k m EntierParChiffre a alphalk a EntierPlusEntier p a p END NaturelParChiffre p 4 p END de CalculPi 393 Calcul de Arctan xx Multiplication par a Sommation Multiplication finale par 4 Voici 2000 d cimales de m calcul es sur un Macintosh Ilcx en choisissant la base b 10 000 et en utilisant la formule i 12Arctan 1 18 8Arctan 1 57 5Arctan 1 239 formule qui a d j t donn e par Gauss 3 1415 6939 8628 0938 8410 4428 2712 1339 4881 0113 3305 3105 8912 8602 0539 0005 7363 1050 8640 4999 5024 2619 8142 1159 1712 3809 8230 2497 9265 9375 0348 4460 2701 8109 0190 3607 5209 3053 7270 1185 2793 1394 2171 6812 7178 7922 3441 9998 4594 3118 0617 5628 2680 5257 3019 2177 3589 1058 2534 9550 9385 7566 9145 2602 2096 0548 3657 4807 8183 9463 7629 7145 7214 7968 8159 3729 5534 8171 1776 6388 6613 2010 5203 5283 7932 2097 2117 5822 2110 5933 6485 4914 2829 8204 5959 4462 0119 9522 3176 2635 6844 9258 8136 7804 6908 0100 6914 2353 0019 6548 5301 4791 3846 4944 0679 3172 5559 4461 6692 1273 2540 6652 1953 3799 4912 4737 7523 6082 0901 9235 2977 9951 3026 0313 7303 7875 2787 5863 8529 3151 2643 5923 8214 5359 6446 2847 3460 7245 9171 1384 0921 6274 9833 1907
114. BEGIN Pilote Detect Incantation usuelle InitGraph Pilote ModeGraphique IF GraphResult lt gt GrOk THEN BEGIN Un probl me writeln GraphErrorMsg GraphResult halt END LargeurEcran GetMaxX HauteurEcran GetMaxY InitReticule Au milieu de l cran MoveTo LargeurEcran DIV 2 HauteurEcran DIV 2 END de InitGraphik Le choix de rester en mode graphique demande bien entendu de revoir le style des menus en r servant par exemple une ligne de l cran au texte Version 15 janvier 2005 294 Chapitre 10 G om trie algorithmique 10 3 Triangulation de Delaunay 10 3 1 Enonc triangulation de Delaunay Soit S un ensemble fini de points appel s sites d un plan affine euclidien E muni d un rep re orthonorm O i j On suppose les points de S en position g n rale c est dire que trois quelconques d entre eux ne sont pas align s et qu aucun cercle ne passe par quatre sites quelconques de S On note pq la droite passant par les points p et q et p q le segment de droite joignant p et q Les sites de S sont donn s par leurs coordonn es On appelle enveloppe convexe de S et on note E S la plus petite r gion convexe au sens de l inclusion contenant S On admettra que E S est un polygone sur l exemple de la figure la fronti re de l enveloppe convexe est en traits pais 1 Ecrire une proc dure qui d termine et trace les ar tes du polygone E S on pourra utiliser le fa
115. BEGIN de SystemeParJordan k 1 inversible true WHILE k lt n AND inversible DO BEGIN q PivotMax k inversible NOT EstNul alq k l IF inversible THEN BEGIN IF q gt k THEN BEGIN Version 15 janvier 2005 1 2 R solution de syst mes lin aires 17 EchangerFinLignes k q Echanger b k b ql END PivoterJordan k END k k 1 END du while sur k END de SystemeParJordan Le calcul de l inverse d une matrice inversible d ordre n revient r soudre les n syst mes lin aires Ax Ci i 1 NUL o e est le vecteur colonne dont toutes les coordonn es sont nulles sauf la 5 me qui est gale 1 On proc de bien entendu par r solution simultan e plut t que successive de ces syst mes Si une tape un pivot nul ne peut pas tre limin par change de lignes la matrice n est pas inversible Voici une r alisation PROCEDURE InverseParJordan n integer a mat VAR ia mat VAR inversible boolean Calcule la matrice inverse ia de a par Jordan si a est inversible VAR k q j m integer s real FUNCTION PivotMax k integer integer PROCEDURE EchangerLignes i j integer VAR m integer BEGIN FOR m i TO n DO Echanger ali m alj ml FOR m 1 TO n DO Echanger iali ml ia j ml END de EchangerLignes PROCEDURE PivoterJordan k integer Variante de PivoterJordan VAR d finie plus haut i j integer BEGIN FOR j k 1 T
116. Cardmin THEN LaMeilleureCouleur 2 ELSE LaMeilleureCouleur 3 END de LaMeilleureCouleur Drawing EEE jE Figure 10 4 7 Une triangulation et emplacement des gardiens Notes bibliographiques Les algorithmes g om triques efficaces sont en g n ral tr s sophistiqu s Ils font appel des structures de donn es labor es de plus l analyse de la performance ainsi que la Version 15 janvier 2005 10 4 Galerie d art 321 preuve d un tel algorithme sont souvent fort complexes Ils d passent donc le cadre de ce livre Un expos de synth se est R Graham F Yao A whirlwind tour of computational geometry American Math Monthly 97 Octobre 1990 687 701 Pour les fondements g om triques on pourra consulter M Berger G om trie Convexes et Polytopes Poly dres R guliers Aires et Volumes Paris Cedic Fernand Nathan 1978 Vol 3 B Gr nbaum Convex Polytopes London John Wiley amp Sons London 1967 Les algorithmes de calcul de l enveloppe convexe et des triangulations sont d crits dans les ouvrages de base suivants K Melhorn Data Structures and Algorithms 3 Multi dimensional Searching and Com putational Geometry Berlin Springer Verlag 1984 F P Preparata et M I Shamos Computational Geometry an Introduction New York Springer Verlag 1985 H Edelsbrunner Algorithms in Combinatorial Geometry Berlin Springer Verlag 1987
117. EntierGauss BEGIN IF p MOD 4 3 THEN BEGIN CartesienEnEntierGauss p 0 x AjouterFacteur 0 x END ELSE BEGIN DeuxCarres p a b CartesienEnEntierGauss a b x AjouterFacteur 0 x CartesienEnEntierGauss b a x AjouterFacteur 3 x END END de FactoriserPremier Enfin une proc dure permet de d composer un entier naturel n en produit d entiers de Gauss irr ductibles PROCEDURE FactoriserNaturel n integer D composition d un entier naturel en produit d entiers de Gauss irr ductibles VAR p integer BEGIN WHILE n lt gt 1 DO BEGIN p FacteurPremier n FactoriserPremier p n n DIV p END Version 15 janvier 2005 11 1 Entiers de Gauss 337 END de FactoriserNaturel Finalement la proc dure de factorisation d un entier de Gauss z u iv peut tre r alis e ainsi On commence par d composer le pgcd de u et de v ce qui permet de se ramener au cas o ce pgcd est gal 1 On recherche alors les facteurs premiers de z qui sont n cessairement non congrus 3 modulo 4 Si p est un tel facteur et si p a b est l unique d composition de p comme somme de deux carr s l un des nombres a ib ou a ib i b ia est diviseur de z et on applique la proposition 11 1 11 pour d terminer le bon facteur BEGIN de FactoriserEntierGauss NbFacteurs 0 cz 0 d PGCD Re z Im z FactoriserNaturel d CartesienEnEntierGauss Re z DIV d Im z DIV d
118. La hauteur disponible de l cran mesur e en pixels LargeurEcran integer La largeur disponible de l cran mesur e en pixels PROCEDURE InitGraphik PROCEDURE TracerCarre a Pixel r integer Trace un petit carr de c t 2r centr sur le pixel a PROCEDURE TracerDisque a Pixel r integer Trace un disque plein de rayon r centr sur le pixel a PROCEDURE LireCurseur VAR curseur Pixel Donne dans la variable les coordonn es du point saisi en pixels PROCEDURE RelierPixels a b Pixel Trace un trait qui relie les pixels a et b PROCEDURE EcrireGraphique a Pixel n integer Ajoute au dessin l entier n au pixel a Avec ces primitives les proc dures de la biblioth que Geometrie s crivent facilement Commen ons par PROCEDURE InitGeometrie BEGIN InitGraphik END de InitGeometrie Puis les proc dures de conversion entre points et pixels PROCEDURE PointEnPixel p Point VAR a Pixel BEGIN a 0 round Abscisse p a 1 HauteurEcran round Ordonnee p END de PointEnPixel PROCEDURE PixelEnPoint c Pixel VAR q Point VAR X y real BEGIN x c 0 y HauteurEcran c 1 FairePoint x y q END de PixelEnPoint Les lectures se font par PROCEDURE SaisirPoint VAR q Point VAR curseur Pixel BEGIN LireCurseur curseur PixelEnPoint curseur q Version 15 janvier 2005 10 2 Quelques primitives g om triques 289 END de
119. La proposition suivante montre que la fonction r est une bijection des parties k l ments sur les premiers entiers PROPOSITION 8 1 1 Soient n k gt 0 des entiers Tout entier m avec 0 lt m lt s crit de mani re unique sous la forme m F 7 0m lt lt n lt n Preuve L existence se prouve par r currence sur m en consid rant le plus petit entier n tel que m gt N Alors m lt F E D Ea donc m m 2 x CE L entier m s crit par cons quent sous la forme aa n e Mk i m o avec 0 lt ny lt lt Nk lt n d o l on tire l criture pour m Pour montrer l unicit on observe l in galit Crea Version 15 janvier 2005 8 1 G n ration d objets combinatoires 207 es 7 FR PR _ n 1 ST gt qui se prouve par r currence sur n en utilisant l galit 7 7 VED Il en r sulte que si OORO avec par exemple ni gt ng alors ni n nk ng k 1 nr 1 nk nk 1 amp lt oa S E E E E donc n lt nk d o une contradiction Il reste v rifier que si la partie X pr c de Y dans l ordre d fini ci dessus alors r X lt r Y Pour cela posons o nr 4 ne on A A Comme X pr c de Y il existe lt k tel que n lt n et nj n pour j i 1 k Il en r sulte qu avec s Ep 5 on a r X s G des i lt a lt r Y s 1 i i d o la propri t On obtient facilement la proc dure de calcul du rang
120. PROCEDURE EcrirePolynome VAR p pol titre texte Constructeurs FUNCTION Degre VAR p pol integer FUNCTION EstPolNul VAR p pol boolean PROCEDURE ReelEnMonome s real n integer VAR p pol Op rations arithm tiques PROCEDURE PolynomePlusPolynome p q pol VAR r pol PROCEDURE PolynomeMoinsPolynome p q pol VAR r pol PROCEDURE PolynomeUppose p pol VAR mp pol PROCEDURE PolynomeParPolynome p q pol VAR r pol PROCEDURE PolynomeParXn p pol n integer VAR q pol PROCEDURE PolynomeParMonome p pol s real n integer VAR q pol PROCEDURE PolynomeParConstante p pol s real VAR q pol PROCEDURE PolynomeDivEuclPolynome a b pol VAR q r pol PROCEDURE PolynomeModPolynome a b pol VAR r pol PROCEDURE PolynomeDivPolynome a b pol VAR q pol PROCEDURE PolynomePgcd a b pol VAR pgcd pol PROCEDURE PolynomeDerive p pol VAR dp pol Evaluation de la fonction polyn me FUNCTION Valeur VAR p pol x real real FUNCTION Valeurd d integer VAR p pol x real real B 4 Nombres complexes TYPE complexe ARRAY O 1 OF real Lecture criture PROCEDURE EntrerComplexe VAR z complexe titre texte PROCEDURE EcrireComplexe z complexe titre texte PROCEDURE FormaterComplexe z complexe Mode integer Constructeurs FUNCTION Re z complexe real FUNCTION Im z complexe real FUNCTION ModuleAuCarre z complexe real FUNCTION M
121. TO DegreMax DO Pol01Nul n 0 Pol01Unite PolO1Nul Pol01Unite 0 1 X Pol01Nul X 1 1 Pol01Nul 1 1 Pol01Unite 1 0 X C 11 1 END de InitPol01 Pour conna tre ou pour fixer le degr d un polyn me on utilise les proc dures suivantes FUNCTION Degre VAR p pol01 integer Donne le degr du polyn me p VAR n integer BEGIN Degre pl 1 END de Degre PROCEDURE FixerDegre VAR p pol01 d integer BEGIN pl 1 d END de Degre Nous utiliserons deux fonctions commodes pour les tests d galit La premi re teste si un polyn me est nul et la seconde si deux polyn mes sont gaux FUNCTION EstPolOIiNul VAR p pol01 boolean Teste si p 0 BEGIN EstPol0iNul Degre p DegreNul END de EstPol0iNul FUNCTION SontEgaux f g pol01 boolean Version 15 janvier 2005 7 3 Factorisation de polyn mes 189 VAR EncoreEgaux boolean deg i integer BEGIN deg Degre f EncoreEgaux deg Degre g i i WHILE EncoreEgaux AND i lt deg DO BEGIN ics i 1 EncoreEgaux fli glil END SontEgaux EncoreEgaux END de SontEgaux Pour d finir un polyn me coefficients dans K il suffit de savoir quels sont les coeffi cients gaux 1 les autres coefficients sont n cessairement tous nuls Les proc dures d entr e et d affichage tirent parti de cette particularit PROCEDURE EntrerPol01 VAR f pol01 titre text
122. Un environnement BEGIN z 0 a z 1 b END PROCEDURE PolaireEnComplexe rho theta real VAR z complexe z pe BEGIN z 0 rho cos theta z 1 rho sin theta END Les op rations arithm tiques de base sont les suivantes PROCEDURE ComplexePlusComplexe u v complexe VAR w complexe PROCEDURE ComplexeMoinsComplexe u v complexe VAR w complexe PROCEDURE ComplexeParComplexe u v complexe VAR w complexe PROCEDURE ComplexeSurComplexe u v complexe VAR w complexe PROCEDURE ComplexeParReel z complexe r real VAR w complexe PROCEDURE ComplexeUppose z complexe VAR moinsz complexe PROCEDURE Conjugue z complexe VAR zbarre complexe Elles sont r alis es par PROCEDURE ComplexePlusComplexe u v complexe VAR w complexe w u v VAR a b real BEGIN a Re u Rev b Im u Im v CartesienEnComplexe a b w END de ComplexePlusComplexe PROCEDURE ComplexeMoinsComplexe u v complexe VAR w complexe w u v VAR a b real BEGIN a Re u Re v b Im u Im v CartesienEnComplexe a b w END de ComplexeMoinsComplexe PROCEDURE ComplexeParComplexe u v complexe VAR w complexe w uv VAR a b real BEGIN a Re u Re v Im u Im v b Re u Im v Im u Re v CartesienEnComplexe a b w END de ComplexeParComplexe PROCEDURE ComplexeUppose z complexe VAR moinsz complexe Donne z BEGIN
123. Xi f XiModf p XiModf r Pol0OiNul REPEAT Pol01PlusPol01 r p r Pol0iModPol01 r f r Carre p p Pol01ModPo101 p f p UNTIL SontEgaux XiModf p END de CalculRi La proc dure ci dessous prend en argument un polyn me f affiche le message polynome irreductible si f est irr ductible et donne une d composition non triviale de f sinon PROCEDURE Factorisation f pol01 VAR DecompositionTriviale boolean i integer g h r pol01 BEGIN Premi re tape on calcule la d composition f g h avec h sans carr Si g 1 on affiche la d composition obtenue FacteursCarres f g h IF NOT SontEgaux g Pol01Unite THEN BEGIN writeln f g 2h avec EcrirePol01 g g writeln EcrirePol01 h h writeln END Deuxi me tape f est certainement sans carr on effectue le test d irr ductibilit ELSE IF EstIlrreductible f THEN writeln polyn me irr ductible Troisi me tape f est r ductible On effectue le calcul des r jusqu ce que la factori sation f pgcd f r pgcd f r 1 soit non triviale ELSE BEGIN i 1 DecompositionTriviale true Version 15 janvier 2005 196 REPEAT CalculRi i f r DecompositionTriviale Degre r lt 0 IF NOT DecompositionTriviale THEN BEGIN PGCDPo101 f r h Chapitre 7 Polyn mes Teste si ri 0 ou r 1 DecompositionTriviale Degre h gt Degre f OR Degre h lt 0 E
124. a mat VAR p q integer Calcule un couple p q avec p lt q tel que lap al maxis ai j VAR i j integer maxlocal real BEGIN p 1 q 2 maxlocal 0 FOR i 1 TO n 1 DO FOR j i 1 TO n DO IF abs ali j gt maxlocal THEN BEGIN maxlocal abs ali j p i q END END de IndicesMax On peut alors transformer la matrice par la matrice de rotation PROCEDURE TransformationJacobi n p q integer c s real VAR a mat On applique la matrice de rotation G p q la matrice A VAR j integer u V w real BEGIN FOR j 1 TO n DO IF j lt gt p AND j lt gt q THEN BEGIN v alp jl w alq jl alp j c v s w alj p alp jl alq j s v c w alj q alq j END v alp pl u alp ql w alq ql La bande des quatre alp p c c v 2 c s u s S W alq q s s v 2 x c x s u c vw alp ql 0 alq pl 0 END de TransformationJacobi Comme les matrices sont sym triques la moiti des coefficients sont inutiles et il au rait suffit de travailler uniquement sur la partie triangulaire sup rieure par exemple En fait la programmation est plus simple avec la matrice enti re et les op rations suppl mentaires sont simplement des affectations Une tape de la m thode de Jacobi est r alis e en groupant les op rations pr c dentes Dans la proc dure qui suit on met jour galement le nombre S A not sigma
125. alg bre de Lie r soluble de classe p D montrer qu il existe un vecteur propre to non nul commun tous les l ments de F _1 Pour toute matrice A de F _1 on d signera par A C la valeur propre de telle que Azo A A zo Soit B Fp On pose pour tout k gt 0 k B zxo et on note Vp l espace vectoriel engendr par la famille xk 4 gt 0 8 a D montrer que Vg est l espace vectoriel engendr par la famille tx o lt x lt r o r est le plus grand entier tel que les vecteurs x0 1 x soient lin airement ind pendants b D montrer que V8 est stable par B i e pour tout x Vg Br VB 9 a D montrer que pour toute matrice de F _1 il existe des nombres complexes Xi A 0 lt j lt i lt r tels que pour 0 lt i lt r At A A zi Xi 1 A ti 1 Xo A to xx b D montrer que pour toute matrice A de F _1 A AB BA 0 c En d duire que pour tout x Vg Ax X A x Version 15 janvier 2005 34 Chapitre 2 Manipulation de matrices 10 On pose V x C pour tout F _1 Ax X A x a D montrer que V est un espace vectoriel non nul stable par toute matrice de Fp b D montrer que quels que soient x V et B C Fp on a BCzx CBx c En d duire que les matrices de F ont au moins un vecteur propre commun dans V 11 Conclure la d monstration 2 2 2 Solution matrices trigonalisables Soit Kn l anneau des matrices carr
126. appel e un simplere de dimension k Les points les segments les triangles les t tra dres sont les simplexes de dimensions respectives 0 1 2 et 3 En fait il y a identit entre les poly dres convexes born s et les enveloppes convexes des parties finies La d monstration de ce r sultat qui peut para tre vident pour les dimensions 2 et 3 n est pas triviale Elle n cessite l tude de la structure des poly dres convexes qu est ce qu une face et l introduction de la notion de polaire d un convexe Nous commen ons par la structure des poly dres De toute criture d un poly dre convexe P comme intersection finie de demi espaces ferm s R on peut extraire en supprimant tour tour les demi espaces superflus une criture minimale Pel 1 2 c est dire telle que P est un sous ensemble strict de f Rj pour tout 1 n L exemple du segment dans le plan voir la figure 10 1 2 montre que cette criture n est en g n ral pas unique cependant c est le cas si le poly dre P est d int rieur non vide Version 15 janvier 2005 278 Chapitre 10 G om trie algorithmique b Figure 10 1 2 L criture minimale n est pas toujours unique TH OR ME 10 1 1 Soit P un poly dre convexe de E d int rieur non vide et soit F l ensemble des demi espaces R contenant P dont la fronti re intersecte P selon un convexe de codimension 1 Alors i F est fini i si R F alors Fr R A P e
127. b a FOR k i TO n 1 DO b k b k 1 d d signe a i n DeterminantRecursif n 1 b END DeterminantRecursif d END END de DeterminantRecursif Version 15 janvier 2005 1 2 R solution de syst mes lin aires 15 Cette proc dure engendre de fa on implicite les n permutations de 1 n et est donc tr s co teuse en temps d s que n d passe 6 ou 7 comparer aux n op rations de la m thode de Gauss Mais pour n lt 5 on a n lt n et malgr les recopies et ajustements de tableaux le calcul est instantan dans ce cas 1 2 2 M thode de Jordan La m thode de Jordan aussi appel e m thode de Gauss Jordan ou m thode du pivot total diff re de la m thode du pivot partiel en deux points d une part chaque tape la ligne du pivot est divis e par le pivot et d autre part l expression de la variable de la k i me quation est report e dans toutes les autres quations et pas seulement dans les quations subs quentes Le nombre d op rations de substitution est plus important En change on fait l co nomie de la r solution d un syst me d quations triangulaire Plus pr cis ment si avant la k i me tape on a le syst me d quations He a er ai ui 1 asy a oo S k n 0 1 CLR CDR JAn den 0 bla ae bM k k k a lia DA a a 0 D a an pt on peut supposer quitte changer la ligne k avec une ligne d indice sup rieur que a n est pas nul s
128. but de ce chapitre Plus pr cis ment tout nombre r el r avec r lt b est remplac par l entier ro o N est la taille maximale choisie Les op rations sur ces r els sont approch es par les op rations sur les entiers associ s Ainsi l valuation de 1 x se r alise comme suit PROCEDURE atan x chiffre n integer VAR a entier Version simple Calcule a Arctan 1 x en valuant les n premiers termes du d veloppement VAR k integer BEGIN EntierNul a FOR k O TO TailleMax 1 DO a k 0 a TailleMax 1 a 1 bTailleMaz FixerTaille a TailleMax FixerSigne a 1 FOR k n DOWNTO 1 DO BEGIN NaturelParChiffre a 2 k 1 a a Std NaturelSurChiffre a 2 k 1 a NaturelSurChiffre a x a a a x NaturelSurChiffre a x a ComplementerNaturel a a giam ap eM g END NaturelSurChiffre a x a a afz END de atan La proc dure de compl mentation s crit PROCEDURE ComplementerNaturel a entier VAR ma entier VAR k integer BEGIN ma 0 base a 0 FOR k 1 TO TailleMax 1 DO ma k base 1 a k ma TailleMax 0 k TailleMax 1 WHILE k gt 0 AND ma k 0 DO k k 1 FixerTaille ma k END de ComplementerNaturel On peut acc l rer le calcul de l arctangente en essayant de grouper des divisions par des chiffres si c est possible en particulier si x lt b o b est la base Voici une fa on de
129. calculer successivement les enveloppes convexes des ensembles 1 5S2 S3 8 o S s1 et o S 1 est obtenu partir de S en lui ajoutant le point s 1 Pour d terminer de mani re efficace les valeurs des X Figure 10 1 5 La premi re phase indices jo et j de la proposition pr c dente dans une premi re phase de l algorithme nous trions les points s de telle sorte que le point s soit le point d abscisse minimale et que les autres points soient tri s angulairement autour du point s o s1 Si Sj 1 1 9 pour tout 2 lt i lt j lt n La deuxi me phase de l algorithme consiste calculer E S i 1 partir de E S pour i variant de 3 n Figure 10 1 6 La deuxi me phase Les observations suivantes permettent d effectuer l ensemble de ce calcul avec une com plexit en O n Posons E S u1 e u Version 15 janvier 2005 286 Chapitre 10 G om trie algorithmique o u1 est le point d abscisse minimale de Dans ce cas il est clair que 1 E S3 s1 82 s3 2 u1 81 U2 S2 et U Si D autre part de o s1 S2 8541 1 et o si S1 Si 1 0 S1 Si Si 1 1 on d duit en vertu de la proposition pr c dente que E Si 1 lu Uk si 1 10 o k est d fini comme le plus grand indice j tel que o siy1 u 1 u 1 Enfin et c est l le point cl de l analyse le calcul de k peut se faire en valuant successivement les o s 41
130. carr es B et C telles que A BC Lorsque ces matrices ont une forme particuli re certaines op rations comme la r solution de syst mes lin aires s en trouvent simplifi es Dans ce chapitre nous consid rons trois d compositions la d composition LU la d composition de Choleski et la d composition QR On utilisera aussi ces d compositions pour le calcul des valeurs propres 3 1 D composition LU Une d composition LU d une matrice carr e d ordre n est un couple L U de matrices carr es d ordre n avec L unitriangulaire inf rieure c est dire ayant des 1 sur la diagonale et U triangulaire sup rieure telles que A LU L int r t de disposer d une telle d composition est clair La r solution d un syst me d quations lin aires Ax b se ram ne alors la r solution des deux syst mes triangulaires Ly b Ux y ce qui est particuli rement simple De la m me mani re si A est inversible l inverse A t UTIL s obtient en inversant deux matrices triangulaires ce qui est facile En fait une matrice quelconque n admet pas n cessairement une d composition LU PROPOSITION 3 1 1 Une matrice inversible admet une d composition LU si et seulement si tous ses mineurs principaux sont inversibles de plus la d composition LU est alors unique Version 15 janvier 2005 52 Chapitre 3 D compositions Preuve Supposons que ait deux d compositions LU L U Comme A est inve
131. currences il est commode de poser pour tout n uplet d entiers T1 7n tel que l un des r soit n gatif a r 0 Si k lt n la proposition donne Ok 810k 1 S20k 2 1 Fsg_101 1 F ti ksp 2 1 ce qui permet de calculer amp r Tout d abord si r 0 r2 0 rk 1 0 rk 1 Tk4 1 0 7n 0 0na cri 7n DT ce qui d montre le r sultat dans ce cas puisque pa trate ra 1 sikest pair 1 si k est impair Dans les autres cas toujours pour k lt n les quations 2 1 donnent ce r1 e rn Ari 1 r2 Tn E Qri r2 1 Tn CT es ue dt Ti Tn 2 RAR di eos dr ral eee fra et en observant que les conditions r 2r2 nr k et k lt n imposent rx Tk 1 Tn 0 on trouve r1 k 1 rafk 2 rx 1 k k 1 k r1 rn r 2r2 nrn k ri ra TD ce qui donne bien cg r1 Tn Gr rn Dans le cas o k gt n les quations 21 donnent Ck T1 ss sfr Ari 1 r2 n lri r2 1 rn AE 1 F arira arn Ti Tn 2 EE PA NC AU T1 Tn r Tn 2 EE ne k ra rn r1 2r2 nrn r l ee fa Ti Tn 2 De a k r rn 1 r l ee fa Qri 72 Tn Voici une application classique des formules de Newton Version 15 janvier 2005 7 2 Polyn mes sym triques 167 PROPOSITION 7 2 5 Soit K un anneau int gre de caract ristique 0 et soient ti 1
132. d abord son voisin le plus proche s puis en tournant dans le sens des aiguilles d une montre autour de s on d termine successivement la suite des triangles de Delaunay adjacents dont s est un sommet Deux cas peuvent alors se produire si s n est pas sur l enveloppe convexe on retombe apr s un tour complet sur le sommet s En revanche si la recherche du triangle de Delaunay suivant s arr te une tape donn e faute de site explorer alors le sommet s est sur l enveloppe convexe de S et l exploration continue en partant de l ar te s sj et en tournant cette fois ci autour de s dans le sens contraire Consid rons par exemple la figure Le sommet 2 a le sommet 6 comme voisin le plus proche donc en tournant autour de 2 on d couvre successivement les sommets 1 3 4 5 avant de retomber sur 6 qui indique que 2 n est pas sur l enveloppe convexe En revanche pour le sommet 5 le plus proche voisin est 2 La recherche droite donne uniquement le sommet 4 ce qui indique que 5 est sur l enveloppe convexe puis la recherche gauche donne le site 6 Cette recherche conduit associer chaque site s les informations suivantes la suite finie des sommets qui avec s forment les triangles de Delaunay dont s est un des sommets puis une marque indiquant que s est sur l enveloppe convexe de S ou non Nous utilisons pour conserver ces informations des tableaux d entiers qui contiennent les indice
133. d composition de z u iv on calcule donc la d compo sition de d pgcd u v en facteurs premiers et on d compose ventuellement les facteurs premiers obtenus l aide de la proposition On d compose ensuite z d en facteurs premiers les facteurs premiers qui apparaissent dans cette d composition tant n cessairement non congrus 3 modulo 4 il est inutile de tester les nombres premiers de la forme 4k 3 Chaque facteur premier p de z d fournit un diviseur irr ductible de z Pour obtenir ce diviseur on recherche d abord la d composition unique de p sous la forme p a b et on choisit ensuite entre a ib ou b ia l aide de la proposition 11 1 3 Programme entiers de Gauss La biblioth que de manipulation des nombres complexes doit tre modifi e Le type complexe est remplac par un type EntierGauss TYPE EntierGauss ARRAY 0 1 OF integer Les fonctions de manipulation classiques ne pr sentent pas de difficult FUNCTION Re z EntierGauss integer R z BEGIN Re z 0 END de Re FUNCTION Im z EntierGauss integer S z BEGIN Im z 1 END de Im FUNCTION ModuleAuCarre z EntierGauss integer z BEGIN ModuleAuCarre Sqr Re z Sqr Im z END de ModuleAuCarre FUNCTION Module z EntierGauss real z Version 15 janvier 2005 332 Chapitre 11 Probl mes arithm tiques BEGIN Module Sqrt ModuleAuCarre z END de Module PROCEDURE EGau
134. d nominateur r 1 d DIV p sont premiers entre eux END de FaireRat Les autres proc dures s crivent comme suit FUNCTION Numerateur VAR r rat integer BEGIN Numerateur r 0 END de Numerateur FUNCTION Denominateur VAR r rat integer BEGIN Denominateur r 1 Version 15 janvier 2005 438 Annexe A Un environnement END de Denominateur PROCEDURE FixerNumerateur VAR r rat n integer BEGIN r 0 n END de FixerNumerateur PROCEDURE FixerDenominateur VAR r rat d integer BEGIN r 1 d END de FixerDenominateur PROCEDURE EntierEnRat VAR r rat e integer BEGIN FaireRat e 1 r END de EntierEnRat Les op rations arithm tiques sont les suivantes PROCEDURE RatPlusRat u v rat VAR w rat PROCEDURE RatMoinsRat u v rat VAR w rat PROCEDURE RatOppose u rat VAR v rat PROCEDURE RatParRat u v rat VAR w rat PROCEDURE RatParEntier u rat x integer VAR w rat PROCEDURE RatSurRat u v rat VAR w rat PROCEDURE RatSurEntier u rat x integer VAR w rat Elles sont r alis es par PROCEDURE RatPlusRat u v rat VAR w rat w u v VAR n d integer BEGIN n Numerateur u Denominateur v Denominateur u Numerateur v d Denominateur u Denominateur v FaireRat n d w END de RatPlusRat PROCEDURE RatMoinsRat u v rat VAR w rat w u v VAR n d integer BEG
135. de EstEntierNul Ainsi pour affecter l entier nul une variable on utilise la proc dure PROCEDURE EntierNul VAR u entier BEGIN FixerTaille u TailleEntierNul FixerSigne u 1 END de EntierNul Les op rations arithm tiques sur les entiers se r alisent en transcrivant l algorithme scolaire qui lui op re sur les chiffres Ainsi l addition de deux chiffres x et y en pr sence d une retenue r se fait par les formules z2 y r mod b r x y r b II o r est la nouvelle retenue Cette op ration l mentaire et ses trois cons urs sont prises en charge par les proc dures PROCEDURE SommeChiffres x y chiffre VAR z r chiffre PROCEDURE DifferenceChiffres x y chiffre VAR z r chiffre PROCEDURE ProduitChiffres x y chiffre VAR z r chiffre PROCEDURE DivisionChiffres x y chiffre VAR z r chiffre Elles s crivent comme suit PROCEDURE SommeChiffres x y chiffre VAR z r chiffre BEGIN zZi x y r IF z gt base THEN BEGIN z Zz base r 1 END ELSE r 0 END de SommeChiffres PROCEDURE DifferenceChiffres x y chiffre VAR z r chiffre BEGIN Zi X Y T IF z lt O THEN BEGIN z Z base r 1 END ELSE r 0 END de DifferenceChiffres PROCEDURE ProduitChiffres x y chiffre VAR z r chiffre VAR Version 15 janvier 2005 358 Chapitre 12 Grands nombres s chiffre BEGIN s x y r z
136. de Householder Nous pr sentons maintenant une autre m thode de calcul d une d composition QR On pourra aussi consulter l nonc correspondant de mise sous forme tridiagonale Les matrices consid r es sont r elles carr es d ordre n On note J la matrice unit d ordre n LEMME 3 3 5 Soit w R un vecteur colonne de norme euclidienne 1 et soit P I 2wtw Alors tP P 1 P En effet on a P I 2 w tw P et P I 2w w I 2w w I 4w w 4w ww w I car ww w 1 m Pour k 1 n et pour x R on note v v k x R le vecteur d fini par 0 sil lt i lt k vi k signe xr a sii k Ti sik lt i lt n Version 15 janvier 2005 66 Chapitre 3 D compositions o a 4 2 x et signe s 1 0 1 selon que s gt 0 s 0 s lt 0 On d finit P P k x I bvw avec B 2 v si v 0 8 2 sinon Posons y P k x x LEMME 3 3 6 On a jv 2 vx et y z v Preuve On a lux xx signe xp a k yo x signe xp ka a i k 1 et n lvl xx signe zp a 5 x 20 2signe p zka i k 1 d o la premi re galit Par ailleurs si v 0 v Butur z2r v lvl donc y x bv wr x v En d autres termes Yi signe xr a sii k 0 sik lt i lt n et en particulier les coefficients de y d indices plus grands que k sont nuls Notons AU la j i me colonne de la matrice PROPOSITION 3 3 7 Soit
137. de Lie form e de matrices triangulaires de Kn est r soluble Preuve Soit F une alg bre de Lie form e de matrices triangulaires de Kn Posons pour 1 lt k lt n Tk A aij E F aij 0 pour i lt j k Les matrices de 7 sont donc de la forme 0 0 css 0 0 ssr 0 0 e 0 0 0 Qk 1 1 0 e 0 0 0 QAk 2 1 Qk 2 2 0 0 0 An 1 An 2 A An n k 0 set 0 On montre facilement que si B Tk 1 alors A B Tp Il en r sulte que la suite Fg F A Tk est une suite de r solution de F Il n est pas imm diat au vu de la d finition d une alg bre de Lie r soluble de trouver un algorithme pour tester si une alg bre de Lie est r soluble Il existe heureusement une d finition quivalente beaucoup plus constructive Si F est une alg bre de Lie on note L F l alg bre de Lie engendr e par les matrices A B telles que B F On pose ensuite L0 F F et pour tout k gt 0 LEH F L LF F PROPOSITION 2 2 4 Une alg bre de Lie F est r soluble de classe p si et seulement si LP F 0 Preuve Si F est une alg bre de Lie on a L F C F et donc L F E LHF C CLUP CE Donc si LP F 0 F est r soluble de classe p R ciproquement soit F une alg bre de Lie r soluble de classe p et soit 0 HCAC CcCE F une suite de r solution de F On obtient par r currence L F C F _ et donc en particulier LP F 0 Nous en arrivons au th or me principal TH OR ME 2 2 5 Un e
138. de la proposition 7 1 5 Il en r sulte directement que chaque pn X a n z ros r els simples La suite est aussi une suite de Sturm par la proposition 7 1 6 Avec les notations de la section 7 1 le nombre de z ros de pn dans l intervalle co a est gal VPn po V pn Po 00 Notons W a ce nombre La fonction W a cro t de 0 n lorsque varie de oo co Pour d terminer les z ros de pn et donc les valeurs propres cherch es on est donc ramen au calcul des points de discontinuit de W Soient 1 lt lt n les z ros de pn Au voisinage de x on a W a i 1 si a lt x et W a i si a gt x L algorithme sera donc le suivant partant d un intervalle a 8 tel que W a i 1 et W B i on proc de par dichotomie en coupant l intervalle en deux intervalles a 7 et y 6 jusqu obtenir un intervalle de longueur suffisamment petite Selon que W y i 1 ou non c est le premier ou le second des deux intervalles qui est conserv La valeur initiale de 8 est fournie par une majoration du rayon spectral de la matrice Comme valeur initiale de a on prendra l extr mit sup rieure de l intervalle de l it ration pr c dente et au d part l oppos de la majoration du rayon spectral La proc dure suivante est proche de celle de m me nom de la section 7 1 Le calcul de la variation de la suite de Sturm en un point est fait fr quemment C es
139. de nombreux endroits des structures de donn es plus appropri es L efficacit Quant la complexit des programmes on peut faire plusieurs remarques Les pro grammes que nous donnons ne sont pas les plus rapides possibles loin s en faut Notre souci principal tant la clart et la structuration nos programmes comportent de nom breux appels de proc dures ou de fonctions l o une affectation simple aurait fait gagner Version 15 janvier 2005 VII Avant propos beaucoup de temps au d triment de la clart De m me nous n avons pas essay de faire des conomies de place et nous n avons pas crit de programmes qui au prix d une complication suppl mentaire permettent plusieurs donn es de se partager une m me place Un programmeur astucieux peut dans la plupart de nos programmes diviser le temps d ex cution par trois voire plus et la place requise par deux Si nous gaspillons aussi g n reusement les deux ressources principales le temps et la place c est qu avec les mat riels modernes elles ne nous sont pas compt es aussi longtemps que l on r alise des exercices de programmation L exp rience montre que le programme le plus inef ficace a un temps d ex cution imperceptible par rapport au temps pris par exemple par la frappe des coefficients d une matrice d ordre 4 et par l impression des r sultats Tr s rares sont les cas les programmes de g om trie algorithmique ceux calculant les
140. de supprimer physiquement l l ment i on met jour le tableau d Comme plusieurs l ments peuvent avoir un coefficient d nul on doit g rer convenablement cet ensemble On range ces l ments dans une file ou queue repr sent e par un intervalle dans un tableau La proc dure s crit comme suit PROCEDURE LesRangsRapides n integer a matE VAR rang vecE Version 15 janvier 2005 6 2 Matrices irr ductibles VAR SommetsEnAttente vecE DebutQueue FinQueue integer i j s integer d vecE PROCEDURE Prendre VAR i integer BEGIN i SommetsEnAttente DebutQueue DebutQueue 1 DebutQueue END de Prendre PROCEDURE Inserer i integer BEGIN SommetsEnAttente FinQueue i FinQueue 1 FinQueue END de Inserer FUNCTION EnAttente boolean BEGIN EnAttente FinQueue gt DebutQueue END de EnAttente BEGIN DebutQueue 1 FinQueue 1 FOR i 1 TO n DO rangli 1 FOR i 1 TO n DO BEGIN s 0 FOR j 1 TO n DO s s alj il d i s IF s 0O THEN BEGIN inserer i rangli 0 END END WHILE EnAttente DO BEGIN Prendre i FOR j 1 TO n DO IF a i j 1 THEN BEGIN d j d j 1 IF d j 0 THEN inserer j 141 La queue Le d but et la fin de la queue Le vecteur d Prend le premier l ment dans la queue Ajoute un l ment la queue Teste si la queue est vide Initialise la queue Initialise le tab
141. des rationnels se font par deux proc dures sur le mod le d j rencontr plusieurs fois PROCEDURE EntrerRat VAR a rat titre texte VAR n d integer BEGIN Version 15 janvier 2005 440 Annexe A Un environnement writeln write titre readln n d FaireRat n d a END de EntrerRat PROCEDURE EcrireRat VAR a rat titre texte BEGIN write titre write Numerateur a 1 IF Denominateur a lt gt 1 THEN write Denominateur a 1 END de EcrireRat A 4 Menus Comme nous l avons d j dit nos programmes sont tous interactifs Ils donnent par fois le choix entre plusieurs calculs et demandent toujours des donn es Il n existe pas de recette universelle pour organiser le dialogue Dans nos programmes les choix se pr sentent sous la forme d un menu une option du menu accessible par exemple par peut contenir un ou plusieurs crans d explications Un programme a donc la forme suivante PROGRAM Nom USES Les biblioth ques VAR Variables globales PROCEDURE Menu END de Menu BEGIN Initialisations En t te REPEAT Menu UNTIL false END Les variables globales sont les variables qui doivent conserver leur valeur entre deux ap pels du menu Les initialisations comprennent notamment les proc dures d initialisation des diverses biblioth ques utilis es L en t te d crit bri vement l objet du programme Le menu lit les choix et l u
142. es Version 15 janvier 2005 302 Chapitre 10 G om trie algorithmique Pour d montrer la troisi me relation nous choisissons un rep re O i J et supposons sans perte de g n ralit qu aucune ar te du DV S n est verticale c est dire de di rection J Un sommet de DV S est dit gauche respectivement droit s il est le point d abscisse minimale respectivement maximale d une r gion de DV S On observe alors que tout sommet de DV S est le sommet gauche ou droit d une seule r gion de DV S qu une r gion de DV S born e admet un sommet droit et un sommet gauche tandis qu une r gion non born e admet un unique point gauche ou droit sauf deux d entre elles qui n en admettent aucun En vertu du th or me 0 3 5 les nombres s f et a de sommets triangles et ar tes de la triangulation de Delaunay sont respectivement gaux aux nombres f s et a de faces sommets et ar tes du diagramme de Vorono Les relations de la proposition pr c dente sont ainsi galement v rifi es par les nombres s f et a en lieu et place des nombres f set a 10 3 3 Programme triangulation de Delaunay Pour calculer la triangulation de Delaunay d un ensemble de sites il faut d abord saisir les sites dans un tableau dont le type est d fini par TYPE SuitePoints ARRAY 1 LongueurSuite OF Point La constante LongueurSuite est choisie de fa on convenable La lecture des sites se fait par sa
143. es ou polonaises Elles permettent d crire les expressions et notamment les expressions arithm tiques sans parenth ses tout en respectant la priorit des op rateurs Les mots de Lyndon ont t introduits par Lyndon sous le nom de standard lexicographic sequences Les mots de Lyndon sur l ensemble donnent en fait une base de l alg bre de Lie libre sur L algorithme de Duval est dans J P Duval Factorizing words over an ordered alphabet J Algorithms 4 1983 p 363 381 J P Duval a aussi donn un algorithme efficace pour engendrer les mots de Lyndon de longueur born e en ordre lexicographique La suite de Thue Morse a t tudi e en d tail par A Thue et par M Morse qui ont no tamment tabli l essentiel des r sultats pr sent s ici Cette suite a de nombreuses autres propri t s le fait qu elle est sans cube c est dire ne contient pas trois occurrences cons cutives du m me facteur a t exploit dans la preuve par Adjan et Novikov de l existence de groupes contredisant la conjecture de Burnside Elle est l un des premiers exemples cit s en th orie ergodique Parmi ses d finitions quivalentes mentionnons la possibilit de l engendrer par it ration d un morphisme on remplace 1 par 1 1 et 1 par 1 1 et on recommence sur chaque terme de la suite La suite de Thue Morse est invariante pour cette substitution On peut galement la reconna tre par un automate fi
144. est une alg bre de Lie contenant E et d autre part l intersection d une famille quelconque d alg bres de Lie contenant E est encore une alg bre de Lie contenant E Pour obtenir un proc d constructif on calcule la suite des E ainsi d finie est l espace vectoriel engendr par E et E 1 est l espace vectoriel engendr par l ensemble Ep U A B A B Ex Par construction toute alg bre de Lie contenant E doit contenir tous les Eg Puisque dim Ep lt dim Ek 1 lt n il existe un plus petit entier s tel que E Es 1 L espace vectoriel E est alors ferm par crochet de Lie et c est donc une alg bre de Lie Par cons quent Es est la plus petite alg bre de Lie contenant E On dit qu une suite croissante de sous espaces vectoriels de F 10 Foc Fc c F est une suite de r solution de longueur p de F si pour 1 lt i lt p on a A B F gt A B Fi Une alg bre de Lie est dite r soluble de classe p si elle admet une suite de r solution de longueur p On notera que ces notions sont invariantes par automorphisme Autre ment dit si y est un automorphisme de Kn une alg bre de Lie F est r soluble resp r soluble de classe p si et seulement si w F est r soluble resp r soluble de classe p La proposition qui suit donne un premier exemple d alg bre de Lie r soluble Version 15 janvier 2005 36 Chapitre 2 Manipulation de matrices PROPOSITION 2 2 3 Toute alg bre
145. est congrue 0 modulo 2 Donc gt G 0 JE di jEJ2 R ciproquement si une matrice l mentaire v rifie a l ensemble 1 q peut tre partag en deux classes J et Jz telles que L 1 soit v rifi Soit J une partie de 1 q et posons J JN J et J J N J2 Alors le vecteur vV G G jEJi JEJA est coefficients 0 1 ou 1 En effet fixons un indice i Si Card J N f i g i lt 2 alors V lt 1 Supposons maintenant que J contient f i et g i Si f i et g i sont de signe contraire alors ils sont n cessairement dans la m me classe J ou J4 car sinon V 2 Donc C 0 dans ce cas Si f i et g i sont de m me signe ils sont par le m me argument dans deux classes diff rentes et l encore V 0 COROLLAIRE 6 1 6 Une matrice l mentaire A est quilibr e si et seulement si len semble 1 q peut tre partag en deux classes de fa on que pour tout i les colonnes d indice f i et g i soient dans la m me classe si et seulement si a ft et ai g sont de signes distincts Preuve On vient de voir que f i et g i sont de signe contraire si et seulement si ils sont dans la m me classe On peut d montrer directement qu une matrice v rifiant L1 est totalement unimo dulaire Soient J et J2 les deux classes de 1 q Multiplions toutes les colonnes Version 15 janvier 2005 124 Chapitre 6 Matrices en combinatoire d indice dans J par 1 La ma
146. et e R contenant respectivement ses l ments diagonaux et hors diagonaux Exemple num rique gt Il AUNE A on Arme eorn O amp O N EBOrRr re Version 15 janvier 2005 80 Chapitre 4 Matrices tridiagonales 6 Soit B une matrice carr e inversible sym trique tridiagonale d ordre n donn e par deux vecteurs d et e comme la question pr c dente Ecrire une proc dure pour r soudre le syst me lin aire Bx b et l appliquer la matrice tridiagonale obtenue sur l exemple num rique avec Il OT amp ND mn 4 3 2 Solution tridiagonalisation m thode de Householder Les matrices consid r es sont r elles carr es d ordre n On note J la matrice unit d ordre n Rappelons les notations de la section 3 3 4 Pour k 1 n et pour x R le vecteur v v k x R est d fini par 0 sil lt i lt k vi Lx simetane sii k Ti si k lt i lt n o a yrf x et signe s 1 0 1 selon que s gt 0 s 0 s lt 0 Avec P P k x I Bv v et B 2 vl si v 0 8 2 sinon le vecteur y P k x x v rifie alors y x v parce que 2 vx v en fait on a Yi men sii k 0 sik lt i lt n et en particulier les coefficients de y d indices plus grands que k sont nuls Le proc d de tridiagonalisation est tr s voisin de celui qui m ne la d composition QR Dans la tridiagonalisation on annule successivement les colonnes et les lignes
147. et en vertu du lemme Gn Gn 1 Sn Sn 1 donc Sn Gn pour tout n gt 0 On a Gn P Do Pa grn atr Version 15 janvier 2005 8 3 Partitions d entiers 223 Par ailleurs 0 lt P P lt 1 parce que 0 lt x lt 1 Comme x 90 lt z 1 pour 1 lt r lt n onaGn lt P nz tl Il en r sulte Pa Sul Pn Gnl lt ngrti ce qui prouve l identit d Euler COROLLAIRE 8 3 7 Soient E n le nombre de partitions de n en un nombre pair de parts toutes distinctes et U n le nombre de partitions de n en un nombre impair de parts toutes distinctes Alors E n U n sauf si n est un entier de la forme n k 3k 1 auquel cas E n U n 1 Preuve Le coefficient de z dans la s rie OO I G n 1 est X 1 o la somme porte sur les partitions en parts distinctes et o v est le nombre de parts de la partition Mais d o le r sultat par l identit d Euler PROPOSITION 8 3 8 Le nombre de partitions de n en parts toutes distinctes est gal au nombre de partitions de n en parts toutes impaires Preuve Il s agit de prouver que pour 0 lt x lt 1 CO A CO 1 IG 7 JI TE mal n 0 Les produits sont absolument convergents Posons P G Q I t 7 n 1l n 0 Alors PG Q x IG 27 TG 0 T0 27 n n 0 n 0 Ie 6 G 67 n 1l n 0 Version 15 janvier 2005 224 Chapitre 8 Exemples combinatoires Par cons quent P Q x P x Q x pour
148. et il existe un unique couple u u1 Um et v v1 Uk de mots de Lukasiewicz tels que w TN UipeyUk Les mots u et v sont respectivement appel s le fils gauche et le fils droit de w 6 Ecrire une proc dure qui calcule et affiche tous les mots de Lukasiewicz de longueur lt n en utilisant la caract risation des deux questions pr c dentes On pourra prendre n 9 7 Soit u u1 Un un mot tel que D u 1 D montrer qu il existe un unique i avec 1 lt i lt n tel que Ui Ui 1 Un Ul Ui 1 soit un mot de Lukasiewicz En d duire que le nombre c de mots de Lukasiewicz de longueur 2k 1 p est 1 2k k 1 k Toa 8 Ecrire une proc dure qui pour un mot u u1 Un calcule l entier i de la question pr c dente On note 9 La profondeur p w d un mot de Lukasiewicz est d finie par r currence sur la longueur de w comme suit si w est de longueur 1 alors p w 1 sinon p w 1 max p u p v o u et v sont les fils gauche et droit de w Ecrire une proc dure qui calcule la profondeur d un mot 10 On associe chaque mot de Lukasiewicz w une figure F w dans un plan affine euclidien muni d un rep re orthonorm O i j de la mani re suivante par r currence sur la longueur de w si w est de longueur 1 la figure F w consiste en un point unique plac en O Si w est de longueur gt 1 soient u et v les fils gauche et droit de w la fig
149. faire Version 15 janvier 2005 392 Chapitre 12 Grands nombres PROCEDURE atan x chiffre n integer VAR a entier Version acc l r e VAR k integer y chiffre BEGIN EntierNul a FOR k O TO TailleMax 1 DO a k 0 a TailleMax 1 FixerTaille a TailleMax FixerSigne a 1 IF sqr x lt base THEN BEGIN y sqr x FOR k n DOWNTO 1 DO BEGIN NaturelParChiffre a 2 k 1 a IF y 2 k 1 lt base THEN NaturelSurChiffre a y 2 k 1 a ELSE BEGIN NaturelSurChiffre a 2 k 1 a NaturelSurChiffre a y a END ComplementerNaturel a a END END ELSE FOR k n DOWNTO 1 DO BEGIN NaturelParChiffre a 2 k 1 a NaturelSurChiffre a 2 k 1 a NaturelSurChiffre a x a NaturelSurChiffre a x a ComplementerNaturel a a END NaturelSurChiffre a x a END de atan Pour le calcul de m comme combinaisons lin aires d arctangentes on doit valuer X aArctan 1 x O Q1 1 k k Sont des entiers avec 1 lt x lt b Le nombre de termes du d veloppement de Arctan 1 x calculer pour avoir p places d pend bien entendu de x et est donc valu s par ment PROCEDURE CalculPi places n integer alpha x Coefficients VAR p entier Calcul de x par l expression A a1Arctan x1 anArctan z VAR Version 15 janvier 2005 12 3 Calcul de m par arctangente BEG k m integer a entier IN EntierNul p 1 TO n DO
150. faite directement Engendrer les objets consiste en d terminer le premier puis construire le suivant jusqu l obtention du dernier L objet consid r est le dernier si la tentative de calcul de l objet suivant choue 8 1 1 Sous ensembles Soient engendrer toutes les parties d un ensemble E n l ments L ensemble E est identifi 1 n un sous ensemble X de E est repr sent par le vecteur x associ sa fonction caract ristique et d fini par 1 siiexX Ti 0 sinon Les parties sont ordonn es par l ordre lexicographique sur les vecteurs associ s et le rang d un ensemble X de vecteur x est l entier gt 7_ 2 27 La premi re partie est la partie vide Version 15 janvier 2005 204 Chapitre 8 Exemples combinatoires Pour repr senter les suites d entiers on utilise le type suivant TYPE suite ARRAY 1 LongueurSuite OF integer o LongueurSuite est une constante convenable dans le cas des parties d un ensemble un tableau de bool ens est bien entendu suffisant Le calcul du premier sous ensemble de E la partie vide se fait au moyen de la proc dure que voici PROCEDURE PremierePartie VAR x suite n integer VAR i integer BEGIN FOR i 1 TO n DO x i 0 END de PremierePartie La partie qui suit une partie donn e s obtient en changeant le dernier chiffre gal 0 en 1 et en rempla ant par 0 tous les chiffres qui le suivent PROCEDU
151. galit est imm diate pour k 2 3 Pour k gt 4 l in galit r sulte de la proposition PROPOSITION 9 4 8 Ona Preuve Posons Ed e 2n ra n an P U l r l Version 15 janvier 2005 266 Chapitre 9 Combinatoire des mots Prouvons que le premier produit converge pour les autres le raisonnement est le m me en appliquant la r gle d Abel la s rie des logarithmes la suite de terme g n ral Do m ne prend que les deux valeurs 0 ou 1 et la suite des In 21 tend vers 0 de fa on monotone Donc la s rie OO Same n 9n 2 n 0 converge Ensuite on a 14 2n 1 2n 1 PQ gt Q IGS 2 n 1 Et n Le R 2 fee 2 N Par ailleurs sea 2n NS COLIN R Un 1 1 JI 2n II 2n 1 _Q E m 2n 1 Bar 2n 2 P Il en r sulte que P 1 2 9 4 3 Programme suite de Thue Morse On calcule les premiers termes de la suite de Thue Morse par les formules du lemme 0 4 1 Dans les proc dures qui suivent on utilise la biblioth que de manipulation des mots introduits au d but de ce chapitre Pour disposer d un d but assez long de la suite de Thue Morse il est utile d introduire un type sp cifique qui permet de ranger des mots longs On crira donc CONST GrandeLongueur 255 TYPE motlong ARRAY O GrandeLongueur OF integer VAR s motlong Le d but du mot de Thue Morse La proc dure de calcul est PROCEDURE ThueMorse
152. gaux 0 1 ou 1 les coefficients de B sont gaux 0 1 ou 1 Soit b bj jez la premi re colonne de B On a donc Bb de o e 1 0 0 On pose k fois K keJ b 0 Version 15 janvier 2005 122 Chapitre 6 Matrices en combinatoire Puisque A est quilibr e il existe des sous ensembles disjoints K et K de K d union K et tels que les coefficients du vecteur colonne D GS O kEK1 kEK2 soient gaux 0 1 ou 1 Soit x k keg le vecteur d fini par 1 sikek Th 4 1 sike Ko 0 sk K Par construction on a quel que soit k J k bk mod 2 et donc aussi Bx Bb x mod 2 D autre part Br X Ou X C SC keK keKi kEK2 est coefficients 0 1 ou 1 Il en r sulte que les k derniers coefficients de Bx sont n cessairement nuls De plus comme B est inversible b n est pas nul x n est pas nul et donc Bx west pas nul Par cons quent Bx est gal soit e1 soit e1 et on a B Bx dx B e Comme les vecteurs x et B e sont coefficients 0 1 ou 1 on a n cessairement d 1 ce qui conclut la d monstration par r currence La proposition permet de donner d autres exemples de matrices totalement uni modulaires PROPOSITION 6 1 4 Soient l1 1 des intervalles de R et soient x1 x des nom bres r els distincts Alors la matrice d finie par o 1 six l ij 0 si zj I est quilibr e Preuve Soit K une partie de 1 q
153. gt n la derni re galit est obtenue pour q n et r k n 1 Elle s crit k n 1 gt Xi Xia XXE SnOk n ia Lis lt lt ik i1S i2 ir Les formules cherch es s en d duisent facilement On peut pr ciser la proposition f 2 3 en donnant explicitement l expression des sommes de Newton PROPOSITION 7 2 4 On a les formules TI ota p Ok X Arira Tn 81 S2 Sn ri t2rot nrn k ratrattranpa PLH 2e ii E mn H rn D Ari T2 Tn 1 r T E 1 n Comme nous n avons fait aucune hypoth se sur la caract ristique de l anneau K il peut sembler curieux de voir appara tre des divisions dans l nonc ci dessus En r alit les coefficients amp r r r Sont des entiers relatifs et non des l ments de K La premi re ligne de l nonc utilise donc la convention habituelle qui consiste noter pour tout entier naturel n ng la somme de n l ments gaux x et nx la somme de n l ments gaux z Preuve Posons ri er Ta Ok gt Ck T1 ees gTa S 89 87 r1 7n ENT Version 15 janvier 2005 166 Chapitre 7 Polyn mes Il s agit de prouver la formule 0 sinon par r currence sur k C est vident pour k 1 Supposons la formule vraie jusqu k 1 Les formules de la proposition montrent imm diatement que cx r1 71 est nul si r1 279 nr k On suppose donc d sormais r 2r9 nr k Pour faciliter l criture des r
154. hRet 2 x vRet Trac MoveTo 2 hRet 0 LineTo O 2 x vRet GetMem Reticule ImageSize 0 0 2 hRet 2 vRet R serve place GetImage 0 0 2 hRet 2 vRet Reticule Copie ClearViewPort Et on efface tout END de InitReticule Le r ticule doit simuler une souris Pour cela il se d place en fonction des touches du clavier enfonc es Mais pour d placer le r ticule il faut l effacer et le redessiner La proc dure suivante r alise l op ration Version 15 janvier 2005 292 Chapitre 10 G om trie algorithmique PROCEDURE BasculerReticule Efface le r ticule s il est dessin et le dessine s il est absent BEGIN PutImage GetX hRet GetY vRet Reticule XOrPut END de BasculerReticule Le r ticule suit les fl ches du clavier plus pr cis ment si une des quatre fl ches est enfonc e le r ticule se d place ainsi que le pixel courant si la touche retour est enfonc e la variable bouton ci dessous est mise vrai dans les autres cas il ne se passe rien PROCEDURE SuivreReticule VAR bouton boolean Quand on arrive le r ticule est affich il le restera en sortant CONST FlecheGauche K FlecheDroite M Les num ros des fl ches FlecheHaut H FlecheBas P pas 5 BEGIN CASE Readkey OF 13 bouton true Touche retour chariot 0 BEGIN BasculerReticule CASE Readkey OF FlecheGauche IF GetX gt pas THEN MoveRel pas
155. int rieur Alors p 2 4 Z D 4 x y or By 72 gt 0 z axr y y 20 et z y lt gt p Rela b c o R u v w est enveloppe convexe inf rieure du plan passant par les points u v w Par suite pqr est un triangle de Delaunay de S si et seulement si S est inclus dans Version 15 janvier 2005 300 Chapitre 10 G om trie algorithmique le demi espace R p p q p r ou encore si et seulement si le plan d p p q d r est le support d une face de l enveloppe convexe inf rieure de S Il reste montrer que cette face co ncide avec le triangle p p d g r or quatre points de S n tant par hypoth se jamais cocycliques leurs images par ne sont jamais coplanaires et toute face de l enveloppe convexe de S est un triangle La triangulation de Delaunay est troitement li e une autre structure de base de la g om trie algorithmique Cette structure appara t naturellement dans le probl me suivant tant donn un point de FE quel est le point de S le plus proche Pour tout point s de S on appelle r gion de Voronoi de s l ensemble not V s des points du plan dont la distance l ensemble S est r alis e par s V s xeE d x s d x S 3 6 L ensemble V s est un poly dre convexe car il s crit comme l intersection finie des demi espaces ferm s Ry x E d x s lt d x s de fronti res les m diatrices des segments s s pour s S s de plus V s
156. integer BEGIN VoisinGauche VoisinSuivant i j AGauche END de VoisinGauche Lorsque ces fonctions rendent un indice non nul il est ins r dans la table des voisins soit gauche soit droite Les deux proc dures suivantes se chargent de l insertion PROCEDURE InsererADroite k i integer Insertion de k la fin BEGIN long i longlil 1 Voisins i long i k END de InsererADroite Version 15 janvier 2005 10 3 Triangulation de Delaunay 307 PROCEDURE InsererAGauche k i integer Insertion de k au d but VAR j integer BEGIN FOR j long i DOWNTO 1 DO On d cale d abord les autres voisins Voisins i j 1 Voisins i j long i longlil 1 puis on ins re en t te Voisins i 1 k END de InsererAGauche Apr s les d clarations VAR i j k m integer Voici le corps de la proc dure BEGIN de Delaunay FOR i 1 TO n DO BEGIN Pour chaque site si on cherche m LePlusProcheVoisin i d abord le plus proche voisin longlil 1 Voisins i 1 m On initialise la liste des voisins j m k VoisinDroit i j Premier site adjacent droite WHILE k lt gt 0 AND k lt gt m DO BEGIN Progression droite InsererADroite k i j k k VoisinDroit i j Recherche du suivant END IF k m THEN Si la boucle est boucl e s n est pas EnvConv i 0 sur lenveloppe convexe ELSE BEGIN Sinon s est EnvCo
157. integer VAR a mat real Calcule la somme des carr s des coefficients non diagonaux d une matrice sym trique a VAR s real i j integer BEGIN s 0 FOR i 1 TO n 1 DO FOR j i 1 TO n DO s s sqr ali jl SommeDesCarres 2 s END de SommeDesCarres Voici un exemple d ex cution avec quelques impressions interm diaires Version 15 janvier 2005 5 1 M thode de Jacobi Entrer la matrice Ligne 1 1 Ligne 2 14 Ligne 3 014 Ligne 4 0014 Voici la matrice lue 1 000 1 000 0 000 0 1 000 4 000 1 000 0 0 000 1 000 4 000 1 0 000 0 000 1 000 4 S 6 00000000 Matrice a pour p 1 q 2 0 697 0 000 0 290 O0 0 000 4 303 0 957 O0 0 290 0 957 4 000 1 0 000 0 000 1 000 4 S 4 00000000 Matrice a pour p 3 q 4 0 697 0 000 0 205 0 0 000 4 303 0 677 O0 0 205 0 677 3 000 0 0 205 0 677 0 000 5 S 2 00000000 Matrice a pour p 2 q 3 0 697 0 080 0 189 0 0 080 4 591 0 000 O0 0 189 0 000 2 712 0 0 205 0 623 0 265 5 S 1 08397484 Matrice a pour p 2 q 4 0 697 0 055 0 189 0 0 055 4 140 0 155 0 0 189 0 155 2 712 0 0 213 0 000 0 215 5 S 0 30834481 Matrice a pour p 3 q 4 0 697 0 055 0 205 0 0 055 4 140 0 155 0 0 205 0 155 2 695 0 0 198 0 012 0 000 5 S 0 00000005 Apr s 13 it rations voici la matrice diagonale 0 667 0 000 0 000 0 000 000 000 000 000 000 000 000 205 677 000 000 205
158. j mis en vidence PROPOSITION 7 1 6 Si cn gt 0 pour tout n gt 2 alors pour tout m gt 0 la suite Pm Pm 1 SEN Po est une suite de Sturm pour pm dans l intervalle a b pour des nombres r els a lt b qui ne sont pas des z ros de pm de plus le nombre de z ros de pm dans Pintervalle a b est V a V b si b gt 0 et V b V a sinon Version 15 janvier 2005 150 Chapitre 7 Polyn mes Preuve Notons d abord que la condition sur les polyn mes pn implique que si cn gt 0 tous les bn sont du m me signe celui de b1 Comme po est un polyn me constant et comme pn 1 Cn 1Pn 1 c pour tout n gt 0 et tout z ro c de pn la condition que Cn est positif entra ne que la suite Pm Pm 1 Po est une suite de Sturm Pour montrer la deuxi me partie de l nonc nous allons prouver que la suite v rifie la condition iv respectivement iv des suites de Sturm et appliquer le th or me Soient T1 lt lt m les z ros de pm Comme ces z ros sont simples la fonction polyn me Pm est alternativement croissante et d croissante au voisinage de ces z ros Par ailleurs Pm 1 ayant ses z ros entre deux z ros de pm la fonction p 1 est alternativement positive et n gative au voisinage des z ros de pm Il en r sulte que les fonctions Pm pm 1 x x x i 1 m sont soit toutes positives soit toutes n gatives aux voisinages de x Il suffit donc de d termi
159. k 0 5 round s 4 0 si 0 5 lt s lt 0 5 k s il existe un entier k gt 0 tel que k 0 5 lt s lt k 0 5 PROCEDURE DivisionEuclidienne x y EntierGauss VAR q r EntierGauss Pour y 0 d termine q et r tels que x qy r avec r lt y BEGIN q 0 round Re x Re y Im x Im y ModuleAuCarre y q 1 round Im x Re y Re x Im y ModuleAuCarre y r 0 Re x Re y q 0 Im y q 1 r 1 Im x Im y q 0 Re y q 1 END de DivisionEuclidienne Notre programme de d composition des entiers de Gauss en facteurs irr ductibles fait appel une proc dure de d composition des entiers naturels en facteurs premiers Pour cela le plus simple est d engendrer une table des nombres premiers par un crible l mentaire On peut ensuite l aide de cette table r aliser une proc dure qui fournit le plus petit diviseur premier d un entier Bien entendu cette m thode ne peut s appliquer efficacement qu de tr s petites valeurs Au del si on vise l efficacit il faudrait avoir recours des tests de primalit et de factorisation plus sophistiqu s CONST NombreMax 160 Module maximal des entiers de Gauss d composer ListePremiersMax 35 Nombre maximal de nombres premiers dans la table TYPE ListeNombresPremiers ARRAY 1 ListePremiersMax OF integer VAR Premiers array 2 NombreMax of boolean NombresPremiers ListeNombres
160. la complexit du calcul est dans O nl4 21 1 sous r serve d avoir d termin une premi re face pour amorcer le calcul Comment calculer une premi re face Rapportons l espace E un rep re O ta et appelons H l hyperplan O 14 1 En vertu de la proposition le point s dont la coordonn e en Tg est minimale est un sommet de E S puis l ar te s1 s2 qui minimise l angle du vecteur s1s avec sa projection sur lhyperplan H est une ar te de E S quitte effectuer une rotation nous pouvons maintenant supposer que l ar te s1 s2 se situe dans l hyperplan H le triangle 515253 qui minimise l angle du plan 51525 avec sa projection sur l hyperplan H est alors une 2 face de E S etc Le nombre d angles calcul s dans cette proc dure est de l ordre de dn La complexit du calcul reste donc dans O nl 21 1 Par exemple en dimension 2 et 3 cet algorithme a une complexit en O n alors que la premi re solution propos e conduit des complexit s en O n et O n Nous sommes cependant encore loin d avoir obtenu les algorithmes les plus efficaces En fait en dimension deux et trois il Version 15 janvier 2005 284 Chapitre 10 G om trie algorithmique existe des algorithmes de complexit O n log n pour calculer l enveloppe convexe de n points Tel est le cas en dimension deux de l algorithme de Graham que nous d crivons maintenant L enveloppe convexe de S s1 s ensemble fini d
161. la division de X par f On pose enfin C ci j 1 lt i j lt d 1 Le polyn me h ho h X ha Xi appartient H f si et seulement si ho hi lt ha 1 C ho hi ha 1 Autrement dit H f s identifie l ensemble des vecteurs h ho h1 ha 1 de K4 tels que h C Ia 0 Pour r soudre ce probl me d alg bre lin aire on peut par exemple trianguler la matrice C I4 par une des m thodes expos es par ailleurs dans ce livre D apr s la proposition 7 3 9 la dimension de H f est gale au nombre de facteurs irr ductibles de f 7 3 3 Programme factorisation de polyn mes Il est commode de repr senter les polyn mes coefficients dans K par des tableaux d entiers Comme K poss de deux l ments on pourrait galement songer des tableaux de bool ens mais la mise au point serait plus d licate Le degr du polyn me est m moris dans la composante d indice 1 du tableau Par convention le degr du poly n me nul est 1 Version 15 janvier 2005 188 Chapitre 7 Polyn mes CONST DegreMax 127 Le degr maximal des polyn mes DegrePolNul 1 Le degr du polyn me nul TYPE pol01 ARRAY 1 DegreMax OF integer Le degr du polyn me p est p 1 Les polyn mes 0 1 et X sont pr d finis dans une proc dure d initialisation VAR Pol01Nul Pol01Unite X pol01 PROCEDURE InitPol01 D finition des polyn mes 0 1 et X VAR n integer BEGIN FOR n O
162. la division euclidienne de g par f est solution du probl me cherch Notons H f l ensemble des polyn mes h tels que deg h lt deg f et h h mod f L algorithme est fond sur la propri t suivante qui fournit dans certains cas une fac torisation de f PROPOSITION 7 3 5 L ensemble H f est un sous espace vectoriel de K X de dimen sion s et pour tout h H f on a f pgcd f h pgcd f h 1 Preuve Les conditions h h mod f et ha h mod f entra nent d apr s la propo sition 7 3 1 h ho h h ha h2 mod f En outre h hz h ho et 0 H f Donc H f est un sous espace vectoriel de K X De plus comme les f sont distincts donc premiers entre eux on a h mod f si et seulement si h h mod fi pour 1 lt lt s Cette derni re condition quivaut dire que f divise l un des polyn mes Version 15 janvier 2005 7 3 Factorisation de polyn mes 183 h ou h 1 puisque chaque f est irr ductible et que h h h h 1 En r sum un polyn me h appartient H f si deg h lt deg f et s il existe pour 1 lt i lt s un l ment a de K tel que h a mod fi Or le th or me chinois montre que pour une famille a 1 lt i lt s donn e les conditions pr c dentes sont v rifi es par un polyn me et un seul Il en r sulte que H f contient 2 l ments et sa dimension est donc s Soit h H f Puisque f divise h h on a f pgcd f h h
163. les mots de Lyndon Nous pr f rons crire une proc dure sp cifique qui utilise le poids comme crit re de comparaison Commen ons par le calcul du poids FUNCTION Poids VAR t mot integer Calcul du poids d un mot t par le sch ma de Horner VAR i p integer BEGIN p 0 FOR i Longueur t DOWNTO 1 DO p 3 p tlil Poids p END de Poids On peut ne pas calculer r k explicitement mais utiliser une majoration telle que nous l avons tablie pr c demment Le calcul explicite de r k se fait de mani re naturelle en traduisant les relations de r currence de la proposition 9 4 4 en une proc dure r cursive Version 15 janvier 2005 268 Chapitre 9 Combinatoire des mots FUNCTION r k integer integer BEGIN IF k 1 THEN r 1 ELSE IF k lt 3 THEN r 5 ELSE r i 1 2 x r 1 k DIV 2 END de r Cette proc dure peut bien entendu s crire aussi de mani re it rative mais nous pr f rons plut t donner une valuation de la formule close FUNCTION r k integer integer VAR DeuxPuissanceN integer BEGIN IF k 1 THEN r 1 ELSE IF k lt 3 THEN r 5 ELSE BEGIN DeuxPuissanceN 2 WHILE DeuxPuissanceN 2 lt k DO DeuxPuissanceN 2 DeuxPuissanceN r 3 DeuxPuissanceN 1 END END de r Voici le calcul des facteurs de longueur k PROCEDURE LesFacteursTM k integer VAR a SuiteMot VAR 1 integer Calcule dans a les facteurs de longueur k de la s
164. lt et y n lt 4 ce qui est toujours possible Si on pose q m in et r u va il vient u vq r et w q lt 1 2 d o 1 p ut ele le 4 7 Donc en prenant v v on en d duit que K est euclidien Notons P l ensemble des entiers de Gauss de la forme a ib avec a gt 0 et b gt 0 Soit z a ib un l ment non nul de K Alors l un au moins des l ments z a ib iz b ia z a ib iz b ia est l ment de P En fait tout l ment non nul z de K s crit de fa on unique sous la forme z uz avec z P et u inversible c est dire gal 1 i 1 ou i Ceci permet de raisonner uniquement dans P pour les questions de divisibilit un l ment inversible pr s En particulier on appellera pgcd de deux l ments non nuls z et z2 de K l unique l ment d de P tel que d divise z1 et 22 et tel que tout diviseur commun z et z2 divise d De m me on dira qu un l ment z de K est irr ductible s il appartient P 1 et si ses seuls diviseurs sont de la forme u ou uz avec u inversible On peut alors noncer le lemme de Gauss sous la forme suivante PROPOSITION 11 1 3 Si z est irr ductible et divise le produit 2122 alors z divise z ou z divise 22 Version 15 janvier 2005 328 Chapitre 11 Probl mes arithm tiques Preuve L id al engendr par z et z est principal et est engendr par le pgcd d de z et de z1 Co
165. lt i lt n et yi 1 lt i lt n deux familles de n l ments de K tels que 5 g 5 y pourl lt k lt n 1 lt i lt n 1 lt i lt n Il existe alors une permutation p de 1 n telle que x yi pour 1 lt k lt n Preuve On a par hypoth se op 1 n Ok y1 Yn pour 1 lt k lt n Montrons par r currence sur k que sk 1 n sg y1 Yn pour tout k lt n Le r sultat est clair pour k 1 puisque g1 s1 Si le r sultat est vrai jusqu au rang k 1 lt n les quations donnent ksz x1 ves ifn ksk y1 ves Yn Comme l anneau K est int gre et de caract ristique nulle cela conclut la r currence Il en r sulte que 1 2n respectivement y1 Yn sont les n racines de l quation X 81X l 4 SX 2 t e 1 ts 0 Par cons quent il existe une permutation p de 1 n telle que pi yi Notons que les deux hypoth ses faites sur K sont n cessaires En effet dans Z 2Z on a 91 0 0 o1 1 1 0 et o2 0 0 o2 1 1 0 et dans l anneau produit Z x Z on a og 1 1 0 0 1 1 o4 1 0 0 1 pour tout k gt 0 7 2 3 Programme polyn mes sym triques Appelons multidegr d un mon me aX1 Xz le n uplet d entiers r1 r1 Comme le sugg re l nonc du probl me on peut repr senter un mon me aX 1 X avec a 0 par un tableau contenant les valeurs a r1 r et un polyn me comme un tableau de mon mes Nous appelerons taille du polyn
166. lt pi sin 1 lt n s s n 1 n s n 2 Il reste prouver que s lt n 1 Si l on avait s n la matrice serait une matrice de permutation ce qui est exclu puisqu une telle matrice n est pas primitive Il n est pas difficile de voir que la matrice HR OOo oOnoo 0 r alise l galit une permutation pr s c est la seule matrice qui r alise l galit Version 15 janvier 2005 136 Chapitre 6 Matrices en combinatoire 6 2 3 Programme matrices irr ductibles Les matrices consid r es sont coefficients 0 ou 1 On peut donc choisir de les repr senter comme matrices coefficients entiers ou coefficients bool ens Nous choisissons la premi re solution car elle va nous permettre de coder diverses informations suppl men taires dans les l ments des matrices On d finit donc TYPE vecE ARRAY 1 0rdreMax OF integer matE ARRAY 1 0rdreMax OF vecE o OrdreMax est une constante convenable Nous avons besoin de la matrice unit VAR MatriceEUnite matE Matrice pr d finie Les proc dures de lecture d criture et d initialisation de la matrice unit sont en tout point analogues celles d j vues pour les matrices r elles Nous ne donnons que les en t tes PROCEDURE InitMatricesE PROCEDURE EntrerMatriceE n integer VAR a matE titre texte PROCEDURE EcrireMatriceE n integer VAR a matE titre texte Les deux op rations no
167. m Z Pour tout entier u 0 m 1 le r uplet u1 u d entiers avec 0 lt u lt m et u u mod m pour i 1 r est la repr sentation modulaire de u La repr sentation en base b de u est un vecteur U d entiers dont chaque composante U est comprise entre 0 et b 1 et tel que u 59 Uib Dans la r daction des programmes on pourra supposer que les m sont choisis de sorte que m soit repr sentable par un entier simple pr cision de l ordinateur 1 D montrer que pour tout couple d entiers i j avec 0 lt lt j lt r il existe un entier Gi avec 0 lt cij lt Mmj tel que CijMi 1 mod mj et donner un algorithme pour calculer c j partir de m et mj Ecrire une proc dure qui affiche la table des c pour les valeurs num riques donn es plus bas 2 Soit u1 u la repr sentation modulaire de u Pour calculer la repr sentation en base b de u on d finit v1 1v avec 0 lt vi lt Mm par V1 U1 v u2 V1 C1 2 mod m2 V3 us V1 C1 3 v2 C2 3 mod m3 Ur ur Vi C1r V2 C2 r Ur_1 Cr 1r mod mp D montrer que uU VrMy 1 M V3MOMA VomM V1 3 Ecrire une proc dure qui permet de passer de la repr sentation modulaire la repr sentation en base b avec b 10 ou b 100 par exemple Ecrire une proc dure qui permet de passer de la repr sentation en base b la repr sentation modulaire Version 15 janv
168. mani re de r aliser le test est de comparer le mot donn toutes ses fins On obtient alors la proc dure suivante Version 15 janvier 2005 9 3 Mots de Lyndon 253 FUNCTION EstLyndonParSuffixe u mot boolean Teste si u est un mot de Lyndon en le comparant toutes ses fins VAR i n integer v mot inferieur boolean BEGIN n Longueur u i 2 inferieur true WHILE i lt n AND inferieur DO BEGIN LeSuffixe u i v inferieur EstInferieurMot u v i i 1 END EstLyndonParSuffixe inferieur END de EstLyndonParSuffixe L criture d une proc dure qui engendre tous les mots de Lyndon est un peu plus com pliqu e L id e de d part est que tout mot de Lyndon de longueur au moins 2 s obtient comme produit de mots plus courts Mais plusieurs produits peuvent donner le m me mot de Lyndon et il faut donc v rifier qu un mot n est pas d j construit avant de l ins rer dans la liste La proc dure suivante calcule la table des mots de Lyndon PROCEDURE EngendrerLyndon nn integer VAR lyn TableSuite VAR 1 TailleSuite Calcul des mots de Lyndon de longueur au plus nn VAR n k integer BEGIN LettreEnMot lyn 1 1 0 Les deux mots de Lyndon de LettreEnMot lyn 1 2 1 longueur 1 0 et 1 1 1 2 FOR n 2 TO nn DO BEGIN 1 n 0 FOR k 1 TO n 1 DO ComposerLyndon lyn k l lyn n k lyn n 1 k l n k 1 nl END END de EngendrerLyndon
169. matE p q integer boolean Teste si A est totalement unimodulaire On se contente de tester si la matrice A I est unimodulaire VAR i j integer BEGIN FOR i 1 TO p DO FOR j q 1 TO q p DO Ali j 0 FOR i 1 TO p DO Ali q i 1 EstTotalementUnimodulaire EstUnimodulaire A p p q END de EstTotalementUnimodulaire Dans le cas des matrices l mentaires le corollaire G 1 6 permet de donner un algorithme efficace pour tester si une matrice est totalement unimodulaire On commence par coder la i me ligne d une matrice l mentaire par le triplet f i g i o vaut 1 si a f et aigi Ont m me signe et vaut 1 sinon On construit ensuite le graphe tiquet sur l ensemble 1 q dont les ar tes sont les triplets f i e g t Chaque ligne de la matrice d finit une ar te chaque colonne un sommet Par exemple si on part de la Version 15 janvier 2005 128 Chapitre 6 Matrices en combinatoire matrice 0 1 0 1 0 1 0 0 0 1 A 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 Figure 6 1 1 Le graphe associ la matrice La proc dure qui suit permet de r aliser ce codage PROCEDURE Conversion A matE p q integer VAR M MatElementaire VAR i j integer BEGIN FOR i 1 TO p DO BEGIN j 1 WHILE Ali j 0 DO Terra Mli 1 j j f G jet WHILE Ali j O DO der Mt 21 j j g i M i 3 Afi M i 11 x Ali M i 2
170. min base 1 round base sqrt al1 END ELSE BEGIN FixerExposant b e 2 DIV 2 b 1 round base sqrt a 1 base a 2 END FlottantUnSurRacinelteration a b END de UnSurRacineFlottant PROCEDURE FlottantUnSurRacinelteration a Flottant VAR x Flottant Calcule x 1 a partir d une valeur approch e x donn e Version 15 janvier 2005 382 Chapitre 12 Grands nombres VAR y z Flottant BEGIN REPEAT yost FlottantParChiffre x 3 3x FlottantParFlottant a y z FlottantParFlottant z y z FlottantParFlottant z y z Z ax FlottantMoinsFlottant x z x x 3x ax FlottantSurChiffre x 2 UNTIL FlottantProches y x END de FlottantUnSurRacinelteration et son application particuli re donne PROCEDURE FlottantInverseRacine2 VAR b Flottant VAR a Flottant BEGIN ChiffreEnFlottant a 2 a 2 UnSurRacineFlottant a b END de FlottantInverseRacine2 Voici des r sultats num riques 0 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0 0 62 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0 0 69 33 59 37 50 00 00 00 00 00 00 00 00 00 00 00 E 0 0 70 67 08 46 84 96 79 94 68 99 41 40 62 50 00 00 E O 0 70 71 06 44 46 95 90 70 75 51 17 30 67 65 93 00 E O 0 70 71 06 78 11 86 30 73 35 92 54 35 93 12 38 00 E O 0 70 71 06 78 11 86 54 75 24 40 08 44 23 97 25 00 E O 0 70 71 06 78 11 86 54 75 24 40 08 44 36 21 05 00 E O 0 70 71 06 78 11 86 54 7
171. n si elle existe Dans la n gative la variable bool enne devient vraie VAR m t j integer BEGIN derniere Longueur a n Caract risation simple IF NOT derniere THEN BEGIN j Longueur a Calcul du nombre de parts gales 1 WHILE a j 1 DO j j 1 t Longueur a j alj l C est le total redistribuer m alj 1 En parts major es par m WHILE t gt m DO BEGIN Tant que possible des parts de taille m alj m t t m j j 1 END IF t gt O THEN Une derni re part plus petite alj t ELSE Ji 45 END FixerLongueur a j La longueur de la nouvelle partition END de PartitionSuivante Ces deux proc dures sont employ es pour lister toutes les partitions ou les partitions en parts major es par m dans les deux proc dures que voici PROCEDURE ListerPartitions n integer Les partitions de n VAR a Mot derniere boolean BEGIN Version 15 janvier 2005 228 Chapitre 8 Exemples combinatoires PremierePartition a n n REPEAT EcrireMot a PartitionSuivante a n derniere UNTIL derniere END de ListerPartitions PROCEDURE ListerPartitionsPartsMajorees n m integer Les partitions de n en parts major es par m VAR a Mot derniere boolean BEGIN PremierePartition a m n REPEAT EcrireMot a PartitionSuivante a n derniere UNTIL derniere END de ListerPartitionsPartsMajorees Les partitions de 9 en parts major e
172. n DO El ments hors diagonaux FOR j 1 TO i 1 DO BEGIN s 0 FOR k j TO i 1 DO s s ali k b k j bli j s bli i END END de InverseTriangulairelnferieure Ensuite on fait le produit de cette matrice par sa transpos e Ainsi on obtient la proc dure suivante PROCEDURE InverseDefPositiveSymetrique n integer a mat VAR ia mat Calcule l inverse ia d une matrice sym trique d finie positive a VAR k tk l mat BEGIN Choleski n a 1 a L4 InverseTriangulairelnferieure n 1 k k 471 Transposer n k tk MatriceParMatrice n tk k ia al ty tkk END de InverseDefPositiveSymetrique Version 15 janvier 2005 3 3 D composition QR 59 3 3 D composition QR Toute matrice carr e r elle est comme nous le verrons produit d une matrice orthogo nale Q par une matrice triangulaire sup rieure R Une telle factorisation est appel e une d composition QR Il existe plusieurs m thodes pour obtenir une telle d composition La plus connue est le proc d d orthogonalisation de Gram Schmidt Nous exposons ici deux autres m thodes qui sont num riquement plus stables la m thode de Givens et la m thode de Householder On verra dans le chapitre suivant comment les m mes proc d s permettent de mettre une matrice sous forme tridiagonale 3 3 1 Enonc d composition QR m thode de Givens Soit n gt 1 un entier Les matrices consid r es sont r elles
173. nation de mots de longueur 1 on identifie les mots de longueur 1 et les l ments de A On appelle alors l alphabet et les l ments de A des lettres Si u v et w sont des mots et w uv alors u est un pr fire et v est un suffire de w Si de plus u w resp v w alors u est un pr fixe propre resp un suffixe propre de w Si u v v et w sont des mots tels que w vuv alors u est un facteur de w Pour raccourcir l criture nous dirons qu un pr fixe propre non vide d un mot est un d but et qu un suffixe propre non vide est une fin Un conjugu d un mot u u1 uA est un mot de la forme v u Un U1 Ui 1 avec 2 lt i lt n Dans les nonc s qui suivent les lettres sont des entiers Un mot de longueur n est donc repr sent par un tableau d entiers n 1 l ments l l ment d indice 0 contenant la longueur du mot Voici un d but de biblioth que de manipulation de mots Version 15 janvier 2005 236 Chapitre 9 Combinatoire des mots CONST LongueurMot 30 TYPE mot ARRAY O LongueurMot OF integer FUNCTION Longueur VAR u mot integer PROCEDURE FixerLongueur VAR u mot n integer PROCEDURE EntrerMot VAR u mot titre texte PROCEDURE EcrireMot VAR u mot titre texte FUNCTION EstMotVide VAR u mot boolean PROCEDURE Concatener u v mot VAR w mot PROCEDURE LettreEnMot VAR u mot x integer Les proc dures de gestion de la longueur du mot s
174. petit par d faut test false Pas d impression interm diaire par d faut END de InitGeneral Les fonctions arithm tiques sur les entiers que nous avons mentionn es sont Version 15 janvier 2005 A 3 Biblioth ques 421 FUNCTION min i j integer integer FUNCTION max i j integer integer PROCEDURE EchangerE VAR u v integer FUNCTION PuissanceE x integer n integer integer FUNCTION Binomial n k integer integer FUNCTION pgcd a b integer integer Elles se r alisent comme suit FUNCTION min i j integer integer BEGIN IF i lt j THEN min i ELSE min j END de min FUNCTION max i j integer integer BEGIN IF i gt j THEN max i ELSE max j END de max PROCEDURE EchangerE VAR u v integer VAR w integer BEGIN W u U iS V V SW END de EchangerE Les fonctions suivantes sont plus int ressantes FUNCTION PuissanceE x integer n integer integer Calcule x VAR i p integer BEGIN p 1 FOR i 1 TO n DO M thode l mentaire p p gt x PuissanceE p END de PuissanceE On peut gagner du temps en utilisant l algorithme dichotomique fond sur le d velop pement binaire de n Le calcul du coefficient binomial ne doit pas tre men par l valuation des factorielles La m thode ci dessous est bas e sur la formule n n k i1if n 1 k k k 1 et permet d valuer les coefficients binomiaux pou
175. pivot puisque deux matrices d duites l une de l autre par permutation des colonnes ou par op ration de pivot sur les lignes ont les m mes ensembles de lignes ind pendantes PROCEDURE BaseDesLignes m n integer B matC VAR rang integer VAR LignesIndependantes vecE Calcule le rang d une matrice B d ordre m n et en extrait un ensemble maximal de lignes ind pendantes VAR inversible boolean A matC Obtenue par permutation des lignes de B Lignes vecE D crit la permutation des lignes d finissant A v vecC i j k pivot q integer FUNCTION ChercherPivot k integer integer Cherche un pivot non nul entre k et n si le r sultat est n 1 il n y a pas de pivot non nul VAR i integer BEGIN i k WHILE i lt n AND EstCNul a k i DO and s quentiel L ss li ChercherPivot i END de ChercherPivot PROCEDURE EchangerFinColonnes i j integer VAR m integer Version 15 janvier 2005 2 2 Matrices trigonalisables 47 BEGIN FOR m i TO n DO EchangerC alm i alm jl END de EchangerColonnes La proc dure qui permet l change de deux lignes est presque identique la pr c dente mais on prend la pr caution de m moriser la permutation PROCEDURE EchangerLignes i j integer VAR m integer BEGIN FOR m i TO n DO EchangerC ali ml alj ml EchangerE Lignes il Lignes j END de EchangerLignes PROCEDURE PivoterGauss k i
176. plus satisfaisant En codant les entiers par des r els on peut aller un peu plus loin encore au moyen de quelques acrobaties que nous ne consid rons pas ici Les op rations d addition de soustraction et de multiplication de grands entiers se r alisent en transcrivant l algorithme scolaire qui op re sur les chiffres Pour l addition de deux entiers naturels u u0 et Un Vo par exemple que nous supposons pour simplifier de m me taille on value les chiffres wi ui Vi r mod b Tizi Lui vi r b Version 15 janvier 2005 12 1 Entiers en multipr cision 393 o ro 0 on note x la partie enti re de x Cette op ration n est pas difficile programmer La division de deux entiers naturels est plus d licate La m thode scolaire consiste estimer de mani re un peu empirique le chiffre suivant du quotient puis v rifier qu il est correct Nous allons proc der de mani re similaire La premi re m thode qui vient l esprit est tr s longue pour d terminer un chiffre disons le premier du quotient d un entier u un uo par un entier v vh v0 on peut soustraire de u le nombre v b 7 tant que le r sultat de la soustraction reste positif Il est clair que le nombre de soustractions est consid rable b 2 pour un chiffre en moyenne Nous cherchons un proc d plus rapide R duit son essence le probl me est donc de d terminer de fa on conomique le quo
177. pose 2 42 c 1 s 0 Si ap p 1 4 0 z i 2 C Gpp 1 T S Ggp 1 T sia Ear pp 1 gp 1 Soit maintenant une matrice sym trique et consid rons la suite de matrices B P GA pour 2 lt p lt q lt n d finie par B2 A BP G q p B EP G q p 2 lt p lt q lt n Br p n p 1 3 lt p lt n o G q p est construit de mani re telle que Joa 0 On pose R rij Beni PROPOSITION 4 2 1 La matrice R est tridiagonale Version 15 janvier 2005 4 2 Tridiagonalisation 75 Preuve Soit A une matrice sym trique et soient p q avec 2 lt p lt q Soit G q p telle que l l ment b4 9 1 de la matrice B b j G q p AG q p soit nul On a bij ai si i p q et pour j lt p bp j Cap j SA g j bq j Sap j Ca Il en r sulte que si a 0 pour 1 lt j lt p j 2 lt i lt n il en est de m me pour b Il en r sulte par r currence que R est tridiagonale 4 2 3 Programme tridiagonalisation m thode de Givens Par identification on obtient des expressions pour c et s qui conduisent la proc dure que voici tr s proche de la proc dure CoefficientsGivens du chapitre 3 PROCEDURE CoefficientsGivensE p q integer VAR c s real VAR a mat Calcul des r els c et s tels que b q p 1 0 VAR norme real BEGIN norme sgrt sqr alp p 11 sgr alq p 11 IF EstNul norme THEN BEGIN c 1 s 0 END ELSE BEGIN c alp p 1 norme s
178. qrx Abscisse r Abscisse q qry Ordonnee r Ordonnee q det pqx qry pqy qrx END de det FUNCTION EstSitue VAR p q r Point integer Prend la valeur 1 0 1 selon que p est situ gauche sur ou droite de la droite orient e qr BEGIN EstSitue signe det p q r END de EstSitue FUNCTION EstAGauche VAR p q r Point boolean BEGIN EstAGauche EstSitue p q r 1 END de EstAGauche FUNCTION EstADroite VAR p q r Point boolean BEGIN EstADroite EstSitue p q r 1 END de EstADroite FUNCTION CarreNorme VAR p Point real BEGIN CarreNorme sqr Abscisse p sqr Ordonnee p END de CarreNorme FUNCTION CarreDistance VAR p q Point real BEGIN CarreDistance sqr Abscisse q Abscisse p sqr Ordonnee q Ordonnee p END de CarreDistance FUNCTION CosAngle VAR p q r Point real Calcule p pr pall lpr VAR pqx pqy prx pry real Version 15 janvier 2005 304 Chapitre 10 G om trie algorithmique BEGIN pqx Abscisse q Abscisse p pqy prx Abscisse r Abscisse p pry CosAngle pqx prx pqy pry sqrt sqr pqx sqr pqy sqr prx sqr pry END de CosAngle Ordonnee q Ordonnee p Ordonnee r Ordonnee p La triangulation de Delaunay de l ensemble S est calcul e par l algorithme d crit dans la section pr c dente pour chaque site s on d termine
179. quelques exemples Version 15 janvier 2005 120 Chapitre 6 Matrices en combinatoire PROPOSITION 6 1 1 Si chaque ligne de A contient exactement un 1 et un 1 les autres coefficients tant nuls alors A est totalement unimodulaire Preuve D montrons par r currence sur n que toute sous matrice carr e d ordre n de A a un d terminant gal 0 1 ou 1 C est clair si n 1 Prenons une sous matrice carr e d ordre n Si l une des lignes est nulle le d terminant vaut 0 Si l une des lignes contient un seul coefficient non nul on peut d velopper le d terminant par rapport cette ligne et on conclut par r currence Reste le cas o toutes les lignes contiennent au moins et donc exactement deux coefficients non nuls qui sont n cessairement 1 et 1 Dans ce cas la somme des colonnes est nulle et le d terminant est nul Le calcul cf la partie programme d montre que les deux matrices suivantes sont to talement unimodulaires 1 1 0 0 1 baT CR 1 1 1 0 0 1 1 1 0 0 B 0 1 1 1 0 et B2 1 1 0 1 10 0 Qt dr 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 Ces deux matrices jouent un r le tr s important dans le th or me de d composition de Seymour voqu plus haut Le lien entre matrices unimodulaires et totalement unimo dulaires est pr cis ci dessous PROPOSITION 6 1 2 Une matrice A est totalement unimodulaire si et seulement si la matrice a11 a12 Alq 1 0 0 a21 Q22 aq 0 1
180. r pol01 On suppose g 0 Calcule le reste r de f mod g VAR q pol01 BEGIN pol01 Calcul du degr de q h gX r r gX similaires aux proc dures Version 15 janvier 2005 192 Chapitre 7 Polyn mes Pol01DivEuclidPol01 f g q r END de Pol01ModPol01 PROCEDURE Pol01DivPo101 f g pol01 VAR q pol01 On suppose g 0 Calcule le quotient q de f par g VAR r pol01 BEGIN Pol01DivEuclidPol01 f g q r END de Pol01ModPol01 Le calcul du pgcd de deux polyn mes est similaire au calcul du pgcd de deux entiers Il suffit donc d adapter la proc dure du pgcd pour les entiers au cas des polyn mes PROCEDURE PGCDPo101 f g pol01 VAR pgcd pol01 VAR r pol01 BEGIN WHILE NOT EstPol01Nul g DO BEGIN Pol01ModPol01 f g r f g g8 r END pgcd f END de PGCDPo101 Sur l exemple num rique on trouve f 1 X7105 g 1 X Xx 72 PGCD g 1 X 3 X 4 Le calcul de la d composition f g h n cessite trois proc dures auxiliaires permettant le calcul du polyn me d riv le calcul du carr d un polyn meet le calcul de la racine carr e d un polyn me carr Le calcul du polyn me d riv s obtient facilement partir des formules x y Ta sin est impair 0 si n est pair Pour le calcul du carr et de la racine carr e on utilise la formule EHN ER 1 lt i lt n 1 lt i lt n PROCEDURE Derive f pol01 VAR Df pol01 VAR i de
181. r sultat est vrai si 0 puisque Azo A xo par hypoth se Supposons le r sultat acquis jusqu au rang k et valuons Axz41 Il vient Atk 1 ABtk BAtk A B zk et comme A B Fp 1 on obtient Azk41 B A A k Ak k 1 A k 1 k o A zo A A B k x 8 1 14 B k 1 Axo A B o A A k 1 Ak k 1 A A A B k 1 0 4 Ak1 4 B z1 Ako A Bl ro d o le r sultat en posant ete A AD ES a Le lemme qui suit permet de simplifier consid rablement ces formules LEMME 2 2 10 Pour tout A F _1 on a A B 0 Preuve Le lemme montre que Vg est stable par toutes les matrices de Fp 1 et Vg est galement stable par B par construction Compl tons la base 0 1 r de Vg en une base 106 2 1 n 1 de C et posons X x9 n 1 Quel que soit A F 1 la matrice X AX peut s crire sous la forme AA 0 0 TE a A o 0 a i avec l 2S 0 x da a AA De m me la matrice X BX s crit sous la forme a Bm o B est une matrice carr e de taille r 1 Rappelons que la trace d une matrice M not e tr M est la somme de ses coefficients diagonaux On a ici tr 4 r 1 A A et puisque A B F _1 quel que soit Fp 1 tr 4 B r 1 A A B Or si A et B sont deux matrices quelconques de Kn on a tr A B 0 car tr A B tr AB tr BA 0 Par cons quent A B 0 Vers
182. r sultat suppl mentaire qui est int ressant en lui m me PROPOSITION 9 2 6 Soient u et v deux mots non vides Les conditions suivantes sont quivalentes 1 w vu 2 il existe deux entiers n m gt 1 tels que u v 3 il existe un mot w non vide et deux entiers k gt 1 tels que u w v wf Preuve 1 3 Si u v alors u v et l implication est vidente En raisonnant par r currence sur uv supposons u gt v Soit alors w tel que u vw En reportant dans l quation uv vu on obtient vwv vuw d o en simplifiant wv vw Par r currence il existe un mot x et des entiers k gt 1 tels que v wf w zf d o k l u r x 3 gt 2 Si u w et v wf alors uf v 2 1 La conclusion est vidente si u v Supposons donc u gt v et soit w tel que u vw Alors uv BE vw v v wv var et en simplifiant la derni re galit wv v Comme v u vw on a wv vw donc wv vw ou encore uv vu COROLLAIRE 9 2 7 Le nombre de mots de Lukasiewicz de longueur 2n 1 est 1 2n n 1 n Preuve Le nombre de mots u de longueur 2n 1 tels que s u 2n 1 1 est gal Rave puisqu il s agit de choisir n 1 positions pour les lettres gales 1 D apr s la proposition les 2n 1 mots qui r sultent d un tel mot par permutation circulaire donnent un unique mot de Lukasiewicz Il reste prouver que ces 2n
183. repr sentera un entier p n sous la forme d un couple u n v n avec p n u n 10 v n o u n et v n sont des entiers naturels inf rieurs 104 ce qui permet de calculer p n pour tout entier n tel que p n lt 108 Exemple num rique n 60 3 D montrer que pour 0 lt x lt 1 et pour m gt 0 on a CO n m 1 2 Pmln e JI IAE 4 a D montrer que pour tout 0 lt x lt 1 la suite T 1 Fm 2 IT 1 grk k 1 est convergente On note J sa limite b D montrer que CO gt CO 1 Dia 5 Ecrire une proc dure qui affiche toutes les partitions de n en parts distinctes Exemple num rique n 11 6 Ecrire une proc dure qui affiche toutes les partitions de n en parts distinctes et toutes impaires Exemple num rique n 30 Version 15 janvier 2005 218 Chapitre 8 Exemples combinatoires 7 D montrer que pm n est gal au nombre de partitions de n en au plus m parts 8 D montrer que le nombre de partitions de n en parts toutes distinctes est gal au nombre de partitions de n en parts toutes impaires 9 On d finit pour 0 lt x lt 1 et pour y 0 r el Lx Y L z y 1 ty n 1l On admet que 2 2 P a y 1 3 2 y y n 1l a D montrer que OO I G 1 5 at n Bn 1 LL n 8n D n 1 b On note E n le nombre de partitions de n en un nombre pair de parts toutes distinctes et U n le nombre de partitions de
184. soit la signification de flottant il s agit en fait de transposer dans un contexte de programmation la convention qui veut que d signe l addition dans n importe quelle structure alg brique dans un langage de programmation plus volu ce genre de convention est d ailleurs r alisable Le choix du nom convenable pour une proc dure devient alors presque en fantin l addition de deux nombres rationnels s appelle RatPlusRat et pour des vecteurs Version 15 janvier 2005 414 Annexe A Un environnement coefficients complexes VecteurCPlusVecteurC Une autre solution fr quemment em ploy e consiste s parer les constituants d un identificateur par le caract re de souligne ment d faut du tiret qui est plus naturel mais interdit en Pascal On peut ainsi crire rat_plus_rat ou vecteur _c plus_vecteur_c On gagne peut tre en lisibilit en change les en t tes de proc dure se rallongent encore plus En Fortran o le blanc n est pas significatif on peut crire tr s commod ment matrice plus matrice en Lisp le tiret est utilisable et on dispose d autres caract res pr cieux ainsi on peut crire Nu1 au lieu de notre EstNul Ces r gles ne vont pas sans exception Ainsi quelques types reviennent constamment dans les programmes et pour ne pas trop allonger le texte nous appelons vec et mat les types vecteur et matrice et pol le type polyn me Organiser les structures Un a
185. sommets des triangles adjacents T est galement fix e et par suite la couleur de tout sommet d un triangle obtenu par la fermeture transitive R de la relation d adjacence Pour montrer l unicit et l existence Version 15 janvier 2005 314 Chapitre 10 G om trie algorithmique Figure 10 4 5 La relation d adjacence est connexe et sans cycle d un tel coloriage il suffit de montrer que la relation d adjacence est connexe et sans cycle c est dire que pour tout triangle T 7 il existe une suite T Th T de triangles adjacents et qu il n existe pas de suite circulaire de triangles adjacents de longueur sup rieure trois Soit Ur UT z la r union des triangles T tels que T RT L ensemble Ur est non seulement un ferm comme r union finie des ferm s que sont les triangles T mais est aussi un ouvert de P car tout point x de Ur appartient l int rieur dans P de la r union des triangles T qui contiennent x Le polygone P tant connexe il co ncide avec Ur ce qui prouve que la relation d adjacence est connexe Pour d montrer que la relation est sans cycle on observe que si T p i p px avec i lt j lt k alors les triangles obtenus par adjacence avec respectivement les c t s p p p px et pk pi se situent respectivement dans les polygones Pi p1 Pi Pr Pn P gt pi p P pr pi qui sont disjoints deux deux sauf en p i
186. texte Affichage du titre puis lecture de la partie triangulaire inf rieure de la matrice sym trique a d ordre n La partie sup rieure de a est compl t e la lecture VAR i j integer BEGIN writeln writeln titre FOR i 1 TO n DO BEGIN write Ligne i 1 Version 15 janvier 2005 1 1 Une biblioth que FOR j 1 TO i DO BEGIN read ali jl alj i ali j END END readln END de EntrerMatriceSymetrique La lecture d un vecteur se fait sur le m me mod le PROCEDURE EntrerVecteur n integer VAR a vec titre Affichage du titre puis lecture du vecteur a d ordre n VAR i BEGIN writeln writeln titre FOR i 1 TO n DO read alil readln END de EntrerVecteur integer Dans les proc dures d affichage nous faisons appel une varia texte ble globale precision qui indique le nombre de chiffres imprimer apr s le point d cimal Ce param trage est utile quand on veut se rendre compte de la pr cision des calculs num riques PROCEDURE EcrireMatrice n integer VAR a mat titre Affichage du titre puis de la matrice a d ordre n VAR i j integer BEGIN writeln writeln titre FOR i 1 TO n DO BEGIN FOR j 1 TO n DO write a i j precision 5 precision writeln END END de EcrireMatrice Voici une variante de cette proc dure PROCEDURE EcrireVecteurE n integer VAR a vecE titre Affichage du titre puis du ve
187. th or me 12 4 4 En int grant l quation diff rentielle 4 10 pour 0 7 2 et par suite 1 0 7 nous obtenons la premi re identit _ dh d i b I e A a b a p A a1 b1 1 A ar b1 d1 Vaaa La seconde identit s obtient de mani re similaire posons pour simplifier les notations A A a b et A1 A a1 b1 1 L quation diff rentielle 2A db A do s crit encore en utilisant 2A ab A et A c1 cos di cf K D A ab A d A C1 COS d do que nous int grons pour 0 7 2 et par suite d1 0 7 pour obtenir la seconde identit J a b abI a b 2J a1 b1 Preuve du th or me 12 4 3 Par it ration de la relation 4 6 nous crivons I a b I a1 b1 I an bn Version 15 janvier 2005 400 Chapitre 12 Grands nombres La fonction I a b tant continue par rapport ses param tres il vient T 2u a b Pour la seconde galit nous transformons Ef en utilisant a 2a 1 2c3 ab en I a b im I an bn I u a b p a b E J a b a I a b 2 J a1 b1 a I a1 b1 al b La m me galit vaut si l on substitue an bn a b et an 1 0n 1 a1 b1 En combinant les galit s ainsi obtenues pour n variant de 0 linfini il vient OO J a b a I a b A 2 XORI an bn n 0 1 N 2 m Cn I a b n 0 o D II lim 2 J an bn a2 I an bn T 2 on
188. tout k gt 0 Lorsque k tend vers l infini ce produit tend vers 1 d o le r sultat L identit d Euler est une cons quence d un th or me remarquable connu sous le nom d identit du triple produit de Jacobi TH OR ME 8 3 9 Soient x et z des nombres complexes avec x lt 1 et z 0 alors on IT 1 1 at let 1 De 27 27 3 1 Preuve La condition x lt 1 assure la convergence absolue de chacun des trois produits HG x2 0 t F 1 227 12 1 et de la s rie du membre droit de 8 1 De plus pour chaque x fix avec x lt 1 la s rie et les produits convergent uniform ment sur des parties compactes de C ne contenant pas 0 de sorte que chaque membre de l quation BI est une fonction analytique de z pour z 0 Pour un z 0 fix la s rie et les produits convergent aussi uniform ment pour z lt r lt 1 et repr sentent donc des fonctions analytiques de x dans le disque z lt 1 Pour d montrer Ba nous fixons x et d finissons F z pour z 0 par CO F 2 JI TET NE a lat 3 2 n l Nous v rifions d abord l quation fonctionnelle zzF x z F z En effet de B 2 on F x z El A artl a 32 1 n 1 JI a CE IC 4 x12 m 2 r 0 Comme gz 1 xz 1 2x 1271 la multiplication de la derni re quation par xz donne l quation fonctionnelle Soit maintenant G z le membre gauche de B de sorte que OO G 2 F z G 2 n 1 Alors G z v r
189. u1 Um et v v1 vK de mots de Lukasiewicz tels que w L uiii Ums Vis Uk Preuve On ne peut avoir wi 1 que si n 1 Donc wi 1 Soit m le plus petit entier tel que s w m 0 Le mot u w2 Wm v rifie alors s u i s w i 1 1 pour 1 m 1 donc u est un mot de Lukasiewicz Soit v Wm 1 Wn Alors w luv Par ailleurs on a s v i s w m i pour i 1 n m ce qui prouve que v est un mot de Lukasiewicz Prouvons l unicit Supposons que w luv lu v avec par exemple u plus court que u Posons n u Alors s u n 1 s u n lt 0 d o la contradiction PROPOSITION 9 2 5 Soit u u1 un un mot tel que s u n 1 Il existe un unique i avec 1 lt i lt n tel que u Ui 1 Un U1 Uj 1 soit un mot de Lukasiewicz Preuve Soit p mini lt k lt n s u k et soit i le plus petit entier tel que s u i p On pose V ui 1 Un U1 Ui V rifions que v est un mot de Lukasiewicz On a s u i k p pourl lt k lt n i s v k s lu n p slu k i n pouwrn i 1 lt k lt n Or s u i k gt p par d finition de p et pour n i 1 lt k lt n 1 ona1 lt k i n lt i 1 donc s u k i n gt p par le choix de i ce qui montre que s v k gt 1 dans ces cas Enfin s v n 1 n Version 15 janvier 2005 242 Chapitre 9 Combinatoire des mots En vue de d nombrer les mots de Lukasiewicz nous avons besoin d un
190. une d monstration tr s partielle Commen ons par une d finition commode Pour 1 lt j lt q on note C la j i me colonne de A Une partie K de 1 q est dite quilibr e dans A s il existe des sous ensembles disjoints K et K de K d union K et tels que les coefficients du vecteur colonne D kEK kEK2 soient gaux 0 1 ou 1 On dit qu une matrice A est quilibr esi toute partie K de 1 q est quilibr e dans A PROPOSITION 6 1 3 Soit A une matrice Les conditions suivantes sont quivalentes 1 A est totalement unimodulaire 2 A est quilibr e 3 A est coefficients 0 1 ou 1 et ne contient aucune sous matrice carr e de d terminant 2 ou 2 Nous d montrerons seulement que toute matrice quilibr e est totalement unimodulaire Preuve Soit A une matrice quilibr e Montrons par r currence sur k que les sous matrices carr es d ordre k de A ont un d terminant gal 0 1 ou 1 Si on prend J j on a n cessairement J1 J2 J et donc les coefficients de la colonne C sont gaux 0 1 ou 1 Supposons le r sultat acquis pour les sous matrices de taille inf rieure ou gale k avec 1 lt k lt min p q 1 et soit B b hier jez une sous matrice carr e d ordre k 1 de d terminant d non nul Posons B dB71 Cette matrice est la transpos e de la matrice des cofacteurs de B Comme les d terminants de tous les mineurs d ordre lt k sont
191. une matrice d ordre n soit A et posons Pa P h A An PiAna h 1 n 1 Alors Pa 1 PLA An 1 de plus la matrice An est triangulaire sup rieure et la matrice Pa 1 P est orthogonale On a donc A QR avec Q Pa 1 Pi et R Ana Preuve D apr s ce qui pr c de si l on prend pour x la j i me colonne A0 de A alors la j i me colonne de P k A A a ses coefficients nuls dans les lignes d indices plus grands que k De plus on a avec v v k AU P k AG A vip avec p B Av 3 1 ce qui montre que les colonnes d indices inf rieurs k de A ne sont pas modifi es par la pr multiplication par P La proposition en r sulte Pour la r alisation de cette m thode de d composition il convient d abord de calculer le vecteur v k A ce qui se fait par la proc dure que voici Version 15 janvier 2005 3 3 D composition QR 67 PROCEDURE VecteurHouseholder n integer VAR a mat k j integer VAR v vec Calcule le vecteur v k a o a est la j i me colonne de a VAR i integer BEGIN FOR i 1 TO k 1 DO v i 0 FOR i k TO n DO v i ali jl v k v k signe v k norme n v END de VecteurHouseholder L application de la formule BI conduit la proc dure que voici qui calcule dans Q le produit de P par Q PROCEDURE TransformationHouseholder n h integer VAR q a mat VAR i j integer beta normeV2 real V Z p
192. w On se ram ne au cas z u iv avec pgcd u v 1 n ModuleAuCarre w WHILE n lt gt 1 DO BEGIN p FacteurPremier n DeuxCarres p a b Dans ce cas a ib ou a ib i b ia est diviseur de w IF Im w a Re w b MOD p O THEN CartesienEnEntierGauss a b x ELSE CartesienEnEntierGauss b a x AjouterFacteur O x DivisionEuclidienne w x w r n ModuleAuCarre w END IF Re w O THEN Reste un nombre w de module 1 cz cz 2 Im w MOD 4 Si w i cz cz 1 et si w i cz cz 3 ELSE cz cz 1 Re w MOD 4 Si w 1 cz ne change pas et si z 1 cz cz 2 END de FactoriserEntierGauss Pour g rer les diverses proc dures on peut utiliser le menu suivant PROCEDURE Menu VAR u V q r z EntierGauss Liste ListeEntiersGauss p n NbFacteurs cz choix integer BEGIN writeln Menu writeln 1 Division euclidienne writeln 2 Calcul d une racine de 1 modulo p Version 15 janvier 2005 338 Chapitre 11 Probl mes arithm tiques writeln 3 Teste d irreductibilit writeln 4 D composition d un entier de Gauss write Votre choix readln choix CASE choix OF 1 BEGIN EntrerEntierGauss u Donner u a ib EntrerEntierGauss v Donner v a ib DivisionEuclidienne u v q r EcrireEntierDeGauss u EcrireEntierDeGauss q Ecr
193. w i END de NaturelMoinsNaturel La multiplication se fait en deux tapes calcul du produit d un entier par un chiffre puis addition au r sultat partiel d j obtenu La premi re tape s crit PROCEDURE NaturelParMonome u entier x chiffre n integer VAR w entier Calcul de w u xb VAR i integer retenue chiffre BEGIN IF x THEN EntierNul w ELSE BEGIN FOR i O TO n 1 DO D calage Version 15 janvier 2005 360 Chapitre 12 Grands nombres w i 0 retenue 0 FOR i O TO Taille u DO ProduitChiffres ulil x win il retenue IF retenue gt O THEN BEGIN La taille de w d pend w i Taille u n retenue de la derni re retenue FixerTaille w 1 Taille u n END ELSE FixerTaille w Taille u n END END de NaturelParMonome La deuxi me tape simule la m thode scolaire sauf que l addition se fait au fur et mesure pour ne pas d passer la taille des chiffres PROCEDURE NaturelParNaturel u v entier VAR w entier w UV VAR i integer d entier BEGIN FixerTaille w TailleEntierNul Mise z ro de w FOR i O TO 1 Taille u Taille v DO m me ses chiffres w i 0 FOR i O TO Taille v DO BEGIN NaturelParMonome u v i i d Multiplication par le NaturelPlusNaturel w d w chiffre puis addition END END de NaturelParNaturel La comparaison de deux entiers naturels se fait en comparant d abord leu
194. 0 FlecheDroite IF GetX lt LargeurEcran pas THEN MoveRel pas 0 FlecheHaut IF GetY gt pas THEN MoveRel 0O pas FlecheBas BEGIN IF GetY lt HauteurEcran pas THEN MoveRel 0 pas END ELSE END BasculerReticule END ELSE END du CASE END de SuivreReticule Voici la proc dure de saisie d un pixel elle suit le r ticule jusqu ce que la touche retour soit enfonc e PROCEDURE LireCurseur a Pixel Quand on arrive on est en mode graphique et le r ticule n est pas affich il ne le sera pas en sortant VAR Version 15 janvier 2005 10 2 Quelques primitives g om triques 293 bouton boolean BEGIN BasculerReticule bouton false REPEAT SuivreReticule bouton UNTIL bouton a 0 GetX a 1 GetY BasculerReticule END de LireCurseur Les autres proc dures se r alisent facilement PROCEDURE TracerDisque a pixel r integer BEGIN PieSlice a 0 ali 0 350 r END de TracerDisque PROCEDURE TracerCarre a pixel r integer BEGIN Rectangle alO r a 1 r a 0 r a 1 r END de TracerCarre PROCEDURE RelierPixels a b Pixel BEGIN MoveTo al0 a 1 LineTo b 0 b 1 END de RelierPixels PROCEDURE EcrireGraphique a Pixel n integer VAR c Stringl6 BEGIN Str n c OutTextXY al0 a 1 TextHeight c c END de EcrireGraphique PROCEDURE InitGraphik VAR Pilote ModeGraphique integer
195. 0 0 000 amp w 000 667 312 326 000 000 158 016 077 000 000 000 000 000 000 000 000 000 000 000 000 326 402 000 000 000 077 276 000 000 000 000 268 000 000 000 000 268 99 La m thode QR a fait l objet de beaucoup d tudes et il existe des techniques vari es d acc l ration de la convergence Elle ne converge pas toujours En voici un exemple Voici la matrice lue 0 000 7 000 6 000 1 000 4 000 0 000 0 000 2 000 2 000 Matrice apr s 5 it rations 2 080 9 004 3 937 0 016 0 156 2 993 0 000 0 322 0 076 Matrice apr s 40 it rations 2 000 6 261 7 612 0 000 0 800 0 131 0 000 2 750 0 800 Matrice apr s 45 it rations 2 000 9 058 3 885 0 000 0 098 2 954 0 000 0 335 0 098 Matrice apr s 50 it rations 2 000 6 261 7 612 0 000 0 800 0 131 Version 15 janvier 2005 100 Chapitre 5 Valeurs et vecteurs propres 0 000 2 750 0 800 Matrice apr s 55 it rations 2 000 9 058 3 885 0 000 0 098 2 954 0 000 0 335 0 098 Notons que cette matrice a deux valeurs propres de m me module donc ne v rifie pas les hypoth ses du th or me 5 3 Valeurs propres de matrices tridiagonales 5 3 1 Enonc valeurs propres de matrices tridiagonales Soit n gt 1 un entier On consid re une matrice carr e sym trique tridiagonale Q1 b2 0 re 0 b2 az b3 A 0 b
196. 0 0 1 1 0 0 1 0 0 On construit une factorisation de Lyndon d un mot u u1 Un comme suit On part de la s quence u u u o u u pour i 1 n Si u u u est une s quence construite et s il existe un indice k 1 lt k lt p tel que u lt u k 1 on construit une nouvelle s quence v v vP bar v u0 pour j 1 k 1 v ue et vO utd pour j k 1 p 1 On it re ce processus tant qu il est possible de raccourcir la s quence La s quence finale est une factorisation de Lyndon 8 Ecrire une proc dure qui calcule une factorisation de Lyndon d un mot par ce proc d Exemple num rique 1 0 1 0 1 0 0 1 1 0 0 1 1 1 9 D montrer que tout mot poss de une unique factorisation de Lyndon 9 3 2 Solution mots de Lyndon La d finition de l ordre lexicographique s tend sans difficult tout alphabet A to talement ordonn L ordre lexicographique n est rien d autre que l ordre dans lequel on rencontre les mots dans un dictionnaire On l appelle aussi l ordre alphab tique Il est commode pour les d monstrations d introduire la d finition suivante un mot u est fortement inf rieur un mot v relation not e u amp v s il existe un entier k tel que ui vi pour i 1 k 1 et uk lt vk On a donc u lt v si u est un d but de v ou si u v Notons que si u v alors quels que soient les mots x y on a ux am
197. 0 412 243 110 812 944 042 149 730 764 3 116 285 494 907 301 262 11 959 798 385 860 453 492 45 950 804 324 621 742 364 176 733 862 787 006 701 400 680 425 371 729 975 800 390 2 622 127 042 276 492 108 820 10 113 918 591 637 898 134 020 39 044 429 911 904 443 959 240 150 853 479 205 085 351 660 700 583 300 119 592 996 693 088 040 50 2 257 117 854 077 248 073 253 720 369 Version 15 janvier 2005 370 Chapitre 12 Grands nombres C 46 8 740 328 711 533 173 390 046 320 C 47 33 868 773 757 191 046 886 429 490 C 48 131 327 898 242 169 365 477 991 900 C 49 509 552 245 179 617 138 054 608 572 C 50 1 978 261 657 756 160 653 623 774 456 On utilisera ces proc dures aussi pour le calcul de m par arctangente 12 2 Arithm tique flottante 12 2 1 Enonc arithm tique flottante On se propose de calculer certains nombres comme 2 avec une trentaine de d cimales Cela ne peut pas se faire avec un seul objet de type real puisque leur pr cision est limit e On effectue les calculs dans une arithm tique flottante en base B B 100 pour fixer les id es Dans ce contexte on appelle chiffre tout entier compris entre 0 et B 1 Un r el flottant est compos d un exposant e un entier d un signe s 1 1 et d une suite d1 dn de chiffres avec d 0 sauf si le nombre est nul Le signe de z ro est 1 La valeur du r el flottant est N sx B ve d B i 1 On fixera N 16
198. 0 n 1 est une suite de Catalan R ciproquement si ao a1 an est une suite de Catalan alors a1 ao a2 amp 1 n n 1 1 est un mot de Lukasiewicz Il y a donc bijection entre les mots de Lukasiewicz de longueur n et les suites de Catalan de longueur n La proposition est alors une cons quence du corollaire 9 2 7 Bien entendu on peut aussi prouver la proposition directement Pour le calcul en arithm tique modulaire la formule E3 n est utilisable que si les d nominateurs sont inversibles pour tous les modules m ce qui n est pas le cas si l on choisit par exemple m 99 Les calculs doivent donc tre organis s diff remment Pour cela on prouve que n 1 G 5 CkCn k 1 2 4 k 0 On peut v rifier cette formule directement ou encore consid rer la s rie O0 c z 5 Cna n 0 Version 15 janvier 2005 344 Chapitre 11 Probl mes arithm tiques Par la formule de Stirling n n e 27n on a 4 n 1 yrn donc la s rie converge pour z suffisamment petit et on a 1 y1 4z 2z Cn c z Par cons quent c z v rifie quation e z 1 z e z d o l on d duit par identification co 1 et la formule 4 Cette expression est longue valuer mais se pr te au calcul en arithm tique modulaire Si l on prend r 8 et m 99 m2 97 m3 95 ma 91 m5 89 m 83 m7 79 Mmg 73 alors m m Mmg 3536632852868115 et lexpr
199. 000 beta 0 250 gamma 0 125 W gamma 0 alpha 0 125 beta 0 250 gamma 0 188 W gamma 0 alpha 0 188 beta 0 250 gamma 0 219 W gamma 1 alpha 0 188 beta 0 219 gamma 0 203 W gamma 0 alpha 0 203 beta 0 219 gamma 0 211 W gamma 0 alpha 0 211 beta 0 219 gamma 0 215 W gamma 1 alpha 0 211 beta 0 215 gamma 0 213 W gamma 1 alpha 0 211 beta 0 213 gamma 0 212 W gamma 1 Intervalle 0 21094 0 21191 r 2 alpha 0 212 beta 8 000 gamma 4 106 W gamma 3 alpha 0 212 beta 4 106 gamma 2 159 W gamma 2 alpha 2 026 beta 2 030 gamma 2 028 W gamma 1 alpha 2 028 beta 2 030 gamma 2 029 W gamma 2 Intervalle 2 02774 2 02869 r 3 alpha 2 029 beta 8 000 gamma 5 014 W gamma 4 alpha 2 029 beta 5 014 gamma 3 522 W gamma 2 alpha 3 845 beta 3 848 gamma 3 847 W gamma 2 alpha 3 847 beta 3 848 gamma 3 847 W gamma 2 Version 15 janvier 2005 110 Chapitre 5 Valeurs et vecteurs propres Intervalle 3 84735 3 84807 r 4 alpha 3 848 beta 8 000 gamma 5 924 W gamma 4 alpha 3 848 beta 5 924 gamma 4 886 W gamma 4 alpha 4 341 beta 4 343 gamma 4 342 W gamma 4 alpha 4 341 beta 4 342 gamma 4 341 W gamma 4 Intervalle 4 34071 4 34122 r 5 alpha 4 341 beta 8 000 gamma 6 171 W gamma 4 alpha 6 171 beta 8 000 gamma 7 085 W gamma 5 alpha 6 571 beta 6 574 gamma 6 573 W gamma 5 alpha 6 571 beta 6 573 gamma 6 572 W gamma 4 Intervalle 6 57168 6 57257 Voici les valeurs propres 0 21
200. 05 214 Chapitre 8 Exemples combinatoires PROCEDURE NombresDeBernoulli nn integer VAR B SuiteRat Calcule les nombres de Bernoulli B n Bn pour 0 lt n lt nn VAR k n integer q s rat BEGIN FOR n 2 TO nn DO B n RatZero B O RatUn FaireRat 1 2 B 1l FOR n 3 TO nn 1 DO IF odd n THEN BEGIN s RatZero FOR k 0 TO n 2 DO BEGIN Initialisation Bn 0 pour n gt 2 Bo 1 B 1 2 Calcul de Bh 1 pour n 1 pair s 0 RatParEntier B k binomial n k q RatPlusRat s q s END RatSurEntier s n s RatOppose s B n 1 END END NombresDeBernoulli Le calcul donne les r sultats suivants Nombres de Bernoulli B0 1 B 1 1 2 B_2 1 6 B 3 0 B4 1 30 B5 0 B6 1 42 B7 0 B 8 1 30 B9 0 B 10 5 66 B 11 0 B 12 691 2730 B 13 0 s s 7 Bk Bn 1 s n Les polyn mes de Bernoulli se calculent en utilisant la formule qui les d finit On a besoin de polyn mes coefficients rationnels Leur type est d clar par TYPE PolRat ARRAY O DegreMax OF rat SuitePolRat ARRAY O LongueurMax OF PolRat o DegreMax est une constante de taille appropri e La proc dure cherch e s crit alors comme suit Version 15 janvier 2005 8 2 Nombres de Bernoulli 215 PROCEDURE PolynomesDeBernoulli nn integer VAR B SuiteRat VAR PolB SuitePolRat Calcule dans PolB une table des polyn mes de Be
201. 1 Pseudo inverses 25 Dans le cas d une matrice carr e inversible l inverse Al est l unique pseudo inverse 1 PROPOSITION 2 1 1 Une matrice poss de au plus une pseudo inverse Preuve Soient G et G deux pseudo inverses d une matrice A On a alors AG AGAG AG AG AG AG AG AG et de m me GA G A On en d duit que G GAG GAG G AG C Quant l existence on a la proposition suivante PROPOSITION 2 1 2 Toute matrice poss de une pseudo inverse Il y a plusieurs d monstrations de cette proposition Nous en donnons deux la premi re est br ve la deuxi me conduit un algorithme Preuve Munissons R et R du produit scalaire usuel not Soit M et soit a l application lin aire de R dans R dont A est la matrice dans les bases canoniques Notons p la projection orthogonale de R d image Im A et q la projection orthogonale de R de noyau Ker A La restriction a de a Ker A est un isomorphisme de Ker A sur Im A Posons g amp 1o0oq R gt R Alors goa p ao g q donc goaog g et aogoa a De plus l endomorphisme p est sym trique c est dire px y x py pour tout z y dans R car px y px py I p y pz py et de m me z py pz py d o l galit Il en r sulte que la matrice P de p dans la base canonique est sym trique et par le m me raisonnement la matrice Q de q est sym triq
202. 1 amp amp N OH oOoroOorrOrrre oror OrrRrROrr hHOOHROMHMHROH BhhROOOrRrrR RO BH EE kB h h La recherche de la partie suivante se d compose en deux phases on cherche en pro gressant par indices croissants le premier intervalle constitu de chiffres 1 disons de longueur p Le chiffre qui suit s il existe est transform en 1 tous les chiffres pr c dents sont remplac s par un groupe de p 1 chiffres 1 suivis de z ros Voici les proc dures PROCEDURE PremierePartieRestreinte VAR x suite n k integer VAR i integer BEGIN FOR i 1 TO k DO x i 1 FOR i k 1 TO n DO x i 0 END de PremierePartieRestreinte PROCEDURE PartieSuivanteRestreinte VAR x suite n k integer VAR derniere boolean Version 15 janvier 2005 206 Chapitre 8 Exemples combinatoires VAR i j m integer BEGIN Ji 1 WHILE j lt n AND x j 0 DO j j 1 Recherche du premier coefficient non nul i j Calcul de l intervalle des coefficients non nuls WHILE i lt n AND x i 1 DO BEGIN x i 0 i i 1 END derniere i n 1 IF NOT derniere THEN BEGIN x i 1 Modification du coefficient FOR m 1 TO i j 1 DO x m 1 R partition des chiffres restants END END de PartieSuivanteRestreinte Le rang d une partie X k l ments de E est le nombre o les entiers 0 lt n lt Nk lt n sont d finis par X ni 1 nk 1
203. 1 0 1 1 La factorisation particuli re donn e dans la preuve de la proposition qui s obtient en choisissant comme deuxi me facteur le plus long mot de Lyndon qui est une fin s appelle la factorisation standard PROPOSITION 9 3 5 Soient f et g deux mots de Lyndon tels que f lt g Alors fg est un mot de Lyndon Preuve Soit u fg Nous allons d montrer que u est plus petit que toutes ses fins Version 15 janvier 2005 9 3 Mots de Lyndon 251 Notons d abord que fg lt g Ceci est clair si f n est pas un d but de g parce que f lt g donc f amp g d o fg lt g Si f est un d but de g alors g fw pour un mot w et g lt w parce que g est un mot de Lyndon Mais alors fg lt fw g Soit maintenant h une fin de u Si h est une fin de g alors u lt g lt h Le cas h g a t trait Si h h g o h est une fin de f alors f lt h et m me f h parce que h est plus court que f donc fg x h lt h Soit u u1 u un mot Une factorisation de Lyndon du mot u est une s quence u u uP de mots de Lyndon telle que uaa Du er u e Par exemple pour u 0 1 0 1 0 0 1 1 0 0 1 0 0 une factorisation de Lyndon est 0 1 0 1 0 0 1 1 0 0 1 0 0 On construit une factorisation de Lyndon d un mot u u1 Un comme suit On part de la s quence u u ut o u u pour i 1 n Si u u uP est une s quence construite et s il existe un indice k
204. 1 000 0 000 2 000 5 000 3 000 5 000 1 000 1 000 1 000 1 000 2 000 1 000 4 000 1 000 Matrice L 1 000 0 000 0 000 0 000 0 500 1 000 0 000 0 000 0 500 0 000 1 000 0 000 0 250 0 125 0 125 1 000 Matrice U 4 000 2 000 1 000 0 000 0 000 4 000 2 500 5 000 0 000 0 000 3 500 1 000 0 000 0 000 0 000 0 250 Vecteur de permutation des lignes 1 2 4 3 55 Version 15 janvier 2005 56 Chapitre 3 D compositions Matrice LU 4 000 2 000 1 000 0 000 2 000 5 000 3 000 5 000 2 000 1 000 4 000 1 000 1 000 1 000 1 000 1 000 Les lignes 3 et 4 sont en effet permut es Comme il est d j dit plus haut la d compo sition LU facilite la r solution d un syst me lin aire Voici une r alisation PROCEDURE SystemeParCrout n integer a mat b vec VAR x vec VAR inversible boolean R solution du syst me d quations lin aire Ax b par la m thode de Crout Si A est inversible x contient la solution sinon le bool en est faux VAR p vecE PROCEDURE Permuter b vec p vecE VAR bp vec VAR k integer BEGIN FOR k 1 TO n DO bplk b p k END de Permuter BEGIN DecompositionLU n a p inversible IF inversible THEN BEGIN Permuter b p b SystemeUniTriangulaireInferieur n a b x SystemeTriangulaireSuperieur n a x x END END de SystemeParCrout La proc dure SystemeTriangulaireSuperieur a d j t pr sent e au chapitre 1 la proc dure SystemeUniTriangulairelnferieur ci dessous tient en pl
205. 1 000 1 000 2 000 1 000 4 000 1 000 Matrice a pour p 1 q 3 4 583 4 146 2 400 2 400 0 000 3 578 2 236 4 472 0 000 0 098 0 488 0 488 2 000 1 000 4 000 1 000 Matrice a pour p 1 q 4 5 000 4 200 3 800 2 600 0 000 3 578 2 236 4 472 0 000 0 098 0 488 0 488 0 000 0 742 2 706 0 044 Matrice a pour p 2 q 3 5 000 4 200 3 800 2 600 0 000 3 579 2 249 4 484 0 000 0 000 0 427 0 366 0 000 0 742 2 706 0 044 Matrice a pour p 2 q 4 5 000 4 200 3 800 2 600 0 000 3 655 1 652 4 399 0 000 0 000 0 427 0 366 0 000 0 000 3 106 0 867 Version 15 janvier 2005 64 Matrice a pour p 3 q 4 5 000 4 200 3 800 2 0 000 3 655 1 652 4 0 000 0 000 3 135 0 0 000 0 000 0 000 0 D composition QR de a Voici la matrice q 0 800 0 372 0 455 0 400 0 908 0 007 0 200 0 044 0 053 0 400 0 186 0 889 Voici la matrice r 5 000 4 200 3 800 0 000 3 655 1 652 0 000 0 000 3 135 0 000 0 000 0 000 V rification produit q r 4 000 2 000 1 000 2 000 5 000 3 000 1 000 1 000 1 000 2 000 1 000 4 000 Voici un deuxi me exemple Voici la matrice 4 000 1 000 1 000 4 000 0 000 1 000 0 000 0 000 0 000 0 000 D composition QR de a Voici la matrice 0 970 0 234 0 243 0 935 0 000 0 265 0 000 0 000 0 000 0 000 Voici la matrice 4 123 1 940 0 000 3 773 0 000 0 000 0 000 0 000 0 000 0 000 a 0 1 4 1 0 q 0 0 0 929 0 0 000 RH 000 000 000 000 000 062 248 268 2
206. 1 2 028 3 848 4 341 6 572 5 4 M thode LR de Rutishauser Dans cette section nous pr sentons une m thode tr s simple mettre en uvre pour calculer les valeurs propres d une matrice lorsqu elles sont toutes r elles Les preuves de convergence sont d licates et nous renvoyons la litt rature pour tous les aspects th oriques Soit n gt 1 un entier et soit une matrice carr e r elle d ordre n dont les valeurs propres sont r elles La m thode de Rutishauser est fond e sur la d composition LU que nous avons d crite au chapitre 3 et que Rutishauser appelle LR d o le nom On supposera en particulier que toutes les matrices consid r es poss dent une d composition LU On d finit alors une suite de matrices Ap par A1 A et Ak 1 Uk Lk Ak LrUr o le couple Lx Ug est la d composition LU de Az c est dire que Lp est unitriangu laire inf rieure et Up est triangulaire sup rieure On peut montrer que sous certaines hypoth ses les suites Lp et Up convergent et que Lx tend vers la matrice unit d ordre n alors Up tend vers une matrice U dont la diagonale contient les valeurs propres de A La mise en uvre de cet algorithme est particuli rement simple et c est le cas que nous consid rons lorsque la matrice est d s le d part tridiagonale En effet comme nous l avons vu au chapitre 4 la d composition LU est alors tr s facile crire et l op ration compl mentaire
207. 19 IMPLEMENTATION BEGIN END L interface contient les informations publiques c est dire utilisables par le programme qui inclut l unit Il peut s agir de constantes de d clarations de types de variables et d en t tes de proc dures La partie impl mentation contient la r alisation des diverses proc dures Enfin en Turbo Pascal le corps de l unit la partie initialisation d limit par le dernier couple BEGIN END peut contenir des instructions qui sont ex cut es avant chaque ex cution du programme qui utilise l unit Un programme qui utilise une unit le sp cifie par l instruction P q P P USES nom Consid rons un exemple La biblioth que des nombres rationnels d crite en d tail dans le paragraphe suivant se d clare comme unit de la mani re que voici UNIT rationnels INTERFACE USES general Utilise son tour une unit TYPE rat ARRAY 0 1 OF integer D claration de type VAR RatZero RatUn rat D claration de variables PROCEDURE InitRationnels En t tes de proc dures FUNCTION Numerateur VAR r rat integer PROCEDURE RatPlusRat u v rat VAR w rat IMPLEMENTATION R alisation des proc dures PROCEDURE RatPlusRat u v rat VAR w rat VAR n d integer BEGIN n Numerateur u Denominateur v Denominateur u Numerateur v d Denominateur u Denominateur v FaireRat n d w END de RatPlusRat Version 15 janvier 2005
208. 2 2 sim e n gt Jo a cos D b2 sin 2 lim O 2 c 0 car la convergence de cn vers 0 est quadratique Il suffit alors de r soudre en J a b pour terminer la d monstration La troisi me et derni re formule n cessaire pour obtenir celle de Brent Salamin est la formule de Legendre sur les int grales elliptiques TH OR ME 12 4 5 Pour x lt 1 posons m 2 r 2 K x 1 zx sin l dp et E x 1 x sin do 0 0 et x V1 x Alors TE K x E x K x E x K x K x s 4 11 Preuve Soit c x et d 1 c et posons E E x K K x Un simple calcul donne d d 7P csin o Tip k lt Ti zf 1 csin 1 2 E 1i f 1 ar F EETA 2c 2cjJ 1 csin p 3 2 Version 15 janvier 2005 12 4 La formule de Brent Salamin 401 De d sin cos do z csin 2 nous d duisons que K gt i csin Za csin c c d E E 1 Pd sin cos Le mu E3 d 4 12 T 2c 2cc 2d Jo d z csin E 4 12 E 1 E Pour simplifier les notations posons K K x et E E x De d 1 c il suit que d _E E K 2 4 14 Enfin des calculs simples conduisent dE E K dE E K t 4 15 dc 2c i dc 2c Si G d signe le membre gauche de 4 11 nous pouvons crire G sous la forme G EE E K E K En usant de Bis nous trouvons que dG _ E K F Le E
209. 2005 276 Chapitre 10 G om trie algorithmique g om triques et ceci avec la contrainte d effectuer les op rations de mani re efficace Qu entend on par efficacit Consid rons le probl me suivant Etant donn s 10 points du plan calculer les points extr mes c est dire les points qui se situent sur leur enveloppe convexe Une solution est de trier angulairement autour de chaque point P les autres points si l un des angles entre deux directions cons cutives est sup rieur 180 alors P est un point extr me Rien de plus simple Mais que se passe t il s il y a 10 000 points au lieu de 10 Le tri de n nombres n cessitant de l ordre de n log n op rations l mentaires i e comparaisons de deux nombres et ce tri devant tre effectu autour de chaque point l ensemble du calcul n cessite plus de 100 millions d op rations pour n 10 000 points En fait une analyse plus fine de la g om trie du probl me permet de trouver un algorithme pratiquement aussi simple ne n cessitant que de l ordre de n log n op rations L ensemble du calcul peut alors tre effectu en quelques secondes sur un ordinateur De mani re g n rale nous dirons qu un algorithme a une complexit en O f n s il ne requiert pas plus de cf n op rations l mentaires comparaison addition multiplication pour traiter des donn es de taille n pour une certaine constante c On peut montrer que le tri de n nombres a pour complexi
210. 3 1 Enonc partitions d entiers Une partition d un entier positif n est une suite a n1 n d entiers tels que n gt Nns gt 0etni n n Chaque n 1 lt i lt s est une part de a et s est le nombre de parts de la partition Les partitions d un entier n sont ordonn es comme suit si a n1 n et a ni n sont deux partitions de n on pose a lt a si et seulement s il existe un entier lt s s tel que nj n pour j 1 i 1 et ni lt ni 1 a Ecrire une proc dure qui prend en argument deux entiers positifs n et m et qui affiche en ordre d croissant toutes les partitions de n dont toutes les parts sont inf rieures ou gales m on pourra supposer que n lt 20 Version 15 janvier 2005 8 3 Partitions d entiers 217 Exemple num rique n 9 m 4 b Ecrire une proc dure qui prend en argument un entier positif n et qui affiche toutes les partitions de n Exemple num rique n 9 On note p n le nombre de partitions de n gt 0 et on pose p 0 1 Pour m gt 0 et n gt 0 on note pm n le nombre de partitions de n en parts toutes inf rieures ou gales m et on pose pm 0 1 2 a D montrer que te Pm 1 n sim gt n Fe Pm 1 n Pmn m sin gt m gt l b Ecrire une proc dure qui prend en argument n et qui calcule p n Ecrire cette proc dure sans utiliser de tableau double indice Comme les entiers p n croissent assez vite avec n on
211. 3 a3 E 0 A Nag Dn O gt 0 bn an telle que b 0 pour i 2 n On note p x d t 4 xI o I est la matrice unit d ordre r le polyn me caract ristique de la matrice a1 b2 0 pa A b 0 br ar et on pose po x 1 1 V rifier que p a x et Pr x ar J x pr x A b pr 2 x 2 r lt n 2 D montrer que pour 2 lt r lt n les z ros des p x sont r els simples et que Li lt Y lt T2 lt Y2 lt lt Yr 1 lt Tr o 1 Zr sont les z ros de p x et y1 yr 1 sont les z ros de pr x et donner une majoration des valeurs absolues des z ros de p x en fonction des l ments de A 3 Ecrire une proc dure qui calcule les valeurs propres de la matrice A en calculant successivement des valeurs approch es des z ros des polyn mes p x pour r 1 n Version 15 janvier 2005 5 3 Valeurs propres de matrices tridiagonales 101 Exemple num rique gt Il ooon A OO ON H OO kH ND H kH kH k 4 Quelles sont les modifications apporter dans le cas o l un des coefficients b dans la matrice serait nul 5 On suppose que la matrice tridiagonale est de plus d finie positive D montrer qu il existe alors une matrice triangulaire inf rieure L telle que A L L On note M la transpos e d une matrice M 6 On suppose de plus que les valeurs propres de sont distinctes On d fin
212. 4 2 60s_1 7s_4 2 60s_2s 3 3s 4 150s_1 2s_3 3s 4 450s_1s_2 2s_3 2s 4 900s_1 3s_2s 3 2s 4 315s_1 5s3 2s 4 75s_2 4s_3s_4 900s_1 2s_2 3s_3s 4 1575s_1 4s_2 2s_3s 4 8405 1 6s2s_3s4 135s_1 8s_3s_4 90s_1s_2 5s_4 525s_1 3s_2 4s 4 840s_1 5s_2 73s4 540s_1 7s_2 2s 4 150s_1 9s_2s 4 15s_1 11s_4 3s_3 5 75s_1s_2s_3 4 75s_1 3s_374 50s_2 3s 373 450s_1 2s_2 2s_3 3 525s_1 4s_2s_3 73 140s_1 6s_3 3 225s_1s_2 4s 372 1050s 1 3s_2 3s 372 1260s_1 5s_2 2s_3 2 540s_1 7s_2s_3 2 75s_1 9s 372 15s2 6s3 315s_1 2s_2 5s_3 1050s_1 4s_2 4s_3 12605 1 6s_2 3s3 675s_1 8s_2 253 165s_1 10s_2s_3 15s 171253 15s_1s_2 7 140s_1 3s 276 378s_1 5s_2 5 450s_1 7s_2 4 275s_1 9s_2 3 90s_1 11s_2 2 15s_1 13s_2 s_1 15 7 3 Factorisation de polyn mes 7 3 1 Enonc factorisation de polyn mes Soit K Z 2Z Les polyn mes consid r s dans ce probl me appartiennent K X l anneau des polyn mes coefficients dans K On note 0 respectivement 1 le poly n me nul respectivement le polyn me de degr 0 et de terme constant gal 1 Le degr d un polyn me est not deg f Soient f et h deux polyn mes On dit que f divise ou est un diviseur de h s il existe un polyn me g tel que fg h Un poly n me f est irr ductible si ses seuls diviseurs sont 1 et f et il est r ductible sinon On appelle factorisation d un polyn me f une suite
213. 4 399 0 000 0 000 3 135 0 909 0 000 0 000 0 000 0 244 Matrice r 5 000 4 200 3 800 2 600 0 000 3 655 1 652 4 399 0 000 0 000 3 135 0 909 0 000 0 000 0 000 0 244 Matrice q 0 800 0 372 0 455 0 122 0 400 0 908 0 007 0 122 0 200 0 044 0 053 0 977 0 400 0 186 0 889 0 122 On pourra comparer la d composition celle obtenue par la m thode de Givens les matrices R n ont pas les m mes diagonales Notes bibliographiques Les d compositions pr sent es ici sont des plus classiques Il en existe bien d autres en particulier la singular value decomposition qui est d une grande utilit On pourra consulter G H Golub C F van Loan Matrix computations Baltimore John Hopkins University Press 1985 Version 15 janvier 2005 69 Chapitre 4 Matrices tridiagonales Une matrice carr e a j est tridiagonale si a 0 pour i j gt 1 Les proc dures des chapitres pr c dents prennent des formes particuli res pour les matrices tridiagonales et elles peuvent surtout tre r alis es de mani re beaucoup plus efficace Les matrices tridiagonales se rencontrent dans le calcul des valeurs et vecteurs propres de matrices Dans ce cas une premi re tape consiste mettre la matrice donn e sous forme tridiag onale Les matrices tridiagonales interviennent aussi dans le calcul des splines cubiques et surtout dans la discr tisation d quations aux d riv es partielles 4 1 Op rations s
214. 43 996 736 000 0 000 e 01 e kh 600 399 909 244 122 122 977 122 600 399 909 244 000 000 000 000 000 000 000 000 000 017 066 249 928 0 268 NO 000 265 000 732 0 000 ereOoOOO D 000 000 000 000 000 005 018 069 258 963 000 000 268 000 3 596 Chapitre 3 D compositions Comme A QR et que Q est orthogonale on a d t A d t R et en particulier est inversible si et seulement si R l est De plus le syst me d quations Ax b quivaut Version 15 janvier 2005 3 3 D composition QR 65 aux syst mes Qy bd Rr y Le premier se r sout imm diatement parce que y Qb et le deuxi me est un syst me triangulaire D o PROCEDURE SystemeParQR n integer a mat b vec VAR x vec VAR inversible boolean Calcul de la solution du syst me lin aire Ax b par la d composition A QR Si R est inversible on r sout d abord le syst me Qy b par y Qb puis le syst me triangulaire Rx y VAR i integer q r mat y vec BEGIN DecompositionQR n a q r inversible true i 1 WHILE i lt n AND inversible DO BEGIN inversible NOT EstNul r i il i i 1 END IF inversible THEN BEGIN VecteurParMatrice n b q y SystemeTriangulaireSuperieur n r y x END END de SystemeParQR 3 3 4 D composition QR m thode
215. 5 24 40 08 44 36 21 05 00 E O 1 sqrt 2 0 70 71 06 78 11 86 54 75 24 40 08 44 36 21 05 00 E 0 Les deux derniers chiffres de 1 V2 devraient tre 04 85 au lieu de 05 00 On peut calculer directement la racine carr e d un flottant par la suite d crite au paragraphe pr c dent Cette suite fait une division chaque it ration donc est lente Par cons quent on a int r t choisir une valeur de d part proche de la solution Or si N a BX aB a BNT a2 B7 k 1 alors As aiB 9 2 si N est impair lVaB aBW 2 2 si N est pair On peut donc prendre cette valeur comme d part Ceci est fait dans Version 15 janvier 2005 12 3 Calcul de m par arctangente 383 PROCEDURE RacineFlottant a Flottant VAR b Flottant BEGIN IF odd Exposant a THEN BEGIN ChiffreEnFlottant b round sqrt al1 FixerExposant b 1 Exposant a 1 DIV 2 END ELSE BEGIN ChiffreEnFlottant b round sqrt a 1 base a 2 FixerExposant b 1 Exposant a 2 DIV 2 END FlottantRacinelteration a b END de RacineFlottant avec PROCEDURE FlottantRacinelteration a Flottant VAR x Flottant VAR y Flottant BEGIN REPEAT y X FlottantSurFlottant a y x ajx FlottantPlusFlottant x y x z x a x FlottantSurChiffre x 2 UNTIL FlottantProches y x END de FlottantRacinelteration En fait on a plut t int r t calculer v a en faisant le produit de a par 1 ya C est nettement plus rapide
216. 5 3 883 6 569 Pour r 5 Le polyn me est X 5 17 000 X 4 104 000 X 3 274 000 X 2 276 000 X 47 000 Les intervalles de localisation sont 8 000 0 402 2 145 3 883 6 569 8 000 et les z ros du polyn me sont 0 211 2 028 3 847 4 340 6 572 Les valeurs propres sont 0 211 2 028 3 847 4 340 6 572 Le polyn me caract ristique est X 5 17 000 X 4 104 000 X 3 274 000 X 2 276 000 X 47 000 On a p 0 21077 0 05816 p 2 02791 0 01254 p 3 84672 0 00564 p 4 34024 0 00692 p 6 57180 0 10053 Notons la grande taille des coefficients du polyn me caract ristique Ce ph nom ne est encore plus frappant dans l exemple suivant Donner l ordre n 5 Donner la diagonale 44444 Donner la sous diagonale LL E Voici la matrice lue 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 Les valeurs propres sont 2 268 3 000 4 000 5 000 5 731 Le polyn me caract ristique est X 75 20 000 X 4 156 000 X 3 592 000 X 2 1091 000 X 780 000 On a p 2 268 0 00411 p 3 000 0 00099 p 4 000 0 00082 p 5 000 0 00106 p 5 731 0 00889 Version 15 janvier 2005 5 3 Valeurs propres de matrices tridiagonales 107 5 3 4 Programme calcul par suites de Sturm La suite de polyn mes d finie par Pr X ar X pr 1 b pr 2 X 2 lt r v rifie les hypoth ses
217. 5 38 19 49 37 73 07 56 72 64 26 34 52 E O numer 0 02 87 11 60 14 45 34 89 63 62 99 11 42 00 46 70 72 64 11 61 E 1 alpha 0 71 77 90 03 61 33 72 40 90 74 77 85 50 11 67 68 16 02 90 00 E O0 denom 0 91 42 13 56 23 73 09 50 48 80 16 88 72 42 09 69 80 78 58 00 E O piapp 0 03 14 05 79 25 05 22 16 82 48 31 13 31 26 89 75 82 33 11 75 E 1 n 2 gamma 0 40 04 97 56 18 65 52 55 28 47 77 04 10 95 51 76 55 48 00 00 E 2 beta 0 71 77 70 01 09 76 29 63 92 27 45 34 23 43 16 74 13 62 48 80 E0 numer 0 02 87 10 80 04 44 63 85 44 13 49 17 91 70 05 57 89 07 54 21 E 1 alpha 0 71 77 70 01 11 15 96 36 03 37 29 47 92 51 39 47 26 88 55 00 E O0 denom 0 91 38 93 16 43 23 60 26 28 37 89 06 56 09 22 05 66 66 14 16 E 0O piapp 0 03 14 15 92 64 62 13 54 22 82 14 93 44 43 19 82 69 57 74 14 E 1 n 3 gamma 0 01 39 66 72 11 09 84 13 69 08 22 73 13 26 06 20 00 00 00 00 E 4 beta 0 71 77 70 01 10 46 12 99 97 82 03 43 93 83 11 67 02 27 03 27 E O numer 0 02 87 10 80 04 41 84 51 99 91 28 81 70 03 60 79 55 45 05 09 E 1 alpha 0 71 77 70 01 10 46 12 99 97 82 20 42 50 90 19 88 86 26 27 00 E 0 denom 0 91 38 93 16 20 88 92 72 50 80 42 87 50 77 58 35 54 49 14 96 E 0 piapp 0 03 14 15 92 65 35 89 79 32 38 27 95 12 77 48 01 86 39 73 88 E 1 n 4 gamma 0 16 98 57 07 08 21 83 99 23 73 00 00 00 00 00 00 00 00 00 00 E 10 beta 0 71 77 70 01 10 46 12 99 97 82 11 93 22 36 65 77 94 26 65 19 E O numer 0 02 87 10 80 04 41 84 51 99 91 28 47 72 89 46 63 11 77
218. 5 janvier 2005 304 Chapitre 12 Grands nombres la division euclidienne de u par v avec q u v Avec le quotient approch p donn par l quation LA posons Les deux propositions suivantes montrent que 4 approche assez bien le quotient exact q PROPOSITION 12 1 1 Ona gt q Preuve Comme q lt b 1 l in galit est vraie si p gt b Si p lt b 1 alors notons que Un 10 Un _ Un 1 Un Un d o Ua gt Un 10 Un Un 1 Il en r sulte que u pu lt u pub lt u un41b Unb Unb b lt b unb b lt v On a donc u pv lt v d o u pv lt u qu soit q lt p PROPOSITION 12 1 2 Sivun gt b 2 alors 2 lt q Preuve Si v b alors u Unb et q On peut donc supposer v b On a alors G lt Un 10 Un Unib unb lt t u 7 Un Unb T Wb v bn la derni re in galit provenant de ce que v lt un 1 b Supposons alors la conclusion fausse soit q 3 lt Comme lt b 1 il en r sulte que q lt b 4 1 2 Par ailleurs on a q gt u v 1 d o u u ub u b 3 lt q lt a S E a yr v b w vu b ou encore r u v gt 2 gt 2 Un 1 v 7 beo gt L et comme Un gt b 2 1 il en r sulte que u v gt b 3 en contradiction avec L 2 Ces deux propositions montrent que l un des trois nombres 4 4 1 4 2
219. 500 00696057 00227160 00069793 00021045 00006310 00001889 00000565 OoOOOOOoOoOOOCOO Norme sous diagonale 53316951 22450070 18881191 06740393 02051641 00614636 00183871 00016451 00001472 o0o0oo0o0o000o0 O L ouvrage de r f rence sur les m thodes de calcul des valeurs propres est J H Wilkinson The Algebraic Eigenvalue Problem Oxford Clarendon Press 1965 De nombreux compl ments se trouvent dans G H Golub C F van Loan Matrix Computations Baltimore John Hopkins University Press 1985 Version 15 janvier 2005 116 Chapitre 5 Valeurs et vecteurs propres Voir galement P G Ciarlet Introduction l analyse num rique matricielle et l optimisation Paris Masson 1988 et le volume d exercices correspondant de P G Ciarlet B Miara et J M Thomas Paris Masson 1987 Un expos orient vers la programmation avec de nombreux programmes est W H Press B P Flannery S A Teukolsky W T Vetterling Numerical Recipes Cambridge Cambridge University Press 1988 Version 15 janvier 2005 117 Chapitre 6 Matrices en combinatoire 6 1 Matrices unimodulaires 6 1 1 Enonc matrices unimodulaires Soient p et q des entiers positifs Dans tout le probl me aij 1 lt i lt pi lt j lt g d signe une matrice r elle d ordre p q coefficients 0 1 ou 1 Une sous matrice de A est une matrice de la forme A aij Jier jeJ o I C 1
220. 518 Matrice A pour r 2 4 000 5 477 0 000 0 000 0 000 5 477 23 467 1 396 0 000 0 000 0 000 1 396 4 483 0 135 1 613 0 000 0 000 0 135 6 298 5 211 0 000 0 000 1 613 5 211 7 752 Vecteur v 0 000 0 000 Vecteur w 0 000 0 000 Matrice A pour r 4 000 5 477 000 1 753 1 613 000 0 166 0 180 000 0 000 0 000 5 477 23 467 396 0 000 0 000 0 000 1 396 483 1 619 0 000 0 000 0 000 1 619 6 879 5 260 0 000 0 000 0 000 5 260 7 171 H H Matrice tridiagonalis e A 4 000 5 477 0 000 0 000 0 000 5 477 23 467 1 396 0 000 0 000 0 000 1 396 4 483 1 619 0 000 0 000 0 000 1 619 6 879 5 260 0 000 0 000 0 000 5 260 7 171 Matrice Q de transformation 1 000 0 000 0 000 0 000 0 000 0 000 0 183 0 365 0 548 0 730 0 000 0 201 0 663 0 340 0 636 0 000 0 849 0 475 0 196 0 122 0 000 0 453 0 449 0 739 0 216 Matrice tQA Q 4 000 1 000 2 000 3 000 4 000 1 000 4 000 1 000 5 000 1 000 2 000 1 000 10 000 1 000 7 000 3 000 5 000 1 000 14 000 6 000 4 000 1 000 7 000 6 000 14 000 Version 15 janvier 2005 85 Chapitre 5 Valeurs et vecteurs propres Le calcul des valeurs propres d une matrice peut se faire en calculant d abord son polyn me caract ristique puis en d terminant les z ros de ce polyn me Une autre famille de m thodes travaille directement sur la matrice on transforme A progressive ment en une matrice semblable la matrice d origine et qui a une forme particul
221. 72 Chapitre 12 Grands nombres Cherchons calculer l inverse d un r el positif a Pour cela on consid re la fonction P 1 f 1 ax qui admet le z ro 1 a On a ici f z 2 2 ax F nouveau la fonction f est concave et o f xo f xo si et seulement si zo 2 a Il en r sulte que la m thode converge si xo est pris dans intervalle 0 2 af Ces deux sch mas it ratifs ont l avantage de ne pas faire intervenir de division autre que par une petite constante et sont donc int ressants pour le calcul sur les flottants Le calcul de la racine carr e d un r el positif a peut se faire en consid rant la fonction f x ar 1 On a alors fa i T a PeT aC De plus la fonction f est convexe c est une parabole et la m thode de Newton converge pour tout x positif Bien s r on a int r t choisir le point de d part le plus pr s possible de la racine 12 2 3 Programme arithm tique flottante On se propose de calculer certains nombres r els avec beaucoup de d cimales Cela ne peut pas se faire avec un seul objet de type real puisque leur pr cision est limit e On effectue les calculs dans une arithm tique flottante qui ressemble celle des entiers en multipr cision et on pourra utiliser un certain nombre de proc dures d velopp es dans ce cadre On se fixe une base B qui sera une puissance de 10 pour faciliter les lectures et critures On appelle chiffre tout entier c
222. 8467 7785 2249 4201 4771 0597 4252 7838 5982 9375 6611 2788 6899 5574 3832 0781 8086 4081 2294 5648 3486 8700 5364 1469 8611 9567 6733 0217 4818 7713 5343 9956 3099 3173 2308 7528 5349 1957 1959 6593 5773 8572 7950 6406 5132 2848 8954 2337 1045 6606 3678 5194 7381 3518 6244 9860 4676 4275 0146 1121 6051 2816 2533 8658 0428 7818 0921 6153 6225 4245 2884 2862 8230 1117 9303 8678 4326 3155 9259 1511 9326 8575 0656 9437 6940 7789 5495 2902 8707 0963 4468 7533 7554 5778 6420 3818 9941 4150 1971 0899 6647 4502 8196 3165 6482 8817 0360 6094 1179 2724 6430 0277 5132 6091 8537 1960 2113 1859 5035 2083 6873 0532 1989 2796 3891 6959 Version 15 janvier 2005 394 Chapitre 12 Grands nombres 5082 9533 1168 6172 7855 8890 7509 8381 7546 3746 4939 3192 5506 0400 9277 0167 1139 0098 4882 4012 8583 6160 3563 7076 6010 4710 1819 4295 5596 1989 4676 7837 4494 4825 5379 7747 2684 7104 0475 3464 6208 0466 8425 9069 4912 9331 3677 0289 8915 2104 7521 6205 6966 0240 5803 8150 1935 1125 3382 4300 3558 7640 2474 9647 3263 9141 9927 2604 2699 2279 6782 3547 8163 6009 3417 2164 1219 9245 8631 5030 2861 8297 4555 7067 4983 8505 4945 8858 6926 9956 9092 7210 7975 0930 2955 3211 6534 4987 2027 5596 0236 4806 6549 9119 8818 3479 7753 5663 6980 7426 5425 2786 2551 8184 1757 4672 8909 7777 2793 8000 8164 7060 0161 4524 9192 1732 1721 4772 3501 4144 1973 5685
223. A MB langle orient des droites MA et MB o M A B est un point quelconque de C et on note AB tan MA M B a D montrer que si est coordonn es rationnelles et si AB est rationnel alors B est coordonn es rationnelles b Soient a1 ax des nombres rationnels tels que 1 a1 ax D montrer qu il existe un cercle C de centre O et des points Ao 41 Ak coordonn es enti res du cercle tels que ai j 14 12 3 2 Solution calcul de x par arctangente Le calcul de x avec beaucoup de d cimales peut se faire au moyen de formules impliquant l arctangente comme par exemple i Arctan 1 2 Arctan 1 3 2Arctan 1 3 Arctan 1 7 2Arctan 1 4 Arctan 1 7 2Arctan 1 13 5Arctan 1 8 2Arctan 1 18 3Arctan 1 57 La plus connue de ces formules est celle de Machin i 4Arctan 1 5 Arctan 1 239 Notre but est d expliquer comment obtenir de telles formules On pose R RU 0 On d finit une bijection t de R 7Z sur R par AE ea si x T 2 00 si x 7 2 et on pose pour x y R R a 1 3 1 Version 15 janvier 2005 386 Chapitre 12 Grands nombres Par transfert de structure R muni de la loi de composition interne est un groupe commutatif isomorphe R tZ d l ment neutre t 0 0 La table de la loi est donn e dans la proposition suivante PROPOSITION 12 3 1 Soient x y deux r els tels que xy 1 Alors zty 3 2 D rer 3 2 De plus
224. AR d l vec BEGIN CholeskiTridiagonal n a b d 1 TridiagonalCholeski n d 1 a b END de IterationCholeski Voici quelques r sultats num riques Donner l ordre n 5 Donner la diagonale 44444 Donner la sous diagonale tiit Voici la matrice lue 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 Nous appliquons cette matrice tridiagonale qui est la fois une matrice de Lanczos et une matrice d finie positive les deux m thodes correspondantes Lanczos It rations Diagonale Norme sous diagonale 10 5 326 4 732 4 228 3 312 2 402 0 51508206 20 5 608 5 035 4 064 3 016 2 276 0 08852942 30 5 697 5 025 4 008 3 001 2 268 0 02442379 40 5 723 5 008 4 001 3 000 2 268 0 00663863 50 5 730 5 002 4 000 3 000 2 268 0 00172361 60 5 731 5 001 4 000 3 000 2 268 0 00044166 70 5 732 5 000 4 000 3 000 2 268 0 00011277 80 5 732 5 000 4 000 3 000 2 268 0 00002877 Choleski It rations Diagonale Norme sous diagonale 10 5 326 4 732 4 228 3 312 2 402 0 71769243 20 5 608 5 035 4 064 3 016 2 276 0 29753917 30 5 697 5 025 4 008 3 001 2 268 0 15628137 40 5 723 5 008 4 001 3 000 2 268 0 08147795 50 5 730 5 002 4 000 3 000 2 268 0 04151653 60 5 731 5 001 4 000 3 000 2 268 0 02101571 70 5 732 5 000 4 000 3 000 2 268 0 01061958 80 5 732 5 000 4 000 3 000 2 268 0 00536382 On obtient les m mes r sultats en sensiblement le m me nomb
225. AS o BE co AR eo GE ee Elle co ncide ici avec la factorisation de Lyndon Il nous reste estimer le temps d ex cution de l algorithme en fonction de la longueur m du mot w factoriser Commen ons par la factorisation de Duval A tout moment le triplet d entiers i j k de la proc dure v rifie les in galit s lt j lt k Chaque tour dans Version 15 janvier 2005 9 4 Suite de Thue Morse 261 la boucle WHILE remplace le triplet i j k par un nouveau triplet i j k savoir i k k 1 Si With lt Wk i j k i j k 1 si Wi k j Wk et k 1 j d Ve Gi k 1 k 1 si Wi k j Wk e amp t k 1 j d jj 1 j 1 siwk lt wirk De plus lorsque la derni re situation se produit on a k j lt d Il en r sulte que i k gt i k En effet cette in galit est vidente dans les trois premiers cas et dans le dernier on ai k lt i d j lt i j lt i k Comme k lt m la valeur de i k n exc de jamais 2m et le nombre de tours dans l algorithme est donc major par 2m Mise part la recopie de facteurs le temps d ex cution de chaque tour de boucle est constant Le total des recopies ne d passe pas la longueur du mot puisque tout facteur n est recopi qu une seule fois Le temps d ex cution d un appel de la proc dure de factorisation de Duval est donc lin aire en fonction de la longueur m du mot Notons ce temps m Si la factorisation de Lyndon n est pas ac
226. BA et ach ve la preuve La deuxi me preuve de la proposition se fait alors comme suit Si 0 alors est sa propre pseudo inverse Sinon soit r le rang de A Il existe une matrice de permutation P telle que AP U UK avec U M de rang r et K Myn r D apr s le lemme RLA la matrice H AP a donc une pseudo inverse H9 Montrons que G PH est la pseudo inverse de A On a en effet A HP AG APH HH et GA PH3HP 1 Donc on a AGA HHHP HP A GAG PHHH PH G AG YH H9 AG GA PH9 HP t GA la derni re quation tant vraie parce que tP P7 L algorithme pour calculer la pseudo inverse d une matrice A est le suivant dans une premi re tape on cherche une matrice de permutation P telle que AP U UK avec U Mr de rang r et K Myn r On d termine alors la pseudo inverse de AP par les formules du lemme et on revient la pseudo inverse de en pr multipliant par P L algorithme est mis en uvre dans la section suivante Notons que AB est en g n ral diff rent de BIAI l un des exemples les plus simples est probablement ASH i Il west pas difficile de v rifier que AB 1 et B9 A9 1 2 Parmi les applications des pseudo inverses figure une pr sentation l gante de la solution au probl me dit des moindres carr s Soient m n gt 1 avec m gt n On consid re une Version 15 janvier 2005 2 1 Pseudo inverses 27 matrice Mm
227. C 2ap q T 5c p qt Comme t lt 1 en vertu du choix de 0 on a ag q ba al lt ap q et de m me ap p bp p lt lap gl En particulier laii biil lt VS A pour tout i 1 n 1 1 Consid rons maintenant la suite A On a S AM lt r S AM D TO n n 1 donc S A tend vers 0 en cons quence pour tout i j avec i j la suite jat tend vers 0 Restent les l ments diagonaux Or d apr s La af af lt SCA lt V5 et la suite a ii k gt 0 converge donc pour tout i Comme les matrices A sont toutes semblables elles ont toutes les m mes valeurs propres qui sont aussi les valeurs propres de la matrice limite Sa diagonale est donc form e des valeurs propres de Ceci ach ve la preuve k Posons A lim A PROPOSITION 5 1 4 Supposons les valeurs propres de A distinctes et avec les nota tions du th or me posons Tk G q p1 G g2 p2 G dk pk Alors G limy_ Ik existe et ses colonnes sont des vecteurs propres associ s aux valeurs propres de A plus pr cis ment AG G Version 15 janvier 2005 90 Chapitre 5 Valeurs et vecteurs propres Preuve Soient 1 lt i lt n les valeurs propres de A Comme elles sont distinctes le nombre 1 2 En AEA K m est non nul et comme les suites a k gt 0 convergent on a pour k assez grand et i j a aA dkk dk 4k 2m Par ailleurs ag tan 204 2a
228. CartesienEnComplexe Re z Im z moinsz END de ComplexeUppose PROCEDURE Conjugue z complexe VAR zbarre complexe Donne Z BEGIN Version 15 janvier 2005 A 3 Biblioth ques 433 zbarre Z Fixerlm zbarre Im z END de Conjugue PROCEDURE ComplexeSurComplexe u v complexe VAR w complexe w u v On suppose v 0 VAR a b r real BEGIN r ModuleAuCarre v a Reu Rev Im u Im v r b ImCu Rev Re u Im v r CartesienEnComplexe a b w END de ComplexeSurComplexe PROCEDURE ComplexeParReel z complexe r real VAR w complexe w rz BEGIN CartesienEnComplexe r Re z r Im z w END de ComplexeParReel Il est commode de pouvoir disposer des complexes 0 et 1 On les d clare comme variables VAR ComplexeZero ComplexeUn complexe et leur valeurs sont d finies dans une proc dure d initialisation PROCEDURE InitComplexes BEGIN ReelEnComplexe ComplexeZero 0 ReelEnComplexe ComplexeUn 1 END de InitComplexes Une proc dure permet d changer les valeurs de deux param tres PROCEDURE EchangerC VAR u v complexe VAR w complexe BEGIN W u uU V V SW END de EchangerC Comme dans le cas des r els on utilise un test de nullit epsilon pr s FUNCTION EstCNul z complexe boolean Vrai si z est nul pr s BEGIN EstCNul Module z lt epsilon END de EstCNul Enfin
229. D de EstIlrreductible Pour d composer un entier de Gauss z en produit d entiers de Gauss irr ductibles on g re une liste de ses facteurs irr ductibles et une variable cz dont la valeur repr sente l exposant de dans la d composition de z On m morise galement le nombre de facteurs de la d composition CONST ListeMax 100 Nombre maximal de facteurs irr ductibles dans les listes TYPE ListeEntiersGauss array 1 ListeMax of EntierGauss PROCEDURE FactoriserEntierGauss z EntierGauss VAR Liste ListeEntiersGauss VAR cz NbFacteurs integer VAR Version 15 janvier 2005 336 Chapitre 11 Probl mes arithm tiques a b d n p integer x w r EntierGauss La proc dure de d composition d un entier de Gauss en produit de facteurs irr ductibles fait appel plusieurs sous proc dures Une premi re proc dure permet d ajouter un facteur la liste des facteurs d j trouv s et de mettre jour l exposant cz PROCEDURE AjouterFacteur cx integer x EntierGauss BEGIN cz cz cx MOD 4 NbFacteurs NbFacteurs 1 Liste NbFacteurs x END de AjouterFacteur Une autre proc dure donne la factorisation compl te d un nombre premier Rappelons que si p 3 mod 4 p est irr ductible Si p 1 mod 4 on a p i a ib b ia o p a b est l unique d composition de p comme somme de deux carr s PROCEDURE FactoriserPremier p integer VAR a b integer x
230. D White Constructive Combinatorics New York Springer Verlag 1986 Ce livre contient de nombreux programmes Les livres traitant des partitions sont tr s nombreux Le livre de Stanton et White contient de nombreuses preuves bijectives Nous nous sommes inspir s de G H Hardy E M Wright An Introduction to the Theory of Numbers London Oxford University Press 1965 T M Apostol Introduction to Analytic Number Theory New York Springer Verlag 1976 Les nombres et polyn mes de Bernoulli interviennent souvent par exemple dans la formule d Euler MacLaurin Pour d autres propri t s on peut consulter L Comtet Analyse combinatoire Paris Presses Universitaires de France 1970 D E Knuth The Art of Computer Programming Vol I Reading Addison Wesley 1968 Des tables num riques ainsi qu un r sum des propri t s principales se trouvent dans M Abramowitz I Stegun Handbook of Mathematical Functions New York Dover 1964 Version 15 janvier 2005 235 Chapitre 9 Combinatoire des mots 9 1 Terminologie Soit un ensemble On appelle mot sur toute suite finie u u1 Un o n gt 0 et u E pouri 1 n L entier n est la longueur de u souvent not e u Si n 0 le mot est appel le mot vide et est not 1 ou Si De Qui Un est un autre mot le produit de concat nation de u et v est le mot uv U1 Un U1 Um Tout mot tant le produit de concat
231. D f g writeln END 3 BEGIN EntrerPol01 f Donner le polyn me EcrirePol01 f f writeln FacteursCarres f g h EcrirePol01 g g writeln EcrirePol01 h h writeln END 4 BEGIN EntrerPol01 f Donner le polyn me EcrirePol01 f f writeln write Calcul des r_i de i 1 i readln k FOR i 1 TO k DO BEGIN CalculRi i f r write i 1 EcrirePol01 r ri writeln END END 5 BEGIN write n readln n FixerDegre f n 1 FOR i O TO n 1 DO f i 1 Version 15 janvier 2005 198 Chapitre 7 Polyn mes EcrirePol01 f f writeln Factorisation f END 6 BEGIN EntrerPol01 f Donner le polyn me EcrirePol01 f f writeln Factorisation f END OTHERWISE END END de Menu Pour finir voici quelques r sultats num riques f 1 X X 7 polyn me irr ductible f 1 X X 8 f 1 X72 X 3 X 5 X 6 1 X X72 f 1 X X 2 X73 X74 X 5 X76 X 7 X 78 X 9 X710 X711 X 712 X 13 X 14 X 15 X 716 f 1 X73 X 4 X 5 X 8 1 X X72 X 74 X76 X 7 X 8 f 1 X X 2 X73 X74 X 5 X76 X 7 X 78 X 9 X 10 X711 X 712 X 713 X 14 X 15 X 716 X 17 X 18 X 19 X 720 X721 X 22 X 23 X 24 X 25 X 26 X 27 X 28 X 29 X 30 X731 X 32 X 33 X 34 X
232. Delaunay de forment une triangu lation de S appel e la triangulation de Delaunay de S Avant de donner la preuve de ce th or me nous rappelons la caract risation des points d un cercle connue sous le nom de la proposition de l arc capable Soit C un cercle de centre w passant par les points p et q soit H le demi plan ouvert de fronti re la droite pq contenant ventuellement dans son adh rence si pq est un diam tre de C le centre w du cercle C et soit H l autre demi plan ouvert de fronti re la droite pq Etant donn s trois points distincts p q r l angle des demi droites d finies par les vecteurs p et pr est not qpr PROPOSITION 10 3 2 Soit 2a pwgq Le cercle C est caract ris par CNA H m H prq a 3 1 CN Ho m Ho pmq r a PROPOSITION 10 3 3 Le disque D de fronti re C est caract ris par DNH m H pm gt a 3 3 DNA Ha m H pmq gt T qa 3 4 Preuve du th or me 10 3 1 Nous commen ons par d montrer que tout point de S est lextr mit d une ar te de Delaunay et que toute ar te de l enveloppe convexe de S est un c t d un unique triangle de Delaunay Version 15 janvier 2005 10 3 Triangulation de Delaunay 297 Figure 10 3 3 La caract risation de l arc capable Figure 10 3 4 Preuve de l existence des triangles de Delaunay Soit p S et soit q le point de le plus proche de p Alors p q est une ar te de Delaunay
233. E NumeroterPoint p Point n integer Les fonctions d acc s et de construction s crivent bien s r FUNCTION Abscisse q Point real BEGIN Abscisse q 0 END de Abscisse FUNCTION Ordonnee q Point real BEGIN Ordonnee q 1 END de Ordonnee PROCEDURE FairePoint x y real VAR q Point BEGIN q 0 x qli y END de FairePoint La lecture d un point est remplac e par une saisie et l criture par un dessin Les proc dures que voici provoquent l affichage d un point PROCEDURE MarquerPointCarre p Point Marque le point d un O PROCEDURE MarquerPointRond p Point Marque le point d un PROCEDURE NumeroterPoint p Point n integer Ajoute n la marque du point On trace des segments de droites ou des demi droites qui sont donn es par une origine et une direction On peut voir dans les sections suivantes le genre de dessins que l on obtient Ces proc dures seront employ es pour la saisie de points ou de polygones et pour l affichage des r sultats La r alisation des proc dures de saisie et d affichage fait appel des primitives qui d pendent du mat riel utilis et disponibles travers la biblioth que appel e Graphik Nous supposons que les objets et les primitives suivantes sont disponibles Version 15 janvier 2005 288 Chapitre 10 G om trie algorithmique TYPE Pixel ARRAY 0 1 OF integer VAR HauteurEcran integer
234. END derniere ali kK END Enfin les formules de Newton sont calcul es l aide de la proc dure suivante PROCEDURE Newton n k integer VAR p polynome VAR i integer derniere boolean a monome BEGIN PremierePartition a n K plil a pli O0 Coefficient a i 1 IF k gt 1 THEN REPEAT i i i PartitionSuivante a k derniere pli a pli 0 Coefficient a UNTIL derniere p 0 O i END de Newton Voici quelques exemples d ex cution On trouve pour k 10 et n 3 p 10s_1s_3 73 15s_2 2s_3 2 60s_1 2s_2s_3 2 25s 1 4s_3 2 40s_1s_2 3s_3 100s_1 3s_2 2s 3 60s_1 5s_2s3 105 1 7s3 285 275 25s_1 2s 274 50s_1 4s_2 73 35s 1 6s_2 2 Version 15 janvier 2005 178 Chapitre 7 Polyn mes 10s_1 78s_2 s_1 10 Pour n 7 et k 9 p 95257 9s_1 2s7 9s_3s 6 18s_1s 25_6 9s_1 3s6 9s_4s_5 18s_1s 3s 5 9s_2 2s 5 27s_1 2s_2s_5 9s_1 4s_5 9s_1s 472 18s_2s_3s 4 27s_1 2s_3s_4 27s_1s_2 2s 4 365 1 3s_2s 4 9s_1 5s_4 835 373 27s_1s_2s 372 18s 1 3s_3 2 9s_2 3s_3 54s_1 2s_2 2s_3 45s_1 4s_2s_3 9s_1 6s_3 9s_1s_2 74 30s 1 3s_2 3 27s_1 5s_2 2 9s_1 7s_2 s_179 Pour n 4 et k 15 p 15s_3s 473 60s_1s_2s 473 50s_1 3s 473 90s_1s_3 2s 472 90s5_2 2s_3s 472 450s_1 2s_2s_3s_4 2 225s_1 4s_3s 472 150s 15 2 73s 472 450s_1 3s_2 2s 472 315s_1 5s_2s_
235. ER 124 ae M 130 A EE 130 132 RS 136 Version 15 janvier 2005 Table des mati res XI Polyn mes 143 145 A E 145 IREE EEE 145 a a 146 a E ea 151 a E 158 EE EN 158 EC 160 cie 167 e a 178 D oo 178 a 180 rss ateehte na 187 ombinatoire 201 8 Exemples combinatoires 203 8 1 G n ration d objets combinatoires E E I E e e De i ire 203 ee 205 a 207 8 2 Nombres de Bernoulli 211 8 2 1 Enonc nombres de Bernoulli 211 8 2 2 Solution nombres de Bernoulli 211 8 2 3 Programme nombres de Bernoulli 213 8 3 Partitions d entierd 216 8 3 1 Enonc partitions d entier 8 3 2 Solution partitions d entiers 8 3 3 Programme partitions d entierd o 226 235 9 1 Terminologid 235 9 2 Mots de LukasiewicA 238 Version 15 janvier 2005 XII Table des mati res 0 2 1 Enonc mots de LukasiewiczA 238 0 2 2 Solution mots de LukasiewicA 240 0 2 3 Programme mots de LukasiewicA 243 9 3 Mots de Lyndon 44 4 ds cacra krad errr aara 248 0 3 1 Enonc mots de Lyndon 248 A a a 249 eee ee 251 e 261 ET 261 0 4 2 Solution suite de Thue Morsd 263 9 4 3 Programme sui
236. Ecart p c Intervalle initial Au d but aucun intervalle trouv et aucun en attente S il y a au moins un z ro dans a b on le traite Tant qu il reste un intervalle en attente on en prend un on le coupe au milieu Si c est un z ro on le range soigneusement puis on calcule la distance qui le s pare des z ros les plus proches et on recommence Version 15 janvier 2005 7 1 Suites de Sturm 157 Repartir a c E Va Variation m sp c E sur a c E Repartir c E b Variation m sp c E Vb et c E b END ELSE BEGIN Si ce n est pas un z ro Vc Variation m sp c on calcule sa variation Repartir a c Va Vc et on recommence Repartir c b Vc Vb des deux c t s END END du while END END de LocalisationI Intervalles Il reste expliquer la pr sence du facteur 1 dans le calcul des extr mit s du premier intervalle Les in galit s dans les majorations des modules des z ros tant larges les bornes peuvent tre atteintes or pour pouvoir interpr ter correctement les variations calcul es elles doivent l tre en des points qui ne sont pas des z ros C est pourquoi on largit l intervalle Voici quelques exemples de d roulement de cette proc dure avec quelques impressions interm diaires Voici le polyn me lu XL X Intervalle de d part a b 2 002 2 002 Variations 3 0 Nombre de z ros r els 3 Mis en attente
237. FOR k 1 TO n DO IF k lt gt i THEN BEGIN Pour les sites autres que si dk CarreDistance S i S k calcul du carr de la distance Version 15 janvier 2005 306 Chapitre 10 G om trie algorithmique IF dk lt d THEN BEGIN et si le site est plus proche on d dk j K m morise son indice END END LePlusProcheVoisin j END de LePlusProcheVoisin On d termine un triangle de Delaunay en consid rant une ar te de Delaunay s sj et en cherchant le site sx qui forme avec les deux sites un angle maximal La fonction suivante calcule l indice k d un tel site situ droite ou gauche de s 8 selon la valeur du param tre cote s il n y en a pas la fonction retourne 0 FUNCTION VoisinSuivant i j cote integer integer VAR a k integer cosmin cosinus real BEGIN a 0 cosmin 1 Initialisation au d but le cosinus minimal vaut 1 FOR k 1 TO n DO Recherche parmi les sites du c t donn IF k lt gt i AND k lt gt j AND EstSitue S k S i SCj1 cote THEN BEGIN cosinus CosAngle S k S i S j Calcul du cosinus IF cosinus lt cosmin THEN BEGIN on garde le plus petit cosmin cosinus a k END END VoisinSuivant a END de VoisinSuivant Cette proc dure est utilis e dans FUNCTION VoisinDroit i j integer integer BEGIN VoisinDroit VoisinSuivant i j ADroite END de VoisinDroit FUNCTION VoisinGauche i j integer
238. IN n Numerateur u Denominateur v Denominateur u Numerateur v d Denominateur u Denominateur v FaireRat n d w END de RatMoinsRat PROCEDURE RatOppose u rat VAR v rat v u BEGIN v u FixerNumerateur v Numerateur v Version 15 janvier 2005 A 3 Biblioth ques 439 END de RatOppose PROCEDURE RatParRat u v rat VAR w rat W UV VAR n d integer BEGIN n Numerateur u Numerateur v d Denominateur u Denominateur v FaireRat n d w END de RatParRat PROCEDURE RatParEntier u rat x integer VAR w rat W UX BEGIN FaireRat x Numerateur u Denominateur u w END de RatParEntier PROCEDURE RatSurRat u v rat VAR w rat w ujv VAR n d integer BEGIN n Numerateur u Denominateur v d Denominateur u Numerateur v FaireRat n d w END de RatSurRat PROCEDURE RatSurEntier u rat x integer VAR w rat w u x BEGIN FaireRat Numerateur u x Denominateur u w END de RatSurEntier Il est commode de pouvoir disposer des entiers 0 et 1 comme rationnels On les d clare comme variables on pourrait aussi avoir des proc dures sp cifiques VAR RatZero RatUn rat Les valeurs sont d finies dans une proc dure d initialisation PROCEDURE InitRationnels BEGIN EntierEnRat RatZero 0 EntierEnRat RatUn 1 END de InitRationnels Enfin la lecture et l affichage
239. InitPolynomes Comme les mon mes sont rang s suivant leur multidegr il est utile de pouvoir comparer le multidegr de deux mon mes FUNCTION CompareDegreMonome n integer m1 m2 monome integer Cette fonction compare les deux mon mes m1 et m2 dans l ordre lexicographique des multidegr s Le r sultat est 1 si m2 lt m1 1 si m lt m2 et 0 si m et m2 ont le m me multidegr VAR i integer BEGIN i c 1 WHILE i lt n AND mi i m2 i DO and s quentiel ics ji y IF i n 1 THEN CompareDegreMonome ELSE CompareDegreMonome Signe mili m2 i END de CompareDegreMonome Il Le test d galit de deux polyn mes peut tre r alis ainsi FUNCTION SontEgauxPolynomes n integer pi p2 polynome boolean Teste si p p2 Version 15 janvier 2005 7 2 Polyn mes sym triques 169 VAR i t integer SontEgaux boolean BEGIN IF Taille p1 lt gt Taille p2 THEN SontEgauxPolynomes false ELSE BEGIN t Taille pi i 0 SontEgaux true WHILE i lt t AND SontEgaux DO BEGIN SontEgaux CompareDegreMonome n pilil p2 i 0 i it i END SontEgauxPolynomes SontEgaux END END de SontEgauxPolynomes La proc dure qui suit permet d ajouter un mon me m un tableau de mon mes d j ordonn Si aucun mon me du tableau ne poss de le m me multidegr que m m est ins r la place voulue Si au contraire m a le m me mult
240. Le probl me de la galerie d art est tir de la monographie J O Rourke Art Gallery Theorems and Algorithms London Oxford University Press 1987 La g om trie algorithmique est en pleine expansion Le r sultat le plus spectaculaire de l ann e 1990 fut l annonce par B Chazelle de l universit de Princeton d un algorithme de complexit lin aire pour trianguler un polygone simple B Chazelle Triangulating a simple polygon in linear time Actes du colloque Founda tions of Computer Science 1990 Version 15 janvier 2005 322 Version 15 janvier 2005 Chapitre 10 G om trie algorithmique Partie V Arithm tique 323 325 Chapitre 11 Probl mes arithm tiques 11 1 Entiers de Gauss 11 1 1 Enonc entiers de Gauss On note K l ensemble des nombres complexes de la forme a ib avec a b Z On note P l ensemble des l ments de K de la forme a ib avec a gt 0 et b gt 0 1 a D montrer que pour tout u K v K 0 il existe q K et r K tels que u qu r et r lt v 1 b En d duire que K est un anneau principal c Ecrire une proc dure qui prend en argument un l ment u de K et un l ment v de K 0 et calcule un couple q r v rifiant les conditions 1 2 On dit qu un l ment z de K est irr ductible s il appartient P 1 et si tous ses di viseurs dans K sont de module 1 ou z On note I l ensemble des l ments irr ductibles
241. Michel Pocchiola MATHEMATIQUES ET INFORMATIQUE Problemes r solus ALGEBRE COMBINATOIRE ARITHM TIQUE Version 15 janvier 2005 Avant propos Depuis quelques ann es l introduction d une preuve d informatique aux concours d en tr e dans les grandes coles scientifiques a cr un int r t accru pour des exemples d algorithmes et de programmes qui s inspirent du programme des classes pr paratoires Ce livre s inscrit dans ce cadre Partant de sujets pos s aux concours d entr e PENS d Ulm mais les th mes abord s se retrouvent dans une forme voisine dans d autres concours nous proposons la fois des solutions aux questions math matiques et des programmes types pour les questions algorithmiques Les r ponses sont la plupart du temps accompagn es de d veloppements qui permettent de replacer le probl me dans son cadre math matique et le programme dans un contexte informatique Dans cette forme largie le livre int resse galement les tudiants des premier et deuxi me cycles universitaires en math matiques et en informatique il est aussi un compl ment pour la pr paration de l option d informatique de l agr gation Les th mes L apparition de l informatique et de la programmation dans les classes pr paratoires fait d couvrir un grand nombre d tudiants leurs nombreuses applications possibles aux autres sciences Cette utilisation ne se limite pas au seul calcul num rique car l
242. NCTION Coefficient r monome integer VAR i SommeRangPair Somme Poids C integer BEGIN Somme 0 Poids 0 SommeRangPair 0 FOR i 1 TO n DO BEGIN Poids Poids i rlil Somme Somme rli END FOR i 1 TO n DIV 2 DO SommeRangPair SommeRangPair r 2 il C Multinomial r poids C C DIV Somme IF odd SommeRangPair THEN C C Coefficient C END de Coefficient Chapitre 7 Polyn mes Il reste engendrer pour chaque couple d entiers k n la suite des n uplets r1 rh tels que r 2r2 nrh k Ce type de probl me est trait en d tail au chapitre 8 Nous donnerons donc les proc dures sans commentaires suppl mentaires PROCEDURE PremierePartition VAR a monome n k integer Calcule dans r la premi re suite r1 r telle que r 2r2 nrn k VAR i s integer BEGIN FOR i 1 TO n DO ali 0 a n k DIV n s k MOD n IF s gt O THEN Version 15 janvier 2005 7 2 Polyn mes sym triques 177 als 1 END de PremierePartition PROCEDURE PartitionSuivante VAR a monome k integer VAR derniere boolean Calcule dans r la suite suivante r rA telle que r 2r2 nrn Kk VAR i s integer BEGIN i 2 WHILE a i O DO i i 1 s i ali Reste r partir ali 0 ali a i 1 TL L ali s DIV i IF i gt 1 THEN BEGIN s s MOD i IF s gt 0 THEN als 1
243. ND i i 1 UNTIL NOT DecompositionTriviale Il reste afficher le r sultat obtenu EcrirePol01 h f C writeln Pol01PlusPol01 r Pol01Unite r PGCDPo101 f r h EcrirePol01 h C writeln END END de Factorisation Les diverses options du programme sont regroup es dans le menu suivant PROCEDURE Menu VAR choix i k n integer g h q r s pol01 BEGIN writeln Menu writeln 1 Diviser 2 polyn mes writeln 2 PGCD de 2 polyn mes writeln 3 D composition f g 2 h writeln 4 Calcul des polyn mes r_i associ s f writeln 5 Factorisation de 1 X X 2 X n 1 pour n impair writeln 6 Factorisation d un polyn me write Votre choix readln choix CASE choix OF 1 BEGIN EntrerPol01 f Donner le premier polyn me EcrirePol01 f f writeln EntrerPol01 g Donner le deuxi me polyn me EcrirePol01 g g writeln Pol01DivEuclidPol01 f g q r writeln f gq r avec EcrirePol01 q q Version 15 janvier 2005 7 3 Factorisation de polyn mes 197 writeln EcrirePol01 r r writeln END 2 BEGIN EntrerPol01 f Donner le premier polyn me EcrirePol01 f f writeln EntrerPol01 g Donner le deuxi me polyn me EcrirePol01 g g writeln PGCDPo101 f g h EcrirePol01 h PGC
244. Nombres de Fibonacci d indices de 80 106 F 80 2 34 16 72 83 48 46 76 85 F 81 3 78 89 06 23 73 14 39 06 F 82 6 13 05 79 07 21 61 15 91 F 83 9 91 94 85 30 94 75 54 97 F 84 16 05 00 64 38 16 36 70 88 Version 15 janvier 2005 366 F 85 F 86 F 87 F 88 F 89 F 90 F 91 F 92 F 93 F 94 F 95 F 96 F 97 25 96 95 49 69 11 12 25 85 42 01 96 14 07 27 48 96 73 67 98 91 63 76 38 61 22 58 1 10 00 87 77 83 66 10 19 31 1 77 99 79 41 60 04 71 41 89 2 88 00 67 19 43 70 81 61 20 4 66 00 46 61 03 75 53 03 09 7 54 01 13 80 47 46 34 64 29 12 20 01 60 41 51 21 87 67 38 19 74 02 74 21 98 68 22 31 67 31 94 04 34 63 49 90 09 99 05 51 68 07 08 85 48 58 32 30 72 83 62 11 43 48 98 48 42 29 77 F 98 F 99 F 100 F 101 F 102 F 103 F 104 F 105 F 106 1 35 30 18 52 34 47 06 74 60 49 2 18 92 29 95 83 45 55 16 90 26 3 54 22 5 73 14 9 27 37 15 00 5 24 27 8 39 28 4 63 56 3 48 48 17 92 61 91 50 75 78 44 01 38 17 08 41 01 26 92 19 30 78 99 91 76 2 05 36 20 68 96 08 32 77 9 32 28 39 99 75 08 24 53 1 37 64 60 68 71 16 57 30 0 69 93 00 68 46 24 81 83 Chapitre 12 Grands nombres L affichage d un entier se fait en affichant les chiffres par exemple s par s par un blanc comme ci dessus On obtient donc PROCEDURE EcrireEntier VAR u entier titre texte VAR i BEGIN write titre IF EstEntierNul u THEN integer writeln 0 ELSE BEGIN
245. O n DO alk j alk j a k K FOR j 1 TO n DO ia k j ia k j a k k FOR i 1 TO n DO IF i lt gt k THEN BEGIN FOR j k 1 TO n DO ali j ali j ali k alk j FOR j 1 TO n DO iali j iali j a i k ialk j END END de PivoterJordan BEGIN de InverseParJordan Version 15 janvier 2005 18 Chapitre 1 Calcul matriciel ia MatriceUnite k 1 inversible true WHILE k lt n AND inversible DO BEGIN q PivotMax k inversible NOT EstNul alq k l IF inversible THEN BEGIN IF q gt k THEN EchangerLignes k q PivoterJordan k END k k 1 END du while sur k END de InverseParJordan Rappelons que MatriceUnite d signe la matrice unit que l on suppose d finie dans le programme entourant par exemple par la proc dure InitMatrices La proc dure pr c dente peut tre raffin e en particulier il est possible de stocker l inverse de a dans le tableau r serv a 1 3 Rang d une matrice Soit une matrice r elle d ordre m n On peut d terminer le rang r de A en calculant le nombre de colonnes lin airement ind pendantes de A Le m me proc d donne la dimension de l espace vectoriel engendr par un ensemble fini de vecteurs un petit raffinement permet d extraire de cet ensemble une famille libre maximale Pour le calcul du rang on applique la m thode de Gauss la matrice A Soit A la i 1 k 1 matrice ob
246. ON 12 3 3 On pose Fo F 1 et pour n gt 0 Fn 2 Fnr1 Fn Alors 1 1 1 p r Pon 1 Fan Fonu Preuve La relation d montrer est quivalente en vertu de 2 la relation Fon Pon41 Fon 1 FonFon 1 1 ou encore en utilisant Bo Ponga Fan FonFon 1 1 Nous d montrons cette derni re relation par r currence sur n En utilisant la relation de r currence B o il vient EFn 3Fn ee Fn 1Fn 2 Fa 2 Fn41 Fn E En Fn 1 Fn 2 natn a Fn 1Fn42 _ Fn42Fn 1 FaFn41 Version 15 janvier 2005 388 Chapitre 12 Grands nombres d o par it ration Fn 3Fn Fn 1Fn 2 1 F3 Fo Fi Fa 1 L On obtient ainsi les relations al T373 o1 1 1 75 5 8 ht te 7 1 2 En fait la recherche de formule du type 3 5 est quivalente la recherche des points coordonn es rationnelles du cercle unit Nous expliquons maintenant cette quivalence Soit O 7 7 un rep re orthonorm direct du plan et soit C le cercle unit de centre O Soient et B deux points de C et soit C l image de A par la rotation de centre O et d angle 7 2 On note MA MB langle orient des droites MA et MB o M A B est un point quelconque de C En vertu de la proposition de l arc capable cet angle est ind pendant du point M et est reli l angle orient des vecteurs O et OB not O OB par la relation O OB 2 M A MB Soit a une mesure de l
247. P q r pol PROCEDURE Menu END de menu BEGIN showtext InitGeneral InitPolynomes writeln writeln Manipulation de polyn mes coefficients reels writeln Taper pour informations REPEAT Menu UNTIL false Version 15 janvier 2005 A 4 Menus END 443 La proc dure Menu est un peu longue parce que le nombre de choix offerts est lev PROCEDURE Menu VAR choix char u pol x t real BEGIN writeln write Donner votre choix readln choix CASE choix OF RCE BEGIN writeln p q r Lecture du polyn me p q r writeln r p q writeln r p q writeln r p q writeln p qatr writeln n p p xX n writeln c r pgcd p q writeln d r d riv p writeln v Valeur p x writeln x p lt q q lt r r lt p writeln Fin END p Lecture polyn me p BEGIN write Donner le degr de p 5 readln n EntrerPolynome n p Entrer les coefficients de p write Voici le polyn me lu 22 EcrirePolynome p p X END He Lecture polyn me q BEGIN write Donner le degr de q gt readln n EntrerPolynome n q Entrer les coefficients de q write Voici le polyn me lu EcrirePolynome q q X END id de Lecture polyn me r BEGIN write Donner le degr de
248. PROCEDURE Clip p d Point VAR q Point Calcule le point d intersection q de la demi droite d origine p et de direction d avec le rectangle d limit par les verticales d quations x 0 et x HauteurEcran et les horizontales d ordonn es y 0 et y LargeurEcran VAR dx dy px py m real BEGIN dx Abscisse d dy Ordonnee d px Abscisse p py Ordonnee p IF EstNul dx THEN A est verticale FairePoint 1 signe dy HauteurEcran 2 px q ELSE BEGIN m est lordonn e de l intersection de A avec une verticale m py 1 signe dx LargeurEcran 2 px dx dy IF m gt HauteurEcran THEN FairePoint px HauteurEcran py dy dx HauteurEcran q ELSE IF m lt O THEN FairePoint px py dy dx 0 q ELSE FairePoint 1 signe dx LargeurEcran 2 m q END END de Clip Ceci d finit la biblioth que Geometrie Bien entendu il reste r aliser les primitives graphiques Commen ons par le Macintosh PROCEDURE RelierPixels a b Pixel Pour tracer un trait du pixel a au pixel b BEGIN MoveTo a 0 a 1 LineTo b 0 1 END de RelierPixels PROCEDURE LireCurseur VAR curseur Pixel BEGIN REPEAT UNTIL button GetMouse curseur 0 curseur 1 WHILE button DO END de LireCurseur PROCEDURE TracerCarre a Pixel r integer VAR rectangle rect Pour les coordonn es du carr BEGIN SetRect rectangle a 0 r a 1 r a 0
249. PROCEDURE NaturelSurChiffre u entier x chiffre VAR w entier Voici une r alisation de l addition et de la soustraction PROCEDURE NaturelPlusNaturel VAR u v w entier w u v VAR i m integer retenue chiffre BEGIN m min Taille u Taille v retenue 0 FOR i O TO m DO Version 15 janvier 2005 12 1 Entiers en multipr cision 359 SommeChiffres u i v i w i retenue IF Taille u gt m THEN FOR i m 1 TO Taille u DO SommeChiffres u i 0 w i retenue ELSE FOR i m 1 TO Taille v DO SommeChiffres 0 v i w i retenue m max Taille u Taille v IF retenue 1 THEN BEGIN m m 1 w m retenue END FixerTaille w m END de NaturelPlusNaturel La relative difficult de cette proc dure vient du choix de la repr sentation pour chacun des deux op randes u et v on ne peut tre s r que les chiffres au del de la taille sont nuls et il faut donc s parer les cas La soustraction se r alise de la m me fa on PROCEDURE NaturelMoinsNaturel VAR u v w entier w u v On suppose u gt v VAR i integer retenue chiffre BEGIN retenue 0 FOR i O TO Taille v DO DifferenceChiffres uli l v i w i retenue FOR i Taille v 1 TO Taille u DO DifferenceChiffres uli l 0 w i retenue i Taille u Calcul de la taille de w WHILE i gt 0 AND wli 0 DO Des chiffres annul s ii i 1 Si i 1 alors w 0 FixerTaille
250. Premiers PROCEDURE Crible Engendre une table de nombres premiers par la m thode du crible VAR P i j integer Premiers ARRAY 2 NombreMax OF boolean BEGIN FOR i 2 TO NombreMax DO Premiers i True p 1 FOR i 1 TO ListePremiersMax DO BEGIN REPEAT p p 1 UNTIL Premiers p j p Version 15 janvier 2005 334 Chapitre 11 Probl mes arithm tiques REPEAT Premiers j false j j p UNTIL j gt NombreMax NombresPremiers i p END END de Crible Voici une fa on d impl menter la recherche du plus petit diviseur premier d un entier FUNCTION FacteurPremier n integer integer Donne le plus petit diviseur premier de n VAR racine i p integer EstCompose boolean BEGIN FacteurPremier n EstCompose false racine round sqrt n i 1 REPEAT p NombresPremiers i EstCompose n MOD p 0 IF EstCompose THEN FacteurPremier p ELSE i i 1 UNTIL p gt racine OR EstCompose END de FacteurPremier On peut facilement convertir la proc dure pr c dente en test de primalit FUNCTION EstPremier n integer boolean BEGIN EstPremier FacteurPremier n n END de EstPremier La recherche de la d composition d un nombre premier p 3 mod 4 comme somme de deux carr s peut s effectuer de fa on exhaustive de la fa on suivante PROCEDURE DeuxCarres p integer VAR a b integer Fournit la d composition d un no
251. ProduitScalaire n v p K 46wp VecteurParScalaire n v K w VecteurPlusVecteur n p w w q p Kv VecteurParMatrice n v q Zz VecteurParScalaire n z beta z z BvQ FOR i 1 TO n DO FOR j 1 TO n DO BEGIN ali j ali j v i w j w i v j qli j qli j vlil z j END END de TransformationHouseholder2 Bien entendu on s en sert dans une variante appropri e PROCEDURE TridiagonalParHouseholder2 n integer VAR a q mat VAR r integer BEGIN q MatriceUnite FOR r 1 TO n 2 DO TransformationHouseholder2 n r a q END de TridiagonalParHouseholder2 Voici un exemple d utilisation de ces proc dures Donner l ordre n 5 Entrer la matrice partie inf rieure Ligne 1 4 Ligne 2 14 Ligne 3 2 1 10 Ligne 4 3 5 1 14 Ligne 5 4 1 7 6 14 Voici la matrice lue 4 000 1 000 2 000 3 000 4 000 1 000 4 000 1 000 5 000 1 000 2 000 1 000 10 000 1 000 7 000 3 000 5 000 1 000 14 000 6 000 1 4 000 000 7 000 6 000 14 000 Vecteur v 0 000 6 477 2 000 3 000 4 000 Vecteur w 1 000 1 503 0 Matrice A pour r 1 4 000 5 477 0 000 0 000 0 000 5 477 23 467 0 839 0 345 1 061 0 000 0 839 7 009 4 286 2 172 0 000 0 345 4 286 4 873 2 840 748 1 521 0 919 Version 15 janvier 2005 84 Chapitre 4 Matrices tridiagonales 0 000 1 061 2 172 2 840 6 652 Vecteur v 0 000 0 000 2 235 0 345 1 061 Vecteur w 0 000 1 000 0 565 2 065 0
252. R ciproquement supposons les conditions v rifi es et posons n n m m m 2 Sim gt n alors m n ou m n 1 1 est une partition de n en parts impaires selon que n est impair ou pair Les parts sont distinctes parce que n 2 On peut donc supposer m lt n On a alors n lt m 1 2 n 2 m 1 2 et on a galement m 2 n sauf si n 2m On peut donc conclure par r currence pour n 2m Si n 2m il existe une partition de m en parts impaires distinctes commen ant par un entier strictement plus petit que m savoir m 4 3 1 d o la partition m m 4 3 1 de n sauf si m 4 lt 3 c est dire pour m 3 5 7 Or ces cas ne peuvent pas se produire car pour m 3 5 on a n gt z et pour m 7 onan 2 7 Voici une proc dure qui teste une partie des conditions du lemme FUNCTION CompatiblePartsDistinctesImpaires n m integer boolean Partie de la condition d existence d une partition de n en parts distinctes impaires dont la plus grande part est m On suppose m lt n VAR c integer BEGIN c sqr 1 m DIV 2 CompatiblePartsDistinctesImpaires c gt n AND c lt gt n 2 END de CompatiblePartsDistinctesImpaires Elle est utilis e dans la proc dure suivante le calcul de la partition suivante lorsque l on sait qu elle existe doit tre men avec soin PROCEDURE PartitionSuivantePartsDistinctesImpaires
253. RE PartieSuivante VAR x suite n integer VAR derniere boolean VAR i integer BEGIN i n WHILE i gt 0 AND x i 1 DO BEGIN AND s quentiel x i 0 i i 1 END derniere i 0 IF NOT derniere THEN x i 1 END de PartieSuivante Finalement pour lister les parties on peut utiliser la proc dure que voici PROCEDURE ListerParties n integer VAR x Suite derniere boolean BEGIN PremierePartie x n REPEAT EcrireSuite x n PartieSuivante x n derniere UNTIL derniere END de ListerParties Version 15 janvier 2005 8 1 G n ration d objets combinatoires 205 Bien entendu EcrireSuite est une proc dure d affichage Pour n 3 on obtient BR kB h Hq OH RB R hR hR On reconna t l criture en binaire des nombres de 0 7 ce qui sugg re une autre proc dure qui calcule directement l criture binaire des entiers de 0 2 1 8 1 2 Sous ensembles k l ments Soient engendrer les parties k l ments d un ensemble E n l ments nouveau P identifi 1 n On utilise la m me repr sentation mais il appara t plus simple d employer une variante de l ordre lexicographique on pose x lt y s il existe tel que i lt Yi et zj y pour j i 1 n Ainsi les parties 3 l ments d un ensemble 5 l ments s crivent dans cet ordre comme suit OO J O O
254. Soit r Sy lail Si r lt 1 on pose c a dans le lemme et on a M 1 Sinon on pose c a r et comme r gt 1 ona M r ii Soit A ani la et posons nn ala t A dans le lemme Comme n 1 1 n 1 A JARA lt A 2 e a A EN i 0 i 0 les hypoth ses du lemme sont v rifi es et on obtient M 1 A iii Posons c 1 n dans le lemme Alors M x Ina 1 7 iv Posons c 277 dans le lemme On trouve JN 1 n i l a 2j Ci d o le r sultat m 7 1 3 Programme suites de Sturm Le calcul de la suite de Sturm d un polyn me p ne pose pas de probl me lorsque l on dispose des proc dures de base de manipulation des polyn mes consulter ce propos lannexe A Le r sultat tant une suite de polyn mes il convient d introduire un type appropri savoir TYPE SuitePol ARRAY 0 LongueurSuite OF pol La proc dure est alors PROCEDURE SuiteDeSturm p pol VAR sp SuitePol VAR m integer Calcule la suite de Sturm po Pm du polyn me p dans les l ments sp 0 spim Le polyn me p est suppos n avoir que des z ros simples VAR q r pol Version 15 janvier 2005 152 Chapitre 7 Polyn mes BEGIN m 0 sp 0 p PolynomeDerive p q WHILE NOT EstPolNul q DO BEGIN m m 1 spim q PolynomeModPolynome p q r PolynomeUppose r r P q q Fr END END de SuiteDeSturm Voici un exemple de calcul Voici le polyn me p X74 10 000 X
255. Un r el flottant peut donc tre d fini comme un tableau d entiers dont les indices vont de 1 N 1 Ecrire les proc dures suivantes comparaison de deux r els flottants addition et soustraction de deux r els flottants multiplication de deux r els flottants division d un r el flottant par un chiffre Le calcul d un z ro d une fonction f d rivable peut se faire par la m thode de Newton c est dire en calculant une suite n n gt 0 par Tn 1 Tn 2 D montrer que pour calculer 1 a on obtient le sch ma it ratif Tn 1 3n ax 2 D montrer que x tend vers 1 a lorsque xo 0 A Ecrire une proc dure qui calcule et affiche 1 V2 30 d cimales Version 15 janvier 2005 12 2 Arithm tique flottante 371 3 Le calcul de l inverse d un r el flottant a 0 peut se faire au moyen du sch ma it ratif En41 2Tn ax D terminer les valeurs de xo pour lesquelles x tend vers 1 a Ecrire une proc dure qui calcule l inverse d un r el flottant V rifiez vos proc dures en calculant l inverse du r el flottant de la question pr c dente et en multipliant ces deux r els flottants 4 Le calcul de la racine carr e d un r el flottant peut se faire au moyen du proc d it ratif 1 a Tn 1 Zn 2 Tn D montrer que n tend vers ya Comment convient il de choisir xo Ecrire une proc dure qui calcule la racine carr e d un r el flotta
256. Unite 2 TO n 1 DO FOR q p 1 TO n DO BEGIN CoefficientsGivensE p q c s a Postmultiplier n p q c S g TransformationGivens n p q C S a END END de TridiagonalParGivens2 Voici un exemple d ex cution de cette proc dure avec quelques impressions interm diaires Donner 1 Entrer la matrice partie inf rieure Ligne Ligne Ligne Ligne Ligne o amp NH Voici la 4 000 1 000 2 000 3 000 4 000 Matrice A 4 000 2 236 0 000 3 000 4 000 Matrice 4 000 3 742 0 000 0 000 4 000 Matrice A 4 000 5 477 0 000 ordre n 5 4 14 2 1 10 3 5 1 14 4 1 7 6 14 matrice lue 1 000 2 000 4 000 1 000 1 000 10 000 5 000 1 000 1 000 7 000 pour p 2 q 2 236 0 000 9 600 1 800 1 800 4 400 3 130 4 025 6 708 2 236 pour p 2 q 3 742 0 000 15 429 2 151 2 151 4 400 1 214 3 849 8 820 2 236 pour p 2 q 5 477 0 000 23 467 0 163 0 163 4 400 3 5 1 14 6 3 3 3 4 14 6 4 000 000 000 000 000 000 130 025 000 000 000 214 849 171 793 000 480 849 D NH p Oo ND OO D 000 000 000 000 14 000 000 708 236 000 14 000 000 820 236 793 000 000 301 099 Version 15 janvier 2005 78 0 000 0 480 3 849 8 171 0 000 1 301 3 099 2 111 Matrice pour p 3 q 4 4 000 5 477 0 000 0 000 5 477 23 467 0 507 0 000 0 000 0 507 10 127 1 901 0 000 0 000 1 901
257. V b V a Preuve Si la condition iv est v rifi e alors r_ 0 De plus la condition iv montre que r compte le nombre de z ros distincts de p dans l intervalle Nous consid rons maintenant l existence de suites de Sturm PROPOSITION 7 1 3 Soit p un polyn me coefficients r els et soient a et b deux nom bres r els tels que a lt b Consid rons la suite po pm de polyn mes d finie par po p p p o le polyn me p est le reste de la division euclidienne de p _2 par p _1 pour 2 lt i lt m et o m est le plus grand entier tel que pm 0 Alors pm divise chacun des pi et si p a p b 0 la suite Ji Pi Pm i 0 m est une suite de Sturm pour go sur a b v rifiant la condition iv Preuve V rifions les propri t s i iv ci dessus pour la suite g Notons que pm est le pgcd de p et de p au signe pr s donc en particulier go et g n ont pas de z ro commun Puisque p a p b 0 on a go a go b 0 ce qui prouve i La condition ii provient du fait que gm 1 Pour iii consid rons les divisions euclidiennes pi 1 X qi X pi X pi 1 X O lt i lt m Alors g 1 X q X gi X gi X pour 0 lt lt m Deux polyn mes g d indices cons cutifs n ont pas de z ro commun dans a b sinon de proche en proche pm aurait un Z ro dans a b Donc g _1 c gi 1 c lt 0 quand g c 0 Enfin si go c 0 alors g c 0 et on obtient iv gr ce au th
258. VAR q pol Calcule le polyn me q X p X c X VAR j K n integer s real BEGIN q PolynomeNul n Degre p FOR k 1 TO n DO BEGIN s 0 FOR j k TO n DO s s p j Binomial j k Puiss c j k qik 1 s END END de ChangementVariable Les calculs des coefficients binomiaux et des puissances se font au moyen de proc dures simples expliqu es dans l annexe A Le nombre que nous appelons cart se calcule simplement par FUNCTION Ecart p pol c real real VAR q pol BEGIN ChangementVariable p c q Ecart MinorationDesZeros q END de Ecart L algorithme de localisation des z ros op re par dichotomie On d termine d abord un intervalle ouvert dans lequel se trouvent tous les z ros r els du polyn me p Etant donn un intervalle ouvert contenant au moins un z ro on le coupe en deux au milieu puis on travaille s par ment sur chaque intervalle On d termine le nombre de z ros qu il contient Si ce nombre est nul on limine l intervalle s il est gal 1 on le range parmi les intervalles trouv s s il est plus grand que 1 on it re le proc d sur cet intervalle Il se peut que le milieu de l intervalle soit un z ro dans ce cas on continue non pas avec chacun des deux intervalles moiti mais avec les intervalles diminu s de l cart qui s pare n cessairement le z ro trouv d un autre z ro Le r sultat de l algorithme est u
259. Vecteur n VecteurParScalaire n MatriceRectParVecteur integer a b mat VAR m n p integer a b integer a mat x vec integer x vec a mat integer a b vec VAR integer x vec s rea ab mat mat VAR ab mat VAR ax vec VAR xa vec ab vec l VAR sx vec m n integer a mat x vec VAR ax vec Transposer n integer a mat VAR ta mat TransposerRect m n integer a mat VAR ta mat FUNCTION ProduitScalaire n integer VAR a b vec real FUNCTION Norme n integer VAR a vec real FUNCTION NormeInfinie n integer VAR a vec real PROCEDURE SystemeTriangulaireSuperieur n integer a mat b vec VAR x vec PROCEDURE SystemeParGauss n integer a mat b vec VAR x vec VAR inversible boolean PROCEDURE InverseParGauss n integer a mat VAR ia mat VAR inversible boolean PROCEDURE SystemeParJordan n integer a mat b vec VAR x vec VAR inversible boolean PROCEDURE InverseParJordan n integer a mat VAR ia mat VAR inversible boolean FUNCTION Determinant n integer a mat real B 3 Polyn mes CONST DegreMax DegrePolNul TYPE 20 pol ARRAY O DegreMax OF real VAR PolynomeUnite pol PolynomeNul pol Initialisation PROCEDURE InitPolynomes Version 15 janvier 2005 450 Annexe B Les biblioth ques Lecture criture PROCEDURE EntrerPolynome n integer VAR p pol titre texte
260. X p 1 En substituant 0 X on obtient 1 8 0 p 1 1 mod p et puisque p est impair 1 P 1 1 b Mis part 1 et p 1 les l ments de G sont distincts de leurs inverses puisque l quation x 1 ne poss de que 2 solutions dans Z pZ Dans le produit de tous les l ments de G on peut donc regrouper chaque l ment et son inverse il reste donc le produit 1 p 1 qui est congru 1 modulo p PROPOSITION 11 1 5 Pour tout nombre premier p tel que p 3 mod 4 il existe un unique entier naturel dp lt p 2 tel que d 1 mod p Preuve Si p 2 on peut prendre dp 1 et c est videmment la seule solution Sinon puisque p 3 mod 4 est pair et on a CRD PE PE an ET mod p Version 15 janvier 2005 11 1 Entiers de Gauss 329 D apr s le th or me de Wilson le nombre x v rifie z 1 mod p Soit s le reste de la division de x par p et soit dp min s p s On a dp lt p 2 par construction et d 3 z 1 mod p Pour prouver l unicit remarquons que l autre solution de l quation x 1 0 dans Z pZ est d p dp Comme p est impair on a d gt p 2 Les deux propositions qui suivent donnent des propri t s l mentaires des entiers de Gauss irr ductibles PROPOSITION 11 1 6 Si un entier naturel irr ductible p divise a ib alors p divise a et b Preuve Puisque p irr ductible p est videmment premier Si p divise z a ib alor
261. X3 Xi tels que ar ro rn 0 On dit qu un polyn me f K X1 Xn est sym trique si l on a PRO LS Xoln z F X Xn pour toute permutation g de l ensemble 1 n On appelle fonctions sym triques l mentaires de X1 X les polyn mes HN Xn 5 Xn Xo Xu 1 lt Ki lt i2 lt lt ik IN Version 15 janvier 2005 7 2 Polyn mes sym triques 161 o 1 lt k lt n En particulier S1 Xi X2 Xn S2 X X X2 X3 Xn 1Xn Sn X1X0 Xn Soit m aX X5 X un mon me non nul de K X1 X On appelle respec tivement degr et poids de m les entiers deg m r r2 rn et poids m r 2r2 nrn Le degr resp le poids d un polyn me non nul est gal au maximum des degr s resp poids de ses mon mes Par convention le degr et le poids du polyn me nul sont gaux a Oo0 Notre premier objectif est de d montrer le r sultat suivant TH OR ME 7 2 1 Pour tout polyn me sym trique f de l anneau K X1 Xn il existe un polyn me p de l anneau K X1 X et un seul tel que FX dos Xn pr si Xi s An PENA gt Sn X1 ER Xn De plus le poids de ps est gal au degr de f Preuve Commen ons par d montrer l unicit de pp Si ps et qf sont deux solutions du probl me leur diff rence u pr qf v rifie la formule u S1 Sn 0 Le r sultat d coule donc de l nonc suivant PROPOSITION 7 2 2 Les fonctions sym t
262. YUNA O OA ON NN AM MMAR LL LS LR LR LR LS LS LS LS LT LR LR RS SR TRS LS LL LORS LS LR LS LR MR LS LR LR LR LR LS LS LS LS PR AT RTS S Se D Se oS S te D ETER ADN RE ARE 1 be lt CE EE je RS ep A E PE je CRT ES LEE li S NI SEAS AN i ea eE oi n T rt LIRE HR i Tr LR ROBE CT EAN PRE T CRE E AT el TT E R SGUN a morty D ON ON ON 9 NO ON 9 ON 0 re 9 e A N 9 ON ON CN 9 ON OI 9 r nm AN M H Se Se Se TS e Se 7 DS e E a ta S TON O VON OR CO 0 ON ee ee gt EN MO EEE UNE NU OU NON a NIT ON OO D ON D NN D ON D ON EH D NN D NN OO DO ON H D N DO 1 md md ON ON ON ON ON 9 9 O 9 Y Y SE 10 10 10 10 19 OORKRR RO 00 00 00 00 0 Version 15 janvier 2005 340 Chapitre 11 Probl mes arithm tiques 92 i 1 i 23 93 3 31 94 i 1 i 47 95 i 1 2i 2 i 19 96 i 1 i 3 97 i 4 9i 9 4i 98 i 1 i 7 99 3 11 100 1 H 1 2i 2 i 11 2 Arithm tique modulaire 11 2 1 Enonc arithm tique modulaire Soient M1 M2 m des entiers positifs deux deux premiers entre eux et soit m Mimi m Le th or me des restes chinois tablit l isomorphisme entre Z mZ et Z m1Z x x Z
263. a D ln pn ma X pln a n 0 n 0 n 0 Par des m thodes en tout point similaires on peut obtenir les s ries g n ratrices de nombreuses familles de partitions Quelques exemples sont regroup s dans le tableau ci dessus o l indice de sommation p signifie une sommation sur les nombres premiers PROPOSITION 8 3 4 Le nombre de partitions de n en exactement m parts est gal au nombre de partitions de n dont la plus grande part est m Version 15 janvier 2005 8 3 Partitions d entiers 221 Cette proposition s illustre par les diagrammes de Ferrer Le diagramme de Ferrer d une partition a n1 n est l ensemble des points GJ I1 lt i lt s 1 lt j lt m Ce diagramme se pr te une repr sentation graphique Ainsi la partition 6 3 3 2 1 de 15 est repr sent e par le diagramme de Ferrer compos des cinq lignes Si on lit ce diagramme verticalement on obtient une autre partition de 15 appel e la partition conjugu e savoir 5 4 3 1 1 1 dont la plus grande part est 5 Cette observation conduit la preuve formelle Preuve Soit a n1 Nm une partition de n en m parts Posons mj Card i j lt ni Alors m gt 1 pour j 1 n1 La suite a m1 mA est une partition de n Car Mi Mn n De plus on a i lt mj si et seulement si j lt nj ce qui montre que l application a a est bijective La plus grande part de a est m m Nous prouvons maintenant le r sultat sui
264. a une permutation des lignes pr s Cette permutation est dans le vecteur p Si a n est pas inversible le bool en est mis faux mais une partie de a peut tre d truite VAR k q integer FUNCTION PivotMax k integer integer Cherche le pivot maximal entre k et n VAR i p integer BEGIN p K FOR i k 1 TO n DO IF abs a i k gt abs a p k THEN p i PivotMax p END de PivotMax PROCEDURE EchangerLignes i j integer VAR m integer BEGIN FOR m 1 TO n DO echanger ali m alj ml END de EchangerLignes PROCEDURE Decomposer k integer VAR i j integer somme real BEGIN FOR i 1 TO n DO BEGIN somme ali k FOR j 1 TO min i k 1 DO somme somme ali j alj k ali k somme END Version 15 janvier 2005 3 1 D composition LU END de Decomposer PROCEDURE Diviser k integer VAR i integer BEGIN FOR i k 1 TO n DO ali k a i k a k k END de Diviser BEGIN de DecompositionLU FOR k 1 TO n DO plk k k 1 inversible true WHILE k lt n AND inversible DO BEGIN Decomposer k q PivotMax k inversible NOT EstNul alq k l IF inversible THEN BEGIN IF q gt k THEN BEGIN EchangerLignes k q echangerE p q plkl END Diviser k END k k 1 END du while sur k END de DecompositionLU Voici un exemple de d composition Voici la matrice lue 4 000 2 000
265. a 1 a Degre a a pgcd a END de PolynomePgcd La variable de test si on lui a affect la valeur vrai provoque l impression interm diaire gt P q P Donner votre choix c p X X 5 3 0 X 4 3 0 X 3 X 2 Re Re gt 4 0 X 3 4 0 X 2 gt 0 pgcd X 3 X 2 Le calcul a pris 1 61666667 secondes Les proc dures TopChrono et TempsEcoule sont expliqu es dans la pr sentation de la biblioth que g n rale Elles d pendent du mat riel utilis Version 15 janvier 2005 Annexe B Les biblioth ques Dans cette annexe sont regroup es les d clarations de types et les en t tes de proc dures des principales biblioth ques B 1 G n ralit s CONST pi 3 1415926536 Pr d finie en Turbo Pascal TYPE texte string 80 VAR precision integer test boolean epsilon real Initialisation PROCEDURE InitGeneral Gestion du temps PROCEDURE TopChrono FUNCTION TempsEcoule real Fonctions arithm tiques sur des entiers FUNCTION min i j integer integer FUNCTION max i j integer integer PROCEDURE EchangerE VAR u v integer FUNCTION PuissanceE x integer n integer integer FUNCTION Binomial n k integer integer 448 Annexe B Les biblioth ques FUNCTION pgcd a b integer integer Fonctions arithm tiques sur des r els FUNCTION rmin x y real real FUNCTION rmax x y real real PROCEDURE Echanger VAR u v real
266. a D montrer que si z est irr ductible et divise z122 alors z divise z ou z divise 22 b D montrer que tout l ment z de K 0 admet une d composition unique de la forme z i JI x 2 zel avec c 2 0 1 2 3 c 2 N et o l ensemble des x I tels que c z 0 est fini c D montrer que 2 n est pas irr ductible 3 Soit p un nombre premier a D montrer que p 1 1 mod p b D montrer que si p 3 mod 4 il existe un unique entier naturel dp lt p 2 tel que 2 d 1 mod p 3 Version 15 janvier 2005 326 Chapitre 11 Probl mes arithm tiques c Ecrire une proc dure qui prend en argument un nombre premier p et qui calcule dp On pourra supposer p inf rieur 104 Exemple num rique calculer d7001 on admettra que 7001 est premier 4 a D montrer que si un entier naturel irr ductible p divise a ib alors p divise a et b b D montrer que si un l ment z irr ductible mais n appartenant pas N divise un entier naturel n alors z divise n 5 a D montrer qu un entier naturel p est irr ductible si et seulement si p est un nombre premier congru 3 modulo 4 b Soit z un l ment de P N D montrer que les conditions suivantes sont quivalentes i z est irr ductible i z est un nombre premier i z est un nombre premier non congru 3 modulo 4 c Ecrire une proc dure qui teste si un l ment z de P est irr ductible On po
267. a dimension de l alg bre de Lie engendr e par un ensemble fini de matrices E on calcule pour chaque entier k une base Bk de l espace vectoriel Ep d fini dans l nonc Pour obtenir Bo il suffit d extraire une base de E Pour passer de Bp Bk 1 on calcule l ensemble de tous les crochets de Lie des matrices de Bg puis on extrait une base de cet ensemble Lorsque les dimensions de B et de Bk 1 sont gales le calcul est termin PROCEDURE LesCrochetsDeLie VAR CardB integer n integer VAR B EnsembleDeMatrices VAR i j k integer BEGIN k CardB FOR i 1 TO CardB DO FOR j i 1 TO CardB DO BEGIN k k 1 On ajoute tous les crochets de Lie CrochetDeLie n B i B j B k END CardB k END de LesCrochetsDeLie PROCEDURE AlgebreDeLie CardE n integer E EnsembleDeMatrices Calcule la dimension de l alg bre de Lie engendr e par un ensemble E de CardE matrices d ordre n Version 15 janvier 2005 2 2 Matrices trigonalisables 49 VAR i CardB dimE integer B EnsembleDeMatrices BEGIN CardB dim CardE n E B REPEAT dimE CardB LesCrochetsDeLie CardB n B CardB dim CardB n B B UNTIL dimE CardB Si le rang n a pas augment on a l alg bre de Lie engendr e par E writeln Dimension de l alg bre de Lie comme espace vectoriel CardB 1 writeln Base de l alg bre de Lie comme espace vectoriel FOR i 1 TO CardB DO EcrireM
268. aire on pourra supposer p q lt 5 Exemples num riques tester si les matrices A et A2 ci dessus sont totalement unimodulaires Pour 1 lt j lt q on note C la j i me colonne de A Une partie K de 1 gq est dite quilibr e dans s il existe des sous ensembles disjoints K et K de K d union K et tels que les coefficients du vecteur colonne gt gt G kEKi KE K2 soient gaux 0 1 ou 1 On dit qu une matrice A est quilibr e si toute partie K de 1 q est quilibr e dans A 6 On se propose de d montrer que toute matrice quilibr e est totalement unimodu laire Soit une matrice quilibr e a D montrer que les coefficients de sont gaux 0 1 ou 1 b Soit k un entier tel que 1 lt k lt min p q 1 On suppose que les sous matrices carr es d ordre k de ont un d terminant gal 0 1 ou 1 Soit B bij jicr jeJ une sous matrice carr e d ordre k 1 de d terminant d non nul D montrer que la matrice B dB est coefficients 0 1 ou 1 c Soit b bi j jez la premi re colonne de B D montrer qu il existe un vecteur x xj jez coefficients 0 1 ou 1 tel que x bj mod 2 pour tout j et tel que Bx 1 0 0 En d duire que d 1 se k fois d D montrer que est totalement unimodulaire 7 Soient l1 1 des intervalles de R et soient x1 x des nombres r els distincts D montrer que la matrice d finie
269. amp A n est pas gale U R ciproquement si B b j U soient i j tels que b j 0 On a i j Soient alors J k S bk 1 et I S J Supposons qu il existe i I et j J tels que bi 1 donc qu il existe un chemin de 1 vers j comme il existe un chemin de j vers j il existe donc un chemin de i vers j donc i J ce qui est impossible Une matrice A est primitive s il existe un entier k gt 0 tel que A F U Bien entendu une matrice primitive est a fortiori irr ductible et la r ciproque n est pas vraie comme le montre la matrice 0 1 2o Plus g n ralement une matrice de permutation n est jamais primitive d s que n gt 1 puisque toute puissance n a qu un seul 1 par ligne En revanche une matrice de permutation est irr ductible si et seulement si la permutation est form e d un seul cycle Consid rons un autre exemple Une matrice est ap riodique si elle poss de un l ment cyclique de p riode d i 1 Notons que cela nwimplique pas l existence d un cycle de longueur 1 PROPOSITION 6 2 6 Une matrice irr ductible et ap riodique est primitive Preuve On montre d abord qu il existe un entier N tel que pour tout i l ensemble K i contienne tous les entiers sup rieurs ou gaux N Soit S de p riode 1 Nous montrons d abord que pour tout entier assez grand il existe un cycle de longueur de i Soit K i l ensem
270. ancs integer BEGIN IF Mode AligneAGauche THEN write NombreDeBlancs IF Mode Centre THEN write NombreDeBlancs NombreDeBlancs DIV 2 END de FinMiseEnPage PROCEDURE EcrireReel a real BEGIN CASE signe a OF 1 write a precision 2 precision 0 1 write a precision 2 precision END END de EcrireReel BEGIN de FormaterComplexe a Re z Version 15 janvier 2005 436 Annexe A Un environnement b Im z n 8 2 FormatDunComplexe LargeurComplexe a b DebutMiseEnPage Mode n IF EstNul a AND EstNul b THEN write 0 ELSE BEGIN EcrireReel a IF NOT EstNul a b THEN IF b gt 0 AND NOT EstNul b THEN write ELSE write IF NOT EstNul b THEN BEGIN IF EstNul b 1 THEN write i ELSE IF EstNul b 1 THEN write i ELSE BEGIN EcrireReel b write i END END END FinMiseEnPage Mode n END de FormaterComplexe Voici quelques exemples de sortie dans les trois modes 245 12 51 00 i 0 09 0 40 i 2 00 153 00 i 245 12 51 00 i 0 09 0 40 i 2 00 153 00 i 245 12 51 00 il 0 09 0 40 il 2 00 153 00 il 0 0 ol 1 00 1 00 1 001 244 12 244 12 244 12 1 00 1 00 1 00 245 12 245 12 245 12 i i il 2 00 i 2 00 i 2 00 il i i il 51 00 i 51 00 i 51 00 il 1 00 i 1 00 i 1 00 il 1 00 i 1 00 i 1 00
271. angle MA MB les coordonn es du point B dans le rep re orthonorm direct O O OC sont alors cos 2a et sin 2a les relations trigonom triques 1 tan a 2tan a 1 cos 2a cos 2a sin2a gt et tana 3 7 1 tan a 1 tan a sin 2q montrent clairement que tan a est rationnel si et seulement si cos2a et sin2a sont rationnels en d autres termes si et seulement si les coordonn es de B dans le rep re O O OC sont rationnelles Soit maintenant A1 Ay _1 une suite de k 1 points coordonn es rationnelles du cercle C et M un point de C soit Ap l image de A par la rotation de centre O et d angle 7r 2 En vertu de ce qui pr c de les nombres A A tan WA M Ai 1 pour 1 k 1 sont rationnels La relation suivante obtenue par application de la relation de Chasles M A1 M A2 M A2 M A3 MAk 1 MAp MA MAp conduit alors la relation A142 D A4x 1A44 1 Version 15 janvier 2005 12 3 Calcul de m par arctangente 389 En pratique il est pr f rable de travailler avec des points coordonn es enti res sur un cercle qui n est alors plus de rayon unit d autre part il est bon d observer que si A x y et B x y sont deux points du cercle alors r r AB y y Par exemple le cercle de rayon 5 contient les points A1 5 0 A2 4 3 A3 3 4 et A4 0 5 un simple calcul donne AA AA 1 3 et AzA 1 7 d o la
272. anvier 2005 24 Chapitre 2 Manipulation de matrices 1 1 1 1 2 4 Exemple num rique A 1 3 9 1 4 16 1 5 25 6 Soit E Mm n de rang r et supposons que se mette sous la forme U UK o U Mm est de rang r et K E Mr nr a D montrer que WU9 ge Fe es o W I K K 1 b Ecrire une proc dure qui prend en argument une matrice U Mm r de rang r et une matrice K Myn r et qui calcule la pseudo inverse de la matrice U UK 1 2 EE E S EO 001 Exemple num rique U 0 0 K l 0 D 7 Ecrire une proc dure qui prend en argument une matrice Mm n et qui calcule sa pseudo inverse Exemple num rique 8 Prouver qu une matrice poss de une pseudo inverse Soient m n gt 1 avec m gt n On consid re une matrice Mn A et un vecteur colonne b R Le probl me des moindres carr s est la d termination d un vecteur x R tel que Ax b min Ay b a Ay b o d signe la norme euclidienne 9 D montrer que x est solution de si et seulement si tAAx Ab En d duire que Ab est solution de D montrer que si A est de rang n alors a une solution unique 2 1 2 Solution pseudo inverses On appelle pseudo inverse ou galement inverse g n ralis e ou inverse de Penrose Moore d une matrice Mm n toute matrice G E Mym v rifiant AGA A GAG G AG AG XGA GA 1 1 Version 15 janvier 2005 2
273. artitionsDistinctesImpaires Pour terminer consid rons le calcul du nombre de partitions de n On utilise pour cela les formules p k 1 1 lt k lt n et Pm 1 k sik gt n Pmi pm i k pm k m sik gt m gt 1 et on value pm k pour 1 lt m lt net m lt k lt n Le r sultat s obtient parce que p n Pn n Voici une impl mentation avec un seul tableau d doubl contenant pour chaque m 1 n les nombres pm k pour 1 lt k lt n PROCEDURE NombreDePartitions n integer VAR alpha beta integer Calcul du nombre p n de partitions par la formule p n pn n R sultat sous la forme p n a104 8 CONST nmax 100 Pour les p k avec k lt Nmax base 10000 Base pour l criture des entiers Version 15 janvier 2005 234 Chapitre 8 Exemples combinatoires VAR a b ARRAY O nmax OF integer k m s integer BEGIN FOR k 0 TO n DO BEGIN Initialisation p k p k 1 a k 0 blk 1 END FOR m 2 TO n DO Calcul des pn k par la formule FOR k m TO n DO BEGIN Pm k Pm 1 k Pm k m s b k b k m b k s MOD base D composition sur la base a k ak a k ml s DIV base END alpha a n beta b n END de NombreDePartitions Quelques r sultats num riques p 30 5604 p 60 966467 p 90 56634173 p 100 190569292 Notes bibliographiques Pour la g n ration d objets combinatoires on peut consulter D Stanton
274. as le mot u ne doit pas tre ajout une deuxi me fois la liste Sinon u est ins r sa place en d calant tous les l ments qui lui sont plus grands Voici comment cet algorithme d insertion s crit PROCEDURE InsererMot VAR u mot VAR c SuiteMot VAR m integer Insertion d un mot u dans une suite tri e c VAR j Kk integer BEGIN k 1 WHILE k lt m AND EstInferieurMot c k u DO AND s quentiel k k 1 On avance tant que ck lt u IF k m 1 THEN BEGIN Si la fin de c est atteinte m m 1 on ins re u la fin cim u END si Ck u on ne fait rien ELSE IF EstInferieurMot u c k THEN BEGIN FOR j m DOWNTO k DO sinon on d cale la fin de c c j 1 c j c k u puis on ins re u m m 1 END END de InsererMot En utilisant ces proc dures on obtient les r sultats num riques suivants Version 15 janvier 2005 9 3 Mots de Lyndon Mots de Lyndon n 1 1111 2 H 2 1 2 il re 01 3 1 3 001 011 4 1 4 0001 0011 0111 5 1 5 00001 00011 00101 00111 01011 01111 6 1 6 000001 000011 000101 000111 001011 001101 001111 010111 011111 il N il w Il OQ il Ko 255 Le calcul d une factorisation de Lyndon par l algorithme expos dans la section pr c dente se r alise tr s simplement La proc dure est PROCEDURE FactorisationLyndon u mot VAR f Suitemot VAR m integer VAR n
275. atrice A M d finit un graphe Sur l ensemble M on d finit une addition not e amp et une multiplication not e amp comme suit soient B C D M Alors C cij A B est d finie par aj si a j biz 0 27 3 1 sinon et D dij A B est d finie par de si Qi kbk j 0 pour tout k S i 1 sinon On peut consid rer les matrices de M coefficients bool ens l addition est alors le ou bool en et la multiplication le et les formules ci dessus reviennent tendre ces op rations aux matrices Il r sulte imm diatement de la d finition que l addition est idempotente A que la matrice identit est neutre pour la multiplication et que la multiplication est distributive par rapport l addition L ensemble M muni de ces deux op rations est un semi anneau On d finit la puissance ASF par AS J I est la matrice unit et AS 1 A amp AS pour k gt 0 On note a l l ment d indice i j de ASF L idempotence de l addition entra ne que oA F 10AG4 o A 2 1 LEMME 6 2 1 Soient i j dans S il existe un chemin de vers j de longueur k si et seulement si a 1 Version 15 janvier 2005 6 2 Matrices irr ductibles 133 k Preuve Le lemme est vident pour k 0 Soit k gt 1 Alors a 1 si et seulement s il tj existe l S tel que ant a j 1 donc par r currence si et seulement s il existe un un chemin de de longu
276. atrice A en un vecteur v de dimension n puis on calcule le rang de la matrice rectangulaire V de taille k x n form e par les v On extrait simultan ment de V une famille maximale de lignes lin airement ind pendantes qui fournit donc une base de E La premi re op ration est r alis e par la proc dure suivante Version 15 janvier 2005 46 Chapitre 2 Manipulation de matrices PROCEDURE Linearise n integer A matC VAR vA vecC Transforme une matrice carr e d ordre n en un vecteur n composantes VAR i j integer BEGIN FOR i O TO n 1 DO FOR j 1 TO n DO vAli n j Ali 1 j END de Linearise Pour le calcul du rang et d un syst me maximal de lignes ind pendantes le principe est assez simple On examine les lignes de la matrice dans leur ordre naturel Si la ligne k est nulle on lui substitue la derni re ligne courante et on diminue le nombre de lignes d une unit Sinon on utilise la m thode du pivot on s lectionne le premier l ment ar non nul de la ligne k On permute ventuellement les colonnes k et q si q gt k puis on pivote On fait donc subir la matrice un certain nombre de permutations des lignes et des colonnes et des op rations de pivot sur les lignes Comme on veut galement obtenir un ensemble maximal de lignes ind pendantes on m morise les permutations des lignes En revanche il est inutile de m moriser les permutations des colonnes et les op rations de
277. atrice nulle VAR i j integer BEGIN InitComplexes FOR i 1 TO OrdreMax DO D finition de la matrice nulle FOR j 1 TO OrdreMax DO MatriceNulleli j ComplexeZero MatriceUnite MatriceNulle D finition de la matrice unit FOR i 1 TO OrdreMax DO MatriceUniteli i ComplexeUn END de InitMatricesC PROCEDURE EntrerMatriceC n integer VAR a matC titre texte Affichage du titre puis lecture de la matrice a carr e d ordre n VAR i j integer BEGIN writeln writeln titre FOR i 1 TO n DO BEGIN write Ligne i 1 FOR j 1 TO n DO EntrerComplexe ali jl gt END readln END de EntrerMatriceC PROCEDURE EntrerMatriceCHermitienne n integer VAR a matC Version 15 janvier 2005 42 Chapitre 2 Manipulation de matrices titre texte Affichage du titre puis lecture de la partie triangulaire inf rieure de la matrice hermi tienne a d ordre n La partie sup rieure de a est compl t e la lecture VAR i j integer r real BEGIN writeln writeln titre FOR i 1 TO n DO BEGIN write Ligne i 1 FOR j 1 TO i 1 DO BEGIN write Coef i 2 j 2 EntrerComplexe ali jl gt Conjugue a i j alj il END write Coef i 2 i 2 reel read r ReelEnComplexe ali il r END readln END de EntrerMatriceCHermitienne PROCEDURE EcrireMatriceC n integer a matC tit
278. atrice primitive A d ordre n gt 1 on a y A lt n 2n 2 Preuve Pour i S on pose h min keN a 1 pour tout j S h ij Comme A est irr ductible on a a qy A max h1 hn Soit s la longueur du plus court cycle de A Nous allons montrer que y A lt n s n 2 Pour cela montrons d abord que pour tout i S il existe un entier p lt n s tel que pour tout j il y a un chemin de vers j de longueur exactement p s n 1 Dans A il existe un chemin de longueur au plus n s de un des l ments du cycle minimal En effet tout chemin sans l ment r p t partant de et de longueur n s contient n s 1 l ments Il ne peut donc viter les s l ments du cycle Notons p la longueur de ce chemin 1 pour tout j S et tout h gt h Par cons quent Dans A5 les l ments du cycle ont des boucles i e des cycles de longueur 1 Comme A est encore irr ductible il existe dans A un chemin de chacun des l ments du cycle tout l ment j S et comme chacun des l ments du cycle comporte une boucle il existe un chemin de longueur n 1 exactement de chacun des l ments du cycle chaque l ment de S Revenons A Il existe donc un chemin de longueur s n 1 de chaque l ment du cycle minimal chaque l ment de S Ceci prouve l existence pour tout j d un chemin de longueur exactement p s n 1 de vers j Par cons quent hi
279. atriceC n Bi gt END de AlgebreDeLie Pour terminer voici quelques exemples d ex cution Voici A1 0 2 0 1 0 0 2 0 rang A_1 3 Voici A2 2 0 i 0 2 0 ti 1 0 i 1 0 0 rang A_2 3 Voici A3 1 0 1 0 AO SE 0 1 0 af 0 1 0 i rang A_3 3 Voici A142 1 0 2 0 i 0 2 0 2 0 i u 1 0 1 0 i LOFT 0 1 0 2 0 i rang A142 3 Voici A1 A2 0 0 0 0 0 0 0 0 0 rang A1 A21 0 Voici A1 A3 RQ EL 0 2 0 i Version 15 janvier 2005 50 Chapitre 2 Manipulation de matrices rang A_1A 3 1 Dimension de l espace engendr par E 3 Dimension de l alg bre de Lie comme espace vectoriel 4 Base de l alg bre de Lie comme espace vectoriel 0 2 0 0 1 0 0 2 i 2 0 i 0 2 0 i a 1 0 re CRE 1 0 0 1 0 0 i 1 0 i 0 Omi 1 0 0 1 0 1 0 i 1 0 i 0 2 0 i 0 1 0 1 0 0 1 0 Notes bibliographiques Les pseudo inverses sont fr quemment d finies pour les matrices complexes la trans pos e tant remplac e par l adjointe Parmi les monographies consacr es aux pseudo inverses citons R M Pringle A A Rayner Generalized Inverse Matrices London Griffin 1971 Une pr sentation br ve est donn e par J Stoer Numerische Mathematik 1 Berlin Springer Verlag 1989 Version 15 janvier 2005 51 Chapitre 3 D compositions Une d composition d une matrice carr e A est un couple B C de deux matrices
280. aucun point de S ce qui prouve que pqr est un et unique triangle de Delaunay inclus dans H dont p q est un c t En permutant les r les de H et H2 on obtient l existence d un unique triangle de Delaunay inclus dans H dont p q est un c t Nous montrons maintenant que les int rieurs de deux triangles de Delaunay sont dis joints Un triangle tant inclus dans son cercle circonscrit il est clair qu un triangle de Delaunay ne peut en contenir un autre Il suffit donc de d montrer que deux ar tes de Delaunay ne peuvent tre s cantes Raisonnons par contradiction Soient p q et r s deux ar tes de Delaunay s cantes Il existe un cercle passant par p q et ne contenant ni r ni s soit a un point de ce cercle distinct de p et q les points r et s tant de part et d autre de la droite pq on a une permutation pr s de r et s pag gt prq et T paq gt psq d o prq psq lt T En permutant les r les de p q et r s on obtient l in galit rps rqs lt m qui ajout e la pr c dente donne prq psq Tps rqs lt 2m Or ceci est impossible car la somme des angles d un quadrilat re convexe vaut 27 Nous terminons la d monstration du th or me en montrant que la r union des trian gles de Delaunay est exactement l enveloppe convexe de S Soit x un point int rieur l enveloppe convexe de Set soit a l ar te de Delaunay la plus proche de x dans une di rection donn e Le triangle de Delaun
281. ay de c t a inclus dans le demi plan de fronti re la droite pq contenant x contient x La d monstration pr c dente est constructive et sugg re de calculer la triangulation de Delaunay par ordre d adjacence de ses triangles Le triangle adjacent d un c t donn une ar te de Delaunay est obtenu en cherchant le point de qui voit cette ar te sous un angle maximal Cette proc dure de calcul n est pas sans rappeler celle que nous avons d crite pour calculer l enveloppe convexe d un ensemble fini de points Cette apparente Version 15 janvier 2005 10 3 Triangulation de Delaunay 299 similarit n est pas fortuite et s explique ais ment via la transformation g om trique que nous explicitons maintenant Consid rons le plan E comme le plan O 7 7 d un espace euclidien F O 7 7 k de dimension trois A tout point p de coordonn es x y du plan E on associe le point de coordonn es x y y not p du parabolo de d quation z x y On appelle enveloppe convexe inf rieure d une partie X de F l ensemble E X RHE Figure 10 3 5 Le parabolo de z x y2 TH OR ME 10 3 4 Soit S un ensemble fini de points de E Alors pqr est un triangle de Delaunay de S si et seulement si p q r est une face de l enveloppe convexe inf rieure de S Preuve En effet soit C un cercle passant par les points a b c et d quation y ax By y 0 et soit D son
282. b et Ai A a1 b1 1 Les deux premi res quations se d duisent l une de l autre sous l hypoth se de validit de la quatri me quation en remarquant que le produit de leurs membres gauches gale ab en effet A c cos 1 a c cos 1 b sin pi b ab Version 15 janvier 2005 12 4 La formule de Brent Salamin 399 D autre part la quatri me quation se d duit de la troisi me comme le montre le calcul suivant a cos 2 1 a a sin 2 1 a c sin p1 A et le fait que cos 29 1 gt 0 car 29 1 appartient 0 7 2 Il suffit donc de d montrer par exemple la deuxi me et la troisi me quation Pour cela nous observons que leurs membres gauches sont respectivement la partie r elle et la partie imaginaire du nombre complexe a e29 1 c er 91 Or ce nombre complexe co ncide avec A en effet a eh Lo etti eil 1 a et c e 6881 a1 c1 coso ilai c1 sin o 8 41 acos ibsin p etl 91 eith1 6 A ce qui termine la preuve de la premi re partie de la proposition Pour d montrer la seconde partie nous diff rentions la troisi me quation de OE il vient apr s regroupement des termes en d et do 2a cos 2 d c cos a cos 2 1 db qui s crit encore toujours en utilisant EJ 2A d A d ce qui termine la preuve de la proposition Preuve du
283. b Ecrire une proc dure qui prend pour argument un polyn me sym trique f X1 X2 et qui calcule le polyn me ps donn par la formule Version 15 janvier 2005 160 Chapitre 7 Polyn mes Exemple num rique Calculer ps lorsque f X X2 6 On pose op X1 Xn n et pour k gt 0 og X1 Xn XF XE a D montrer que les polyn mes p v rifient les relations suivantes Ok S10k 1 820k 9 1 F 154 _101 1 Fksp 0 pour 0 lt k lt n Ok S10k 1 H 1 Snok n 0 pour0 lt n lt k b D montrer que Trara T Ok gt Qrarassrn S1 82 Sn rx r1 272 nTn k LE re tiii En t tra D 1 72 trat traine ral ce fa Qri r2 rn c Ecrire une proc dure qui prend en argument des entiers k et n et qui calcule le polyn me po l aide de la formule xxx Application num rique n 3 k 10 7 D montrer que si 2n nombres entiers 1 Zn Y1 Yn V rifient 5 r 5 y pour 1 lt k lt n 1 lt i lt n 1 lt i lt n alors il existe une permutation p de 1 n telle que zp yi pour 1 lt k lt n 7 2 2 Solution polyn mes sym triques Soient X1 X2 Xn des ind termin es sur un anneau commutatif unitaire K Un polyn me f K X1 Xn peut s crire de fa on unique sous la forme f bp Grisrasrn X1 Xa e r1 72 7n E KT o les ar r2 rn Sont des l ments de K presque tous nuls Les mon mes de f sont les MON MES Aya r2 rn X1
284. ble boolean Calcule la matrice inverse ia de a par la m thode de Gauss si l inverse existe PROCEDURE SystemeParJordan n integer a mat b vec VAR x vec VAR inversible boolean Solution d un syst me d quations par la m thode de Jordan Version 15 janvier 2005 6 Chapitre 1 Calcul matriciel PROCEDURE InverseParJordan n integer a mat VAR ia mat VAR inversible boolean Calcule la matrice inverse ia de a par la m thode de Jordan si l inverse existe FUNCTION Determinant n integer a mat real Calcule le d terminant par la m thode de Gauss Nous donnons maintenant la r alisation de certaines proc dures PROCEDURE InitMatrices D finition de la matrice unit et de la matrice nulle VAR i j integer BEGIN FOR i 1 TO OrdreMax DO D finition de la matrice nulle FOR j 1 TO OrdreMax DO MatriceNulleli j 0 MatriceUnite MatriceNulle D finition de la matrice unit FOR i 1 TO OrdreMax DO MatriceUniteli i 1 END de InitMatrices PROCEDURE EntrerMatrice n integer VAR a mat titre texte Affichage du titre puis lecture de la matrice a carr e d ordre n VAR i j integer BEGIN writeln writeln titre FOR i 1 TO n DO BEGIN write Ligne i 1 FOR j 1 TO n DO read ali jl END readln END de EntrerMatrice Voici une variante de la proc dure pr c dente PROCEDURE EntrerMatriceSymetrique n integer VAR a mat titre
285. ble des longueurs des cycles de i La p riode d i est le pgcd d un nombre fini d l ments de K i Par l identit de Bezout il existe k1 k K i et 1 Z tels que 5 Xrkr t 1 Posons a X k b Y Akr X gt 0 lt 0 Alors a b 1 On pose N b Tout entier m gt N s crit par division euclidienne par b sous la forme m ub v avec 0 lt v lt b et b lt u d o m ua v ub v a b u v b va Or a b K i donc m K i Ainsi K i contient tous les entiers sup rieurs ou gaux N Soient maintenant p q dans S Soit N la longueur d un chemin de p vers i et soit M q la longueur d un chemin de vers q Ces chemins existent parce que est irr ductible Il existe donc un chemin de p vers q de longueur L p q N p N M q et en fait de Version 15 janvier 2005 6 2 Matrices irr ductibles 135 toute longueur sup rieure ou gale L p q Posons L max L p q Alors pour tout p q il existe un chemin de p vers q de longueur L donc A U Si A est primitive le plus petit entier k tel que A F U est not A Nous allons tudier ce nombre Consid rons d abord un cas simple PROPOSITION 6 2 7 Si est primitive et sym trique alors y A lt 2 n 1 Preuve Si est sym trique alors B AS a ses coefficients diagonaux non nuls donc B 1 B et comme B est irr ductible B8 7 U TH OR ME 6 2 8 Pour toute m
286. ce unit Les matrices Qk tant unitaires la suite Qz est born e parce que Qz 2 1 On peut donc en extraire une suite Qx qui converge vers une matrice Q galement unitaire Comme Ry Oy I RFyR 1 la suite Rx converge galement vers une matrice triangulaire sup rieure et telle que R gt 0 pour 1 lt i lt n En passant la limite sur la suite extraite on a I QR Ceci impose Ris gt 0 pour 1 lt i lt n et l unicit de la factorisation QR montre que Q R I Le m me raisonnement vaut pour toute suite extraite L unicit des limites montre que les suites de d part convergent et que lim Qx 1 lim Rx I k 00 k co Version 15 janvier 2005 98 Chapitre 5 Valeurs et vecteurs propres En conclusion on a nu A QOx RxRA U Q Ry et comme la matrice QQk est unitaire et R RAFU est triangulaire sup rieure nous voici en pr sence de deux d compositions QR de A Il suffit de d terminer une matrice diagonale D4 dont les l ments diagonaux valent 1 et telle que DR RAFU ait ses l ments diagonaux positifs pour pouvoir conclure l galit des deux factorisations On a donc Qr QQk Dr Revenons aux matrices A4 Comme A QRAR 1Q on a Ari QkAQk Dk Bk Dp avec Bk O RAR et comme liMk oo Qk on en conclut que Jim Bp RAR De plus cette matrice est triangulaire sup rieure et a sur sa diagonale les valeurs propres X dans cet ordre Maintena
287. ceC n integer x vecC a matC VAR xa vecC PROCEDURE VecteurCPlusVecteurC n integer a b vecC VAR ab vecC PROCEDURE VecteurCMoinsVecteurC n integer a b vecC VAR ab vecC PROCEDURE VecteurCParScalaire n integer x vecC s real VAR sx vecC PROCEDURE TransposerC n integer a matC VAR ta matC PROCEDURE TransposerCRect m n integer a matC VAR ta matC Version 15 janvier 2005 2 2 Matrices trigonalisables 41 PROCEDURE Adjointe n integer a matC VAR aEtoile matC La matrice aEtoile contient la matrice adjointe de la matrice a d ordre n FUNCTION NormeC n integer VAR a vecC real FUNCTION NormeCInfinie n integer VAR a vecC real PROCEDURE SystemeCTriangulaireSuperieur n integer a matC b vecC VAR x vecC PROCEDURE SystemeCParGauss n integer a matC b vecC VAR x vecC VAR inversible boolean PROCEDURE InverseCParGauss n integer a matC VAR Inva matC VAR inversible boolean PROCEDURE SystemeCParJordan n integer a matC b vecC VAR x vecC VAR inversible boolean PROCEDURE InverseCParJordan n integer a matC VAR Inva matC VAR inversible boolean Voici maintenant le d tail de quelques unes de ces proc dures Elles ne diff rent que fort quelq P q peu des proc dures utilis es pour les matrices r elles c est pourquoi nous n en pr sentons qu un chantillon PROCEDURE InitMatricesC D finition de la matrice unit et de la m
288. ci dessus est finie Par suite l un des Hy a la m me dimension que F N G un convexe de dimension k ne peut tre r union finie de convexes de dimension strictement inf rieure mais en vertu de l assertion iii du th or me tout point de F N G est un point de H donc F N G Hz La d monstration de la seconde proposition utilise le m me argument Soit C Fr R N P et pour x C soit H la face de dimension maximale contenant x dans son int rieur relatif de P C R on d duit que H C C et C U H la d monstration se compl te alors comme pr c demment Deux faces sont dites incidentes si l une est incluse dans l autre et si leurs dimensions diff rent d une unit Deux k 1 faces sont dites adjacentes si leur intersection est une k face PROPOSITION 10 1 5 Une d 2 face est incidente exactement deux d 1 faces de P Preuve Si une d 2 face est incidente aux d 1 faces d finies par trois hyperplans Hi Hi et Hi alors ces hyperplans ont pour intersection commune un espace affine de dimension d 2 soit o un point de l int rieur du poly dre et soient les vecteurs j pour j 1 2 3 tels que Ri xeE o lt 1 De Hi N Hi Hi N Hi on d duit l existence de deux r els a 5 de somme 1 tels que U1 a B z quitte permuter les hyperplans on peut supposer que ces deux r els sont positifs en effet si 8 est n gatif alors d2 1 Luis avec 1 a et fB a positif
289. comme quotients d entiers premiers entre eux le d nominateur tant positif 3 Ecrire des proc dures d addition soustraction multiplication division de rationnels ainsi repr sent s Ecrire une proc dure qui calcule et imprime les nombres de Bernoulli et les coefficients des polyn mes de Bernoulli pour n lt 12 4 D montrer que B 1 x nz B x et en d duire que pour n gt 1 5 En Bn 1 0 1 Bry1 J n 1 5 Ecrire une proc dure qui affiche un formulaire pour les sommes des puissances n i mes d entiers pour 2 lt n lt 6 8 2 2 Solution nombres de Bernoulli Les polyn mes de Bernoulli Bn x sont d finis par leur s rie g n ratrice tett 4r D BG ER teC t lt 2x n 0 Version 15 janvier 2005 212 Chapitre 8 Exemples combinatoires et les nombres de Bernoulli sont par d finition les nombres B B 0 pour n gt 0 Bien entendu CO 4r X B t lt 27 n n 0 Voici les premi res propri t s des nombres de Bernoulli PROPOSITION 8 2 1 Ona HN o B m23 2 1 k 0 Bo 1 B 1 2 Preuve On a e 1 Sai gt B as a n 0 k 0 Par identification on obtient Bo 1 0 2B Bo et les relations B 1 Par ailleurs la fonction t et 1 Bo Bit est paire ce qui prouve PROPOSITION 8 2 2 On a pour n gt 0 S a Byx 2 3 k 0 Bal x 1 Bh x et pour n gt 1 B x nB 12 Ba 1 Ba x
290. complexe real PROCEDURE FixerRe VAR z complexe r real PROCEDURE FixerIm VAR z complexe r real PROCEDURE ReelEnComplexe VAR z complexe r real PROCEDURE CartesienEnComplexe a b real VAR z complexe PROCEDURE PolaireEnComplexe rho theta real VAR z complexe Voici une impl mentation Version 15 janvier 2005 A 3 Biblioth ques 431 FUNCTION Re z complexe real Donne R 2 BEGIN Re z 0 END de Re FUNCTION Im z complexe real Donne 2 BEGIN Im z 1 END de Im FUNCTION ModuleAuCarre z complexe real Donne z BEGIN ModuleAuCarre Sqr Re z Sqr Im z END de ModuleAuCarre FUNCTION Module z complexe real Donne z BEGIN Module Sqrt ModuleAuCarre z END de Module FUNCTION Arg z complexe real Donne l argument de z VAR a b x real VAR a b x real BEGIN a Re z b Im z IF a lt gt 0 THEN Arg ArcTan b a ELSE IF b gt O THEN Arg Pi 2 ELSE IF b lt O THEN Arg Pi 2 ELSE Arg 0 END PROCEDURE FixerRe VAR z complexe r real R z r BEGIN z O r END de FixerRe PROCEDURE FixerIm VAR z complexe r real S z r BEGIN z 1 7r END de Fixerlm PROCEDURE ReelEnComplexe VAR z complexe r real ZENT BEGIN z 0 r z 1 0 END de ReelEnComplexe PROCEDURE CartesienEnComplexe a b real VAR z complexe z a ib Version 15 janvier 2005 432 Annexe A
291. cteur entier a d ordre n VAR i BEGIN writeln writeln titre FOR i 1 TO n DO integer texte texte Version 15 janvier 2005 8 Chapitre 1 Calcul matriciel write ali precision writeln END de EcrireVecteurE A titre d exemple de proc dures simples de manipulation de matrices donnons le produit de deux matrices rectangulaires et la transpos e d une matrice carr e PROCEDURE MatriceParMatriceRect m n p integer a b mat VAR ab mat Produit de la matrice a d ordre m n par la matrice b d ordre n p R sultat dans la matrice ab d ordre m p VAR i j k integer somme real BEGIN FOR i 1 TO m DO FOR j 1 TO p DO BEGIN somme 0 FOR k 1 TO n DO somme somme ali k b k j abli j somme END END de MatriceParMatriceR PROCEDURE Transposer n integer a mat VAR ta mat La matrice ta contient la transpos e de la matrice a d ordre n VAR i j integer BEGIN FOR i 1 TO n DO FOR j 1 TO n DO tali j a j i END de Transposer Enfin les proc dures de calcul du produit scalaire et des deux normes FUNCTION ProduitScalaire n integer VAR a b vec real VAR i integer somme real BEGIN somme 0 FOR i 1 TO n DO somme somme a i blil ProduitScalaire somme END de ProduitScalaire FUNCTION Norme n integer VAR a vec real BEGIN norme sqgrt ProduitScalaire n a a END
292. d FOR k d DOWNTO 1 DO u k 0 END de DecalerMantisseDroite Version 15 janvier 2005 12 2 Arithm tique flottante 375 PROCEDURE DecalerMantisseGauche d integer VAR u Flottant D cale vers la gauche u1 un ua 1 un 0 0 VAR k integer BEGIN FOR k 1 TO TailleMax d DO u k ul k d FOR k TailleMax d 1 TO TailleMax DO ulk 0 END de DecalerMantisseGauche Moyennant ces proc dures on peut crire l addition de deux flottants positifs Notons et c est l encore une cons quence de la limitation de la taille des flottants que l addition n a pas d effet si les exposants sont trop diff rents l un de l autre PROCEDURE PositifPlusPositif u v Flottant VAR w Flottant w u v on suppose u et v de m me signe VAR delta integer BEGIN delta Exposant u Exposant v IF delta gt TailleMax THEN Pas de calcul W u ELSE IF delta lt TailleMax THEN Pas de calcul W v ELSE IF delta gt 0 THEN PositifEtPositif delta u v w Une m me proc dure pour les ELSE deux cas le premier argument PositifEtPositif delta v u w est toujours plus grand END de PositifPlusPositif Pour conomiser de l criture on utilise une m me proc dure PROCEDURE PositifEtPositif delta integer VAR u v w Flottant w u v on suppose u gt v et est la diff rence des exposants de u et v VAR k integer retenue chiffre
293. d U d contenant respectivement d et d On a alors la relation d additivit d d d i A 1 6 Version 15 janvier 2005 10 1 Poly dres et enveloppes convexes 283 Soient F et F deux d 1 faces adjacentes d un poly dre P de dimension d et soit A leur intersection Les hyperplans de F et F d terminent deux vecteurs unitaires t y bien d finis par la condition que soit orthogonal F et du m me c t de F que F gt et de m me pour v Par d finition l angle di dre de P en A est l angle v Figure 10 1 3 Angle di dre de deux faces PROPOSITION 10 1 9 Soient F et F deux d 1 faces adjacentes d un poly dre convexe P de dimension d et soit A leur intersection Soit x un point de P F et F E F U x le c ne de sommet x et de base F Alors langle di dre de P en A est inf rieur langle di dre de F en A Preuve Soit F la face de F adjacente F en A et soit w le vecteur unitaire orthogonal F et du m me c t de F que F Le vecteur v se situe entre U et w d o le r sultat E D apr s cette proposition le calcul d une face adjacente une face donn e F en la d 2 face peut se faire en cherchant le point x S qui minimise l angle di dre du c ne Fy en La complexit en nombre d angles di dres calcul s est alors dans O nh o h est le nombre de d 1 faces de S Le nombre de d 1 faces tant dans O nld 2
294. d 1 les k faces de P sont les facettes d une k 1 face de P o au d part de la r currence les d 1 faces sont les facettes de P Les k faces sont des poly dres convexes de dimension k en particulier les 0 faces sont appel es les sommets de P et les 1 faces sont appel es les ar tes de P Il est utile d introduire l ensemble vide comme tant la 1 face de P Dans la suite le terme de face d un poly dre convexe P d signe l une quelconque de ses k faces Il est clair que les faces d un poly dre sont en nombre fini Soit P M Ri l criture minimale de P et soit H l hyperplan fronti re de R D apr s le th or me 0 1 1 les d k faces de P sont des intersections de la forme Ha NAH NAP 1 3 de codimension k plus pr cisemment H N N Hi N P est de codimension j pour j 1 k Il faut prendre garde qu une telle criture n est en g n ral pas unique Le th or me suivant pr cise ce point TH OR ME 10 1 2 Soient P un poly dre convexe de dimension d et p R son criture minimale Soit F une face de P et soit F1 C F l ensemble des demi espaces de F dont les fronti res sont les hyperplans supports des d 1 faces de P qui contiennent F Posons Fi p Fr R Alors i F F NP et F est l espace affine engendr par F o 0 o i F F N Nr o F d signe l int rieur relatif de F F Fi ii pour tout point x de P si l enveloppe convexe de x U F et F ont m me dim
295. d quations ax b o a est une matrice triangulaire sup rieure VAR k j integer s p complexe BEGIN FOR k n DOWNTO 1 DO BEGIN s b k FOR j k 1 TO n DO BEGIN ComplexeParComplexe alk j x j p ComplexeMoinsComplexe s p s END ComplexeSurComplexe s a k k x k END END de SystemeCTriangulaireSuperieur PROCEDURE SystemeCParGauss n integer a matC b vecC VAR x vecC VAR inversible boolean Solution d un syst me d d quations lin aires coefficients complexes par la m thode de Gauss VAR k q integer FUNCTION PivotMax k integer integer Version 15 janvier 2005 A4 Chapitre 2 Manipulation de matrices Cherche le pivot maximal entre k et n VAR i p integer BEGIN p K FOR i k 1 TO n DO IF Module a i k gt Module a p k THEN p i PivotMax p END de PivotMax PROCEDURE EchangerFinLignes i j integer VAR m integer BEGIN FOR m i TO n DO echangerC ali ml alj ml echangerC blil bljl END de EchangerFinLignes PROCEDURE PivoterGauss k integer VAR i j integer g Z complexe BEGIN FOR i k 1 TO n DO BEGIN ComplexeSurComplexe ali k a k k g ComplexeParComplexe g b k z ComplexeMoinsComplexe b i z blil FOR j k 1 TO n DO BEGIN ComplexeParComplexe g alk jl z ComplexeMoinsComplexe a i j z ali jl END END END de PivoterGauss BEGIN de SystemeCParGauss
296. d cimales de m ou encore celui qui calcule la base de l alg bre de Lie en sont o on attend vraiment le r sultat et o on cherche donc am liorer l efficacit On s aper oit alors que l laboration de programmes efficaces passe par la conception d algorithmes efficaces qui eux ne sont faciles ni trouver ni prouver Mode d emploi Le livre est divis en deux volumes Le premier volume regroupe les sujets d alg bre et le second volume ceux de combinatoire g om trie et arithm tique La num rotation des nonc s indique dans l ordre le num ro de chapitre le num ro de section et le num ro d nonc Par exemple le th or me 5 1 3 est le troisi me nonc de la section 1 du chapitre 5 Nous conseillons au lecteur de chercher r soudre le probl me par ses propres moyens avant de consulter la solution Afin d viter les duplications inutiles la plupart des programmes figurant dans ce livre font appel des biblioth ques qui sont fournies en annexe Bien entendu pour faire tourner les programmes figurant dans le livre il suffit de recopier les parties de la biblioth que r ellement utilis es par le programme Remerciements Nous avons b n fici de l aide de conseils de discussions et de remarques de beau coup de personnes des titres divers Nous tenons remercier Jean Paul Allouche Marie Pierre B al Dani le Beauquier Bruno Luc Boasson Pierre Cartier Maxime Crochemore Marie T
297. d t A gt 0 Comme d t A d t L _1 a gt 0 on a a gt 0 et il y a une solution a gt 0 unique De l quation A L L on tire par identification des formules qui permettent d obtenir la matrice L Ces formules sont i 1 2 n 2 bii lii lik k 1 j 1 lij aig tnt lii i gt j k 1 Voici une r alisation PROCEDURE Choleski n integer a mat VAR 1 mat a est une matrice sym trique d finie positive Calcul de tel que a VAR i j k integer s real BEGIN Version 15 janvier 2005 58 Chapitre 3 D compositions FOR i 1 TO n DO BEGIN FOR j 1 TO i 1 DO BEGIN Calcul des l ments non diagonaux s ali jl FOR k 1 TO j 1 DO s s l i k 1 j k iliy jl s 1 j j l END s ali il Calcul de l l ment diagonal FOR k 1 TO i 1 DO s s sqr l i k l i i sqrt s END de la ligne i END de Choleski L inverse d une matrice ainsi d compos e est particuli rement facile calculer puisqu il suffit de calculer l inverse de la matrice triangulaire L par exemple comme suit PROCEDURE InverseTriangulairelnferieure n integer a mat VAR b mat a est une matrice triangulaire inf rieure inversible On calcule son inverse dans b par r solution des syst mes triangulaires VAR i j k integer s real BEGIN b MatriceNulle FOR i 1 TO n DO El ments diagonaux bli i 1 ali il FOR i 2 TO
298. de 1 1 1 1 1 dans la suite de Thue Morse Si n est pair n 2m alors Sm Sm 1 Sm 2 1 par le lemme pr c dent si n est impair n 2m 1 alors nouveau par le lemme Sm Sm 1 Sm 2 1 Les deux cas sont impossibles Soit t to tx 1 un facteur de s Le plus petit d but d occurrence de t dans s est not R t On pose r k max R t Version 15 janvier 2005 264 Chapitre 9 Combinatoire des mots o le maximum porte sur tous les facteurs t de longueur k de s et on pose F k k r k La connaissance ou au moins une majoration de F k permet de calculer tous les facteurs de longueur k de s puisque chaque facteur appara t dans la suite finie So Sr x 1 Le lemme suivant est utile LEMME 9 4 3 Soit t un facteur de la suite de Thue Morse de longueur au moins 4 Si n et m sont deux d buts d occurrence de t alors n m mod2 Preuve Supposons le contraire Alors il existe n pair et m impair tels que Sni Sm i pour 0 1 2 3 On a Sn Sn 1 et Sn 2 Sn 3 parce que n est pair De m me Sm Sm 1 t Sm 2 Sm 1 parce que m est impair En combinant ces galit s on obtient S m 1 Sm Sm 1 Sm 2 Sm 3 ce qui contredit le lemme pr c dent PROPOSITION 9 4 4 Pour k gt 2 on a r 2k r 2k 1 1 2r k 1 Preuve Clairement la fonction r est croissante au sens large Soit k gt 2 et soit u Sms Sm k un facteur de longueur k 1
299. de et a une lettre et soit x h EA boots wA lq v la factorisation de Duval de x et p p x Quatre cas se pr sentent Si va est pr fixe propre de 4 alors xa 4 ver AEE sxy lq va et p xa p En effet cette factorisation v rifie les deux conditions ci dessus Si 44 va alors p xa p et xa 41 lp lp 1 lq va E Si 44 va alors p xa p et xa 4 lp lp 1 lava est une factorisation de Duval En effet d apr s le lemme d montr plus loin le mot Lava est un mot de Lyndon d o l on d duit que zak gP lp 1 lava 9 Pva est lui aussi un mot de Lyndon Donc la condition 1 est v rifi e Ensuite on a lp gt L Pva parce que lp gt 4 Pv donc 2 est galement v rifi e Version 15 janvier 2005 258 Chapitre 9 Combinatoire des mots Reste enfin le cas o gt va Soit va Tatan y lpia AAEE AETA la factorisation de Duval de va qui existe par r currence avec p p va Alors xa est la concat nation des deux factorisations 7 f A 7 1 xa inst ne rene pl tasses g et p xa p En effet la condition 1 est v rifi e pour cette factorisation parce qu elle l est pour la factorisation de va Quant la condition 2 le seul cas examiner est celui o p 0 On doit avoir 4 gt 44 Ly v va ce qui est vrai par hypoth se Pour achever la preuve il reste d montrer le lemme suivant LEMME 9 3 9 S
300. de formules la Machin on peut aussi consulter J P Friedelmeyer Arcs de cercle tangente rationnelle et entiers imaginaires premiers Bulletin de l APMEP 358 1987 145 159 J Todd problem on arc tangent relations American Mathematical Monthly 56 1949 517 528 La formule de Brent Salamin a t donn e ind pendamment par R P Brent Fast multiple precision evaluation of elementary functions J Assoc Com put Mach 23 1976 242 251 E Salamin Computation of m using arithmetic geometric mean Math Computation 30 1976 565 570 La moyenne arithm tico g om trique s applique aussi au calcul num rique des fonctions l mentaires comme log x e sinx et cos x On consultera ce sujet l article de Brent Un expos synth tique est G Almkvist B Berndt Gauss Landen Ramanujan The arithmetic geometric mean ellipses x and the Ladies Diary American Math Monthly 95 1988 585 608 Enfin un expos approfondi est J M Borwein P B Borwein Pi and the AGM New York Wiley and Sons 1987 Version 15 janvier 2005 Annexes 407 Annexes 409 411 Annexe A Un environnement A 1 Conseils de programmation Un programme ou un ensemble de proc dures n est pas seulement un moyen de commu nication avec l ordinateur C est aussi une fa on de pr senter un algorithme et donc un support d changes entre personnes Dans cette optique un programme doit tre r dig e
301. des algorithmes dont la port e d passe le cadre initial Un programme bien plus encore qu une d monstration doit tre accompagn e de com mentaires Ils paraphrasent le cheminement algorithmique r sument les groupements d instructions mettent en garde contre des oublis justifient les hypoth ses en d but de Version 15 janvier 2005 412 Annexe A Un environnement proc dure le commentaire explique la nature des param tres et r sume les restrictions variable non nulle par exemple On entend parfois dire que les commentaires doivent avoir la m me longueur que le programme tellement ils contribuent la compr hension du programme Sans aller jusque l on ne peut qu encourager la multiplication des commentaires Nommer les objets Le choix des notations en math matiques est un autre l ment qui facilite la lecture En g n ral une variable r elle est not e x et non pas l indice d un vecteur est not i et rarement z On proc dera de la m me mani re pour la r daction des proc dures Voici un exemple viter FUNCTION a b integer integer VAR c d integer e boolean BEGIN a b e false c 1 REPEAT d f i e b MOD d 0 IF e THEN a d ELSE C ne 1 UNTIL d d gt b OR e END de a Voici la m me proc dure qui cherche dans une table NombresPremiers de nombres premiers le plus petit facteur premier de l entier n donn en argument FUNCTION Facteu
302. des entiers tout entier positif u lt b s crit de fa on unique N u J wb i 0 avec 0 lt n lt N 0 lt ui lt bet un 0 La suite un uo est la repr sentation de u en base b On crira u un uo La repr sentation de 0 est 0 Tout entier de valeur absolue lt b0 est d crit par son signe et la repr sentation de sa valeur absolue Les op rations arithm tiques sont impl menter dans cette repr sentation On pourra prendre b 100 et N 10 ou plus 1 Ecrire une proc dure pour l addition de grands entiers Les nombres de Fibonacci sont d finis par F6 0 F1 1 et pour n gt 0 Fn42 En Fn 2 Jusqu quel indice peut on calculer les nombres de Fibonacci lorsque b 100 et N 10 Ecrire une proc dure calculant ces nombres de Fibonacci 3 Ecrire des proc dures pour la comparaison la soustraction la multiplication de grands entiers Soient u un 1 u0 et v Un vo tels que q u v lt b et soit b min b 1 a Un Version 15 janvier 2005 392 Chapitre 12 Grands nombres On note x la partie enti re de x 4 D montrer que gt q 5 D montrer que si vn gt b 2 alors 4 2 lt q 6 Soit d b 1 v et v du D montrer que v v u et que v i gt b 2 n 7 En d duire un algorithme qui calcule le quotient et le reste de la division enti re de u um Uo par U Un vo
303. deux matrices a et c d ordre n L absence d arc est rep r e par un nombre n gatif Le r sultat est dans la matrice c Si l on note c la valeur de la matrice la sortie de la proc dure on a ci k si cij lt 0 ai gt 0 et cp 5 gt 0 VAR i j k integer b matE BEGIN b Cc FOR i 1 TO n DO FOR j 1 TO n DO FOR k 1 TO n DO IF a i k gt 0 AND b k j gt O AND c i j lt 0 THEN cli j k END de MatriceXMatriceE Voici un exemple de calcul Voici la matrice a 1 0O 1 0 O 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 Voici la matrice des chemins 0 30 8 3 S1 5 E1 t 40 4 0 4 0 2 O 1 1 1 1 sio 01 1 2 Notons c cette matrice des chemins La valeur c42 1 dit qu un chemin de 4 2 d bute par 4 1 La valeur c1 2 3 permet de continuer ce chemin on obtient 4 1 3 Enfin C3 2 0 donc le chemin complet est 4 1 3 2 La proc dure suivante r alise ce calcul PROCEDURE CalculerChemin i j n integer VAR c matF VAR longueur integer VAR chemin vecE Extrait un chemin de vers j de la matrice c La longueur du chemin et les sommets qui le composent sont calcul s VAR Version 15 janvier 2005 6 2 Voici les r sultats Matrices irr ductibles k integer BEGIN IF cli j lt O THEN longueur 1 ELSE BEGIN k 1 chemin k i WHILE cli j gt O DO BEGIN i cli j k k 1 chemin k i END chemin k 1 j longu
304. e VAR i degre integer BEGIN writeln titre f Pol01Nul write Degr du polyn me 1 pour le polyn me nul readln degre FixerDegre f degre IF degre gt 0O THEN BEGIN writeln Donner les coefficients gaux 1 en terminant par le degr REPEAT readln i fal 1 UNTIL i degre END ELSE f 0 degre 1 f 0 0 si deg f 1 et f 0 1 sinon END de EntrerPol0i1 PROCEDURE EcrireMonome n integer BEGIN IF n gt 1 THEN write X n 1 ELSE IF n 1 THEN write X ELSE write 1 END de EcrireMonome PROCEDURE EcrirePol01 f pol01 titre texte Version 15 janvier 2005 190 Chapitre 7 Polyn mes Affichage du polyn me f Le commentaire est affich avant le polyn me VAR i deg c integer BEGIN write titre IF EstPolOINul f THEN write 0 ELSE BEGIN deg Degre f i 0 c 0 WHILE i lt deg and f i 0 DO and s quentiel i c ds EcrireMonome i Lis LA ls WHILE i lt deg DO BEGIN IF f i lt gt O THEN BEGIN write EcrireMonome i die F1 IF c MOD 10 O THEN writeln END ii i i END END END de EcrirePol01 Les deux proc dures arithm tiques de base sont l addition et la multiplication par le polyn me X Notons qu il est inutile de d finir la soustraction qui se confond avec l addition IF Degre f Degre g THEN FixerDegre h deg ELSE Fix
305. e dans a la matrice unit d ordre n Lorsque n est nettement plus petit que l ordre maximal on peut s attendre un gain de temps en utilisant la deuxi me m thode en contrepartie la gestion de l appel de proc dure prend aussi du temps On constate que si l ordre maximal est 20 la dur e des deux m thodes s quilibre autour de n 7 En de l appel de proc dure est plus rapide Notons tout de m me qu avec les mat riels informatiques modernes on peut faire plusieurs centaines d affectations de matrices en une seconde Ceci relativise notre discussion sur la perte de temps ventuelle due une programmation un peu laxiste Faciliter le dialogue Les programmes sont tous interactifs c est dire demandent l utilisateur d intervenir Dans les programmes qui nous concernent l interaction est rudimentaire elle se borne demander des donn es et afficher les r sultats correspondants Dans d autres pro grammes l interaction est tr s sophistiqu e jeux diteurs compilateurs et la program mation de cette partie constitue fr quemment plus de la moiti de l effort de program mation total Il est utile de prendre en consid ration quelques principes simples fond s sur le fait que l interlocuteur est un tre intelligent viter un bavardage inutile encombrant l cran de messages multiples surtout en cas d erreur sur les donn es souvent un simple bip sonore est suffisant Eviter auss
306. e fini d l ments de K i consid rons en effet la suite des pgcds d une num ration des l ments de K i cette suite est d croissante donc est stationnaire partir d un certain rang La p riode est ind pendante de l l ment choisi sur le cycle PROPOSITION 6 2 4 Si i est accessible de j et j est accessible de i alors d i d j Preuve Soit K i k gt 0 af 1 l ensemble des longueurs des cycles de i Montrons que d j divise tout k K i d o il d coule que d j divise d i Soit en effet k K i et soient p et q les longueurs de chemins de j et de j respectivement Alors p q et p k q appartiennent K j donc sont divisibles par d i la diff rence de ces deux nombres soit k est aussi divisible par d 5 On note U la matrice de M dont tous les coefficients sont gaux 1 Une matrice carr e d ordre n coefficients complexes est r ductible s il existe une partition 1 n TU J telle que a 0 pour i I et j J Elle est irr ductible dans le cas contraire Cette condition se v rifie simplement lorsque est dans M PROPOSITION 6 2 5 Une matrice de M est irr ductible si et seulement si elle v rifie 19 Aj8r 1 U Version 15 janvier 2005 134 Chapitre 6 Matrices en combinatoire Preuve Si est r ductible il existe un couple i j d l ments de S tels qu il n y ait pas de chemin de vers j donc la matrice B I
307. e pour n gt 0 r k 3 21 1 27 2 lt k lt 2 l 41 Version 15 janvier 2005 9 4 Suite de Thue Morse 265 Soit P k le nombre de facteurs de longueur k de la suite s On a P 1 2 P 2 4 et comme les mots 1 1 1 et 1 1 1 ne sont pas facteurs on a P 3 6 PROPOSITION 9 4 6 Pour tout k gt 2 ona P 2k P k 1 P k P 2k 1 2P k 1 Preuve L application Sn s Sn k mx Sn re 9 S2 n k 1 est une bijection de l ensemble des facteurs de longueur k 1 sur l ensemble des facteurs de longueur 2k dont le d but d occurrence est pair et l application Sn DRE Sn k gt S2n 1 e S2 n k est une bijection de l ensemble des facteurs de longueur k 1 sur l ensemble des facteurs de longueur 2k dont le d but d occurrence est impair Ceci prouve la premi re formule De m me l application Sn PE lt Sn k gt San 82 n k est une bijection des facteurs de longueur k 1 sur les facteurs de longueur 2k 1 dont le d but d occurrence est pair et Sn Sntk ere n k 1 est une bijection des facteurs de longueur k 1 sur les facteurs de longueur 2k 1 dont le d but d occurrence est impair D o la deuxi me formule Les formules de r currence de la proposition donnent galement une formule close pour P k Nous nous contentons de la majoration qui suit COROLLAIRE 9 4 7 On a P 1 2 et P k lt AP k 1 pour k gt 2 Preuve L in
308. e proc dure utilise un test de primalit EstPremier on pourra utiliser par exemple le test de primalit l mentaire d crit dans le chapitre 11 ou le remplacer par un test plus efficace FUNCTION EstIrreductible f pol01 boolean On suppose f sans carr et f 0 1 Teste si f est irr ductible VAR p q pol01 d i integer ToujoursIrreductible boolean BEGIN d Degre f p X i 0 ToujoursIrreductible true WHILE ToujoursIrreductible AND i lt d DO BEGIN i i 1 Carre p p Pol0iModPo101 p f p Si i est un diviseur de d et si d i est premier on teste si pged X X f 1 IF d MOD i O AND EstPremier d DIV i THEN BEGIN Pol01PlusPo101 p X q PGCDPo101 q f q q pgcd X X f ToujoursIrreductible SontEgaux q Pol01Unite END END Il reste v rifier que X X 0 mod f IF ToujoursIrreductible THEN BEGIN Pol01PlusPol01 p X q Pol01ModPo101 q f q ToujoursIrreductible SontEgaux q Pol01Nul END EstIrreductible ToujoursIrreductible END Version 15 janvier 2005 7 3 Factorisation de polyn mes 195 Si f est r ductible la proposition montre que l on peut s parer ses facteurs irr ductibles l aide des polyn mes r Le calcul de ces polyn mes n offre pas de difficult particuli re PROCEDURE CalculRi i integer f pol01 VAR r pol01 VAR Xi XiModf p pol01 BEGIN Xi PolOiNul Xil 1 i Xilil 1 Pol01ModPol01
309. e de sous espaces vectoriels de F 10 Fo cF cC c F Version 15 janvier 2005 2 2 Matrices trigonalisables 33 est une suite de r solution de longueur p de F si pour 1 lt i lt p et quels que soient A BE F ona AB BAE F 1 Une alg bre de Lie F est dite r soluble resp r soluble de classe p si elle poss de une suite de r solution resp de longueur p 4 a Si F est une alg bre de Lie on note L F l alg bre de Lie engendr e par les matrices AB BA telles que B F On pose ensuite L F F et pour tout k gt 0 LEHI F L LF F D montrer que F est une alg bre de Lie r soluble de classe p si et seulement si LP F 0 b Ecrire une proc dure qui prend en argument un ensemble fini E A AZ de matrices de Kn et qui teste si l alg bre de Lie engendr e par E est r soluble Exemple num rique E A1 A2 A3 5 D montrer que toute alg bre de Lie trigonalisable est r soluble R ciproquement on se propose de d montrer par r currence sur p que toute alg bre de Lie r soluble de classe p est trigonalisable 6 a D montrer qu un ensemble de matrices de Kn qui commutent deux deux ont un vecteur propre non nul commun b En d duire que toute alg bre de Lie de classe 1 est trigonalisable On suppose p gt 1 et on suppose hypoth se de r currence que toute alg bre de Lie r soluble de classe inf rieure p est trigonalisable 7 Soit F une
310. e le d terminant de a par la m thode de Gauss VAR d real k q integer inversible boolean FUNCTION ChercherPivot k integer integer PROCEDURE EchangerFinLignes i j integer PROCEDURE pivoter k integer Variante de PivoterGauss VAR i j integer g real BEGIN FOR i k 1 TO n DO BEGIN g ali k a k k FOR j k 1 TO n DO ali j ali j g alk j Version 15 janvier 2005 14 Chapitre 1 Calcul matriciel END END de pivoter BEGIN de Determinant d 1 k 1 inversible true WHILE k lt n AND inversible DO BEGIN q ChercherPivot k inversible q lt gt n 1 IF inversible THEN BEGIN IF q gt k THEN BEGIN EchangerFinLignes k q d d END pivoter k END k k 1 END sur k IF inversible THEN BEGIN FOR k 1 TO n DO d d a k k Determinant d END ELSE Determinant 0 END de Determinant Une autre fa on de calculer le d terminant s inspire directement du d veloppement par rapport une ligne ou une colonne Ceci conduit naturellement une fonction r cursive Dans la r alisation qui suit on d veloppe par rapport la derni re colonne FUNCTION DeterminantRecursif n integer a mat real VAR b mat signe i k integer d real BEGIN IF n 1 THEN DeterminantRecursif a 1 1 ELSE BEGIN d a n n DeterminantRecursif n 1 a signe 1 FOR i n 1 DOWNTO 1 DO BEGIN signe signe
311. e n il faut conna tre la premi re partition reconna tre la derni re et savoir calculer la partition suivante dans l ordre lexicographique inverse La premi re partition de n est bien s r la partition n et la derni re est 1 1 1 C est la seule partition dont la longueur est gale n donc elle est facile reconna tre Pour calculer la partition suivante d une partition a a1 as on cherche la suite b a as avec aj gt aj41 as et en posant t aj as a s j 1 on d termine la premi re partition de t dont la plus grande part est a 1 Cette partition vient se substituer b Dans le cas o l on cherche les partitions de n en parts major es par m seule la premi re partition change Voici une r alisation Version 15 janvier 2005 8 3 Partitions d entiers 227 PROCEDURE PremierePartition VAR a Mot m n integer Calcule dans a la premi re partition de n dont toutes les parts sont major es par m VAR k s integer BEGIN s n DIV m FOR k 1 TO s DO a k m Des parts de taille m IF n MOD m gt O THEN BEGIN Une derni re part plus petite s s 1 als n MOD m END FixerLongueur a s La longueur de la premi re partition END de PremierePartition Voici la proc dure de calcul de la partition suivante PROCEDURE PartitionSuivante VAR a Mot n integer VAR derniere boolean Calcule dans le tableau a la partition suivante de
312. e n points est un polygone convexe qu il est utile d crire sous la forme E S u1 uw 1 7 o les u sont les sommets de l enveloppe et o les u u 1 sont les c t s de l enveloppe sans perte de g n ralit nous supposons que le polygone est parcouru dans le sens positif c est dire que pour tout les indices sont calcul s modulo o ui Ui 1 Ui 2 1 o o p q r est la fonction valeur dans 1 0 1 d finie comme le signe du d ter minant des vecteurs p P o p q r E o p q r signe d t pd pr 1 8 y Fa A a 7 R 4 N q N nee lt Figure 10 1 4 Les deux tangentes issues de s La proposition suivante fait le lien entre l enveloppe convexe de Set celle de l ensemble obtenu en adjoignant S un point s PROPOSITION 10 1 10 Soit u1 w l enveloppe convexe d un ensemble fini S et soit s un point n appartenant pas E S Soit w j le signe du d terminant des vecteurs s et S j 1 5 ao s uj uj 1 Alors il existe jo et j tels que i w jo w jo 1 w ji 1 1 Gi w i w j 1 w jo 1 1 De plus on a E SU S ujo Uja S Version 15 janvier 2005 10 1 Poly dres et enveloppes convexes 285 Preuve Les points u et uj sont les points d appui des deux tangentes au convexe E S issues du point s voir la figure LO 1 4 L id e g n rale de l algorithme de Graham est de
313. eColonneNulle boolean BEGIN J 0 PasDeColonneNulle true WHILE j lt q AND PasDeColonneNulle DO BEGIN Del i 0 DebutColonneNul true WHILE i lt p AND DebutColonneNul DO BEGIN i i 1 DebutColonneNul Ali j 0 END PasDeColonneNulle NOT DebutColonneNul END UneColonneEstNulle NOT PasDeColonneNulle END de UneColonneEstNulle Tout est en place et on teste maintenant facilement si une matrice est unimodulaire l aide de la proc dure suivante FUNCTION EstUnimodulaire A matE p q integer boolean Version 15 janvier 2005 6 1 Matrices unimodulaires 127 Teste si est unimodulaire VAR d i integer LeRangEstp CetaitLaDerniere boolean C matE SousEnsemble suite BEGIN IF UneColonneEstNulle A p q OR q lt p THEN Si q lt p la matrice ne peut tre unimodulaire EstUnimodulaire false ELSE BEGIN PremierePartieRestreinte SousEnsemble q p LeRangEstp false REPEAT ExtraitSousMatrice SousEnsemble p q A C d Det C p Si on trouve une sous matrice de rang p le rang vaut p LeRangEstp d lt gt 0 PartieSuivanteRestreinte SousEnsemble q p CetaitLaDerniere UNTIL abs d gt 1 OR CetaitLaDerniere EstUnimodulaire LeRangEstp AND abs d lt 1 END END de EstUnimodulaire Le test pour les matrices totalement unimodulaires est encore plus simple programmer et repose sur la proposition FUNCTION EstTotalementUnimodulaire A
314. eger BEGIN n min Longueur u Longueur v de ds WHILE i lt n AND Culil vli l DO ics i i IF i lt n THEN Fortement inf rieur CompareMot signe u i vlil ELSE Pr fixe CompareMot signe Longueur u Longueur v END de CompareMot On en d duit imm diatement une proc dure qui teste si un mot est inf rieur un deuxi me FUNCTION EstlnferieurMot VAR u v mot boolean Vrai si et seulement si u lt v BEGIN EstInferieurMot CompareMot u v 1 END de EstInferieurMot Il y a deux fa ons simples de tester si un mot u est un mot de Lyndon on verra plus loin un algorithme plus compliqu mais lin aire en fonction de la longueur du mot pour calculer la factorisation de Lyndon donc aussi pour tester si un mot est un mot de Lyndon On peut calculer tous les conjugu s de u et v rifier que u est plus petit que ces mots Ce test se r alise comme suit FUNCTION EstLyndonParConjugue u mot boolean Teste en calculant les conjugu s de u si u est un mot de Lyndon VAR i n integer v mot inferieur boolean BEGIN n Longueur u i 1 inferieur true WHILE i lt n AND inferieur DO BEGIN LeConjugue u i v inferieur EstInferieurMot u v issik END EstLyndonParConjugue inferieur END de EstLyndonParConjugue Dans cette proc dure inferieur reste vrai tant que lon n a pas trouv de conjugu inf rieur au mot donn Une deuxi me
315. eger a b vec VAR ab vec Diff rence des deux vecteurs a et b d ordre n R sultat dans le vecteur ab PROCEDURE VecteurParScalaire n integer x vec s real VAR sx vec Produit du vecteur x d ordre n par le r el s R sultat dans le vecteur sx D autres op rations l mentaires sont d crites dans les proc dures PROCEDURE Transposer n integer a mat VAR ta mat La matrice ta contient la transpos e de la matrice a d ordre n PROCEDURE TransposerRect m n integer a mat VAR ta mat La matrice ta d ordre n m contient la transpos e de la matrice a d ordre m n FUNCTION ProduitScalaire n integer VAR a b vec real Donne le produit scalaire des deux vecteurs a et b d ordre n FUNCTION Norme n integer VAR a vec real Il s agit de la norme euclidienne FUNCTION Normelnfinie n integer VAR a vec real C est le maximum des valeurs absolues Les proc dures que voici sont plus difficiles r aliser sauf la premi re leur criture sera d taill e dans les sections suivantes PROCEDURE SystemeTriangulaireSuperieur n integer a mat b vec VAR x vec Solution d un syst me d quations triangulaire sup rieur La matrice est suppos e in versible PROCEDURE SystemeParGauss n integer a mat b vec VAR x vec VAR inversible boolean Solution d un syst me d quations par la m thode de Gauss PROCEDURE InverseParGauss n integer a mat VAR ia mat VAR inversi
316. elle ind termin e On travaille dans l anneau A T des s ries coefficients dans A Consid rons la s rie s 0 X T 1 sT sT 1 lt i lt n Puisque le terme constant de s est gal 1 s est inversible dans A T une s rie coefficients dans un anneau est inversible si et seulement si son terme constant est inversible dans A Pour la m me raison chaque s rie 1 X T est inversible On en d duit la suite d galit s LD pr D a x 1 lt i lt n 1 lt i lt n k 0 DDR 1 lt i lt n k 0 X 1 fo uT k 0 SCD to TE 1 k 1 On obtient finalement puisque s s1 2527 nsn TT s1 PORT bas nsn T 1 sT snT ED art k 1 d o les formules cherch es par identification des deux membres Deuxi me d monstration Partons de l identit r 1 8q0r 1 gt Xa Xot Xirgu lt N i2 lt i3 lt lt iq 1 etr gt 1 i1g iz niq 1 gt XX e Xn E L ma i D siq n Iiinn ig t gt 1 i1g iz iq SST 43 dSq sir 1 Version 15 janvier 2005 7 2 Polyn mes sym triques 165 On a successivement Ok S10k 1 5 XIX q 1 r k i1 i2 gt Xi Xe 820k 2 gt KE Xi Xi q 2 r k 1 Zi ia lt i ie udlizis SO OX TX Xo s30k3 7 YO X XX Xa a 3 r k 2 iz lt is i2 lt i3 lt ti4 i1Z i2 i3 i1Z i2 i3 i4 Si k lt n la derni re galit est obtenue pour q k et r 1 Elle s crit y Xi Xit Xi ksk 12 lt i3 lt lt ik i1F i2 ir Si k
317. ement unimodulaire trace d une B8 transpos e 8 triangulaire B4 tridiagonale unitriangulaire matrices trigonalisables m thode de Choleski P4 57 F1 de Crout de Gauss D modernis e de Givens 59 de Householder 65 de Jacobi 85 de Jordan LR de Newton B70 871 du pivot partiel 9 du pivot total QR a de Rutishauser modulaire repr sentation moindres carr s probl me des mont e d une permutation LOS Version 15 janvier 2005 INDEX mot de Lukasiewicz de Lyndon vide multidegr d un mon me k67 N Newton m thode de B70 sommes de nombres de Bernoulli 211 R12 de Catalan 242 841 B43 de Fibonacci 365 O ordre alphab tique de convergence B97 lexicographique oreille OTHERWISE ou s quentiel Ras Rag P part d une partition B16 partition conjugu e d un entier 216 Penrose Moore matrice de p riode pgcd 422 de deux polyn mes pile pivot 9 poids d un polyn me 61 polaire ensemble poly dre convexe R77 face d un polygone simple polyn me INDEX de Bernoulli caract ristique 5 degr d un division euclidienne factorisation d un pr fixe d un mot propre primitive ne E 131 34 principal anneau probl me des Ro carr s profondeur d un mot de Lukasiewi propre valeur 85 vecteur B5l pseudo inverse matrice p3 Z Q QR m thode d queue R rang d une matrice 18 d un s
318. en valeur Toutefois Version 15 janvier 2005 416 Annexe A Un environnement on peut parfois gagner du temps en choisissant un passage par r f rence plut t que par valeur ainsi si le param tre est une matrice le passage par r f rence ne demande que l valuation du nom alors que le passage par valeur provoque la cr ation d une matrice locale la proc dure et la recopie de la matrice avant toute ex cution Le temps suppl mentaire pris par la recopie peut tre tr s important en pourcentage car cette recopie concerne la taille maximale du tableau Ainsi si OrdreMax est fix 20 ce sont 400 l ments qui sont recopi s m me si les matrices consid r es dans un programme particulier ne sont que d ordre 2 Le surco t pris par rapport l addition de deux matrices peut aller de quelques pour cents plus de 700 pour les grandeurs donn es ci dessus Or la recopie est inutile lorsque l on est certain de ne jamais modifier le contenu de la matrice comme par exemple dans une proc dure d impression Dans ces cas on pourra d clarer le param tre en r f rence Dans les autres cas en revanche le passage par valeur est recommand Dans le m me ordre d id es on peut discuter notre choix de la repr sentation de la matrice unit comme objet s par qui est employ dans une instruction d affectation comme a MatriceUnite On pourrait la place faire appel une proc dure Unite n a qui cr
319. ension alors x appartient F Preuve L assertion i est cons quence de l criture 3 pour toute face de P Soit R un demi espace de F F1 R ne contenant pas F1 l int rieur relatif de F1 N R co ncide avec la trace sur F de son int rieur FENR ANR Il vient alors F A AnR N Anr nn Q R REF F REF F REF F De F F N P on d duit que l appartenance de x F est quivalente son apparte nance F or les dimensions de F1 et E F U x E F U x co ncident si et seulement si x appartient F1 PROPOSITION 10 1 3 Soit P un poly dre convexe et soient F G deux faces de P Alors soit F est une face de G ou G est une face de F soit FAG est une face de F et de G Version 15 janvier 2005 280 Chapitre 10 G om trie algorithmique PROPOSITION 10 1 4 Soit P un poly dre convexe et soit R un demi espace contenant P Alors Fr R A P est une face de P Re des on Nous cartons le cas trivial o F N G Du th or me 2 assertion ii on d duit que a soit F C G et dans ce cas F FAG c Fr G 2 soit G C F et dans ce cas G FNG C Fr F 3 soit FAG c Fr F N Fr G Supposons sans perte de g n ralit que F N G C Fr F pour x FAG soit H la face de F de dimension maximale contenant x dans son int rieur relatif alors Hy C FAO G sinon H serait s cant l un des hyperplans support des d 1 faces contenant FNG et FnG 7 Le nombre de faces de F tant fini la r union
320. ent Il n est pas difficile de v rifier que les nombres de Catalan satisfont la relation de r currence An 2 gt 1 a n gt 1 Cn Cn 1 On peut donc les calculer au moyen de la proc dure PROCEDURE CalculerNombresCatalan nn integer VAR n integer BEGIN ChiffreEnEntier 1 Cat 0 FOR n 1 TO nn DO BEGIN EntierParChiffre Cat n 1 4 n 2 Cat n EntierSurChiffre Cat n n 1 Cat n END END CalculerNombresCatalan o Cat est un tableau d entiers de taille appropri e Voici une table obtenue en choi sissant la base gale 1000 bien entendu chiffre longint Version 15 janvier 2005 12 1 Entiers en multipr cision Nombres de Catalan d indices de 0 C 0 C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 10 c 11 C 12 C 13 C 14 C 15 C 16 C 17 C 18 C 19 C 20 C 21 C 22 C 23 C 24 C 25 C 26 C 27 C 28 C 29 C 30 C 31 C 32 C 33 C 34 C 35 C 36 C 37 C 38 C 39 C 40 c 41 C 42 C 43 C 44 C 45 429 1 430 4 862 16 796 58 786 208 012 742 900 2 674 440 9 694 845 35 357 670 129 644 790 477 638 700 1 767 263 190 6 564 120 420 24 466 267 020 91 482 563 640 343 059 613 650 1 289 904 147 324 4 861 946 401 452 18 367 353 072 152 69 533 550 916 004 263 747 951 750 360 1 002 242 216 651 368 3 814 986 502 092 304 14 544 636 039 226 909 55 534 064 877 048 198 212 336 13
321. entreCercleCirconscrit i Voisin i 1 Voisin i 2 c FaireDirectionPerpendiculaire S i S Voisin i 1 dir MarquerPointCarre c 2 TracerDemiDroite c dir FOR j 2 TO long i 1 DO BEGIN b Cc CentreCercleCirconscrit i Voisin i j Voisin i j 1 c MarquerPointCarre c 2 TracerSegment b c END END ELSE BEGIN CentreCercleCirconscrit i Voisin i long i Voisin i 1 c a c FOR j 1 TO long i 1 DO BEGIN b c CentreCercleCirconscrit i Voisin i j Voisin i j 1 c MarquerPointCarre c TracerSegment b c Segment du centre au pr c dent END TracerSegment c a Segment du premier au dernier END END de TracerVoronoi 10 4 Galerie d art 10 4 1 Enonc galerie d art Le probl me dit de la galerie d art ou des gardiens de prisons est le suivant Quel est le nombre de gardiens n cessaires pour surveiller une galerie d art et o faut il les placer On le mod lise comme suit Soit un plan euclidien affine orient muni d un rep re orthonorm O i j On note p q le segment de droite ferm joignant les points p et q Version 15 janvier 2005 310 Chapitre 10 G om trie algorithmique Soit n gt 3 et soit S p1 pA une suite de points distincts appel s sommets dont trois quelconques ne sont pas align s Le contour polygonal ferm C p1 p2 U U Pn p est simple si p pi 1 N pj pj 1 pour 1 lt i j
322. erDegre h Max Degre f Degre g END de Pol01PlusPol01 PROCEDURE Pol01PlusPol01 f g pol01 VAR h pol01 h f g VAR i deg integer BEGIN IF Degre f gt Degre g THEN On travaille sur le polyn me de plus grand degr h f ELSE h g deg 1 FOR i 0 TO Min Degre f Degre g DO BEGIN h i f i g i MOD 2 IF h i gt O THEN deg i Version 15 janvier 2005 7 3 Factorisation de polyn mes 191 END IF Degre f Degre g THEN FixerDegre h deg ELSE FixerDegre h Max Degre f Degre g END de Pol01PlusPol01i PROCEDURE ProduitParXn f pol01 n integer VAR g pol01 g fX VAR i deg integer BEGIN deg Degre f IF deg gt O THEN BEGIN FixerDegre g deg n FOR i O TO n 1 DO g i 0 FOR i O TO deg DO gli n f i END ELSE g Pol01Nul END de ProduitParXn La proc dure de division euclidienne peut tre r alis e ainsi PROCEDURE Pol01DivEuclidPol01 f g pol01 VAR q r On suppose g 0 On obtient f gq r avec d r lt d g VAR h pol01 n integer Pol01Nul r i f FixerDegre q Max Degre f Degre g 1 WHILE Degre r gt Degre g DO BEGIN n Degre r Degre g qln 1 ProduitParXn g n h Pol01PlusPol01 r h r END END de Pol01DivEuclidPol01 Q Par commodit on introduit deux proc dures tr s voisines mod et div sur les entiers PROCEDURE Pol0iModPo101 f g pol01 VAR
323. ere j 0 Signe j 1 END j 0 WHILE j lt p AND b DO BEGIN Je id M j 1 i2 M j 2 s M j 3 Signe WHILE perel i1 gt O DO BEGIN s s Signeli1l ii perelii END WHILE perel i2 gt O DO BEGIN s s Signel i2 l i2 pereli2 END IF i1 lt gt i2 THEN BEGIN Signeli2 s pere i2 i1 END ELSE b s 1 END Elementaire b END de ElementaireEstTU Version 15 janvier 2005 130 Chapitre 6 Matrices en combinatoire Sur l exemple pr c dent le d roulement pas pas du programme donne le r sultat suivant on note Ancetre la fonction obtenue par it ration de la fonction Pere j i il 2 i2 4 Ancetre ii 2 Ancetre i2 4 s 1 j 2 ii 1 i2 5 Ancetre i1 1 Ancetre i2 5 s 1 j 3 il 4 i2 5 Ancetre i1 2 Ancetre i2 1 s 1 j 4 ii 3 i2 4 Ancetre ii 3 Ancetre i2 2 s 1 j 5 ii 3 i2 5 Ancetre ii 3 Ancetre i2 3 s 1 La matrice n est pas totalement unimodulaire Voici quelques r sultats num riques Le d terminant de la matrice A de l nonc est gal 16 Les deux matrices A1 et A2 de l nonc sont totalement unimodulaires 6 2 Matrices irr ductibles 6 2 1 Enonc matrices irr ductibles Soit n gt 1 un entier et S 1 n On note M l ensemble des matrices carr es d ordre n coefficients dans 0 1 Soit A aij M et soient i j S Un chemin de vers j de long
324. ersion 15 janvier 2005 7 2 Polyn mes sym triques 159 Exemple num rique tester si p p2 et p p2 sont sym triques On appelle fonctions sym triques l mentairesde X1 X les polyn mes Sk X1 Xn gt Xa Xene K 1Kii lt i2 ip In o 1 lt k lt n On se propose de d montrer que pour tout polyn me sym trique X1 Xn il existe un polyn me p et un seul tel que F Xi Xn pr s1 X1 Xn EEK Sn X1 Xn 3 On d montre d abord l existence de pp par r currence sur l entier c f n deg f On pose pour tout polyn me f X1 Xn Ps F X1 Xn 1 0 On suppose le r sultat d montr pour les polyn mes sym triques f X Xn tels que c f lt e f a On suppose n gt 2 D montrer l existence du polyn me ppo puis d montrer que le polyn me HA rer Xn Miss Xn po uns Xn sens Ka peut s crire sous la forme g X1 Xn Xi Xnh X1 Xn o h est un polyn me sym trique b Compl ter la d monstration de l existence de pr 4 D montrer que pour tout polyn me sym trique f X1 X il existe un unique polyn me pr v rifiant 5 On suppose dans cette question uniquement que n 2 a D montrer en utilisant les questions pr c dentes que si f X1 X2 est un polyn me sym trique on a pr X YF RO xx k gt 0 o les polyn mes fp sont d finis par les relations de r currence __ 0 fo f et fa EE
325. es Un vecteur v de R est consid r comme une matrice une colonne et on note v sa norme euclidienne On note 7 la matrice unit d ordre n On se propose de construire pour toute matrice A d ordre n sym trique une matrice semblable B b qui soit tridiagonale c est dire telle que b 0 pour i j gt 1 1 Soient w R un vecteur de norme euclidienne 1 et P la matrice I 2w tw D montrer que tP P7 P 2 Pour k 2 n et pour x R on note v v k x R le vecteur d fini par 0 sil lt i lt k Vi a signe zp a sii k Ti sik lt i lt n o a yz x et signe s 1 0 1 selon que s gt 0 s 0 s lt 0 On pose P P k zx I Bv v x avec B 2 v si v 0 8 2 sinon D montrer que y P k x x v rifie Yi f signe zk a sii k 0 sik lt i lt n Soit A une matrice sym trique d ordre n 3 D montrer que PAP A qw v4 o P et v sont comme dans x et o p bBAv 2K Blvp et q p Kv 4 Soient A1 An 2 P1 Pn 2 les matrices d finies par P P 2 A A PAP P P r 1 A0 A P AP r 2 n 02 o pour une matrice M on note MO la j i me colonne de M D montrer que la matrice An 2 est sym trique et tridiagonale 5 Ecrire un programme qui prend en argument une matrice sym trique d ordre n et qui affiche comme r sultat la matrice An 2 sous la forme de deux vecteurs d R
326. es d ordre n coefficients complexes On notera C l espace vectoriel des vecteurs colonnes d ordre n coefficients complexes Une matrice A aij de Kn est triangulaire si a 0 pour i lt j On dit qu un ensemble E de matrices de Kpn est trigonalisable s il existe une matrice inversible P telle que pour toute matrice de FE la matrice P AP soit triangulaire On se propose de donner une condition n cessaire et suffisante pour qu un ensemble de matrices soit trigonalisable Nous pr sentons d abord une condition suffisante simple PROPOSITION 2 2 1 Un ensemble de matrices de K qui commutent deux deux est trigonalisable Preuve La d monstration repose sur le lemme suivant LEMME 2 2 2 Un ensemble d endomorphismes de C qui commutent deux deux ont un vecteur propre non nul commun Preuve On raisonne par r currence sur n le r sultat tant trivial pour n 1 Soit F un ensemble d endomorphismes commutant deux deux Choisissons parmi les l ments de F un endomorphisme u poss dant un sous espace propre V de dimension minimale et soit la valeur propre associ e V On a donc V x C ux Ax Maintenant siv F et si x V on a puisque u et v commutent uvx vuz V x vx et donc vx V Par cons quent V est stable par F Si dim V n le choix de V impose que V soit un sous espace propre de tous les endomorphismes de F Si dim V lt n on appliq
327. ession asymptotique des nombres de Catalan montre avec un petit calcul que l on peut valuer cn pour n lt 29 11 2 3 Programme arithm tique modulaire Soit m gt 1 un entier et soit a un entier premier m Le th or me de Bezout affirme lexistence d entiers uniques x et y tels que 0 lt x lt m 0 lt y lt a et ax my 1 2 5 Il en r sulte que ax 1 mod m Le calcul de x peut tre fait en recherchant les couples x y v rifiant B 5 Pour cela consid rons la suite des divisions euclidiennes successives r alis es pour le calcul du pged de a et de m on pose ro a r m et on d finit qk et rk 2 pour k gt 0 par Tk qkfk 1 Tk42 avec rk 1 0 et O lt rk42 lt Tk 1 Soient alors xo x1 1 0 yo y1 0 1 et pour k gt 0 Tk 2 Tk Tk 14k Yk 2 Yk Yk 1 k On v rifie alors que pour tout k tel que r est d fini on a Tk TkA YEM Notamment si k est le plus petit entier tel que rk 0 alors rx pgcd a m et les entiers z k yk sont des coefficients pour l identit de Bezout Dans le cas particulier o a et m sont premiers entre eux on a 1 x a mod m Version 15 janvier 2005 11 2 Arithm tique modulaire 345 Ceci conduit la proc dure FUNCTION Inverse x m integer integer Calcule l inverse de x mod m par adaptation de l algorithme d Euclide On suppose x et m premiers entre eux VAR r0 ri r2 x0 x1 x2 q integer BEGIN x0
328. est le quotient exact Il reste trouver une fa on simple de satisfaire la condition de la proposition Version 15 janvier 2005 12 1 Entiers en multipr cision 399 PROPOSITION 12 1 3 Soit v v b 1 vn Alors v lt b et on a v gt b 2 avec v Vh U0 Preuve Posons d b 1 v et effectuons la multiplication de v par d on a vod r b vh avec 0 lt vo lt b et r lt d Plus g n ralement supposant rx lt d pour k gt 1 ona ukd rx Tk110 UE O lt v lt b O lt rky lt d Comme Und Tn lt Un 1 b 1 vn lt b on a rn41 0 et v lt b Par ailleurs on a v gt vn b 1 vn Pour montrer que v gt b 2 nous v rifions que x b 1 x gt b 2 pour tout entier z avec 1 lt x lt b Ceci est vrai si x gt b 2 Si 1 lt x lt b 2 alors b b b b z 1fb gt DEEE 1 2 1 1271 puisque b 2 gt x 1 On a donc x b 1 x gt b 2 1 Ceci prouve la deuxi me assertion Disons que v est normalis si vn gt b 2 La division de u un 1 uo par v Un vo lorsque u v lt b 1 et v est normalis peut donc se faire comme suit dans une premi re tape calculer ensuite si u Qu gt 0 alors q sinon si u 1w gt 0 alors q 1 et sinon q 2 Cet algorithme est mis en uvre sur des couples u v quelconques en normalisant d abord v et en multipl
329. eur k END END de CalculerChemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin Chemin de de de de de de de de de de de de de de de de de de de de de de de de de Les l ments en un temps proportionnel leur longueur w w w w w w pr pr pv pr pr pv pr pr w Op pr pr pr pv pr pr On ES EE amp amp 0 do NN NNNN RE HR pr pr 1 1 2 1 3 1 4 1 5 1 1 2 2 3 4 5 2 1 3 2 3 3 3 4 3 5 3 1 4 2 4 3 4 4 4 5 4 1 2 5 3 4 5 5 GO OO H o1 ererrerereN amp amp N 01 2 w w w w 5 139 Il n y a pas de chemin Premier l ment i El ment suivant Dernier l ment Longueur k et k 1 l ments obtenus avec la matrice pr c dente cycliques et les cycles se calculent facilement sur la matrice Il convient de noter que l algorithme pr sent ici s il est simple n est pas tr s efficace en temps L emploi de structures de donn es plus labor es permet de calculer tous ces chemins Version 15 janvier 2005 140 Chapitre 6 Matrices en combinatoire Tester qu une matrice est acyclique est facile On peut calculer les rangs des l ments de diverses mani res la plus simple est d employer une m thode r cursive en observant que le rang d un l ment est 1 plus le ma
330. eur k 1 et un arc de j COROLLAIRE 6 2 2 Il existe un chemin de vers j si et seulement si le coefficient d indice i j de la matrice I A est gal 1 Preuve La condition est videmment suffisante en vertu de 2 1 R ciproquement s il existe un chemin de vers j il en existe aussi un de longueur au plus n 1 en supprimant les cycles ventuels On dit que j est accessible de i s il existe un chemin de vers j Pour d terminer les l ments accessibles il suffit donc de calculer la matrice 1 amp A l les l ments accessibles partir de sont les indices de colonnes des coefficients non nuls sur la ligne d indice 1 Une matrice M est dite acyclique si l ensemble de ses l ments cycliques est vide PROPOSITION 6 2 3 Une matrice est acyclique si et seulement si A2 Q Preuve Si est acyclique tous les chemins ne contiennent que des l ments distincts et sont donc de longueur au plus n 1 et par cons quent A8 0 R ciproquement si contient un cycle elle contient un cycle de longueur k lt n donc des chemins de toute longueur sup rieure ou gale k et par cons quent AS 0 Soit un l ment cyclique de S et soit K i k gt 0 al 1 l ensemble des longueurs des cycles de i On appelle p riode d un l ment cyclique ie S de Aeton note d i le pgcd des l ments de K i Ce pgcd di est en fait le pgcd d un nombr
331. eurs TYPE vec ARRAY 1 0rdreMax OF real mat ARRAY 1 0rdreMax OF vec vecE ARRAY 1 0rdreMax OF integer VAR MatriceUnite mat Matrice pr d finie MatriceNulle mat Matrice pr d finie En vue d all ger les notations on utilisera des proc dures distinctes pour les matri ces carr es et pour les matrices rectangulaires En effet consid rons par exemple une Version 15 janvier 2005 4 Chapitre 1 Calcul matriciel proc dure de multiplication de matrices Si les matrices sont carr es il suffit de passer en param tre l ordre commun des matrices alors qu il faut trois param tres dans le cas de matrices rectangulaires Voici les en t tes des proc dures ou fonctions qui constituent la biblioth que Il y a trois familles de proc dures les proc dures d entr es sorties un groupe de proc dures ancil laires comme des copies de lignes et colonnes et des proc dures r alisant des op rations simples multiplication transposition etc ou plus labor es comme la r solution d un syst me d quations lin aires et le calcul de l inverse Dans certaines proc dures un param tre appel titre permet d afficher un texte avant la lecture ou l impression ceci facilite grandement l interpr tation des r sultats Le type texte doit tre d fini au pr alable sa d finition d pend de la syntaxe du compilateur En TURBO Pascal comme en THINK Pascal cela peut tre string 80 L initialisation
332. finie de polyn mes fi 1 lt i lt n telle que f fif2 fn Une telle factorisation est non triviale si l un des f est diff rent de f et de 1 On rappelle que tout polyn me non nul f se factorise comme produit de polyn mes irr ductibles et que cette d composition est unique l ordre des facteurs pr s Si f est Version 15 janvier 2005 7 3 Factorisation de polyn mes 179 un polyn me on note f son polyn me d riv Un polyn me f est un carr s il existe un polyn me g tel que f g On dit que f est sans carr s il n est pas divisible par un carr de degr strictement positif Enfin si f g et h sont des polyn mes on crit f gmodh lorsque h divise f g 1 a Ecrire une proc dure qui effectue la division euclidienne de deux polyn mes b Ecrire une proc dure qui calcule le pgcd de deux polyn mes par l algorithme d Eu clide Exemple num rique calculer le pgcd des polyn mes X 1 1 et X X 1 2 a D montrer que f est un carr si et seulement si f 0 b D montrer que tout polyn me non nul f se factorise de fa on unique en f g h o h est sans carr c D montrer que cette unique factorisation est donn e par la formule g pged f f 3 Ecrire une proc dure qui calcule g et h partir de f Exemple num rique f X X XB X X X X X X X X X 1 On suppose d sormais que f est sans carr et que f 0 1 Soit f fif2 fs la factorisa
333. fondeur conduit directement l criture r cursive suivante FUNCTION Profondeur VAR w mot integer VAR u v mot BEGIN IF Longueur w 1 THEN Profondeur 1 ELSE BEGIN FilsLukasiewicz w u v Version 15 janvier 2005 9 2 Mots de Lukasiewicz 247 Profondeur 1 max Profondeur u Profondeur v END END de Profondeur Pour le trac lui m me il convient de fixer la distance en nombre de pixels par exemple qui doit s parer deux points voisins coordonn es enti res Moyennant quoi on peut crire des primitives de trac d un point et d un segment de droite sur le Macintosh par exemple une r alisation est la suivante pour une interface graphique un peu plus cons quente voir le chapitre 10 CONST ecart 20 Nombre de pixels s parant deux points voisins PROCEDURE TracerPoint x y integer BEGIN Paintcircle ecart x ecart y 5 END de TracerPoint PROCEDURE TracerSegment x y xx yy integer BEGIN Drawline ecart x ecart y ecart xx ecart yy END de TracerSegment La d finition de la figure associ e un mot de Lukasiewicz se traduit alors directement en PROCEDURE FigureLukasiewicz w mot x y integer Trace la figure associ e w en d butant au point de coordonn es x y VAR u v mot n integer BEGIN IF Longueur w 1 THEN TracerPoint x y ELSE BEGIN FilsLukasiewicz w u v n puissanceE 2 Profondeur w
334. fur et mesure de sa saisie Nous tra ons donc les c t du polygone d s que nous les connaissons PROCEDURE SaisirPolygone VAR n integer VAR P SuitePoints VAR q Point Version 15 janvier 2005 316 Chapitre 10 G om trie algorithmique SaisieTerminee boolean BEGIN n 1 SaisirPoint P 1 Saisie du premier sommet NumeroterPoint P 1l 1 Le sommet est num rot REPEAT SaisirPoint q SaisieTerminee SontEgauxPoints q P n IF NOT SaisieTerminee THEN BEGIN n n 1 Pin q Le sommet est enregistr NumeroterPoint P n n num rot et TracerSegment P n 1 P n reli au sommet pr c dent END UNTIL SaisieTerminee TracerSegment P nl P 1 Le trac du polygone est ferm END de SaisirPolygone La premi re t che est de v rifier si un sommet p d un polygone P est une oreille Pour cela on consid re les sommets pj et px qui le pr c dent et le suivent sur le polygone Le triangle pjpipp doit tre direct et ne doit contenir aucun autre sommet du polygone Cette condition s crit comme suit FUNCTION EstOreille i n integer VAR P SuitePoints boolean R pond affirmativement si p est une oreille VAR oreille boolean j Kk m integer BEGIN j prec i n pj pr c de pi k suiv i n pk suit pi oreille EstAGauche P j P i P k Pjpipk est un triangle direct m 1 WHILE m lt n AND oreille DO BEGIN IF m lt gt j AND m lt g
335. g integer BEGIN Df PolOiNul deg 1 Version 15 janvier 2005 7 3 Factorisation de polyn mes 193 FOR i 1 TO Degre f DO IF odd i THEN BEGIN Dfli 1 flil IF f i lt gt 0 THEN deg i 1 END ELSE Df i 1 0 FixerDegre Df deg END de Derive PROCEDURE Carre f pol01 VAR g pol01 VAR i integer BEGIN IF EstPolNul THEN g Pol01Nul ELSE FixerDegre g 2 Degre f FOR i O TO Degre f DO BEGIN g 2 i fli g 2 x i 1 0 END END de Carre PROCEDURE RacineCarree f pol01 VAR g pol01 VAR i deg integer BEGIN IF EstPolOIiNul f THEN g PolOiNul ELSE BEGIN deg Degre f DIV 2 FixerDegre g deg FOR i O TO deg DO gli fli 2 END END de RacineCarree Le calcul de la d composition f g h ne comporte plus de difficult puisque g pecd f f PROCEDURE FacteursCarres f pol01 VAR g h pol01 VAR Df pol01 BEGIN g f Derive f Df IF EstPolOiNul Df THEN BEGIN RacineCarree f g h PolOiUnite END Version 15 janvier 2005 194 Chapitre 7 Polyn mes ELSE BEGIN PGCDPol01 f Df g Pol01DivPol01 f g h RacineCarree g g END END FacteursCarres Pour l exemple num rique on trouve f 1 X X4 X5 X77 X 78 X 79 X710 X 11 X 12 X 13 X 14 X 17 g 1 X4 X5 h 1 X X 4 X 5 X 77 Nous en arrivons au test d irr ductibilit qui est fond sur la proposition Cett
336. ge sa limite est 1 V2 Version 15 janvier 2005 9 4 Suite de Thue Morse 263 9 4 2 Solution suite de Thue Morse On consid re la suite de Thue Morse s Sn n gt o d finie par Sn 1 avec b n D bi n i 0 les b n tant d finis par le d veloppement binaire de n n b n b n 0 1 i 0 Une suite finie t t0 tx 1 est un facteur de longueur k de s s il existe n tel que ti Snii pou0 lt i lt k 1 4 1 Tout entier n pour lequel 4 1 est v rifi est un d but d occurrence de t Nous com men ons par quelques lemmes simples LEMME 9 4 1 Pour tout n gt 0 on a S n Sn et S2n 1 Sn Preuve Clairement b 2n b n et b 2n 1 1 b n d o les formules Il en r sulte en particulier que 82 S2n 2 S2n 2k Sn Sn 1 S8n k et que l application Sn Sn4k 1 San S2 n k 1 est une bijection de l ensemble des facteurs de longueur k sur l ensemble des facteurs de longueur 2k qui ont un d but d occurrence pair LEMME 9 4 2 Aucun des quatre mots 1 1 1 1 1 1 ls 1 1 1 1 l 1 1 1 1 n est facteur de s Preuve Supposons en raisonnant par l absurde que Sn 8n 1 Sn 2 pour un entier n Si n est pair alors par le lemme pr c dent Sn Sn 1 De m me si n est impair alors Sn 1 Sn 2 Ceci exclut les deux premiers facteurs Consid rons ensuite en raisonnant par l absurde un d but d occurrence n
337. ger ELSE IF V IntervalleTrouve a b a gt Vb 1 THEN MettreEnAttente a b Va Vb END de R epartir Un z ro dans Ja b Au moins deux z ros dans Ja b Voici donc la proc dure qui met en uvre ces op rations PROCEDURE LocalisationIntervalles p pol VAR Localise Suitelntervalles VAR n integer p est un polyn me n ayant que des z ros simples Localise contient une suite de n inter valles Chaque intervalle contient exactement un z ro r el de p VAR sp SuitePol m intege EnAttente Intervall Variation E real a b c Va Vb Vc integer Pour ranger la suite de Sturm Indice du dernier l ment de la suite de Sturm integer eEnAttente SuiteIntervalles sEnAttente SuiteCouplesEntier real Des extr mit s d intervalles et les variations correspondantes PROCEDURE MettreEnAttente u v real Vu Vv integer PROCEDURE Retirer VAR u v real VAR Vu Vv integer PROCEDURE RangerIntervalleTrouve u v real PROCEDURE Repartir a b real Va Vb integer BEGIN SuiteDeSturm p sp m b a b Va Var Vb Var n 0 EnAttente 1 epsilon MajorationDesZeros pj iation m sp a iation m sp b 0 IF Va Vb gt THEN BEGIN Repart WHILE Ret c ir a b Va Vb EnAttente gt 0 DO BEGIN irer a b Va Vb a b 2 IF EstNul Valeur p c THEN BEGIN RangerIntervalleTrouve c c E
338. h r se Da Silva Dominique Perrin Christophe Reutenauer Jean Jacques Risler Mariette Yvinec Nous remercions Claude Puech et Jean Marie Rifflet pour leur int r t constant et Yves Tremblay et Claire Marie La Sade pour l accueil qu ils nous ont r serv et leur soutien logistique comp tent Version 15 janvier 2005 Table des mati res IX Table des mati res I Alg bre lin aire 1 E E E a 1 2 1 M thode de Gauss SE 15 TO 18 23 A EE 23 2 1 1 Enonc pseudo inverses 23 EE EE 24 a E 27 E TEETE N 32 2 2 1 Enonc matrices trigonalisables ooa 32 2 2 2 Solution matrices trigonalisableg 34 2 2 3 Une biblioth que de manipulation des matrices complexes 40 2 2 4 Programme matrices trig i 45 51 E E A AAE 51 a 57 e ae a a 59 o ou w 8 3 1 Enonc d composition QR m thode de Givens 59 TESTET 60 61 65 68 Version 15 janvier 2005 X Table des mati res 69 e ES 69 EEE E 69 a 71 e 72 e e 72 CESELIE 73 sesane 74 nn 7 E T 78 4 3 1 Enonc tridiagonalisation m thode de Householder 79 80 81 Valeurs et vecteurs propres 85 1 M thode de Jacob 85 a 85 REEE E 87 TOOPEO OTOR 90 e e 96 i 100 3 1 Enonc valeurs propres de matrices tridiagonales 100 2 101 FEES 102 PEE 107 OEA 110 117 EEEE TEES 117 a E 117 PRE 119
339. hev e la factorisation de Duval retourne un suffixe non vide v du mot w restant factoriser Or ce suffixe est un pr fixe du dernier facteur de la factorisation d j obtenue donc en particulier sa longueur est au plus m 2 Il en r sulte que le co t total de la factorisation de Lyndon par l algorithme de Duval est major par m m 2 8 m 4 Si m lt cm ce nombre est donc major par 2cm 9 4 Suite de Thue Morse 9 4 1 Enonc suite de Thue Morse On consid re la suite s Sn n gt 0 d finie par Sn 1 o pour tout entier n gt 0 b n X b n i 0 les b n tant d finis par le d veloppement binaire de n n b n b n 0 1 i 0 Les premiers termes de s sont 1 1 1 1 1 1 1 1 1 1 1 1 1 1 D montrer que S n Sn S2n 1 Sn et crire une proc dure qui calcule s pour 0 lt n lt N on pourra prendre N 100 Une suite to tx 1 est un facteur de longueur k de s s il existe n tel que ti Sn i pour0 lt i lt k 1 x Version 15 janvier 2005 262 Chapitre 9 Combinatoire des mots On se propose de calculer les facteurs de s Le plus petit entier n gt 0 tel que x soit v rifi e est not R to t 1 On pose r k max R to e tk 1 o le maximum porte sur tous les facteurs to tx 1 de longueur k de s et F k k r k Par exemple la suite s poss de les 6 facteurs 1 1 1 1 1 1 1 1 1 1 1 1
340. hik La deuxi me couche ind pendante du mat riel se charge de la traduction des objets g om triques r els en objets sur l cran typiquement la traduction entre points et pixels Le nom de cette unit est Geometrie La couche la plus externe est le programme g om trique proprement parler qui ne conna t plus que des points des segments droites et autres objets g om triques usuels et se d charge sur le module Geometrie de toutes les op rations de communication avec l cran Nos r alisations sont tr s rudimentaires et ne sont en aucun cas suffisantes pour une programmation plus pouss e Pour les compatibles PC on pourra utiliser avec profit d autres interfaces comme MODULOG Version 15 janvier 2005 10 2 Quelques primitives g om triques 287 L unit Geometrie met la disposition des programmes g om triques les points d un plan euclidien affine muni d un rep re orthonorm direct et quelques op rations sur ces objets On d clare un point comme un couple de nombres r els TYPE Point ARRAY 0 1 OF real Les proc dures n cessaires sont PROCEDURE InitGeometrie FUNCTION Abscisse q Point real FUNCTION Ordonnee q Point real PROCEDURE FairePoint x y real VAR q Point PROCEDURE SaisirPoint VAR q Point PROCEDURE TracerSegment p q Point PROCEDURE TracerDemiDroite p d Point PROCEDURE MarquerPointCarre p Point PROCEDURE MarquerPointRond p Point PROCEDUR
341. i integer BEGIN m Longueur u FOR i 1 TO m DO LettreEnMot f i u i REPEAT n m CompacterFactorisationLyndon f m UNTIL m n END de FactorisationLyndon Factorisation initiale n ancienne longueur m nouvelle longueur Test d arr t A chaque tape on tente de compacter la factorisation obtenue Lorsqu on ne peut plus la raccourcir la longueur de la factorisation reste inchang e Ceci fournit le test d arr t Version 15 janvier 2005 256 Chapitre 9 Combinatoire des mots On compacte une factorisation comme suit PROCEDURE CompacterFactorisationLyndon VAR f Suitemot VAR m integer Partant d une factorisation f1 fm on cherche i tel que fi lt fi 1 et s il existe on rend fi Er fifi ses fm VAR i j integer BEGIN i 1 WHILE i lt m 1 AND NOT EstInferieurMot fli f i 1 DO i i 1 IF i lt m THEN BEGIN Maintenant fi lt fi Concatener f i f i 1 f i FOR j i 1 TO m 1 DO La suite est raccourcie f j f j 1 m m 1 END END de CompacterFactorisationLyndon Voici un exemple d taill d ex cution Mot donn 0101001100100 Factorisation de longueur 12 01 O 1 0 O 1 1 O O 1 0 0 Factorisation de longueur 11 01 01 O O 1 1 O O 1 0 0 Factorisation de longueur 10 01 01 O 01 1 O O 1 0 0 Factorisation de longueur 9 01 01 001 1 O O 1 0 0 Factorisation de longueur 8 01 01 0011 O O 1 0 O0 Factorisa
342. i re sur laquelle les valeurs propres se lisent directement comme une matrice diagonale ou triangulaire L accumulation des matrices de transformation permet d obtenir galement les vecteurs propres 5 1 M thode de Jacobi La m thode de Jacobi est un proc d simple mettre en uvre pour le calcul des valeurs et vecteurs propres d une matrice r elle sym trique 5 1 1 Enonc m thode de Jacobi Soit n gt 2 un entier Les matrices consid r es sont r elles carr es d ordre n Pour p q dans 1 n p q on note G q p gi j toute matrice de rotation de la forme 1 0 G q p Version 15 janvier 2005 86 Chapitre 5 Valeurs et vecteurs propres avec c 3 1 qui ne diff re de la matrice unit que par les l ments d indice p p p q q p a a Plus pr cis ment gii l ifpe tifq gij 0 i j 3 ra et i j ap 9p p Jq Ip Iq p S 7 Soit A a i une matrice sym trique et soit p q D montrer que B b G q p AG q p v rifie S B S A 2a q 2 9 o S A 5 a ij 1 i j On note M la transpos e d une matrice M 8 D montrer que l on peut choisir c gt V2 2 et s tels que bp q bap 0 D montrer que si de plus on choisit p q tels que apl ae lai j alors 2 S B lt S A 9 En it rant le proc d de construction d une matrice B partir de A avec les choix xx e
343. i les mineurs principaux sont inversibles Le bool en indique succ s ou chec VAR i integer BEGIN soluble NOT EstNul a 1 i 2 WHILE i lt n AND soluble DO BEGIN ali a i ci ali 1 b i 1 d i d i c i ali 1 x d i 1 soluble NOT EstNul alil i i 1 END IF soluble THEN BEGIN x n dfn aln FOR i n 1 DOWNTO 1 DO x i d i b i x i 1 a i END END de SystemeTridiagonal Version 15 janvier 2005 4 1 Op rations sur les matrices tridiagonales 71 4 1 2 D composition LU La d composition LU comme d ailleurs la d composition QR peut tre r alis e sur une matrice tridiagonale ai b 0 pra 0 C2 a2 bo 0 A 0 Cn 2 Qn 2 bn 2 0 Cn 1 An 1 bn 1 0 _ 0 Cn An Il est int ressant de constater que les matrices L et U sont aussi tridiagonales plus pr cis ment posons 1 0 ug v 0 ba 1 U2 V2 A LU l3 1 Un 1 0 ln 1 0 Un L identification donne v b et u1 a et li ci ui 1 ui a libi pour i 2 n ce qui permet d crire la proc dure suivante PROCEDURE DecompositionLUtridiagonal n integer a b c vec VAR u 1 vec Calcule la d composition LU d une matrice tridiagonale VAR i integer BEGIN u 1 ali FOR i 2 TO n DO BEGIN 1 i c i uli 1 uli a i 1 i b i 1 END END de DecompositionLUtridiagonal Dans le cas particulier o la matrice de d part e
344. i les trop nombreuses demandes de confirmation du genre Etes vous s r de vos donn es o n Une indication claire sur la fa on d arr ter le programme suffit Version 15 janvier 2005 A 2 Variations en Pascal 417 En revanche l invite doit tre claire ne pas commencer l ex cution d un programme par un point d interrogation sans annoncer au moins quel type de donn es on attend Un deuxi me principe observer est physique toute action provoque une r action le programme doit r agir l entr e de donn es par un accus de r ception surtout si les calculs subs quents sont longs La meilleure fa on de faire lorsque les donn es sont un peu complexes lecture d une matrice ou d un polyn me est de r afficher dans votre format les donn es lues Enfin les r sultats doivent tre pr sent s il convient de dire quels sont les r sultats affich s Dans un programme dialogue simple les options possibles se pr sentent sous la forme d un menu voir ci dessous une fa on de faire une option du menu accessible par exemple par peut contenir un ou plusieurs crans d explications A 2 Variations en Pascal En th orie il n y a qu un seul langage de programmation Pascal celui d fini par la norme ISO En pratique il y a autant de langages Pascal que de compilateurs et ceci pour plusieurs raisons D abord le langage Pascal officiel est plut t pauvre en structures de contr le et de plus
345. i n est pas pr c d d un point virgule et en THINK Pascal par OTHERWISE qui est pr c d d un point virgule Nous ne nous en servons que dans les menus e Bien plus importante est l criture des op rateurs bool ens s quentiels aussi appel s op rateurs courts ou op rateurs minimaux Consid rons par exemple l instruction WHILE i gt 1 AND a i 0 DO i i 1 Dans Pascal standard les op randes du test sont tous les deux valu s avant d en faire la Version 15 janvier 2005 418 Annexe A Un environnement conjonction logique Ainsi m me si 0 l l ment afi est compar 0 ce qui provoque un message d erreur si les indices du tableau commencent 1 Lorsque l op rateur AND est s quentiel la premi re condition est valu e d abord et la deuxi me n est valu e que si la premi re est vraie mutatis mutandis pour OR dans notre exemple il n y a pas de d passement des bornes de tableau Ce mode d valuation est extr mement commode et a t utilis syst matiquement dans le livre En TURBO Pascal c est le fonctionnement par d faut mais il peut tre modifi en changeant une option du compilateur en THINK Pascal les op rateurs AND et OR ne sont pas s quentiels mais ce compilateur fournit deux variantes s quentielles not es amp et Nous encourageons explicitement les utilisateurs de nos programmes en THINK Pascal remplacer syst matiquement AND par amp et OR
346. i un chemin pour les l ments accessibles partir d un l ment i donn Nous allons faire un peu plus et calculer un chemin de longueur positive dans le cas o est cyclique Pour cela nous calculons ARA GP p AS et au lieu de calculer seulement cette matrice nous allons conserver des informations suppl mentaires si 4 et j sont reli s par un chemin de longueur p il existe un k tel que Qik 1 et a 1 Nous conservons l entier k et savons ainsi qu il existe un chemin de vers j commen ant par l arc i k Le codage demande une l g re modification de la matrice au d part pour ne pas confondre le sommet 1 avec l existence d un arc L algorithme est r alis comme suit PROCEDURE Chemins n integer a matE VAR c matE Calcule une matrice c contenant de fa on compacte les chemins entre l ments acces sibles Si cij k gt 0 il existe un chemin de vers j qui commence par i k Si k 0 le chemin est r duit au couple i j si k lt 0 il n y a pas de chemin VAR i j k integer BEGIN FOR i 1 TO n DO Diminution de tous les coefficients de a Version 15 janvier 2005 138 Chapitre 6 Matrices en combinatoire FOR j 1 TO n DO ali j ali j 1 c a FOR k 2 TO n DO Calcul des puissances de a MatriceXMatriceE n a c END de Chemins Il utilise la proc dure PROCEDURE MatriceXMatriceE n integer a matE VAR c matE Produit cumul de
347. iant u par le m me facteur ensuite les chiffres du quotient sont d termin s en divisant u par des d cal s vb de v Enfin le reste de la division est obtenu en annulant l effet de la normalisation 12 1 3 Programme entiers en multipr cision Soit b gt 2 la base choisie Un entier positif u admet un d veloppement unique n u ub 0 lt ux lt b k 0 dans cette base La repr sentation Un uo de u est rang e dans un tableau En vue d viter des calculs inutiles on m morise galement l indice n du premier chiffre non nul du d veloppement de u en base b Ap pelons cet indice la taille de u Si u 0 sa taille est fix e arbitrairement un entier n gatif Un entier naturel est donc d crit par un tableau de chiffres relativement la base et par sa taille un entier relatif comporte en plus son signe Ceci conduit la structure suivante Version 15 janvier 2005 356 Chapitre 12 Grands nombres CONST base 100 DecimauxParChiffre 2 Nombre de chiffres d cimaux pour crire un chiffre TailleMax 20 TailleEntierNul 1 TYPE chiffre integer entier ARRAY 2 TailleMax OF chiffre Le choix de la base n est pas gratuit D abord une base qui est une puissance de 10 permet de lire et d crire des entiers presque sans conversion Ensuite la base b doit tre telle que l entier b est inf rieur au plus grand entier repr sentable dans la machine ceci pour pouvoir au moin
348. idegr qu un mon me m du tableau on substitue m le mon me m m si celui ci est non nul Sinon m est supprim du tableau PROCEDURE MonomePlusPolynome n integer m monome VAR q polynome Ajoute le mon me m au polyn me ordonn q VAR i j t integer BEGIN t Taille q i 1 WHILE i lt t AND CompareDegreMonome n q i m lt 0 DO i i 1 IF i lt t AND CompareDegreMonome n qli m 0 THEN BEGIN Le mon me q a m me degr que m IF qli O0 m 0 THEN BEGIN Le mon me qi est m toSt 1 Un mon me de moins FOR j i TO t DO On limine 0 dans les mon mes de q q j q j 1 END ELSE qli 0 q li 0 mf0 END ELSE BEGIN m n appara t pas dans q FOR j t DOWNTO i DO On intercale m dans les mon mes de q q j 1 qljl tit 1 Un mon me de plus qli m Version 15 janvier 2005 170 Chapitre 7 Polyn mes END FixerTaille q t END de MonomePlusPolynome Pour les entr es sorties on utilise les proc dures suivantes PROCEDURE EntrerPolynome n integer VAR p polynome titre texte Affichage du titre puis lecture du polyn me p n ind termin es i t integer m monome PROCEDURE LireMonome n integer VAR m monome VAR j integer BEGIN write Coefficient du monome readln m 0 FOR j 1 TO n DO BEGIN write Degr de X j 1 readln m j END END BEGIN de EntrerPolynome
349. ier 2005 11 2 Arithm tique modulaire 341 4 Ecrire des proc dures qui prennent en argument deux entiers en repr sentation mo dulaire et qui fournissent leur somme diff rence produit modulo m en repr sentation modulaire 5 Les nombres de Catalan cn sont d finis par co 1 et cn gt CkCn 1 k pour n gt 0 Ecrire une proc dure qui calcule une table des 20 premiers nombres de Catalan en utilisant les proc dures de la question pr c dente et qui affiche les r sultats en base b Pour les exemples num riques on pourra prendre r 8 et m 99 m2 97 m3 95 ma 91 ms 89 me 83 m7 79 Mms 73 m1 Mmg 3536632852868115 1 2n C pl bn On note m En d duire une estimation du plus grand nombre de Catalan que l on peut calculer avec les valeurs des m donn es ci dessus et afficher les nombres de Catalan jusqu cette valeur 6 D montrer que 7 Une suite de Catalan de longueur 2n 1 est une suite ao a1 a 2n d entiers positifs ou nuls tels que ao azn 0 et ai 1 a 1 pour i 0 2n 1 D montrer que le nombre de suites de Catalan de longueur 2n 1 est cn 11 2 2 Solution arithm tique modulaire Soient m1 M2 Mp des entiers positifs deux deux premiers entre eux et soit M Mmim M Le th or me des restes chinois tablit l isomorphisme entre Z mZ et ZfmaZ X x Z m Z TH OR ME 11 2 1 des restes chinois Soient m1 mMm2 m des en
350. ierMod VAR w EntierMod VAR k integer BEGIN FOR k 1 TO TailleMod DO wlk ProduitMod ul k l vlkl m k END de EntierModParEntierMod Les op rations l mentaires sont FUNCTION SommeMod x y m integer integer BEGIN IF x y gt m THEN SommeMod x y m ELSE SommeMod x y END de SommeMod FUNCTION DifferenceMod x y m integer integer BEGIN IF x lt y THEN DifferenceMod x y m ELSE DifferenceMod x y END de DifferenceMod FUNCTION ProduitMod x y m integer integer BEGIN ProduitMod x y MOD m END de ProduitMod Pour calculer commod ment la repr sentation modulaire d un entier en simple pr cision on utilise PROCEDURE ChiffreEnEntierMod x chiffre VAR a EntierMod VAR k integer BEGIN FOR k 1 TO TailleMod DO a k x MOD m k END de ChiffreEnEntierMod Le calcul des nombres de Catalan se fait dans une table d finie par CONST TailleSuite 30 TYPE SuiteEntierMod ARRAY O TailleSuite OF EntierMod La proc dure s crit PROCEDURE SuiteCatalan VAR c SuiteEntierMod r integer VAR n k integer p s EntierMod Version 15 janvier 2005 11 2 Arithm tique modulaire BEGIN ChiffreEnEntierMod 1 c 0 FO EN END On obtient c 0 1 c 1 1 c 2 2 c 3 5 c 4 1 c 5 4 c 6 1 c 7 4 c 8 1 c 9 4 c 10 c 11 c 12 c 13 c 14 c 15 c 16
351. ieurs de deux triangles de Delaunay distincts sont disjoints 5 D montrer que la r union des triangles de Delaunay de S est gale E S On note d p q la distance euclidienne entre deux points p et q et on pose d p S minges d p q Pour tout s S on pose V s q E d s q d s S Les r gions V s s appellent les r gions de Vorono de S Sur l exemple ci dessus la r gion hachur e repr sente la r gion de Vorono de s 6 D montrer que pour tout s S la r gion V s est un convexe dont la fronti re est une ligne polygonale a D montrer que les sommets de cette ligne polygonale sont les centres des cercles circonscrits aux triangles de Delaunay dont s est un sommet b D montrer que les ar tes de cette ligne polygonale sont port es par les m diatrices des ar tes de Delaunay de sommets s c D montrer que deux sommets de cette ligne polygonale sont les extr mit s de l une de ces ar tes si et seulement si les triangles de Delaunay associ s sont adjacents 7 Ecrire une proc dure qui trace la fronti re de V s pour tout s S 8 Soient f le nombre de triangles de Delaunay et a le nombre d ar tes de Delaunay de S et soit l le nombre de sommets de E S Trouver une relation lin aire entre f a et l 10 3 2 Solution triangulation de Delaunay Soit S un ensemble fini de points appel s sites d un plan affine euclidien E Une triangulation de S est un en
352. iffre u entier x chiffre VAR w entier B 8 Arithm tique flottante CONST base 100 digitparChiffre 2 TailleMax 16 TYPE chiffre integer Flottant ARRAY 1 LaTailleMax OF chiffre VAR FlottantNul Flottant Version 15 janvier 2005 454 Initialisation PROCEDURE Annexe B Les biblioth ques InitFlottants Lecture criture PROCEDURE PROCEDURE EntrerFlottant VAR u Flottant titre texte EcrireFlottant VAR u Flottant titre texte Constructeurs FUNCTION EstFlottantNul VAR u Flottant boolean FUNCTION Exposant VAR u Flottant chiffre PROCEDURE FixerExposant VAR u Flottant p chiffre FUNCTION LeSigne VAR u Flottant chiffre PROCEDURE PROCEDURE FixerSigne VAR u Flottant s chiffre ChiffreEnFlottant VAR u Flottant x chiffre FUNCTION FlottantProches VAR u v Flottant boolean Op rations arithm tiques PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE FlottantPlusFlottant u v Flottant VAR w Flottant FlottantMoinsFlottant u v Flottant VAR w Flottant FlottantParFlottant u v Flottant VAR w Flottant FlottantSurFlottant u v Flottant VAR w Flottant FlottantParChiffre VAR u Flottant x chiffre FlottantSurChiffre VAR u Flottant x chiffre InverseFlottant a Flottant VAR b Flottant RacineFlottant a Flottant VAR b Flottant UnSurRacineFlottant a Fl
353. ifie la m me quation fonctionnelle De plus G z est analytique pour z 0 et admet le d veloppement en s rie de Laurent G z 5 Am 3 3 Version 15 janvier 2005 8 3 Partitions d entiers 225 O a m Am parce que G z G z Bien entendu les coefficients am d pendent de x En reportant l quation B 2 dans l quation fonctionnelle on obtient pour les coefficients am la formule de r currence Ce Me qui en it rant donne m2 Am 407 m gt 0 parce que 1 3 m 1 m Notons que cette galit vaut aussi pour m lt 0 Ainsi l quation B 3 devient de 2 Gx z ao x 5 aeg 3 4 m 00 o nous avons indiqu explicitement la d pendance de x Il r sulte de cette quation que ao x tend vers 1 lorsque x tend vers 0 et il reste prouver que ao x 1 pour tout x Nous allons montrer que ao x ao x 3 5 Le r sultat s ensuit parce que l on obtient ao x ao x pour tout k gt 0 et que z4 tend vers 0 lorsque k tend vers l infini Pour z i quation Ba donne Gz i 2 zT mem m 2m A 1 T DORE O car i pour m impair et par cons quent Gx i Gya 1 ao x ao x Nous v rifions que Gy i Gy1 1 Pour cela observons d abord que OO F i G 34 n 1 Comme tout nombre pair est de la forme 4n ou 4n 2 on a LC g IG _ a 1 z gere de sorte que Gali A z 1 rs e n 1
354. informatique permet aussi de formuler en termes algorithmiques et programmables des th ories math matiques des ph nom nes physiques chimiques ou biologiques dont l tudiant n avait nagu re qu une connaissance th orique Le pr sent livre permettra d aborder cette d couverte en ce qui concerne l emploi de la programmation pour l tude de probl mes math matiques Les th mes abord s concernent principalement l alg bre la g om trie l arithm tique et la combinatoire On traite des sujets traditionnels d alg bre linaire mais aussi des th mes moins habituels comme les pseudo inverses de matrices rectangulaires les con ditions de trigonalisation simultan e d un ensemble de matrices les matrices unimodu laires et les matrices irr ductibles Une section est consacr e aux polyn mes recherche des z ros par les suites de Sturm polyn mes sym triques et factorisation des polyn mes coefficients dans le corps deux l ments Nous avons choisi d accorder une place im portante aux probl mes combinatoires parce qu ils fournissent d une part d excellents exemples de programmation et d autre part soul vent des questions math matiques int ressantes et parfois ardues Parmi les probl mes combinatoires classiques nous trai tons les nombres de Bernoulli et les partitions d entiers Un long chapitre est consacr la combinatoire des mots qui a d troits rapports avec la logique math matique la
355. inon le syst me ne serait pas de rang n En tirant x4 de la k i me quation et en le rempla ant dans toutes les autres on obtient A0 10 a ser QU pH k 1 k k 1 ue ar pl F io a Ee E es 0 1 E a bt r 0 Or a alt p avec T a 4 pourk 1 lt j lt n k 1 k k KED D al Version 15 janvier 2005 16 Chapitre 1 Calcul matriciel et pour i 1 n eti k a n ae ana ta pour k 1 lt j lt n ED 2 afa af Apr s la n i me tape le syst me s crit 1 Ss 0 b 1 pp Re 0 1 p ce qui donne directement la solution La diff rence principale avec la m thode du pivot partiel r side dans l op ration de pivotage dont voici l criture PROCEDURE PivoterJordan k integer VAR i j integer BEGIN b k b k a k k Division de la ligne k FOR j k 1 TO n DO alk j a k j alk k FOR i 1 TO n DO Substitution dans les autres lignes IF i lt gt k THEN BEGIN b i b i ali k b k FOR j k 1 TO n DO ali j ali j ali k a k j END END de PivoterJordan Voici une proc dure qui r alise l algorithme complet PROCEDURE SystemeParJordan n integer a mat b vec VAR x vec VAR inversible boolean Solution du syst me d quations Ax b par la m thode de Jordan VAR k q integer FUNCTION PivotMax k integer integer PROCEDURE EchangerFinLignes i j integer PROCEDURE PivoterJordan k integer
356. ion 15 janvier 2005 2 2 Matrices trigonalisables 39 Preuve de la proposition L 2 8 Il suffit en utilisant les formules de prouver par r currence sur k que pour tout Fp 1 k i A 0 pour 0 lt i lt k et pour cela de d montrer que 1 0 4 0 Or A B zo X A B xo Azo A to 0 par le lemme B 2 10 donc 1 0 0 puisque zo 0 Le lemme donne alors simple ment Azk A xx pour 0 lt k lt r et donc Ax A A x pour tout x Vp Posons V x C Ax A A zx pour tout F_1 PROPOSITION 2 2 11 L ensemble V est un espace vectoriel non nul stable par toutes les matrices de Fp Preuve Par construction V est un espace vectoriel contenant zo D autre part si x V et B Fp on a d apr s le lemme 2 2 10 A Bx BAx A B x BA A x A A Bl x BA A zxz X A Bx ce qui montre que Bz V Fin de la preuve du th or mel2 2 5 Soient maintenant B et C deux matrices quelconques de Fp D apr s la proposition 2 2 11 V est stable par B et C Soit v1 ux une base de V que l on compl te en une base w1 v de C et posons P v1 Un On a alors f E B 0 C 0 P BP a e et P GP E y o B et C sont des matrices carr es de taille k Puisque B C Fp 1 on a par d finition de V B C v A B C v pour tout v V Il en r sulte en particulier que B C A B C Ik ce qui montre que A B C 0 cf Pargument sur les traces util
357. ion de syst mes lin aires 11 qui est de d terminant 1 ce qui prouve en particulier que A est inversible si et seulement si A l est Dans le cas o il y a change de lignes il convient de multiplier au pr alable la matrice A par la matrice de permutation correspondante ce qui change le signe du d terminant On obtient donc apr s la derni re op ration de pivotage un syst me d quations trian gulaire A x b qui s crit D 1 ai 1T ai 2t2 a 2 a2 22 7 T Q N que l on r sout en utilisant la m thode d crite plus haut L op ration de pivotage cen trale dans cet algorithme se programme par PROCEDURE PivoterGauss k integer VAR i j integer g real BEGIN FOR i k 1 TO n DO BEGIN g ali k a k k b i b i g b k FOR j k 1 TO n DO ali j ali j g alk j END END de PivoterGauss Seuls les coefficients qui interviennent dans la suite sont modifi s La recherche du pivot peut se faire selon deux strat gies La premi re est la recherche d un pivot non nul et s impl mente par FUNCTION ChercherPivot k integer integer Cherche un indice i entre k et n tel que ai 0 si un tel indice n existe pas le r sultat est n 1 VAR i integer BEGIN i K WHILE i lt n AND EstNul a i k DO AND s quentiel i i 1 ChercherPivot i END de ChercherPivot Une autre fa on de p
358. iques Plut t que de reprendre une une les questions de l nonc cette partie est l occasion de pr senter des r sultats g n raux sur le th me les solutions aux questions y figurent soit explicitement soit en filigrane En g n ral les questions math matiques pr parent aux questions informatiques dans la mesure o elles permettent d laborer ou de justifier le d veloppement des algorithmes Les programmes La troisi me partie d un triptyque contient les proc dures ou fonctions qui r pondent aux questions de programmation L aussi on con oit la r ponse dans un cadre plus large la plupart du temps on s appuie sur des biblioth ques de proc dures dont l int r t peut d passer le sujet et qui constituent le pendant des digressions math matiques L id e qui nous conduit dans cette approche est que la solution aux questions informatiques est en g n ral facile concevoir si l on dispose d un outillage appropri Si dans quelques ann es des syst mes de calcul formel rempla aient Pascal comme support informatique bon nombre des biblioth ques dispara traient mais l essentiel des programmes resterait Chaque th me est compl t par de br ves notes bibliographiques dont le but est d aider le lecteur int ress approfondir le sujet Les dialectes de Pascal Bien que le langage de programmation Pascal soit codifi par une norme internationale de petites variations subsistent d un compi
359. ireEntierDeGauss v C EcrireEntierDeGauss r writeln END 2 BEGIN write Donner p nombre premier non congru 3 mod 4 readln p writeln Racine de 1 mod p RacineDeMoinsUn p 1 END 3 BEGIN EntrerEntierGauss z Donner z a ib IF EstIrreductible z THEN writeln z est irr ductible ELSE writeln z est r ductible END 4 BEGIN EntrerEntierGauss z Donner z a ib z lt 150 IF EstIrreductible z THEN writeln z est irr ductible Factorisation z Liste cz NbFacteurs write i cz 1 EcrireListe Liste NbFacteurs writeln END OTHERWISE END END Voici quelques r sultats num riques Pour p 7001 on trouve dp 1198 L entier de Gauss 6 114 est irr ductible car 36 121 157 est premier En revanche 17 est r ductible car 17 3 mod 4 On a en fait 17 i 1 4i 4 i On trouve galement 100 1 amp 1 2i 2 i Version 15 janvier 2005 339 11 1 Entiers de Gauss 56 98i 43 7 1 i 2 i 3 2i et 19 61i i 1 i 2 3i 6 11i Pour finir voici les d compositions des 100 premiers entiers naturels ee N O mM Lu SZ De op lt a RS RS TS TS T Tam Ga gt yri gt Pad pa
360. is plus haut Il en r sulte que B et C commutent D apr s la proposition les matrices de Fp ont un vecteur propre commun La fin de la d monstration est identique celle de la proposition on raisonne par r currence sur n le cas n 1 tant trivial Soit x un vecteur propre commun aux matrices de Fp et soit X une matrice inversible ayant x comme premi re colonne Les matrices X AX pour A Fp sont donc de la forme e 0 A A avec u A C et A Kn 1 Maintenant l ensemble des matrices A pour A F est une alg bre de Lie de K _1 r soluble de classe p qui par hypoth se de r currence est trigonalisable Il existe donc une matrice inversible P K _1 telle que toutes les matrices P7 A P soient triangulaires Il en r sulte que les matrices G CP 2 sont triangulaires et donc F est trigonalisable Version 15 janvier 2005 40 Chapitre 2 Manipulation de matrices 2 2 3 Une biblioth que de manipulation des matrices complexes Comme nous manipulons ici des matrices coefficients complexes nous allons d crire une biblioth que de manipulation de matrices coefficients complexes qui s inspire bien entendu de la biblioth que de manipulation des matrices r elles Elle fait appel la biblioth que de manipulation des complexes et la biblioth que g n rale pour les ini tialisations Nous suivons le m me ordre de pr sentation que pour la biblioth que relative aux ma t
361. isie successive des points Il faut fixer une convention pour arr ter la saisie nous convenons de l arr ter lorsque deux points cons cutifs sont gaux ceci correspond un double clic sur un Macintosh On est amen aux proc dures PROCEDURE SaisirSites VAR n integer VAR S SuitePoints VAR q Point SaisieTerminee boolean BEGIN n 1 SaisirPoint S 1 Saisie du premier point MarquerPointRond S 1 Le point est marqu NumeroterPoint S 1l 1 et num rot REPEAT SaisirPoint q Saisie d un point SaisieTerminee SontEgauxPoints q S nl Egal au pr c dent IF NOT SaisieTerminee THEN BEGIN n n 1 S n q Le point est enregistr MarquerPointRond S n marqu et num rot NumeroterPoint S nl n END UNTIL SaisieTerminee END de SaisirSites Version 15 janvier 2005 10 3 Triangulation de Delaunay 303 avec bien entendu FUNCTION SontEgauxPoints VAR p q Point boolean p q BEGIN SontEgauxPoints EstNul Abscisse p Abscisse q AND EstNul Ordonnee p Ordonnee q END de SontEgauxPoints Avant de proc der la description de l algorithme de calcul de la triangulation nous pr sentons quelques proc dures auxiliaires pour la plupart le nom d crit enti rement la fonction FUNCTION det VAR p q r Point real Calcule d t p p VAR pqx pqy qrx qry real BEGIN pqx Abscisse q Abscisse p pqy Ordonnee q Ordonnee p
362. it que pour s t S le segment s t est une ar te de E S si et seulement si tous les autres sites se trouvent d un m me c t de la droite st Exemple num rique S s1 87 s1 0 0 52 0 6 53 6 6 s4 10 12 55 8 3 s6 10 5 87 16 0 Figure 10 3 1 Un exemple Un cercle C est un cercle de Delaunay de S si son int rieur ne contient aucun point de S Un segment s t o s t sont deux sites distincts est une ar te de Delaunay s il existe un cercle de Delaunay passant par s et t Un triangle rst o r s et t sont trois l ments distincts de S est un triangle de Delaunay si le cercle circonscrit au triangle est un cercle de Delaunay Sur l exemple de la figure rst est un triangle de Delaunay 2 Ecrire une proc dure qui d termine et trace les ar tes de tous les triangles de Delaunay de S 3 a D montrer que tout site de S est extr mit d au moins une ar te de Delaunay D montrer que toute ar te de Delaunay est un c t d un triangle de Delaunay b D montrer que si une ar te de Delaunay est une ar te de E S elle n appartient qu un seul triangle de Delaunay en revanche si l ar te n est pas une ar te de E S elle appartient deux triangles de Delaunay Version 15 janvier 2005 10 3 Triangulation de Delaunay 295 4 D montrer que deux ar tes distinctes de Delaunay de S sont disjointes sauf ven tuellement aux extr mit s D montrer que les int r
363. it une suite de matrices par A1 A et Ar L L o L est une matrice triangulaire inf rieure telle que L L D montrer que est tridiagonale sym trique On montre que tend vers une matrice diagonale lorsque r tend vers l infini Ecrire une proc dure qui calcule la suite A de matrices pour une matrice tridiagonale sym trique d finie positive et comparer la diagonale aux valeurs propres obtenues dans l exemple num rique ci dessus 5 3 2 Solution valeurs propres de matrices tridiagonales Soient a1 bo 0 ee 0 a bo 0 bo a2 b3 b A 0 b a 0 A f br a br 0 br ar O gt 0 bn an pour 1 lt r lt n On note p x d t A x1 o I est la matrice unit d ordre r le polyn me caract ristique de la matrice et on pose po x 1 On suppose que les b sont non nuls PROPOSITION 5 3 1 On a pi x a1 x et Pr ar pr 1 b p _2fx 2 lt r lt n De plus les z ros des p x sont r els simples et pour 2 lt r lt n Li lt Y lt T2 lt Y2 lt lt Yr 1 lt Tr o 1 r sont les z ros de p x et y1 Yr 1 sont les z ros de pr x Version 15 janvier 2005 102 Chapitre 5 Valeurs et vecteurs propres Preuve La formule de r currence sur les polyn mes pr s obtient en d veloppant le d terminant par rapport sa derni re ligne Quant la propri t d entrelacement des z ros elle est un cas particulier de la proposition 7 1
364. jugu s on obtient essentiellement quatre valeurs possibles de Z conjugaison et unit pr s 1 2i 1 2 2 3i 2 3i 65 Za 1 2i 1 2 2 3 2 3i 39 52i Z3 1 2i 1 2i 2 3i 2 3i 25 60i Za 1 2i 1 2i 2 3i 2 3i 33 56i d o les d compositions 65 65 0 39 52 33 56 25 60 Posons A1 65 0 A2 39 52 A3 33 56 A4 25 60 et As 0 65 un simple calcul donne A1A42 1 2 AzA 1 18 A3A4 2 29 A A 1 5 d o la relation la Machin 1 1 a gt 1 a gt 2 a gt 1 27187275 12 3 3 Programme calcul de m par arctangente On rappelle que Me Arctan u X 1 fu2 1 2k 1 ul lt 1 k 0 Avec 1 jk uP ETE 2k AR 1 k 0 l erreur R u Arctan u Sn u est major e par le premier terme n glig parce que la s rie est altern e On a donc ju 2 3 Rn u lt a 2n 3 Pour que ce nombre soit inf rieur b7 il suffit que u t3 lt b P et avec u 1 x cela conduit n gt plnb lnz 3 2 Le calcul de 1 x peut se faire par le sch ma suivant proche du sch ma de Horner on pose 2 11 M m 172 i 2k 1 1 E H le kH Version 15 janvier 2005 12 3 Calcul de m par arctangente 391 pour 1 lt k lt n 1 Alors Sn 1 x La t La r alisation de ces calculs se fait en utilisant le type entier que nous avons d fini au d
365. l v THEN BEGIN FOR k TailleMax DOWNTO 1 DO IF ulk lt gt O THEN BEGIN Z V FlottantParChiffre z ul k l Multiplication FixerExposant z Exposant z k D calage PositifPlusPositif w z w Addition END FixerExposant w Exposant u Exposant w FixerSigne w LeSigne u LeSigne v END de uv lt gt 0 END de FlottantParFlottant Le produit d un flottant par un chiffre non nul se fait par PROCEDURE FlottantParChiffre VAR u Flottant x chiffre Multiplie u par le chiffre x gt 0 VAR k integer retenue chiffre BEGIN retenue 0 FOR k TailleMax DOWNTO 1 DO ProduitChiffres u kl x u k retenue IF retenue gt O THEN BEGIN DecalerMantisseDroite 1 u u 1 retenue FixerExposant u 1 Exposant u END END de FlottantParChiffre L op ration inverse est la division d un flottant par un chiffre Version 15 janvier 2005 12 2 Arithm tique flottante 379 PROCEDURE FlottantSurChiffre VAR u Flottant x chiffre Divise u par le chiffre x gt 0 VAR k integer retenue chiffre BEGIN IF EstFlottantNul u THEN ELSE BEGIN retenue 0 FOR k 1 TO TailleMax DO DivisionChiffres u kl x u k l retenue NormaliserFlottant u END END de FlottantSurChiffre Il est utile enfin de disposer d une proc dure qui d finit un flottant de valeur donn e PROCEDURE ChiffreEnFlottant VAR u Flottant x chiffre Donne u x o x gt 0 e
366. la condition ii et alors par iii avec j 1 on aurait p c 0 contrairement l hypoth se Donc p1 c 0 et au voisinage de c la fonction pi x ne change pas de signe Si p p1 x x c gt 0 au voisinage de c alors pour gt 0 assez petit les nombres pilc e et p c sont de signe oppos alors que p1 c e et p c sont de m me signe Donc C p c E pilc 1 et C p c e pi c e 0 Si p x p1 x c x gt 0 au voisinage de c alors le m me argument montre que C p c e pitc e 0 et C p c e pil c e 1 Supposons maintenant que p c 0 pour un c Ja b avec i gt 0 ce cas peut se produire simultan ment avec le cas pr c dent Alors lt m en vertu de ii et par iii on a pi 1 c pi 1 c lt 0 Il en r sulte que C pi 1 c pi c pi 1 c C pi 1c e pifc e pii c e 1 Par cons quent V c e V c e 1 si p x p x x c gt 0 et V c e V c e 1 si p x pi c x gt 0 En sommant sur les z ros de l intervalle a b on obtient V a V b r4 r Version 15 janvier 2005 148 Chapitre 7 Polyn mes COROLLAIRE 7 1 2 Soit p un polyn me coefficients r els et soient a et b deux nom bres r els tels que a lt b Si po Pm est une suite de Sturm pour p sur a b v rifiant la condition iv resp iv alors le nombre de z ros distincts de p dans l intervalle la b est V a V b resp
367. lateur l autre d une machine l autre Les programmes pr sent s dans ce livre sont pr vus pour fonctionner en TURBO Pascal sur Version 15 janvier 2005 Avant propos VII des ordinateurs compatibles PC et en THINK Pascal sur des ordinateurs Macintosh Nous avons retenu la version 4 pour TURBO Pascal et la version 2 pour THINK Pascal dans les deux cas il s agit d un compromis entre ce qui est disponible sur le march et ce qui est disponible dans les salles de travaux pratiques Les diff rences entre les deux compilateurs sont faibles et sont report es dans la mesure o elles sont pertinentes pour nos programmes dans l annexe A Le langage de programmation L enseignement de la programmation dans les classes pr paratoires constitue une in troduction l utilisation des ordinateurs pour la r solution de probl mes scientifiques Dans cette optique l apprentissage de l informatique est limit un petit nombre de concepts et la pratique de la programmation s appuie sur un sous ensemble assez limit du langage Pascal Ce sous ensemble comprend les types de base bool en entier r el et comme type compos les tableaux Sont en particulier exclus les pointeurs et les en registrements les proc dures et fonctions r cursives Les d clarations de proc dures et fonctions se limitent au niveau du programme principal pas de d claration l int rieur d une proc dure Dans la mesure o il ne s agit
368. lculer des majorants Pour cela on utilise l in galit de Hadamard qui affirme que le rayon spectral c est dire le module maximal des valeurs propres d une matrice a est major par n max gt i j 1 lt i lt n lail Si n On calcule l expression pour chaque matrice Ap Notons la dp on sait alors que les z ros de p sont compris entre d et dr La proc dure que voici calcule les majorants Le nombre s est tout moment le maximum des D la pour 1 lt i lt r 1 Evidemment rmax calcule le maximum de deux r els PROCEDURE MajorantsParHadamard n integer a b vec VAR d vec VAR k integer s real BEGIN a 1 abs a 1 d 2 abs b 2 rMax abs a 1 abs a 2 s abs a 1 abs b 2 FOR k 3 TO n DO BEGIN s rmax s abs b k 1 abs a k 1 abs b k d k rmax s abs b k abs a k END END de MajorantsParHadamard Ces proc dures mises ensemble donnent finalement la proc dure recherch e qui calcule directement les valeurs propres par valuation du polyn me caract ristique et recherche de ses z ros PROCEDURE ValeursPropresParDichotomie n integer a b vec VAR vp vec Calcule les valeurs propres d une matrice tridiagonale sym trique d ordre n La diagonale est dans le vecteur a la sous diagonale dans b On suppose qu aucun coeflicient de b n est nul Les valeurs propres sont rang es dans vp Version 15 janvier 2005 5 3 Valeurs
369. le plus petit pic de u Soit v p u v1 Un 2 avec fu sil lt j lt i 1 EPE Uj 2 sii lt j lt n 2 _ f s u k sik lt i 1 ps CODE She k 1 n 2 ce qui montre que v est un mot de Lukasiewicz si u l est R ciproquement on a s u i 1 s u i 1 s u i 1 s u i 1 ce qui montre que u est de Lukasiewicz si v l est Soit p la fonction d finie pour un mot u par p u p u o m est le plus petit entier gt 0 tel que p u p u On pose p T1 po pm PROPOSITION 9 2 2 Un mot u est un mot de Lukasiewicz si et seulement si p u 1 Version 15 janvier 2005 9 2 Mots de Lukasiewicz 241 Preuve Comme 1 est un mot de Lukasiewicz la condition est suffisante par le lemme ci dessus R ciproquement soit u un mot de Lukasiewicz alors par le lemme v p u v1 Un est un mot de Lukasiewicz Si n 1 on a v 1 supposons donc n gt 1 On a Un Un 1 1 et v 1 Soit k le plus grand entier tel que vk 1 Alors k lt n 2et k est un pic donc v p v PROPOSITION 9 2 3 Siu et v sont des mots de Lukasiewicz alors le mot w luv est un mot de Lukasiewicz Preuve Soient n u et m v On a 1 sik 1 s w k lt 1 s u k 1 si2 lt k lt n 1 s v k n 1 sin 2 lt k lt n m 1 Ceci montre que w est un mot de Lukasiewicz PROPOSITION 9 2 4 Soit w w1 w un mot de Lukasiewicz de longueur n gt 1 alors w 1 et il existe un unique couple u
370. le reste de la division euclidenne est demand on utilise la variante suivante PROCEDURE EntierModEntier u v entier VAR w entier VAR q entier BEGIN EntierDivEuclEntier u v q w END de EntierModEntier Il est maintenant tr s facile d crire une proc dure de calcul du pgcd de deux entiers PROCEDURE pgcdEntier u v entier VAR d entier VAR w entier BEGIN Version 15 janvier 2005 12 1 Entiers en multipr cision 365 WHILE NOT EstEntierNul v DO BEGIN EntierModEntier u v w u V V W END d u END de pgcdEntier Une premi re application est le calcul d une table de nombres de Fibonacci par simple application de la formule de d finition VAR F ARRAY 0 110 OF entier Pour ranger les nombres PROCEDURE CalculerNombresFibonacci n integer Calcul les nombres de Fibonacci F pour i 0 n VAR i integer BEGIN EntierNul F 0 Fo 0 ChiffreEnEntier 1 F 1 F 1 FOR i 2 TO n DO La formule F F5 1 F 2 EntierPlusEntier F i 1 F i 2 F i END de CalculerNombresFibonacci avec PROCEDURE ChiffreEnEntier x chiffre VAR u entier BEGIN FixerSigne u signe x FixerTaille u 0 u 0 abs x END de ChiffreEnEntier Notons que Feu Z E EER Si la taille maximale est 10 on peut calculer les nombres de Fibonacci inf rieurs 1001 soit d indice major par 10 In 100 In V5 In a ce qui donne 106 Voici ces nombres
371. le si et seulement si X 2 X mod f et pour tout diviseur premier p de d pecd x 2 X f 1 8 Ecrire une proc dure qui prend en argument un polyn me f et qui d termine si f est irr ductible 9 a D montrer que pour tout gt 1 il existe un plus petit entier naturel a f tel que XE L Xi 0 mod f On pose ro f 1 et pour i gt 0 on note r f le reste de la division euclidienne du polyn me 5 x par f On pose galement g XP 1 O lt j lt ai f b D montrer que la famille r g engendre l espace vectoriel H g 1 lt i lt a f 10 a D montrer que deux facteurs distincts de la d composition de g en produit de facteurs irr ductibles peuvent toujours tre s par s par l un des polyn mes r g b En d duire que deux facteurs distincts de la d composition de f en produit de facteurs irr ductibles peuvent toujours tre s par s par l un des polyn mes r f 11 Ecrire une proc dure qui prend en argument un polyn me f et qui affiche le message polyn me irr ductible si f est irr ductible et qui affiche une factorisation non triviale de f sinon Exemples num riques f X7 X 1 f X8 X 1 J Jr X 0 lt i lt 16 7 3 2 Solution Factorisation de polyn mes Le probl me d crit une m thode de factorisation des polyn mes coefficients dans Z 2Z Cette m thode se g n ralise en fait aux polyn mes coefficients dans Z pZ pour p premier ou m me dans un cor
372. le telle que A PAP avec A diag i n et Al gt gt JAn gt 0 On suppose de plus que la matrice P7 poss de une d composition LU Alors lim A ii 1 lt i lt n k co lim 4x i 0 1 lt j lt i lt n k co Avant de passer la preuve remarquons que les conclusions du th or me demeurent valables dans des cas plus g n raux Toutefois les d monstrations sont plus compliqu es que celle du th or me qui est d j assez longue Version 15 janvier 2005 5 2 M thode QR 97 Preuve Consid rons la puissance k i me de la matrice On a AF QiRx car AF Q1R1 Qi R1Q PR Q1 Q2R2 1R et plus g n ralement AS 5 Af 1R Appelons P QR P LU les factorisations QR et LU des matrices P et P71 Comme la matrice A est inversible on AF PAF P QR AFLA A U Or la matrice L tant unitriangulaire inf rieure la matrice AF LATF est de m me nature et de plus KN AELA PF L j i gt j Aj et en vertu des hypoth ses sur les valeurs propres de on a Jim ALA I Posons AFLA E I Fy avec lim F 0 k co Alors R LA F I RFR DR Pour des valeurs suffisamment grandes de k les matrices I RFR sont inversibles puisque RF R7 lt 1 quelle que soit la norme Elles admettent donc une factorisation QR RPE I RFR p Rpg qui est unique si l on impose par exemple que Rk ii gt 0 pour 1 lt i lt n Montrons que les suites Qk et R tendent vers la matri
373. leau des rangs Calcul du tableau d Des l ments de rang 0 S il reste des l ments on en prend un on supprime les arcs et si plus aucun arc n arrive j on ajoute j la queue rang j max rang j 1 rang i On met jour le rang END END END de LesRangsRapides Cette proc dure a un temps d ex cution en O n En effet la boucle WHILE est parcou rue une fois pour chaque sommet Voici un exemple de r sultat obtenu Voici la matrice O 1 O 1 0 0 0 0 O 1 0 0 O 1 0 0 O0 1 Version 15 janvier 2005 142 Chapitre 6 Matrices en combinatoire Oro Oe RH Voici les rangs rang 1 1 rang 2 rang 3 rang 4 rang 5 rang 6 BB N Dans le cas o la matrice n est pas acyclique les deux proc dures it ratives se terminent alors que la proc dure r cursive boucle Dans le tableau des rangs les l ments cycliques conservent leur valeur 1 et on peut donc ainsi les trouver d une autre mani re Notes bibliographiques Il existe une abondante litt rature sur les matrices totalement unimodulaires On pourra consulter les chapitres 19 20 et 21 et la bibliographie tr s compl te du livre suivant A Schrijver Theory of Linear and Integer Programming New York John Wiley and Sons 1986 L algorithme utilis dans la proc dure ElementaireEstTU est du type Union Find On trouvera une discussion d taill e de ce t
374. les usages ne pas afficher un terme nul sauf si le polyn me est nul ne pas afficher un coefficient de valeur absolue gale 1 sauf si c est le terme constant Ces conventions allongent quelque peu l criture mais il est tr s important de les respecter pour le confort du lecteur PROCEDURE EcrireMonome a real VAR n integer Est appel e avec a gt 0 BEGIN IF a lt gt 1 OR n 0 THEN Version 15 janvier 2005 A 3 Biblioth ques 427 write a 1 precision IF n gt 1 THEN write X n 1 ELSE IF n 1 THEN write X END de EcrireMonome PROCEDURE EcrirePolynome VAR p pol titre texte Affichage du titre puis du polyn me p VAR i n integer BEGIN writeln write titre La suite sur la m me ligne n Degre p IF n DegrePolNul THEN Le polyn me nul write 0 1 ELSE BEGIN IF p n lt O THEN write EcrireMonome abs p n n Le premier coefficient FOR i n 1 DOWNTO O DO Les autres coefficients non nuls IF NOT EstNul p i THEN BEGIN IF p i gt O THEN write ELSE write EcrireMonome abs p i i END END writeln END de EcrirePolynome Les op rations arithm tiques sur les polyn mes sont les suivantes PROCEDURE PolynomePlusPolynome p q pol VAR r pol PROCEDURE PolynomeMoinsPolynome p q pol VAR r pol PROCEDURE PolynomeUppose p pol VAR mp pol PROCEDURE PolynomeParPolynome p q pol VAR r pol
375. lie ere De ou 452 B 7 Entiers en multipr cision 452 B 8 Arithm tique flottant 453 B 9 G om trid 454 Version 15 janvier 2005 XIV Table des mati res Version 15 janvier 2005 Partie I Alg bre lin aire Chapitre 1 Calcul matriciel Ce chapitre pr sente les algorithmes de base pour le calcul matriciel en particulier les m thodes de Gauss et de Jordan pour la r solution de syst mes d quations lin aires Le calcul d un d terminant et de l inverse d une matrice sont trait s La d termination du rang d une matrice est expos e en d tail en effet ce calcul est important puisqu il quivaut la d termination de la dimension de l espace vectoriel engendr par un en semble donn de vecteurs Le premier paragraphe d crit un certain nombre de proc dures de base qui constituent avec les proc dures des sections suivantes une biblioth que utile de manipulation de matrices Sur la fa on d employer une biblioth que de proc dures voir l annexe A 1 1 Une biblioth que Nous commen ons par la pr sentation d une biblioth que de manipulation de matrices Quelques unes de ces proc dures sont faciles d autres seront pr sent es plus en d tail dans la suite de ce chapitre Nous d clarons sans surprise le type des vecteurs et matrices par CONST OrdreMax 12 L ordre maximal des matrices et vect
376. lle u m Taille v una 1 0 FOR n na DOWNTO m DO BEGIN IF uln 1 v m THEN Estimation de qEstime base 1 ELSE gEstime un 1 base u n DIV vim NaturelParMonome v 1 n m vprime v vb NaturelParChiffre vprime qEstime qvprime v WHILE CompareNaturel u quprime 1 DO BEGIN u lt u qEstime qEstime 1 g 1 NaturelMoinsNaturel quprime vprime qvprime END NaturelMoinsNaturel u qvprime u u u Qv qln ml qEstime Le bon quotient END IF qfna ml THEN FixerTaille q na m 1 ELSE FixerTaille q na m FixerSigne q 1 Version 15 janvier 2005 12 1 Entiers en multipr cision 363 r u Le reste END de DivisionNormalisee Il est maintenant facile de r aliser les trois op rations arithm tiques sur des entiers relatifs il suffit de tenir compte du signe PROCEDURE EntierPlusEntier u v entier VAR w entier BEGIN IF EstEntierNul u THEN W v ELSE IF EstEntierNul v THEN w u ELSE IF LeSigne u lt LeSigne v THEN BEGIN NaturelPlusNaturel u v w FixerSigne w LeSigne u END ELSE u et v de signe oppos CASE CompareNaturel u v OF 1 BEGIN ul gt NaturelMoinsNaturel u v w FixerSigne w LeSigne u END 0 EntierNul w u V 1 BEGIN ul lt NaturelMoinsNaturel v u w FixerSigne w LeSigne v END END END de EntierPlusEntier La soustraction et la multi
377. lottantInverselteration Nous avons s par les deux tapes parce qu il arrive assez souvent qu une valeur initiale meilleure que la n tre soit connue gr ce un autre calcul On arr te les it rations lorsque deux valeurs cons cutives sont tr s proches On peut choisir comme crit re qu elles ne diff rent que sur le dernier chiffre nous sommes plus exigeants dans la r alisation suivante FUNCTION FlottantProches VAR u v Flottant boolean VAR w Flottant BEGIN FlottantMoinsFlottant u v w FlottantProches EstFlottantNul w OR Exposant u Exposant w TailleMax 1 AND w 1 lt base 10 END de FlottantProches Le quotient de deux flottants s obtient par PROCEDURE FlottantSurFlottant u v Flottant VAR w Flottant BEGIN InverseFlottant v w FlottantParFlottant u w w END de FlottantSurFlottant Voici deux exemples de calculs avec des r sultats interm diaires indiqu s par le signe on voit bien la convergence quadratique de la m thode de Newton qui double pratiquement le nombre de chiffres exacts chaque it ration a 0 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E O0 0 03 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 1 0 03 33 30 00 00 00 00 00 00 00 00 00 00 00 00 00 E 1 0 03 33 33 33 30 00 00 00 00 00 00 00 00 00 00 00 E 1 0 03 33 33 33 33 33 33 33 30 00 00 00 00 00 00 00 E 1 0 03 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 E 1
378. lottants VAR i integer BEGIN FOR i 1 TO TailleMax DO FlottantNul i 0 FixerSigne FlottantNul 1 FixerExposant FlottantNul maxint DIV 2 END de InitFlottants On a choisi comme exposant du flottant nul un entier n gatif grand le choix de maxint au lieu de maxint DIV 2 peut provoquer des messages erreurs si on fait des op rations sur les signes Les op rations arithm tiques se font en trois parties les op rations sur les mantisses les op rations sur les exposants et les op rations sur les signes Les op rations sur les mantisses sont cause d erreurs d arrondi ces erreurs sont in vitables puisqu elles sont li es la limitation m me de la repr sentation On peut les att nuer en arrondissant au nombre le plus proche plut t que d arrondir par d faut Nous avons fait le deuxi me choix parce qu il simplifie les proc dures Commen ons par l addition L addition de deux flottants positifs ou de m me signe se fait en additionnant les mantisses mais apr s avoir proc d au d calage n cessaire pour se ramener des exposants gaux On utilise des proc dures de d calage vers la gauche et vers la droite de la mantisse les places devenant libres sont remplies avec le chiffre 0 PROCEDURE DecalerMantisseDroite d integer VAR u Flottant D cale vers la droite u1 un 0 0 u1 un a VAR k integer BEGIN FOR k TailleMax DOWNTO d 1 DO u k u k
379. lt gt Exposant v THEN ComparePositif signe Exposant u Exposant v ELSE BEGIN k 1 WHILE k lt TailleMax AND u k v k DO k k 1 IF k TailleMax 1 THEN ComparePositif 0 ELSE ComparePositif signe u k v k END END de ComparePositif Les proc dures d addition et de soustraction de deux r els flottants sont de m me nature que pour les grands entiers PROCEDURE FlottantPlusFlottant u v Flottant VAR w Flottant BEGIN IF LeSigne u LeSigne v THEN BEGIN PositifPlusPositif u v w FixerSigne w LeSigne u END ELSE CASE ComparePositif u v OF 1 BEGIN PositifMoinsPositif u v w FixerSigne w LeSigne u END 0 w FlottantNul 1 BEGIN PositifMoinsPositif v u w FixerSigne w LeSigne v END END Version 15 janvier 2005 378 Chapitre 12 Grands nombres END de FlottantPlusFlottant PROCEDURE FlottantMoinsFlottant u v Flottant VAR w Flottant BEGIN FixerSigne v LeSigne v FlottantPlusFlottant u v w END de FlottantMoinsFlottant La multiplication se r alise en multipliant chaque chiffre de l un des facteurs par l autre facteur et en additionnant le r sultat d cal du nombre appropri de places au produit partiel d j obtenu Ceci donne la proc dure que voici PROCEDURE FlottantParFlottant u v Flottant VAR w Flottant VAR k integer z Flottant BEGIN w FlottantNul IF NOT EstFlottantNul u OR EstFlottantNu
380. ltat la matrice R sous la forme de deux vecteurs d R et h R contenant respectivement ses l ments diagonaux et hors diagonaux Version 15 janvier 2005 74 Chapitre 4 Matrices tridiagonales Exemple num rique 4 1 2 3 4 1 4 1 5 1 A 2 1 10 1 7 35 1 14 6 4 1 7 6 14 4 On suppose que la matrice est de plus d finie positive D montrer qu il existe alors une matrice triangulaire inf rieure L l telle que R L L D montrer que L v rifie l 0 pour i j gt 1 Ecrire une proc dure qui prend comme donn e une matrice tridiagonale d finie positive sous la forme de deux vecteurs comme d crit la question pr c dente et qui d termine la matrice L sous forme de deux vecteurs galement 4 2 2 Solution tridiagonalisation m thode de Givens Soit n gt 2 un entier Les matrices consid r es sont r elles d ordre n On note tP la transpos e d une matrice P Pour p q dans 1 n p q on note G q p gij toute matrice de rotation d finie par gii l ifpetifq gij 0 i j ij p q et i j a p pp Iq C Ipa Ja p S avec 5 1 Etant donn s une matrice et deux indices p et q avec 2 lt p lt q il est facile de d terminer deux nombres r els c et s tels que l l ment b 1 de la matrice B b G q p AG q p soit nul Il suffit en effet d valuer le coefficient correspondant Comme bap 1 Sap p 1 Cag p 1 on
381. m trique de K X X2 il existe un polyn me sym trique h de K X1 X2 tel que X1X2h f ppo X1 X2 Mais puisque ppo est un polyn me une ind termin e il est sym triqueet pro f On a donc XiXoh f f X1 X2 et on peut d finir une suite de polyn mes sym triques fk gt 0 de K X1 X2 en posant fr JP X1 X2 t fo f et fry XX On en d duit fe s2fr41 fr s1 et donc par r currence fo X1 X2 52f1 fo s1 s2 s2 f2 fD s1 fO s1 85 f2 827 81 fO 1 65 fr D sfp s O lt k lt r Or comme le degr des fn est d croissant on a f 1 0 pour un r assez grand Par cons quent pr est donn par la formule FX X2 X XF R X k gt 0 On appelle sommes de Newton les polyn mes de K X1 X d finis par les formules co X1 Xn n et pour k gt 0 o X1 Xn XF XF X Comme ces polyn mes sont sym triques on peut les exprimer l aide des fonctions sym triques l mentaires Cette expression peut tre obtenue l aide de formules de r currence Version 15 janvier 2005 164 Chapitre 7 Polyn mes PROPOSITION 7 2 3 Les sommes de Newton v rifient les relations suivantes Ok 810k 1 82082 1 lsz 101 1 ksx 0 pour0O lt k lt n Ok 510k 1 1 shox _n 0 pour0 lt n lt k Preuve Nous donnerons deux d monstrations de ce r sultat Premi re d monstration Soit A K X X et soit T une nouv
382. mble muni d une relation d ordre total lt telle que toute partie non vide admet un plus petit l ment et une application y K E telle que pour Version 15 janvier 2005 11 1 Entiers de Gauss 327 tout v K 0 et pour tout u K il existe q r K tels que u vq r et y r lt v En pratique on prend le plus souvent E N U c muni de l ordre naturel sur les entiers PROPOSITION 11 1 1 Tout anneau euclidien est principal 2 __ 14 iV19 Notons que la r ciproque est fausse on peut prouver que l anneau Z x o x est principal mais pas euclidien Preuve Soit K un anneau euclidien Montrons d abord que quel que soit x K 0 0 lt y x En effet soit v K tel que y v soit minimal Si v 0 ona0 vq r avec y r lt y v d o une contradiction Pour d montrer que K est principal soit Z un id al non nul de K et soit v un l ment non nul de J tel que v soit minimal dans K 0 Pour tout u I il existe q r K tels que u vq r et y r lt v Or r u vq I et donc r 0 d apr s le choix de v Donc T est l id al engendr par v et K est principal En particulier on a la proposition suivante PROPOSITION 11 1 2 L anneau des entiers de Gauss est principal Preuve D apr s la proposition il suffit de prouver que K est euclidien Soient u K et v K 0 Posons u v w x iy et prenons des entiers m et n tels que x m
383. mbre premier p 3 mod 4 comme somme de deux carr s p a b BEGIN a 0 REPEAT a 1 UNTIL sqr a sgr trunc sqrt p sqr a p b trunc sqrt p sqr a END de DeuxCarres Version 15 janvier 2005 11 1 Entiers de Gauss 335 Sous les m mes hypoth ses pour p la recherche de l unique entier dp lt p 1 2 tel que d 1 mod p s effectue de fa on exhaustive La seule difficult est d viter le d passement de capacit Pour cela on r duit modulo p chaque tape et le passage de d 1 dp 1 1 s effectue par addition de 2d 1 FUNCTION RacineDeMoinsUn p integer integer Si p est premier non congru 3 mod 4 cette fonction retourne l unique entier dp lt p 1 2 tel que d2 1 mod p VAR d d1 integer BEGIN d 0 di 1 d d2 1 REPEAT di di 2 d 1 MOD p Pour viter le d passement de capacit d d 1 UNTIL d1 O RacineDeMoinsUn d END de RacineDeMoinsUn Pour savoir si un entier de Gauss z est irr ductible deux cas sont possibles Si z est un entier naturel on teste si z est premier et congru 3 modulo 4 Sinon on teste si z est premier FUNCTION EstIrreductible z EntierGauss boolean Teste si z est irr ductible VAR a b integer BEGIN a Re z b Im z IF b O THEN Estlrreductible EstPremier a AND a MOD 4 3 ELSE EstIrreductible EstPremier ModuleAuCarre z EN
384. me le nombre de mon mes figurant dans la table On ordonnera les mon mes suivant l ordre lexicographique de leurs multidegr s le mon me aX X pr c de le mon me a Xi X7 s il existe un indice k tel que Ti Tis lo T 3 Ph Th TE lt Th CONST DegreMax 20 NbreMaxMonomes 100 NbreMaxIndeterminees 8 Un mon me aX Y Z est repr sent par le vecteur a i j k Un polyn me p est repr sent par un tableau de mon mes La taille du polyn me est donn e par p 0 0 et les mon mes sont ordonn s suivant l ordre lexicographique de leurs multidegr s TYPE monome ARRAY O0 NbreMaxIndeterminees OF integer polynome ARRAY O0 NbreMaxMonomes OF monome Pour manipuler facilement la taille d un polyn me on utilise les deux proc dures sui vantes Version 15 janvier 2005 168 Chapitre 7 Polyn mes FUNCTION Taille p polynome integer Donne le nombre de mon mes composant le polyn me BEGIN Taille p 0 0 END de Taille PROCEDURE FixerTaille VAR p polynome t integer BEGIN plo O t END de FixerTaille On d finit ensuite les polyn mes 0 et 1 VAR PolynomeNul PolynomeUnite polynome PROCEDURE InitPolynomes D finition du polyn me nul et du polyn me unit VAR i integer BEGIN FixerTaille PolynomeNul 0 FixerTaille PolynomeUnite 1 PolynomeUnite 1 0 1 FOR i 1 TO NbreMaxIndeterminees DO PolynomeUnite 1 i 0 END de
385. ment convergentes donc converge absolument Il s crit m CO JI 5 gk 5 grtn MNm k l n 0 Nie Nm 20 En regroupant les termes le coefficient de x est Card n1 Nm n 2n2 mnm n et ce cardinal est pm n Notons que la proposition B 3 1 en est une cons quence imm diate puisque Ent Fm 1 27 En x PROPOSITION 8 3 3 Pour0O lt zx lt 1l ona OO n T 1 LE a Il l zk Preuve Le produit infini converge absolument car en passant au logarithme on a la s rie de terme g n ral log 1 x qui est quivalente z De plus pour chaque x 0 lt x lt 1 lasuite Fm m gt 1 est croissante et Fm x lt F x pour tout x fix et pour tout m Comme pm n p n pour n lt m on a pour 0 lt z lt 1 m X plin lt Fm lt F x n 0 donc la s rie 5 p n x converge De plus comme pm n lt p n on a D pm n a lt Y p n lt F a n 0 n 0 Version 15 janvier 2005 220 montrant que pour chaque x fix la s rie X pn x r fonction g n ratrice Lorsque m o on obtient lim Fn x M 00 ce qui prouve l identit Chapitre 8 Exemples combinatoires nombre de partitions de n dont les parts sont impaires paires des carr s des nombres premiers distinctes distinctes et impaires distinctes et paires des carr s distincts des nombres premiers distincts n converge uniform ment en m CO CO CO du D pm n
386. mes r f lt i lt a f Preuve Soient f et f2 deux facteurs irr ductibles distincts de f et donc de g D apr s la proposition 3 14 Tun des r g s pare f et f2 dans la d composition de g Donc quitte changer f et f2 on peut supposer que f divise pgcd g r g mais pas pgcd g r g 1 et que f divise pgcd g r g 1 mais pas pgcd g r g On en d duit en r duisant modulo f et en utilisant la proposition que f divise pgcd f c r f mais pas Version 15 janvier 2005 7 3 Factorisation de polyn mes 187 pgcd f ciri f 1 et que f2 divise pgcd f cr f 1 mais pas pgcd f ciri f Ceci entra ne en particulier c 1 car sinon c 0 et pgcd f cr f 1 1 et donc r f s pare f et f2 Les r sultats qui pr c dent fournissent un algorithme de factorisation d un polyn me en trois tapes 1 On se ram ne un polyn me sans carr l aide de la proposition 2 Si f est sans carr on utilise la proposition 7 3 10 pour d terminer si f est irr ductible 3 Si f est r ductible on calcule la suite des polyn mes r f pour s parer les poly n mes irr ductibles de f L algorithme pr c dent est en fait une variante de l algorithme de Berlekamp qui repose sur les m mes principes Dans cet algorithme on d termine l espace vectoriel H f de la mani re suivante On pose d deg f et pour tout k gt 0 on note Cko Ck1X Cka X le reste de
387. mme z est irr ductible on a d z ou d 1 Dans le premier cas z divise 21 et dans le second cas il existe a b K tels que az bz1 1 d o en multipliant par Z2 az22 bz122 22 et donc z divise 22 Notons I l ensemble des l ments irr ductibles de K Tout l ment z de K 0 admet une d composition unique de la forme z iQ II 10 tel avec c z 0 1 2 3 cz z N et o l ensemble des x I tels que c 2 0 est fini L existence d une telle d composition est imm diate en raisonnant par r currence sur z Pour l unicit on raisonne nouveau par r currence sur z en utilisant le lemme de Gauss Par exemple on a 2 4 1 i Reste d terminer les l ments irr ductibles Pour cela quelques r sultats d arithm tique nous serons utiles Commen ons par le th or me de Wilson PROPOSITION 11 1 4 Un nombre entier p est premier si et seulement si p 1 1 mod p Preuve Si p n est pas premier il poss de un diviseur non trivial et donc p 1 0 mod p D montrons maintenant que si p est premier alors p 1 1 mod p Le cas p 2 est trivial Pour p impair on peut d montrer le r sultat de diverses mani res En voici deux On pose G Z pZ a G est un groupe d ordre p 1 et donc tout l ment g de G v rifie g 1 Tous les l ments de G sont donc racines du polyn me X 1 On a donc dans Z pZ X XP 12 X 1 X 2
388. modulo 4 il existe une unique paire d entiers positifs a b telle que a b p La d composition de p est alors donn e par la formule p i a ib b ia Preuve Soit p un nombre premier p non congru 3 modulo 4 D apr s la proposition 11 1 8l p est somme de deux carr s R ciproquement si p a b o a et b sont des entiers positifs on a p i a ib b ai et les l ments a ib et b ia sont irr ductibles d apr s la proposition 1 1 9 Donc p i a ib b ai est l unique d composition de p ce qui d termine la paire a b On retrouve en particulier la d composition de 2 donn e plus haut 2 i 1 i Il reste donner un algorithme pour obtenir la d composition d un entier de Gauss z u iv non nul quelconque Posons d pged u v Puisque z d u d i v d on peut commencer par d composer d en produit d entiers irr ductibles l aide de l algorithme d crit ci dessus Autrement dit quitte remplacer u et v respectivement par u d et v d on se ram ne au cas o u et v sont premiers entre eux ce qui entra ne d apr s la proposition fL1 1 6 que z n a aucun diviseur irr ductible entier Soit x est un diviseur irr ductible de z Puisque x n est pas un entier naturel la propo sition montre que x est un nombre premier non congru 3 modulo 4 qui divise z R ciproquement soit p un facteur premier de z D apr s la proposition 11 1 10 p se d compose en p
389. n 2P TracerSegment x y x n y FigureLukasiewicz u x n y TracerSegment x y x y n FigureLukasiewicz v x y n END END de FigureLukasiewicz On appelle cette proc dure par FigureLukasiewicz w 1 1 par exemple L exemple de l nonc est obtenu de cette mani re une sym trie pr s Version 15 janvier 2005 248 Chapitre 9 Combinatoire des mots 9 3 Mots de Lyndon 9 3 1 Enonc mots de Lyndon Dans cet nonc on appelle mot toute suite finie d entiers u u1 u o n gt let o u 0 1 pour i 1 n L entier n est la longueur de u Si u u1 Un et v V1 Um sont des mots on note uv le mot u1 Un U1 Um Un mot de longueur n est repr sent par un tableau d entiers n 1 l ments l l ment d indice 0 contenant la longueur du mot 1 Ecrire une proc dure qui partir de deux mots u et v construit le mot wv Soient u u1 Un et v V1 Um deux mots Alors u est un d but de v si n lt m et u vi pour 1 n le mot u est une fin de v si n lt m et si Ui Um n i pour i 1 n On pose u lt v si u est un d but de v ou s il existe un entier k tel que u v pour i 1 k 1 et uk lt vk 2 D montrer que pour deux mots u v on a soit u lt v soit v lt u La relation lt d finie par u lt v si et seulement si u v ou u lt v s appelle l ordre lexicographique 3
390. n es des sommets d un polygone P que l on suppose simple et qui dessine P ainsi que la triangulation calcul e Exemple num rique n 8 p1 0 8 p2 0 0 p3 4 0 pa 2 6 p5 11 6 p6 10 1 pr 16 1 ps 16 8 Un coloriage 3 couleurs d une triangulation de P est une application de l ensem ble des sommets de P dans un ensemble 3 l ments les couleurs telle que les 3 sommets d un triangle aient des couleurs diff rentes Version 15 janvier 2005 10 4 Galerie d art 311 4 Prouver qu il existe un et un seul coloriage une permutation pr s des couleurs Ecrire une proc dure qui en calcule un Revenons au probl me de la galerie d art On dit qu un point g P couvre le point x P si fg x C P Chercher un ensemble de gardiens revient donc chercher une partie finie G C P telle que tout point de P est couvert par un point de G Un tel ensemble est une couverture de P 5 Soit c l une des couleurs d un coloriage et soit G l ensemble des sommets de P de couleur c D montrer que G est une couverture de P En d duire que pour surveiller une galerie d art n sommets n 3 gardiens suffisent On note x la partie enti re de x 6 Compl ter votre programme pour qu il marque d un signe distinctif les sommets d une couverture du polygone 7 Donner un exemple d un polygone simple n sommets pour lequel toute couverture a au moins n 3 sommets 8 D mo
391. n en un nombre impair de parts toutes distinctes D montrer que E n U n sauf si n est un entier de la forme n 4k 3k1 auquel cas E n U n 1 f 8 3 2 Solution partitions d entiers Une partition d un entier positif n est une suite a n1 n d entiers tels que n gt Nns gt 0etni n n Chaque n 1 lt i lt s est une part de a et s est le nombre de parts de la partition On note p n le nombre de partitions de n gt 0 et on pose p 0 1 Pour m gt 0 et n gt 0 on note pm n le nombre de partitions de n en parts toutes inf rieures ou gales m et on pose pm 0 1 On pose Fn a TT Ir E Wo k 1 k 1 L existence de cette limite sera justifi e ult rieurement PROPOSITION 8 3 1 Poun gt 0etm gt l ona n Pm_1 n sim gt n ii E Pm 1 n Pmin m sin gt m gt 1 Version 15 janvier 2005 8 3 Partitions d entiers 219 Preuve Si m gt n alors une partition dont les parts sont lt m est une partition dont les parts sont lt m 1 ce qui donne la premi re alternative si m lt n une partition peut soit commencer avec une part gale m puis continuer avec une partition de ce qui reste savoir de n m soit n tre constitu e que de parts toutes lt m 1 PROPOSITION 8 3 2 Pour 0 lt x lt 1 et pourm gt 0 ona m CO n 1 2 Pmln e JI zk k 1 Preuve Le membre de droite est le produit d un nombre fini de s ries absolu
392. n et un vecteur colonne b R Le probl me des moindres carr s est la d termination d un vecteur x R tel que Az b min Ay b 1 2 JER Ay bli 1 2 o d signe la norme euclidienne PROPOSITION 2 1 5 Le vecteur x R est solution de 1 2 si et seulement si tAAx Ab Le vecteur Ab est solution de 2 et si est de rang n alors c est la seule solution Preuve Soit x R Pour t r el et w dans R consid rons u t A x tw b Ax b 1 3 Ona u t Aw 2t Ax b Aw 1 4 En vertu de 3 x est solution de L 2 si et seulement si Pu t gt 0 pour tout t et pour tout w et par L 4 ceci se r alise si et seulement si Ax b Aw 0 pour tout w donc si et seulement si A Ax b 0 Ceci prouve l quivalence Pour v rifier que Ab est solution de 1 2 il suffit de calculer tAAAIb A A A9 b A A9 A b Ab L unicit de la solution provient de ce que l quation AAx Ab a une solution unique si A est de rang n puisqu alors AA est inversible 2 1 3 Programme pseudo inverses Commen ons le calcul de la pseudo inverse par le cas le plus simple savoir le cas o la matrice A d ordre m n est de rang n Il suffit alors de calculer tAA 1fA Or la matrice AA est sym trique et d finie positive puisque trtAAzx Ax 0 seulement si Ax 0 et comme est de rang n cela n est possible q
393. n que l int rieur relatif d une partie X de E est par d finition l int rieur de X dans l espace affine engendr par X Comme exemples de convexes citons les sous espaces affines en particulier les points les droites les hyperplans les boules ouvertes ou ferm es les demi espaces c est dire les composantes connexes du compl mentaire d un hyperplan enfin on v rifie ais ment que la famille des convexes est stable par intersection finie ou non Cette derni re Version 15 janvier 2005 10 1 Poly dres et enveloppes convexes 277 propri t permet de d finir deux classes importantes et naturelles de convexes les poly dres et les enveloppes On appelle poly dre convexe toute intersection d un nombre fini de demi espaces ferm s Les plus c l bres d entre eux en dimension trois sont les cinq poly dres r guliers de Platon le cube le t tra dre r gulier l octa dre le dod ca dre et l icosa dre Figure 10 1 1 Le cube le t tra dre et l octa dre On appelle enveloppe convexe d une partie X C E et on note E X le plus petit convexe pour la relation d inclusion de contenant X on v rifie ais ment que E X est l ensemble des barycentres des parties finies de points de X affect s de masses positives E X l XO Mer s 20 XO s 1 X partie finie de x 1 1 zEX zEX L enveloppe convexe de k 1 points affinement ind pendants est
394. n y not e V y est le nombre de changements de signe dans la suite po y p y pn y Les termes nuls de cette suite sont ignor s dans le d compte Par exemple pour la suite 1 2 1 0 2 la variation est 2 On rappelle le th or me de Sturm Si a et b sont deux nombres r els tels que a lt b et si p X ne s annule ni en a ni en b alors le nombre de z ros r els de p X dans l intervalle a b est V a V b 1 Montrer que la connaissance des quotients q1 y qn y et de py suffit pour calculer la variation V y de p X en y Version 15 janvier 2005 146 Chapitre 7 Polyn mes 2 Ecrire une proc dure qui prend en argument un polyn me p et qui calcule les quotients g1 X qn X et py Ecrire une proc dure qui calcule V y en fonction de y On admet que si a est un z ro de p on a 1 2 1 3 m An An 3 An An 2 An An 1 1 7 he al lt 2 max 1 n 3 D duire de la formule une minoration du module des z ros d un polyn me q X tel que q 0 0 En d duire une proc dure qui pour un z ro r el zo du polyn me p X calcule un r el gt 0 tel que p X n ait pas d autre z ro dans l intervalle xo zo el On pourra faire un changement de variable dans p X n 4 Ecrire un programme de localisation des z ros r els de p X Pour cela partant d un intervalle c d on calcule V c
395. ne integer BEGIN LargeurPartieEntiere 1 max 0 trunc log10 abs a LargeurSigne 1 signe a LargeurReel LargeurSigne LargeurPartieEntiere 1 precision END de LargeurReel FUNCTION LargeurComplexe a b real integer Donne le nombre de positions requises pour afficher le complexe a ib Compos des largeurs de a et de b et d un ventuel groupe de liaison VAR Largeura Largeurb Liaison integer BEGIN Largeur de a est nulle si et seulement si a 0 Version 15 janvier 2005 A 3 Biblioth ques 435 IF EstNul a THEN Largeura 0 ELSE Largeura LargeurReel a Il y a un signe entre a et b si et seulement si ab 0 Mais si b lt 0 le signe de b est compris dans la largeur de b IF EstNul a b THEN Liaison 0 ELSE Liaison 2 signe b Largeur de b est nulle si et seulement si b 0 Si b 1 on n crit pas 1 IF EstNul b THEN Largeurb 0 ELSE IF EstNul abs b 1 THEN Largeurb 2 signe b ELSE Largeurb 2 LargeurReel b Cas trait s par ment le complexe nul IF EstNul a AND EstNul b THEN LargeurComplexe 1 ELSE LargeurComplexe Largeura Liaison Largeurb END de LargeurComplexe PROCEDURE DebutMiseEnPage Mode NombreDeBlancs integer BEGIN IF Mode AligneADroite THEN write NombreDeBlancs IF Mode Centre THEN write NombreDeBlancs DIV 2 END de DebutMiseEnPage PROCEDURE FinMiseEnPage Mode NombreDeBl
396. ne suite d intervalles ventuellement r duits un point contenant chacun un et un seul z ro du polyn me de d part Pour mettre en pratique cet algorithme on doit g rer des intervalles et en particulier mettre de c t l un des deux intervalles r sultant d une dichotomie pour le traiter ult rieurement Ceci se fait en conservant ces intervalles dans une suite que nous r alisons sous forme de pile mais toute autre structure convient Il s av re conomique de g rer en m me temps que les intervalles les variations leurs extr mit s pour ne pas les recalculer On proc de comme suit Version 15 janvier 2005 7 1 Suites de Sturm 155 TYPE Intervalle ARRAY 0 1 OF real Suitelntervalles ARRAY 1 Nombrelntervalles OF Intervalle CoupleEntier ARRAY 0 1 OF integer SuiteCouplesEntier ARRAY 1 NombreCouples OF CoupleEntier Ces types permettent de g rer d une part les intervalles par leurs extr mit s et d autre part les couples de variations aux extr mit s On utilise alors trois variables VAR EnAttente integer IntervalleEnAttente Suitelntervalles VariationsEnAttente SuiteCouplesEntier pour les intervalles en attente et leurs variations l entier EnAttente tant le nombre d intervalles en attente Deux op rations doivent tre r alis es D une part mettre en attente un intervalle et les variations correspondantes d autre part la r cup ration d un tel objet mis en a
397. ne des options fait arr ter le programme par la commande halt La proc dure a donc approximativement la forme suivante PROCEDURE Menu VAR choix char Version 15 janvier 2005 A 4 Menus 441 Autres variables contingentes BEGIN writeln write Donner votre choix readln choix CASE choix OF LE Les choix offerts BEGIN END Autre choix BEGIN END Autre choix BEGIN END Autre choix BEGIN END HE Fin BEGIN writeln writeln J arr te halt END OTHERWISE Choix inexistant ELSE en Turbo Pascal bip END case END de Menu Comme nous l avons d j dit la syntaxe est l g rement diff rente en Turbo Pascal o OTHERWISE est remplac par ELSE sans point virgule La proc dure bip elle aussi s crit diff remment en THINK Pascal SysBeep 1 et en TURBO Pascal write chr 7 Il nous a paru commode de param trer quelques donn es le menu offre la possibilit de modifier les valeurs de ces param tres La proc dure du menu contient donc les choix suivants S Bascule test BEGIN IF test THEN BEGIN test false writeln Maintenant hors test END ELSE BEGIN test true writeln Maintenant en test END END 7 Modification de la pr cision d affichage Version 15 janvier 2005 442 Annexe A Un environnement BEGIN writeln Pr cision d affichage actuelle precision 1 write Donner la nouvelle valeur readln precision
398. ner le signe de l une d entre elles Or pour x gt m les fonctions ne changent plus de signe et lorsque z le signe de pm t Pm 1 x est celui de bm Il existe de nombreuses in galit s permettant de localiser les z ros d un polyn me en fonction de param tres divers Nous consid rons quelques in galit s bien classiques portant sur les polyn mes coefficients complexes Il suffit de consid rer des polyn mes unitaires c est dire dont le coefficient du terme de plus haut degr est 1 TH OR ME 7 1 7 Soit p X X ao un polyn me unitaire coefficients complexes de degr n et soit a un z ro de p Alors c lal lt max 1 22 lail la lt 1 max la l O lt i lt n 1 la lt max f na i O lt i lt n 1 lt 1 i iv ja lt MF lai Pour la preuve nous tablissons d abord le lemme suivant LEMME 7 1 8 Soit p X X an 1 X ao un polyn me unitaire coef ficients complexes Soient Co Cn_1 des nombres r els strictement positifs v rifiant n 1 Do Gi lt 1 Soit enfin Alors tout z ro a de p v rifie a lt M Preuve Soit z C tel que z gt M Alors pour 0 lt i lt n 1 on a a gt i Version 15 janvier 2005 7 1 Suites de Sturm 151 donc z c gt amp l 2 Il en r sulte que n 1 n 1 n 1 n 1 Ce gt BIS lall gt AD cd all D lze Jaillet gt 0 i 0 i 0 i 0 i 0 Preuve du th or me i
399. ni Enfin elle peut tre d finie comme s rie alg brique sur le corps deux l ments Cette suite et de nombreuses autres de nature semblable sont regroup es sous le terme de suites automatiques Voir l article de synth se de J P Allouche Automates finis en th orie des nombres Expo Math 5 1987 p 239 266 Version 15 janvier 2005 Partie IV G om trie 273 275 Chapitre 10 G om trie algorithmique La g om trie algorithmique est une branche r cente de l informatique th orique qui a pour objet la r solution efficace des probl mes g om triques rencontr s par exem ple en CAO conception assist e par ordinateur en robotique ou encore en synth se d image Ces probl mes se situent en g n ral en basse dimension et portent sur les objets l mentaires de la g om trie points polygones cercles etc Citons titre d exemple le probl me du d m nageur de piano comment d placer un objet le piano dans un environnement form d obstacles d une position une autre en vitant toute collision avec les obstacles Figure 10 0 1 Le probl me du d m nageur de piano La r solution de ce type de probl mes fait appel tout un arsenal d algorithmes vari s pour effectuer des op rations de recherche et de tri pour coder des arrangements d objets g om triques pour calculer des objets g om triques associ s d autres objets Version 15 janvier
400. normeV2 MatriceParVecteur n a v p VecteurParScalaire n p beta p p BAv K beta 2 ProduitScalaire n v p K 46p VecteurParScalaire n v K w VecteurPlusVecteur n p w w q p Kv FOR i 1 TO n DO FOR j 1 TO n DO ali j ali j v i w j w i x v j END de TransformationHouseholder et voici la proc dure qui r alise la tridiagonalisation PROCEDURE TridiagonalParHouseholder n integer VAR a mat VAR r integer BEGIN FOR r 1 TO n 2 DO TransformationHouseholder n r a END de TridiagonalParHouseholder La variante ci dessous des deux derni res proc dures permet de calculer en m me temps le produit des matrices de transformation Plus pr cis ment la fin de la proc dure TridiagonalParHouseholder2 la matrice Q est gale Q Pn 2 Pi de sorte que lon peut retrouver la matrice de d part partir de la matrice A obtenue en faisant le produit QA Q PROCEDURE TransformationHouseholder2 n r integer VAR a q mat VAR beta K normeV2 real i j integer V P W Z vec BEGIN de TransformationHouseholder2 VecteurHouseholder n a r 1 r v v v r 1 A normeV2 ProduitScalaire n v v IF EstNul normeV2 THEN beta 2 ELSE beta 2 normeV2 MatriceParVecteur n a v p Version 15 janvier 2005 4 3 Tridiagonalisation m thode de Householder 83 VecteurParScalaire n p beta p p BAv K beta 2
401. ns e1 1 0 0 et zo Pe On a alors pour toute matrice F _1 Azo APe P P7 AP e PA A e X A Pei X A ro ce qui d montre le lemme Soit B Fp On pose pour tout k gt 0 k BFxo et on note Vg l espace vectoriel en gendr par la famille gt 0 Soit r le plus grand entier tel que les vecteurs o 1 r soient lin airement ind pendants LEMME 2 2 7 L espace vectoriel Vg est engendr par la famille x o lt i lt r Preuve Soit E le sous espace vectoriel de Vg engendr par les vecteurs o 1 Er On a r41 E par d finition de r Par r currence supposons que x soit l ment de E Alors r n 1 est combinaison lin aire des vecteurs Bxo 21 Bx1 2 Bzr 2 41 Donc r4n 1 E ce qui conclut la r currence L tape suivante consiste d montrer que la restriction Vg de toutes les matrices de F 1 est une homoth tie PROPOSITION 2 2 8 Pour tout A Fp et pour tout x Vg on a Ax A x Preuve La d monstration se fait en deux tapes On commence par d montrer que chaque matrice de F _1 d finit un endomorphisme de Vg dont la matrice dans la base ti o lt i lt r est triangulaire Version 15 janvier 2005 38 Chapitre 2 Manipulation de matrices LEMME 2 2 9 Pour tout Fp et pour tout entier i il existe des nombres com plexes 0 lt j lt i tels que At A A zi Xi 1 A ti 1 Xo A to Preuve Le
402. nsemble E de matrices de K est trigonalisable si et seulement si l alg bre de Lie engendr e par E est r soluble Version 15 janvier 2005 2 2 Matrices trigonalisables 37 Preuve Soit E un ensemble trigonalisable de matrices et soit P une matrice telle que l ensemble EP P TAP A E soit form de matrices triangulaires Or l application P 1TAP est un automorphisme de l alg bre de Lie Kn Comme l alg bre de Lie engendr e par EP est r soluble d apr s la proposition B 2 4 l alg bre de Lie engendr e par E l est galement R ciproquement supposons que l alg bre de Lie F engendr e par E soit r soluble de classe p et soit 0 Foc Fc c F une suite de r solution de F On d montre par r currence sur p que F est trigona lisable ce qui entra ne a fortiori que E est trigonalisable Si p 1 les matrices de F commutent deux deux et on est ramen la proposition Supposons pr sent p gt 1 La d monstration repose sur plusieurs lemmes interm diaires qui reprennent peu pr s les questions de l nonc LEMME 2 2 6 Toutes les matrices de F _1 ont un vecteur propre xo commun Preuve Comme Fp 1 est une alg bre de Lie r soluble de classe p 1 l hypoth se de r currence montre que Fp 1 est trigonalisable Soit P une matrice inversible telle que pour tout F 1 PAP soit triangulaire Notons A A le coefficient de P AP situ en premi re ligne et premi re colonne et poso
403. nt Arti ij Dr iil Dr j j Br ij de sorte que Ak 1 ii Bk ii pour 1 lt i lt n et limg_ o Apr1 5 0 pour i gt j Ceci ach ve la v rification La m thode est simple programmer Une it ration consiste d composer la matrice et faire le produit des facteurs dans l ordre inverse Voici une r alisation PROCEDURE IterationQR n integer VAR a mat VAR q r mat BEGIN DecompositionQR n a q r MatriceParMatrice n r q a END de IterationQR Dans cette proc dure DecompositionQR est l une des proc dures de d composition qui ont t pr sent es au chapitre 3 Voici quelques exemples num riques o les matrices imprim es sont les Ag pour diverses valeurs de k Voici la matrice lue 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 0 000 1 000 4 000 Matrice apr s 5 it rations 5 326 0 497 0 000 0 000 0 000 Version 15 janvier 2005 5 2 M thode QR 0 497 4 732 0 718 0 000 0 718 4 228 0 000 0 000 0 667 0 000 0 000 0 000 Matrice apr s 10 it rations 5 608 0 282 0 000 0 282 5 035 0 298 0 000 0 298 4 064 0 000 0 000 0 158 0 000 0 000 0 000 Matrice apr s 30 it rations 5 731 0 021 0 000 0 021 5 001 0 003 0 000 0 003 4 000 0 000 0 000 0 000 0 000 0 000 0 000 Matrice apr s 40 it rations 5 732 0 005 0 000 0 005 5 000 0 000 0 000 0 000 4 000 0 000 0 000 0 000 0 000 0 00
404. nt et calculer V2 avec 30 d cimales 12 2 2 Solution arithm tique flottante La m thode de Newton pour le calcul d un z ro d une fonction r elle d rivable revient calculer une suite x 1 gt 0 de nombres r els par la formule ee n en partant d un point xo convenablement choisi On suppose bien entendu que f ne s annule en aucun des points n Rappelons l interpr tation g om trique de la for mule n 1 est l abscisse de l intersection de la tangente la courbe y f x au point n f n avec laxe des x Si la suite converge vers un point x et si f x 0 alors f x 0 comme on le voit en faisant tendre n vers l infini dans l quation ci dessus Nous renvoyons la litt rature pour une discussion plus d taill e de la m thode de Newton voir les notes en fin de chapitre Consid rons quelques cas particuliers Soit a un nombre r el positif et soit f d finie par 1 fa 1 7z Alors 1 a est la solution de f x 0 et comme f x 2 az on a 3x az 2 La fonction f tant concave on a 0 lt n41 lt 1 va si O lt n lt 1 va et n41 lt 1 va si 1 ya lt zn Il faut s assurer que 0 lt n41 et en fait que 0 lt z1 Or x 0 si et seulement si o f xo f o donc si et seulement si xo y 3 a Il en r sulte que la m thode converge si xo est pris dans l intervalle 0 V3 al En particulier si a 2 on peut prendre zo 1 Version 15 janvier 2005 3
405. nteger VAR i j integer g Z complexe BEGIN FOR j k 1 TO n DO BEGIN ComplexeSurComplexe alk j a k k g FOR i k 1 TO n DO BEGIN ComplexeParComplexe g ali k z ComplexeMoinsComplexe a i j z ali jl END END END de PivoterGauss BEGIN de BaseDesLignes A B rang 0 FOR i 1 TO m DO Lignes i i Au d part les lignes sont dans l ordre inversible true k 1 WHILE k lt m DO BEGIN q ChercherPivot k inversible q lt gt n 1 IF inversible THEN BEGIN IF q gt k THEN EchangerFinColonnes k q PivoterGauss k rang rang 1 LignesIndependantes rang Lignes k k Kk 1 END ELSE BEGIN Version 15 janvier 2005 48 Chapitre 2 Manipulation de matrices EchangerLignes k m m m il END END sur k END de BaseDesLignes Enfin la proc dure ci dessous donne la dimension de l espace vectoriel engendr par un ensemble fini de matrices FUNCTION dim CardE n integer E EnsembleDeMatrices VAR BaseE EnsembleDeMatrices integer Calcule la dimension de l espace vectoriel engendr par un ensemble E de CardE ma trices et extrait de E une base de cet espace vectoriel VAR i r integer L vecE ELinearise matC BEGIN FOR i 1 TO CardE DO Linearise n Eli ELineariselil BaseDesLignes CardE n n ELinearise r L FOR i 1 TO r DO BaseEli E L i dim r END de dim Pour calculer l
406. ntrer que tout polygone simple poss de au moins deux oreilles 9 Donner un exemple d un polygone simple n sommets poss dant exactement deux oreilles 10 4 2 Solution galerie d art Soit P un polygone simple d un plan affine euclidien Une triangulation de P est un ensemble T de triangles v rifiant les trois conditions suivantes 1 les sommets des triangles sont des sommets de P 2 la r union des triangles est P 3 les int rieurs des triangles sont deux deux disjoints Observons que toute ar te du polygone P est un c t d un unique triangle de la trian gulation de P Il sera utile de noter p1 p2 pA le polygone d fini par le contour polygonal simple p1 p2 U p2 pa U U pu p1 On appelle diagonale de P tout segment p p joignant deux sommets non cons cutifs de P tel que le segment ouvert p p soit inclus dans l int rieur du polygone P Dans ce cas en supposant lt j le polygone P est la r union des deux polygones d int rieurs disjoints P1 P4 Dj Pn et pi p3 4 1 Dans le cas o j 2 le point p est une oreille TH OR ME 10 4 1 Tout polygone simple n gt 4 sommets admet une diagonale Version 15 janvier 2005 312 Chapitre 10 G om trie algorithmique Figure 10 4 2 Tout polygone ayant au moins 4 sommets admet une diagonale Figure 10 4 3 Preuve du th or me de l existence d une diagonale Preuve Soit p un somme
407. nv i 1 sur lenveloppe convexe j m k VoisinGauche i j Premier site adjacent gauche WHILE k lt gt 0 DO BEGIN Progression gauche InsererAGauche k i j k k VoisinGauche i j END END END boucle sur i END de Delaunay Voici les calculs faits pour les sites de la figure i Le plus proche voisin de 1 est 6 Le voisin droit de 1 6 est 0 Le voisin gauche de 1 6 est 2 Le voisin gauche de 1 2 est 3 Le voisin gauche de 1 3 est 0 Le plus proche voisin de 2 est 6 Le voisin droit de 2 6 est 1 Version 15 janvier 2005 308 Le Le Le Le Le Le Le Le Le Le Le Le Le Le Le Le Le Le Le Le Le Le Le Le Chapitre 10 G om trie algorithmique voisin droit de 2 1 est 3 voisin droit de 2 3 est 4 voisin droit de 2 4 est 5 voisin droit de 2 5 est 6 plus proche voisin de 3 est 2 voisin droit de 3 2 est 1 voisin droit de 3 1 est 0 voisin gauche de 3 2 est 4 voisin gauche de 3 4 est 0 plus proche voisin de 4 est 5 voisin droit de 4 5 est 2 voisin droit de 4 2 est 3 voisin droit de 4 3 est 0 voisin gauche de 4 5 est 0 plus proche voisin de 5 est 2 voisin droit de 5 2 est 4 voisin droit de 5 4 est 0 voisin gauche de 5 2 est 6 voisin gauche de 5 6 est 0 plus proche voisin de 6 est 2 voisin droit de 6 2 est 5 voisin droit de 6 5 est 0 voisin gauche de 6 2 est 1 voisin gauche de 6 1 est 0 Venons en au trac du diagramme de Vorono le t
408. nvier 2005 7 1 Suites de Sturm 147 ou la condition oppos e iv sip c 0 pour un c Ja b alors p x p1 x c x gt 0 au voisinage de c A une suite de Sturm et un point y de l intervalle a b on associe la variation de la suite en y nombre not V po PDm y ou plus simplement V y qui est le nombre de changements de signes dans la suite de nombres po y Pm y Les termes nuls de cette suite sont ignor s dans le d compte Soit a amp o am une suite de nombres r els on d finit Cao 4m Card i 5 0 lt i lt j lt m aa lt 0et ax 0sii lt k lt j Par exemple C 1 2 1 0 2 2 Avec cette notation V po Pm Y V y C po y Pm y TH OR ME 7 1 1 Soit p un polyn me coefficients r els et soient a et b deux nombres r els tels que a lt b Soit po Pm une suite de Sturm pour p sur a b et posons r Card c a b p c 0 et p x p x x c gt 0 au voisinage de c r_ Card c fa b p c 0 et p x p1 x c x gt 0 au voisinage de c Alors V a V b r r_ Preuve Remarquons d abord que V y est constant sur tout intervalle contenu dans a b et sur lequel aucune fonction p ne s annule Comme les p n ont qu un nombre fini de z ros il suffit d examiner la modification de V y en ces points Supposons d abord que c Ja b soit un z ro de p et montrons que p1 c 0 En effet sinon on aurait m gt 1 par
409. odule z complexe real FUNCTION Arg z complexe real Version 15 janvier 2005 B 5 Nombres rationnels 451 PROCEDURE FixerRe VAR z complexe r real PROCEDURE Fixerlm VAR z complexe r real PROCEDURE ReelEnComplexe VAR z complexe r real PROCEDURE CartesienEnComplexe a b real VAR z complexe PROCEDURE PolaireEnComplexe rho theta real VAR z complexe Op rations PROCEDURE ComplexePlusComplexe u v complexe VAR w complexe PROCEDURE ComplexeMoinsComplexe u v complexe VAR w complexe PROCEDURE ComplexeParComplexe u v complexe VAR w complexe PROCEDURE ComplexeSurComplexe u v complexe VAR w complexe PROCEDURE ComplexeParReel z complexe r real VAR w complexe PROCEDURE ComplexeUppose z complexe VAR moinsz complexe PROCEDURE Conjugue z complexe VAR zbarre complexe B 5 Nombres rationnels TYPE rat ARRAY 0 1 OF integer VAR RatZero RatUn rat Initialisation PROCEDURE InitRationnels Lecture criture PROCEDURE EntrerRat VAR a rat titre texte PROCEDURE EcrireRat VAR a rat titre texte Constructeurs FUNCTION Numerateur VAR r rat integer FUNCTION Denominateur VAR r rat integer PROCEDURE FixerNumerateur VAR r rat n integer PROCEDURE FixerDenominateur VAR r rat d integer PROCEDURE EntierEnRat VAR r rat e integer PROCEDURE FaireRat n d integer VAR r rat Op rations PROCEDURE RatPlusRat u
410. oit u un mot de Lyndon soit v un pr fixe propre de u et soit a une lettre Si u lt va alors va est un mot de Lyndon Preuve Le mot u se factorise en u vbw avec b une lettre et b lt a Soit ha une fin de va et posons v gh Montrons que va lt ha Si h est un pr fixe de v alors v se factorise en v hch pour une lettre c et un mot M Le mot hbwg est un conjugu de u hch bw et comme u est un mot de Lyndon on a c lt b Mais alors c lt a donc va hch a amp ha Si h n est pas pr fixe de v il y a deux possibilit s soit v h alors videmment va amp ha soit h amp v Or ce cas ne peut pas se pr senter car en effet h v entra ne hwg amp vw u ce qui est impossible parce que hwg est un conjugu de u COROLLAIRE 9 3 10 Soit P x L1 p lp 1 lq v la factorisation de Du val d un mot non vide x Si v est le mot vide la factorisation de Lyndon de x est l1 lp p 1 lq sinon elle est la concat nation de cette factorisation et de la factorisation de Lyndon de v Cette observation conduit donc naturellement l algorithme suivant calculer d abord une factorisation de Duval du mot donn Si le dernier facteur est le mot vide la fac torisation priv e du dernier facteur est une factorisation de Lyndon Sinon tous les facteurs sauf le dernier font partie de la factorisation de Lyndon et on it re le proc d sur le dernier facteur Cet algorithme s crit comme
411. olyn me f Z X1 d fini par f0 X1 p X1 0 PROCEDURE pZero p polynome VAR pO polynome Passe de p X1 X2 po X1 p X1 0 VAR i integer m monome BEGIN pO PolynomeNul FOR i 1 TO Taille p DO IF pli 2 O THEN BEGIN Version 15 janvier 2005 174 Chapitre 7 Polyn mes m 0 pli O0 m 1 pli 1 m 2 0 MonomePlusPolynome n m pO END END de pZero La formule de r currence peut tre impl ment e comme suit PROCEDURE XplusYpuissanceK k integer VAR p polynome p X Y VAR i integer BEGIN FixerTaille p k 1 FOR i O TO k DO BEGIN pli 1 O Binomial k i pli 1 1 i pli 1 2 keas END END 4 de XplusYpuissanceK PROCEDURE Transforme p polynome VAR q polynome Passe de p X1 X2 p X1 X2 0 VAR i integer r polynome BEGIN q PolynomeNul FOR i 1 TO Taille p DO IF pli 2 O THEN BEGIN XplusYpuissanceK pli 1 r PolynomeParEntier r pli 0 PolynomePlusPolynome 2 q r q END END de Transforme PROCEDURE Recurrence p polynome VAR q polynome Passe de p X1 X2 p X1 X2 p X X2 0 X1X2 VAR i integer r polynome BEGIN Transforme p r PolynomeMoinsPolynome 2 p r q FOR i 1 TO Taille q DO BEGIN qli 1 q i 1 1 qli 2 q i 2 1 END END de Recurrence Le calcul de pf s obtient maintenant facilement Version 15 janvier 2005 7 2 Polyn me
412. ommet r ductible matrice polyn me 178 r f rence param tre 415 r gion de Vorono 294 B00 r soluble alg bre de Lie B3l p4 Pl icz 246 restes chinois th or me des E r ticule Rutishauser m thode de S semi anneau E 459 simplexe sommes de Newton sommet 279 de Vorono B00 Stirling formule de B44 Sturm suite de 102 cs 1 A ad suffixe d un mot 235 propre P33 suite automatique il de Thue re CE sym trique fonction pores 59 60 polyn me 4 160 syst me lin aire 9 triangulaire tridiagonal T taille d un polyn me texte type pi Thue Morse suite de titre p totalement unimodulaire matrice Ka trace d une matrice transformation de Landen B98 triangle de Delaunay triangulation Bid de Delaunay R95 triple produit identit du U unimodulaire matrice L17 unit unitaire polyn me Lad unitriangulaire matrice Version 15 janvier 2005 460 V valeur propre E d une matrice tridiagonale valeur param tre variation 45 147 vecteur propre 85 vide mot Vorono ar te de Bod diagramme de Version 15 janvier 2005 INDEX
413. ompris entre 0 et B 1 Un r el flottant est compos d un exposant e un entier d un signe s 1 1 et d une suite d1 dn de chiffres avec d 0 sauf si le nombre est nul Le signe de z ro est 1 La valeur du r el flottant est N sx B bS d B i 1 Appelons normalis e l criture d un flottant avec d 0 Les op rations arithm tiques ne fournissent pas toujours une repr sentation normalis e et il faudra donc les normaliser Un r el flottant peut tre d fini comme un tableau de chiffres dont les indices vont de 1 N Les types de d part sont Version 15 janvier 2005 12 2 Arithm tique flottante 373 CONST base 100 DecimauxParChiffre 2 Nombre de digits pour crire un chiffre TailleMax 20 TYPE chiffre integer Flottant ARRAY 1 TailleMax OF chiffre VAR FlottantNul Flottant Contrairement aux choix faits pour les entiers en multipr cision nous d finissons le flottant nul comme objet et non pas comme proc dure La diff rence est mince donc pour varier Dans les emplacements d indice 1 et 0 sont rang s respectivement le signe et l exposant du flottant comme pour les grands entiers on utilisera des proc dures pour acc der ou modifier ces objets FUNCTION Exposant VAR u Flottant integer PROCEDURE FixerExposant VAR u Flottant p integer FUNCTION LeSigne VAR u Flottant integer PROCEDURE FixerSigne VAR u Flottant s integer
414. on peut supposer que le coefficient af le pivot west pas nul sinon A ne serait pas Version 15 janvier 2005 10 Chapitre 1 Calcul matriciel de rang n On r sout alors la premi re quation par rapport x et on limine cette variable des autres quations ce qui donne le syst me quivalent suivant 1 ai 121 af 2 a3 2T92 a 2 n 2T2 1 di ntn 2 a2 n 2 n n bp LE bP A n Apr s une ventuelle permutation de la deuxi me ligne avec une ligne d indice sup rieur on peut supposer le pivot a non nul et recommencer avec ce syst me Apr s k it rations la matrice A 1 a la forme 1 1 1 1 aa af di 2 2 gesan a ai k 1 k h A 0 akk akn k 1 k 1 0 aAk 1 k 1 k 1 n Ar it 0 0 an k 1 an n Les quations de pivotage a a de A A sont dis a ai 0 aaa pour k 1 lt i j lt n GETA b a aaa pour k 1 lt i lt n et par ailleurs k 1 _ pour k 1 lt i lt netj k a k ajj sinon pt9 p pour 1 lt i lt k l1 Notons que le passage de l quation Ax b P quation A t x b revient multiplier les deux membres de la premi re quation par la matrice de Frobenius G une matrice de Frobenius est une matrice qui ne diff re de la matrice unit que par une ligne ou colonne donn e par 1 0 0 0 1 0 Gk ne ace 1 0 0 a 5 ja 0 1 Version 15 janvier 2005 1 2 R solut
415. on s i n rang rang s i n i END RangPermutation rang END de RangPermutation Pour utiliser cette fonction sur des exemples de taille raisonnable on aura int r t la d clarer de type longint il faut alors faire le m me changement pour la variable rang Les op rations inverses donnant la permutation partir du rang sont les suivantes PROCEDURE AugmenterPermutation VAR s Suite i n integer VAR j k integer BEGIN k s i FOR j i 1 TO n DO IF s j gt k THEN s j s j 1 END de AugmenterPermutation PROCEDURE PermutationDeRang VAR s Suite n r integer VAR i integer BEGIN s n 1 FOR i n 1 DOWNTO 1 DO BEGIN s i 1 r MOD n 1 i AugmenterPermutation s i n r r DIV n 1 i END END de PermutationDeRang Version 15 janvier 2005 8 2 Nombres de Bernoulli 211 8 2 Nombres de Bernoulli 8 2 1 Enonc nombres de Bernoulli Les polyn mes de Bernoulli B x sont d finis par leur s rie g n ratrice tett oo 4r A AA x ER tEC t lt 2r et les nombres de Bernoulli sont par d finition les nombres Bn Bn 0 pour n gt 0 1 D montrer que l on a Bo 1 B 1 2 et que B n 1 0 pour n gt 1 D montrer que Bn Y pP n gt 2 k 0 On note 2 mr 2 D montrer que pour n gt 0 n n k Bn x gt k Bkz Les nombres de Bernoulli sont rationnels et seront repr sent s
416. onn e pour u dans cette proposition en permet l valuation par un sch ma de Horner l op ration r p t e consiste r aliser s sm vi Ceci peut tre fait sans difficult sur des entiers en multipr cision si m et v sont des entiers simple pr cision R ciproquement pour passer d une repr sentation en base b la repr sentation modu laire il suffit d valuer u gt 50 U b modulo m pour chaque j encore une fois par le sch ma de Horner Comme exemple de calcul consid rons les nombres de Catalan Ils sont d finis par Cn 2 3 On note m Les nombres de Catalan interviennent en combinatoire dans de tr s nombreuses situations Nous les avons d j rencontr s au chapitre 9 o nous avons prouv qu ils comptent les mots de Lukasiewicz Voici un exemple similaire appelons suite de Catalan de longueur n 1 une suite ao a1 an d entiers positifs ou nuls tels que ao an 0 et ai ai 1 pour 0 n 1 En fait l entier n est n cessairement pair PROPOSITION 11 2 3 Le nombre de suites de Catalan de longueur 2k 1 est cx Preuve Soit u uo Un une suite d entiers avec u 0 1 On pose 9 P f s u j du j 0 n i 0 Avec la terminologie du chapitre 9 la suite u est un mot de Lukasiewicz si et seulement si s u n 1 et s u j gt 0 pour 0 lt j lt n 1 Si u est un mot de Lukasiewicz alors la suite 0 s u 0 s
417. onnes de A et pour matrice K la matrice qui donne explicitement les coefficients de d pendance lin aire des autres colonnes de A dans la famille U Or ces coefficients s obtiennent comme solution d quations lin aires et on voit apr s un peu de r flexion que ces coefficients sont fournis dans la m thode de Gauss chaque fois que l on rencontre une colonne qui n a pas de pivot non nul Il suffit donc d adapter l g rement la proc dure BaseDesColonnes du chapitre 1 PROCEDURE DecompositionSurBaseDesColonnes m n integer a mat VAR rang integer VAR u h mat VAR p vecE Calcule deux matrices u et h telles que a u uh Le rang de u est rang et p est le vecteur des indices des colonnes de u et de h VAR k q integer independant boolean FUNCTION ChercherPivot k integer integer Les m mes que PROCEDURE EchangerFinlignes i j integer dans BaseDesColonnes PROCEDURE EchangerColonnes i j integer PROCEDURE PivoterGauss k integer BEGIN de DecompositionSurBaseDesColonnes u a FOR k 1 TO n DO plk k Initialisation de p k 1 rang n WHILE k lt rang DO BEGIN q ChercherPivot k independant q lt gt m 1 IF independant THEN BEGIN IF q gt k THEN EchangerFinlignes k q PivoterGauss k k k 1 END ELSE BEGIN EchangerColonnes k rang EchangerE p k plrang l R percussion sur p rang rang 1 END END de k Version 15 janvier 2005
418. ont FUNCTION Longueur VAR u mot integer BEGIN Longueur u 0 END de Longueur PROCEDURE FixerLongueur VAR u mot n integer BEGIN u 0 n END de FixerLongueur Les deux proc dures suivantes sont crites sur le mod le d j rencontr plusieurs fois PROCEDURE EntrerMot VAR u mot titre texte VAR i integer BEGIN write titre i 0 WHILE NOT eoln DO BEGIN i i 1 read u i END FixerLongueur u i readln END de EntrerMot PROCEDURE EcrireMot VAR u mot titre texte VAR i integer BEGIN writeln write titre IF EstMotVide u THEN write par exemple ELSE FOR i 1 TO Longueur u DO write u i precision END de EcrireMot Rappelons que precision est une variable globale de notre environnement voir lan nexe A La proc dure de concat nation de deux mots s crit Version 15 janvier 2005 9 1 Terminologie 237 PROCEDURE Concatener u v mot VAR w mot VAR i n integer BEGIN w u n Longueur u FOR i 1 TO Longueur v DO wli n vlil FixerLongueur w n Longueur v END de Concatener Les deux proc dures suivantes sont parfois utiles FUNCTION EstMotVide VAR u mot boolean BEGIN EstMotVide Longueur u 0 END de EstMotVide PROCEDURE LettreEnMot VAR u mot x integer BEGIN u 1 x FixerLongueur u 1 END de LettreEnMot Nous allons utiliser des proc dures q
419. orm d une matrice orthogonale Q et d une matrice triangulaire sup rieure R telles que QR Montrer que si est inversible alors la d composition QR de A est unique si les signes des l ments diagonaux de R sont fix s 3 3 2 Solution d composition QR m thode de Givens La m thode de Givens de calcul d une d composition QR d une matrice A consiste pr multiplier par une suite de matrices de rotation qui annulent successivement les coefficients en dessous de la diagonale de A La matrice obtenue est donc triangulaire sup rieure et le produit des matrices de rotation est l inverse de la matrice orthogonale cherch e Soit donc une matrice carr e Pour p q dans 1 n p q on note G q p gi toute matrice de rotation d finie par gii l ifpetifq gij 0 i j ij p q et i j a p Ip p Iq Ipa Ja p S avec c s 1 Soit p lt q Pour que l l ment bap S p p Caq p de la matrice B b j G q p A soit nul il suffit de d finir c s par c 1 s 0 si a C Gpp T S Qq p f si 4 p On d finit une suite de matrices B P Ce a pour 1 lt p lt q lt n par BED A Br G q p BLP lt p lt q lt n BPP plr p 1 2 lt p lt n Version 15 janvier 2005 3 3 D composition QR 61 o G q p est construit de mani re telle que bi 0 LEMME 3 3 1 On apaa 0 pour tout i gt j tels que j lt pet1 lt i lt n ou j p etp lt i lt q
420. ottant VAR b Flottant B 9 G om trie TYPE Point ARRAY 0 1 OF real Initialisation PROCEDURE InitGeometrie Lecture criture PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE SaisirPoint VAR q Point TracerSegment p q Point TracerDemiDroite p d Point MarquerPointCarre p Point couleur integer MarquerPointRond p Point couleur integer NumeroterPoint p Point n integer Version 15 janvier 2005 B 9 G om trie Fonctions d acc s et constructeur FUNCTION Abscisse VAR q Point real FUNCTION Ordonnee VAR q Point real PROCEDURE FairePoint x y real VAR q Manipulations g om triques de base FUNCTION det VAR p q r Point real Point FUNCTION EstSitue VAR p q r Point integer FUNCTION EstAGauche VAR p q r Point boolean FUNCTION EstADroite VAR p q r Point boolean FUNCTION CarreNorme VAR p Point real FUNCTION CarreDistance VAR p q Point real Conversions PROCEDURE PointEnPixel p Point VAR a PROCEDURE PixelEnPoint c Pixel VAR q Graphique TYPE Pixel ARRAY 0 1 OF integer VAR HauteurEcran integer LargeurEcran integer Initialisation PROCEDURE InitGraphik Op rations Pixel Point PROCEDURE TracerCarre a Pixel r integer PROCEDURE TracerDisque a Pixel r integer PROCEDURE LireCurseur VAR curseur Pixel PROCEDURE RelierPixels a b Pixel
421. ouverte et l tude de la moyenne arithm tico g om trique sont associ es aux noms de Lagrange et de Gauss La connexion avec les int grales elliptiques est en particulier due au math maticien anglais du dix huiti me si cle John Landen au travers de la transformation qui porte son nom et qui nous servira de cheval de bataille pour tablir deux des trois formules cl s conduisant l expression de 7 utilis e par Brent et Salamin Nous commen ons par introduire la moyenne arithm tico g om trique Soient a et b deux r els positifs tels que a gt b Les suites an et bn des moyennes arithm tiques et g om triques sont d finies par la r currence a a bo b ai 3 ao bo b Vaobo n 1 an T bn bn 1 anbn Observons en usant en particulier de l in galit de la moyenne vab lt ate que b lt b i lt a lt a et que a b lt a b NI a b D o par it ration b lt bi lt b2 lt b3 lt lt a3 lt a2 lt a lt a TE S Ainsi bn est croissante major e et an est d croissante minor e Les deux suites sont alors convergentes et la derni re in galit montre qu elles admettent la m me limite Par d finition la limite commune des suites an et bn not e u a b est la moyenne arithm tico g om trique de a et b et Pour valuer la rapidit de convergence des suites an et bn nous introduisons la suite cn termes positifs d finie par
422. p vy Si u lt v alors wu lt wv pour tout mot w PROPOSITION 9 3 1 L ordre lexicographique est un ordre total Preuve Soient u et v deux mots distincts et montrons que u lt v ou v lt u Ceci est clair si u est un d but de v ou si v est un d but de u Sinon il existe un indice k tel que Uk Uk et u vi pour i 1 k 1 Mais alors u amp v ou v amp u selon que uk lt Uk Ou Vk lt Uk E Pour l tude des mots de Lyndon le lemme suivant est tr s utile LEMME 9 3 2 Soit u un mot S il existe un mot qui est la fois un d but et une fin de u alors u n est pas un mot de Lyndon Preuve Supposons que v soit la fois un d but et une fin de u Alors il existe deux mots w et w de m me longueur tels que u vw wv Version 15 janvier 2005 250 Chapitre 9 Combinatoire des mots Si w lt w alors vw lt vw u et si w lt w on a w w donc wv lt w v u Dans les deux cas on a trouv un conjugu de u qui est inf rieur ou gal u Donc u n est pas de Lyndon On obtient alors la caract risation suivante des mots de Lyndon PROPOSITION 9 3 3 Un mot u est un mot de Lyndon si et seulement s il est stricte ment plus petit que toutes ses fins dans l ordre lexicographique Preuve Soit h une fin de u Alors u vh pour un mot v Supposons d abord que u soit un mot de Lyndon Alors u lt hw et par le lemme pr c dent h n est pas un d but de u Donc u lt h
423. par Les endroits o le changement est obligatoire sont signal s en commentaires dans nos programmes D autres diff rences entre TURBO Pascal et THINK Pascal sont moins importantes et sont plut t des diff rences li es au mat riel et au syst me d exploitation Nous en parlons lors de la pr sentation de la biblioth que g n rale ou dans la pr sentation des programmes g om triques Pour une description d taill e du langage Pascal et de nombreux exemples voir P Cousot Introduction l algorithmique num rique et la programmation en Pascal Paris McGraw Hill 1988 A 3 Biblioth ques Les biblioth ques de proc dures sont une fa on commode de grouper les d clarations proc dures et initialisations relatives un ensemble de calculs Les compilateurs Pas cal Turbo Pascal 4 ou Think Pascal par exemple offrent sous une forme qui varie l g rement d un compilateur l autre un moyen de r aliser ces groupements ce sont les unit s Kunit en anglais Une unit peut tre d finie et compil e ind pendamment de tout programme L emploi d une unit dans un programme particulier est indiqu par une instruction sp cifique En Think Pascal et en Turbo Pascal la syntaxe d une unit est la suivante UNIT nom INTERFACE IMPLEMENTATION END En Turbo Pascal une variante est possible dont on expliquera l usage UNIT nom INTERFACE Version 15 janvier 2005 A 3 Biblioth ques 4
424. par __ fi igel ij 0 sit L est quilibr e Version 15 janvier 2005 6 1 Matrices unimodulaires 119 8 On dit qu une matrice coefficients gaux 0 1 ou 1 est l mentaire si pour 1 lt i lt p la i i me ligne de a exactement deux coefficients non nuls 5 et ai g i a D montrer qu une matrice l mentaire est quilibr e si et seulement si l ensemble 1 q peut tre partag en deux classes J et J2 telles que D G JE di JE J2 b En d duire qu une matrice l mentaire est quilibr e si et seulement si l ensemble 1 q peut tre partag en deux classes de fa on que pour tout i les colonnes d indice f i et g i soient dans la m me classe si et seulement si a ft et di g i Sont de signes distincts 9 D crire un algorithme qui utilise le crit re donn en 8b pour tester si une matrice l mentaire est quilibr e Ecrire la proc dure correspondante La proc dure devra pouvoir tester des matrices d ordre p q lorsque p q lt 10 Remarque hors nonc On peut en fait d montrer la r ciproque de la question 6 toute matrice totalement unimodulaire est quilibr e 6 1 2 Solution matrices unimodulaires Soient p et q des entiers positifs Dans toute la suite aij 1 lt i lt p1 lt j lt q d signe une matrice r elle d ordre p q coefficients 0 1 ou 1 Une sous matrice de est une matrice de la forme A aij Jier jes o
425. pas d enseigner l informatique mais seulement de familiariser les l ves avec l usage des ordinateurs les consid rations sur les structures de donn es ainsi que sur la complexit ou la validit des algorithmes mis en uvre ne figurent pas au programme Nous nous effor ons dans ce livre de respecter ces contraintes Dans certaines situations nous donnons en plus des programmes it ratifs des proc dures ou fonctions r cursives pour montrer combien cette criture peut tre confortable Parfois nous d clarons aussi des proc dures locales d autres proc dures ou fonctions dans le but d en diminuer le nombre de param tres En revanche nous avons syst matiquement respect les limita tions sur les donn es structur es Les restrictions sur Pascal dans le programme des classes pr paratoires sont par ailleurs fort int ressantes du point de vue p dagogique puisqu elles mettent jour les contorsions auxquelles on doit se livrer pour repr senter des donn es structur es Par exemple un polyn me coefficients r els est naturellement repr sent par un couple form d un entier qui est le degr du polyn me et d un tableau de r els La notion de couple record ne figurant pas au programme le degr doit tre int gr dans le tableau des r els Ce genre de ph nom nes a d ailleurs contribu au d veloppement de langages de programmation plus volu s Le lecteur averti pourra sans peine introduire
426. per les expressions La formule utiliser est donn e dans la proposition suivante PROPOSITION 4 3 2 Soit une matrice sym trique soit v un vecteur et soit P I Bv v avec B 2 v si v 0 8 2 sinon Alors PAP A qw v4y o p BAv 2K Blup et q p Kv Preuve Posons y 6 2 On a PAP I Bv w A I Bu Bv vA BAv w B v wAv w A vp pv Bv upv A vp pv 2Kvv d o l galit annonc e 4 3 3 Programme tridiagonalisation m thode de Householder Rappelons la proc dure PROCEDURE VecteurHouseholder n integer VAR a mat k j integer VAR v vec du chapitre 3 qui calcule le vecteur v v k AU o AU est la j i me colonne de A utilis e pour la transformation de Househoulder Cette transformation elle m me est ici un peu diff rente puisqu on applique la matrice de Householder la matrice et sa transpos e Voici la proc dure on a not w le vecteur not q dans l nonc pour ne pas confondre ce vecteur avec la matrice Q produit des transformations orthogonales PROCEDURE TransformationHouseholder n r integer VAR a mat VAR beta K normeV2 real Version 15 janvier 2005 82 Chapitre 4 Matrices tridiagonales i j integer v p W vec BEGIN de TransformationHouseholder VecteurHouseholder n a r 1 r v v v r 1 A normeV2 ProduitScalaire n v v IF EstNul normeV2 THEN beta 2 ELSE beta 2
427. piapproche T Q p ex IterationPi alpha beta gamma delta D UnSurD UnSurRBeta piapproche UNTIL FlottantProches vieuxpi piapproche OR LeSigne gamma 1 END CalculPiParSalamin Deux remarques pour le calcul de l inverse du d nominateur on prend comme valeur approch e de d part la valeur pr c dente de ce nombre en effet la suite converge et m me tr s rapidement Notons le test d arr t dans la proc dure Les erreurs d arrondi jouent plein lors du calcul de comme diff rence de a et Bn Comme ces suites convergent vers la m me valeur la valeur approch e de yn ne porte que sur les derniers chiffres de ces nombres Il se peut que cette valeur devienne tr s petite mais n gative On arr te dans ce cas puisque les r sultats ne sont plus significatifs n 0 gamma 0 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E O Version 15 janvier 2005 12 4 La formule de Brent Salamin 405 beta 0 70 71 06 78 11 86 54 75 24 40 08 44 36 21 04 84 90 39 28 50 E O numer 0 02 91 42 13 56 23 73 09 50 48 80 16 88 72 42 09 69 80 78 57 E 1 alpha 0 72 85 53 39 05 93 27 37 62 20 04 22 18 10 52 42 45 19 64 00 E O0 denom 0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 1 piapp 0 02 91 42 13 56 23 73 09 50 48 80 16 88 72 42 09 69 80 78 57 E 1 n 1 gamma 0 02 14 46 60 94 06 72 62 37 79 95 77 81 89 47 57 54 80 35 50 E0 beta 0 71 77 49 98 63 77 53 7
428. pitre 10 G om trie algorithmique une droite passant par x intersecte P selon un segment z1 2 o les x tant des points de la fronti re de P appartiennent l enveloppe convexe des sommets de P de x x1 2 on d duit alors l appartenance de x l enveloppe convexe des sommets de P Inversement soit C E x1 2 l enveloppe convexe d une partie finie Il est clair que C est un convexe ferm born que nous supposons sans perte de g n ralit de dimension d D apr s la proposition 10 1 7 C est un convexe ferm born d int rieur non vide or par d finition C est l intersection des n demi espaces x E o o lt 1 c est donc un poly dre convexe born de E D apr s la premi re partie du th or me C est l enveloppe convexe d un ensemble fini de points d o en appliquant le raisonnement pr c dent C et en utilisant encore la proposition 0 1 4 C C est un poly dre convexe born En particulier un simplexe de dimension d est un poly dre convexe On v rifie sans peine que le nombre de ses k faces est 91 Comment calculer effectivement l enveloppe convexe d un ensemble fini S de n points Et quelle est la complexit en nombre d op rations l mentaires d un tel calcul Sup posons pour simplifier la discussion que les points sont en position g n rale c est dire que d 1 points quelconques de S sont affinement ind pendants Dans ce cas le sim
429. pj et pp PROPOSITION 10 4 6 Pour couvrir une galerie d art n sommets il suffit de n 3 gardiens Version 15 janvier 2005 10 4 Galerie d art 315 Figure 10 4 6 n 3 gardiens sont parfois n cessaires Preuve En effet il est clair que le sommet de couleur c d un triangle couvre ce triangle et que par suite l ensemble des sommets de couleur c couvrent tout le polygone Soient g1 g2 et g3 le nombre de sommets de couleur c1 c2 et c3 Quitte permuter les indices nous pouvons supposer que g lt g2 lt g3 de g 92 93 N on d duit g lt n 3 En pla ant les gardiens aux sommets de la couleur la moins fr quente la galerie est couverte par au plus n 3 gardiens L exemple de la figure se g n ralise ais ment pour montrer l existence de galerie de taille n n cessitant n 3 gardiens pour la surveiller 10 4 3 Programme galerie d art Nous allons utiliser pour la programmation du probl me des gardiens d une galerie d art les types et certaines des proc dures d j employ s pour le calcul de la triangulation de Delaunay En particulier un polygone est une suite finie de points donc rang dans un tableau d fini par TYPE SuitePoints ARRAY 1 LongueurSuite OF Point La lecture des points pourrait se faire par la proc dure de saisie d j d velopp e Il est bien plus agr able l usage de pouvoir suivre la construction du polygone en observant le contour polygonal au
430. plication sont plus simples PROCEDURE EntierMoinsEntier u v entier VAR w entier BEGIN FixerSigne v LeSigne v EntierPlusEntier u v w END de EntierMoinsEntier PROCEDURE EntierParEntier u v entier VAR w entier BEGIN FixerSigne w LeSigne u LeSigne v NaturelParNaturel u v w END de EntierParEntier La division euclidienne de deux entiers se ram ne celle de deux entiers naturels avec une petite complication si l on veut que le reste soit toujours positif ou nul m me si le dividende ou le diviseur sont n gatifs On obtient PROCEDURE EntierDivEuclEntier u v entier VAR q r entier VAR Version 15 janvier 2005 364 Chapitre 12 Grands nombres su sv integer BEGIN su LeSigne u sv LeSigne v FixerSigne u 1 FixerSigne v 1 NaturelDivEuclNaturel u v q r IF su 1 AND NOT EstEntierNul r THEN BEGIN NaturelMoinsNaturel v r r NaturelPlusChiffre q 1 q END FixerSigne q su sv END de EntierDivEuclEntier La proc dure NaturelPlusChiffre s crit PROCEDURE NaturelPlusChiffre u entier x chiffre VAR w entier VAR i integer retenue chiffre BEGIN i 0 retenue X REPEAT SommeChiffres u i 0 w i retenue i i 1 UNTIL retenue 0 OR i 1 Taille u IF retenue gt O THEN BEGIN w i retenue FixerTaille w i END ELSE FixerTaille w Taille u END NaturelPlusChiffre Si seul
431. polyn me f Z X1 Xn est sym trique il suffit de v rifier que Fetes Xom f X re Xn pour toute permutation o G Sin gt 1 on peut prendre G 0 7 o est la permutation circulaire 1 2 n et 7 la transposition 1 2 FUNCTION EstSymetrique n integer p polynome boolean Teste si p est sym trique VAR q polynome m monome i j integer b boolean Version 15 janvier 2005 7 2 Polyn mes sym triques 173 BEGIN IF n lt 1 THEN b true ELSE BEGIN q PolynomeNul FOR i 1 TO Taille p DO BEGIN On permute les ind termin es X1 et X2 m pli m 1 pli 2 m 2 pli 1 MonomePlusPolynome n m q END b SontEgauxPolynomes n p q IF b THEN BEGIN On fait une permutation circulaire des ind termin es X1 X2 Xn q PolynomeNul FOR i 1 TO Taille p DO BEGIN FOR j 1 TO n DO m j p i j MOD n 1 MonomePlusPolynome n m q END b SontEgauxPolynomes n p q END END EstSymetrique b END de EstSymetrique Sur les exemples de l nonc seul le polyn me p1 p2 est sym trique Dans le cas n 2 le calcul du polyn me p associ chaque polyn me sym trique f est simplifi et on a p Xn k gt 0 o les polyn mes fp sont d finis par la r currence fr FR Xi Xo t Oo g a Jo f et fk 1 XX Une premi re proc dure permet de passer du polyn me f Z X1 X2 au p
432. polyn mes irr ductibles Comme f est sans carr Version 15 janvier 2005 182 Chapitre 7 Polyn mes les f sont deux deux distincts et donc aussi premiers entre eux L algorithme de factorisation repose sur un r sultat connu sous le nom de th or me des restes chinois Nous donnons ici la version relative aux polyn mes L nonc g n ral est le suivant soient l1 In des id aux d un anneau commutatif unitaire A tels que I I A pour j Quels que soient les l ments a1 an de il existe a tel que a a mod I pour tout i TH OR ME 7 3 4 Th or me des restes chinois Pour toute famille gi 1 lt i lt n de poly n mes il existe un unique polyn me g tel que deg g lt deg f et g gi mod fi pour 1 lt i lt n Preuve D montrons d abord l unicit Si g et h sont deux solutions du probl me leur diff rence g h v rifie g h 0 mod f pour 1 lt lt n Comme les f sont irr ductibles et distincts il en d coule g h 0 mod f et comme deg g h lt deg f on a g h Il reste trouver une solution Posons pour 1 lt i lt n h JAi Comme les polyn mes fj sont deux deux distincts les polyn mes f et fi sont premiers entre eux D apr s le th or me de Bezout il existe des polyn mes p et q tels que pifi qifi 1 Posons g 5 gjq fj Il vient 1 lt j lt n g X ggh gufi g pifi gi mod fi 1 lt j lt n et donc le reste de
433. position de Choleski A LL qui n est pas LU puisque la matrice L n a pas n cessairement des 1 sur la diagonale On peut alors it rer l application A L L A LL L encore la nouvelle matrice est tridiagonale si A l est et elle est bien s r d finie positive S il y a convergence L tend vers une matrice diagonale et on obtient donc dans L L une matrice diagonale form e des valeurs propres de A Plus pr cis ment si Version 15 janvier 2005 5 4 M thode LR de Rutishauser 113 l on pose ai b 0 d 0 b a2 b Llo d A bo et L l3 da bn 1 i 0 bn 1 An 0 ln dn on obtient par identification d 4 A1 l bii dii di yai i 2 n Maintenant soit A LL Alors a bi 0 bi a b A b3 bai 0 boi a et on obtient a d lyi b di1 li 1 i 1 n 1 a d2 Sur le m me sch ma que ci dessus on a donc les trois proc dures suivantes PROCEDURE CholeskiTridiagonal n integer a b Cette proc dure a d j t donn e au chapitre 4 vec VAR d 1 vec PROCEDURE TridiagonalCholeski n integer d l1 vec VAR a b vec VAR i integer BEGIN FOR i 1 a i b i END a n sqr d n END de TridiagonalCholeski TO n 1 DO BEGIN sgr 1 i 1 sqr d i d i 1 1 i 1 Ces deux proc dures sont combin es en Version 15 janvier 2005 114 Chapitre 5 Valeurs et vecteurs propres PROCEDURE IterationCholeski n integer VAR a b vec V
434. pour x r el non nul on a 1 zr et r 3 3 z g et enfin o o 0 et 90 3 4 Preuve Le transfert via B de la relation bien connue tan 0 tan 0 tonit 1 tan 0 tan conduit la relation B 2 De m me les relations B 3 sont obtenues par transfert des relations tan r 2 0 et t 0 7 2 0 1 tan 0 Enfin la derni re relation est obtenue par transfert de tan r 2 7 2 tanm 0 De toute relation de la forme 1 a Ba 8 4 3 5 o les a sont rationels on d duit une expression de 7 4 comme combinaison lin aire d arctangentes T 17 Arctan a Arctan ak valable naturellement m pr s potentiellement utilisable pour le calcul de 7 en grande pr cision Commen ons par donner deux exemples purement alg briques de g n ration de formules du type B 5 PROPOSITION 12 3 2 Pour x non nulon a 1 1 D ril Irii Version 15 janvier 2005 12 3 Calcul de m par arctangente 387 Preuve En vertu de 3 2 1 1 ne 1 z zi het zr 1 z r 1 ie 1 xr 1lr r 1 x 2x 2 _ x 1 z2 z 1 1 z 27 2 1 BFF r On obtient ainsi les relations 1 1 2 1 1 1 2 4 de D 4 Id 183 Le second exemple est fond sur la suite de Fibonacci Fn d finie par la relation de r currence F5 F 1 Fn 2 Fny1 Fn pour n gt 0 3 6 Les premiers termes de cette suite sont 1 1 2 3 5 8 13 21 PROPOSITI
435. proposition montre que deg f divise d En particulier il existe un nombre premier p tel que deg f1 divise d p On a alors X X mod f et donc pecd x2 f 1 ce qui contredit l hypoth se Donc f est irr ductible Version 15 janvier 2005 7 3 Factorisation de polyn mes 185 Si le test d crit dans la proposition montre que f est r ductible il convient d en chercher les facteurs irr ductibles Ceci sera fait au moyen d une famille r f de polyn mes que nous introduisons maintenant En appliquant la proposition avec po X on d termine un plus petit entier strictement positif a f tel que XPO X mod f On pose alors ro f 1 et pour i gt 0 on note r f le reste de la division euclidienne du polyn me 5 X par f O lt j lt ai f PROPOSITION 7 3 11 Les polyn mes r f appartiennent H f Preuve On a d apr s la d finition de a f et la proposition r f PS ep O a aa pa I y E ri f mod f Li On va d montrer que les r f permettent de s parer deux deux les diviseurs irr duc tibles de f On commence par tablir ce r sultat pour le polyn me g X f 1 Pour pouvoir appliquer les propositions 7 3 5 et g il faut d abord s assurer que g est sans carr Or on a g a f X U T et ce polyn me n est pas nul puisque a f est impair Il en r sulte pgcd g g 1 puisque 0 n est pas racine de g et donc g est sans carr d apr s la proposition F 34
436. propres de matrices tridiagonales 105 VAR r integer tp SuitePol z vec0 d vec BEGIN LesPolynomesCaracteristiques n a b tp Les polyn mes pr MajorantsParHadamard n a b d Calcul des majorants z 1 ali Le seul z ro de p FOR r 2 TO n DO BEGIN z 0 dfr l z r d r Mise en place des majorants LesZerosParDichotomie r z tplrl z Calcul des z ros de pr END FOR r 1 TO n DO vpr z r Recopie des r sultats END de ValeursPropresParDichotomie Voici un exemple de d roulement avec quelques impressions interm diaires Donner l ordre n 5 Donner la diagonale 45314 Donner la sous diagonale 1211 Voici la matrice lue 4 000 1 000 0 000 0 000 0 000 1 000 5 000 2 000 0 000 0 000 0 000 2 000 3 000 1 000 0 000 0 000 0 000 1 000 1 000 1 000 0 000 0 000 0 000 1 000 4 000 Pour r 2 Le polyn me est X72 9 000 X 19 000 Les intervalles de localisation sont 6 000 4 000 6 000 et les z ros du polyn me sont 3 382 5 617 Pour r 3 Le polyn me est X 3 12 000 X 2 42 000 X 41 000 Les intervalles de localisation sont 8 000 3 382 5 617 8 000 et les z ros du polyn me sont 1 638 3 833 6 529 Pour r 4 Le polyn me est X74 13 000 X 3 53 000 X 2 74 000 X 22 000 Version 15 janvier 2005 106 Chapitre 5 Valeurs et vecteurs propres Les intervalles de localisation sont 8 000 1 638 3 833 6 529 8 000 et les z ros du polyn me sont 0 402 2 14
437. ps fini Dans le cas de Z 2Z on peut toutefois tirer parti de l arithm tique tr s particuli re des anneaux commutatifs de caract ristique 2 r sum e dans l nonc suivant PROPOSITION 7 3 1 Dans un anneau commutatif K de caract ristique 2 tout l ment est gal son oppos et pour toute famille ai 1 lt i lt n d l ments de K on a 2 Za 2a 1 lt i lt n 1 lt i lt n Preuve Pour tout x K on a 2x x x 0 puisque K est de caract ristique 2 et donc x x La seconde partie de l nonc r sulte de la formule du bin me g n ralis e puisque les termes de la forme 2a a sont nuls Version 15 janvier 2005 7 3 Factorisation de polyn mes 181 Revenons l anneau K Z 2Z Pour factoriser les polyn mes de K X une premi re r duction consiste se ramener des polyn mes sans carr Elle est fond e sur les deux r sultats suivants PROPOSITION 7 3 2 Un polyn me f est un carr si et seulement si f 0 Preuve Si f g alors f 2gg 0 R ciproquement soit f a X tel que O lt i lt n f 0 On a alors F Vian XO ax 0 O lt i lt n i impair O lt i lt n Par cons quent les coefficients a sont nuls pour impair et donc d apr s la proposition f X ap ef vs O lt i lt n 2 0 lt i lt n 2 PROPOSITION 7 3 3 Tout polyn me f non nul se factorise de fa on unique sous la forme f g h o h est sans carr Cette factorisation unique est donn e par la fo
438. que alors v a lt v b Il nous reste associer une suite factorielle une permutation Pour cela nous con sid rons l application qui une permutation sur 1 n associe une permutation sur 1 n 1 par o i 1 i o i 1 lt o 1 o i o 1 1 2 Clairement l application o o 1 6 o est une bijection La suite factorielle associ e o est la suite 87 2 o 1 1 8 o 1 1 0 o 1 1 o 1 1 Par exemple voici les images successives par de la permutation 2 8 6 4 5 1 3 7 2 8 7 a w w CC RhhRMRRH a ND ND ND ND ND CO hR kH O OO La suite factorielle associ e est 0 0 2 2 4 6 1 et le rang est 9900 Le rang d une permutation s obtient aussi directement par la formule r a Sa i 8 1 o 1 1 i 1 C est cette formule qui est valu e en utilisant le sch ma de Horner dans la proc dure ci dessous La fonction est mise en place par Version 15 janvier 2005 210 Chapitre 8 Exemples combinatoires PROCEDURE DiminuerPermutation VAR s Suite i n integer VAR j K integer BEGIN k s i FOR j i TO n DO IF s j gt k THEN s j s j END de DiminuerPermutation La permutation o est calcul e dans le tableau contenant o FUNCTION RangPermutation s Suite n integer integer VAR rang i integer BEGIN rang 0 FOR i 1 TO n 1 DO BEGIN DiminuerPermutati
439. que alors y A lt 2 n 1 10 Montrer qu une matrice de permutation n est pas primitive si n gt 1 Caract riser les matrices de permutation qui sont irr ductibles Version 15 janvier 2005 132 Chapitre 6 Matrices en combinatoire 11 On suppose n gt 1 Soit une matrice primitive Pour i S on pose h min keN a 1 pour tout j S a Montrer que y A max h1 hn b Soit s la longueur du plus court cycle de A Montrer que A lt n s n 2 c Montrer que A lt n 2n 2 d Donner pour chaque valeur de n un exemple d une matrice telle que A n 2n 2 6 2 2 Solution matrices irr ductibles Soit n gt 1 un entier et S 1 n On note M l ensemble des matrices carr es d ordre n coefficients dans 0 1 Soit A a M et soient i j S Un chemin de vers j de longueur m gt 0 dans A est une suite io im d l ments de S telle que io im J et amp _ l pour k 1 m Un cycle autour de i est un chemin de vers lui m me de longueur non nulle Un l ment est cyclique s il existe un cycle autour de i Cette terminologie est inspir e de la th orie des graphes un graphe est un couple S U o S est un ensemble de sommets et U C S x S un ensemble d arcs La matrice A aij M d finie par a j 1 si et seulement si i j U est appel e la matrice d adjacence du graphe R ciproquement toute m
440. que l on disposait seulement d diteurs de textes rudimentaires sans parler des temps pr historiques et des cartes perfor es Maintenant les diteurs sont suffisam ment d velopp s pour permettre des copies instantan es En revanche il est inutile de charger les identificateurs lorsque l usage math matique ou informatique courant rend leur signification claire p d signe en g n ral un nombre premier et est un indice On peut donc raisonnablement viter l exc s contraire consistant crire par exemple iteration 1 REPEAT PremierCourant NombresPremiers iteration EstCompose n MOD PremierCourant 0 IF EstCompose THEN FacteurPremier PremierCourant ELSE iteration iteration 1 UNTIL PremierCourant PremierCourant gt n OR EstCompose Le plus souvent les compteurs de boucles qui reviennent fr quemment sont identifi s par une seule lettre j k n etc En revanche nous avons choisi des noms longs parfois presque excessivement longs pour les noms des proc dures pour que l effet de la proc dure soit le plus compl tement possible d crit dans le nom m me Ainsi MatricePlusMatrice ou EchangerColonnes ou encore EcrireMatriceHermitienne Cette fa on de faire a l avantage de permettre la transposition instantan e des fonc tions d autres contextes par exemple FlottantPlusFlottant est manifestement l en t te d une proc dure d addition de deux flottants quelle que
441. qui partir d une d composition LU calcule A U L l est encore plus comme la matrice A est nouveau tridiagonale le processus peut continuer Version 15 janvier 2005 5 4 M thode LR de Rutishauser 111 Une matrice tridiagonale s crit sous la forme ai b 0 T 0 C2 a2 b2 0 as Cn 2 An 2 bn 2 0 Cn 1 Gn 1 bn 1 0 _ 0 Cn An donc est repr sent e conomiquement par les trois vecteurs a b c Si LU les matrices L et U sont aussi tridiagonales plus pr cis ment posons 1 0 ug v 0 Llo 1 u2 V2 A LU l3 1 n n Un 1 0 lna 1 0 Un L identification donne v b et u1 a et l Ci Ui 1 ui ai libi 1 pour 2 n Ainsi la d composition LU est repr sent e de fa on compacte par les trois vecteurs u et v De plus v b Rappelons la proc dure suivante PROCEDURE DecompositionLUtridiagonal n integer a b c vec VAR u 1 vec du chapitre 4 qui calcule la d composition LU d une matrice tridiagonale La recompo sition qui calcule la matrice tridiagonale U L est r alis e par PROCEDURE ULTridiagonal n integer u l vec VAR a b c vec VAR i integer BEGIN FOR i 1 TO n 1 DO ali u i b i 1 i 1 a n uln FOR i 2 TO n DO c i u i l i END de ULTridiagonal Ainsi l tape qui consiste passer de Ap Ak 1 s crit simplement PROCEDURE IterationLUTridiagonal n integer VAR a b c
442. quilibr e matrice 18 et s quentiel euclidien anneau Euler identit F face faces adjacentes 280 incidentes 280 facette facteur d un mot factorielle suite 209 factorisation de Duval 256 psd d un entier de SPL B24 de Lyndon L48 P51 d un polyn me 178 standard 250 Ferrer diagramme de 21 Fibonacci nombres de B51 file fils gauche droit fin d un mot fonction sym trique l mentaire fortement inf rieur 249 Frobenius matrice de 10 G galerie d art Bog Gauss entier de B23 457 m thode de pl modernis e Givens m thode de Graham algorithme a Gram Schmidt graphe H Hadamard in galit de Horner sch ma de B43 Householder m thode de I incidentes faces inverse g n ralis e de Penrose Moore irr ductible matrice polyn me 178 J Jacobi identit de Jacobi m thode de Jordan m thode de L5 L Lanczos matrice de Landen transformation de B98 Legendre formule de lettre 235 pique ordre 203 p48 4 pag alg bre de crochet de a i longueur d un chemin 130 d un mot LU d composition b1 Lukasiewicz mot de Lukasiewicz mot de B43 Lyndon factorisation de pag mot de Version 15 janvier 2005 458 M Machin formule de B84 matrice inverse g n ralis e inverse de Penrose Moore p4 B de Lanczos de Penrose Moore P4 primitive 131 produit de 8 pseudo inverse p3 Z r ductible total
443. r Remplace a par une matrice diagonale contenant les valeurs propres de a La matrice g contient les vecteurs propres correspondants Le nombre d it rations est galement rapport VAR sigma sigmaN real BEGIN sigmaN SommedesCarres n a NIteration 0 Version 15 janvier 2005 5 1 M thode de Jacobi g MatriceUnite REPEAT sigma sigmaN Niteration Nlteration 1 Jacobi2 n a g sigmaN 95 UNTIL EstNul sigmaN sigma OR NIteration gt Maxlteration END de ElementsPropresParJacobi Voici deux exemples Voici la matrice lue 1 000 1 000 1 000 1 000 2 000 2 000 1 000 2 000 3 000 Apr s 6 it rations voici la matrice diagonale D 0 643 0 000 0 000 0 000 0 308 0 000 0 000 0 000 5 049 Matrice G des vecteurs propres 0 737 0 591 0 328 0 328 0 737 0 591 0 591 0 328 0 737 AG 0 474 0 182 1 656 0 211 0 227 2 984 0 380 0 101 3 721 GD 0 474 0 182 1 656 0 211 0 227 2 984 0 380 0 101 721 w Voici la matrice lue 1 000 1 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 1 000 4 000 1 000 0 000 0 000 1 000 4 000 0 000 0 000 0 000 1 000 Apr s 23 it rations voici la matrice diagonale D 0 667 0 000 0 000 0 000 0 000 3 512 0 000 0 000 0 000 0 000 2 449 0 000 0 000 0 000 0 000 5 652 0 000 0 000 0 000 0 000 Matrice G des vecteurs propres 0 943 0 209 0 177 0 090 0 314 0 526 0 257 0 419 0 105 0 466 0 575 0 603 amp kB 000 000
444. r 295 readln n EntrerPolynome n r Entrer les coefficients de r Version 15 janvier 2005 444 Annexe A Un environnement write Voici le polyn me lu EcrirePolynome r r X 2 END 49 Somme BEGIN EcrirePolynome p p X EcrirePolynome q q X DE PolynomePlusPolynome p q r EcrirePolynome r r X p X q X END ka Diff rence BEGIN EcrirePolynome p p X EcrirePolynome q q X DE PolynomeMoinsPolynome p q r EcrirePolynome r r X p X q X END 242 Produit BEGIN EcrirePolynome p p X EcrirePolynome q q X D PolynomeParPolynome p q r EcrirePolynome r r X p X q X END ARE Division euclidienne BEGIN EcrirePolynome p p X EcrirePolynome q q X gt TopChrono PolynomeDivEuclPolynome p q a r t TempsEcoule 7 2 DE EcrirePolynome a p q EcrirePolynome r r X END C2 Pgecd BEGIN EcrirePolynome p p X EcrirePolynome q q X TopChrono PolynomePgcd p q r EcrirePolynome r pgcd t TempsEcoule writeln writeln Le calcul a pris t 1 8 secondes END gs D riv e BEGIN EcrirePolynome p p X Version 15 janvier 2005 A 4 Menus 445 TopChrono PolynomeDerive p r t TempsEcoule EcrirePolynome r p X END n Somme BEGIN write Donner le degr de X n DE readln n
445. r n lt 14 FUNCTION Binomial n k integer integer VAR b i integer BEGIN Version 15 janvier 2005 422 Annexe A IF n lt k THEN Binomial 0 ELSE BEGIN k min k n k b 1 FOR i 1 TO k DO b b n i 1 DIV i Binomial b END END de Binomial Enfin le calcul du pgcd se fait par l anc tre des algorithmes FUNCTION pgcd a b integer integer VAR r integer BEGIN a abs a b abs b WHILE b lt gt O DO BEGIN r a MOD b a b b r END pgcd a END de pgcd Un environnement Le r sultat est toujours positif ou nul Voici des fonctions sur les r els FUNCTION rmin x y real real FUNCTION rmax x y real real PROCEDURE Echanger VAR u v real FUNCTION log10 x real real FUNCTION PuissanceR x y real real Calcule x FUNCTION Puissance x real n integer real Calcule x FUNCTION signe r real integer FUNCTION EstNul r real boolean FUNCTION EstPositif r real boolean Les trois premi res sont videntes Le logarithme en base 10 se calcule par FUNCTION log10 x real real BEGIN log10 ln x 1n 10 END de log10 Deux fa ons de calculer la puissance d un r el FUNCTION PuissanceR x y real real Calcule x BEGIN IF EstNul x THEN Version 15 janvier 2005 A 3 Biblioth ques PuissanceR 0 ELSE PuissanceR exp y 1n x END de PuissanceR
446. r taille et taille gale en cherchant le chiffre de plus haut indice o ils diff rent S il n y en a pas les entiers sont gaux La fonction suivante rend 1 0 ou 1 selon que le premier argument est plus petit gal ou plus grand que le deuxi me FUNCTION CompareNaturel VAR u v entier integer VAR i integer BEGIN IF Taille u lt gt Taille v THEN CompareNaturel signe Taille u Taille v ELSE BEGIN u et v ont m me taille i Taille u WHILE i gt 0 AND u i v i DO AND s quentiel i c i IF i 1 THEN CompareNaturel 0 ELSE CompareNaturel signe u i vlil Version 15 janvier 2005 12 1 Entiers en multipr cision 361 END END de CompareNaturel Comme nous l avons vu la division euclidienne de deux entiers naturels se ram ne la division normalis e La normalisation consiste multiplier les deux op randes par un chiffre particulier Voici donc la proc dure principale PROCEDURE NaturelDivEuclNaturel u v entier VAR q r entier u QU T VAR omega chiffre BEGIN IF CompareNaturel u v 1 THEN BEGIN Cas facile EntierNul q r u END ELSE BEGIN omega base DIV 1 v Taille v Facteur de normalisation NaturelParChiffre u omega u Normalisation des op randes NaturelParChiffre v omega v DivisionNormalisee u v q r Division euclidienne NaturelSurChiffre r omega r D normalisation du reste END END de NaturelDivEuclNa
447. rPremier n integer integer VAR i p integer EstCompose boolean BEGIN FacteurPremier n EstCompose false i eseis REPEAT p NombresPremiers i EstCompose n MOD p 0 IF EstCompose THEN FacteurPremier p Version 15 janvier 2005 A 1 Conseils de programmation 413 ELSE i i 1 UNTIL p p gt n OR EstCompose END de FacteurPremier Comment choisir les noms des variables et des proc dures Ce choix est la fois plus simple et plus compliqu qu en math matiques Plus compliqu parce que l on ne dis pose que du seul alphabet latin et d aucun signe diacritique fl ches indices points accents plus simple parce que contrairement l usage en math matiques des noms compos s de plusieurs caract res comme Ker d t etc non seulement sont fr quents mais en fait souhait s Il n y a pratiquement pas de limite la longueur des noms des identificateurs bien que la norme originale de Pascal Standard pr cise que seuls les huit premiers caract res d un identificateur sont significatifs la plupart des compila teurs r cents repoussent cette limite trente deux ou au del et il faut faire amplement usage de cette possibilit Ainsi PlusPetitFacteurPremier aurait t un titre bien plus instructif pour la fonction ci dessus lisez voix haute PlusPetitFacteurPremier de n L emploi d identificateurs courts raccourcissait le temps de frappe et les erreurs de frappe lors
448. rac des triangles de Delaunay est imm diat Pour cela on parcourt les triangles de Delaunay on calcule le centre du cercle circonscrit et on relie des centres adjacents Voici une r alisation PROCEDURE TracerVoronoi n integer S SuitePoints long conv Suiteindices Voisin Tablelndices Trace les sommets et ar tes du diagramme de Vorono associ la triangulation de Delaunay VAR a b c dir Point i j integer PROCEDURE CentreCercleCirconscrit i j k integer VAR m Point Calcule le centre m du cercle circonscrit au triangle Si Sj Sk en r solvant directement le syst me lin aire VAR abx aby acx acy ab ac delta real a b c Point BEGIN a S i b S j c S k abx Abscisse b Abscisse a aby Ordonnee b Ordonnee a acx Abscisse c Abscisse a acy Ordonnee c Ordonnee a delta abx acy aby acx ab CarreNorme b CarreNorme a Version 15 janvier 2005 10 4 Galerie d art 309 ac CarreNorme c CarreNorme a FairePoint ab acy ac aby 2 delta ac abx ab acx 2 delta m END de CentreCercleCirconscrit PROCEDURE FaireDirectionPerpendiculaire p q point VAR d point BEGIN FairePoint Drdonnee p Ordonnee q Abscisse q Abscisse p d END de FaireDirectionPerpendiculaire BEGIN de TracerVoronoi FOR i 1 TO n DO IF EnvConvli 1 THEN BEGIN si est sur l enveloppe convexe C
449. re texte Affichage du titre puis de la matrice a d ordre n VAR i j integer BEGIN writeln writeln titre FOR i 1 TO n DO BEGIN FOR j 1 TO n DO FormaterComplexe a i j AligneADroite writeln END END de EcrireMatriceC PROCEDURE MatriceCPlusMatriceC n integer a b matC VAR ab matC Somme des deux matrices a et b d ordre n R sultat dans la matrice ab VAR i j integer BEGIN FOR i 1 TO n DO FOR j 1 TO n DO ComplexePlusComplexe ali j bli j ab i jl END de MatriceCPlusMatriceC PROCEDURE MatriceCParMatriceC n integer a b matC VAR ab matC Produit des deux matrices a et b d ordre n R sultat dans la matrice ab Version 15 janvier 2005 2 2 Matrices trigonalisables 43 VAR i j k integer somme produit complexe BEGIN FOR i 1 TO n DO FOR j 1 TO n DO BEGIN somme ComplexeZero FOR k 1 TO n DO BEGIN ComplexeParComplexe ali k b k j produit ComplexePlusComplexe somme produit somme END abli j somme END END de MatriceCParMatriceC PROCEDURE Adjointe n integer a matC VAR aEtoile matC La matrice a toile contient la matrice adjointe de la matrice a d ordre n VAR i j integer BEGIN FOR i 1 TO n DO FOR j 1 TO n DO Conjugue alj il aEtoileli j END de Adjointe PROCEDURE SystemeCTriangulaireSuperieur n integer a matC b vecC VAR x vecC Solution d un syst me triangulaire
450. re d it rations Ce nombre est consid rable mais chaque it ration demande tr s peu de calculs Voici une autre matrice sym trique Version 15 janvier 2005 5 4 M thode LR de Rutishauser Donner l ordre n Donner la diagonale 0 2 3 1 0 45314 Donner la sous diagonale 1211 Voici la matrice lue 4 000 1 000 1 000 5 000 0 000 2 000 0 000 0 000 0 000 0 000 Tridiagonale It rations 10 6 461 20 6 572 30 6 572 40 6 572 50 6 572 60 6 572 70 6 572 80 6 572 90 6 572 100 6 572 110 6 572 Choleski It rations 10 6 461 20 6 572 40 6 572 60 6 572 80 6 572 100 6 572 120 6 572 160 6 572 200 6 572 000 0 000 000 0 000 000 1 000 000 1 000 000 1 000 Diagonale 4 012 4 170 3 992 4 197 4 134 4 055 4 253 3 935 4 311 3 877 4 332 3 857 4 338 3 850 4 340 3 848 4 341 3 848 4 341 3 847 4 341 3 847 Diagonale 4 012 4 170 3 992 4 197 4 253 3 935 4 332 3 857 4 340 3 848 4 341 3 847 4 341 3 847 4 341 3 847 4 341 3 847 Notes bibliographiques amp kB 000 000 000 000 000 146 028 028 028 028 028 028 028 028 028 028 NN NN NN NO NO NO NO NO ON N ON 146 028 028 028 028 028 028 028 028 NN NN NN NO N NO ON NO N OoDOOOoOoOOoOCOO oDOOOoOoOOO 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 115 Norme sous diagonale 28426918 02520046 02966949 01782
451. reMonome n pli indeterminee END writeln END de EcrirePolynome L addition de deux polyn mes est maintenant facile r aliser Il suffit de mettre bout bout les tableaux repr sentant les polyn mes et de r duire le tableau ainsi obtenu PROCEDURE PolynomePlusPolynome n integer p1 p2 polynome VAR p polynome p p p2 VAR i integer Version 15 janvier 2005 172 Chapitre 7 Polyn mes BEGIN p pi FOR i 1 TO Taille p2 DO MonomePlusPolynome n p2 li p END de PolynomePlusPolynome Sur l exemple num rique de l nonc on trouve bien s r pi X 273X3 X_1 2X 372 X_1 2X 272 p2 X_ 2 72X 372 X_2 73X3 2X_1 2X 3 2 pi p2 X_272X 372 X172X 372 X_172X 272 La multiplication par un entier est encore plus simple PROCEDURE PolynomeParEntier VAR p polynome entier integer VAR i integer BEGIN IF entier 0 THEN p PolynomeNul ELSE FOR i 1 TO Taille p DO pli 0 entier pli 0 END de PolynomeParEntier La diff rence de deux polyn mes s obtient en combinant les deux proc dures pr c dentes PROCEDURE PolynomeMoinsPolynome n integer p1 p2 polynome VAR p polynome Calcule la diff rence p p2 dans p BEGIN PolynomeParEntier p2 1 PolynomePlusPolynome n p1 p2 p END de PolynomeMoinsPolynome Soit G un ensemble de g n rateurs du groupe des permutations de l ensemble 1 n Pour tester si un
452. reerTriangle Pour supprimer le i i me sommet on d cale les autres mais il ne faut pas oublier leurs num ros PROCEDURE CouperOreille i integer VAR j integer BEGIN FOR j i TO n 1 DO BEGIN Pj P j 1 num j num j 1 END END de CouperOreille Pour visualiser la triangulation on trace les triangles l aide de la proc dure PROCEDURE TracerTriangle VAR P SuitePoints VAR t Triangle BEGIN TracerSegment P t 1 P t 2 TracerSegment P t 2 P t 3 TracerSegment P t 3 P t 1 END de TracerTriangle Pour colorer les sommets on examine successivement les triangles de la triangulation On colore arbitrairement le premier triangle puis les triangles adjacents On recommence jusqu avoir color tous les triangles Au lieu d une structure compliqu e nous testons l adjacence d un triangle aux triangles d j color s par le fait que deux de ses sommets sont d j color s Voici une r alisation PROCEDURE Colorer n integer VAR Couleur SuiteIndices X Triangulation VAR i k m SommetsNonColores integer FUNCTION Acolorer t triangle integer Le triangle t est colorer s il poss de exactement un sommet incolore VAR k j incolores integer BEGIN k 0 incolores 0 Version 15 janvier 2005 10 4 Galerie d art FOR j 1 TO 3 DO IF Couleur t j incolores k t j END IF incolores O THEN BEGIN incolores 1
453. rentice Hall 1963 Version 15 janvier 2005 23 Chapitre 2 Manipulation de matrices 2 1 Pseudo inverses 2 1 1 Enonc pseudo inverses Soient m n gt 1 deux entiers On note Mm n l ensemble des matrices r elles m lignes et n colonnes On note A la transpos e d une matrice et Iy la matrice carr e unit d ordre k On appelle pseudo inverse d une matrice Mm n toute matrice G Mn m v rifiant AGA A GAG G AG AG GA GA 1 D montrer qu une matrice poss de au plus une pseudo inverse On admettra pour l instant voir ci dessous que toute matrice A poss de une pseudo inverse qui est donc unique et qui est not e AI 2 Soit Mm n de rang n D montrer que A9 AA A 3 Soit U Mn n une matrice sym trique d finie positive D montrer qu il existe une matrice triangulaire inf rieure L l ments diagonaux strictement positifs et une seule telle que U L L 4 a Ecrire une proc dure qui prend en argument une matrice carr e sym trique d finie positive U et qui calcule la matrice L de la question pr c dente 5 15 55 Exemple num rique U 15 55 225 55 225 979 b Ecrire une proc dure qui prend en argument une matrice carr e sym trique d finie positive U et qui calcule son inverse M me exemple num rique 5 Ecrire une proc dure qui prend en argument une matrice Mm n de rang n et qui calcule sa pseudo inverse Version 15 j
454. rices r elles sans reprendre le d tail des commentaires Commen ons par les types CONST OrdreMax 10 L ordre maximal des matrices et vecteurs TYPE vecC ARRAY 1 0rdreMax OF complexe matC ARRAY 1 0rdreMax OF vecC VAR MatriceUnite matC Matrice pr d finie MatriceNulle matC Matrice pr d finie Voici les en t tes des proc dures ou fonctions qui constituent la biblioth que PROCEDURE InitMatricesC PROCEDURE EntrerMatriceC n integer VAR a matC titre texte PROCEDURE EntrerMatriceCRect m n integer VAR a matC titre texte PROCEDURE EntrerVecteurC n integer VAR a vecC titre texte PROCEDURE EntrerMatriceHermitienne n integer VAR a matC titre texte PROCEDURE EcrireMatriceC n integer a matC titre texte PROCEDURE EcrireMatriceCRect m n integer a matC titre texte PROCEDURE EcrireVecteurC n integer a vecC titre texte PROCEDURE EcrireMatriceHermitienne n integer a matC titre texte PROCEDURE MatriceCPlusMatriceC n integer a b matC VAR ab matC PROCEDURE MatriceCMoinsMatriceC n integer a b matC VAR ab matC PROCEDURE MatriceCParMatriceC n integer a b matC VAR ab matC PROCEDURE MatriceCParMatriceCRect m n p integer a b matC VAR ab matC PROCEDURE MatriceCParVecteurC n integer a matC x vecC VAR ax vecC PROCEDURE MatriceCRectParVecteurC m n integer a matC x vecC VAR ax vecC PROCEDURE VecteurCParMatri
455. riques 7 2 1 Enonc polyn mes sym triques Or a pe e que tot t A f E ZIX pe Xn peut c x Heu forme se e de fa on uni gt ne A XX T1123 n EN o les an r2 rn Sont des entiers relatifs tels que l ensemble r1 r2 rn N Gr ro rn 0 soit fini Le degr de f not deg f est le plus grand entier d tel qu il existe des entiers r1 7n v rifiant ar rn 0 et r1 rTn d Par convention le degr du polyn me nul est co On dit qu un polyn me f Z X1 Xn est sym trique si l on a F Xoa 3 Xoln T Hays Xn pour toute permutation o de l ensemble 1 n On pourra repr senter un mon me aX1 X avec a 0 par un tableau contenant les valeurs a r1 71 et un polyn me par un tableau de ses mon mes On supposera que n lt 4 et que tout polyn me est somme d au plus 100 mon mes 1 Ecrire des proc dures d addition de multiplication par une constante et de test d galit des polyn mes de Z X X Exemple num rique on prend n 3 p X X X X XSX3 et pa 2X X X X2 XX Afficher p p2 p p2 et 5p 2 Ecrire une proc dure qui prend en argument un polyn me f Z X1 Xn et qui teste si f est sym trique on admettra sans d monstration que si n gt 2 le groupe des permutations de l ensemble 1 n est engendr par une permutation circulaire et par une transposition V
456. riques l mentaires sont alg briquement ind pendantes sur K autrement dit un polyn me u de l anneau K X1 X est nul si et seulement si u s1 Sn 0 Preuve Supposons qu il existe un entier n et un polyn me non nul u v rifiant u s1 Sn 0 Choisissons u avec deg u n minimal et posons u uo ui Xn ua Xf avec pour 1 lt i lt d u E K X1 Xn 1 On a n cessairement n gt 2 Si uo 0 u peut s crire sous la forme u X g X1 X d o en substituant u S1 Sn Sn9 81 8n 0 et donc g s1 5n 0 ce qui contredit la minimalit de deg u n Version 15 janvier 2005 162 Chapitre 7 Polyn mes Donc uo 0 Maintenant on a par hypoth se u s1 X1 Xn 8n X1 Xn 0 Il en r sulte en prenant X 0 uo s1 X1 Xn 1 0 8n 1 X1 Xn 1 0 0 et donc uo 1 s 8n 1 0 o les 4 sont les fonctions l mentaires de X1 X _1 ce qui contredit la minimalit de deg u n Par cons quent la condition u s1 Sn 0 entra ne u 0 D montrons pr sent l existence d un polyn me pf de poids gal deg f v rifiant l galit de l nonc On raisonne par r currence sur l entier c f n deg f en observant que si n 1 il suffit de prendre pf f Supposons donc n gt 1 et associons tout polyn me sym trique f de K X X le polyn me f K X Xn 1 d fini par rad fn Xn 1 0
457. rire une proc dure qui prend en argument deux matrices carr es et B et calcule AB BA On pourra se limiter aux matrices d ordre inf rieur ou gal 3 Exemple num rique On prend i 0 2 2 4 0 2i 1 1 5 1 i A 0 1 0 A2 i I li A3 0 1 i 1 i 0 2 3 1 0 i 0 1 Lei Afficher AA a AA et A1 43 m A3A 2 Ecrire une proc dure qui prend en argument un ensemble fini E A Ax de matrices de K et qui affiche la dimension de l espace vectoriel engendr par E ainsi qu une base de E extraite de E On pourra supposer que k lt 15 et que les matrices sont d ordre inf rieur ou gal 3 Exemple num rique E A1 A2 A3 Un ensemble F de matrices de Kn est appel une alg bre de Lie si F est un espace vectoriel et si quels que soient A B F on a AB BAEF Soit E un ensemble de matrices et soit Ep la suite d espaces vectoriels d finie ainsi Eo est l espace vectoriel engendr par E et E 1 est l espace vectoriel engendr par l ensemble Ex U AB BA A B Er 3 a D montrer qu il existe un plus petit entier s tel que Es Es 1 D montrer que Es est la plus petite alg bre de Lie contenant E on dit que c est l alg bre de Lie engendr e par E b Ecrire une proc dure qui calcule la dimension de l alg bre de Lie engendr e par un ensemble fini de matrices Exemple num rique E A1 A2 A3 On dit qu une suite croissant
458. rmule g pgcd f f Preuve Puisque K X est principal tout polyn me non nul admet une d composition unique comme produit de polyn mes irr ductibles En regroupant entre eux les facteurs gaux on obtient une factorisation de la forme suivante o J d signe l ensemble des polyn mes irr ductibles et les np sont des entiers presque tous nuls c est dire nuls sauf pour un nombre fini de p f r pel On obtient alors une d composition de la forme voulue en posant g p ot h T r pEI pEI o rp 1 si np est impair et rp 0 sinon L unicit d coule de ce qui suit si f g h avec h sans carr on a f g h et donc pgcd f f g pgcd h h Soit p un facteur irr ductible de pgcd k h et posons h pq Il vient h pq p q et puisque p divise h p divise p q Si p 0 p est un carr d apr s la proposition F 3 4 ce qui contredit le fait que p est irr ductible Donc p 0 et comme p est de degr inf rieur p p ne peut diviser p et divise donc q d apr s le lemme de Gauss Il en r sulte que p divise h ce qui contredit l hypoth se que h est sans carr Donc pgcd h h 1 et pged f f 9 Comme f n est pas nul g est non nul et la factorisation est unique On consid re d sormais un polyn me f sans carr On peut galement supposer que f 0 1 sinon le polyn me X est un diviseur trivial de f Soit f fif2 f la factorisation de f en produit de
459. rnoulli VAR k n integer BEGIN Po1B 0 0 B 0 Bo 1 Po1B 1 0 B 1 PolB 1 1 B 0 B 1 2 X FOR n 2 TO nn DO BEGIN FOR k 0 TO n DO 7 Bk RatParEntier B k binomial n k PolB n n k END END de PolynomesDeBernoulli On obtient en adaptant la proc dure d impression des polyn mes coefficients r els donn e dans l annexe A les r sultats suivants B OCX 1 B 1 X X 1 2 B_2 X X 2 X 1 6 B 3 X X 3 3 2 X 2 1 2 X B_4 X X 4 2 X 3 X 2 1 30 B 5 X X 5 5 2 X 4 5 3 X 3 1 6 X B 6 X X 6 3 X 5 5 2 X 4 1 2 X 2 1 42 B_7 X X 7 7 2 X 6 7 2 X 5 7 6 X 3 1 6 X B 8 X X 8 4 X 7 14 3 X 6 7 3 X 4 2 3 X 2 1 30 B 9 X X 9 9 2 X 8 6 X 7 21 5 X 5 2 X 3 3 10 X B 10 X X 10 5 X 9 15 2 X 8 7 X 6 5 X 4 3 2 X 2 5 66 B 11 X X 11 11 2 X 10 55 6 X 9 11 X 7 11 X 5 11 2 X 3 5 6 X B 12 X X 12 6 X 11 11 X 10 33 2 X 8 22 X 6 33 2 X 4 5 X 2 691 2730 B 13 X X 13 13 2 X 12 13 X 11 143 6 X 9 286 7 X 7 429 10 X 5 65 3 X 3 691 210 X Pour tablir le formulaire on utilise l expression Bn 1 1 n 1 Bn41 2 pour crire S k m Bn 1 m Bn 1 mr n 1 Il suffit donc d annuler le terme constant de B 1 X de diviser les autres coefficients par n 1 et d incr menter de 1 le coefficient de X
460. roc der est la recherche syst matique du pivot de plus grand mo dule ce qui peut avoir un effet b n fique sur les erreurs d arrondi Version 15 janvier 2005 12 Chapitre 1 Calcul matriciel FUNCTION PivotMax k integer integer D termine un indice p entre k et n tel que a est maximal VAR i p integer BEGIN p K FOR i k 1 TO n DO IF abs ali k gt abs a p k THEN p i PivotMax p END de PivotMax La fonction EstNul teste si son argument est nul pr s Elle est d finie comme suit FUNCTION EstNul r real boolean Vrai si r est nul pr s BEGIN EstNul abs r lt epsilon END de EstNul Bien entendu le nombre est petit Le choix d une valeur convenable pour ne peut pas tre fait a priori Prendre 1078 n a pas de sens lorsque les l ments de la matrice sont tous de l ordre de 10 101 Il faut choisir petit par rapport une norme de la matrice Dans la mesure o les exemples que nous utilisons sont des matrices dont les coefficients sont de l ordre de l unit on peut choisir par exemple 1075 Pour changer des parties de lignes de matrices on utilise la proc dure PROCEDURE EchangerFinLignes i j integer VAR m integer BEGIN FOR m i TO n DO Echanger a i ml alj ml END de EchangerFinLignes qui fait appel une proc dure qui change deux nombres r els soit PROCEDURE Echanger VAR u
461. roduit des matrices de rotation est l inverse de la matrice orthogonale cherch e VAR P q integer c s real BEGIN FOR p 2 TO n 1 DO FOR q p 1 TO n DO BEGIN CoefficientsGivensE p q c s a TransformationGivens n p q C S a END END de TridiagonalParGivens Une variante de cette proc dure permet d obtenir aussi la matrice orthogonale qui est le produit des matrices de rotations Pour cela on accumule les matrices de rotations dans une matrice qui initialement est la matrice unit et qui est postmultipli e au fur et mesure avec les matrices de rotations La proc dure de postmultiplication c est dire du calcul du produit BG q p est la suivante PROCEDURE Postmultiplier n p q integer c s real VAR a mat Postmultiplication de la matrice a par la matrice de rotation G q p VAR i integer v w real BEGIN FOR i 1 TO n DO BEGIN v ali pl w ali ql ali pl c v s w ali q END END de Postmultiplier S Vv C Xw La proc dure suivante calcule donc dans B le produit G 3 2 G n n 1 PROCEDURE TridiagonalParGivens2 n integer VAR a g mat Version 15 janvier 2005 4 2 Tridiagonalisation 77 On annule successivement les coefficients d indices p q pour 2 lt p lt q lt n Le produit des matrices de rotation est l inverse de la matrice orthogonale cherch e VAR P gt C BEGIN g FOR q integer s real Matrice
462. round pldegremax l l o d degre p est bien plus parlant Ces op rations se font en fait par paires on veut r cup rer la partie r elle d un com plexe et la modifier de m me obtenir et fixer le degr d un polyn me En anglais il existe une convention de notation commode fond e sur le couple get et set ainsi Version 15 janvier 2005 A 1 Conseils de programmation 415 on peut crire GetDegree et SetDegree mais en fran ais on ne dispose pas de vo cables aussi brefs et aussi parlants Nous avons choisi le pr fixe Fixer chaque fois que l on veut changer un attribut et l absence de pr fixe pour l obtenir ainsi FixerRe et FixerDegre ou encore FixerNumerateur et Numerateur L encore le choix fait se transpose fonctoriellement travers les divers exemples trait s Passer les param tres Lors de l appel d une proc dure ou fonction les param tres formels sont remplac s par les param tres dit actuels La substitution se fait diff remment selon que le passage du param tre est par valeur ou par r f rence ce mode de passage tant sp cifi par le pr fixe VAR dans la d claration Le passage par valeur s effectue comme suit l expression substitu e au param tre formel est valu e et le r sultat est transf r dans une variable locale la proc dure Toute r f rence au param tre formel interne au corps de la proc dure est remplac par la variable locale la proc
463. rsible L et L le sont Alors LIL UU La matrice L L est triangulaire inf rieure et UU est triangulaire sup rieure L galit implique qu elles sont toutes deux diagonales et la premi re donc aussi la deuxi me est en fait la matrice unit montrant que L L et U U Ceci prouve l unicit qui d ailleurs d coule aussi de la preuve d existence qui suit L existence se montre par r currence sur l ordre n de le cas n 1 tant vident Consid rons alors la d composition par blocs A b H o est d ordre n 1 Par r currence A poss de une d composition LU soit L U Cherchons alors deux matrices d ordre n L 0 U u Ba FE avec LU A On obtient les quations L u b vU b vu r a Les deux premi res permettent de d terminer u et v de fa on unique parce que L et U sont inversibles et la troisi me donne r de fa on unique D o l existence R ciproquement si LU alors U est inversible et en particulier le produit de ses l ments diagonaux est non nul Soit 1 lt k lt n et soit A le mineur principal de A d ordre k Consid rons la d composition par blocs L 0 U Y x v o w o L et U sont d ordre k Alors L U a un d terminant non nul Il n est pas difficile de v rifier que si poss de deux d compositions L U et L U alors on a toujours U U En revanche l galit entre L et L ne peut tre a
464. s par suite Ri N Ri C Ri ce qui condredit la minimalit de l criture de P En particulier un c t d un poly dre convexe de dimension deux n ayant qu un ou deux sommets incidents selon qu il est ou non born admet un ou deux c t s adjacents La fronti re d un convexe tant connexe on obtient la caract risation compl te de la relation d incidence entre c t s d un poly dre convexe en dimension 2 sous la forme suivante Version 15 janvier 2005 10 1 Poly dres et enveloppes convexes 281 PROPOSITION 10 1 6 Les c t s E1 E d un poly dre convexe de dimension deux forment une cha ne de c t s adjacents c est dire que une permutation pr s E et Ei sont adjacents pour i 1 n 1 avec En et E1 adjacents si le poly dre est born et En et E sont les deux c t s infinis si le poly dre est non born La caract risation de la relation d incidence entre faces pour les poly dres de dimension gt 3 est un probl me nettement plus difficile Seul le cas de la dimension trois est enti rement r solu Nous introduisons maintenant la notion d ensemble polaire Soient o E et A C E le sous ensemble polaire de par rapport o est A y E 0 0 lt 1 pour tout x A 1 4 On v rifie facilement que A est un ferm convexe c est une intersection de demi espaces ferm s que si C B alors B C A et enfin que C A D op ration est en fait une bonne d
465. s obtiennent en concat nant des mots de longueur 2k 1 et de longueur 2l 1 pour k n 1 Une suite de mots se d finit par CONST LongueurSuiteMot 42 42 P TYPE SuiteMot ARRAY 1 LongueurSuiteMot OF mot et une table de suite de mots par CONST LongueurTable 5 TYPE TableSuite ARRAY 0 LongueurTable OF SuiteMot TailleSuite ARRAY 0 LongueurTable OF integer o l entier d indice n du tableau de type TailleSuite contient le nombre d l ments dans la n i me suite de mots Ceci conduit aux proc dures suivantes Version 15 janvier 2005 9 2 Mots de Lukasiewicz PROCEDURE EngendrerLukasiewicz nn integer VAR 1 TailleSuite avec VAR n k i BEGIN LettreEnMot luk 0 11 1 1 0 FOR n 1 n FOR nteger 1 0 k 0 TO n 1 DO 1 TO nn DO BEGIN 245 VAR luk TableSuite L unique mot de longueur 1 ComposerLukasiewicz luk k luk n k 1 luk n 1 k 1 n k 1 1 n END END de EngendrerLukasiewicz PROCEDURE ComposerLukasiewicz VAR a b c SuiteMot VAR la lb m integer Compose les mots de la suite a avec les mots de la suite b VAR i je BEGIN FOR i FOR m PereLukasiewicz a i b j c m END END de ComposerLukasiewicz nteger 1 TO la DO j 1 TO 1b DO BEGIN m 1 Voici le r sultat obtenu B B B M oB e e e IE I ererek o 1 0 1 1 1 1 1 2 1 2 1 1
466. s p p divise Z a ib Donc p divise z Z 2a et i z Z 2b Mais puisque 2 est r ductible p est impair et donc p divise a et b PROPOSITION 11 1 7 Si un l ment z de P irr ductible mais n appartenant pas N divise un entier naturel n alors z divise n Preuve Si z divise n alors Z divise n n Puisque z et Z sont irr ductibles et distincts zZ divise n Nous pouvons pr sent caract riser les entiers naturels irr ductibles PROPOSITION 11 1 8 Un entier naturel p est irr ductible si et seulement si p est un nombre premier congru 3 modulo 4 De plus tout nombre premier r ductible est somme de deux carr s Preuve Supposons p irr ductible Alors p est videmment premier Si p 3 mod 4 il existe d apr s la proposition un entier d lt p 2 tel que d 1 0 mod p Alors p divise d i d i et puisque p est irr ductible p divise d i ou p divise d i D apr s la proposition oa on en d duit p divise 1 ce qui est impossible R ciproquement soit p un entier naturel premier mais r ductible et soit z un diviseur irr ductible de p Si z est entier alors z divise p dans N d apr s la proposition et comme p est premier on a n cessairement z p ce qui contredit le fait que p est r ductible Si z n est pas entier alors z divise p d apr s la proposition Comme p est premier on a p z et donc p est somme de deux carr s Maintenant un carr est congru 0 ou
467. s de transformation orthogonales on obtient une matrice U telle que R UA et la matrice cherch e Q est gale UT tU Les deux proc dures suivantes r alisent ces calculs PROCEDURE IterationGivens n integer VAR a u mat On annule successivement les coefficients d indice p q pour 1 lt p lt q lt n Le produit des matrices de rotation est l inverse de la matrice orthogonale cherch e VAR P q integer c S real BEGIN FOR p 1 TO n 1 DO FOR q p 1 TO n DO BEGIN CoefficientsGivens p q c S a Version 15 janvier 2005 3 3 D composition QR 63 Premultiplier n p q c s u Premultiplier n p q c s a END END de IterationGivens PROCEDURE DecompositionQRparGivens n integer a mat VAR q r mat D composition QR de la matrice a par la m thode de Givens BEGIN T q MatriceUnite Le couple de matrices A I est transform IterationGivens n r q en un couple R Q puis Q est transpos e Transposer n q q pour donner la matrice cherch e END de DecompositionQRparGivens Voici un exemple d ex cution Les impressions interm diaires montrent comment la ma trice de d part est progressivement transform e en matrice triangulaire sup rieure Voici la matrice a 4 000 2 000 1 000 0 000 2 000 5 000 3 000 5 000 1 000 1 000 1 000 1 000 2 000 1 000 4 000 1 000 Matrice a pour p 1 q 2 4 472 4 025 2 236 2 236 0 000 3 578 2 236 4 472 1 000 1 000
468. s des sites concern s Les types utiles sont TYPE Suitelndices ARRAY 1 LongueurSuite OF integer Tablelndices ARRAY 1 LongueurSuite OF Suitelndices Une table d indices contient pour chaque i la suite des indices des sites trouv s en tournant autour de s La longueur de cette suite sera rang e dans une table d entiers L indication de pr sence sur l enveloppe convexe pourra aussi tre rang e dans une table de cette nature Ceci conduit donc l en t te de proc dure suivant PROCEDURE Delaunay n integer S SuitePoints VAR long Suiteindices longli est la longueur de la suite des voisins de 1 VAR Voisins Tablelndices Voisins i contient la suite des voisins de i VAR EnvConv Suiteindices Le tableau EnvConv indique les sommets qui sont sur l enveloppe convexe Plus pr ci s ment EnvConv i 1 si s est sur l enveloppe convexe 0 sinon La proc dure d bute par deux constantes qui servent orienter la recherche CONST Version 15 janvier 2005 10 3 Triangulation de Delaunay 305 Drawing Figure 10 3 7 Une triangulation AGauche ADroite 1 1 La fonction que voici calcule le site sj le plus proche de s en comparant les carr s des distances de s aux autres sites FUNCTION LePlusProcheVoisin i integer integer VAR j K integer d dk real BEGIN IF i 1 THEN j 2 ELSE j 1 Premier site examin d CarreDistance S i S j Le carr de la distance
469. s faire le produit de deux chiffres relativement b sans d bordement Ceci conduit au choix fait Toutefois nous allons galement nous perme ttre la base 10000 en manipulant des chiffres d finis comme longint L introduction du type chiffre permet une conversion instantan e cette situation Dans l emplacement d indice 1 du tableau d un entier on range sa taille et dans lemplacement d indice 2 son signe Il y a videmment de l arbitraire dans cette con vention mais de toute fa on le choix est masqu par les fonctions d acc s et de modi fication de taille et de signe qui sont les suivantes FUNCTION Taille VAR u entier integer PROCEDURE FixerTaille VAR u entier p integer FUNCTION LeSigne VAR u entier integer PROCEDURE FixerSigne VAR u entier s integer FUNCTION EstEntierNul VAR u entier boolean et qui se r alisent dans notre repr sentation par FUNCTION Taille VAR u entier integer BEGIN Taille u 1 END de Taille PROCEDURE FixerTaille VAR u entier p integer BEGIN ul 1 p END de FixerTaille FUNCTION LeSigne VAR u entier integer BEGIN LeSigne u 2 END de LeSigne PROCEDURE FixerSigne VAR u entier s integer BEGIN ul 2 s END de FixerSigne FUNCTION EstEntierNul VAR u entier boolean Version 15 janvier 2005 12 1 Entiers en multipr cision 397 BEGIN EstEntierNul Taille u TailleEntierNul END
470. s par 4 sont D ererre HN N ND ND ww w www e e pe p e eNNNeNNN WwW w weNNWwWUP e eenneennenNnwrrNEeNEBEe eere nerreNner erererrrrerrre ererere erer 1 1 1 Le calcul des partitions de n en part distinctes se fait sur le m me sch ma La premi re partition est n Lors du calcul de la partition suivante on cherche d terminer la premi re partition en parts distinctes commen ant par un entier donn Une telle par tition n existe pas toujours Plus pr cis ment on a le lemme suivant LEMME 8 3 10 Il existe une partition de n en parts distinctes et de plus grande part m si et seulement si m lt n lt m m 1 2 Preuve La condition est n cessaire car si a a1 s avec ay m est une Version 15 janvier 2005 8 3 Partitions d entiers 229 partition de n alors n a1 as lt m m 1 m s 1 lt m m 1 2 La r ciproque se montre de la m me mani re Nous traduisons ce lemme en une petite proc dure qui teste la deuxi me condition FUNCTION CompatiblePartsDistinctes n m integer boolean Vraie s il existe une partition de n en parts distinctes dont la plus grande part est m BEGIN CompatiblePartsDistinctes m 1 m DIV 2 gt n END de CompatiblePartsDistinctes Cette proc dure est ensuite utilis e pour calculer la partition suivante PROCEDURE PartitionSuivantePartsDistinctes VAR a Mot n integer VAR derniere boolean Calcule dans le tableau a la parti
471. s sym triques 175 PROCEDURE pParX2PuissanceK K integer VAR p polynome VAR i integer BEGIN FOR i 1 TO Taille p DO pli 2 pli 2 K END de pParX2PuissanceK PROCEDURE Calcul_pf f polynome VAR pf polynome VAR i integer p p0 polynome BEGIN pf PolynomeNul p f i 0 WHILE Taille p lt gt 0 DO BEGIN pZero p p0 pParX2PuissanceK i pO PolynomePlusPolynome 2 pf p0 pf Recurrence p p d a 1 END END de Calcul pf Exemple num rique On trouve XI XI 283 258183 505153 355 52 105 s 51 Les formules de Newton reposent sur le calcul des coefficients r1 t2r2 nrn rn 1 Qri r2 rn T SI aiako ana ral eee ral On commence par calculer le coefficient multinomial oo o riterna T1 T2 ce Tn rilrol ra en observant que Pi Ta a O N a a trs Da aeu 71 72 Tn en T2 r3 Tn La proc dure correspondante fait appel la proc dure Binomial d finie dans la biblio th que g n rale FUNCTION Multinomial r monome integer Donne la valeur du Multinomial CR Version 15 janvier 2005 176 VAR i SommePartielle M integer BEGIN M 1 IF n gt 1 THEN BEGIN SommePartielle rlil FOR i 2 TO n DO BEGIN SommePartielle SommePartielle rlil M M Binomial SommePartielle rlil END END Multinomial M END de Multinomial Le calcul de ar r2 rn n offre plus de difficult FU
472. sMotTM t mot n k integer x suite boolean Teste si t est sous mot de 80 Sn 1 aux positions donn es par le sous ensemble x de 1 n VAR p j integer coincide boolean Version 15 janvier 2005 9 4 Suite de Thue Morse 271 BEGIN pi 05 JE 1 coincide true WHILE j lt k AND coincide DO BEGIN REPEAT p p 1 UNTIL x p 1 coincide s p 1 t j j j 1 END EstSousMotTM coincide END de EstSousMotTM On utilise cette proc dure pour compter le nombre d occurrences comme suit PROCEDURE ccurrencesSousMotTM t mot n integer VAR NombreUccurrences integer VAR k integer x Suite derniere boolean BEGIN NombreUccurrences 0 k Longueur t PremierePartieRestreinte x n k REPEAT IF EstSousMotTM t n k x THEN NombreUccurrences NombreUccurrences 1 PartieSuivanteRestreinte x n k derniere UNTIL derniere END de OccurrencesSousMotTM Voici un exemple de r sultat Mot t 1 1 1 1 N 7 Occurrences 1111000 1110010 1100110 1010110 1110001 1100101 1010101 Le mot a 7 occurrences Le m me mot a 37 occurrences comme sous mot dans S12 Version 15 janvier 2005 272 Chapitre 9 Combinatoire des mots Notes bibliographiques Une r f rence g n rale pour la combinatoire des mots est M Lothaire Combinatorics on Words Reading Addison Wesley 1983 Les mots de Lukasiewicz sont l arch type des notations pr fix
473. semble fini de triangles tels que 1 l ensemble des sommets des triangles co ncide avec S 2 les int rieurs des triangles sont disjoints deux deux 3 la r union des triangles co ncide avec l enveloppe convexe de S Parmi toutes les triangulations possibles d un ensemble de points la triangulation de Delaunay que nous d finirons dans un instant est la plus tudi e et la plus utilis e car elle poss de de nombreuses propri t s de maximalit utiles dans les applications pratiques et plus prosa quement il existe des algorithmes performants pour la calculer Un cercle C est un cercle de Delaunay de S si son int rieur i e le disque ouvert dont C est la fronti re ne contient aucun point de S Un segment s t o s t sont deux sites distincts est une ar te de Delaunay s il existe un cercle de Delaunay passant par s et t Un triangle rst o r s t sont trois sites distincts de S est un triangle de Delaunay si son cercle circonscrit est un cercle de Delaunay Version 15 janvier 2005 296 Chapitre 10 G om trie algorithmique Figure 10 3 2 Une triangulation de Delaunay Pour simplifier la discussion nous ferons l hypoth se restrictive que les sites sont en position g n rale c est dire que trois d entre eux ne sont jamais align s et que quatre d entre eux ne sont jamais cocycliques Sous cette hypoth se nous avons le r sultat suivant TH OR ME 10 3 1 L ensemble des triangles de
474. ssParEGauss u v EntierGauss VAR uv EntierGauss VAR a b integer BEGIN a ReCu Rev ImCu Im v b ReCu Im v Im u Re v CartesienEnEntierGauss a b uv END de EGaussParEGauss Les entr es sorties sont r alis es par trois proc dures PROCEDURE CartesienEnEntierGauss a b integer VAR z EntierGauss BEGIN z 0 a z 1 b END de CartesienEnEntierGauss PROCEDURE EntrerEntierGauss VAR z EntierGauss titre texte VAR a b integer BEGIN writeln writeln titre write Partie reelle readln a write Partie imaginaire readln b CartesienEnEntierGauss a b z END de EntrerEntierGauss PROCEDURE EcrireEntierDeGauss z EntierGauss titre texte VAR a b integer BEGIN write titre a Re z b Im z IF b O THEN b 0 write a 1 ELSE BEGIN b 0 IF a lt gt 0 THEN write a 1 IF b lt O THEN write signe ELSE IF a lt gt O THEN write IF abs b lt gt 1 THEN write abs b 1 write i END END de EcrireEntierDeGauss Version 15 janvier 2005 11 1 Entiers de Gauss 333 Contrairement ce qui se passe dans Z on peut r aliser une division euclidienne de diverses fa ons Voici une possibilit utilisant la fonction round qui d apr s Jensen et Wirth Pascal manuel de l utilisateur est d finie ainsi k s il existe un entier k gt 0 tel que k 0 5 lt s lt
475. ssent le lien entre la moyenne arithm tico g om trique et les int grales elliptiques du premier et du second ordre Version 15 janvier 2005 398 Chapitre 12 Grands nombres TH OR ME 12 4 2 Soient a gt b gt 0 Alors I a b I a1 b1 4 6 et J a b abI a b 2J a1 b1 4 7 o a et b sont d finis par TH OR ME 12 4 3 Soient a gt b gt 0 Alors I a b MA et J a b e pire T a b o cn est d finie par 4 3 Pour tablir le premier th or me nous introduisons la transformation de Landen qui associe au r el de l intervalle 0 7 2 le r el 1 d fini par P1 D Arctan tan 6 4 8 Des propri t s l mentaires de la fonction tangente nous d duisons que la transforma tion de Landen est un diff omorphisme croissant de l intervalle 0 7 2 sur l intervalle 0 7 Observons que 91 d est argument du nombre complexe a cos i bsin acoso bsin A a b etp1 La proposition suivante rassemble les propri t s utiles notre propos de la transforma tion de Landen PROPOSITION 12 4 4 La transformation de Landen 1 v rifie les quations a cos 26 1 c cos d1 ab A a b D a cos 2 1 c cos h1 A a b 4 9 a Sin 29 1 sind 0 a cos 2 d1 A a1 b1 1 ainsi que l quation diff rentielle d 1 a 4 10 A a b o 2 A a bi Q Preuve Pour simplifier les notations posons A A a
476. ssur e consid rer par exemple le cas U 0 Toute matrice inversible peut tre par une permutation de ses lignes transform e en une matrice dont les mineurs principaux sont inversibles Toute matrice inversible poss de donc une permutation de ses lignes pr s une d composition LU La m thode appel e m thode de Crout ou m thode de Gauss modernis e est un algorithme pour obtenir cette d composition Elle consiste en fait en une organisation judicieuse des calculs faits lors de la m thode de Gauss Dans la m thode de Gauss une op ration de pivotage peut tre interpr t e comme la multiplication gauche par une matrice de Frobenius Gp qui dans ce cas est unitri angulaire inf rieure S il n y a pas d change de lignes une matrice d ordre n est transform e en Gn 1 G2G1A U Version 15 janvier 2005 3 1 D composition LU 53 la matrice U est triangulaire sup rieure et G Gy 1 G2G1 est unitriangulaire inf rieure On a donc A LU avec L G71 En d autres termes la m thode de Gauss contient de fa on cach e une m thode de d composition LU S il y a change de lignes dans la m thode de Gauss on a en fait Gn 1Pn 1 GoPoGi PA U o les P sont des matrices de permutations Or Gn 1Pn 1 G2P2G1 Pr P Ha Hi avec P P _1 P P et Hy Pr P1 GrPr PA 1 lt k lt n de sorte que la matrice H PH _1 H2H1P est unitriangulaire inf rieure et HPA U avec L H l ona A LU
477. st un chiffre BEGIN u FlottantNul FixerExposant u 1 uli x END de ChiffreEnFlottant Le calcul de l inverse d un flottant a se fait en utilisant la m thode de Newton La formule d it ration est En 1 En ax n gt 0 La seule difficult est l initialisation on doit avoir 0 lt xo lt 2 a Supposons a gt 0 donn par N a B gt a B k 1 Alors 0 lt a lt B Soit xo B k avec k B a1 1 Comme a lt B a1 1 on a xoa lt B k ai 1 lt B7 1 1 aada Donc cette valeur de zo convient La proc dure suivante r alise le processus it ratif PROCEDURE InverseFlottant a Flottant VAR b Flottant BEGIN ChiffreEnFlottant b base DIV a 1 1 FixerExposant b 1 Exposant a Valeur initiale d it ration FixerSigne b LeSigne a FlottantInverselteration a b puis les it rations END de InverseFlottant Elle initialise un flottant une valeur qui assure la convergence de la m thode de Newton L it ration proprement dite se fait dans la proc dure que voici Version 15 janvier 2005 380 Chapitre 12 Grands nombres PROCEDURE FlottantInverselteration a Flottant VAR x Flottant VAR y z Flottant BEGIN REPEAT Y X FlottantParChiffre x 2 x 2x FlottantParFlottant a y z FlottantParFlottant z y z Zz ax FlottantMoinsFlottant x z x z 2x ax UNTIL FlottantProches y x END de F
478. st un poly dre convexe d int rieur non vide dans Fr P not Facer P ii P gt R est lunique criture minimale de P iv Fr P U Facer P Preuve Soit P f _ Ri une criture minimale de P on note H l hyperplan fronti re de Ri Nous montrons que R F La seule difficult est de prouver que H N P est d int rieur non vide dans H Soit a un point de l int rieur de P et posons P jz Rj L criture tant minimale P P est non vide soit x un point de P P et soit y ja N H le segment Ja x tant inclus dans l int rieur de P il en est de m me de y donc H O P H A P est d int rieur non vide dans H Inversement soit R F de fronti re H par hypoth se H intersecte la fronti re de P selon un convexe de codimension 1 cette fronti re tant incluse dans l union finie des H H co ncide avec l un des H et R Ri Pour d montrer le dernier point on crit RP PoEYP Pn E n REF E Rn P U E R N P REF REF U FacerP REF Ceci termine la d monstration du th or me Les ensembles de la forme Facer P sont appel s les facettes de P c t s en dimension deux Comme ces ensembles sont eux m mes des poly dres convexes de dimension Version 15 janvier 2005 10 1 Poly dres et enveloppes convexes 279 d 1 on peut parler de leurs facettes qui sont alors des poly dres de dimension d 2 et ainsi de suite Plus g n ralement pour k 0
479. st une matrice de Lanczos c est dire lorsque le vecteur b a tous ses coefficients gaux 1 la proc dure se simplifie encore et devient PROCEDURE LanczosLU n integer a c vec VAR u 1 vec VAR Version 15 janvier 2005 72 Chapitre 4 Matrices tridiagonales i integer BEGIN u 1 alt FOR i 2 TO n DO BEGIN l i c i uli 1 uli a i 1 i END END de LanczosLU On utilisera ces proc dures dans la m thode de Rutishauser de calcul des valeurs propres Dans les deux cas la matrice UL est nouveau tridiagonale 4 1 3 D composition de Choleski La d composition de Choleski d une matrice sym trique d finie positive est elle aussi tr s simple si est tridiagonale Posons en effet ai bi 0 d 0 a2 ba l2 d2 A et TE l3 d3 bn 1 0 An 0 ln dn L quation L L donne par identification d Va li bi 1 di 1 di yVu i 2 n Ce qui se traduit dans la proc dure que voici PROCEDURE CholeskiTridiagonal n integer a b vec VAR d 1 vec VAR i integer BEGIN df1 sqrt a 1 FOR i 2 TO n DO BEGIN 1 i b i 1 d i 1 d i sqrt a i sgr 1 il END END de CholeskiTridiagonal 4 2 Tridiagonalisation La simplicit de manipulation des matrices tridiagonales est manifeste Il est donc souhaitable de se ramener des matrices de cette forme avant de proc der des calculs Version 15 janvier 2005 4 2 Tridiagonalisation
480. suit PROCEDURE FactorisationLyndonParDuval w mot VAR f Suitemot VAR 1 integer BEGIN f 1 vw T 1 REPEAT FactorisationDuval f 1 f 1 UNTIL EstMotVide f 1 Version 15 janvier 2005 9 3 Mots de Lyndon 259 l1 1 1 Car le dernier facteur est le mot vide END de FactorisationLyndonParDuval Les facteurs de la factorisation sont ajout s au fur et mesure au tableau f La longueur de la factorisation est l L criture de la proc dure de factorisation de Duval est plus d licate car il y a plusieurs indices g rer PROCEDURE FactorisationDuval w mot VAR f Suitemot VAR 1 integer Calcule dans fe fe 1 la factorisation de Duval du mot w Avec les notations du texte les variables i j k et d ont la signification suivante d est la longueur de La wi est la premi re lettre de lp 1 wj est la premi re lettre de v k est l indice de la premi re lettre examiner VAR i j k d m integer PROCEDURE CopierFacteurs Copie les facteurs lp 1 lq dans f VAR r integer BEGIN r i WHILE r d lt j DO BEGIN LeFacteur w r r d 1 f l r r d 1 1 1 END END de CopierFacteurs BEGIN de FactorisationDuval m Longueur w i 1 j 2 k jadas Factorisation de la premi re lettre WHILE k lt m DO BEGIN CASE signe wli k j OF 1 BEGIN Nouveau facteur par concat nation k k 1 j k d k i END 0 BEGIN Prolongation k k
481. t on obtient une suite de matrices A 4 40 AG D montrer que t propres de la matrice A On pourra montrer que pour i 1 n ah a R SA et que la suite af ez est de Cauchy AK a tend vers une matrice diagonale dont les valeurs propres sont les valeurs 10 Ecrire un programme qui prend en argument la partie triangulaire inf rieure d une matrice sym trique et qui met en uvre cet algorithme On pourra arr ter les it rations lorsque S B lt pour 1078 Exemple num rique 4 1 0 0 0 1 4100 A 0 1 4 1 0 0 0 1 4 1 0 0 0 1 4 Version 15 janvier 2005 5 1 M thode de Jacobi 87 11 On suppose de plus que les valeurs propres de la matrice A sont distinctes Soient G1 G2 1les matrices de rotations employ es dans l algorithme D montrer que la suite GiG2 Gk k gt 1 converge vers une limite G lorsque k tend vers l infini D montrer que les colonnes de G sont des vecteurs propres associ s aux valeurs propres de la matrice A Donner une proc dure qui calcule ces vecteurs propres pour la matrice donn e en exemple 5 1 2 Solution m thode de Jacobi Soit n gt 2 un entier Les matrices consid r es sont r elles carr es d ordre n Pour p q dans 1 n p q on note G q p gi j toute matrice de rotation d finie par gii l ifpetifq gij 0 i j 3 p q et i j ap Jp p Jq C Jp Jap S avec c s 1 Soit
482. t leur tour effectu es dans la repr sentation modulaire c est dire composante par composante Les op rations arithm tiques sont tr s peu co teuses en revanche pour que le r sultat soit lisible il doit tre converti en une repr sentation plus commode comme la repr sentation d cimale La programmation des op rations arithm tiques modulaires est facile Reste consid rer la conversion entre les deux repr sentations On utilise pour cela la proposition qui suit PROPOSITION 11 2 2 Soit u1 Uur la repr sentation modulaire de u et soient V1 Ur avec 0 lt vi lt m d finis par V1 Ui Va u2 vi c12 mod m2 U3 u3 V1 C1 3 v2 c2 3 mod m3 Ur ur Vi C1r V2 C2 r Ur_1 Cr 1r mod m Alors U UrMr 1 M U3MMA VoM V1 Preuve D apr s la d finition de la repr sentation modulaire il suffit de prouver que Ui ViMi 1 Mu UMM Vama V1 mod mi 1 lt i lt r 2 2 Consid rons vi ui v1 C1 i V2 C2 i Vi_1 ci 1 mod mi En multipliant par m _1 on obtient en utilisant 1 ViMi 1 Vi 4 ui Vi C1 Va Coi Vi 2 ci 2 mod mi et plus g n ralement pour 1 lt k lt i 1 ViMi 1 MR t Vi k 1Mi k Vi k Fe ui V1 C1 V2 C2 Fans Vi k 1 Ci k 1 i mod mi Version 15 janvier 2005 11 2 Arithm tique modulaire 343 ce qui donne pour k i 1 L expression d
483. t O n log n Dans ce chapitre nous tudions trois structures de base de la g om trie algorith mique l enveloppe convexe d une famille finie de points la triangulation de Delaunay d une famille finie de points et la triangulation d un polygone simple L accent est mis sur les aspects g om triques et combinatoires quivalence entre poly dres convexes born s et enveloppes convexes dualit entre triangulation de Delaunay et diagramme de Vorono coloriage d une triangulation d un polygone simple Les aspects algorith miques deuxi me acte de la pi ce g om trie algorithmique sont galement abord s en l absence au niveau o nous nous pla ons d outils algorithmiques ad quats nous nous bornons aux algorithmes les plus simples ce ne sont pas toujours les plus rapides 10 1 Poly dres et enveloppes convexes Soit un espace affine r el euclidien de dimension d Une partie C de E est dite convexe si pour tout x y C le segment x y Ax 1 y 0 1 est inclus dans C La dimension d un convexe non vide est par d finition la dimension du sous espace affine engendr par ce convexe Les convexes de dimension 0 sont les points ceux de dimension 1 sont les droites les demi droites et les segments La dimension d un convexe caract rise la vacuit de son int rieur un convexe C C E est d int rieur non vide si et seulement si sa dimension est celle de l espace E Rappelons enfi
484. t es et amp se r alisent comme suit PROCEDURE MatriceUPlusMatrice n integer a b matE VAR c matE Calcule la somme a b de deux matrices a et b d ordre n R sultat dans la matrice c VAR i j integer BEGIN FOR i 1 TO n DO FOR j 1 TO n DO cli j max ali j bli jl END de MatriceO0PlusMatrice PROCEDURE MatriceUParMatrice n integer a b matE VAR ab matE Calcule le produit a b de deux matrices a et b d ordre n R sultat dans la matrice ab VAR i j k integer s integer BEGIN FOR i 1 TO n DO FOR j 1 TO n DO BEGIN s 0 FOR k 1 TO n DO s max s ali k b k j l ab i j s END END de Matrice0ParMatrice Avec ces op rations il est facile de calculer la matrice I amp A 1 Version 15 janvier 2005 6 2 Matrices irr ductibles 137 PROCEDURE Acces n integer a matE VAR c matE VAR UnPlusA matE i integer BEGIN Matrice0PlusMatrice n MatriceEUnite a UnPlusA c UnPlusA C I A FOR i 2 TO n 1 DO MatriceOUParMatrice n c UnPlusA c END de Acces Voici un exemple Voici la matrice a 1 O 1 0 O0 0 0 O O0 1 O 1 O 1 0 1 0 0 0 0 O 1 0 0 0 Voici la matrice d acc s RS D ES RE O 1 0O O 1 1 1 1 1 1 1 1 1 1 1 O 1 0O O 1 On voit que tous les sommets sont accessibles partir de 1 3 ou 4 Maintenant con sid rons le probl me de calculer non seulement les l ments accessibles mais auss
485. t i AND m lt gt k THEN oreille NOT EstAGauche P j P i P m AND Le triangle pjpipk ne EstAGauche P i P k P m AND contient aucun autre sommet EstAGauche P k P j P m m m 1 END EstOreille oreille END de EstOreille Pour calculer l indice pr c dent et suivant modulo n on fait appel aux deux fonctions FUNCTION suiv i n integer integer BEGIN IF i n THEN suiv 1 ELSE suiv i 1 END de suiv Version 15 janvier 2005 10 4 Galerie d art 317 FUNCTION prec i n integer integer BEGIN IF i 1 THEN prec n ELSE prec i 1 END de prec La premi re peut bien s r tre programm e aussi bien par 1 i MOD n pour la deu xi me il n y a pas de formule aussi simple Pour trianguler P nous allons dresser la liste des triangles Un triangle est une suite de trois indices de sommets d o les d clarations de type TYPE Triangle ARRAY 1 3 OF integer Triangulation ARRAY 1 LongueurSuite OF Triangle Suitelndices ARRAY 1 LongueurSuite OF integer Le dernier type servira comme on le verra pour le calcul des couleurs Revenons la triangulation L algorithme proc de comme suit on cherche une oreille ce qui nous donne un triangle form de l oreille et des deux sommets voisins On enl ve l oreille du polygone et on recommence tant qu il reste au moins trois sommets Pour que les triangles contiennent les bons num ros ils doivent por
486. t convexe du polygone P c est dire tel que l angle du polygone P en p soit de mesure lt m par exemple tout sommet de l enveloppe convexe du polygone P et soit C l ensemble des sommets de P int rieur au triangle p _1p pi 1 Si C est vide alors p _1 p 1 est une diagonale et le th or me est d montr dans le cas contraire soit pj un point de C qui r alise le maximum des distances des points de C la droite pi_1pi41 alors p p est une diagonale de P ce qui termine la d monstration du th or me COROLLAIRE 10 4 2 Tout polygone simple admet une triangulation COROLLAIRE 10 4 3 Tout polygone simple n gt 4 sommets poss de au moins deux oreilles non cons cutives Preuve des corollaires Nous d montrons ces r sultats par r currence sur la taille du polygone Si le polygone P p1 p2 p3 est un triangle alors P est une triangulation de P et P admet trois oreilles Si P p1 p2 p3 pa est un quadrilat re alors en supposant Version 15 janvier 2005 10 4 Galerie d art 313 Figure 10 4 4 Un polygone ayant exactement deux oreilles sans perte de g n ralit que p1 p3 est une diagonale p2 et p4 sont deux oreilles non cons cutives et les triangles p1p2p3 et p p4p3 forment une triangulation de P Supposons maintenant que le polygone P poss de au moins cinq sommets et soit en vertu du th or me pr c dent p pj une diagonale de P qui scinde P en deux polygones simples P et P2 La r
487. t les m mes donc les quotients valent 1 Il en r sulte que QTQ est la matrice identit donc que RR l est galement et R R 3 3 3 Programme d composition QR m thode de Givens La d termination des coefficients des matrices de rotation G q p se traduit par la proc dure que voici Version 15 janvier 2005 62 Chapitre 3 D compositions PROCEDURE CoefficientsGivens p q integer VAR c s real VAR a mat Calcul des r els c et s tels que b q p 0 VAR norme real BEGIN norme sqrt sqr alp pl sqgr alq pl IF EstNul norme THEN BEGIN c 1 s 0 END ELSE BEGIN c afp pl norme s END END de CoefficientsGivens alq pl norme On peut construire les matrices G q p explicitement puis faire le produit des matrices Mais comme cette matrice ne modifie que peu de coefficients il est plus conomique de faire ces quelques op rations directement On a alors PROCEDURE Premultiplier n p q integer c s real VAR a mat Pr multiplication de la matrice a par la matrice de rotation G q p VAR j integer v w real BEGIN FOR j 1 TO n DO BEGIN v alp jl w alq jl alp j cxv s vw alq j s x v c v END END de Premultiplier La m thode de Givens consiste it rer cette op ration pour les couples p q avec 1 lt p lt q lt n La matrice obtenue si l on part de est la matrice R Si l on fait le produit des matrice
488. t pourquoi les carr s b2 ne sont valu s qu une seule fois et rang s dans un tableau b2 On obtient FUNCTION Variation n integer VAR a b2 vec x real integer Calcule la variation V x au point x VAR i s changements integer P q r real BEGIN changements 0 Compteur de changements de signe p 1 Initialisation p ao s 1 Signe de p ao r 0 FOR i 1 TO n DO BEGIN q a i x p b2 i r q p x r p p q IF signe q s THEN BEGIN Ainsi on saute les termes nuls s 8 Version 15 janvier 2005 108 Chapitre 5 Valeurs et vecteurs propres changements changements 1 END END Variation changements END de Variation L algorithme dichotomique s crit alors comme suit PROCEDURE ZeroParVariation i n VMoinsInfini integer VAR a b2 vec VAR alpha beta real Calcul de la i i me valeur propre VAR gamma real BEGIN WHILE NOT EstNul alpha beta DO BEGIN gamma alpha beta 2 IF Variation n a b2 gamma VMoinsInfini i 1 THEN alpha gamma ELSE beta gamma END END de ZeroParVariation Le calcul important est celui du nombre W y V y V oco Selon la valeur de ce nombre on r duit l extr mit gauche ou l extr mit droite de l intervalle La proc dure pr c dente est mise en uvre par PROCEDURE ValeursPropresParVariation n integer a b vec VAR vp vec VAR i r integer
489. t pr sent de fa on lisible Bien videmment ceci est passablement subjectif Dans l id al un programme bien crit se lit la m me vitesse qu un texte math matique bien r dig Cela va en g n ral moins vite que la lecture d un roman policier mais il n y a pas de raison que cela aille beaucoup moins vite Pour arriver cette facilit de lecture il y a quelques r gles observer Tout d abord une proc dure doit tre courte Un programme qui s tale sur plusieurs pages o l on est constamment oblig de faire des all es et venues entre le d but contenant les d finitions d clarations et le texte lui m me ne facilite pas la lecture Pour arriver des proc dures courtes il faut structurer le programme et donc aussi l algorithme sous jacent en mettant en vidence des groupements organiques de calculs l mentaires On proc de en fait comme dans une d monstration math matique un peu longue on met en vidence un certain nombre de lemmes ou de propositions interm diaires et la d monstration du th or me lui m me se r duit alors un encha nement logique judicieux de propri t s tablies auparavant En ce sens l en t te d une proc dure peut se comparer l nonc d une proposition et le corps de la proc dure la d monstration Remarquons que cette d marche qui en math matique conduit parfois des lemmes qui ont un int r t intrins que conduit en programmation
490. te de Thue Morsda 266 Le V G om trie 273 275 SEETI 276 286 A a 294 10 3 1 Enonc triangulation de Delaunay 294 10 3 2 Solution triangulation de Delaunayl 295 10 3 3 Programme triangulation de Delaunay 302 10 4 Galerie d art 4 4 4 44 44 sa aus a ua ae d a ame nu 309 0 4 1 Enonc galerie d art 309 0 4 2 Solution galerie d artl 311 10 4 3 Programme galerie d art 315 323 325 a die 325 A 325 RE 326 a ETERNON 331 A 340 A 340 A 341 344 Version 15 janvier 2005 Table des mati res XIII 351 ne ON d di id lan 351 a 351 Rd LR a DOS 352 e 355 E 370 an 370 EE 371 A ra 372 e 383 MUR sr Ta Gr EUR 383 TOORE 385 TTE 390 a T A EE 394 12 4 1 Enonc la formule de Brent Salamin 394 Pi ci 396 A STPS 103 411 SE a 411 N E OO S 417 E E EE E E TEETE EE T 418 a a a a 420 D NR 424 dd dde ee 430 eea aa e A a 437 E r de E R 440 B Les biblioth ques 447 B L G n ralit s lt 5 aace nia eaaa Data eu 4e a dt S 447 B 2 Calcul matriciel s s sosto si oeu k e de E a a e a eck ah EE E A 448 B3 Polyn mesl saaga a ea ons a a ee d ae Oa 449 B 4 Nombres complexes 450 B 5 Nombres rationnels 451 2 62 MO RD ER RE ES mama re
491. te de V s Les sommets de V s sont les H O H N V s qui se r duisent un point c est dire les points w tels que d w s d w si d w s d w S Version 15 janvier 2005 10 3 Triangulation de Delaunay 301 Figure 10 3 6 Le diagramme de Vorono est le dual de la triangulation de Delaunay pour un certain et un certain j En d autres termes ce sont les centres des cercles circonscrits aux triangles de Delaunay de sommet s Enfin les sites tant suppos s en position g n rale un sommet w de V s d termine de mani re unique les droites H et H dont il est l intersection par suite V s N H et V s N H sont bien des ar tes de V s dont une extr mit est w Nous terminons en d nombrant les sommets ar tes et r gions de Vorono PROPOSITION 10 3 6 Soient n le nombre de sites de S et l le nombre de sites de S situ s sur la fronti re de son enveloppe convexe Alors les nombres f a s de faces d ar tes et de sommets du diagramme de Vorono sont li s par les relations 1 f n 2 3s 2a 1 3 s 2f l 2 Preuve La premi re relation est vidente car une r gion de Vorono est associ e bijec tivement un site La seconde relation est obtenue en remarquant que chaque sommet du diagramme de Vorono est incident trois ar tes et que chaque ar te du diagramme de Vorono est incidente deux sommets pour les ar tes born es et un seul sommet pour les l ar tes non born
492. tenue avant la k i me tape Les pivots af Less a7 Da tant non nuls la matrice est de rang au moins k 1 Si les coefficients a pour i k 1 n sont tous nuls la k i me colonne de A est combinaison lin aire des pr c dentes on la supprime alors de A et on proc de avec la suivante S il ne reste plus de colonne k ik pour examiner le calcul du rang est termin Si en revanche l un des coefficients a i k 1 n est non nul on effectue le pivotage Dans la r alisation qui suit la suppression d une colonne lin airement d pendante des pr c dentes se fait en changeant cette colonne avec la derni re colonne Un compteur de colonnes est alors d cr ment Lorsqu il ne reste plus de colonnes ce compteur est gal au rang FUNCTION Rang m n integer a mat integer Calcule le rang de la matrice a d ordre m n Les proc dures de la m thode de Gauss sont l g rement modifi es pour tenir compte du fait que a n est pas n cessairement carr e VAR k q integer r integer independant boolean Version 15 janvier 2005 1 3 Rang d une matrice 19 FUNCTION ChercherPivot k integer integer Variante VAR i integer BEGIN i k WHILE i lt m AND EstNul ali k DO 4 AND s quentiel i i 1 ChercherPivot i END de ChercherPivot PROCEDURE EchangerFinLignes i j integer Variante VAR h integer BEGIN FOR h i TO n DO Echanger a i h alj h
493. ter les num ros des sommets dans le polygone de d part Il convient donc de les conserver et de les mettre jour dans un tableau que nous appelons num Voici la proc dure PROCEDURE Trianguler n integer P SuitePoints VAR X triangulation Calcule dans X une triangulation du polygone P VAR i m integer num SuiteIndices PROCEDURE ChercherOreille VAR i integer Voir ci dessous PROCEDURE CreerTriangle i m integer Voir ci dessous PROCEDURE CouperOreille i integer Voir ci dessous BEGIN de Trianguler FOR i 1 TO n DO numli i Initialisation des num ros m 0 Compte le nombre de triangles REPEAT Chercher0reille i On cherche une oreille pi m m 1 CreerTriangle i m On cr e un m i me triangle CouperOreille i On enl ve le sommet p i n n 1 On met jour la taille de P UNTIL n 2 END de Trianguler Voici le d tail des trois proc dures employ es La recherche d une oreille se fait par un parcours du polygone PROCEDURE ChercherOreille VAR i integer BEGIN i 1 Version 15 janvier 2005 318 Chapitre 10 G om trie algorithmique WHILE i lt n AND NOT EstOreille i n P DO i i 1 END de Chercher0reille Dans la proc dure de cr ation du triangle on rel ve les num ros d origine des sommets PROCEDURE CreerTriangle i m integer BEGIN X m 1 num prec i n X m 2 num i X m 3 num suiv i n END de C
494. tient entier q de deux nombres u un 1 u0 et v Un vo Notons d abord que l entier q d pend de tous les chiffres de u et ne peut donc tre d termin sans examiner u en entier Ainsi en base 10 le quotient de u 100 002 par v 50 001 est 2 alors que le quotient entier de 100 001 par v est 1 Il existe un algorithme qui moyennant un pr traitement des nombres u et v permet d estimer un chiffre du quotient avec une erreur d au plus 2 Le nombre de soustractions faire est donc major par 3 et surtout est ind pendant de la base La m thode proc de en deux tapes On calcule d abord un quotient approch par la formule p un 1b Un Un 1 1 puis on l ajuste pour obtenir le quotient exact q Si l on n y prend garde la valeur de p peut tre tr s loign e de celle de q Ainsi en base 100 pour u 1 80 v 2 on a p 90 mais le quotient exact est q 60 si u 1 80 00 00 00 et v 2 99 99 et toutes les valeurs interm diaires entre 60 et 90 sont possibles En revanche et toujours en base 100 pour u 30 60 v 51 on a p 60 et q 58 si u 30 60 00 et v 51 99 Nous allons montrer que ce dernier ph nom ne savoir p q lt 2 est g n ral moyennant une condition qui n est pas trop difficile r aliser Soient donc u Un 1 U0 UV Un v0 avec Un 0 et supposons u v lt b 1 Soit u qu r avec 0 lt r lt v Version 1
495. tier no gt 0 tel que f divise pa po De plus si f divise pn po alors no divise n Preuve Puisqu il n y qu un nombre fini de restes modulo f il existe deux entiers n gt m tels que Pn Pm Mod j On observe alors en utilisant la proposition 3 1 que gnom y Pn Pm p p p po Pn m Po 0 mod f et par cons quent Pn m Po 0 mod f Version 15 janvier 2005 184 Chapitre 7 Polyn mes puisque f est sans carr Ceci d montre l existence de no Supposons pn po et soit n qno r la division euclidienne de n par no Il vient comme ci dessus 2970 m ano Pn Pano PO pa ph po 0 mod f et par cons quent pr po mod f puisque f est sans carr Comme r lt no ceci entra ne r 0 et donc no divise n COROLLAIRE 7 3 9 Il existe un plus petit entier strictement positif a f tel que f divise X 1 Cet entier est impair Preuve En choisissant po X dans la proposition F 3 4 on constate que f divise un polyn me de la forme X X X X 1 Comme f ne divise pas X car f 0 1 et f n est pas constant f divise X 1 Il existe donc un plus petit entier a f tel que f divise XC 1 Cet entier est impair sinon f X 2_ 1 d apr s la proposition C3 On d duit de ce qui pr c de un crit re simple pour tester si f est irr ductible C est ce test qui est r alis dans le programme de la section sui
496. tiers positifs pre miers entre eux deux deux et soit m mm m Soient u1 u des entiers Alors il existe un entier u et un seul tel que0 lt u lt m 1et u u mod m poul lt j lt r Preuve Par le th or me de Bezout il existe pour tout i j avec 1 lt i j lt r un entier Ci j unique si 0 lt c lt mj tel que Ci jMi 1 mod mj 2 1 Posons pour 1 lt j lt r M JI MiCi j 1 lt i lt r i j Alors M 1 mod m et Mj 0 mod m pour i j de sorte que le reste u de uw M u rM modulo m v rifie les conclusions du th or me L unicit est imm diate Version 15 janvier 2005 342 Chapitre 11 Probl mes arithm tiques L application u1 u gt Mi u M est un isomorphisme d anneau parce que les M sont orthogonaux pour i j on a MiM 0 mod m et par ailleurs M M 1 mod m Pour tout entier u 0 m 1 le r uplet u1 u dentiers avec 0 lt u lt m et u u mod m pour 1 lt i lt r est la repr sentation modulaire de u La repr sentation en base b de u est un vecteur U d entiers dont chaque composante U est comprise entre 0 et b 1 et tel que u J so Uib L arithm tique dite modulaire concerne les op rations arithm tiques de l anneau Z Ces op rations sont en fait effectu es modulo m o m est un entier choisi suffisamment grand pour que le r sultat modulo m soit gal au r sultat dans Z Les op rations modulo m son
497. tilisant les galit s I a b I a b1 J a b abI a b 2J a1 b1 rx d montrer que ad ES et Jen 8 35 10 4 Utiliser l galit 21 1 V2 J 1 1 V2 P 1 V2 1 2 pour d montrer la formule _ 4 11 V OO j 1 2 ere j 1 5 Utiliser l approximation 2 E Aa es n 1 5 Dre j 1 de x pour crire un programme qui calcule m N d cimales Tn 6 On se propose maintenant de d montrer x et xx A cette fin on utilise le changement de variable b tan tan a a D montrer les relations a cos 2 1 c cos d1 ab A a b Q a cos 2 1 c cos d A a b ai sin 29 d C1 sin Q 0 ai cos 20 d A a b1 Q1 b En d duire que et v rifient l quation diff rentielle 2A a1 bi Q do A a b p do c D montrer x puis Version 15 janvier 2005 396 Chapitre 12 Grands nombres 12 4 2 Solution la formule de Brent Salamin En 1976 Brent et Salamin ont observ de mani re ind pendante que l algorithme clas sique de calcul des int grales elliptiques utilisant la moyenne arithm tico g om trique peut tre combin avec l identit de Legendre pour fournir un algorithme quadratique de calcul de m La mise en uvre de cet algorithme a conduit au d but des ann es 80 la d termination de 16 millions de d cimales de m Actuellement on en conna t un milliard de d cimales La d c
498. tion de f en produit de polyn mes irr ductibles 4 D montrer que pour toute famille gi 1 lt i lt s de polyn mes il existe exactement un polyn me g tel que deg g lt deg f et pour 1 lt i lt s g g mod fi 5 On note H f l ensemble des polyn mes h tels que deg h lt deg f et h h mod f a D montrer que H f est un sous espace vectoriel de dimension s de K X et que pour tout h H f on a f pgcd f h pgcd f h 1 b On dit qu un polyn me h H f s pare deux facteurs f et fj de f si ces deux facteurs ne divisent pas simultan ment l un des polyn mes pgcd f h ou pged f h 1 D montrer que deux facteurs distincts de la d composition de f en produit de facteurs irr ductibles peuvent toujours tre s par s par un l ment de H f 6 Soit po un polyn me On consid re la suite de polyn mes pn d finie par Ppn 1 p2 a D montrer qu il existe un plus petit entier no gt 0 tel que f divise pa po D montrer que si f divise pn po alors no divise n b En d duire qu il existe un plus petit entier strictement positif a f tel que f divise X4 1 D montrer que a f est impair Version 15 janvier 2005 180 Chapitre 7 Polyn mes 7 a D montrer que si f est irr ductible de degr d l ensemble des polyn mes de degr inf rieur d muni de l addition et de la multiplication modulo f est un corps 24 l ments b En d duire que f est irr ductib
499. tion de longueur 7 01 01 0011 O 01 0 0 Factorisation de longueur 6 01 01 0011 001 O0 O0 Factorisation de Lyndon 01 01 0011 001 0 O Pour terminer cette section nous pr sentons un algorithme d J P Duval qui calcule la factorisation de Lyndon en temps lin aire en fonction de la longueur du mot donn On appelle factorisation de Duval d un mot x non vide une factorisation D x L1 04 V et un entier p p x tels que x L1 qu et 0 lt p lt q et v rifiant les deux conditions 1 4 4 sont des mots de Lyndon et v est un pr fixe propre ventuellement vide de 44 Version 15 janvier 2005 9 3 Mots de Lyndon 257 2 sip gt 1 alors 41 lt lp gt lou lq et lp gt lpp1 qu EXEMPLE Si x est r duit une seule lettre P x x e Pour x 0100100100 on a x 01 001 001 00 et p 1 LEMME 9 3 7 Tout mot non vide admet au plus une factorisation de Duval Preuve Soit P x 4 lp lp 1 lq V et p p x Si v est le mot vide la suite lost est la factorisation de Lyndon de x donc unique Sinon soit v1 v la factorisation de Lyndon de v Alors based le OT U est la factorisation de Lyndon de x parce que v lt v lt lq D o l unicit PROPOSITION 9 3 8 Tout mot non vide poss de une factorisation de Duval Preuve La preuve que voici est en fait un algorithme pour construire la factorisation de Duval d un mot Soit x un mot non vi
500. tion suivante de n si elle existe Dans la n gative la variable bool enne devient vraie VAR m t j integer possible boolean BEGIN j Longueur a Le nombre de parts de a t 0 Calcul du total redistribuer possible false Pour l instant WHILE j gt 1 AND NOT possible DO BEGIN t t alj Total redistribuer en parts major es par a j 1 possible CompatiblePartsDistinctes t a j 1 Est ce possible IF NOT possible THEN j j 1 END while possible derniere NOT possible IF possible THEN BEGIN m alj 1 Part maximale WHILE t gt m AND m gt 0 DO BEGIN alj m On fait des parts t t m Ce qui reste m m 1 La taille des parts d cro t j j 1 Le nombre de parts cro t END IF t gt 0 THEN Une derni re part plus petite alj t else j cS jee E FixerLongueur a j Longueur de la nouvelle partition END c est possible END de PartitionSuivantePartsDistinctes nouveau une proc dure d num ration g re ces proc dures PROCEDURE ListerPartitionsPartsDistinctes n integer Version 15 janvier 2005 230 Chapitre 8 Exemples combinatoires VAR a Mot derniere boolean BEGIN PremierePartition a n n REPEAT EcrireMot a PartitionSuivantePartsDistinctes a n derniere UNTIL derniere END de ListerPartitionsPartsDistinctes Voici les r sultats pour n 11 11 m OU1 O1 O OO J
501. titre puis du vecteur entier a d ordre n Les op rations simples se font l aide de proc dures dont voici les en t tes PROCEDURE MatricePlusMatrice n integer a b mat VAR ab mat Somme des deux matrices a et b d ordre n R sultat dans la matrice ab PROCEDURE MatriceMoinsMatrice n integer a b mat VAR ab mat Diff rence des deux matrices a et b d ordre n R sultat dans la matrice ab Version 15 janvier 2005 1 1 Une biblioth que 5 PROCEDURE MatriceParMatrice n integer a b mat VAR ab mat Produit des deux matrices a et b d ordre n R sultat dans la matrice ab PROCEDURE MatriceParMatriceRect m n p integer a b mat VAR ab mat Produit de la matrice a d ordre m n par la matrice b d ordre n p R sultat dans la matrice ab d ordre m p PROCEDURE MatriceParVecteur n integer a mat x vec VAR ax vec Produit de la matrice a d ordre n par le vecteur x R sultat dans le vecteur ax PROCEDURE MatriceRectParVecteur m n integer a mat x vec VAR ax vec Produit de la matrice a d ordre m n par le vecteur x R sultat dans le vecteur ax PROCEDURE VecteurParMatrice n integer x vec a mat VAR xa vec Produit du vecteur ligne x par la matrice a d ordre n R sultat dans le vecteur xa PROCEDURE VecteurPlusVecteur n integer a b vec VAR ab vec Somme des deux vecteurs a et b d ordre n R sultat dans le vecteur ab PROCEDURE VecteurMoinsVecteur n int
502. trice B obtenue est totalement unimodulaire si et seule ment si est totalement unimodulaire D montrons que B contient exactement un 1 et un 1 par ligne En effet soit un indice de colonne Si a f et ai g a ont m me signe ils sont dans deux classes distinctes et donc b f et bi jy auront des signes diff rents Si maintenant a f i et a Ju ont des signes diff rents f i et g i sont dans la m me classe et donc ou bien f et ai gq ne changent pas de signe ou bien ils changent de signe simultan ment Dans les deux cas b fa et bi gu auront des signes diff rents D apr s la proposition BL B et donc A est totalement unimodulaire Le corollaire permet de donner un algorithme efficace pour tester si une matrice l mentaire est quilibr e Cet algorithme sera d crit dans la section suivante 6 1 3 Programme Matrices unimodulaires Le programme fait appel aux biblioth ques General et Matrices En particulier on utilisera le type vecE ARRAY 1 0rdreMax OF integer d j d clar dans General On d finit de fa on analogue un type sp cial pour les matrices coefficients entiers TYPE matE ARRAY 1 0rdreMax OF vecE On adapte les proc dures d entr e sortie de la biblioth que Matrices ce nouveau type PROCEDURE EcrireMatE m n integer VAR a matE titre texte Affichage du titre puis de la matrice a d ordre m n VAR i j integer BEGIN writeln writeln titre FOR i
503. ttant Num rateur de mn alphaPlusbeta deltagamma Flottant BEGIN Calcul de y FlottantMoinsFlottant alpha beta gamma Yn An bn FlottantPlusFlottant alpha beta alphaPlusbeta Qn bn Calcul de 6 FlottantParFlottant alpha beta beta FlottantUnSurRacinelteration beta UnSurRBeta 1 Vanbn FlottantParFlottant beta UnSurRBeta beta Bn 1 Calcul du num rateur N beta Version 15 janvier 2005 404 Chapitre 12 Grands nombres FlottantparChiffre N 2 FlottantPlusFlottant alphaPlusbeta N N Calcul de amp alpha N FlottantSurChiffre alpha 4 Calcul du d nominateur FlottantParChiffre delta 2 FlottantParFlottant delta gamma deltagamma FlottantMoinsFlottant D deltagamma D Calcul de x FlottantInverselteration D UnSurD Nn Qn On 20n 1 Qn 1 N 4 Dr Dai ttan FlottantParFlottant N UnSurD piapproche Tn Nn Dn END de IterationPi Cette proc dure est employ e par PROCEDURE CalculPiParSalamin VAR piapproche Flottant VAR vieuxpi Flottant UnSurD D Flottant alpha beta gamma UnSurRBeta delta Flottant BEGIN Initialisation pour n 1 ChiffreEnFlottant D 2 D 2 ChiffreEnFlottant UnSurD 1 ChiffreEnFlottant alpha 1 ao 1 ChiffreEnFlottant beta 1 FlottantSurChiffre beta 2 Bo 1 2 ChiffreEnFlottant UnSurRBeta 1 ChiffreEnFlottant delta 1 o 1 ChiffreEnFlottant piapproche 0 REPEAT vieuxpi
504. ttente C est le propos des deux proc dures que voici PROCEDURE MettreEnAttente u v real Vu Vv integer BEGIN EnAttente EnAttente 1 IntervalleEnAttente EnAttente 0 u IntervalleEnAttente EnAttente 1 v VariationsEnAttente EnAttente 0 Vu VariationsEnAttente EnAttente 1 Vv END de MettreEnAttente PROCEDURE Retirer VAR u v real VAR Vu Vv integer BEGIN u IntervalleEnAttente EnAttente 0 v IntervalleEnAttente EnAttente 1 Vu VariationsEnAttente EnAttente 0 Vv VariationsEnAttente EnAttente 1 EnAttente EnAttente 1 END de Retirer L algorithme lui m me produit une suite d intervalles Chaque intervalle contient exac tement un z ro r el du polyn me Lorsque l on a trouv un tel intervalle on le range dans une suite appelons la Localise par la proc dure PROCEDURE RangerIntervalleTrouve u v real BEGIN n n 1 Localise n 0 u Localise n 1 V END de RangerIntervalleTrouve o n est le compteur du nombre d intervalles trouv Version 15 janvier 2005 156 Chapitre 7 Polyn mes Pour d terminer le sort d un intervalle on utilise une proc dure qui soit le met en attente soit le range dans les intervalles trouv s soit l ignore et ceci en fonction du nombre de z ros que cet intervalle contient PROCEDURE Repartir a b real Va Vb integer BEGIN IF Va Vb 1 THEN Ran
505. turel Cette proc dure utilise trois proc dures auxiliaires consid rons d abord la multiplica tion et la division par un chiffre qui s crivent comme suit PROCEDURE NaturelParChiffre u entier x chiffre VAR w entier Calcule le produit de l entier u par le chiffre x VAR i integer retenue chiffre BEGIN IF x THEN EntierNul w ELSE BEGIN retenue 0 FOR i O TO Taille u DO ProduitChiffres ulil x w i retenue IF retenue gt O THEN BEGIN wli Taille u retenue FixerTaille w 1 Taille u END ELSE FixerTaille w Taille u END END de NaturelParChiffre PROCEDURE NaturelSurChiffre u entier x chiffre VAR w entier Calcule le quotient entier de u par le chiffre x gt 0 Version 15 janvier 2005 362 Chapitre 12 Grands nombres VAR retenue chiffre k integer BEGIN IF EstEntierNul u THEN W u ELSE BEGIN retenue 0 FOR k Taille u DOWNTO O DO DivisionChiffres u kl x w k retenue IF wTaille u O THEN FixerTaille w Taille u 1 ELSE FixerTaille w Taille u END END de NaturelSurChiffre La division normalis e suit la m thode expos e dans la section pr c dente PROCEDURE DivisionNormalisee u v entier VAR q r entier Division euclidienne de u par v L entier v est normalis Le quotient entier est q et le reste est r VAR gEstime chiffre n na m integer gvprime vprime entier BEGIN na Tai
506. u b b u MatriceParMatriceRect r r m w b ligne1 lignel wb MatriceParMatriceRect n r r m tk lignei ligne2 ComposerLignes r n r m ligne1 ligne2 b END de PseudoInverseDecomposee Cette proc dure utilise une proc dure qui compose deux matrices en une seule La voici avec quelques autres proc dures utiles PROCEDURE CopierColonne m k integer VAR a mat j integer VAR b mat VAR i integer BEGIN FOR i 1 TO m DO b i j ali k END de CopierColonne PROCEDURE CopierLigne m k integer VAR a mat j integer VAR b mat VAR i integer BEGIN FOR i 1 TO m DO b j i a k i END de CopierLigne PROCEDURE ComposerColonnes m r s integer VAR u v uv mat u est une matrice d ordre m r v est d ordre m s uv u v est d ordre m r s VAR j integer BEGIN u v u FOR j 1 TO s DO CopierColonne m j v r j uv END de ComposerColonnes PROCEDURE ComposerLignes r s n integer VAR u v uv mat Version 15 janvier 2005 2 1 Pseudo inverses 29 u est une matrice d ordre r n v est d ordre s n uw est d ordre r s n VAR i integer BEGIN u v u FOR i 1 TO s DO CopierLigne n i v r i u v END de ComposerLignes La d composition d une matrice en un produit U UK est toujours possible une permutation des lignes pr s Pour cela on prend pour U une famille libre des col
507. u _1 u pour j l l 1 k soit en effectuant l k 1 T Si T Si 1 2 calculs de la fonction o o T X est le nombre de sommets de l enveloppe convexe de X La complexit du calcul de la seconde phase est donc l T Si T Si 1 2 2n 3 7 Sn lt 2n i Il co L algorithme de Graham montre que modulo un tri la complexit du calcul de lenve loppe convexe de n points dans le plan est lin aire c est dire en O n 10 2 Quelques primitives g om triques Une application g om trique ne se programme pas tout fait comme une application num rique et ceci pour deux raisons La premi re r side dans le fait que le raisonnement g om trique se place dans un espace affine r el et donc que les coordonn es des points sont des nombres r els alors que l image sur l cran est form e de pixels qui sont repr sent s par des entiers La deuxi me raison provient de la sp cificit des op rations de lecture et criture qui sont ici des op rations de saisie de points et de trac de points ou de lignes ces op rations d pendent consid rablement du mat riel compatible PC ou Macintosh Il est donc naturel d organiser un programme g om trique en trois couches La couche la plus basse d pendante du mat riel employ r alise les op rations de saisie de points de suivi d affichage et de trac de lignes Dans les r alisations expos es plus bas nous les avons appel es Grap
508. ualit sur l ensemble des convexes compacts d int rieur contenant le point o PROPOSITION 10 1 7 Soit C un convexe ferm born contenant le point o dans son int rieur Alors i C est un convexe ferm born dont l int rieur contient o G C C Preuve La boule ouverte de centre o et de rayon r est not e B o r De B o r1 COC B o0 r2 et de B o r B o 1 r on d duit que B 0 1 r2 C C C B o 1 r1 Il reste montrer que C C C soit a C et soit H un hyperplan qui s pare a et C par exemple l hyperplan m diateur de a et du point de C le plus proche de a Le point o n appartenant pas H il existe h E tel que H x E oh 1 De plus o oh gt 1 tandis que pour tout x C on a o oh lt 1 par suite h C et a g C L Nous pouvons maintenant d montrer l identit des poly dres convexes born s et des enveloppes convexes de parties finies de E TH OR ME 10 1 8 Un poly dre convexe born est l enveloppe convexe de ses som mets R ciproquement l enveloppe convexe d un ensemble fini de points est un poly dre convexe born dont les sommets sont des points de cet ensemble Preuve Pour d montrer le premier point on raisonne par r currence sur la dimension du poly dre P si x Fr P alors x appartient l une des faces de P qui co ncide o par hypoth se de r currence avec l enveloppe convexe de ses sommets si x P soit Version 15 janvier 2005 282 Cha
509. ue Si l on note G la matrice de g on a donc GA tP P GA et de m me AG AG Ceci prouve que G est une pseudo inverse de Nous notons d sormais A la pseudo inverse d une matrice A Voici une deuxi me d monstration en trois parties LEMME 2 1 3 Si A Mm n est de rang n alors AA tA est la pseudo inverse de Preuve Posons A9 fAA lt4 La matrice AA est carr e d ordre n et de rang n donc inversible Comme A9A In la matrice unit d ordre n et que AAY est sym trique les quations L 1 sont manifestement v rifi es LEMME 2 1 4 Soit Mm n de rang r et supposons que A se mette sous la forme A U UK o U Mm r est de rang r et K E Mr n r Alors la pseudo inverse de A est WU9 iKWUS o W I KiK 1 Version 15 janvier 2005 26 Chapitre 2 Manipulation de matrices Preuve Montrons d abord que la matrice S I K K est inversible Elle est en effet d finie positive parce que xSx x xKKx x lfKx 0 si et seulement si x 0 Notons B la matrice dont on veut prouver qu elle est la pseudo inverse de On a AB UWUS UK KWU U I K K WU UUS Donc ABA UUSU UUSUK AB YUU UUI AB WW 3_ WUWUS _ HARE as uuta C a Rn Enfin notons qu en vertu du lemme pr c dent U9U UU l UU I Donc WU W WK BA amui U UK ay ar Par ailleurs Comme est sym trique W l est galement ce qui montre que BA
510. ue l hypoth se de r currence la restriction V des endomorphismes de F pour conclure Revenons la preuve de la proposition On raisonne encore par r currence sur n le cas n 1 tant trivial Soit F l ensemble des endomorphismes repr sent s par les matrices commutant deux deux de l nonc D apr s le lemme on peut trouver Version 15 janvier 2005 2 2 Matrices trigonalisables 39 un vecteur propre commun aux l ments de F Soit x ce vecteur et consid rons une base contenant x comme premier vecteur Dans cette base chaque endomorphisme u a une matrice de la forme X u 0 A u A u avec u C Maintenant les matrices A u pour u F commutent deux deux Par r currence il existe donc une matrice inversible P telle que toutes les matrices P TA u P soient triangulaires pour tout u F Par cons quent les matrices o e ao au or sont triangulaires pour tout u F Pour noncer le th or me principal qui donne une caract risation d un ensemble de ma trices trigonalisables nous aurons besoin de quelques d finitions auxiliaires Le crochet de Lie de deux matrices et B de Kn est la matrice A B AB BA On appelle alg bre de Lie tout sous espace vectoriel de Kn ferm par crochet de Lie L alg bre de Lie engendr e par une partie E de Kn est la plus petite alg bre de Lie contenant E L existence d une telle alg bre est facile tablir d une part Kn
511. ue si x 0 On peut donc utiliser pour inverser AA la m thode de Choleski expos e au chapitre suivant On obtient alors la proc dure suivante PROCEDURE PseudolnverseRangMaximal m n integer a mat VAR g mat La matrice a d ordre m n est suppos e de rang n Calcul de sa pseudo inverse g par la formule g aa a VAR ta u v mat BEGIN TransposerRect m n a ta Calcul de a MatriceParMatriceRect n m n ta a u u aa InverseDefPositiveSymetrique n u v v u taa t MatriceParMatriceRect n n m v ta g g v a Version 15 janvier 2005 28 Chapitre 2 Manipulation de matrices END de PseudolnverseRangMaximal La proc dure TransposerRect a t d crite au chapitre 1 Dans une deuxi me tape on suppose la matrice donn e sous la forme U UK o U est d ordre m r et de rang r et o K est d ordre r n r On utilise alors la formule du lemme ce qui donne la proc dure que voici PROCEDURE PseudolnverseDecomposee m r n integer u k mat VAR b mat Calcule la pseudo inverse b d une matrice a u uk donn e par la matrice u d ordre m r de rang r et la matrice k d ordre r n r VAR tk h w ligne1 ligne2 mat BEGIN TransposerRect r n r k tk tk k MatriceParMatriceRect r n r r k tk hb h ktk MatricePlusMatrice r h MatriceUnite h h I h InverseDefPositiveSymetrique r h w w 1 kk PseudoInverseRangMaximal m r
512. ueur m gt 0 dans est une suite io im d l ments de S telle que io im J et iy_ l pour k 1 m Un cycle autour de i est un chemin de vers de longueur non nulle Un l ment i S est cyclique s il existe un cycle autour de i Sur l ensemble M on d finit une addition not e amp et une multiplication not e amp comme suit soient B C D M Alors C cij A B est d finie par 0 si Qij bi j 0 Ci j 1 sinon et D dij AQ B est d finie par Fi ee si Qi kbk j 0 pour tout k S 4 1 sinon On d finit la puissance ASF par AS J I est la matrice unit et AS 1 A amp ASK pour k gt 0 On note an l l ment d indice i j de ASF 1 Ecrire deux proc dures qui tant donn es deux matrices et B dans M calculent respectivement AQ B et AQ B Ecrire une proc dure qui prend en argument une matrice A et qui calcule 1 A 8 1 Version 15 janvier 2005 6 2 Matrices irr ductibles 131 1 0 1 0 0 0 0 0 0 1 Exemple num rique n 5et A 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 2 Montrer qu il existe un chemin de vers j si et seulement si l l ment d indice i j de la matrice 1 amp A 1 est gal 1 On dit que j est accessible de i s il existe un chemin de vers j 3 Ecrire une proc dure qui prend en argument un entier S et qui calcule pour chaque l ment j qui est accessible de un chemin de vers j
513. ui permettent d extraire un pr fixe un suffixe ou un facteur d un mot donn Ces proc dures sont PROCEDURE LePrefixe u mot i integer VAR v mot D termine le pr fixe v u1 u de u BEGIN v u FixerLongueur v i END de LePrefixe PROCEDURE LeSuffixe u mot i integer VAR v mot D termine le suffixe v ui un de u VAR j integer BEGIN FOR j i TO Longueur u DO v j i 1 ulj FixerLongueur v Longueur u i 1 END de LeSuffixe PROCEDURE LeFacteur u mot i j integer VAR v mot D termine le facteur v u i uj de u VAR k integer BEGIN FOR k i TO j DO vlk i 1 ulk FixerLongueur v j i 1 END de LeFacteur Version 15 janvier 2005 238 Chapitre 9 Combinatoire des mots Bien entendu on peut aussi bien d finir l extraction d un pr fixe ou d un suffixe au moyen de l extraction d un facteur Enfin voici une proc dure qui calcule le conjugu d un mot PROCEDURE LeConjugue u mot i integer VAR v mot Calcule le mot v ui 1 Unur ui conjugu de u VAR j n integer BEGIN n Longueur u FixerLongueur v n FOR j 1 TO n i DO v j uli j FOR j n i 1 TO n DO v j uli j n END de LeConjugue 9 2 Mots de Lukasiewicz 9 2 1 Enonc mots de Lukasiewicz Dans cet nonc on appelle mot toute suite finie d entiers u u1 Un o n gt let o u E
514. uite de Thue Morse VAR n integer t mot pa suite BEGIN 1 0 FOR n O TO r k DO BEGIN LeFacteurTM t k n InsererMotParPoids t poids t a pa 1 END END de LesFacteursTM L insertion est r alis e par la proc dure ci dessous inspir e de la proc dure InsererMot Le poids de chaque mot n est calcul qu une seule fois pour rendre les comparaisons plus rapides Les poids sont rang s dans un tableau de type Suite d fini au chapitre pr c dent nous avons ici augment la longueur maximale d une suite CONST LongueurSuite 48 TYPE Version 15 janvier 2005 9 4 Suite de Thue Morse 269 suite ARRAY O LongueurSuite OF integer La majoration du nombre de facteurs d montr e plus haut dit quelle valeur choisir en fonction de la longueur des facteurs que l on veut calculer ici 8 PROCEDURE InsererMotParPoids VAR t mot p integer VAR c SuiteMot VAR pc suite VAR m integer Insertion d un mot t de poids p dans une suite c de mots de poids croissants L entier pc contient le poids du mot c4 VAR j K integer BEGIN k 1 WHILE k lt m AND p lt pc k DO k k 1 IF k m 1 THEN BEGIN m m 1 c m t pclml p END ELSE IF p lt gt pc k THEN BEGIN FOR j m DOWNTO k DO BEGIN c j 1 END c k m END END de InsererMotParPoids c j pc j 1 t pclk m 1 p On obtient les r sultats num riques s
515. uivants Facteurs de longueur 1 1 1 Facteurs de longueur 2 1 1 F tosi ET Facteurs de longueur 3 i 1 1 LL a Se S 1 1 1 i 1 1 1 1 1 Facteurs de longueur 4 a 1 ET On avance tant que poids cx lt p Si la fin de c est atteinte on ins re t la fin si Ck t on ne fait rien sinon on d cale la fin de c pc j puis on ins re u Version 15 janvier 2005 270 Chapitre 9 Combinatoire des mots d est AL EL si LE OS EX PE OR e a l 1 1 1 1 S1 51 ef 1 11 ET Sd e Facteurs de longueur 8 E GANSE HET Ed Led LEET A1 Le E Let Et S Ps SL Le Ale sie el a a NS l 1 1 1 ds TETE Lt SL 1 a O S LT DL ALAL EL ELEMLSE E EL LED ATEAEAT ANAL EL TL S a E SL 41e LET T S l dd LT de TL EL Etre 4 L 1 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Nous terminons par le calcul du nombre d occurrences d un mot t donn comme sous mot dans le pr fixe Sn 50 8n 1 de la suite de Thue Morse Si t est de longueur k il s agit d engendrer les parties de 0 N 1 k l ments et de v rifier si les valeurs de la suite SN pour ces indices co ncident avec les l ments du mot t Nous utilisons donc les proc dures PremierePartieRestreinteet PartieSuivanteRestreinte du chapitre pr c dent pour engendrer les sous ensembles k l ments Dans la proc dure suivante x repr sente une partie k l ments de 1 n FUNCTION EstSou
516. um ration des permutations PROCEDURE PremierePermutation VAR s suite n integer VAR i integer BEGIN FOR i 1 TO n DO s i i END de PremierePermutation PROCEDURE PermutationSuivante VAR s suite n integer VAR derniere boolean VAR i j k integer BEGIN i n 1 WHILE i gt 0 AND s i gt s i 1 DO i i 1 i est la derni re mont e derniere i 0 IF NOT derniere THEN BEGIN j n WHILE s i gt s j DO Jr a S EchangerE s j s i Nouvelle valeur de o i k 1 n i 1 DIV 2 FOR j k TO n DO EchangerE s j s n i 1 j END END de PermutationSuivante Pour obtenir une liste des permutations on utilise comme pr c demment une proc dure de la forme PROCEDURE ListerPermutations n integer VAR s Suite derniere boolean Version 15 janvier 2005 8 1 G n ration d objets combinatoires 209 BEGIN PremierePermutation s n REPEAT EcrireSuite s n PermutationSuivante s n derniere UNTIL derniere END de ListerPermutations Une suite factorielle d ordre n est une suite finie a1 an 1 d entiers tels que 0 lt a lt i pour i 1 n 1 Il y a n suites factorielles d ordre n L application n 1 v a1 an 1 gt 5 a i i 1 est une bijection des suites factorielles d ordre n sur les entiers 0 n 1 De plus si a et b sont deux suites factorielles et a lt b dans l ordre lexicographi
517. union d une triangulation de P et d une triangulation de P gt forme alors une triangulation de P Enfin les polygones P et P gt admettent chacun une oreille distincte de p et pj soit par hypoth se de r currence s ils ont plus de 4 sommets soit parce qu un triangle admet trois oreilles Ces deux oreilles sont alors des oreilles non cons cutives de P COROLLAIRE 10 4 4 Toute triangulation d un polygone simple n sommets est for m e de n 2 triangles Preuve Raisonnons par r currence sur la taille n du polygone simple P La seule triangulation d un triangle P tant le singleton P le r sultat est acquis pour n 3 Supposons maintenant n gt 4 et soit 7 une triangulation de P Les ar tes de la triangulation autres que celles de P sont des diagonales de P Une telle ar te partage le polygone P en deux polygones P et P gt de tailles n1 n2 lt n et la triangulation 7 est la r union disjointe d une triangulation de P et d une triangulation de P gt Par hypoth se de r currence ces deux triangulations contiennent respectivement n 2 et n2 2 triangles comme n1 n2 n 2 la triangulation T a pour taille n1 2 n2 2 n 2 Li PROPOSITION 10 4 5 Toute triangulation d un polygone simple admet un et un seul coloriage une permutation pr s des couleurs Preuve Soit T une triangulation de P on observe que si les couleurs des sommets d un triangle T de T sont fix s la couleur des
518. ur les matrices tridiagonales 4 1 1 Syst me tridiagonal d quations Une matrice tridiagonale ai b 0 is 0 C2 a2 b2 0 Cn 2 An 2 bn 2 0 Cn 1 An 1 bn 1 0 _ 0 Ci An est d termin e par trois vecteurs a b et c qui contiennent respectivement la diagonale la sur diagonale et la sous diagonale de A Le syst me d quations lin aires Ax d s crit dti biz di Cili 1 T Aiti i bizi di 2 TETY 1 Cnln 1 T Ann dn Version 15 janvier 2005 70 Chapitre 4 Matrices tridiagonales Par limination on le met sous la forme 1 1 dti T bixo di f SER Q Ti Fhir d i 2 n 1 aL En dn avec a di d 1 1 1 1 d di Cibi 1 a _ di di cidi 1 h_1 S2 sT Le syst me obtenu est triangulaire et se r sout donc simplement La seule difficult provient d un coefficient a nul Ceci est d un mineur principal ayant un d terminant nul Dans ce cas le syst me n est pas r soluble de cette mani re et il faut donc revenir une m thode plus co teuse et employer par exemple la m thode de Gauss g n rale En effet un pivotage perturbe le caract re tridiagonal du syst me Voici une r alisation de l algorithme PROCEDURE SystemeTridiagonal n integer a b c d vec VAR x vec VAR soluble boolean a est la diagonale b la sur diagonale c la sous diagonale et d le second membre On r sout le syst me sans pivotage ce n est possible que s
519. ure F w est la r union des segments de droite joignant l origine aux points de coordonn es 27 0 et 0 2P et des figures F u et F v translat es respec tivement de 2 0 et de 0 2 Ci dessous est repr sent e la figure associ e w 1 1 1 1 1 1 1 1 1 Ecrire une proc dure qui d termine et trace la figure associ e un mot de Lukasiewicz Version 15 janvier 2005 240 Chapitre 9 Combinatoire des mots 9 2 2 Solution mots de Lukasiewicz On appelle mot toute suite finie d entiers u u1 Un o n gt 1 et o u E 1 1 pour i 1 n Etant donn un mot u u1 Un on pose k s u k X ui karesa i 1 de sorte que u est un mot de Lukasiewicz si et seulement si s u n lets u k gt Opourk 1 n 1 En particulier on a un 1 et si n gt 1 alors ui 1 et un_1 1 Un pic du mot u u1 Un est un entier 1 lt i lt n 2 tel que u 1 et Ui 2 1 On d finit une fonction p qui un mot u u1 Un associe un mot p u de la mani re suivante plu u si u ne poss de pas de pic plu u1 Ui 1 Ui 2 Un Si u poss de un pic et si est le plus petit pic de u LEMME 9 2 1 Un mot u est un mot de Lukasiewicz si et seulement si p u est un mot de Lukasiewicz Preuve Le lemme est vident si u n a pas de pic Supposons donc que u poss de un pic et soit
520. urra supposer que z lt 150 Exemple num rique z 6 114 z 17 6 a Soit p un nombre premier non congru 3 modulo 4 D montrer qu il existe une unique paire d entiers positifs a b telle que a b p b En d duire la d composition de p donn e par 2 c Ecrire une proc dure qui prend en argument un entier naturel n lt 150 et qui calcule la d composition de n donn e par 2 Exemple num rique n 100 7 Soit z u iv un l ment de K 0 et soit p un diviseur premier de z non congru 3 modulo 4 D apr s la question pr c dente il existe une unique paire d entiers positifs a b tels que a b p a D montrer que si va ub est un multiple de p alors a ib divise z et que si va ub n est pas un multiple de p alors b ia divise z b Ecrire une proc dure qui prend en argument un l ment z de P et qui calcule la d composition de z donn e par 2 On pourra supposer que z lt 150 Exemple num rique D composer les nombres 56 98i et 19 6li 11 1 2 Solution entiers de Gauss On appelle entier de Gauss un nombre complexe de la forme a ib avec a b Z Notre propos est d tablir que l anneau K des entiers de Gauss est principal et de fournir un algorithme de d composition des entiers de Gauss en produit d l ments irr ductibles On dit qu un anneau int gre K est euclidien s il existe un ensemble bien ordonn E lt c est dire un ense
521. us compte du fait que les l ments diagonaux valent 1 pour ne pas faire de division PROCEDURE SystemeUniTriangulairelnferieur n integer a mat b vec VAR x vec R solution d un syst me unitriangulaire inf rieur VAR k j integer s real BEGIN FOR k 1 TO n DO BEGIN s b k FOR j 1 TO k 1 DO s s alk j x j x k s Pas de division le coefficient diagonal est 1 END END de SystemeUniTriangulaireInferieur Version 15 janvier 2005 3 2 D composition de Choleski 57 3 2 D composition de Choleski La d composition de Choleski ne s applique qu des matrices particuli res savoir des matrices sym triques d finies positives resp hermitiennes d finies positives Elle repose sur le r sultat de la proposition suivante PROPOSITION 3 2 1 Soit une matrice sym trique d finie positive d ordre n Il existe une matrice triangulaire inf rieure L coefficients diagonaux strictement positifs et une seule telle que L L Preuve Par r currence sur n Si n 1 la matrice est r duite une entr e positive et L a comme seul l ment le nombre a Si n gt 1 posons 02 avec B Ly 1tLn 1 et Ln 1 lij lii gt 0 et Lij 0 pour j gt i et soit e 9 C Q Ln 1C b De L L A on tire qui a la solution unique c 1b parce que les l ments diagonaux de Ln sont strictement positifs donc L _ est inversible Or est d finie positive donc
522. utre probl me qui se pose est l acc s la modification et la construction d objets complexes Consid rons par exemple les nombres complexes Un nombre complexe est repr sent par un couple de r els ses parties r elle et imaginaire Il faut pouvoir y acc der les modifier et pouvoir construire un complexe partir de deux r els Ces proc dures sont faciles crire mais d pendent videmment de la repr sentation choisie nous d finissons un complexe par TYPE complexe ARRAY O 1 OF real mais un lecteur qui conna t les enregistrements pr f re peut tre la d finition TYPE complexe RECORD PartieReelle Partielmaginaire real END Pour rendre un programme ind pendant de la repr sentation choisie on convient d ac c der aux structures complexes seulement travers des proc dures convenues Ainsi la partie r elle d un nombre complexe z ne sera pas appel e par z 0 mais travers une proc dure Re z De la m me mani re on peut convenir de ranger le degr d un polyn me dans l emplacement d indice 1 du tableau de ses coefficients ou dans celui d indice maximal ou ailleurs encore mais l appel se fera uniquement par une fonction bien pr cise Cette fa on de proc der a non seulement l avantage de rendre l impl mentation plus souple mais aussi de rendre la lecture plus facile En effet avec l une des conventions ci dessus pour le degr on crit d round pl 11 ouencored
523. v rat VAR w rat PROCEDURE RatMoinsRat u v rat VAR w rat PROCEDURE RatParRat u v rat VAR w rat PROCEDURE RatSurRat u v rat VAR w rat PROCEDURE RatParEntier u rat x integer VAR w rat PROCEDURE RatSurEntier u rat x integer VAR w rat PROCEDURE RatOppose u rat VAR v rat Version 15 janvier 2005 452 Annexe B Les biblioth ques B 6 Mots CONST LongueurMot 25 TYPE mot ARRAY O LongueurMot OF integer Lecture criture PROCEDURE EntrerMot VAR u mot titre texte PROCEDURE EcrireMot VAR u mot titre texte Constructeurs FUNCTION Longueur VAR u mot integer PROCEDURE FixerLongueur VAR u mot n integer FUNCTION EstMotVide VAR u mot boolean PROCEDURE LettreEnMot VAR u mot x integer PROCEDURE LeSuffixe u mot i integer VAR v mot PROCEDURE LePrefixe u mot i integer VAR v mot PROCEDURE LeFacteur u mot i j integer VAR v mot PROCEDURE LeConjugue u mot i integer VAR v mot Op ration PROCEDURE Concatener u v mot VAR w mot B 7 Entiers en multipr cision CONST base 100 digitparchiffre 2 TailleMax 20 TailleEntierNul 1 TYPE chiffre integer entier ARRAY 2 TailleMax OF chiffre Lecture criture PROCEDURE EntrerEntier VAR u entier titre texte PROCEDURE EcrireEntier VAR u entier titre texte Version 15 janvier 2005 B 8 Arithm tique flottante 453 Constructeurs
524. v real VAR w real BEGIN W u U V V W END de Echanger Avec ces proc dures la m thode de Gauss s crit PROCEDURE SystemeParGauss n integer a mat b vec VAR x vec VAR inversible boolean Solution d un syst me d quations Ax b par la m thode de Gauss Si A est inversible le bool en est vrai et x contient la solution Sinon le bool en est faux Version 15 janvier 2005 1 2 R solution de syst mes lin aires 13 VAR k q integer FUNCTION PivotMax k integer integer D finie plus haut PROCEDURE PivoterGauss k integer D finie plus haut PROCEDURE EchangerFinLignes i j integer D finie plus haut BEGIN de SystemeParGauss k 1 Triangulation inversible true WHILE k lt n AND inversible DO BEGIN q PivotMax k inversible NOT EstNul alq k l IF inversible THEN BEGIN IF q gt k THEN BEGIN EchangerFinLignes k q Echanger b k b q END PivoterGauss k END k k 1 END du while sur k IF inversible THEN R solution SystemeTriangulaireSuperieur n a b x END de SystemeParGauss Le d terminant de la matrice est au signe pr s le produit des l ments diagonaux de la matrice A d t aa af nn o m est le nombre d changes de lignes faits On en d duit imm diatement la proc dure suivante de calcul du d terminant par la m thode de Gauss FUNCTION Determinant n integer a mat real Calcul
525. vant connu sous le nom de th or me des nom bres pentagonaux d Euler TH OR ME 8 3 5 Euler Pour0 lt x lt 1 on a Il 1 z 30 1 x in 3n 1 y3 n 3n D Nous donnons d abord une preuve directe du th or me nous le d riverons plus loin d un r sultat plus g n ral Posons Po Go 1 et pour n gt 1 Pa III x Gn D o g r r r 1 2 Posons aussi pour plus de commodit w n n 3n 1 2 LEMME 8 3 6 Pourn gt 1 on a Gn Gn 1 1 12 ge Version 15 janvier 2005 222 Chapitre 8 Exemples combinatoires Preuve Par r currence sur n On a Gi Go x x ce qui amorce la r currence Ensuite n 1 P P 1 Gn E Gn 1 1 x g n 1 x DO 6 a r 0 4 De Pi L Ar n 1 g r a pr D 90 e De Pn 1 yrn a r Le deuxi me terme de cette somme s crit n 1 5o Pi 1 gra 1 g r YO En grn Pi r 1 r 1 parce que r n 1 g r rn g r 1 Le troisi me terme s crit n 1 n Pa 1 Fa i 1 ri n r 1 g r ziy 1221 rn g r 1 LCR DC Ex r 1 Ces deux sommes se compensent donc au terme extr me pr s et par cons quent Gn Gai 1 60 1 at Or n g n w n et n g n 1 w n d o le lemme Preuve du th or me 8 3 3 Le produit infini _ 1 x converge pour 0 lt x lt 1 donc limy_ Pn _ 1 x Posons So 1 et Sn 1 JS D x 09 x On a So Go
526. vante Notons d le degr de f PROPOSITION 7 3 10 Le polyn me f est irr ductible si et seulement si X2 X mod fet pecd x2 X f 1 pour tout diviseur premier p de d Preuve Supposons d abord f irr ductible Soit f l id al de K X engendr par f L anneau quotient k K X f est un corps en effet si g amp f pacd f g 1 puisque f est irr ductible et d apr s le th or me de Bezout il existe des polyn mes q et r tels que qf rg 1 ce qui montre que r est l inverse de g modulo f Puisqu il y a exactement 2 restes modulo f le corps k contient 24 l ments En particulier le groupe multiplicatif k est d ordre 24 1 Il en r sulte en particulier puisque X est non nul modulo f X 12 1mod f et done X X mod f Ensuite si X X mod f on a aussi X X mod f pour tout i gt 0 et d apr s la proposition g g mod f pour tout polyn me g Il en d coule que l quation Y Y 0 poss de au moins 2 racines distinctes dans le corps k et par cons quent m gt d En particulier si p est un diviseur premier de d on a xX 0 mod f et donc pgcd X X f 1 puisque f est irr ductible Supposons maintenant que X2 X mod f et pecd X 2 X f 1 pour tout diviseur premier p de d Supposons f r ductible et soit f un diviseur irr ductible de f Ce qui pr c de montre que odeg f1 X X mod f Comme d autre part XxX X 0 mod f la
527. vec VAR u l vec BEGIN DecompositionLUTridiagonal n a b c u 1 Version 15 janvier 2005 112 Chapitre 5 Valeurs et vecteurs propres ULTridiagonal n u 1 a b c END de IterationLUTridiagonal Un bon crit re pour l arr t des it rations porte sur la norme infinie de la sous diagonale c est dire du vecteur c puisqu il doit tendre vers 0 Mentionnons deux cas particuliers Le premier concerne les matrices tridiagonales sous forme de Lanczos c est dire telles que la sur diagonale a tous ses coefficients gaux 1 Dans ce cas la d composition et la recomposition sont encore plus simples La proc dure de d composition a t donn e au chapitre 4 Voici son en t te PROCEDURE LanczosLU n integer a c vec VAR u 1 vec La recomposition se fait par PROCEDURE LanczosUL n integer u l vec VAR a c vec VAR i integer BEGIN FOR i 1 TO n 1 DO ali u i 1 i 1 an ufn l FOR i 2 TO n DO ci uli l i END de LanczosUL Comme ci dessus une it ration de la m thode de Rutishauser pour ces matrices combine les deux proc dures PROCEDURE IterationLULanczos n integer VAR a c vec VAR u l vec BEGIN LanczosLU n a c u 1 LanczosUL n u 1 a c END de IterationLULanczos Le deuxi me cas est plut t une variante Si A est une matrice d finie positive on peut au lieu de faire une d composition LU faire la d com
528. vec BEGIN de TransformationHouseholder VecteurHouseholder n a h h v normeV2 ProduitScalaire n v v IF EstNul normeV2 THEN beta 2 ELSE beta 2 normeV2 VecteurParMatrice n v a p VecteurParScalaire n p beta p p BvA VecteurParMatrice n v q z VecteurParScalaire n z beta z z BvQ FOR i 1 TO n DO FOR j 1 TO n DO BEGIN ali j ali j v i pljl qli j qli j v i z j END END de TransformationHouseholder La d composition QR de A s obtient enfin par PROCEDURE DecompositionQRparHouseholder n integer a mat VAR q r mat VAR h integer BEGIN q MatriceUnite r a FOR h 1 TO n 1 DO TransformationHouseholder n h q r Transposer n q q END de DecompositionQRparHouseholder Version 15 janvier 2005 68 Chapitre 3 D compositions Voici un exemple d ex cution avec des impressions interm diaires Voici la matrice lue 4 000 2 000 1 000 0 000 2 000 5 000 3 000 5 000 1 000 1 000 1 000 1 000 2 000 1 000 4 000 1 000 Matrice apr s transformation de la colonne 1 5 000 4 200 3 800 2 600 0 000 3 622 1 933 4 422 0 000 0 311 0 467 0 711 0 000 0 378 2 933 0 422 Matrice apr s transformation de la colonne 2 5 000 4 200 3 800 2 600 0 000 3 655 1 652 4 399 0 000 0 000 0 313 0 334 0 000 0 000 3 119 0 880 Matrice apr s transformation de la colonne 3 5 000 4 200 3 800 2 600 0 000 3 655 1 652
529. ximum des rangs des l ments j tels que aij 1 Voici comment on crit cette proc dure FUNCTION rang i n integer VAR a matE integer VAR m j integer BEGIN m 0 m est le maximum partiel FOR j 1 TO n DO IF a j i 1 THEN m max m 1 rang j n a Ici calcul r cursif rang m END de rang Comme souvent quand on a affaire des proc dures r cursives l criture est simple On peut aussi calculer les rangs en observant que le rang de est m si m est le plus petit entier tel que A8 a sa i i me colonne nulle On obtient la proc dure suivante PROCEDURE LesRangs n integer a matE VAR rang vecE VAR i j m h integer b matE BEGIN FOR i 1 TO n DO rangli 1 Initialisation du tableau b a B A8r FOR m O TO n 1 DO BEGIN FOR i 1 TO n DO IF rangli lt O THEN BEGIN Si le rang de est au moins m et h 0 FOR j 1 TO n DO h max h blj il IF h 0 THEN si la colonne d indice i est nulle rangli m alors le rang est m END Matrice0ParMatrice n b a b Calcul de la puissance suivante de a END END de LesRangs La proc dure pr sent e est tr s lente en O n4 cause du calcul des puissances Pour acc l rer la d termination des rangs nous allons calculer pour chaque le nombre d de coefficients aj gaux 1 pour j 1 n Si d 0 le rang de est nul On supprime alors et on recommence Au lieu
530. ype d algorithme dans le livre R Sedgewick Algorithms Reading Addison Wesley 1983 Le th or me est d Wielandt Pour les liens entre matrices coefficients 0 et 1 et les graphes on pourra consulter par exemple C Froidevaux M C Gaudel M Soria Types de donn es et algorithmes Paris McGraw Hill 1990 Version 15 janvier 2005 Partie II Polyn mes 143 145 Chapitre 7 Polyn mes 7 1 Suites de Sturm Les suites de Sturm constituent un moyen efficace pour d terminer les z ros r els d un polyn me coefficients r els Cette m thode est un peu lente mais s re et est parti culi rement int ressante lorsque l on sait par ailleurs que tous les z ros sont r els 7 1 1 Enonc suites de Sturm Soit p X ay X ap un polyn me de degr n coefficients r els sans z ros multiples On cherche localiser les z ros r els de p X c est dire calculer des intervalles deux deux disjoints contenant chacun un et un seul z ro r el de p X Dans cet nonc on appelle suite de Sturm associ e p X la suite de polyn mes d finie par po X p X p X p X et Pi 2 X pi 1 X qi 1 X pi X 2 lt i lt N le polyn me p X tant le reste de la division euclidienne de p _2 X par pi 1 X L entier N est d termin par py 0 pn 1 0 On pose qnw X pn 1 X pn X Soit y un nombre r el qui n est pas un z ro de p X La variation de p X e
531. z u k MOD m k FOR j 1 TO k 1 DO z z v j c j k MOD m k IF z lt 0 THEN v k z m k ELSE v k z END END de Conversion Ensuite on utilise ces coefficients pour valuer essentiellement par un sch ma de Horner la repr sentation en base b La proc dure suivante contient l appel la proc dure de conversion PROCEDURE EntierModEnEntier u EntierMod VAR a Entier VAR k integer v EntierMod BEGIN Conversion u v Coefficients de conversion ChiffreEnEntier v TailleMod a a vr FixerSigne a 1 FOR k TailleMod 1 DOWNTO 1 DO BEGIN EntierParChiffre a m k a a aMk Uk EntierPlusChiffre a v k a END END de EntierModEnEntier Maintenant que nous disposons des proc dures de conversion nous pouvons consid rer larithm tique modulaire proprement dite Les op rations avons nous dit se font coef ficient par coefficient On crit donc PROCEDURE EntierModPlusEntierMod u v EntierMod VAR w EntierMod VAR k integer BEGIN FOR k 1 TO TailleMod DO w k SommeMod u k v k m k END de EntierModPlusEntierMod PROCEDURE EntierModMoinsEntierMod u v EntierMod VAR w EntierMod VAR k integer BEGIN FOR k 1 TO TailleMod DO Version 15 janvier 2005 348 Chapitre 11 Probl mes arithm tiques w k DifferenceMod u k l vlkl m k END de EntierModMoinsEntierMod PROCEDURE EntierModParEntierMod u v Ent

Download Pdf Manuals

image

Related Search

Related Contents

EURODESK SX3282  DELL OptiPlex 7020 MT  FullDrive2-Mosfet User Manual  取扱説明書 - 山田照明  thermoregulateur electronique digital avec  取扱説明書ー  Amana AFI2539ERM Use and Care Manual  

Copyright © All rights reserved.
Failed to retrieve file