Maple : résumé de cours et exercices en sciences physiques


Maple : résumé de cours et exercices en sciences physiques

 

ISSN 0249-0803 apport technique INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE Maple : r´ esum´ e de cours et exercices en sciences physiques Franc ¸ois Bertault N 2936 Juillet 1996 TH ` EME 2 Maple : r sum de cours et exercices en sciences physiques Fran ois Bertault Th me 2  G nie logiciel et calcul symbolique Projet Eur ca Rapport technique n 2936  Juillet 1996  45 pages R sum : Ce rapport reprend un cours de Maple destin des l ves de premi re ann e de classe pr paratoire scienti que. Les principales fonctions Maple ainsi que les concepts fonda- mentaux des syst mes de calcul formel sont pr sent s. Des exercices inspir s de probl mes en sciences physiques sont propos s. Une correction compl te est donn e pour chaque exercice. Mots-cl : Maple, calcul formel, cours, exercices, physique Abstract: pto Unit´ e de recherche INRIA Lorraine Technop? ole de Nancy-Brabois, Campus scientifique, 615 rue de Jardin Botanique, BP 101, 54600 VILLERS L` ES NANCY (France) T´ el´ ephone : (33) 83 59 30 30 ? T´ el´ ecopie : (33) 83 27 83 19 Antenne de Metz, technop? ole de Metz 2000, 4 rue Marconi, 55070 METZ T´ el´ ephone : (33) 87 20 35 00 ? T´ el´ ecopie : (33) 87 76 39 77 Maple : Course and Exercices in Physics Abstract: This paper is an introductory short course, for undergraduate students, about the Maple computer algebra system. It contains a short description of the most useful fonctions, and exercises in physics with their solutions. Key-words: Maple, computer algebra, course, exercises, physics Table des mati res 1 Pr sentation de Maple 5 1.1 Maple : un syst me de calcul formel . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Fonctionnalit s principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.1 Aide en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.2 A ectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.3 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.4 R solution d' quations . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.5 Di rentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.6 Int gration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.7 Sommes symboliques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.8 Manipulation de polyn mes . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.9 D veloppements limit s . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.10 Calcul de limites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.11 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.12 Ensembles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.13 Listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.14 Suites d'expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.15 Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.16 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.17 Calcul num rique en pr cision arbitraire . . . . . . . . . . . . . . . . . 10 1.2.18 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.19 Courbes et surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3.1 Arbre syntaxique d'une expression . . . . . . . . . . . . . . . . . . . . 11 1.3.2 Manipulation syntaxique d'une expression . . . . . . . . . . . . . . . . 11 1.4 Le probl me de la simpli cation . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4.1 Forme normale, classes d'expressions . . . . . . . . . . . . . . . . . . . 13 1.4.2 Transformation d'expressions . . . . . . . . . . . . . . . . . . . . . . . 13 1.5 valuation d'une expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.5.1 Niveaux d' valuation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5.2 Protection de l' valuation . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.6 Les l ments du langage de programmation . . . . . . . . . . . . . . . . . . . 14 1.6.1 Structures conditionnelles . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.6.2 Structures it ratives . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.6.3 Proc dures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.7 Conseils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3 2 Exercices pratiques 18 2.1 nonc s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1.1 quilibre d'une r action chimique . . . . . . . . . . . . . . . . . . . . . 18 2.1.2 Loi de Kirchov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1.3 Projectile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.4 Apollo 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.1.5 Moindres carr s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.1.6 quation de Van der Pool . . . . . . . . . . . . . . . . . . . . . . . . 23 2.1.7 Interaction lectrostatique . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2 Corrections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.2.1 quilibre d'une r action chimique . . . . . . . . . . . . . . . . . . . . . 25 2.2.2 Loi de Kirchov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.3 Projectile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.4 Apollo 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.2.5 Moindres carr s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2.6 quation de Van der Pool . . . . . . . . . . . . . . . . . . . . . . . . 34 2.2.7 Interaction lectrostatique . . . . . . . . . . . . . . . . . . . . . . . . . 36 3 Questions fr quemment pos es 42 3.1 Comment faire pour interrompre un tr s long calcul . . . . . . . . . . . . . . 42 3.2 Plus rien ne s' value. Que faut-il faire? . . . . . . . . . . . . . . . . . . . . . . 44 3.3 Faut-il utiliser une table ou un tableau? . . . . . . . . . . . . . . . . . . . . . 44 3.4 Faut-il utiliser une boucle for, seq, ou sum? . . . . . . . . . . . . . . . . . . . 44 3.5 Faut-il utiliser opi,l ou l i pour r cup rer le ieme l ment d'une liste? . 44 3.6 Quand faut-il mettre; ou:? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.7 Comment r cup rer les valeurs retourn es par solve ? . . . . . . . . . . . . 44 3.8 Comment tracer le r sultat d'un appel series? . . . . . . . . . . . . . . . . 44 4 Introduction Ce fascicule reprend un cours de Maple destin des l ves de premi re ann e de classe pr paratoire scienti que. Il est structur en trois parties. Dans la section 1, nous pr sen- tons bri vement les principales fonctions utilis es en Maple 1 , 2 , ainsi que les concepts fondamentaux des syst mes de calcul formel  3 , 4 . La section 2 est un recueil d'exercices pratiques, appliqu s laPhysique. Une correction compl te est donn e pour chaque exercice. En n, la section 3 tente de r pondre aux probl mes que se posent souvent les utilisateurs d butants. 1 Pr sentation de Maple 1.1 Maple : un syst me de calcul formel Un syst me de calcul formel est un logiciel qui permet d'e ectuer des calculs math - matiques exacts par opposition calcul num rique approch . Maple permet galement d'e ectuer des calculs num riques en pr cision arbitraire du calcul approch donc ainsi que des trac s graphiques. En n Maple poss de un langage de programmation volu . 1.2 Fonctionnalit s principales D crire avec pr cision ne serait-ce que les principales fonctions Maple serait extr mement long. Nous faisons donc ici un tour d'horizon, sur des exemples, des principales fonctions de Maple. Pour une description exhaustive des fonctions, se r f rer l'aide en ligne. 1.2.1 Aide en ligne Pour obtenir de l'aidesur un sujet ou une fonction, il faut faire pr c der l'intitul du sujet ou le nom de la fonction par?. Pour chaque fonction, l'aide pr sente la syntaxe utiliser, d crit ce que faitlafonction,pr sente des exemples, puis donne une liste de fonctions pouvant tre utiles la place ou en compl ment de la fonction. Par exemple, pour avoir de l'aide sur la r solution d' quations: ?solve FUNCTION: solve - Solve Equations CALLING SEQUENCE: solveeqn, var solveeqns, vars PARAMETERS: eqn - an equation or inequality eqns - a set of equations or inequalities var - optional a name unknown to solve for vars - optional a set of names unknowns to solve for 5 SYNOPSIS: - The solution to a single equation eqn solved for a single unknown var is returned as an expression. ... EXAMPLES: solve f=m*a, a ; f m solve f=m*a , a ; a = f m ... SEE ALSO: dsolve, fsolve, isolve, msolve, rsolve, assign, invfunc, isolate, match, linalg linsolve , simplex, grobner, solve subtopic where subtopic is one of: floats, functions, identity, ineqs, linear, radical, scalar, series, system 1.2.2 A ectation Il est possible d'a ecter un nom une expression a l'aide de:=. a:=sin5+3; a := sin5 + 3 a; sin5 + 3 1.2.3 Instructions Une instruction est une expression Maple se terminant par ; ou :. Dans le cas o l'ins- truction se termine par :, le r sultat n'est pas a ch . Dans une expression, " repr sente le dernier r sultat obtenu. 1.2.4 R solution d' quations La fonction solve permet de r soudre des quations ou des syst mes d' quations d'une ou plusieurs variables: solve cosa+sinb=5,b=3 , a,b ; a = arccos- sin3 + 5, b = 3 1.2.5 Di rentiation La fonction diff permet de calculer la d riv e d'une expression en une ou plusieurs variables: diffsinexpx+y*x^2,x; 2 cosexpx + y expx + y x + 2 sinexpx + y x 6 1.2.6 Int gration La fonction int permet de calculer une primitive ou une int grale d nie: intsinx+y^5,x; 4 2 - 1 5 sinx + y cosx + y - 4 15 sinx + y cosx + y - 8 15 cosx + y intsinx^2,x=0..1; - 1 2 cos1 sin1 + 1 2 1.2.7 Sommes symboliques La fonction sum permet de calculer une somme d nie ou ind nie: sumk^3,k; 4 3 2 1 4 k - 1 2 k + 1 4 k sum1 k^2,k=1..5; 5269 ---- 3600 1.2.8 Manipulation de polyn mes Cr ation. Il est possible de d nir des polyn mes en une ou plusieurs variables. p:=x^3+5*x^2+8*x+4; 3 2 p := x + 5 x + 8 x + 4 p:=x^3*y+5*x^2+8*x+4+y^3; 3 2 3 p := x y + 5 x + 8 x + 4 + y Manipulation. Les fonctions qui manipulent les polyn mes sont nombreuses. Les princi- pales sont r sum es dans le tableau suivant: Op rations syntaxiques coeff S lection d'un coe cient coeffs Liste des coe cients degree Degr du polyn me R criture expand D veloppement collect D veloppement par rapport une variable sort Tri des termes du polyn me Calcul quo Quotient de la division euclidienne rem Reste de la division euclidienne gcd Pgcd factor Factorisation 7 1.2.9 D veloppements limit s Les d veloppements en s ries se font l'aide de la fonction series. Le d veloppement l'ordre 3 de x+ 1 x en x = 1 s' crit: seriesx+1 x, x=1, 3 ; 2 3 2 + x - 1 + Ox - 1  1.2.10 Calcul de limites Les limites se calculent l'aide de la fonction limit. Si Maple ne sait pas calculer une limite, il retourne la forme de l'appel. limitsinx x, x=0; 1 limitx^n, x=infinity; limitx^n, x=infinity; limitexpx, x=infinity; infinity 1.2.11 Fonctions Les fonctions simples peuvent tre d nies l'aide de l'op rateur fonctionnel - ou de la notation crochet resultat | variable f:=x - x^2; 2 f := x - x f2; 4 g:= x*y,2*x | x,y ; g := x y, 2 x|x, y g2,1; 2, 4 1.2.12 Ensembles Maple permet de manipuler des ensembles d'objets non ordonn s et sans r p titions. Les ensembles peuvent contenir d'autres ensembles. L'ensemble vide est not . Les op rations possibles sur les ensembles sont l'union union, l'intersection intersect et la di rence minus de deux ensembles. Le test d'appartenance d'un l ment un ensemble peut se faire l'aide de la fonction member. a,b,c,a ; a, b, c 8 a, a,b ,c ; a, c, a, b memberx, a,b union x ,z ; false 1.2.13 Listes Les listes permettent de d nir des s quences ordonn es d' l ments, avec r p titions possibles. La liste vide est not e . Le i me l ment d'une liste L est donn par l'op rateur de s lection: L i a,b,c,a ; a, b, c, a a, a,b ,c ; a, a, b , c " 2 ; a, b 1.2.14 Suites d'expressions Les suites d'expressions sont d nies l'aide de l'op rateur ,. Elles apparaissent lors des appels de fonctions, de la cr ation de listes ou d'ensembles par exemple. La suite d'expres- sions vide est not e NULL. s:=a,b,c; s := a, b, c s ; a, b, c a,s,d; a, a, b, c, d 1.2.15 Tables Les tables permettent de d nir des variables index es par des expressions. L'exemple suivant montre les di rentes propri t s des tables. T sinx :=5; T sinx := 5 T 1 2 :=7; T 1 2 := 7 T; T printT; table sinx = 5 1 2 = 7  T 1 ; T 1 T sinx ; 5 9 1.2.16 Tableaux Dans le cas o l'on manipule des variables index es par des entiers, et que le nombre d'index est xe, il convient d'utiliser des tableaux. Contrairement aux tables, les tableaux doivent tre d clar s l'aide de array avant d' tre utilis s. T:=array1..2,-2..-1: T 1,-1 :=1: T 1,-2 :=x^2: T 1,-1 ; T 1, -1 := 1 T 2,-2 :=2; T 2, -2 := 2 T; T printT; array1 .. 2,-2 .. -1,, 2 1, -2 = x 1, -1 = 1 2, -2 = 2 2, -1 = T 2, -1  1.2.17 Calcul num rique en pr cision arbitraire La fonction evalf permet de calculer num riquement une expression. Le nombre de d cimales peut tre sp ci soit comme deuxi me param tre de la fonction evalf, soit en modi ant la valeur de Digits. evalfPi; 3.141592654 evalfPi,50; 3.1415926535897932384626433832795028841971693993751 Digits:=20; Digits := 20 evalfPi; 3.1415926535897932385 1.2.18 Types Il est possibles de v ri er si une expression est d'un certain type, l'aide de la fonction type. Les principaux types en Maple sont: Nom de type Signi cation numeric valeur num rique integer nombre entier complex nombre complexe float nombre d cimal polynom polyn me table table array tableau 10 1.2.19 Courbes et surfaces Maple permet de tracer des courbes en dimension 2 et 3 ainsi que des surfaces, l'aide des fonctions plot et plot3d. Il est possible de tracer des courbes en coordonn es cart siennes, polaires ou cylindriques. On peut galement faire gurer les lignes d'isovaleur d'une surface, ou encore repr senter des courbes implicites. Plusieurs trac s peuvent tre repr sent s sur le m me graphique, l'aide de la fonction plots display . Plusieurs exemples de telles courbes sont donn s dans les exercices de la section 2. 1.3 Expressions Les expressions sont les objets principaux des syst mes de calcul formel.Lorsque l'utilisa- teur d crit l'expression math matique, par exemple sin1 + x, il conna t un certain nombre de propri t s math matiques sur cette fonction. En revanche Maple ne consid re cette ex- pression que d'un point de vue syntaxique: la fonction sin est appliqu e la somme de l'entier 1 et de la variable x. Lorsque l'on souhaite appliquer des op rations math matiques cette expression, comme par exemple la d river ou l'int grer, Maple ne dispose que d'une information syntaxique sur l'expression. 1.3.1 Arbre syntaxique d'une expression Les expressions Maple peuvent tre repr sent es par un arbre. Par exemple, l'expression 1=3+sin1+x2 + sera repr sent e par l'arbre de la gure 1. Les op rations Maple consistent analyser un tel arbre pour en construire un nouveau. 1.3.2 Manipulation syntaxique d'une expression Les op rations syntaxiques suivantes sont possibles sur une expression:  Obtenir tous les op randes d'une expression les sous-arbres de la racine sous forme d'une suite d'expressions: op  Obtenir le i me op rande d'une expression: opi,..  Obtenir le nombre d'op randes d'une expression: nops  Substituer le i me op rande d'une expression par une autre expression: subsopi=..,..  Supprimer le i me op rande d'une expression: subsopi=NULL,..  Substituer tous les sous-arbres d'une expression gaux celui correspondant une certaine expression, par une autre expression: subs  Supprimer tous les sous-arbres de l'expression gaux celui correspondant une cer- taine expression: subs...=NULL,..  Substituer la racine de l'arbre de l'expression: convert 11 + 1/3 sin Pi + 1 ^ 2 x Fig. 1  Arbre syntaxique de l'expression 1=3 + sin1 + x2  +  12 1.4 Le probl me de la simpli cation 1.4.1 Forme normale, classes d'expressions La simpli cation d'une expression est un probl me di cile. Un polyn me est-il plus simple sous forme d velopp e ou sous forme factoris e? Cette question d pend en fait du polyn me. x+ 1100 est certainement plus simple sous forme factoris e, tandis que x100 + 1 est certainement plus simplesous forme d velopp e. De plus certains calculs sont plus rapides quand les expressions sont sous une certaine forme par exemple sous forme factoris e dans le cas du calcul du pgcd de deux polyn mes. Pour ces raisons, la r criture d'une expression la mettre sous forme factoris e ou d velopp e par exemple est laiss e dans la plupart des cas la charge de l'utilisateur. Un autre probl me directement li la simpli cationconsiste savoir si deux expressions sont gales ou sont di rentes d'un point de vue math matique. Pour que Maple puisse d cider si une expression est gale une autre, il faut que ces deux expressions aient la m me criture syntaxique. Mettre une expression sous forme normale consiste lui donner une nouvelle forme syntaxique sans en changer le sens math matique, telle que mise sous cette forme, elle est gale math matiquement une autre expression, elle m me sous forme normale,si et seulement si elles sont gales syntaxiquement.Il existe des classes d'expressions pour lesquelles iln'y apas de formenormale.Il existe des classes d'expressions pour lesquelles on ne peut pas tester en temps ni si elles sont nulles ou pas. Ceci peut donc conduire des erreurs lors de simpli cations. En pratique, on v ri era les r sultats obtenus chaque fois que l'on manipulera des expressions qui ne sont pas des fractions rationnelles. 1.4.2 Transformation d'expressions Nous donnons ici les principales fonctions de r criture d'une expression:  normal : met une expression sous sa forme normale si elle existe.  combine : regroupe les termes d'une expression.  expand : d veloppe une expression.  simplify : essaye de simpli er une expression. Est surtout utile avec un second para- m trequipermetde sp ci er le type de simpli cationque l'onsouhaite cf.?simplify. 1.5 valuation d'une expression Lorsque l'on a ecte une expression une variable, puis que l'on demande ce que vaut la variable, Maple retourne l'expression. Si aucune expression n'a t a ect e une variable, la valeur retourn e est le nom de la variable. a:=3+b; a := 3 + b a; 3 + b 13 Si l'expression contient des variables, elles sont galement remplac es par l'expression qui leur est associ e. b:=2*c; b := 2 c a; 3 + 2 c 1.5.1 Niveaux d' valuation L'a ectation d'une expression une variable peut tre visualis e par une che. Par exemple a:=b correspond a ! b. L' valuation d'une variable consiste alors suivre toutes les ches. a:=b: b:=c: c:=d: correspond a ! b ! c ! d. En tapant a; on obtient donc d, en suivant toutes les ches. Il est possible de limiter le nombre de ches que l'on souhaite suivre: evala,2 produit c, ce qui correspond suivre deux ches. 1.5.2 Protection de l' valuation Il est possible d'emp cher l' valuation d'une variable ou une expression, l'aide de '. On dira que la variable ou l'expression est prot g e. Chaque fois que l'on value une variable ou une expression prot g es, on perd un niveau de protection. b:=3: a:='b': d:=b: b:=5: a,d; 5, 3 ''a''; 'a' Pour d sa ecter une variable, on lui associe son nom: a:='a'; 1.6 Les l ments du langage de programmation 1.6.1 Structures conditionnelles Expressions bool ennes. Une variable bool enne est une variable qui peut prendre deux valeurs: false ou true. Une expression bool enne est une expression qui manipule des bool ens et les trois op rateurs suivants:  not a : retourne false si a vaut true, et retourne true si a vaut false,  a and b : retourne true si a et b valent true, et retourne false sinon,  a or b : retourne false si a et b valent false, et retourne true sinon. Par ailleurs, la fonction evalb retourne true si une expression math matique est vraie et false dans le cas contraire. Dans certains cas, Maple ne peut pas d cider: l'expression est alors retourn e. 14 Tests. Les tests peuvent tre e ectu s l'aide de l'instruction if, dont la syntaxe est: if condition1 then calcul1 elif condition2 then calcul2 else calculk fi En d'autres termes, si condition1 vaut true, alors calcul1 est ex cut , sinon si condition2 vaut true, alors calcul2 est ex cut , sinon calculk est ex cut . Les champs elif et else sont facultatifs. Par exemple pour calculer la valeur absolue d'un nombre a, on peut crire: if a 0 then -a; else a; fi; 1.6.2 Structures it ratives L'it ration est une op ration qui permet d'e ectuer plusieurs fois une m me suite d'op - rations,en faisantvarier unou plusieurs index. Le nombre de fois o l'instruction est ex cut e peut d pendre galement d'une condition. Boucle do. La forme la plus g n rale de l'it ration en Maple est la suivante: for indice from depart to fin by pas while condition do calcul od En d'autres termes, indice vaut depart la premi re it ration. pas est ajout indice chaque it ration, c'est- -dire apr s chaque ex cution de calcul. L'it ration s'arrete d s que indice d passe fin ou que condition vaut false. Seuls do et od sont obligatoires. Par d faut, depart et pas valent 1.On dira des instructions comprises entre do et od qu'elles font partie d'un m me bloc d'instructions. Par exemple pour calculer P4 i=1 1 i! , on peut crire: s:=0: for i to 4 do s:=s+1 i!: od: s; 41 ---- 24 Pour calculer le plus petit k tel que Qk i=1 1 i  1 5 : p:=1: for k while p 1 5 do p:=p*1 k: od: k-1; 3 15 Une variante de la forme pr c dente existe. L'indice de l'it ration prend les op randes d'une expression comme valeurs successives. for indice in expression while condition do calcul od s:=0: for i in 1,4,3 do s:=s+i^2: od: s; 26 seq et map. La fonction seq permet de construire des s quences d'expressions: seqfi, i = 1..5; f1, f2, f3, f4, f5 La fonction map permet d'appliquer une fonction chacun des op randes d'une expres- sion: mapf,a+b+c; fa + fb + fc $. x$i permet de produire une suite d'expressions compos e de i fois x. a$3; a, a, a 1.6.3 Proc dures Les proc dures permettent d'appeler plusieurs fois de suite une m mesuite d'instructions. D nition. La syntaxe des proc dures est la suivante: nom:=procparametres local varLocales; global varGlobales; instructions end; nom est le nomde la proc dure. parametres, varLocales et varGlobales sont des suites d'expressions contenant des noms de variables. parametres peut ventuellement tre nulle. Les champs local et global sont facultatifs. instructions est le corps de la proc dure, c'est- -dire une suite d'instructions s par es par des ; ou des :. Dans la suite parametres,on peut demander ce que certaines variables soient d'un certain type: var1:type1,..,vark. Lors de l'appel, si le param tre var1 n'est pas du type type1, un message d'erreur appara t. 16 Appel. La syntaxe d'appel des proc dures est la suivante: nomarguments; nom est le nom de la proc dure ex cuter. arguments est une suite d'expressions ayant au moins autant d'op randes que la suite parametres dans la d nition de la proc dure nom. R sultat d'une proc dure. La fonction RETURN permet de retourner un r sultat et de quitter une proc dure. Si aucune instruction RETURN n'est rencontr e lors de l'ex cution de la proc dure, la valeur retourn e est celle de la derni re instruction ex cut e. Passage par valeur des param tres. Le passage des param tres se fait par valeur, ce qui veut dire que l'on envoie une copie des expressions et non pas les expressions elles-m mes. On ne peut pas a ecter une expression un param tre l'int rieur de la proc dure sauf si l'on passe le nom de la variable. Variables locales et globales. Les variables pr sentes dans le champ local ont la pro- pri t suivante: leur valeur une fois la proc dure ex cut e est celle qu'elles avaient avant d'appeler la proc dure ceci reste vrai lors des appels r cursifs. Plus pr cis ment cela re- vient renommer les variables par des noms de variables qui ne seraient utilis s que lors de cet appel de la proc dure. Par contre les variables plac es dans le champ global sont e ectivement modi es. Remarques.  L' valuationdans le corps d'une proc dure est partielle. Elle correspond eval..,1.  Les variables qui ne sont d clar es ni dans le champ local ni dans global sont consi- d r es comme locales si rien ne leur a t a ect avant la d nition de la proc dure, et comme globales sinon. 1.7 Conseils  D composer les probl mes en sous probl mes. Il est en e et plus facile d' crire et de tester plusieurs petites proc dures qu'une seule grosse.  Tester les proc dures que vous crivez. Pour cela, essayer la proc dure en connaissant a priori le r sultat qui doit tre retourn . Essayer de faire en sorte que chaque instruction des proc dures soit appel e lors des tests.  Indenter less proc dures. Les instructions d'un m mebloc doivent tre au m meniveau, celles d'un sous bloc doivent tre d cal es vers la droite. 17 r r r1 r r r E i1 i3 i2 i4 i5 i6 i7 Fig. 2   Commenter chaque proc dure. Expliquer ce que fait la proc dure, le r le jou par chacun des param tres. Sp ci er les conditions que doivent v ri er les param tres pour que la proc dure s'ex cute correctement.  Il est galement conseill d'employer des noms de variables ou de proc dures signi - catifs, ce qui vite ensuite l'ajout de commentaires. Appelez distance une proc dure qui calcule la distance euclidienne entre deux points plut t que x5. l'int rieur d'une proc dure, il peut tre int ressant d'expliquer quoi correspondent certaines variables. vitez les commentaires inutiles comme on incr mente i ou on a che i . 2 Exercices pratiques 2.1 nonc s 2.1.1 quilibre d'une r action chimique D terminez a;b;c;d;e;f a n d' quilibrer la r action suivante: aFe2+ + bMnO, 4 + cH+ *  dFe3+ + eMn2+ + fH2O 1 2.1.2 Loi de Kirchov On consid re le circuit de la gure 2. 18 y x xmax h g v0 ? 0 Position initiale du projectile Fig. 3  Question 1. D terminer les intensit s i1;:::;i7 en fonction de r, r1 et E. Question 2. Que valent i1;:::;i7 lorsque r = r1? Question 3. Quelle valeur choisir pour r1 si l'on veut que i1 = 10 i4? 2.1.3 Projectile On se propose dans ce probl me d' tudier la trajectoire, dans un r f rentiel galil en, d'un projectile lanc avec une vitesse initiale. La trajectoire de ce projectile est caract ris e par les quations di rentielles suivantes voir Fig. 3: 8 : x = 0 y = ,g _ x0 = v0 cos 0 _ y0 = v0 sin 0 x0 = 0 y0 = h On suppose que 0 2 0;  2 , g 0 et h  0. Question 1. R soudre le syst me di rentiel a n d'obtenir la forme explicite de la trajec- toire dsolve . Appeler pos_x et pos_y les expressions des trajectoires en x et y respecti- vement. 19 x y v0 Terre Lune Satellite t=0 trajectoire du satellite Vitesse initiale Fig. 4  Question 2. D terminer quel moment tmax le projectile touche le sol, en fonction de 0;v0;h et g. Quelle est alors la position du projectile? Question 3. Quelle est la hauteur maximale atteinte par le projectile? Question 4. Quelle est la hauteur moyenne du projectile lors du vol? Question 5. On a les valeurs num riques suivantes, dans les unit s appropri es:  g = 10  v0 = 10  0 =  4  h = 2 Tracer la courbe de la trajectoire. 2.1.4 Apollo 8 On se propose d' tudier la trajectoire dans un r f rentiel galil en d'un satellite en tenant compte des interactions gravitationnelles entre le satellite, la terre et la lune. Pour cela on se place dans le rep re indiqu sur la gure 4. On suppose que le satellite a une 20 masse tr s inf rieure celles de la terre et de la lune. On peut donc supposer que la terre et la lune sont immobiles dans ce rep re, et que seul le satellite subit les forces d'attractions de la terre et de la lune. On rappelle qu'une particule de masse m plac e en ~ r subit la force ~ F, du fait de l'interaction avec N particules de position et de masses respectives ~ ri et mi, de la forme: ~ F~ r = Km0 N X i=1 mi ~ ri ,~ r j~ ri ,~ rj3 2 On supposera dans la suite du probl me que les unit s sont choisies de sorte que K = 1 Question 1. crire l'aide de l'op rateur - une fonction qui calcule la distance eucli- dienne entre deux points x1;y1 et x2;y2 du plan. Question 2. On suppose que le satellite est plac au temps t = 0 comme indiqu sur la gure 4, et que sa vitesse initiale est v0. En utilisant la relation ou postulat fondamentale de la dynamique newtonienne, d crire en Maple les quations di rentielles qui r gissent le mouvement du satellite. Question 3. On suppose que l'on a les donn es num riques suivantes, dans les unit s ad quates:  masse de la terre: 4  rayon de la terre: 1  position de la terre dans le rep re choisi: 0;0  masse de la lune: 1  position de la lune: 10;0  vitesse initiale du satellite: 2;61 R soudre num riquement le syst me d' quations di rentielles, l'aide de la fonction dsolve...,type=numeric Question 4. Tracer la trajectoire du satellite l'aide de la fonction odeplot. 2.1.5 Moindres carr s Beaucoup de ph nom nes physiques sont repr sent s par des lois lin aires. Au cours d'une exp rience, on mesure une grandeur physique en fonction d'une autre par exemple le potentiel lectrique pour di rentes valeurs d'intensit . On cherche alors d terminer le coe cient directeur et l'ordonn e l'origine caract ristique de la loi observ e par exemple pour d terminer la r sistance. 21 Question 1. On repr sente les objets point et droite en dimension 2 par des tableaux. Un point sera d ni l'aide de la proc dure point suivante:  definit un point d'abscisse x et d'ordonnee y point:=procx,y array1..2, x,y ; end; On manipulera ces points l'aide des deux primitives suivantes:  retourne l'abscisse d'un point definit par point abscisse:=procp p 1 ; end;  retourne l'ordonnee d'un point definit par point ordonnee:=procp p 2 ; end; De m me, pour manipuler les droites, on d nit les proc dures suivantes: definit une droite de pente a et d'ordonnee a l'origine b droite:=proca,b array1..2, a,b ; end; retourne la pente d'une droite d pente:=procd d 1 ; end; retourne l'ordonnee a l'origine d'une droite d origine:=procd d 2 ; end; crire, en utilisant les primitives ci-dessus, une proc dure carredistance qui calcule le carr de la distance euclidienne entre un point et une droite. Question 2. On d nit l'erreur entre un point et une droite comme tant le carr de la distance du point la droite. L'erreur entre une droite et un ensemble de points est d nie comme tant gale la somme des erreurs entre chacun des points et la droite. Soit P i :=pointx i ,y i  et L:=droitea,b. Trouvez b en fonction de a de sorte que l'erreur entre L et les P i soit minimale. Ceci revient minimiser: sumcarredistanceP i ,L,i=1..N. On supposera que ce minimumexiste. 22 Question 3. Calculer la droite de moindres carr s de pente a et d'ordonn e l'origine b pour un ensemble de N points de coordonn es xi;yi revient calculer: a = N PN i=1 xiyi , PN i=1 xi PN i=1 yi N PN i=1 xi2 , PN i=1 xi2 3 b = PN i=1 yi , a PN i=1 xi N 4 Pour un ensemble de points donn s sous forme de liste, crire une proc dure moindresCarres qui retourne la droite de moindres carr s. Question 4. Quel inconv nient l'exemple suivant met-il en avant? moindresCarres point2,2,point4,4,point8,8,point12,12, point2.7,5.9,point3,6,point3.2,6.2 ; Que proposez-vous pour y rem dier? 2.1.6 quation de Van der Pool On se propose d' tudier l' quation di rentielle non lin aire suivante1 : d2 yt dt2 + yt 2 ,1 dyt dt + yt = 0 5 Cette quation d crit un oscillateur entretenu un degr de libert caract ris par un coef- cient de frottement  et dont les pertes d' nergie sont compens es par un apport ext rieur. On choisit les conditions initiales suivantes: d2 y0 dt2 = 0; dy0 dt = 0;y0 = 1 6 Question 1. Donnez un d veloppement limit de la solution au voisinage de la date d'ori- gine sous la forme d'une s rie dsolve...,series dans le cas o  = 3. On tracera la courbe correspondante pour t 2 0::2 . Question2. Donnez une solution num rique de l' quation au voisinage de la date d'origine dsolve...,numeric dans le cas o  = 3. On tracera la courbe correspondante pour t 2 0::2 . Question 3. Comparez les r sultats des questions 1 et 2. Pour cela, on a chera les courbes obtenues pr c demment sur le m me graphe on utilisera plots display .Quelle m thode vous semble la mieux adapt e pour des calculs sur de longues p riodes? 1. Probl me propos initialement par F. Keller 23 Question 4. Tracez la solution de l' quation pour t 2 0::40 dans les cas suivants:  Frottements importants  = 10  Frottements moyens  = 1  Frottements faibles  = 0:1 Dans quel cas l'oscillateur prend-il le plus rapidement son r gime permanent? 2.1.7 Interaction lectrostatique L' lectrostatique est l' tude des interactions entre des particules charg es immobiles dans le rep re d'un observateur. L'interaction lectrostatique est proche de l'interaction gravita- tionnelle et poss de les propri t s des champs newtoniens en 1 r2 . Question 1. On d nit le potentiel lectrostatique en un point ~ r, pour un ensemble de I particules de charges qi et plac es en ~ ri;i = 1 :::I: V~ r = 1 4 0 I X i=1 qi j~ r , ~ rij 7 crire une proc dure potentiel_electrostatique qui calcule le potentiel lectrostatique V en un point x;y du plan, pour un ensemble quelconque de I particules donn es par qi, ~ ri = xi;yi;i = 1 :::I. On supposera que les unit s ont t choisies de sorte que 1 4 0 = 1. Question 2. Tracer les courbes de potentiel, d' quipotentielle pour les ensembles de par- ticules suivants:  cas 1: une particule de charge -1 plac e en -1,0 et une particule de charge 1 plac e en 1,0,  cas 2: une particule de charge 1 plac e en -1,0 et une particule de charge 1 plac e en 1,0,  cas 3: une particule de charge -1 plac e en -1,0, une particule de charge -1 plac e en 1,0 et une particule de charge 2 plac e en 0,0,  cas 4: une particule de charge 1 plac e en -1,0, une particule de charge 1 plac e en 1,0, une particule de charge 1 plac e en 0,-1, une particule de charge 1 plac e en 0,1. tant donn que la valeur du potentiel tend vers 1 au voisinage des particules, on bornera la valeur du potentiel en chaque point par deux valeurs arbitraires vmax et vmin  l'aide des fonctions min et max. 24 Question 3. On d nit le champ lectrostatique en un point ~ r, pour un ensemble de I particules de charges qi et plac es en ~ ri;i = 1 :::I: ~ E~ r = 1 4 0 I X i=1 qi ~ r , ~ ri j~ r , ~ rij3 : 8 crire une proc dure champ_electrostatique qui calcule num riquement le champ lec- trostatique E en un point x;y du plan, pour un ensemble quelconque de particules. Question 4. On d sire obtenir une repr sentation des lignes de champ du champ lectro- statique. Pour cela, on repr sente les directions des vecteurs champ sans tenir compte de leur intensit . crire une fonction normalise, qui au vecteur champ r sultat retourn par la proc - dure champ_electrostatique associe un vecteur de m me direction, mais de norme 1. On utilisera ensuite la fonction fieldplot du package plots et la proc dure normalise pour repr senter les lignes de champ pour l'ensemble de charges suivant:  Une particule de charge -1 plac e en -1,0 et une particule de charge 1 plac e en 1,0 Question 5. Comparez les r sultats des questions 2 et 4. Que remarquez vous? 2.2 Corrections 2.2.1 quilibre d'une r action chimique On crit les quations traduisant les conservations de mati re et de charge, que l'on r sout l'aide de la fonction solve . solve a=d,  qtite de Fe b=e,  Mn 4*b=f,  O c=2*f,  H 2*a-b+c=d*3+e*2  + et - , a,b,c,d,e,f ; e = b, f = 4 b, b = b, c = 8 b, d = 5 b, a = 5 b On obtient une in nit de solutions. En xant b = 1, on obtient la solution la plus simple: subsb=1,"; 1 = 1, d = 5, f = 4, e = 1, c = 8, a = 5 ce qui repr sente la r action: 5Fe2+ + MnO, 4 + 8H+ *  5Fe3+ + Mn2+ + 4H2O 9 25 2.2.2 Loi de Kirchov Question 1. On choisit un arbre de recouvrement du circuit et on applique les lois des n uds et des mailles. On obtient 7 quations pour 7 inconnues, que l'on r sout l'aide de solve : res:=solve i2*r1=E, i4*r=E, i5*r+i7*r=E, 2*i6*r+i7*r=E, i1=i2+i3, i3=i4+i5+i6, i7=i5+i6, i1=i2+i4+i7 , i1,i2,i3,i4,i5,i6,i7 ; E 8 r1 + 5 r res := i4 = E r, i6 = 1 5 E r, i1 = 1 5 --------------, i3 = 8 5 E r, r1 r E i5 = 2 5 E r, i7 = 3 5 E r, i2 = ---- r1 Question 2. Dans la question 1, nous avons obtenu une solution g n rale au probl me. Le cas particulier o r=r1 s' crit donc simplement: subs r=r1 ,res; E E E E E i6 = 1 5 ----, i4 = ----, i2 = ----, i1 = 13 5 ----, i3 = 8 5 ----, r1 r1 r1 r1 r1 E E i5 = 2 5 ----, i7 = 3 5 ---- r1 r1 Question 3. On d termine la valeur de r1 pour avoir i1=10*i4, l'aide de la fonction solve : solvesubsres,i1=10*subsres,i4,r1; 5 42 r On peut galement crire: solveres union i1=10*i4 ,r1; 2.2.3 Projectile Question 1. Les deux quations en x et y sont ind pendantes: 26 dsolve diffdiffxt,t,t=0,x0=0,Dx0=v0*cosalpha ,xt; xt = v0 cosalpha t pos_x:=subs",xt; pos_x := v0 cosalpha t On proc de de la m me fa on pour la trajectoire en y: dsolve diffyt,t$2=-g,y0=h,Dy0=v0*sinalpha ,yt; 2 yt = - 1 2 g t + h + v0 sinalpha t pos_y:=subs",yt; 2 pos_y := - 1 2 g t + h + v0 sinalpha t La trajectoire obtenue est donc parabolique. Question 2. On cherche quel moment le projectile touche le sol: solve pos_y=0 ,t; 2 2 1 2 - v0 sinalpha + v0 sinalpha + 2 g h t = - ---------------------------------------------- , g 2 2 1 2 - v0 sinalpha - v0 sinalpha + 2 g h t = - ---------------------------------------------- g On obtient deux solutions. Celle qui nous int resse est celle pour laquelle t 0 on ne remonte pas dans le temps. tmax:=subsop2, " ,t; 2 2 1 2 - v0 sinalpha - v0 sinalpha + 2 g h tmax := - ---------------------------------------------- g La position du projectile est en abscisse, dans le rep re choisi: subs t=tmax ,pos_x; 2 2 1 2 v0 cosalpha - v0 sinalpha - v0 sinalpha + 2 g h  - -------------------------------------------------------------- g 27 Question 3. Une condition n cessaire pour q'un point soit extremum d'une fonction est que la d riv e de la fonction soit nulle en ce point: t_extremum:=solvediffpos_y,t=0,t; v0 sinalpha t_extremum := ------------- g Il n'y a qu'un seul extremum.On a de plus suppos que 0 2 0;  2 et g 0, on en d duit la trajectoire est parabolique et y00textremum 0 que cet extremum est un maximum. La hauteur maximale atteinte est alors: subst=t_extremum,pos_y; 2 2 v0 sinalpha 1 2 --------------- + h g Question 4. On int gre la hauteur du projectile sur la dur e du vol t 2 0;tmax  : intpos_y,t=0..tmax; 2 2 1 2 1 6 v0 sinalpha + v0 sinalpha + 2 g h  2 2 2 2 1 2 v0 sinalpha + v0 sinalpha v0 sinalpha + 2 g h + 4 g h 2 g Question 5. On a che la trajectoire jusqu'au moment o le projectile touche le sol Fig. 5: val_num:= g=10,v0=10,alpha=Pi 4,h=2 : plotsubsval_num,pos_y,t=0..subsval_num,tmax; La hauteur maximale est atteinte au temps t suivant: evalfsubsval_num,t_extremum; .7071067810 2.2.4 Apollo 8 Question 1. distance:=x1,y1,x2,y2- sqrtx2-x1^2+y2-y1^2; 28 0 1 2 3 4 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 t Fig. 5  29 Question 2. On note x0t;y0t la position du satellite au temps t, x1;y1 celle de la terre et x2;y2 celle de la lune. Les quations de la trajectoire en x et en y s' crivent: equations:= diffx0t,t$2=m1*x1-x0t distancex0t,y0t,x1,y1^3+ m2*x2-x0t distancex0t,y0t,x2,y2^3, diffy0t,t$2=m1*y1-y0t distancex0t,y0t,x1,y1^3+ m2*y2-y0t distancex0t,y0t,x2,y2^3 ; On note v0 la vitesse initiale du satellite, R le rayon de la terre. Les conditions initiales s' crivent en Maple de la fa on suivante: conditionsInitiales:= x00=-R,y00=0, Dx00=0,Dy00=v0 ; Question 3. On e ectue la r solution num rique de l' quation: equ:=subs x1=0,y1=0,x2=10,y2=0,v0=2.61,m1=4,m2=1,R=1 , equations union conditionsInitiales: f:=dsolveequ, x0t,y0t ,type=numeric: Maintenant nous pouvons conna tre la position approch e du satellite pour t quel- conque. Par exemple en t = 1 on a: f1; d t = 1, x0t = .5202001930014002, ---- x0t = 1.317769483335385, dt d y0t = .3595330701882939, ---- y0t = -2.443607838512814 dt Question 4. Nous tra ons la trajectoire l'aide de odeplot Fig. 6. Selon le m me principe, la capsule Apollo 8 a contourn la lune. plots odeplot f, t,x0t,y0t ,0..30,numpoints=200,labels= `t`,`x0t`,`y0t` ; 2.2.5 Moindres carr s Question 1.  calcule le carre de la distance euclidienne entre un point p defini  par point et une droite l definie par droite. carredistance:=procp,l local ix; ix:=-l 2 *l 1 +p 1 +p 2 *l 1  l 1 ^2+1; normalp 1 -ix^2+p 2 -l 1 *ix+l 2 ^2; end; 30 -2 -1 0 1 2 y0(t) 0 2 4 6 8 10 x0(t) Fig. 6  Trajectoire du satellite 31 Question 2. On cherche b tel que sumcarredistancepointx i ,y i ,droitea,b,i=1..N soit minimal. Une condi- tion n cessaire pour qu'une fonction soit minimale en un point est que la d riv e soit nulle en ce point. normalsolvediffsumcarredistancepointx i ,y i ,droitea,b, i=1..N,b,b; N N |----- | |----- | | | | | a |  x i | - |  y i | | | | | |----- | |----- | i = 1 i = 1 - ----------------------------- N La solution est unique. Question 3.  retourne la droite de moindres carres pour une liste L de point definis par  point. La liste de points doit contenir au moins deux points. moindres_carres:=procL:list local sxy,sx,sx2,sy,n,i,xi,yi,a,b; sxy:=0; sx:=0; sx2:=0; sy:=0; n:=nopsL; if n=1 then ERROR`nopsl 2`; fi; for i to n do xi:=abscisseL i ; yi:=ordonneeL i ; sxy:=sxy+xi*yi; sx:=sx+xi; sy:=sy+yi; sx2:=sx2+xi^2 od; a:=n*sxy-sx*sy n*sx2-sx^2; b:=sy-a*sx n; droitea,b end; Pour pouvoir tester facilement la proc dure, on d nit la proc dure suivante, qui permet de tracer sur un m me graphe un ensemble de points et la droite de moindres carr s qui lui est associ e: affiche:=procliste_points:list d1:=plotliste_points,style=point: a:=moindrescarresliste_points: d2:=plota 1 *x+a 2 ,x=0..10: plots display  d1,d2 ; end; 32 0 2 4 6 8 10 12 14 16 0 2 4 6 8 10 Fig. 7  La gure 7 montre le r sultat de l'appel suivant: affiche point2,3,point10,17,point4,5,point6,12,point8,14 ; Question 4. L'exemple Fig. 8 montre un inconv nient de la m thode. Les points jouent tous la m me importance dans le calcul de la droite de moindres carr s. Les trois points tr s proches, qui repr sente quasiment la m me mesure, attirent fortement la droite. Un seul point attirerait moins la droite. Le r sultat d pend donc de la fa on dont sont prises les mesures. Pour rem dier cet inconv nient, il faut soit imposer des conditions sur la prise des mesures le m me intervalle entre les mesures, soit modi er la m thode pour pond rer l'importance des di rents points par exemple en fonction de l'intervalle entre la mesure 33 2 4 6 8 10 12 0 2 4 6 8 10 Fig. 8  pr c dente et lasuivante. Lam thode n'est pas bien adapt e au cas ou l'on conna t certaines conditions sur la droite, par exemple qu'elle passe par z ro. 2.2.6 quation de Van der Pool Question 1. On d nit tout d'abord l' quation: equation_vdp:=diffyt,t$2+mu*yt^2-1*diffyt,t+yt=0; 2 | d | 2 d equation_vdp := |----- yt| + mu yt - 1 |---- yt| + yt = 0 | 2 | dt dt 34 On d nit les conditions initiales: conditions:=D@@1y0=0,Dy0=0,y0=1; conditions := Dy0 = 0, Dy0 = 0, y0 = 1 On r sout l' quation avec l'option series dsolve subsmu=3,equation_vdp,conditions ,yt,type=series; 2 4 5 6 yt = 1 - 1 2 t + 1 24 t - 3 20 t + Ot  Pour a cher le r sultat, il faut convertir la s rie en polyn me: d1:=plotconvertsubs",yt,polynom,t=0..2: d1; Question 2. On r sout l' quation avec l'option numeric. res3:=dsolve subsmu=3,equation_vdp,conditions ,yt,type=numeric: On obtient une proc dure res3 qui permet de calculer la solution de l' quation en tout point. Par exemple en t = 1 : res31; d t = 1, yt = .3768595013236257, ---- yt = -1.738454725640297 dt On utilise odeplot pour tracer la solution: d2:=plots odeplot res3, t,yt ,0..2,numpoints=200: d2; Question 3. Pour a cher sur le m me graphe les r sultats pr c dents Fig. 9: plots display  d1,d2 ; On remarque que les r sultats ne sont pas les m mes. La solution utilisant seriesla courbe qui tend vers ,1 n'est en e et valable qu'au voisinage de z ro. Pour a cher la solution sur de longues p riodes, il faut donc utiliser l'option numeric. 35 -5 -4 -3 -2 -1 0 1 0 0.5 1 1.5 2 t Fig. 9   = 3;t 2 0::2 , options series et numeric Question 4. On d nit une proc dure affiche qui permet de tracer la solution pour di rentes valeurs de  Fig. 11 et 10: affiche:=procval res:=dsolve subsmu=val,equation_vdp,conditions ,yt,type=numeric: plots odeplot res, t,yt ,0..40,numpoints=200; end; affiche10; affiche1; affiche0.1; Plus le frottement est important, et plus l'oscillateur prend vite son r gime permanent. 2.2.7 Interaction lectrostatique Question 1. On commence par d nir une repr sentation pour les particules. On choisit ici de repr senter chaque particule par une liste dont le premier l ment est la charge de la particule, le second sa position, laposition tant une liste dont le premier l ment correspond l'abscisse, le second l'ordonn e de la particule repr sent e.  set_particule definit une representation pour une particule de charge q  et de position x,y dans le plan set_particule:=procq,x,y q, x,y ; end;  charge retourne la charge d'une particule definie a l'aide de set_particule 36 -2 -1 0 1 2 0 10 20 30 40 Fig. 10   = 10;t 2 0::40 -1.5 -1 -0.5 0 0.5 1 1.5 2 0 10 20 30 40 Fig. 11   = 0:1;t 2 0::40 37 charge:=procp p 1 ; end;  pos_x retourne l'abscisse d'une particule definie a l'aide de set_particule pos_x:=procp p 2 1 ; end;  pos_y retourne l'ordonnee d'une particule definie a l'aide de set_particule pos_y:=procp p 2 2 ; end; La proc dure potentiel_electrostatique s' crit alors:  potentiel_electrostatique calcule la valeur numerique du champ  electrostatique en un point x,y defini par une liste de  particules. Les elements de la liste particules doivent etre definis  a l'aide de set_particules. Le potentiel ne peut etre calcule aux  points ou sont placees les particules. potentiel_electrostatique:=procparticules,x,y n:=nopsparticules; s:=0; for i to n do rx:=x-pos_xparticules i ; ry:=y-pos_yparticules i ; r:=sqrtrx*rx+ry*ry; s:=evalfs+chargeparticules i  r; od; end; Dans le cas d'une particule de charge -1 plac e en -1,0 et d'une particule de charge 1 plac e en 1,0, on peut s'attendre aux r sultats suivants:  Le potentiel lectrostatique doit tre positif quand on est plus pr s de la charge positive que de la charge n gative: mes_particules:= set_particule1,1,0,set_particule-1,-1,0 ; potentiel_electrostatiquemes_particules,1,1; .5527864044 potentiel_electrostatiquemes_particules,-3,0; -.2500000000  Le potentiel lectrostatique doit tre nul aux points quidistants des deux particules: potentiel_electrostatiquemes_particules,0,1; 0  La valeur du potentiel est d'autant plus lev e que l'on est proche des particules: potentiel_electrostatiquemes_particules,1,0.5; 1.514928750 38 On peut e ectuer des tests similaires avec un nombre plus important de particules. potentiel_electrostatique set_particule1,1,0,set_particule-1,-1,0, set_particule1,0,1,set_particule-1,0,-1 ,1,1; 1.105572808 Question 2. On d nit une proc dure borne qui permet de borner un r sultat:  borne retourne vmin si res est inferieur a vmin, et vmax si res est  superieur a vmax. borne:=procres maxvmin,minres,vmax; end; Le trac du potentiel se fait simplement l'aide de plot3d.  cas 1: une particule de charge -1 plac e en -1,0 et une particule de charge 1 plac e en 1,0.Pour obtenir laformeg n rale de la courbe de potentiel lectrostatique Fig. 12: plot3dbornepotentiel_electrostatique set_particule1,1,0, set_particule-1,-1,0 , x,y, x=-2..2,y=-2..2, grid= 50,50 , style=PATCH, labels= `x`,`y`,`Vx,y` , axes=FRAME, shading=ZGREYSCALE, title=`cas 1 : potentiel electrostatique `; Pour a cher les courbes d' quipotentiel Fig. 13: plot3dbornepotentiel_electrostatique set_particule1,1,0, set_particule-1,-1,0 , x,y, x=-2..2,y=-2..2, grid= 50,50 , style=PATCHCONTOUR, labels= `x`,`y`,`Vx,y` , axes=FRAME, contours=50, shading=ZGREYSCALE, title=`cas 1 : courbes d'equipotentiel`;  cas 2, 3 et 4: On proc de de la m me fa on. 39 -2 -1 0 1 2 x -2 -1 0 1 2 y -4 -2 0 2 4 V(x,y) cas 1 : potentiel electrostatique Fig. 12  40 -2 -1 0 1 2 x -2 -1 0 1 2 y cas 1 : courbes d?equipotentiel Fig. 13  41 Question 3. On d nit la proc dure champ_electrostatique :  champ_electrostatique calcule la valeur numerique du champ  electrostatique en un point x,y defini par une liste de particules  particules. Les elements de la liste particules doivent etre definis  a l'aide de set_particules. La valeur du vecteur champ est retournee  dans une liste dont le premier element correspond a la premiere composante  et le second a la seconde composante du vecteur champ.  Le vecteur champ ne peut etre calcule aux points ou sont placees les  particules. champ_electrostatique:=procparticules,x,y n:=nopsparticules; sx:=0; sy:=0; for i to n do rx:=x-pos_xparticules i ; ry:=y-pos_yparticules i ; r:=sqrtrx*rx+ry*ry; sx:=evalfsx+chargeparticules i *rx r^3; sy:=evalfsy+chargeparticules i *ry r^3; od; sx,sy ; end; Question 4. On crit la proc dure de normalisation des vecteurs champ calcul s:  associe a un vecteur v defini par une liste dont le premier element  correspond a la premiere composante et le second a la seconde composante  du vecteur, un vecteur sous forme de liste de norme 1 et de meme  direction que v normalise:=procv local norme; norme:=sqrtv 1 ^2+v 2 ^2; v 1 norme,v 2 norme ; end; On utilise fieldplot pour tracer les directions du champ lectrostatique Fig. 14: plots fieldplot normalisechamp_electrostatique set_particule1,1,0, set_particule-1,-1,0 , x,y, x=-2..2,y=-2..2; Question 5. On remarque que les lignes de champ sont perpendiculaires aux lignes d' qui- potentiel. La direction des lignes de champ en un point correspond celle de plus grande pente du potentiel lectrostatique. 3 Questions fr quemment pos es 3.1 Comment faire pour interrompre un tr s long calcul Sous windows, appuyer sur le bouton stop de la barre d'ic nes. Si cela ne marche pas, tuez Maple et recommencez tout... 42 -2 -1 0 1 2 y -2 -1 0 1 2 x Fig. 14  Lignes de champ lectrostatique 43 3.2 Plus rien ne s' value. Que faut-il faire? Vous avez certainement oubli de fermer une proc dure ou une boucle. Tapez end; 3.3 Faut-il utiliser une table ou un tableau? Si les index des l ments stocker sont entiers et que vous connaissez le nombre maximal d' l ments stocker, utilisez un tableau array. Sinon utilisez une table. 3.4 Faut-il utiliser une boucle for, seq, ou sum? Si le r sultat est sous forme num rique, utilisez de pr f rence for ou convert seq..,.. ,'+'. Dans le cas d'un calcul symbolique  vous ne connaissez pas le nombre d' l ments sommer par exemple , utilisez sum. 3.5 Faut-il utiliser opi,l ou l i pour r cup rer le ieme l ment d'une liste? Les deux sont corrects, mais pr f rez l i qui est plus lisible. Dans un cas on r cup re le i me l ment de la liste, dans l'autre le i me op rande d'une expression. 3.6 Quand faut-il mettre; ou:? Il faut mettre un; ou: pour s parer deux instructions cons cutives d'un m me bloc d'instructions. Il ne faut donc pas en mettre apr s proc, do et then. On tol re; ou: apr s la derni re instruction d'un bloc d'instructions pour permettre l'ajout de nouvelles instructions en n de bloc, c'est dire avant od, fi ou end. 3.7 Comment r cup rer les valeurs retourn es par solve ? Utilisez subs. Par exemple: solve a+2*b=25,a+b=7 , a,b ; a = -11, b = 18 subs",a; -11 3.8 Comment tracer le r sultat d'un appel series? Utilisez convert...,polynom seriesx 1-x-x^2, x=0; 2 3 4 5 6 x + x + 2 x + 3 x + 5 x + Ox  plotconvert",polynom,x=0..2; 44 R f rences 1 Bruce W. Char, Benton L. Leong, Keith O. Geddes, and Gaston H. Gonnet. First leaves: a tutorial introduction to Maple V. Springer, 1992. 2 Jack-Michel Cornil and Philippe Testud. Maple: introduction raisonn e l'usage de l' tu- diant, de l'ing nieur et du chercheur. Springer Verlag, 1995. 3 James Harold Davenport, Yvon Siret, and Evelyne Tournier. Calcul formel: syst mes et algorithmes de manipulations algbriques. Masson, 1987. 4 Claude Gomez, Bruno Salvy, and Paul Zimmermann. Calcul formel: mode d'emploi: exemples en MAPLE. Masson, 1995. 45 Unit´ e de recherche INRIA Lorraine, Technop? ole de Nancy-Brabois, Campus scientifique, 615 rue du Jardin Botanique, BP 101, 54600 VILLERS L` ES NANCY Unit´ e de recherche INRIA Rennes, Irisa, Campus universitaire de Beaulieu, 35042 RENNES Cedex Unit´ e de recherche INRIA Rh? one-Alpes, 655, avenue de l?Europe, 38330 MONTBONNOT ST MARTIN Unit´ e de recherche INRIA Rocquencourt, Domaine de Voluceau, Rocquencourt, BP 105, 78153 LE CHESNAY Cedex Unit´ e de recherche INRIA Sophia-Antipolis, 2004 route des Lucioles, BP 93, 06902 SOPHIA-ANTIPOLIS Cedex ´ Editeur INRIA, Domaine de Voluceau, Rocquencourt, BP 105, 78153 LE CHESNAY Cedex (France) ISSN 0249-6399

PARTAGER SUR

Envoyer le lien par email
2269
READS
12
DOWN
7
FOLLOW
6
EMBED
DOCUMENT # TAGS
#Maple  #calcul formel  #cours  #exercices  #physique 

licence non indiquée


DOCUMENT # INDEX
Mathematiques, Sciences 
img

Partagé par  macuche

 Suivre

Auteur:Franc¸ois Bertault
Source:Non communiquée