• Aucun résultat trouvé

ROGRAMMATIONETTRAC ESDEGRAPHES ´ SESSION2P

N/A
N/A
Protected

Academic year: 2022

Partager "ROGRAMMATIONETTRAC ESDEGRAPHES ´ SESSION2P"

Copied!
3
0
0

Texte intégral

(1)

LICENCEMATH ´EMATIQUES 2 `EME ANNEE´ IS4 – 2005 – 2006

SESSION 2

P

ROGRAMMATION ET TRACES DE GRAPHES

´

1. PROGRAMMATION

1.1. PROCEDURES´ .

On a d´ej`a vu dans la section consacr´ee aux fonctions la syntaxe la plus simple d’une proc´edure. Plus pr´ecis´ement, la syntaxe g´en´erale est la suivante :

nomproc:=proc(arg1::type1,arg2::type2,...,argn::typen) local var1:type1,var2:type2,...,varn:typen;

global Var1,Var2,...,Varn;

(suite d’op´erations) end;

o`uarg1,. . .argnsont les arguments d’appel de la proc´edure,var1, . . . ,varnsont les variables locales `a la proc´edure etVar1,. . . ,Varnsont les variables globales provenant de calculs ant´erieurs. Le typage des arguments et des variables est facultatif. En effet, Maple d´etermine automatiquement le type des variables. En ce qui concerne le typage des arguments, il peut ˆetre utile de le pr´eciser dans certains cas.

Le r´esultat de l’appel d’une proc´edure est le dernier r´esultat calcul´e. La commande return(expr) permet aussi le renvoi du r´esultat souhait´e dans une proc´edure.

1.2. BOUCLES.

On a d´ej`a rencontr´e la structure d’une bouclefor. Sa construction est : forifromdebuttofindocommandeod;

Les boucleswhilese construisent de la mˆeme mani`ere. Quant aux bouclesif, leur syntaxe est :

ifcondition1thencommande1elifcondition2thencommande2elsecommande3fi;

Les commandeselifetelsesont facultatives (on peut placer autant de commandeselifque n´ecessaire).

EXERCICE 1.

(1) D´eterminer ce que fait la proc´edure suivante : somme:=proc(n)

local i,resultat;

if n<0 then

print(‘Le calcul est impossible‘) else

resultat:=0;

for i from 1 to n do resultat:=resultat+i; od;

fi;

end;

(2) Entrer les instructions suivantes et expliquer les r´eponses deMaple:

somme(5); somme(4.5); somme(-3); somme(bonjour);

1

(2)

2

(3) Remplacer la premi`ere ligne du programme parsomme:=proc(n::integer)et taper les commandes de la question 1. Observer les diff´erences dans les r´eponses deMapleet les expliquer.

1.3. R ´ECURSIVITE´.

On dit qu’une proc´edure est r´ecursive si elle s’appelle elle-mˆeme. Par exemple, si l’on veut calculer la factorielle d’un entier positifn, on peut taper la proc´edure suivante :

> factorielle:=proc(n::integer) if n=0 then 1 else n*factorielle(n-1) fi end;

EXERCICE 2.Calculer la factorielle des 10 premiers entiers naturels.

EXERCICE 3. (Suite de Fibonacci)

Soit la suite(Fn)n∈Nd´efinie parF0=F1=1 etFn=Fn−1+Fn−2∀n≥2.

(1) ´Ecrire une proc´edure r´ecursive qui calcule les termes de cette suite. Calculer les 20 premiers termes de la suite de Fibonacci.

(2) Ajouter la commandeoption remember;avant la boucleifet recalculer les 20 premiers termes de la suite de Fibonacci. Observer la diff´erence de temps de calcul.

(3) ´Ecrire une fonction qui calculeFnen se servant de la formule de BinetFn= (1+√

5)n+1−(1−√ 5)n+1 2n+1

5 pour

n∈Net calculer les 20 premiers termes.

EXERCICE 4. (algorithme d’exponentiation rapide) L’algorithme suivant r´ealise le calcul dexn plus rapidement que par le calcul usuelx×x×. . .×x

| {z }

nfois

: a = x, c = n, p = 1 tant que c > 0 faire

si c impair alors p = p*a

finsi

c = c div 2 a = a*a finfaire

Traduire l’algorithme d’exponentiation rapide en langageMaple. Calculer les 20 premi`eres puissances de 3 `a l’aide de cette proc´edure. Indications :

(1) Pour le test de parit´e dec, on utilisera la commandec mod 2qui retourne le reste de la division euclidienne decpar 2.

(2) Pour le calcul de c div 2, on utilisera la commande iquo(c,2) qui retourne le quotient de la division euclidienne decpar 2.

2. TRACES DE GRAPHES LE PLAN´ : y= f(x) 2.1. FONCTIONS SIMPLES.

On peut d´efinir le graphe `a repr´esenter soit par une expression, soit par une fonction ; par exemple :

> E1:=7*sin(x)+sin(7*x): plot(E1,x=-1..10);

> E2:=x->7*sin(x)+sin(7*x): plot(E2(x), x=-1..10);

> f:=t->(t-1)ˆ3+t/10000: plot(f(t),t=0..3);

Observer les effets quand on change la variable ou lorsque l’on ne sp´ecifie pas la variable :

> plot(f(a),a=5/10..15/10); plot(f,0..2);

> plot(E1,t=-1..10); plot(E1,-1..10);

On peut aussi limiter les ordonn´ees :

(3)

3

> plot(f,0.9..1.1,0..1/5000);

> plot(E,x=3..4,y=-3.4..-2.8);

Remarquer que ”y” est juste un label qui apparaˆıt sur le graphe. On peut le remplacer par autre chose.

EXERCICE 5.

(1) Repr´esenter la fonction f(x) =x2−3 sur[−4,4].

(2) Repr´esenter le polynˆomeP(x) =315x4−234x3−29x2+36x−6 sur[−2,2]. En d´eduire le nombre de solutions deP(x) =0 et deP(x) =−2.

2.2. AUTRES FONCTIONS.

On peut repr´esenter des fonctions avec des discontinuit´es, ou d´efinies par morceaux (commandepiecewise) :

> f:=x->piecewise(x<1,xˆ2,x>=1,1+1/x): plot(f,-1..2,0..3);

> plot(f,-1..2,0..3,discont=true);

On peut aussi d´efinir :

> g:=x->if x<-1 then -sqrt(-(1+x)) elif x<1 then sqrt(1-xˆ2) else Pi-arccos(x-2)

fi;

>plot(g,-3..3,-3..2,scaling=constrained);

On utilisescaling=constrainedpour un rep`ere orthonorm´e.Attention :la commandeplot(g(x),x=-3..3) ne convient pas !

EXERCICE 6.Repr´esenter les fonctions f1(x) = 1

x−1 sur[−2,2], f2(x) =tan(x)sur[−2π,2π], f3(x) =1+exp −1

√x

six>0 et f3(x) =1 six≤0, sur[−100,5000]puis sur[−1/10,1/10], 2.3. TRACES SIMULTAN´ ES´ .

On peut repr´esenter plusieurs fonctions sur un mˆeme rep`ere au moyen d’une liste (entre [...]) :

> f:=piecewise(x<0,cos(x),x>=0,1+xˆ2): df:=diff(f,x): ddf:=diff(f,x,x):

> plot([f,df,ddf],x=-2..2,discont=true,color=[red,green,navy]);

Une autre m´ethode consiste `a placer les graphes un `a un dans des variables et `a les afficher avec la commandeplots[display]:

> a:=plot(sqrt(x),x=-6..6,color=blue): b:=plot(ln(x),x=-7..7,color=red):

> c:=plot(arctan(x),x=-5..5,color=green):

> plots[display](a,b,c,view=[-4..4,-3..3],scaling=constrained);

EXERCICE 7.

(1) Soit fp(x) = 2 arctan(p2x)

π . En utilisant la commandeseq, tracer fp(x)pourp=1, . . . ,10 en bleu sur un mˆeme rep`ere avecx∈[−1,1].

(2) Tracer les fonctions f(x) =x2−1 etg(x) =sin(x)sur un mˆeme rep`ere avec deux couleurs diff´erentes.

(3) Tracer la famille de courbesy=e−(nx)2 pourn=1, . . . ,10 (quelle est la ”courbe limite” lorsquen→∞?).

(4) Tracer la courbe y=cos(x) et la famille de courbes y=

n

k=0

(−x2)k

(2k)! , n∈ {1, . . . ,6} sur un mˆeme rep`ere or- thonorm´e pour(x,y)∈[−4π,4π]×[−9,9]avec les couleurs black, navy, blue, green, yellow, coral, red.

(5) On consid`ere la fonction f(x) =exp

−x2 2

. Calculer f0et f00. En d´eduire les extremum et les points d’inflexion.

Tracer la fonction f et les tangents aux extremum et aux points d’inflexion sur un mˆeme rep`ere.

Références

Documents relatifs

Parmi les achats en produits ali- mentaires consommés à domicile, les dépenses des ménages les plus importantes sont en viandes (21 %) puis en fruits et légumes (15

[r]

Faire ensuite afficher le r´ esultat dans la fenˆ etre output, sachant que la proc´ edure sort est encore analogue, en ce qui concerne la gestion des tables, aux proc´ edures rank

Soit le triangle ABC inscrit dans Γ 0 , et dont les cot´ es sont, dans l’ordre des longueurs croissantes : AC, BC et AB.. ICJB est inscrit dans le cercle \

Le r´ esultat ne d´ epend pas de la position des points P,Q et R sur leurs cˆ ot´

En alg` ebre lin´ eaire, une matrice de Vandermonde est une matrice avec une progression g´ eom´ etrique dans

On appelle alors Y la variable al´ eatoire qui, ` a tout lot de 50 fioles, associe le nombre de fioles d´ efectueuses.. On assimile les pr´ el` evements de 50 fioles ` a des tirages

Q6 Au moyen d’une int´egration par parties soigneusement justifi´ ee, exprimez J n+2 en fonction de