TD 2 Expressions. Ensembles, listes et suites, règles de simplification

I. Expressions

Rappel
Une instruction de Maple doit être terminée soit par un ; soit par un : suivie de la touche entrée afin d'être exécutée. Dans le premier cas, il y a affichage du résultat, alors qu'il n'y en a pas dans le second.

Afin de pouvoir réutiliser les résultats des instructions de Maple dans une feuille de calcul, toutes les instructions seront nommées. Choisir un nom (mnémotechnique) avec au moins deux caractères afin d'éviter les erreurs avec les variables.

1) L'expression est un polynôme
Exemple :
pol :=
x^5-2*x^3+x-9 ;
Si on donne une autre valeur à une variable dans une instruction sans affecter l'ensemble des instructions suivantes, on utilise l'ordre
subs
subs(x=4,pol) ;

> pol:=x^5-2*x^3+x-9;

pol := x^5-2*x^3+x-9

> subs(x=4,pol) ;

891

2) L'expression est une équation
Exemple :
eq :=x^5+3*x+1=9;
Les instructions
rhs et lhs permettent d'obtenir le membre de droite et le membre de gauche de l'équation respectivement. Essayer sur l'exemple précédent.

> eq :=x^5+3*x+1=9;

eq := x^5+3*x+1 = 9

> lhs(eq); rhs(eq);

x^5+3*x+1

9

3) L'expression est une instruction
Exemple :
eqa :=solve(
x^3+2*x^2-4*x+8*I );
eqa[1] donne la première solution , eqa[2] la deuxième,…

> eqa :=solve(x^3+2*x^2-4*x+8*I);

eqa := 1/3*(-44-108*I+12*sqrt(-96+66*I))^(1/3)+16/3...
eqa := 1/3*(-44-108*I+12*sqrt(-96+66*I))^(1/3)+16/3...
eqa := 1/3*(-44-108*I+12*sqrt(-96+66*I))^(1/3)+16/3...
eqa := 1/3*(-44-108*I+12*sqrt(-96+66*I))^(1/3)+16/3...
eqa := 1/3*(-44-108*I+12*sqrt(-96+66*I))^(1/3)+16/3...

> eqa[1];eqa[2];

1/3*(-44-108*I+12*sqrt(-96+66*I))^(1/3)+16/3/(-44-1...

-1/6*(-44-108*I+12*sqrt(-96+66*I))^(1/3)-8/3*1/((-4...
-1/6*(-44-108*I+12*sqrt(-96+66*I))^(1/3)-8/3*1/((-4...

En utilisant l'instruction evalc , déterminer les racines réelle et complexes.
Donner une valeur décimale approchée en utilisant l'instruction
evalf .

> evalc(eqa[3]);

-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...
-1/6*((-44+12*sqrt(3*sqrt(377)-48))^2+(-108+12*sqrt...

> evalf(eqa[1]);evalf(eqa[2]);evalf(eqa[3]);

1.69555760488388-.736322358048634*I

-3.36305264316830-.492751795475094*I

-.33250496171560+1.22907415352373*I

L'instruction seq crée une suite à partir d'une expression qui dépend d'une variable et pour un nombre fini de valeurs de cette variable.

Exemple:

sui:=seq(x^i,i=1..5);

> sui:=seq(x^i,i=1..5);

sui := x, x^2, x^3, x^4, x^5

II. Ensembles, listes, et suites

Pour rassembler de l'information sous Maple, on dispose de quatre moyens : les suites, les ensembles, les listes. et les tableaux (pour un prochain TD).

1) Suites

Une suite est une collection d'éléments, séparés par des virgules.
Exemple:
suit1 :=y,p,o,8 ;
Pour écrire une suite définie par une règle, on utilise l'instruction seq. L'instruction
seq crée une suite à partir d'une expression qui dépend d'une variable et pour un nombre fini de valeurs de cette variable

Ex.
suit2 :=seq(y^i,i=2..8) ;
Pour définir une suite de noms, on utilise l'instruction
seq et la concaténation définie par la double barre verticale||.
suit3 :=seq(pol||i,i=0..9) ;
Pour obtenir le ième élément de la suite suit3, on tape suit3[i].
Les opérations sur les suites sont l'extraction d'une sous-suite, la réunion de deux suites
suit4 :=suit3[3..6] ;
suit5 :=suit1,suit2 ;

> suit1 :=y,p,o,8 ;

suit1 := y, p, o, 8

> suit2 :=seq(y^i,i=2..8);

suit2 := y^2, y^3, y^4, y^5, y^6, y^7, y^8

> suit3 :=seq(pol||i,i=0..9) ;

suit3 := pol0, pol1, pol2, pol3, pol4, pol5, pol6, ...

> suit4 :=suit3[3..6] ;

suit4 := pol2, pol3, pol4, pol5

> suit5 :=suit1,suit2 ;

suit5 := y, p, o, 8, y^2, y^3, y^4, y^5, y^6, y^7, ...

2) Ensembles

Un ensemble ( set ) est une collection d'éléments, séparés par des virgules, entouré par des accolades.
Exemple :
ens1:={a,5,d};ens2:={7,f,a,b};ens3:={3,y,3,f,f};
Que remarquez-vous ?

> ens1:={a,5,d};ens2:={7,f,a,b};ens3:={3,y,3,f,f};

ens1 := {5, a, d}

ens2 := {7, f, a, b}

ens3 := {3, f, y}

Les opérations sur les ensembles sont union , intersect et minus .
Faire la réunion des trois ensembles, leur intersection, la différence de ens2 à ens3 et celle de ens3 à ens2.

> ens4:=ens2 union ens3;

ens4 := {3, 7, f, a, y, b}

> ens5:=ens2 intersect ens3;

ens5 := {f}

> ens5:=ens2 minus ens3;

ens5 := {7, a, b}

3) Listes

Pour préserver l'ordre des éléments, on doit utiliser une liste qui est une collection ordonnée d'éléments, séparés par des virgules, entourée par des crochets.
Exemple
list1 :=[U,g,k,9,m,K,2] ;

Pour obtenir le ième élément de la liste list1, on tape list1[i] ou list1[-8+i] ;
Exemple :
list1[3] ;
permet d'obtenir le troisième élément de list1.

Le nombre d'éléments d'une liste est donnée par l'instruction
nops .
Retrouver avec cette instruction le nombre d'éléments de list1.

L'extraction d'une sous-liste est analogue à la règle définie sur les suites.
Ex : list1[2..5] ;

L'opération
op transforme une liste ou un ensemble en une suite.
Ex
op(list1) ;
op(ens3) ;

Tableau récapitulatif de transformation
Origine\Résultat Suite Ensemble Liste

Suite {} []
Ensemble op() [op()]
Liste op( ) {op()}

Application
Soit la suite de fonctions
f(n,x) = 2*sum(sin(Pi*m*x)/m,m = 1 .. n)/Pi

Définir une fonction de deux variables n et x en utilisant l'instruction sum . Vérifier que les fonctions ainsi créées fonctionnent correctement. (Par exemple taper f(2,y)).
Tracer le graphe (instruction plot) la fonction f(2,x) pour x entre 0 et 4.
Tracer sur un même graphe (instruction plot) les fonctions f(1,x), f(2,x),... f(8,x) sur le même intervalle. On lira au préalable attentivement la page d'aide de plot..
On peut utiliser l'instruction seq pour tracer les 8 fonctions simultanément. Tracer les fonctions de f(18,x) à f(26,x). Vers quelle fonction la suite converge-t-elle?

> list1 :=[U,g,k,9,m,K,2] ;

list1 := [U, g, k, 9, m, K, 2]

> list1[2..5];

[g, k, 9, m]

> list1[-8+1];

U

> f:=unapply(2/Pi*sum(sin((Pi*m)*x)/m,m=1..n),n,x);

f := proc (n, x) options operator, arrow; 2/Pi*sum(...

> f(2,x);

2/Pi*(sin(Pi*x)+1/2*sin(2*Pi*x))

> plot({seq(f(i,x),i=18..28)},x=0..4);

[Maple Plot]

III. Règles de simplification

Maple dispose d'une simplification automatique pour les expressions. Il est toutefois quand même nécessaire de préciser parfois le type de simplification à travers une instruction spécifique. Les instructions pour réaliser cette tâche sont expand , combine , simplify et convert .

Penser à regarder les options disponibles pour les instructions convert et simplify . Dans le cas où l'on doit développer un dénominateur

d'une fraction rationnelle, on utilise l'instruction normal (avec l'option expanded).

Le tableau suivant permet de préciser les conditions d'utilisation
Instruction Trigonométrie Exp et ln Puissances

expand cos(x+y) -> cos(x)cos(y)-sin(x)sin(y) exp(x+y) ->exp(x)exp(y) x^(y+z) -> x^y*x^z

combine cos(x)cos(y)-sin(x)sin(y) -> cos(x+y) exp(x)exp(y) -> exp(x+y) x^y*x^z -> x^(y+z)

simplify cos(x)^2+sin(x)^2 ->1 exp(x)exp(y) -> exp(x+y) x^y*x^z -> x^(y+z)

convert cos(x) -> 1*exp(I*x)/2+1/(2*exp(I*x)) exp(I*x) -> cos(x)+I*sin(x)

En utilisant les fonctions ci-dessus simplifier les expressions suivantes : (e^x+x)/(e^(2*x)+2*xe^x+x^2) , (x-2)^(3/2)/((x^2-4*x+4)^(1/4)) , 4/(2+sqrt(2))+4/(2-sqrt(2)) .

Vérfier ou montrer que tan(x+y) = (sin(2*x)+sin(2*y))/(cos(2*y)+cos(2*x)) , cos(x)^6+sin(x)^6 = 1-3*sin(x)^2*cos(x)^2 , sum(1/(1+k^2),k = 1 .. infinity) = 1*Pi*coth(Pi)/2-...
sum(1/(1+k^2),k = 1 .. infinity) = 1*Pi*coth(Pi)/2-...

> expand(cos(x+y));expand(exp(x+y));expand(x^(y+z));

cos(x)*cos(y)-sin(x)*sin(y)

exp(x)*exp(y)

x^y*x^z

> combine(cos(x)*cos(y)-sin(x)*sin(y));combine(exp(x)*exp(y));combine( x^y *x^z );

cos(x+y)

exp(x+y)

x^(y+z)

> simplify(cos(x)^2+sin(x)^2);simplify(exp(x)*exp(y));simplify(x^y*x^z);

1

exp(x+y)

x^(y+z)

> convert(cos(x),exp);convert(exp(I*x),trig);

1/2*exp(I*x)+1/2/exp(I*x)

cos(x)+I*sin(x)

> eq1:=(exp(x)+x)/(exp(2*x)+2*x*exp(x)+x^2);

eq1 := (exp(x)+x)/(exp(2*x)+2*x*exp(x)+x^2)

> eq2:=(((x-2)^(3/2)/(x^2-4*x+4)^(1/4)));

eq2 := (x-2)^(3/2)/(x^2-4*x+4)^(1/4)

> simplify(eq2,power,symbolic);

x-2

> eq3:=4/(2+sqrt(2))+4/(2-sqrt(2));

eq3 := 4*1/(2+sqrt(2))+4/(2-sqrt(2))

> normal(eq3,expanded);

8

> eq4:=simplify(expand(tan(x+y)));eq4b:=(sin(2*x)+sin(2*y))/(cos(2*y)+cos(2*x));

eq4 := (sin(x)*cos(x)+cos(y)*sin(y))/(-1+cos(y)^2+c...

eq4b := (sin(2*x)+sin(2*y))/(cos(2*y)+cos(2*x))

> (expand(eq4b-eq4));

2/(2*cos(y)^2-2+2*cos(x)^2)*sin(x)*cos(x)+2/(2*cos(...
2/(2*cos(y)^2-2+2*cos(x)^2)*sin(x)*cos(x)+2/(2*cos(...

> subs(cos(x)^4=-sin(x)^2(x)*cos(x)^2+cos(x)^2,simplify((cos(x)^6+sin(x)^6)));

1-3*sin(x)^2*cos(x)^2

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

eq4 := 1/2*I*Psi(1-I)-1/2*I*Psi(1+I)

> evalc(simplify(combine(eq4)));

(-1/2*sinh(Pi)+1/2*Pi*cosh(Pi))/sinh(Pi)

> eq5:=sum(1/(1+k^2)^3,k=1..infinity);

eq5 := -1/16*I*Psi(2,1-I)+1/16*I*Psi(2,1+I)-3/16*Ps...
eq5 := -1/16*I*Psi(2,1-I)+1/16*I*Psi(2,1+I)-3/16*Ps...

> evalc(simplify(combine(eq5)));

1/16/sinh(Pi)*(2*Pi^3*cosh(Pi)+8*sinh(Pi)-8*sinh(Pi...

>

>