Professional Documents
Culture Documents
simplify
factor
convert
D I
L
sin cos tan a a a
exp 10^ log10 ln
+
-
*
/
^
%
inv
neg
1 2 3
4 5 6
7 8 9
0 . E
esc
abc
cmds
msg
b7
ctrl
X
coller
Menu general
Clavier scientifique
Nom de session
commande
Ligne de
Interrompre
Effacer
Aide
du niveau
Numero
Mettre/enlever
clavier
Fermer session
Configuration
Vous pouvez la redimensionner. De haut en bas cette interface fait apparatre :
un barre de menu gris cliquable : Fich, Edit, Cfg, Aide, CAS, Tableur,
Graphe, Geo,. . .
un onglet indiquant le nom de la session, ou Unnamed si la session na pas
encore t sauvegarde,
une zone de gestion de la session avec un bouton ? pour ouvrir lindex de laide
un bouton Save pour sauvegarder la session, un bouton Config: exact real ...
afchant la conguration et permettant de la modier, un bouton STOP permet-
tant dinterrompre un calcul trop long, un bouton Kbd pour faire apparaitre un
clavier ressemblant celui dune calculatrice, qui peut faciliter vos saisies, et un
bouton x pour fermer la session
une zone rectangulaire blanche numrote 1 (premire ligne de commande) dans
laquelle vous pouvez taper votre premire commande (cliquez si ncessaire pour
faire apparaitre le curseur dans cette ligne de commande) : 1+1, suivi de la
touche "Entre" ("Enter" ou "Return" selon les claviers). Le rsultat apparat
au-dessous, et une nouvelle ligne de commande souvre, numrote 2.
Vous pouvez modier laspect de linterface et sauvegarder vos modications pour les
utilisations futures (menu Cfg).
Vous navez pour linstant qu entrer des commandes dans les lignes de com-
mandes successives. Si vous utilisez la version html de ce cours, vous pouvez copier-
coller les commandes proposes depuis votre navigateur. Chaque ligne de commande
saisie est excute par la touche "Entre". Essayez par exemple dexcuter les com-
mandes suivantes.
1/3+1/4
sqrt(2)^5
solve(a*x^2+b*x+c,x)
50!
2
Toutes les commandes sont gardes en mmoire. Vous pouvez donc remonter dans
lhistorique de votre session pour modier des commandes antrieures. Essayez par
exemple de changer les commandes prcdentes en :
1/3+3/4
sqrt(5)^2
solve(a*x+b*x+c,x)
500!
Le menu Edit vous permet de prparer des sessions plus labores quune simple
succession de commandes. Vous pouvez crer des groupes de lignes de commandes
(sections), ajouter des commentaires ou fusionner des niveaux en un seul niveau.
1.2 Aide en ligne
Les commandes sont regroupes par thmes dans les menus du bandeau gris sup-
rieur : CAS, Graphic, Geo, Cmds, Phys, . . . Lorsquon slectionne une commande
dans un menu,
soit lindex de laide souvre la commande slectionne (par exemple pour les
commandes du menu CAS). Cliquez sur le bouton Details pour afcher la
page du manuel correspondant la commande dans votre navigateur.
soit une boite de dialogue souvre vous permettant de spcier les arguments de
la commande (par exemple pour tracer une courbe depuis le menu Graphic)
soit la commande est recopie dans la ligne de commande. Pour connaitre la
syntaxe de cette commande, appuyez sur le bouton ? en haut gauche, ou faites
afcher la zone de Messages (en utilisant le menu Cfg,). Vous pouvez aussi
congurer Xcas (menu Cfg puis Configuration generale puis cocher
la case Aide HTML automatique) pour que la page correspondante du ma-
nuel souvre automatiquement dans votre navigateur.
Le menu Aide contient les diffrentes formes daide possible : un guide de lutilisateur
(interface), un guide de rfrence (Manuels->Calcul formel, aide detaille sur
chaque commande), un Index (liste des commandes classes par ordre alphabtique
avec une ligne dentre permettant de se dplacer facilement) et une recherche par mots
clefs.
Si vous connaissez dj le nom dune commande et que vous dsirez vrier sa
syntaxe (par exemple factor), vous pouvez saisir le dbut du nom de commande
(disons fact) puis taper sur la touche de tabulation (situe gauche de la touche A
sur un clavier franais) ou cliquer sur le bouton ? en haut gauche. Lindex des com-
mandes apparat alors dans une fentre, positionn la premire compltion possible,
avec une aide succinte sur chaque commande. Par exemple, vous voulez factoriser un
polynme, vous supposez que le nom de commande commence par fact, vous tapez
donc fact puis la touche de tabulation, vous slectionnez la souris factor (ou un
des exemples) puis vous cliquez sur OK.
Vous pouvez aussi saisir ?factor pour avoir laide succinte en rponse. Si le nom
que vous avez saisi nest pas reconnu, des commandes proches vous sont suggres.
3
1.3 Entrer des commandes
Lexcution dune ligne se fait simplement par la touche "Entre". Si on ne souhaite
pas afcher le rsultat, on termine la ligne de commande par :; et on valide avec
"Entre". On peut diter plusieurs commandes la le avant leur excution condition
de les sparer par un point-virgule.
Au dbut, de nombreuses erreurs proviennent dune mauvaise traduction des ma-
thmatiques : Xcas ne peut pas les comprendre telles que vous les crivez. Votre cla-
vier vous permet de taper ax
2
+bx +c, mais votre ordinateur ne peut pas comprendre
que vous souhaitez lever x au carr, le multiplier par a, etc. . . Vous devez spcier
chaque opration, et la syntaxe correcte est a*x^2+b*x+c. La multiplication doit tre
note par une toile dans les commandes, mais est note par un point dans les rponses.
Nous insistons sur le fait que pour Xcas, ax est une variable dont le nom comporte
deux lettres, et pas le produit de a par x.
Oprations
+ addition
- soustraction
* mutiplication
/ division
^ puissance
Modulo quelques prcautions, lcriture des formules est assez directe. Les paren-
thses ont le sens usuel pour spcier lordre des oprations. Les crochets sont rservs
aux listes et aux indices. Les priorits entre oprations sont standard (la multiplication
est prioritaire sur laddition, la puissance sur la multiplication). Par exemple :
2*a+b retourne 2a+b
a/2*b retourne
ab
2
a/2/b retourne
a
b2
a^2*b retourne a
2
b
Dans le doute, il est toujours prudent de mettre des parenthses pour sassurer que
lordre des oprations est celui souhait.
Les commandes sont numrotes, ainsi que les rponses, mais, si vous avez modi-
une ligne de commande, celle-ci garde numro quelle avait. On peut rappeler par
ans() (answer) la rponse prcdente cest dire la rponse de la dernire commande
value.
2 Les objets du calcul formel
2.1 Les nombres
Les nombres peuvent tre exacts ou approchs. Les nombres exacts sont les constantes
prdnies, les entiers, les fractions dentiers et plus gnralement toute expression ne
contenant que des entiers et des constantes, comme sqrt(2)*e^(i*pi/3). Les
4
nombres approchs sont nots avec la notation scientique standard : partie entire sui-
vie du point de sparation et partie fractionnaire (ventuellement suivie de e et dun
exposant). Par exemple, 2 est un entier exact, 2.0 est la version approche du mme
entier ; 1/2 est un rationnel, 0.5 est la version approche du mme rationnel. Xcas
peut grer des nombres entiers en prcision arbitraire : essayez de taper 500! et comp-
tez le nombre de chiffres de la rponse.
On passe dune valeur exacte une valeur approche par evalf, on transforme
une valeur approche en un rationnel exact par exact Les calculs sont effectus en
mode exact si tous les nombres qui interviennent sont exacts. Ils sont effectus en mode
approch si un des nombres est approch. Ainsi 1.5+1 renvoie un nombre approch
alors que 3/2+1 renvoie un nombre exact.
sqrt(2)
evalf(sqrt(2))
sqrt(2)-evalf(sqrt(2))
exact(evalf(sqrt(2)))*10^9
exact(evalf(sqrt(2)*10^9))
Pour les nombres rels approchs, la prcision par dfaut est proche de 14 chiffres
signicatifs (la prcision relative est de 53 ou 45 bits pour les rels ottants norma-
liss selon les versions de Xcas). Elle peut tre augmente, en donnant le nombre de
dcimales dsir comme second argument de evalf.
evalf(sqrt(2),50)
evalf(pi,100)
On peut aussi changer la prcision par dfaut pour tous les calculs en modiant la
variable Digits.
Digits:=50
evalf(pi)
evalf(exp(pi*sqrt(163)))
La lettre i est rserve
1 et ne peut tre raffecte ; en particulier on ne peut
pas lutiliser comme indice de boucle.
(1+2*i)^2
(1+2*i)/(1-2*i)
e^(i*pi/3)
Xcas distingue linni non sign infinity (), de +infinity (+) et de -infinity
().
1/0; (1/0)^2; -(1/0)^2
Constantes prdnies
pi 3.14159265359
e e 2.71828182846
i i =
1
infinity
+infinity +
-infinity
5
2.2 Les caractres et les chanes
Une chane est parenthse par des guillemets ("). Un caractre est une chane
ayant un seul lment.
s:="azertyuiop"
size(s)
s[0]+s[3]+s[size(s)-1]
concat(s[0],concat(s[3],s[size(s)-1]))
head(s)
tail(s)
mid(s,3,2)
l:=asc(s)
ss:=char(l)
string(123)
expr(123)
expr(0123)
Chanes
asc chane->liste des codes ASCII
char liste des codes ASCII->chane
size nombre de caractres
concat ou + concatnation
mid morceau de chane
head premier caractre
tail chane sans le 1ier caractre
string nombre ou expression->chane
expr chane->nombre (base 10 ou 8) ou expression
2.3 Les variables
On dit quune variable est formelle si elle ne contient aucune valeur : toutes les
variables sont formelles tant quelles nont pas t affectes ( une valeur). Laffecta-
tion est note :=. Au dbut de la session a est formelle, elle devient affecte aprs
linstruction a:=3, a sera alors remplac par 3 dans tous les calculs qui suivent, et
a+1 renverra 4. Xcas conserve tout le contenu de votre session. Si vous voulez que la
variable a aprs lavoir affecte, soit nouveau une variable formelle, il faut la "vider"
par purge(a). Dans les exemples qui suivent, les variables utilises sont supposes
avoir t purges avant chaque suite de commandes.
Il ne faut pas confondre
le signe := qui dsigne laffectation
le signe == qui dsigne une galit boolenne : cest une opration binaire qui
retourne 1 ou 0 (1 pour true qui veut dire Vrai et 0 pour false qui veut dire Faux)
le signe = utilis pour dnir une quation.
a==b
6
a:=b
a==b
solve(a=b,a)
solve(2*a=b+1,a)
On peut faire certains types dhypothses sur une variable avec la commande assume,
par exemple assume(a>2). Une hypothse est une forme spciale daffectation, elle
efface une ventuelle valeur prcdemment affecte la variable. Lors dun calcul, la
variable nest pas remplace mais lhypothse sera utilise dans la mesure du possible,
par exemple abs(a) renverra a si on fait lhypothse a>2.
sqrt(a^2)
assume(a<0)
sqrt(a^2)
assume(n,integer)
sin(n*pi)
La fonction subst permet de remplacer une variable dans une expression par un
nombre ou une autre expression, sans affecter cette variable.
subst(a^2+1,a=1)
subst(a^2+1,a=sqrt(b-1))
a^2+1
Remarque : pour stocker une valeur dans une variable par rfrence, par exemple
pour modier une valeur dans une liste (un vecteur, une matrice), sans recrer une
nouvelle liste mais en modiant en place la liste existante, on utilise linstruction =<
au lieu de :=. Cette instruction est plus rapide que linstruction :=, car elle conomise
le temps de copie de la liste.
2.4 Les expressions
Une expression est une combinaison de nombres et de variables relis entre eux par
des oprations : par exemple x^2+2*x+c.
Lorsquon valide une commande, Xcas remplace les variables par leur valeur si
elles en ont une, et excute les oprations.
(a-2)*x^2+a*x+1
a:=2
(a-2)*x^2+a*x+1
Certaines oprations de simplication sont excutes automatiquement lors dune va-
luation :
les oprations sur les entiers et sur les fractions, y compris la mise sous forme
irrductible
les simplications triviales comme x +0 = x, x x = 0, x
1
= x. . .
quelques formes trigonomtriques : cos(x) =cos(x), cos(/4) =
2/2, tan(/4) =
1. . .
Nous verrons dans la section suivante comment obtenir plus de simplications.
7
2.5 Dvelopper et simplier
En-dehors des rgles de la section prcdente, il ny a pas de simplication syst-
matique. Il y a deux raisons cela. La premire est que les simplications non triviales
sont parfois coteuses en temps, et le choix den faire ou non est laiss lutilisateur ;
la deuxime est quil y a en gnral plusieurs manires de simplier une mme expres-
sion, selon lusage que lon veut en faire. Les principales commandes pour transformer
une expression sont les suivantes :
expand : dveloppe une expression en tenant compte uniquement de la distri-
butivit de la multiplication sur laddition et du dveloppement des puissances
entires.
normal et ratnormal : dun bon rapport temps dexcution-simplication,
elles crivent une fraction rationnelle (rapport de deux polynmes) sous forme de
fraction irrductible dveloppe ; normal tient compte des nombres algbriques
(par exemple comme sqrt(2)) mais pas ratnormal. Les deux ne tiennent
pas compte des relations entre fonctions transcendantes (par exemple comme
sin et cos).
factor : un peu plus lente que les prcdentes, elle crit une fraction sous
forme irrductible factorise.
simplify : elle essaie de se ramener des variables algbriquement indpen-
dantes avant dappliquer normal. Ceci est plus coteux en temps et "aveugle"
(on ne contrle pas les rcritures intermdiaires). Les simplications faisant in-
tervenir des extensions algbriques (par exemple des racines carres) ncessitent
parfois deux appels et/ou des hypothses (assume) pour enlever des valeurs
absolues avant dobtenir la simplication souhaite.
tsimplify essaie de se ramener des variables algbriquement indpendantes
mais sans appliquer normal ensuite.
Dans le menu Math du bandeau suprieur, les 4 sous-menus de rcriture contiennent
dautres fonctions, pour des transformations plus ou moins spcialises.
b:=sqrt(1-a^2)/sqrt(1-a)
ratnormal(b)
normal(b)
tsimplify(b)
simplify(b)
simplify(simplify(b))
assume(a<1)
simplify(b)
simplify(simplify(b))
La fonction convert permet de passer dune expression une autre quivalente, sous
un format qui est spci par le deuxime argument.
convert(exp(i*x),sincos)
convert(1/(x^4-1),partfrac)
convert(series(sin(x),x=0,6),polynom)
8
Transformations
simplify simplier
tsimplify simplier (moins puissant)
normal forme normale
ratnormal forme normale (moins puissant)
expand dvelopper
factor factoriser
assume rajout dhypothses
convert transformer en un format spci
2.6 Les fonctions
De nombreuses fonctions sont dj dnies dans Xcas, en particulier les fonctions
classiques. Les plus courantes gurent dans le tableau ci-aprs ; pour les autres, voir le
menu Math.
Fonctions classiques
abs valeur absolue
round arrondi
floor partie entire (plus grand entier )
ceil plus petit entier
abs module
arg argument
conj conjugu
sqrt racine carre
exp exponentielle
log logarithme naturel
ln logarithme naturel
log10 logarithme en base 10
sin sinus
cos cosinus
tan tangente
asin arc sinus
acos arc cosinus
atan arc tangente
sinh sinus hyperbolique
cosh cosinus hyperbolique
tanh tangente hyperbolique
asinh argument sinus hyperbolique
acosh argument cosinus hyperbolique
atanh argument tangente hyperbolique
Pour crer une nouvelle fonction, il faut la dclarer laide dune expression contenant
la variable. Par exemple lexpression x
2
1 est dnie par x^2-1. Pour la transformer
en la fonction f qui x associe x
2
1, trois possibilits existent :
f(x):= x^2-1
9
f:=x->x^2-1
f:=unapply(x^2-1,x)
f(2); f(a^2)
Si f est une fonction dune variable et E est une expression, f(E) est une autre ex-
pression. Il est essentiel de ne pas confondre fonction et expression. Si on dnit :
E:=x^2-1, alors la variable E contient lexpression x
2
1. Pour avoir la valeur de
cette expression en x = 2 il faut crire subst(E,x=2) et non E(2) car E nest pas
une fonction. Lorsquon dnit une fonction, le membre de droite de laffectation nest
pas valu. Ainsi lcriture E:=x^2-1; f(x):=E dnit la fonction f : x E car
E nest pas valu. Par contre E:= x^2-1; f:=unapply(E,x) dnit bien la
fonction f : x x
2
1 car E est valu.
On peut ajouter et multiplier des fonctions, par exemple f:=sin*exp. Pour com-
poser des fonctions, on utilise loprateur @ et pour composer plusieurs fois une fonc-
tion avec elle-mme, on utilise loprateur @@.
f:=x->x^2-1
f1:=f@sin
f2:=f@f
f3:=f@@3
f1(a)
f2(a)
f3(a)
On peut dnir des fonctions de plusieurs variables valeurs dans Rcomme f(x,y):=x+2*y
et des fonctions de plusieurs variables valeurs dans R
p
par exemple f(x,y):=(x+2*y,x-y)
2.7 Listes, squences, ensembles
Xcas distingue plusieurs sortes de collections dobjets, spars par des virgules :
les listes (entre crochets)
les squences (entre parenthses)
les ensembles (entre pourcentage-accolades)
liste:=[1,2,4,2]
sequence:=(1,2,4,2)
ensemble:=%{1,2,4,2%}
Les listes peuvent contenir des listes (cest le cas des matrices), alors que les squences
sont plates (un lment dune squence ne peut pas tre une squence). Dans un en-
semble, lordre na pas dimportance et chaque objet est unique. Il existe une autre
structure, appele table, dont nous reparlerons plus loin.
Il suft de mettre une squence entre crochets pour en faire une liste ou entre ac-
colades prcdes de % pour en faire un ensemble. On passe dune liste sa squence
associe par op, dune squence sa liste associe en la mettant entre crochets ou avec
la fonction nop. Le nombre dlments dune liste est donn par size (ou nops).
10
se:=(1,2,4,2)
li:=[se]
op(li)
nop(se)
nops(se)
%{se%}
size([se])
size(%{se%})
Pour fabriquer une liste ou une squence, on utilise des commandes ditration comme
$ ou seq (qui itrent une expression) ou makelist (qui dnit une liste laide
dune fonction).
1$5
k^2 $ (k=-2..2)
seq(k^2,k=-2..2)
seq(k^2,k,-2..2)
[k^2$(k=-2..2)]
seq(k^2,k,-2,2)
seq(k^2,k,-2,2,2)
makelist(x->x^2,-2,2)
seq(k^2,k,-2,2,2)
makelist(x->x^2,-2,2,2)
La squence vide est note NULL, la liste vide []. Pour ajouter un lment une
squence il suft dcrire la squence et lment spars par une virgule. Pour ajouter
un lment une liste on utilise append. On accde un lment dune liste ou dune
squence grce son indice mis entre crochets, le premier lment tant dindice 0.
se:=NULL; se:=se,k^2$(k=-2..2); se:=se,1
li:=[1,2]; (li:=append(li,k^2))$(k=-2..2)
li[0],li[1],li[2]
Les polynmes sont souvent dnis par une expression, mais ils peuvent aussi tre
reprsents par la liste de leurs coefcients par ordre de degr dcroissant, avec comme
dlimiteurs poly1[ et ]. Il existe aussi une reprsentation pour les polynmes plu-
sieurs variables. Les fonctions symb2poly et poly2symb permettent de passer de
la reprsentation expression la reprsentation par liste et inversement, le deuxime
argument dtermine sil sagit de polynmes en une variable (on met le nom de la
variable) ou de polynmes plusieurs variables (on met la liste des variables).
11
Squences et listes
E$(k=n..m) crer une squence
seq(E,k=n..m) crer une squence
[E$(k=n..m)] crer une liste
makelist(f,k,n,m,p) crer une liste
op(li) passer de liste squence
nop(se) passer de squence liste
nops(li) nombre dlments
size(li) nombre dlments
sum somme des lments
product produit des lments
cumSum sommes cumules des lments
apply(f,li) appliquer une fonction une liste
map(li,f) appliquer une fonction une liste
poly2symb polynme associ une liste
symb2poly coefcients dun polynme
2.8 Temps de calcul, place mmoire
Le principal problme du calcul formel est la complexit des calculs intermdiaires.
Elle se traduit la fois par le temps ncessaire lexcution des commandes et par la
place mmoire requise. Les algorithmes implments dans les fonctions de Xcas sont
performants, mais ils ne peuvent pas tre optimaux dans tous les cas. La fonction
time permet de connatre le temps dexcution dune commande (si ce temps est
trs court, Xcas excute plusieurs fois la commande pour afcher un rsultat plus
prcis). La mmoire utilise apparat dans les versions Unix dans la ligne dtat (en
rouge bas gauche). Si le temps dexcution dune commande dpasse quelques
secondes, il est possible que vous ayez commis une erreur de saisie. Nhsitez pas
interrompre lexcution (bouton orange stop en bas droite, il est conseill de faire
une sauvegarde de votre session auparavant).
3 Outils pour lAnalyse
3.1 Drives
La fonction diff permet de calculer la drive dune expression par rapport une
ou plusieurs de ses variables. Pour driver une fonction f , on peut appliquer diff
lexpression f (x), mais alors le rsultat est une expression. Si on souhaite dnir la
fonction drive, il faut utiliser function_diff.
E:=x^2-1
diff(E)
f:=unapply(E,x)
diff(f(x))
f1:=function_diff(f)
12
Il ne faut pas dnir la fonction drive par f1(x):=diff(f(x)), car x aurait dans
cette dnition deux sens incompatibles : cest dune part la variable formelle de driva-
tion et dautre part largument de la fonction f1. Dautre part, cette dnition valuerait
diff chaque appel de la fonction (car le membre de droite dune affectation nest ja-
mais valu), ce qui serait inefcace. Il faut donc soit utiliser f1:=function_diff(f),
soit f1:=unapply(diff(f(x)),x).
La fonction diff sapplique nimporte quelle combinaison de variables, et per-
met de calculer des drives partielles successives.
E:=sin(x*y)
diff(E,x)
diff(E,y)
diff(E,x,y)-diff(E,y,x)
simplify(ans())
diff(E,x$2,y$3)
Si le deuxime argument de diff est une liste, une liste de drives est retourne. Par
exemple pour calculer le gradient de sin(xy) : diff(sin(x*y),[x,y]) (on peut
aussi utiliser grad). Des commandes particulires permettent de calculer les combi-
naisons classiques de drives partielles.
Drives
diff(ex) drive dune expression
function_diff(f) drive dune fonction
diff(ex,x$n,y$m) drives partielles
grad gradient
divergence divergence
curl rotationnel
laplacian laplacien
hessian matrice hessienne
3.2 Limites et dveloppements limits
La fonction limit calcule les limites nies ou innies, quand elles existent. On
peut demander une limite gauche ou droite laide dun quatrime argument (+1
ou -1). Quand la fonction dpend dun paramtre, la limite obtenue peut dpendre des
hypothses faites, avec la fonction assume, sur ce paramtre.
limit(1/x,x,0)
limit(1/x,x,0,1)
limit(1/x,x,0,-1)
limit(a/x,x,0,1)
assume(a>0)
limit(a/x,x,0,1)
Pour les dveloppements limits, deux fonctions sont disponibles, series et taylor.
La diffrence est que lordre du dveloppement doit tre spci pour series, il est
gal 6 par dfaut pour taylor.
13
Lordre du dveloppement limit demand est utilis par Xcas en interne pour faire
ses dveloppements. En cas de simplications, lordre du dveloppement obtenu pourra
tre infrieur, il faudra alors recommencer le calcul avec un ordre plus grand. Lexpres-
sion retourne est constitue du polynme de Taylor, plus un reste dans lequel apparat
une fonction order_size qui est telle que pour tout a > 0, x
a
order_size(x) tend
vers 0 quand x tend vers 0. Pour supprimer le reste et ne garder que le polynme de
Taylor, on peut utiliser convert avec loption polynom.
taylor(1/(x^2+1),0)
taylor(1/(x^2+a^2),x=0)
series(1/(x^2+1),0,11)
series(1/(x^2+1),+infinity,11)
series(tan(x),pi/4,3)
series(sin(x)^3/((1-cos(x))*tan(x)),0,4)
series(sin(x)^3/((1-cos(x))*tan(x)),0,6)
series(tan(sin(x))-sin(tan(x)),0,13)
convert(ans(),polynom)
series(f(x),0,3)
g:=f@f; series(g(x),0,2)
Limites et dveloppements limits
limit(ex,x,a) limite en a
limit(ex,x,a,1) limite droite en a
limit(ex,x,a,-1) limite gauche en a
taylor(ex,a) dveloppement limit en a ordre 6
series(ex,a,n) dveloppement limit en a ordre n
3.3 Primitives et intgrales
La fonction int calcule une primitive dune expressionpar rapport x ou par rap-
port la variable donne en argument. Si lexpression comporte plusieurs variables,
il vaut prciser la variable dintgration. Si on ajoute deux arguments a et b aprs la
variable dintgration, on calcule lintgrale sur lintervalle [a, b]. Eventuellement les
bornes de lintgrale peuvent tre des expressions, ce qui permet de calculer des int-
grales multiples.
int(x^2-1)
int(x^2-1,x,-1,1)
int(x*y,x)
int(x*y,y,0,x)
int(int(x*y,y,0,x),x,0,1)
Pour calculer une intgrale, un logiciel de calcul formel recherche une primitive puis
lvalue entre les bornes, an dobtenir une valeur exacte. Dans certains cas, il est in-
utile de calculer une primitive, soit parce quil nen existe pas qui sexprime avec les
fonctions lmentaires, soit parce quun calcul numrique est plus adapt (par exemple
14
si le temps de calcul de la primitive est trop long, si la fonction prsente des singularits
dans lintervalle dintgration, etc. . . ). Dans ce cas, on demande une valeur approche
en utilisant evalf, ou bien on utilise directement la fonction romberg, qui est appe-
le par evalf.
int(exp(-x^2))
int(exp(-x^2),x,0,10)
evalf(int(exp(-x^2),x,0,10))
romberg(exp(-x^2),x,0,10)
ans()/sqrt(pi))
Intgrales
int(E) primitive dune expression
int(E,x,a,b) intgrale exacte
romberg(E,x,a,b) intgrale approche
3.4 Rsolution dquations
Comme pour les intgrales on distingue :
la rsolution exacte qui renvoie toutes les solutions lorsque cest possible (par
exemple pour certaines quations polynomiales ou sy ramenant)
la rsolution approche qui calcule par un algorithme itratif une valeur proche
dune des solutions.
La rsolution exacte seffectue laide de solve, dont le premier argument est une
quation. Le membre de droite est suppos nul sil nest pas prcis. Par dfaut solve
ne retourne pas les solutions complexes. Pour les obtenir, il faut activer loption Complex
partir du bouton rouge sur fond gris cas (en bas gauche). Excutez les commandes
suivantes avant et aprs avoir activ loption Complex.
solve(x^2-a*x+2,x)
solve(x^2+2,x)
solve(x^3=1,x)
Les racines exactes sont calcules pour les polynmes de degr 1 et 2 (les formules de
Cardan et Ferrari pour les degrs 3 et 4 ne sont pas utilises, car les solutions obtenues
ne sont pas facilement maniables). En degr suprieur, la fonction solve afche un
message derreur et renvoie une liste vide.
Pour les quations trigonomtriques, les solutions principales sont renvoyes. Pour
obtenir toutes les solutions, il faut activer loption All_trig_sol. Comparer les
commandes suivantes avec et sans cette option.
solve(cos(x),x)
solve(cos(x)+sin(x),x)
La fonction solve peut aussi rsoudre des systmes dquations. Le premier ar-
gument est la liste des quations, le second est la liste des variables.
solve([x^2+y-2,x+y^2-2],[x,y])
15
La fonction de rsolution approche est fsolve. Elle propose en option diffrents
algorithmes (menus Calc->Num_solve_eq et Calc->Num_solve_syst). Le
plus clbre est lalgorithme de Newton, qui a de multiples variantes. Le principe gn-
ral de tous ces algorithmes est de calculer les termes successifs dune suite qui converge
vers une solution de lquation ou du systme propos. Il faut pour cela choisir selon
les cas un point de dpart, ou un intervalle de recherche.
fsolve((x^5+2*x+1)=0,x,1,newton_solver)
newton(x^5+2*x+1,x,1.0)
newton(x^5+2*x+1,x,1+i)
newton(x^5+2*x+1,x,-1+i)
Equations
solve(eq,x) rsolution exacte dune quation
solve([eq1,eq2],[x,y]) rsolution exacte dun systme
fsolve(eq,x) rsolution approche dune quation
fsolve([eq1,eq2],[x,y]) rsolution approche dun systme
newton mthode de Newton
linsolve systme linaire
proot racines approches dun polynme
3.5 Equations diffrentielles
Comme dans les deux sections prcdentes, on distingue le calcul exact, qui nest
pas toujours possible, du calcul approch. La rsolution exacte seffectue par desolve.
Les drives de la fonction inconnue y peuvent scrire y
, y
et seconde f
de f .
En dduire les variations de f
.
2. Calculer les limites de f
en et en 3 gauche.
3. Montrer que f
:
f1:=function_diff(f):;
puis,
f1(x)
On obtient :
ln(abs(x-3))+(x+1)/(x-3)
Donc f
:
f2:=function_diff(f1):;
puis,
f2(x)
On obtient :
1/(x-3)+1/(x-3)+(x+1)*(-(1/((x-3)^2)))
puis pour simplier lcriture, on tape :
normal(f2(x))
On obtient :
31
(x-7)/(x^2-6*x+9)
ou bien pour factoriser, on tape :
factor(f2(x))
On obtient :
(x-7)/((x-3)^2)
Donc f
(x) =
x 7
(x 3)
2
Autre faon
On tape pour dnir la fonction f :
f(x):=(x+1)*ln(abs(x-3))
On tape pour calculer f
(x) :
dfx:=diff(f(x)
On obtient :
ln(abs(x-3))+(x+1)/(x-3)
Donc f
partir de dfx :
f1:=unapply(dfx,x);
On tape pour calculer f
(x) :
ddfx:=diff(dfx)
On obtient :
1/(x-3)+1/(x-3)+(x+1)*(-(1/((x-3)^2)))
ou pour avoir une criture factorise, on tape directement :
ddfx:=factor(diff(dfx))
On obtient :
(x-7)/((x-3)^2)
Donc f
(x) =
x 7
(x 3)
2
Et on tape pour dnir la fonction f
partir de ddfx :
f2:=unapply(ddfx,x);
Cette faon de faire lavantage de dnir la fonction f 2 = f
partir dune
expression simplie ou factorise.
Attention! ! ! On ne peut pas crire par exemple :
g(x) :=normal(diff(f(x))) pour dnir la fonction g = f
mais on doit
crire g :=unapply(normal(diff(f(x))),x) car sinon il y a confu-
sion entre x variable de drivation et x variable de la fonction g.
32
2. On tape pour avoir la limite de f
en :
limit(f1(x),x,-infinity)
On obtient :
+infinity
On tape pour avoir la limite de f
en 3
:
limit(f1(x),x,3,-1)
On obtient :
-infinity
3. f
() = 0.
On tape pour avoir une valeur approche de :
assume(x<3);fsolve(f1(x),x)
On obtient :
x,0.776592890991
Puis, on tape pour enlever lhypothse sur x :
purge(x)
On tape :
f1(0.7)
On obtient :
0.0937786881525
On tape :
f1(0.8)
On obtient :
-0.0297244578175
On a f 1(0.7) > 0 et f 1(0.8) < 0 donc 0.7 < < 0; 8.
4. Puisque f
sur ]3; +[ :
f1(7)
On obtient :
ln(4)+2
Le minimum de f
1
2
Lquation de la tangente au point dabscisse 0 est donc :
y = d f (0) x + f (0) cest dire y =
1
2
x +
1
2
.
ou encore on tape :
equation(tangent(plotfunc(f(x)),0),[x,y])
On obtient :
36
y=(1/-2*x+1/2)y=(1/-2*x+1/2)
4. On calcule lintgrale :
_
x
0
f (t)dt
On tape :
int(f(t),t,0,x)
On obtient :
(ln((exp(x))^2+1)*exp(x)+(-(2*x))*exp(x)+2*exp(x)-2)*
1/2/exp(x)-1/2*ln(2)
Puis on calcule : lim
x>+
_
x
0
f (t)dt, on tape :
limit((ln((exp(x))^2+1)*exp(x)+(-(2*x))*exp(x)+2*exp(x)-2)
*1/2/exp(x)-1/2*ln(2),x=+infinity)
On obtient :
-1/2*ln(2)+1
7.2 Calcul de primitives (niveau dbut universit)
1. Calculer
_
2
1
1
x
3
+1
dx
Rponse :
On tape :
int(1/(x^3+1),x,1,2)
On obtient apres simplication (en utilisant normal}
(sqrt(3)*ln(2)+pi)*1/3/sqrt(3)
Pour vrier, on tape :
partfrac(1/(1+t^3))
On obtient :
1/((t+1)*3)+(-1/3*t+2/3)/(t^2-t+1)
Puis on intgre chaque terme sparment...
2. Dcomposer, sur R, en lments simples :
t
2
1t
4
.
Calculer
_
t
2
1t
4
dt et
_
sin(x)
2
cos(2x)
dx
Rponse :
On tape :
partfrac(t^2/(1-t^4))
37
On obtient :
-1/2/(t^2+1)+1/(4*(t+1))-1/4/(t-1)
On tape :
int(-1/2/(t^2+1)+1/(4*(t+1))-1/4/(t-1),t)
ou on tape :
int(t^2/(1-t^4),t)
On obtient :
1/(-2*atan(t))+1/(4*ln(abs(t+1)))+1/(-4*ln(abs(t-1)))
On tape :
normal(int(sin(x)^2/cos(2*x),x))
On obtient :
-1/2*x-1/-4*ln(abs((tan(1/2*x))^2-2*tan(1/2*x)-1))-
1/4*ln(abs((tan(1/2*x))^2+2*tan(1/2*x)-1))
Ou on tape en linarisant avant dintgrer :
normal(int(tlin(sin(x)^2/cos(2*x))))
On obtient :
1/4*ln(abs(tan(x)+1))+1/-4*ln(abs(tan(x)-1))+1/-2*x
Ou encore on veut faire le changement de variable tan(x) = t et on tape pour
avoir lexpression en fonction de la tangente, avant dintgrer :
trigtan(texpand(sin(x)^2/cos(2x)))
On obtient :
(-((tan(x))^2))/((tan(x))^2-1)
On fait le changement de variable x =atan(t) on tape :
subst(integrate(-tan(x)^2/(tan(x)^2-1),x),x=atan(t))
ou on tape
subst(Int(-tan(x)^2/(tan(x)^2-1),x),x=atan(t))
On obtient
integrate((-(t^2))/((1+t^2)*(t^2-1)),t)
Soit, le remplacant t par tan(x) :
1/-2*atan(tan(x))+1/4*ln(abs(tan(x)+1))+1/-4*ln(abs(tan(x)-1))
38
3. Calculer
_
1
t
2
dt,
_
1
t(t
2
+1)
dt, et
_
t
2
t +1
t
4
+t
2
dt
Rponse :
On tape :
int(1/t^2,t)
On obtient :
1/(-t)
On tape :
int(1/(t*(t^2+1)),t)
On obtient :
1/-2*ln(t^2+1)+1/2*ln((abs(t))^2)
On tape :
int((t^2-t+1)/(t^2+t^4),t)
On obtient :
1/2*ln(t^2+1)-ln(abs(t))+(-t+1)/(-t)
7.3 Dvelopements limits
1. Donner un dveloppement limit lordre 7 au voisinage de x = 0 de :
sin(sinh(x)) sinh(sin(x))
Rponse :
On tape :
series(sin(sinh(x))-sinh(sin(x)),x=0,7)
On obtient :
1/-45*x^7+x^8*order_size(x)
2. Donner un dveloppement limit lordre 4 au voisinage de x = 0 de :
ln(cos(x))
exp(x +x
2
)
Rponse :
On tape :
series(ln(cos(x))/exp(x+x^2),x=0,4)
On obtient :
1/-2*x^2+1/2*x^3+1/6*x^4+x^5*order\_size(x)
La fonction order_size est telle que, pour tout > 0, x
+2y = 0
Rponse :
On tape :
desolve(x*(x^2-1)*y+2*y=0,y)
On obtient :
(c\_0*x^2)/(x^2-1)
2. Trouver les solutions de lquation diffrentielle :
x(x
2
1)y
+2y = x
2
Rponse :
On tape :
desolve(x*(x^2-1)*y+2*y=x^2,y)
On obtient :
((ln(abs(x))+c\_0)*x^2)/(x^2-1)
7.5 Les matrices
1. Soit M
a
=
_
_
2a1 a 2a1
a
2
+a2 a
2
1 a1
a
2
+a1 a
2
+a1 a
_
_
a) Pour quelles valeurs de a, M
a
est-elle inversible ?
Prciser son rang lorsquelle nest pas inversible.
b) Calculer linverse de M
2
Rponse :
On tape :
M:=[[2a-1,a,2a-1],[a^2+a-2,a^2-1,a-1],[a^2+a-1,a^2+a-1,a]]
On calcule le dterminant de M, on tape :
det(M)
On obtient :
2*a^4+-2*a^3+-2*a^2+2*a
Pour avoir linverse de M on tape :
inv(M)
40
On obtient :
1
2a
4
2a
3
2a
2
+2a
_
_
a1 2a
3
+3a+1 2a
3
+a
2
+a1
a
2
+1 2a
3
+a
2
+2a1 2a
3
a
2
2a+1
a
3
2a+1 a
3
+2a1 a
3
2a
2
+1
_
_
On tape :
solve(2a^4-2*a^3-2*a^2+2*a,a)
On obtient :
[-1,0,1]
Donc la matrice est inversible si a [1, 0, 1]
Ou on tape :
factor(2a^4-2*a^3-2*a^2+2*a)
On obtient :
2*(a+1)*a*(a-1)^2
On tape :
rank(subst(M,a,-1))
On obtient :
2
On tape :
rank(subst(M,a,0))
On obtient :
2
On tape :
rank(subst(M,a,1))
On obtient :
1
On tape :
inv(subst(M,a,2))
On obtient : A =
1
12
_
_
1 11 7
3 9 9
5 5 1
_
_
Remarque : pour viter de faire des substitutions on peut dnir la matrice M
comme une fonction de a, il faut alors crire :
M(a):={[[2a-1,a,2a-1],[a^2+a-2,a^2-1,a-1],[a^2+a-1,a^2+a-1,a]]}
41
surtout ne pas oublier { et }.
On peut alors taper : inv(M(2)).
2. Soit A =
_
_
1 1 a
1 a 1
a 1 1
_
_
Pour quelles valeurs de a, A est-elle diagonalisable ?
Rponse :
On tape :
A :=[[1,1,a],[1,a,1],[a,1,1]]
Pour avoir les valeurs propres de A on tape :
egvl(A)
On obtient :
_
_
a+1 0 0
0 a+2 0
0 0 a1
_
_
ce qui scrit :
[[-a+1,0,0],[0,a+2,0],[0,0,a-1]]
Si a = 1 il y a 3 valeurs propres distinctes a+1, a+2, a1 et
si a = 1 il y a une valeur propre double ( = 0) et une valeur propre simple
( = 3).
Puis on cherche la matrice de passage, on tape :
egv(A)
On obtient :
_
_
1 1 1
0 1 2
1 1 1
_
_
ce qui scrit :
[[1,1,1],[0,1,-2],[-1,1,1]]
les vecteurs propres sont les colonnes de cette matrice.
Ou on tape pour avoir directement les deux informations, matrice de passage et
rduite de Jordan :
jordan(A)
On obtient une liste de deux matrices [P, B] (P est la matrice de passage et B =
P
1
AP) :
_
_
_
_
1 1 1
0 1 2
1 1 1
_
_
_
_
a+1 0 0
0 a+2 0
0 0 a1
_
_
_
_
ce qui scrit :
42
[[[1,1,1],[0,1,-2],[-1,1,1]],[[-a+1,0,0],[0,a+2,0],[0,0,a-1]]]
On remarque quen faisant : a :=1 puis jordan(A)
les valeurs propres doubles sont regroupes et on obtient :
_
_
_
_
1 3 0
1 0 3
1 3 3
_
_
_
_
3 0 0
0 0 0
0 0 0
_
_
_
_
ce qui scrit :
[[[1,-3,0],[1,0,-3],[1,3,3]],[[3,0,0],[0,0,0],[0,0,0]]]
A est donc diagonalisable quelque soit a et B = P
1
AP.
43
8 Vrai ou Faux ? (dun point de vue informatique)
Exercice 8.1 Les commandes suivantes afchent la valeur exacte 2 : rpondre vrai ou
faux et pourquoi ?
1. 1+1:;
2. 3-1
3. 1.5+1/2
4. 4/2
5. sqrt(4)
6. evalf(sqrt(4))
7. 1^(1+1)+1^(1+1)
8. (1+1)^(1+1)
9. 1*1^(1+1)
10. 1+1*1^1
11. (1+1)*1^(1+1)
Exercice 8.2 Les commandes suivantes affectent la valeur exacte 2 la variable c :
rpondre vrai ou faux et pourquoi ?
1. c:=2:;
2. c:=2
3. c==2
4. c=2
5. c:=4/2
6. c:=3/1.5
7. c:=(2+2)/2
8. c:=(2.0+2)/2
9. c:=2a/a
10. c:=(2*a)/a
11. c:=2*a/a
12. c:=1:; c:=2*c
Exercice 8.3 Les commandes suivantes affectent la variable c une expression valide :
rpondre vrai ou faux et pourquoi ?
1. c:=ab
2. c:=a*b
3. c==a
4. c:= c==a
5. c:=a+(a*b))/2
44
6. c=a+a*b
7. c:=a/b
8. c->a/b
9. a/b=>c
10. c:=a/0
11. c:=2*a/a
12. c:=1: c:=2*c
Exercice 8.4 Les commandes suivantes affectent la valeur 1 b : rpondre vrai ou
faux et pourquoi ?
1. a:=1:; b=a
2. a:=1:; b:=a
3. a:=1:; b:=a:; a:=3:; b
4. a:=1:; b:="a"
5. b:=a/a
6. b:=a^0
Exercice 8.5 Les commandes suivantes retournent la valeur exacte 2 : vrai ou faux et
pourquoi ?
1. 1/2^-1
2. a:=2
3. 2*a/a
4. sqrt(4*a^2)/a
5. simplify(sqrt(4*a^2)/a)
6. sqrt(4*a^4)/(a*a)
7. simplify(sqrt(4*a^4)/(a*a))
8. expand(sqrt(4*a^4)/(a*a))
9. normal(sqrt(4*a^4)/(a*a))
10. ln(a^2)/ln(a)
11. simplify(ln(a^2)/ln(a))
12. texpand(ln(a^2)/ln(a))
13. normal(texpand(ln(a^2)/ln(a)))
14. -ln(exp(-2))
15. 1/exp(-ln(2))
16. exp2pow(1/exp(-ln(2)))
Exercice 8.6 Les commandes suivantes dnissent la fonction f qui x associe x
2
:
vrai ou faux et pourquoi ?
45
1. f(x):=x^2
2. f(a):=a^2
3. f := x^2
4. f(x):=a^2
5. f := a->a^2
6. f(x):=evalf(x^2)
7. f(x):=simplify(x^3/x)
8. f(x):=simplify(x*x*a/a)
9. E:=x^2:;f:=unapply(E,x)
10. f:=unapply(simplify(x^3/x),x)
Exercice 8.7 Les commandes suivantes dnissent la fonction f qui au couple (x, y)
associe le produit xy : vrai ou faux et pourquoi ?
1. f:=x*y
2. f:=x->x*y
3. f:=(a,b)->a*b
4. f(x,y):=x*y
5. f(x,y):=xy
6. f:=((x,y)->x)*((x,y)->y)
7. f:=(x->x)*(y->y)
8. f:=unapply(x*y,x,y)
9. E:=x*y:;f:=unapply(E,x,y)
Exercice 8.8 Les commandes suivantes dnissent la fonction f1 qui x associe 2x :
vrai ou faux et pourquoi ?
1. f(x):=x^2:; f1(x):=diff(f(x))
2. f1:=diff(x^2)
3. f1:=unapply(diff(x^2),x)
4. f(x):=x^2:; f1:=function_diff(f)
5. f(x):=x^2:; f1:=diff(f)
6. f(x):=x^2:; f1:=diff(f(x))
7. f(x):=x^2:; f1:=unapply(diff(f(x),x),x)
8. f(x):=x^2:; f1:=x->diff(f(x))
Exercice 8.9 Les commandes suivantes affectent A lexpression 2 x y : vrai ou
faux et pourquoi ?
1. A:=diff(x^2*y)
2. A:=x->diff(x^2*y)
46
3. A:=diff(x^2*y,x)
4. A:=diff(x^2*y,y)
5. A:=diff(x*y^2,y)
6. A:=normal(diff(x*y^2,y))
7. A:=normal(diff(x^2*y^2/2,x,y))
8. A:=normal(diff(diff(x^2*y^2/2,x),y))
Exercice 8.10 Les lignes de commande suivantes afchent un losange : vrai ou faux
et pourquoi ?
1. losange(1,i,pi/3)
2. losange((1,0),(0,1),pi/3)
3. losange(point(1,0),point(0,1),pi/3)
4. parallelogramme(0,1,1+i)
5. parallelogramme(0,1,1/2+i*sqrt(3)/2)
6. quadrilatere(0,1,3/2+i*sqrt(3)/2,1/2+i*sqrt(3)/2)
7. polygone(0,1,3/2+i*sqrt(3)/2,1/2+i*sqrt(3)/2)
8. polygonplot(0,1,3/2+i*sqrt(3)/2,1/2+i*sqrt(3)/2)
9. polygonplot([0,1,3/2,1/2],[0,0,sqrt(3)/2,sqrt(3)/2])
10. polygone_ouvert(0,1,3/2+i*sqrt(3)/2,1/2+i*sqrt(3)/2)
11. polygone_ouvert(0,1,3/2+i*sqrt(3)/2,1/2+i*sqrt(3)/2,0)
Exercice 8.11 Les lignes de commande suivantes afchent le cercle unit : vrai ou
faux et pourquoi ?
1. cercle(0,1)
2. arc(-1,1,2*pi)
3. arc(-1,1,pi), arc(-1,1,-pi)
4. plot(sqrt(1-x^2))
5. plot(sqrt(1-x^2)), plot(-sqrt(1-x^2))
6. plotimplicit(x^2+y^2-1,x,y)
7. plotparam(cos(t),sin(t))
8. plotparam(cos(t)+i*sin(t))
9. plotparam(cos(t)+i*sin(t),t)
10. plotparam(exp(i*t))
11. plotparam(cos(t)+i*sin(t),t,0,pi)
12. plotparam(cos(t)+i*sin(t),t,0,2*pi)
13. plotpolar(1,t)
14. plotpolar(1,t,-pi,pi)
47
15. plotpolar(1,t,0,2*pi)
Exercice 8.12 Les commandes suivantes retournent la liste [1, 2, 3, 4, 5] : vrai ou faux
et pourquoi ?
1. l:=[1,2,3,4,5]
2. l:=op([1,2,3,4,5])
3. l:=nop(1,2,3,4,5)
4. l:=seq(i,i=1..5)
5. l:=seq(j=1..5)
6. l:=seq(j,j=1..5)
7. l:=seq(j,j,1..5)
8. l:=seq(j,j,1,5)
9. l:=seq(j,j,1,5,1)
10. l:=[seq(j,j=1..5)]
11. l:=nop(seq(j,j=1..5))
12. l:=[k$k=1..5]
13. l:=[k$(k=1..5)]
14. l:=[k+1$(k=0..4)]
15. l:=[(k+1)$(k=0..4)]
16. l:=cumSum([1$5])
17. l:=sort(5,2,3,1,4)
18. l:=sort([5,2,3,1,4])
19. l:=makelist(k,1,5)
20. l:=makelist(x->x,1,5)
Exercice 8.13 Les commandes suivantes retournent la liste [1.0, 0.5, 0.25, 0.125, 0.0625] :
vrai ou faux et pourquoi ?
1. 0.5^[0,1,2,3,4]
2. 2^(-[0,1,2,3,4])
3. 2.0^(-[0,1,2,3,4])
4. 2^-evalf([0,1,2,3,4])
5. evalf(2^(-[0,1,2,3,4]))
6. seq(2^(-n),n=0..4)
7. evalf([seq(2^(-n),n=0..4)])
8. 1/evalf(2^n$(n=0..4))
9. evalf(2^n$(n=0..4))^(-1)
10. [evalf(2^n$(n=0..4))]^(-1)
48
11. evalf(nop(2^n$(n=0..4))^(-1))
12. a:=[]:; (a:=append(a,0.5^k))$(k=0..4):; a
13. makelist(k->2^(-k),0,4)
14. f:=x->2.0^(-x):; makelist(f,0,4)
Exercice 8.14 Soit l la liste [1, 0, 2, 0, 3]. Les lignes de commande suivantes retournent
lentier 10203 : vrai ou faux et pourquoi ?
1. l*10^[4,3,2,1,0]
2. l*10^[0,1,2,3,4]
3. revlist(l)*10^[0,1,2,3,4]
4. l*seq(10^n,n,4,0,-1)
5. expr(char(sum(l,48)))
6. l*nop(seq(10^n,n=(4..0)))
7. l*10^nop(j$(j=4..0))
8. l*10^(j$(j=4..0))
9. l*10^(j$(j=4..0))
10. l*nop(10^j)$(j=4..0))
Exercice 8.15 Soit n lentier 10203. Les lignes de commande suivantes retournent la
liste dentiers [1, 0, 2, 0, 3] : vrai ou faux et pourquoi ?
1. (floor(n/10^k)-floor(n/10^(k+1))*10)$(k=4..0)
2. [(floor(n/10^k)-floor(n/10^(k+1))*10)$(k=4..0)]
3. seq(iquo(n,10^k)-10*iquo(n,10^(k+1)),k=4..0)
4. nop(seq(iquo(n,10^k)-10*iquo(n,10^(k+1)),k=4..0))
5. revlist(convert(n,base,10))
6. sum(asc(string(n)),-48)
7. string(n)
8. mid(string(n),k,1)$(k=0..4)
9. [mid(string(n),k,1)$(k=0..4)]
10. [expr(mid(string(n),k,1))$(k=0..4)]
Exercice 8.16 Le polynme P=X
4
+2X
2
+3 a t affect par la commande P:=X^4+2*X^2+3.
Les lignes de commande suivantes afchent le polynme rciproque 3*X^4+2*X^2+1 :
vrai ou faux et pourquoi ?
1. poly2symb(revlist(symb2poly(P)))
2. X^4*subst(P,X,1/X)
3. normal(X^4*subst(P,X,1/X))
4. normal(subst(P,X,1/X))
5. normal(subst(P/X^4,X,1/X))
49
6. normal(X^degree(P)*subst(P,X,1/X))
7. getNum(subst(P,X,1/X))
8. f:=unapply(P,X):; part(f(1/X),1)
9. f:=unapply(P,X):; part(normal(f(1/X)),1)
9 Exercices (niveau universit)
Il y a souvent plusieurs manires dobtenir le mme rsultat en Xcas. On seffor-
cera de choisir les solutions les plus compactes.
Exercice 9.1 Vrier les identits suivantes.
1. (2
1/3
+4
1/3
)
3
6(2
1/3
+4
1/3
) = 6
2. /4 = 4arctan(1/5) arctan(1/239)
3. sin(5x) = 5sin(x) 20sin
3
(x) +15sin
5
(x)
4. (tan(x) +tan(y))cos(x)cos(y) = sin(x +y)
5. cos
6
(x) +sin
6
(x) = 13sin
2
(x)cos
2
(x)
6. ln(tan(x/2+/4)) = argsinh(tan(x))
Exercice 9.2 Transformer la fraction rationnelle
x
4
+x
3
4x
2
4x
x
4
+x
3
x
2
x
en les fractions suivantes
(x +2)(x +1)(x 2)
x
3
+x
2
x 1
,
x
4
+x
3
4x
2
4x
x(x 1)(x +1)
2
,
(x +2)(x 2)
(x 1)(x +1)
,
x
2
(x 1)(x +1)
4
1
(x 1)(x +1)
.
Exercice 9.3 Transformer la fraction rationnelle
2
x
3
yx
2
yx +y
2
x
3
yx
2
x +y
en les fractions suivantes
2
x
2
y
x
2
1
, 2
x
2
y
(x 1)(x +1)
,
2
y 1
x 1
+
y 1
x +1
, 22
y 1
x
2
1
.
50
Exercice 9.4 On considre les fonctions f dnies par
f (x) =
e
x
1 , f (x) =
1
x
1+x
2
,
f (x) =
1
1+sin(x) +cos(x)
, f (x) =
ln(x)
x(x
2
+1)
2
.
Pour chacune de ces fonctions :
1. Calculer une primitive F.
2. Calculer F
j=0
f (x
j
)(x
j+1
x
j
) .
3. Mme question avec la mthode des trapzes :
I
t
=
n1
j=0
1
2
( f (x
j
) + f (x
j+1
))(x
j+1
x
j
) .
Exercice 9.6 On considre la fonction f qui au couple (x, y) associe f (x, y) = cos(xy).
1. On pose x
0
= y
0
=/4. Dnir la fonction qui (u, v, t) associe
f (x
0
+ut, y
0
+vt) .
2. Dnir la fonction g qui t associe la drive partielle par rapport t de la
fonction prcdente (drive directionnelle).
3. Calculer le gradient de la fonction f au point (x
0
, y
0
), puis le produit scalaire de
ce gradient avec le vecteur (u, v). Donner ce rsultat en fonction de g
Exercice 9.7 On considre lquation x
3
(a1)x
2
+a
2
x a
3
= 0 comme une qua-
tion en x.
51
1. Reprsenter graphiquement la solution x en fonction de a laide de la fonction
plotimplicit.
2. Calculer les trois solutions de lquation, en utilisant rootof pour la premire,
en liminant la premire avec quo et en trouvant les deux dernires solutions en
rsolvant lquation du second degr (utiliser coeff pour calculer le discrimi-
nant de lquation).
3. Reprsenter graphiquement chacune des trois racines sur le mme graphique
avec une couleur diffrente, et pour les valeurs de a telles que ces solutions soient
relles (on pourra utiliser resultant pour trouver les valeurs de a pour les-
quelles lquation possde une racine multiple en x, ces valeurs sont les bornes
possibles des intervalles en a o chacune des racines sont relles).
4. Donner la valeur des solutions pour a = 0, 1, 2.
Exercice 9.8 On considre les limites suivantes.
lim
x0
sin(x)
x
, lim
x0
+
(sin(x))
1/x
, lim
x+
(1+1/x)
x
, lim
x+
(2
x
+3
x
)
1/x
Pour chacune dentre elles :
1. Donner sa valeur exacte.
2. Trouver une valeur de x telle que la distance de f (x) la limite soit infrieure
10
3
.
Exercice 9.9 Reprsenter les fonctions f suivantes, en choisissant lintervalle des abs-
cisses et des ordonnes, de faon obtenir la reprsentation la plus informative pos-
sible.
1. f (x) = 1/x.
2. f (x) = e
x
.
3. f (x) = 1/sin(x).
4. f (x) = x/sin(x).
5. f (x) = sin(x)/x.
Exercice 9.10 On considre la fonction f (x) = 3x
2
+1+
1
4
ln(( x)
2
).
1. Vrier que cette fonction prend des valeurs ngatives sur R
+
. Reprsenter la
fonction sur lintervalle [0, 5].
2. Dterminer > 0 tel que Xcas donne une reprsentation correcte de la fonction
sur lintervalle [ , +].
Exercice 9.11
1. Reprsenter la fonction exp(x) sur lintervalle [1, 1]. Sur ce graphique, tracer
aussi les reprsentations des polynmes de Taylor de cette fonction en x =0, aux
ordres 1, 2, 3, 4.
2. Mme question pour lintervalle [1, 2].
52
3. Reprsenter la fonction sin(x) sur lintervalle [, ]. Sur le mme graphique,
superposer les reprsentations des polynmes de Taylor de cette fonction en x =
0, aux ordres 1, 3, 5.
Exercice 9.12 Superposer les reprsentations suivantes sur le mme graphique, allant
de 0 1 en abscisse et en ordonne.
1. La premire bissectrice (y = x).
2. Le graphe de la fonction f : x 1/6+x/3+x
2
/2.
3. La tangente au graphe de la fonction f au point x = 1.
4. Un segment vertical allant de laxe des x au point dintersection de la fonction f
et de la premire bissectrice, et un segment horizontal allant de ce point dinter-
section laxe des y.
5. Les indications "point xe" et "tangente", positionnes sur le graphique comme
chanes de caractres.
Exercice 9.13 Le but de lexercice est de reprsenter sur un mme graphique des fa-
milles de fonctions. On choisira le nombre de courbes, lintervalle de reprsentation,
les chelles en x et y ainsi que le pas de discrtisation des abscisses, de faon obtenir
la reprsentation la plus informative possible.
1. Fonctions f
a
(x) = x
a
e
x
, pour a allant de 1 1.
2. Fonctions f
a
(x) = 1/(x a)
2
, pour a allant de 1 1.
3. Fonctions f
a
(x) = sin(ax), pour a allant de 0 2.
Exercice 9.14 Pour chacune des courbes paramtres suivantes, on choisira un inter-
valle de valeurs du paramtre assurant une reprsentation complte et sufsamment
lisse.
1.
_
x(t) = sin(t)
y(t) = cos
3
(t)
2.
_
x(t) = sin(4t)
y(t) = cos
3
(6t)
3.
_
x(t) = sin(132t)
y(t) = cos
3
(126t)
Exercice 9.15 Le but de lexercice est de visualiser de diffrentes manires la surface
dnie par z = f (x, y) = xy
2
. Ouvrir une fentre de gomtrie 3-d.
1. Choisir un domaine de reprsentation et les pas de discrtisation, de manire
obtenir une reprsentation informative avec plotfunc.
2. Crer un paramtre a modiable la souris avec la fonction assume. Reprsen-
ter la courbe dnie par z = f (a, y), puis faites varier le paramtre la souris.
53
3. Crer un paramtre b modiable la souris. Reprsenter la courbe dnie par
z = f (x, b), puis faites varier le paramtre la souris.
Exercice 9.16 Le but de lexercice est de visualiser un cne de diffrentes manires.
1. Reprsenter la surface dquation z = 1
_
x
2
+y
2
.
2. Reprsenter la surface paramtre dnie par :
_
_
_
x(u, v) = u cos(v)
y(u, v) = u sin(v)
z(u, v) = 1u .
3. En choisisant une valeur de a sufsamment grande, reprsenter la courbe para-
mtre dnie par :
_
_
_
x(t) = t cos(at)
y(t) = t sin(at)
z(t) = 1t .
4. Reprsenter la famille de courbes paramtres dnies par :
_
_
_
x(t) = a cos(t)
y(t) = a sin(t)
z(t) = 1a .
5. Reprsenter le mme cne en utilisant la fonction cone.
Exercice 9.17
1. Engendrer une liste l de 100 entiers au hasard entre 1 et 9.
2. Vrier que lensemble des valeurs de l est contenu dans {1, . . . , 9}.
3. Extraire de la liste l toutes les valeurs 5.
4. Pour tout k = 1, . . . , 9, compter combien de valeurs de la liste l sont gales k.
Exercice 9.18 Si x est un rel, la fraction continue lordre n de x est une liste [a
0
, . . . , a
n
]
dentiers, dont le premier terme a
0
est la partie entire de x. Pour tout n 0, a
n
est la
partie entire de linverse de la partie dcimale de a
n1
. La liste [a
0
, . . . , a
n
] est associe
au rationnel
u
n
= a
0
+
1
a
1
+
1
a
2
+
1
.
.
.
+
1
a
n
Pour x {,
2, e} et n {5, 10} :
1. Calculer [a
0
, . . . , a
n
].
2. Comparer votre rsultat avec celui que donne la fonction dfc de Xcas.
3. Calculer u
n
, et donner la valeur numrique de x u
n
.
54
Exercice 9.19 Ecrire (sans utiliser de boucle) les squences suivantes :
1. Nombres de 1 3 par pas de 0.1.
2. Nombres de 3 1 par pas de 0.1.
3. Carrs des 10 premiers entiers.
4. Nombres de la forme (1)
n
n
2
pour n = 1, . . . , 10.
5. 10 "0" suivis de 10 "1".
6. 3 "0" suivis de 3 "1", suivis de 3 "2",. . . , suivis de 3 "9".
7. "1", suivi de 1 "0", suivi de "2", suivi de 2 "0",. . . , suivi de "8", suivi de 8 zros,
suivi de "9".
8. 1 "1" suivi de 2 "2", suivis de 3 "3",. . . , suivis de 9 "9".
Exercice 9.20
1. Dnir les polynmes de degr 6 suivants.
(a) polynme dont les racines sont les entiers de 1 6.
(b) polynme dont les racines sont 0 (racine triple), 1 (racine double) et 2 (ra-
cine simple).
(c) polynme (x
2
1)
3
.
(d) polynme x
6
1.
2. Ecrire (sans utiliser la fonction companion) la matrice compagnon A associe
chacun de ces polynmes. On rappelle que la matrice compagnon associe au
polynme :
P = x
d
+a
d1
x
d1
+ +a
1
x +a
0
,
est :
A =
_
_
_
_
_
_
_
_
_
_
0 1 0 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0
0 . . . . . . 0 1
a
0
a
1
. . . a
d1
_
_
_
_
_
_
_
_
_
_
.
3. Calculer les valeurs propres de la matrice A.
4. Calculer le polynme caractristique de A.
Exercice 9.21
1. Ecrire la matrice carre A dordre 4, telle que a
j,k
=a si j =k et a
j,k
=b si j =k,
o a et b sont des variables.
2. Calculer et factoriser le polynme caractristique de A.
3. Dterminer une matrice orthogonale P telle que
t
PAP soit une matrice diagonale.
4. Utiliser la question prcdente pour dnir la fonction qui un entier n associe
la matrice A
n
.
55
5. Calculer A
k
, pour k =1, . . . , 6 en effectuant les produits matriciels, et vrier que
la fonction dnie la question prcdente donne bien le mme rsultat.
Exercice 9.22
1. Ecrire la matrice carre N dordre 6, telle que n
j,k
= 1 si k = j +1 et n
j,k
= 0 si
k = j +1.
2. Calculer N
p
, pour p = 1, . . . , 6.
3. Ecrire la matrice A = xI +N, o x est une variable.
4. Calculer A
p
, pour p = 1, . . . , 6.
5. Calculer exp(At) en fonction de x et t :
exp(At) = I +
p=1
t
p
p!
A
p
.
Exercice 9.23 Ecrire les fonctions suivantes, sans utiliser de boucle.
1. La fonction f prend en entre un entier n et deux rels a, b et retourne la matrice
A dont les termes diagonaux valent a, tous les autres termes tant gaux b.
2. La fonction g prend en entre un entier n et trois rels a, b, c et retourne la matrice
A = (a
j,k
)
j,k=1,...,n
dont les termes diagonaux sont gaux a, les termes a
j, j+1
gaux b et termes a
j+1, j
gaux c, pour j = 1, . . . , n1 (les autres termes sont
nuls).
3. La fonction H prend en entre un entier n et retourne en sortie la matrice A =
(a
j,k
)
j,k=1,...,n
dnie par a
j,k
= 1/( j +k +1) (matrice de Hilbert). Comparer le
temps dexcution de votre fonction avec celui de la fonction hilbert
4. La fonction V prend en entre un vecteur x = (x
j
)
j=1,...,n
et retourne en sor-
tie la matrice A = (a
j,k
)
j,k=1,...,n
dnie par a
j,k
= x
j1
k
(matrice de Vander-
monde). Comparer le temps dexcution de votre fonction avec celui de la fonc-
tion vandermonde
5. La fonction T prend en entre un vecteur x = (x
j
)
j=1,...,n
et retourne en sortie la
matrice A = (a
j,k
)
j,k=1,...,n
dnie par a
j,k
= x
| jk|+1
(matrice de Toeplitz).
Exercice 9.24 Ecrire les fonctions suivantes. Toutes prennent en entre une fonction f
(de R dans R), et trois valeurs x
min
, x
0
et x
max
(supposes telles que x
min
x
0
x
max
).
1. derive : Elle calcule et reprsente graphiquement la drive de f sur linter-
valle [x
min
, x
max
]. Elle retourne la une valeur de f
(x
0
).
2. tangente : Elle reprsente la fonction f sur lintervalle [x
min
, x
max
], elle super-
pose sur le mme graphique la tangente au graphe de f au point x
0
, et retourne
lquation de cette tangente comme un polynme du premier degr.
3. araignee : Elle reprsente la fonction f sur lintervalle [x
min
, x
max
], ainsi que
la droite dquation y = x (premire bissectrice). Elle calcule et retourne les 10
premiers itrs de f en x
0
(x
1
= f (x
0
), x
2
= f f (x
0
), . . .). Elle reprsente la
suite de segments, alternativement verticaux et horizontaux, permettant de visua-
liser les itrations : segments joignant (x
0
, 0), (x
0
, x
1
), (x
1
, x
1
), (x
1
, x
2
), (x
2
, x
2
),
. . . (comparer avec la fonction plotseq)
56
4. newton_graph : Elle reprsente la fonction f sur lintervalle [x
min
, x
max
]. Elle
calcule et retourne les dix premiers itrs de la suite dnie partir de x
0
par la
mthode de Newton : x
1
= x
0
f (x
0
)/f
(x
0
), x
2
= x
1
f (x
1
)/f
(x
1
) . . . Les
valeurs de la drive sont approches. La fonction reprsente sur le mme gra-
phique les segments permettant de visualiser les itrations : segments joignant
(x
0
, 0), (x
0
, f (x
0
)), (x
1
, 0), (x
1
, f (x
1
)), (x
2
, 0), (x
2
, f (x
2
)),. . . (comparer avec la
fonction newton)
Exercice 9.25 On note D le carr unit : D =]0, 1[
2
. Soit lapplication dnie sur D
par
(x, y) = (z(x, y), t(x, y)) =
_
x
1+y
,
y
1+x
_
.
1. Calculer linverse de lapplication .
2. Dterminer et reprsenter graphiquement limage par du domaine D : =
(D).
3. Soit A(x, y) la matrice jacobienne de en un point (x, y) de D, et B(z, t) la matrice
jacobienne de
1
en un point (x, y) de . Calculer ces deux matrices, vrier
que B((x, y)) et A(x, y) sont inverses lune de lautre.
4. Soit J(z, t) le dterminant de la matrice B. Calculer et simplier J(z, t).
5. Calculer
I
1
=
__
D
_
1+x +y
(1+x)(1+y)
_
3
dxdy .
6. Calculer
I
2
=
__
(1+z)(1+t)dzdt ,
et vrier que I
1
= I
2
.
57
A Table des matires et index
Table des matires
1 Pour commencer 1
1.1 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Aide en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Entrer des commandes . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Les objets du calcul formel 4
2.1 Les nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Les caractres et les chanes . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Les variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Les expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 Dvelopper et simplier . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6 Les fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.7 Listes, squences, ensembles . . . . . . . . . . . . . . . . . . . . . . 10
2.8 Temps de calcul, place mmoire . . . . . . . . . . . . . . . . . . . . 12
3 Outils pour lAnalyse 12
3.1 Drives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Limites et dveloppements limits . . . . . . . . . . . . . . . . . . . 13
3.3 Primitives et intgrales . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Rsolution dquations . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5 Equations diffrentielles . . . . . . . . . . . . . . . . . . . . . . . . 16
4 Outils pour lAlgbre 17
4.1 Arithmtique des entiers . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2 Polynmes et fractions rationnelles . . . . . . . . . . . . . . . . . . . 18
4.3 Trigonomtrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.4 Vecteurs et matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.5 Systmes linaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.6 Rduction des matrices . . . . . . . . . . . . . . . . . . . . . . . . . 23
5 Reprsentations graphiques 24
5.1 Tracs de courbes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2 Objets graphiques 2D . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3 Objets graphiques 3D . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6 Programmation 27
6.1 Le langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2 Quelques exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.3 Style de programmation . . . . . . . . . . . . . . . . . . . . . . . . . 30
58
7 Des exercices corrigs avec Xcas 31
7.1 Fonction et reprsentation graphique (niveau terminale S) . . . . . . . 31
7.1.1 Exercice 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.1.2 Exercice 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2 Calcul de primitives (niveau dbut universit) . . . . . . . . . . . . . 37
7.3 Dvelopements limits . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.4 quations diffrentielles . . . . . . . . . . . . . . . . . . . . . . . . 40
7.5 Les matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8 Vrai ou Faux ? (dun point de vue informatique) 44
9 Exercices (niveau universit) 50
A Table des matires et index 58
59
Index
abs, 9
acos, 9
acosh, 9
addition, 4
affectation, 6
afchage graphique, 24
aide en ligne, 3
ans, 4
append, 11
apply, 12
arc
cosinus, 9
sinus, 9
tangente, 9
argument
cosinus hyperbolique, 9
sinus hyperbolique, 9
tangente hyperbolique, 9
arithmtique, 17
arrondi, 9
asin, 9
asinh, 9
assume, 7
atan, 9
atanh, 9
Bezout, 18, 19
blockmatrix, 21
boucle, 28
break, 28
canonical_form, 18
caractre, 6
ceil, 9
cercle, 26
chane, 6
ClrGraph, 24
coeff, 18
color, 24
compose, 10
cone, 27
conj, 9
conjugu, 9
continue, 28
convert, 8
cos, 9
cosh, 9
cosinus, 9
hyperbolique, 9
couleur, 24
courbe
en polaires, 25
implicite, 25
paramtrique, 25
cumSum, 12
curl, 13
cyclotomic, 19
debug, 30
dcomposition en lments simples, 18
degree, 18
drive
dune expression, 12
dune fonction, 12
partielle, 13
desolve, 16
det, 21
dterminant, 21
dveloppement limit, 13
dvelopper, 8
diagonalisation, 23
diff, 12
Digits, 5
DispG, 24
divergence, 13
divergence, 13
divis, 19
division, 4
droite, 26, 27
e, 6
effacer, 24
galit, 6
egcd, 19
eigenvals, 23
eigenvects, 23
60
else, 28
ensemble, 10
quation, 6
diffrentielle, 16
rsolution, 15
equation, 26
erreur, 28
espace, 27
et, 28
evalf, 5
exact, 5
exp, 9
exp2trig, 20
expand, 8, 18
expression, 7, 10
facteurs premiers, 18, 19
factor, 8, 19
factors, 19
floor, 9
fonction, 10
applique une liste, 12
composition des, 10
dnition dune, 10
graphe dune, 24
primitive dune, 14
for, 28
fraction rationnelle, 18
fsolve, 16
function_diff, 12
Gauss-Jordan, 23
gcd, 18, 19
genpoly, 18
grad, 13
gradient, 13
halftan, 20
help, 3
hermite, 19
hessian, 13
horner, 18
hyp2exp, 20
hypothse, 7
i, 5
iabcuv, 18
idivis, 18
idn, 21
iegcd, 18
if, 28
ifactor, 18
ifactors, 18
im, 9
image, 21
infinity, 5
int, 14
intgrale, 14
inter, 26, 27
interactive_plotode, 17
interface, 1
iquo, 18
iquorem, 18
irem, 18
is_prime, 18
itration, 11
iteratif, 29
jordan, 23
ker, 21
lagrange, 19
laguerre, 19
langage
fonctionnel, 27
interprt, 30
non typ, 27
laplacian, 13
laplacien, 13
lcm, 18, 19
lcoeff, 18
legend, 26
ligne polygonale, 26, 27
limit, 13
limite, 13
droite, 13
gauche, 13
linsolve, 16, 21
liste, 10
des coefcients, 12
vide, 11
61
ln, 9
log, 9
log10, 9
logarithme
en base 10, 9
naturel, 9
makelist, 11
makemat, 21
map, 12
matrice, 20
alatoire, 21
dterminant dune, 21
hessienne, 13
identit, 21
image dune, 21
noyau dune, 21
rang dune, 21
matrix, 21
menus, 2
modulo, 17
multiplication, 4
newton, 16
nextprime, 18
nombre
approch, 4
complexe, 5
dlments, 10
exact, 4
premier, 18
non, 28
nop, 10
nops, 10
normal, 8, 18
nuage de points, 26
NULL, 11
odesolve, 16
op, 10
ou, 28
parameq, 26
parenthses, 4
partfrac, 18
partie entire, 9
partie imaginaire, 9
partie relle, 9
pcar, 23
pcoeff, 18
peval, 18
PGCD, 18, 19
pi, 6
plan, 27
plotpolar, 25
plot, 24
plotfield, 17
plotfunc, 27
plotimplicit, 25
plotode, 17
plotparam, 25, 27
pmin, 23
point, 26, 27
poly2symb, 12, 18
polygone, 26, 27
polygone_ouvert, 26, 27
polygonplot, 26, 27
polynme, 18
alatoire, 19
caractristique, 23
cyclotomique, 19
de Hermite, 19
de Lagrange, 19
de Laguerre, 19
de Tchebyshev, 19
minimal, 23
powermod, 17
PPCM, 18, 19
prcision, 5
previousprime, 18
primitive, 14
priorits, 4
product, 12
produit, 12
matriciel, 20, 21
scalaire, 21
terme terme, 21
vectoriel, 21
programmation, 27
proot, 16
propre
valeur, 23
62
vecteur, 23
ptayl, 18
puissance, 4
purge, 6
quo, 19
quotient, 18, 19
racine carre, 9
randpoly, 19
rank, 21
ranm, 21
ratnormal, 8
re, 9
rcursif, 30
rem, 19
rsolution
approche, 15
exacte, 15
reste, 18, 19
romberg, 15
rotationnel, 13
round, 9
rref, 21
seq, 11
squence, 10
vide, 11
series, 13
simplications automatiques, 7
simplier, 8
simplify, 8
simult, 21
sin, 9
sinh, 9
sinus, 9
hyperbolique, 9
size, 10
solve, 15
somme, 12
sommes cumules, 12
soustraction, 4
sphere, 27
sqrt, 5, 9
subst, 7
somme, 12
symb2poly, 12, 18
systme
dquations, 15
linaire, 21
table, 27
tan, 9
tan2sincos, 20
tangente, 9
hyperbolique, 9
tangente, 24
tanh, 9
taylor, 13
tchebyshev1, 19
tchebyshev2, 19
tcoeff, 18
tcollect, 20
temps de calcul, 12
test, 28
texpand, 20
texte, 26
time, 12
tlin, 20
trig2exp, 20
trigonomtrie, 19
trigtan, 20
tsimplify, 8
unapply, 10
valeur absolue, 9
valeurs propres, 23
valuation, 18
variable
affecte, 6
formelle, 6
vecteur, 20
vecteurs propres, 23
zoom, 24
63