• Aucun résultat trouvé

II. Plot et animation

N/A
N/A
Protected

Academic year: 2022

Partager "II. Plot et animation"

Copied!
3
0
0

Texte intégral

(1)

Informatique 2011-2012 : TD 5. MPSI B Hoche

I. Calcul formel autour des limites

Il est préférable en général de faire les calculs à partir d’expressions contenant une variable non assignée et de réserver les fonctions à un usage de programmation.

Du point de vue mathématique, on peut s’interroger sur les écritures du type f(x) = 2∗x+ 1 etf = 2∗x+ 1.

La plus courante est la première dans laquellexreprésente un élément du domaine def. La deuxième n’est pas à rejeter, elle est correcte à condition de considérer que xest une fonction. La fonction f s’exprime alors à l’aide d’opérations fonctionnelles (algébriques dans ce cas particulier) faisant intervenir la fonction x.

Dans la plupart des cas pratiques, on peut exprimer les fonctions sur lesquelles on doit travailler avec des fonctions usuelles et il est alors normal d’utiliser des expressions Maple pour les représenter.

Les trois principales fonctions Maple dans ce contexte sont limit , taylor , series.

La syntaxe demande de donner le nom de la variable (par exemple x) qui ne doit pas être assignée. Le point vers lequel tend la variable peut être une valeur ou une variable non assignée (par exemple a). On peut fournir un argument optionnel précisant le mode d’approche de x vers a (par exemple à droite ou à gauche). La variable x est considérée comme représentant un nombre réel.

1. limit

L’instruction limit(f, x=a) essaie de calculer la limite de l’expression f quandxtend versa. Lorsque les algorithmes utilisés permettent de conclure qu’il n’y a pas de limite, l’instruction renvoie undefined. Lorsque les algo- rithmes ne conduisent pas à un résultat ni à l’impossibilité d’en obtenir, l’instruction renvoie un résultat non évalué. Il sera possible de l’évaluer plus tard en ajoutant des précisions.

limit(sin(x)/x, x=0);

limit(exp(x), x=infinity);

limit(exp(x), x=-infinity);

p:=(x^2-1)*ln((1+x)/(1-x));

limit(p,x=1);

limit(p/x,x=0);

x:=a+1;limit(x,x=0);

x:=’x’;limit(sin(1/x),x=0);

limit(sin(x)+cos(x),x=infinity);

#Alors que a abs(sin(x)+cos(x)) <= sqrt(2);

limit(sin(x),x=a);

p:=(x*ln(x)^2-a*ln(a)^2)/((x-a)*(x-1));

limit(p,x=a);subs(a=1,");

limit(subs(a=1,p),x=1);

p:=(1+t/n)^n;limit(p,n=infinity);

Lim:=limit(exp(t^2*x),x=infinity);

Lim1:=limit(exp(t*x),x=infinity);

#La fonction limit suppose la variable réelle

# mais les paramètres sont complexes.

#assume(t>0);Lim1;

t:=’t’;Lim1:=limit(exp(t*x),x=infinity);

subs(t=1,Lim1);

eval(subs(t=1,Lim1));

2. taylor

La fonction taylor, avec une syntaxe évidente, calcule un développement limité à un ordre indiqué ou signale si la fonction n’en n’admet pas. Je dé- plore cette terminologie. Attention, le nombre à la fin de l’instruction indique l’ordre auquel Maple va développer les fonctions élémentaires qui figurent dans l’expression. Ce n’est pas forcément l’ordre du résultat. Ceci est valable aussi pour la fonctionseries.

taylor( exp(x), x=0, 4 );

taylor( 1/x, x=1, 3 );

taylor( 1/x + y + x^3, x=0 );

int( exp(x^3), x );

taylor(", x=0);

whattype(");

taylor(sin(sinh(x))-sinh(sin(x)),x=0,12);

taylor(f(x),x=a,4);

taylor(arccos(x),x=1,3);

3. series

L’instruction series essaie de calculer un développement de l’expression avec des fonctions qui ne sont pas seulement des puissances entières. On parle de développement de Laurent pour des puissances entières négatives, de Puiseux pour des puissances rationnelles, de Bertrand lorsqu’interviennent des puis- sances de logarithmes. Je déplore encore plus cette terminologie car ce type de développement n’est pas du tout ce que l’on appelle un développement en série.

series(arccos(x),x=1,3);

assume(x<1);series(arccos(x),x=1,3);

series(exp(x)/x, x=0, 8 );

Cette création est mise à disposition selon le Contrat

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

1 Rémy Nicolai TD1105

(2)

Informatique 2011-2012 : TD 5. MPSI B Hoche

series(x^3/(x^4+4*x-5),x=infinity);

series(x^x, x=0, 3);

s := series(sqrt(sin(x)), x=0, 4);

x=’x’;series(sin(x)^(sin(x)),x=0, 3);

series(n!,n=infinity,3);

series(sin(x)/(1+x),x=infinity);

Un équivalent d’une expression est un développement à un terme, ou encore le terme prépondérant d’un développement à plusieurs termes.

x:=’x’;series(leadterm(tan(sin(x))-sin(tan(x))),x=0);

series(leadterm(tan(sin(x))-sin(tan(x))),x=0,10);

A:=x^x-(sin(x))^sin(x);series(leadterm(A),x=0);

Unefeuille de calculest disponible.

II. Plot et animation

1. Quelques usages de plot

Vous pouvez télécharger le fichier Pplot.mw. Seules les utilisations basiques sont présentées, vous devez savoir chercher dans l’aide les innombrables options dont vous pouvez avoir besoin dans des cas spécifiques. Les options suivantes sont souvent utiles

– axes = none: pas de tracé des axes

– scaling = constrained: les unités sont les mêmes sur les deux axes. Sans cette option des affinités orthogonales sont effectuées par défaut.

1. Graphes de fonctions

Les fonctions à valeurs réelles sont définies sur le même intervalle [a, b]. On peut utiliser le nom des fonctions ou les valeurs.

plot([fonc1,fonc2,fonc3],a..b);

plot([fonc1(x),fonc2(x),fonc3(x)],x=a..b);

2. Polygones

Un polygone est une suite de points dans un plan. Chaque point est représenté par une liste de deux réels (float) et la suite de points par une liste de points.

A1 := [0,0]: A2 := [1,0] : A3 := [1,1]:

A4 := [2,3]: A5 := [1,7] : A6 := [-1,1]:

plot([A1,A2,A3,A4,A5,A6]);

3. Courbes paramétrées

Il s’agit de dessiner le support (trajectoire) de la courbe paramétrée. Une courbe paramétrées est représentée par une liste de trois objets : les deux coordonnées et le domaine du paramètre. On peut donner les fonctions ou les valeurs. On peut dessiner plusieurs trajectoires simultanément en les plaçant dans une liste.

Cp1 := [cos, sin, 0..2*Pi];

Cp2 := [3*cos(t), sin(t), t=0..2*Pi];

plot(Cp1);

plot(Cp2);

plot([Cp1,Cp2 ]);

plot([Cp1,Cp2 ], scaling = constrained);

2. Mélanger des dessins

Le principe est de calculer les dessins et de les placer dans une liste puis d’utiliser displayqui se trouve dans la bibliothèque plotsqui n’est pas chargée automati- quement. Il faut la charger avecwith(plots).

1. Simultanément

Si D1,D2,D3sont des dessins (renvoyés parplotpar exemple). On appelle display([D1,D2,D3]);

2. Successivement

Un animation consiste en un affichage successif de plusieurs dessins. La variation d’un dessin à l’autre doit être petite pour qu’on ait une impression de mouvement en la regardant.

On doit utiliserdisplayavec l’optioninsequence = true.

with(plots): # display est dans la bibliothèque plots

#listedess désigne une liste de dessins display(listedess , insequence = true);

Exemple

Cette création est mise à disposition selon le Contrat

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

2 Rémy Nicolai TD1105

(3)

Informatique 2011-2012 : TD 5. MPSI B Hoche

with(plots):

opts := scaling = constrained:

tmax :=2;

n:=25;

pas := tmax/n;

x := t -> t+t^3; xx := D(x);

y := t -> t+t^2-t^4; yy := D(y);

M := t -> [x(t),y(t)];

seqDessins := plot([M(0)]):

for i from 1 to n do

seqDessins := seqDessins , plot([seq(M(j*pas),j=0..i)],opts);

od:

listDessins := [seqDessins]:

display(listDessins,insequence = true);

# mouvement uniforme

l := t -> evalf(int(sqrt(xx(tt)^2+yy(tt)^2),tt=0..t)):

phi := x -> fsolve(l(t)=x,t):

#tabulation de la bijection réciproque T:= array(0..n):

# l(tmax) longueur totale for i from 0 to n do

T[i] := phi(l(tmax)*i/n);

od:

seqDessins := plot([M(T[0])]):

for i from 1 to n do

seqDessins := seqDessins , plot([seq(M(T[j]),j=0..i)],opts);

od:

listDessins := [seqDessins]:

display(listDessins,insequence = true);

III. Tirage sans remise avec des tableaux

Soientpetndeux entiers naturels non nuls avec p≤n.

On veut former un algorithme permettant de tirer aléatoirement et successivement pnombres distincts au hasard entre 1 etnet les placer dans un tableau. Cela revient

à tirer sans remisepboules dans une urne contenantnboules numérotées ou encore à former aléatoirement une application injective de{1,· · ·, p} dans{1,· · · , n}.

Les variablesp,n(constantes) désignent les nombrespet n.

Lorsquekdésigne un entierkentre 1 etp, l’appel de la procédure random(1..k)()

renvoie un nombre entier aléatoire entre 1 etk.

L’algorithme qui vous est demandé doit vérifier certaines contraintes.

– Vous ne devez appeler la procédurerandomquepfois.

– Vous devez utiliser un tableau auxiliaire B indexé de 1 àn. Le début de ce tableau contenant les nombres qui n’ont pas encore été tirés.

– Vous devez renvoyer un tableau indexé de 1 àp.

1. Présenter l’algorithme dans un schéma.

2. Implémenter l’algorithme dans une procéduretiragede paramètresp,n.

Cette création est mise à disposition selon le Contrat

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

3 Rémy Nicolai TD1105

Références

Documents relatifs

L’entreprise doit revoir sa politique salariale et elle pense à deux options possibles décrites dans les deux parties qui suivent. Quel sera alors le nouveau salaire d’une

L’entreprise doit revoir sa politique salariale et elle pense à deux options possibles décrites dans les deux parties qui suivent. Les deux parties

6 Sur le plan d’une maison, les portes sont repré- sentées par un segment de 1,2 cm

Quelle est la taille sur la maquette d’une pièce de 7,2 m de long dans la

et le renchérissement de la vie L'assemblée des délégués de la Société suisse des commerçants, réunie à Zurich, et dont nous avons déjà parlé, a décidé d'envoyer

En ce qui concerne les relations économi- ques de la Suisse avec l'Entente, le Conseil fédéral fait ressortir que l'exportation de den- rées alimentaires pour la Suisse sera, dans

très bien a u courant de la correspondance française et allemande ayant, déjà prati- qué plusieurs années dans maison de commerce. Préfé- rence sera accordée à person- ne

Carlin, que l'attaché commer- cial de la Légation o*e Suisse à Londres (M. Henri Maçtin) s'occupait, en collabo- ration avec diverses personnalités en vue de la Colonie