2. Fonctions1. D\303\251finir une fonctionFonctions pr\303\251d\303\251finies : ce sont les fonctions usuelles sin, cos, exp, ln ...L'op\303\251rateur fl\303\250che : il permet de d\303\251finir une fonction; la syntaxe est la suivante : nom_fonction := variable -> expression de la variablerestart;f :=x-> x^2+3*sin(x);(la fl\303\250che est constitu\303\251e des signes - et >)On peut d\303\251finir des fonctions de plusieurs variables :g :=(x,y,z)->x^2+2*y+sqrt(z);On peut \303\251galement d\303\251finir des fonctions par morceaux \303\240 l'aide de la commande piecewise :f:=x -> piecewise(cond1,expr1, cond2, expr2,...,exprN);h :=x->piecewise(x<-1,-x-1,x<=1,x+1,-x^2); Pour obtenir la valeur d'une fonction en un point, on \303\251crit simplement :f(3);g(1,2,3);h(-2);2. Fonction et expressionIl est indispensable de diff\303\251rencier fonction et expression : P:=x^2+4*sin(x);P(2);La r\303\251ponse faite n'a pas de sens. L'\303\251valuation de P en une valeur x, s'obtient par la commande eval ou subs :eval(P,x=2);subs(x=2,P);P;x;Ni P, ni x n'ont \303\251t\303\251 modifi\303\251s...Transformer une fonction en une expression et inversement :La commande unapply permet de transformer une fonction en une expression : f:=unapply(P,x);L'op\303\251ration inverse s'obtient de fa\303\247on plus simple :P1:=f(t);Fonctions et expressions bool\303\251ennes :evalb(3^2=9);isprime(123);a:=true;b:=false;a or b;a and b;not a;A:=3^2=9;B:=2^3=7;A or B; A and B;not A;3. Op\303\251rations sur les fonctionsrestart; 3.1 CompositionLa composition de deux fonctions s'obtient \303\240 l'aide de l'op\303\251rateur @ (que l'on peut r\303\251it\303\251rer \303\240 souhait) : f@g;f:=x->x^3;g:=x->sin(x);h:=x->(g@f)(x);h(x);(f@@4)(x); 3.2 LimitesMaple calcule des limites d'expressions quand la variable tend vers a (fini ou infini, \303\240 gauche ou \303\240 droite) : lim(f,x=a);limit(1/(x+exp(x)),x=infinity);Limit(tan(x),x=Pi/2,right)=limit(tan(x),x=Pi/2,right);Remarque : Limit est la forme inerte de limit, elle permet d'\303\251crire le symbole limite. 3.3 D\303\251rivationLa d\303\251rivation s'obtient \303\240 l'aide la commande diff qui s'applique \303\240 des expressions et renvoie des expressions : diff(f,x);ou bien \303\240 l'aide de l'op\303\251rateur D qui s'applique \303\240 des fonctions et renvoie des fonctions : D(f);e:=x^6-sin(x); s:=x->x^3+ln(x);Diff(e,x)=diff(e,x);D(s);Pour calculer une d\303\251riv\303\251e d'ordre sup\303\251rieur d'une expression, on utilise le caract\303\250re $ :Diff(e,x$3)=diff(e,x$3);et le caract\303\250re @@ pour une fonction :(D@@3)(s);Pour les fonctions de plusieurs variables, on utilise D[i](f) qui donne la d\303\251riv\303\251e partielle de f par rapport \303\240 sa i-\303\250me variable ou bien diff(f(x,y,z),y) qui donne l'expression de la d\303\251riv\303\251e partielle de f par rapport \303\240 la variable yu:=(x,y,z)->x^3*y^4*exp(5*z);Diff(u(x,y,z),x$2,y,z)=diff(u(x,y,z),x$2,y,z);D[1,1,2,3](u);Remarque : Diff est la forme inerte de diff, elle permet d'\303\251crire le symbole d\303\251rivation. 3.4 Int\303\251grationMaple calcule des primitives \303\240 l'aide de l'op\303\251rateur int qui s'applique \303\240 des expressions et donne une expression d'une primitive :Int(e,x)=int(e,x);Pour le calcul d'une int\303\251grale, il suffit de sp\303\251cifier les bornes : int(f,a..b);Int(e,x=0..Pi)=int(e,x=0..Pi);Remarque : Int est la forme inerte de int, elle permet d'\303\251crire le symbole int\303\251gral. 3.5 Repr\303\251sentations graphiquesLa commande plot (avec \303\251ventuellement des options) permet de repr\303\251senter graphiquement une ou plusieurs fonctions :plot(cos,-Pi..Pi);plot(cos,-Pi..Pi,0..1);plot(e,x=-5..5);plot(e,x=-5..5,y=-1..3);Quelques options de plot :
* discont=true est utilis\303\251e pour tracer la courbe d'une fonction discontinue ;* scaling=constrained sp\303\251cifie un rep\303\250re orthonorm\303\251 ;* color=blue trace la courbe en bleu ; * etc.plot(floor,1..5);plot(floor,1..5,discont=true);On peut superposer plusieurs graphes sur un m\303\252me dessin \303\240 partir d'un ensemble ou d'une liste : plot({f1,f2,...,fn},x1..x2) ou plot([f1,f2,...,fn],x1..x2);plot([sin,cos,exp],-5..5,-2..8,color=[red,blue,green]);plot([seq(sin(x+k*Pi/12),k=1..6)],x=-Pi..2*Pi);
plot(sum(sin(x+k*Pi/12)/k,k=1..6),x=-Pi..2*Pi);plot([seq(sin(x+k*Pi/12),k=1..6),sum(sin(x+k*Pi/12)/k,k=1..6)],x=-Pi..2*Pi);ou \303\240 partir de l'instruction display : apr\303\250s avoir charg\303\251 le package "plots", chaque graphique est rang\303\251 dans une variable (graphe_i) :display([graphe_1,graphe_2,...,graphe_n],options);with(plots):
g1:=plot(cos(x),x=-3*Pi..3*Pi,color=black):
g2:=plot(sin(x),x=-3*Pi..3*Pi,color=red):
g3:=plot(3*cos(x)+4*sin(x),x=-3*Pi..3*Pi,color=blue):
g4:=plot(tan(x),x=-3*Pi..3*Pi,-6..6,color=green,discont=true):
display([g1,g2,g3,g4],title="Fonctions trigonom\303\251triques");g3:=plot(3*cos(x)+4*sin(x),x=-3*Pi..3*Pi,color=blue,thickness=6):
g3bis:=plot(5*cos(x-arctan(4/3)),x=-3*Pi..3*Pi,color=green,thickness=3):
display([g3,g3bis],title="Comparaison");On peut tracer des courbes param\303\251tr\303\251es. Il faut bien placer les crochets...plot([2*cos(t),sin(t)],t=-Pi..2*Pi); # 2 courbes cart\303\251siennesplot([2*cos(t),sin(t),t=-Pi..2*Pi]);
plot([2*cos(t),sin(t),t=-Pi..2*Pi],scaling=constrained);# 1 courbe param\303\251tr\303\251eTrac\303\251s de lignes bris\303\251es : la ligne bris\303\251e A1,A2,...,An se trace avec plot([[x1, y1],[x2, y2],...,[xn, yn]]);plot([[1,1],[2,2],[3,1],[4,1.5]]);Animation de courbes : animate(plot,[courbe mobile],bornes d'animation);animate(plot,[[x^2],x=0..a],a=0..10);animate(plot,[[a*x^2],x=0..1],a=0..10);