DS de maple (lundi 23 mai 2005, de 13 h 30 à 14 h 30) Calcul numérique d’une intégrale. 1) On désire calculer numériquement 1 ∫0 dx . Ecrire la commande. 1 − x4 1 1 1 2) La réponse à cette commande est B , . Que faire ? 4 4 2 ( ) Algorithmique 1) Si L est une liste, comment désigne-t-on le troisième élément de cette liste ? 2) Soit une liste de 347 points, chaque point étant une liste de ses deux coordonnées entières x , y . Ecrire un programme qui calcule une nouvelle liste de 347 points, chaque point se déduisant de son homologue de la première liste et ayant pour coordonnées x , x × y . 3) Soit t un tableau indicé de 1 à N , contenant des entiers et p un entier. Ecrire une procédure de paramètres t , N et p qui retourne true si p est un élément de t et false dans le cas contraire. On utilisera une boucle while pour éviter d’examiner le reste du tableau si on a trouvé l’élément. Cinétique d’ordre 2. 1) Soit k et c0 deux constantes positives. Lors d’une cinétique chimique, une concentration c évolue au cours du dc temps t selon − = kc 2 . Résoudre analytiquement cette équation différentielle, avec la condition initiale c = c0 . dt 2) En déduite l’instant t1 pour lequel c = c0 / 2 . 3) Tracer le graphe de c ( t ) entre les instants 0 et 5t1 . Le chien et le lapin. Un lapin A court le long du grillage circulaire de centre C et de rayon R qui entoure un pré avec la vitesse angulaire constante ω positive. Un chien M part d’un point M0 du grillage tel que ( AC , AM 0 ) = θ0 et court en direction du lapin avec une vitesse u de module constant et inférieure à celle du lapin. Plaçons nous dans le référentiel tournant lié à AC et repérons le chien par ses coordonnées polaires par rapport au lapin r = AM et θ = ( AC , AM ) . Choisissons comme unité de longueur le rayon du pré et comme unité de vitesse celle du lapin. Les équations en coordonnées polaires du mouvement du chien sont : dr = −u + sin θ dt dθ cos θ = −1 dt r 1) Résoudre numériquement ces équations pour u = 0, 5 et θ 0 = 0 (la résolution analytique échoue). 2) Afficher la trajectoire du chien. 3) Ecrire une procédure dont les paramètres sont u , θ 0 et la durée maximale étudiée et qui retourne un objet de type plot représentant la trajectoire du chien. 4) Afficher la trajectoire du chien et le grillage pour u = 0, 5 et θ 0 = 0 en utilisant cette procédure. Corrigé A.1. > int(1/sqrt(1-x^4),x=0..1); 1 ⎛1 1⎞ Β⎜ , ⎟ 4 ⎜⎝ 4 2 ⎟⎠ A.2. > evalf(int(1/sqrt(1-x^4),x=0..1)); 1.311028777 B.1. L[3] B.2. > for i to 5 do L[i]:=[L[i,1],L[i,1]*L[i,2]] od: B .3. > existe:=proc(t ::array(integer),N ::integer,p ::integer) local i: i:=1: while i<=N and t[i]<>p do i:=i+1 od: evalb(i<=N): end: C.1. > sol:=dsolve({diff(c(t),t)=-k*c(t)^2,c(0)=c0},c(t)); 1 sol := c( t ) = kt+ 1 c0 C.2. et 3. > assign(sol): t1:=solve(c(t)=c0/2,t); t1 := 1 k c0 plot(subs(k=1,c0=1,c(t)),t=0..subs(k=1,c0=1,t1)*5,0..1); D.1. > restart:with(plots): sol:=dsolve({diff(r(t),t)=-0.5+sin(theta(t)), diff(theta(t),t)=cos(theta(t))/r(t)-1, theta(0)=0,r(0)=2},{r(t),theta(t)},numeric); sol := proc (rkf45_x) ... end proc D.2. > odeplot(sol,[r(t)*cos(theta(t)),r(t)*sin(theta(t))], 0..20,scaling=constrained); D.4. > traj:=proc(u,theta0,duree) local sol: sol:=dsolve({diff(r(t),t)=-u+sin(theta(t)), diff(theta(t),t)=cos(theta(t))/r(t)-1, theta(0)=theta0,r(0)=2},{r(t),theta(t)},numeric); odeplot(sol,[r(t)*cos(theta(t)),r(t)*sin(theta(t))], 0..duree,numpoints=200); end: D.5. > display({traj(0.5,0,20),polarplot(2*cos(theta), theta=-Pi/2..Pi/2)},scaling=constrained);