Apprendre Maple Maple en analyse

 
  Page d'accueilPage d'accueil   RechercherRechercher   Forum de discussionForum de discussion   ContactContact   SommaireSommaire 
  Cours MapleCours Maple   Travaux dirigésTravaux dirigés   Thèmes d'activitésThèmes d'activités   Thèmes d'activitésMaplets
Ecran MapleEcran Maple  TéléchargementTéléchargement  BibliographieBibliographie  LiensLiens  

 

 

Page d'accueil   Cours Maple   << Chapitre précédent   Chapitre suivant >>


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


©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.