Skip to Content

Chapitre 07 : Maple en analyse

FONCTIONS NUMÉRIQUES:

   

Domaine de définition: la fonction singular permet de déterminer les singularités de certaines fonctions:

 

> restart;
    singular(tan(x));

{x = _Z1*Pi+1/2*Pi}

 

Continuité: la fonction iscont permet de déterminer la continuité de certaines fonctions.

closed signifie que l'intervalle est fermé.MAPLE travaille par défaut sur des intervalles ouverts.

 

> iscont(tan(x),x=-Pi/2..Pi/2,closed);

false

> iscont(tan(x),x=-Pi/2..Pi/2);

true

 

Image d'une réunion d'intervalles fermés , avec la fonction evalr :

> evalr((x->x^2)(INTERVAL(-1..-0.5)));

INTERVAL(.25 .. 1)

 

Extrema d'une fonction , avec les fonctions minimize et maximize :

> minimize(x^2+x-3),maximize(-x^4+x^2+1);

-13/4, 5/4

 

Fonctions définies par intervalles:
piecewise permet de définir une fonction à partir de conditions sur différents
intervalles:
piecewise (cond1,f1, cond2,f2, ..., condN,fN, f_autrement)

> f:=piecewise(x<0,exp(x),x<=4,x/4+1,2);

f := PIECEWISE([exp(x), x < 0],[1/4*x+1, x <= 4],[2...

> plot(f(x),x=-4..8);

[Maple Plot]

 

 

Limites: avec la fonction limit(expr, x=a , option)

option = left , right .

 

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

1

> limit(1/x^3,x=0);

undefined

Utilisation de la forme inerte Limit :

> Limit(1/x^3,x=0,right) = limit(1/x^3,x=0,right);

Limit(1/(x^3),x = 0,right) = infinity

 

Etude locale: avec taylor(expr , x=a , n) pour les développements limités ou de Taylor,

series(expr , x=a , n) ou asympt(expr , x , n) pour des développements asymptotiques plus

généraux. L'ordre n est facultatif et vaut 6 par défaut .

 

> taylor(sin(x),x); # a=0 par défaut

series(1*x-1/6*x^3+1/120*x^5+O(x^6),x,6)

> taylor(x^2/(x^2+1),x=infinity,10);

1-1/(x^2)+1/(x^4)-1/(x^6)+1/(x^8)+O(1/(x^10))

> series(exp(x)/x,x,9); # a=0 par défaut

series(1*x^(-1)+1+1/2*x+1/6*x^2+1/24*x^3+1/120*x^4+...

> asympt(ln(x+1/x),x,7); # toujours en plus l'infini

ln(x)+1/(x^2)-1/2*1/(x^4)+1/3/x^6+O(1/(x^7))

> asympt(Sum(1/k,k=1..n)-ln(n),n,10); # la constante d'Euler gamma

32287/55440-O(1)+1/2/n-1/12*1/(n^2)+1/120/n^4-1/252...

> evalf(gamma);

.5772156649

 

leadterm donne le terme principal d'une série:

> series(leadterm(sin(x^3)/(2*x)),x=0);

series(1/2*x^2,x)

Conversion en polynôme de Taylor:

> P:=convert(taylor(exp(x),x=0,5),polynom);

P := 1+x+1/2*x^2+1/6*x^3+1/24*x^4

 

 

Dérivation:

Pour dériver une fonction , utiliser diff(expr,v1,v2,...,vn) qui calcule la dérivée partielle de expr

par rapport aux variables v1,v2,...,vn .

 

> Diff(x/(x^2+y^2),x,y)=diff(x/(x^2+y^2),x,y); # équivaut à Diff(x/(x^2+y^2),x,y): % = value(%);

Diff(x/(x^2+y^2),x,y) = -2/(x^2+y^2)^2*y+8*x^2/(x^2...

Noter l'absence de parenthèses dans l'écriture du premier membre .

On peut utiliser l'opérateur $ pour éviter de répéter plusieurs fois une variable :

 

> Diff(x/(x^2+y^2),x$2,y) : % = value(%);

Diff(x/(x^2+y^2),`$`(x,2),y) = 24/(x^2+y^2)^3*x*y-4...

Opérateur différentiel D: D( f ) retourne la fonction dérivée première de f
Fonctions dérivées première et seconde:

> D(sin),(D@@2)(sin);

cos, -sin

> D(x->x*sin(x)-x);

proc (x) options operator, arrow; sin(x)+x*cos(x)-1...

> f:=(x,y,z)->x^2-3*x*y*z+z^4;

f := proc (x, y, z) options operator, arrow; x^2-3*...

fonction dérivée par rapport à x,y , et z respectivement :

> D[1](f);D[2](f);D[3](f);

proc (x, y, z) options operator, arrow; 2*x-3*y*z e...

proc (x, y, z) options operator, arrow; -3*x*z end ...

proc (x, y, z) options operator, arrow; -3*x*y+4*z^...

D[i,j](f) équivaut à D[i](D[j](f)) :

> D[1,2](f);

proc (x, y, z) options operator, arrow; -3*z end pr...

 

 

SUITES ET SÉRIES:

 

Suites définies par des sommes ou des produits:

 

> Sum(k^2,k=1..n) : % = factor(value(%));

Sum(k^2,k = 1 .. n) = 1/6*n*(n+1)*(2*n+1)

> Product(k/(k+1),k=1..n) : % = simplify(value(%));

Product(k/(k+1),k = 1 .. n) = 1/(n+1)

Développement asymptotique de la somme partielle d'une série:

> series(sum(1/k^2,k=1..n),n=infinity);

1/6*Pi^2-1/n+1/2/n^2-1/6*1/(n^3)+1/30/n^5+O(1/(n^6)...

 

Suites récurrentes:  

Type u(n+1) = f(u(n)) :

Exemple: u(0) = -1, u(n+1) = cos(u(n)) , calcul de u(k) , pour k = 1, 2 ,..,15.

 

> f:=x->cos(x):n:=15:u[0]:=-1:
    for k to n do u[k]:=evalf(f(u[k-1])) end do:

 

On peut représenter graphiquement la convergence de la suite en construisant une liste T formée

des points (u(0),0) , (u(0),u(1)) , (u(1),u(1)) , (u(1),u(2)) , etc...

 

> T:=array(1..4*n,[u[0],0,u[0],f(u[0])]):
    for k from 2 to 2*n-1 do
        T[2*k+1]:=T[2*k]:
        if is(k,odd) then T[2*(k+1)]:=evalf(f(T[2*k+1])) else
            T[2*(k+1)]:=evalf(T[2*k+1])
        end if
    end do:
    T:=convert(T,list):U:=NULL:
    for k to nops(T)-1 by 2 do
        U:=U,[T[k],T[k+1]]
    end do:     U:=plot([U],color=blue):G:=plot({f(x),x},x=-1.3..1.3,scaling=constrained):plots[display]({G,U},title="point fixe du cosinus",view=[-1.3..1.3,-1.3..1.3]);

[Maple Plot]

Type u(n+1) = f(u(n),v(n)), v(n+1) = g(u(n),v(n)) :

Exemple: u(0) = 1, v(0) = 4, u(n+1) = sqrt(u(n)*v(n)), v(n+1... .

 

> u[0]:=1:v[0]:=4:n:=15:
    for k to n do
        u[k]:=evalf(sqrt(u[k-1]*v[k-1])):v[k]:=(u[k-1]+v[k-1])/2
    end do:

 

Type u(n+2) = f(u(n+1),u(n)) :

Exemple: u(0) = 0, u(1) = 4, u(n+2) = sqrt(u(n)+u(n+1)) .

 

> u[0]:=0:u[1]:=4:n:=15:
    for k from 2 to n do u[k]:=evalf(sqrt(u[k-1]+u[k-2])) end do:

 

Résolution de récurrences , avec la fonction rsolve .

 

Une suite arithmétique de raison -3:

> restart:rsolve(w(n+1) = w(n)-3,w);

w(0)-3*n

Une suite géométrique avec condition initiale:

> rsolve({w(n+1)=w(n)/3,w(0)=-7},w);

-7*(1/3)^n

La suite de Fibonacci:

> rsolve({fib(n+2)=fib(n+1)+fib(n),fib(0)=0,fib(1)=1},fib);

(1-1/5*sqrt(5))*(2*1/(-1+sqrt(5)))^n/(-1+sqrt(5))+(...

 

Séries numériques:

 

Somme d'une série de Riemann convergente:

> sum(1/k^2,k=1..infinity);

1/6*Pi^2

La série harmonique est divergente:

> sum(1/k,k=1..infinity);

infinity

Calcul de la somme d'une série de fonctions

> Sum(sin(x)^k,k=1..infinity)=sum(sin(x)^k,k=1..infinity);

Sum(sin(x)^k,k = 1 .. infinity) = -sin(x)/(sin(x)-1...

 

Le package powseries contient des fonctions mettant en jeu les séries entières:

Consulter les pages d'aide de powseries pour plus de précision.

> with(powseries);

[compose, evalpow, inverse, multconst, multiply, ne...
[compose, evalpow, inverse, multconst, multiply, ne...

> sh := evalpow( sinh(x) ): tpsform(sh, x, 9);

series(1*x+1/6*x^3+1/120*x^5+1/5040*x^7+O(x^9),x,9)...

 

 

INTÉGRATION:

 

Le calcul des primitives et des intégrales se fait avec la fonction int .

Syntaxes: int(expr , x) et int(expr, x=a..b) .

 

> Int(x/(x^4+1),x)=int(x/(x^4+1),x);
    # équivaut à Int(x/(x^4+1),x) : % = value(%);

Int(x/(x^4+1),x) = 1/2*arctan(x^2)

> Int(x/(x^4+1),x=0..1) : % = value(%);

Int(x/(x^4+1),x = 0 .. 1) = 1/8*Pi

Intégrale généralisée convergente:

> Int(x/(x^4+1),x=0..infinity) : % = value(%);

Int(x/(x^4+1),x = 0 .. infinity) = 1/4*Pi

Intégrale généralisée divergente:

> Int(exp(x)/x,x=1..infinity) : % = value(%);

Int(exp(x)/x,x = 1 .. infinity) = infinity

Le package inttrans contient quelques outils pour la transformation d'intégrales.

Consulter les pages d'aide de inttrans pour plus de précision.

 

> with(inttrans);

[addtable, fourier, fouriercos, fouriersin, hankel,...
[addtable, fourier, fouriercos, fouriersin, hankel,...

La transformée de Laplace de f est définie par F(s) = Int(f(t)*exp(-s*t),t = 0 .. infinity) .

> laplace(sin(omega*t), t, s);

omega/(s^2+omega^2)

 

Quelques outils du package student :

 

> with(student);

[D, Diff, Doubleint, Int, Limit, Lineint, Product, ...
[D, Diff, Doubleint, Int, Limit, Lineint, Product, ...
[D, Diff, Doubleint, Int, Limit, Lineint, Product, ...

 

Changement de variables dans les intégrales:  changevar(eq , intégrale , u)

eq est l'équation du changement de variable de la forme f(x)=g(u) , intégrale est l'intégrale

et u la nouvelle variable d'intégration :

 

> J:=Int(t/((t^2+1)*sqrt(1-t^4)),t=0..1);

 

J := Int(t/(t^2+1)/(1-t^4)^(1/2),t = 0 .. 1)

> changevar(t^2=u,J,u):% = value(%);

Int(1/2*1/((u+1)*sqrt(1-u^2)),u = 0 .. 1) = 1/2

Intégration par parties , avec la fonction intparts(intégrale,u) , u est le facteur à dériver.

 

> J:=Int(x^2*arccos(x),x):intparts(J,arccos(x));

 

1/3*arccos(x)*x^3-Int(-1/3/(1-x^2)^(1/2)*x^3,x)

> J:=value(%);

J := 1/3*arccos(x)*x^3-1/9*x^2*sqrt(1-x^2)-2/9*sqrt...

 

METHODES D'APPROXIMATION D'INTEGRALES:

 

METHODE DES RECTANGLES: On découpe [a,b] en n intervalles de même longueur

extrémité gauche :

représentation avec leftbox(expr,x=a..b,n) , calcul avec leftsum(expr,x=a..b,n)

 

extrémité droite :

représentation avec rightbox(expr,x=a..b,n) , calcul avec rightsum(expr,x=a..b,n)

 

point médian :

représentation avec middlebox(expr,x=a..b,n) , calcul avec middlesum(expr,x=a..b,n)

 

METHODE DES TRAPEZES: calcul avec trapezoid(expr,x=a..b,n)

 

METHODE DE SIMPSON:

calcul avec simpson(expr,x=a..b,n)
, avec
n
pair.



 




Exemple:
avec f:
proc (x) options operator, arrow; exp(-x^2) end pro...



>

middlebox(exp(-x^2),x=-1..1,20);middlesum(exp(-x^2),x=-1..1,20);evalf(%);



 



 




[Maple Plot]




1/10*Sum(exp(-(-19/20+1/10*i)^2),i = 0 .. 19)




1.494261756



>

evalf(trapezoid(exp(-x^2),x=-1..1,20));




1.492421592



>

evalf(simpson(exp(-x^2),x=-1..1,20));




1.493649896



 



 




Calcul d'intégrales doubles ou triples:



 



>

Doubleint(x^3*y-x^2-y*x,x=-a..a,y=-b..b):%=value(%);




Int(Int(x^3*y-x^2-y*x,x = -a .. a),y = -b .. b) = -...



>

Tripleint(x*y*z*sin(x+y+z),x=0..Pi,y=-Pi..Pi,z=0..Pi):%=value(%);




Int(Int(Int(x*y*z*sin(x+y+z),x = 0 .. Pi),y = -Pi ....



 

ÉQUATIONS ET SYSTÈMES DIFFÉRENTIELS:

 

Equations du premier ordre: MAPLE sait résoudre directement les équations de type classique

- linéaire - avec facteur intégrant - séparable - homogène - résolue en x - de Bernoulli - de Clairaut

- de Riccati .


Équation
y ' + 3 y = exp(-x)

> restart:eq:=diff(y(x),x)+3*y(x)=exp(-x):dsolve(eq,y(x));

y(x) = (1/2*exp(2*x)+_C1)*exp(-3*x)

_C1 désigne une constante réelle arbitraire.

La même avec la condition initiale y(0) = 1.5

> dsolve({eq,y(0)=1.5},y(x));

y(x) = (1/2*exp(2*x)+1)*exp(-3*x)

Les solutions y(x) ne sont pas directement utilisables : en assignant la solution à y(x) on peut utiliser le résultat , par exemple pour représenter les courbes intégrales :

 

> assign(dsolve(eq,y(x))):y:=unapply(y(x),_C1,x);

y := proc (_C1, x) options operator, arrow; (1/2*ex...

> plot({seq(y(_C1,x),_C1=-3..3)},x=-5..5,y=-20..20);

[Maple Plot]

On peut préciser des options de résolution : explicit (pour tenter d'exprimer la solution comme

fonction explicite de la variable) , series (chercher les solutions sous forme de séries)

 

> eq:={diff(z(x),x)+z(x)*cos(x)=1,z(0)=1}:
    dsolve(eq,z(x));dsolve(eq,z(x),series);

z(x) = exp(-sin(x))*Int(exp(sin(u)),u = 0 .. x)+exp...

z(x) = series(1+1/6*x^3-1/24*x^4+O(x^6),x,6)


La fonction
odeplot du package plots permet de représenter les solutions d'une équation différentielle:

 

> with(plots,odeplot):
    p:= dsolve({D(z)(x) = z(x),z(0)=1}, z(x),type=numeric): odeplot(p,[x,z(x)],-2..2,title="Fonction exponentielle");

[Maple Plot]

 

Equations du second ordre: MAPLE sait résoudre directement les équations de type classique

- linéaire - d'Euler - de Bessel .


Équation
y " + y ' + y = t

> restart:eq2:=diff(y(t),t$2)+diff(y(t),t)+y(t)=t;

eq2 := diff(y(t),`$`(t,2))+diff(y(t),t)+y(t) = t

> dsolve(eq2,y(t));

y(t) = exp(-1/2*t)*sin(1/2*sqrt(3)*t)*_C2+exp(-1/2*...

La même avec conditions initiales:

> dsolve({eq2,y(0)=0,D(y)(0)=-1},y(t));

y(t) = -exp(-1/2*t)*sin(1/2*sqrt(3)*t)*sqrt(3)+exp(...

Les options de résolution sont les mêmes qu'à l'ordre 1.

 

Systèmes différentiels:

 

Exemple: résoudre x ' =x- 2 y , y ' = 2 x+ 3 y . Représenter la solution vérifiant x (0) = 0 et y( 0) = 1 .

 

> restart:sys:=diff(x(t),t)=x(t)-2*y(t),diff(y(t),t)=2*x(t)+3*y(t):
    dsolve({sys},{x(t),y(t)});

{x(t) = exp(2*t)*(_C1*sin(sqrt(3)*t)+_C2*cos(sqrt(3...
{x(t) = exp(2*t)*(_C1*sin(sqrt(3)*t)+_C2*cos(sqrt(3...

> p:=dsolve({sys,x(0)=0,y(0)=1},{x(t),y(t)},numeric):
    with(plots):odeplot(p,[[t,x(t)],[t,y(t)]],-1..2);

[Maple Plot]

Résolution d'équations aux dérivées partielles:

 

> edp:=y*diff(U(x,y),x)+x*diff(U(x,y),y)=0;

edp := y*diff(U(x,y),x)+x*diff(U(x,y),y) = 0

> pdsolve(edp,U(x,y) );

U(x,y) = _F1(-x^2+y^2)

_F1 désigne une fonction arbitraire de classe C1 de la variable -x^2+y^2 .

 


 

Travail dirigé 7:  

Soit f la fonction définie pour tout réel x >0 par f(x) = x^(x/(1-x)) .

 

1° Etablir les singularités de la fonction f et vérifier sa continuité.

 

2° Etudier les limites de f aux bornes des intervalles composant Df.

Quelle est l'asymptote de la courbe Cf de f ?

 

3° Calculer f '( x ) et étudier son signe ( on aura recours à une fonction auxiliaire g ).

 

4° Représenter la courbe Cf.

 

5° Etudier la dérivabilité du prolongement par continuité de f aux points 0 et 1.

 

 

 

 


haut de cette page



MicroMaths - Abderrahim Bourguig - Tous droits réservés