Dernière version du 23.05.2008 03h40
Sommaire
1 Présentation
1.1 Téléchargement
2 Paramétrage de base
3 Calculs élémentaires
3.1 Arithmétique
4 Manipulation d'expressions algébriques ou numériques
5 Sommations
6 Expressions algébriques
7 Equations algébriques
8 Trigonométrie et nombres complexes
9 Analyse des fonctions
10 Equations différentielles
11 Algèbre linéaire
[modifier (
modifier-385-section-1.cours)]Présentation
Xcas est l'interface graphique du logiciel de mathématiques formelles GIAC.
GIAC est un logiciel de mathématiques formelles, et même plus, puisqu'il fait fonction de tableur, mais d'un tableur qui manipulerait non seulement des nombres décimaux, mais aussi des figures de géométrie et bien d'autres choses !
Il possède des fonctions spécifiques, par exemple pédagogiques, pour le lycéen et jusqu'au professeur candidat à l'Agrégation, ou pour faire de la physique, etc.
GIAC est produit par une équipe universitaire de Grenoble.
Nous ne considérerons que la fonction de logiciel de mathématiques formelles, pour laquelle GIAC est l'équivalent de Maple ou de Mathematica, qui eux sont payants et onéreux.
Xcas est l'interface graphique de GIAC.
[modifier (
modifier-385-section-2.cours)]Téléchargement
Pour le télécharger, aller à l'adresse
http://www-fourier.ujf-grenoble.fr/…/giac_fr.html
et télécharger l'installateur (Xcasinst.exe).
Ensuite, l'installer normalement sur l'ordinateur.
[modifier (
modifier-385-section-3.cours)]Paramétrage de base
1. Choisir Cfg → Mode (syntax) → Xcas.
Il existe des modes Maple, MuPAD, etc., mais c'est imprécis. On n'obtient pas exactement la syntaxe de Maple.
Aussi conseillons-nous de choisir le mode natif, où l'on a les meilleures garanties.
2. Choisir ou vérifier qu'on a bien Cfg → Cas configuration, et Integer basis 10 (numération à base décimale)
coché : radian
coché : sqrt
(on peut cocher d'autres cases, mais ne rien dé-cocher)
3. Cfg → General configuration → choisir "calcul formel"
Abordons à présent la prise en mains de Xcas :
[modifier (
modifier-385-section-4.cours)]Calculs élémentaires
1+3 <entrée> donne 4
3*4 <entrée> donne 12. Nous omettrons à partir d'ici la mention de <entrée>.
4/5 donne , mais suivi de evalf(ans()), donne 0,8.
On peut aussi taper
4./5 ce qui donne 0.8 (en effet, 4. est un nombre en virgule flottante ; GIAC répond par un résultat en virgule flottante), ou
evalf(4/5) ce qui donne 0.8
sqrt(2) donne , mais
evalf(sqrt(2)) donne 1.414..., ou
sqrt(2.) donne 1.414...
5^(1/2) donne , mais
5.^(1/2) donne 2.236...
5^(1/3) donne (soit
), mais
5.^(1/3) donne 1.7099...
sin(pi/6) donne , et à l'inverse
arcsin(1/2) donne (soit
)
ln(e) donne 1
ln(10) donne , mais
ln(10.) donne 2.30258...
exp(1) donne
e donne , mais
exp(1.) donne 2,71828...
pi donne
evalf(pi) donne 3.14159265...
[modifier (
modifier-385-section-5.cours)]Arithmétique
ifactor(2001) donne 3.23.29 (décompose en facteurs premiers)
irem(a,b) donne le quotient de la division euclidienne de a par b
iquo(a,b) donne le quotient de la division euclidienne de a par b
iquorem(a,b) donne (q,r) résultat de la division euclidienne de a par b
isprime(n) dit si n est premier (true) ou non (false)
nextprime(n) donne le prochain nombre premier après n
prevprime(n) donne le nombre premier précédant n
ithprime(n) donne le nombre premier
iegcd(a,b) donne l'identité de Bézout pour a et b ; par exemple iegcd(48,30) donne [2,-3,6], ce qui veut dire
comb(n,p) donne
binomial(n,p) donne la même chose que comb(n,p)
perm(n,p) donne
rand(n) donne un entier aléatoire tel que
rand() donne un entier aléatoire tel que
(et
pour les ordinateurs 64 bits !)
propfac fait apparaître la partie entière d'une fraction : propfac(234/71) donne
root(n,a) donne , et root(n,a.) donne une valeur en virgule flottante
gamma(n) donne la fonction Gamma d'Euler :
beta(a,b) donne la fonction Beta d'Euler :
zeta(x) donne la fonction Zeta de Riemann :
signature([3,4,5,2,0,1]) donne -1 (signature de la permutation)
perminv([1,2,0]) donne l'inverse de la permutation : [2,0,1]
[modifier (
modifier-385-section-6.cours)]Manipulation d'expressions algébriques ou numériques
expand[(x-2)*(x-3)] donne (attention, ce sont des parenthèses, pas des crochets)
factor(x^2-x-6) donne (2 + x)(-3 + x)
[modifier (
modifier-385-section-7.cours)]Sommations
sum(x,x,1,n) donne , soit après factorisation :
. Attention ! Ne pas taper sum(i,i,1,n) car i est réservé (unité imaginaire)
sum(x^2,x,1,n) donne , soit après factorisation :
[modifier (
modifier-385-section-8.cours)]Expressions algébriques
canonical_form(ax^2+bx+c) donne la forme canonique
simplify(expr) simplifie une expression, en tenant compte des identités trigonométriques, par exemple.
subst(expr(a),a=2) par exemple, substitue 2 à a dans l'expression
[modifier (
modifier-385-section-9.cours)]Equations algébriques
solve(x^2-4=0) donne [2 -2]
solve(x^2+a=0) donne
solve(exp(x)=2) donne [ln(2)]
Système d'équations solve([x+y=10,x-y=2],[x,y]) donne [6 4]
zeros(expr) donne les zéros (ou racines) d'une expression
cZeros(expr) donne les zéros complexes d'une expression
[modifier (
modifier-385-section-10.cours)]Trigonométrie et nombres complexes
convert(cos(x),exp) donne , c'est-à-dire
convert(exp(i*x),trig) donne
mais
assume(x,real) ; convert(exp(i*x),trig) donne
norm(z) donne
abs(z) donne la même chose.
conj(z) donne
evalc(z) donne z sous forme algébrique
arg(z) donne l'argument de z
cFactor factorise un polynôme en facteurs complexes : cFactor(x^2+1) donne (-i+x)(i+x)
[modifier (
modifier-385-section-11.cours)]Analyse des fonctions
f@g donne : (f@g)(x) donne
f@@3 donne
unapply(expr) transforme une expression p(x) en une fonction
f(x):=x^2*sin(x) définit la fonction
On peut aussi écrire f:x→x^2*sin(x)
diff(f(x)) donne f'(x)
int(f(x)) donne (primitive)
int(f(x),x=a..b) donne
arcLen donne la longueur d'un arc de courbe : arcLen(x^2,x,0,1) donne la longueur de larc d'équation avec
fMax(expr,x) donne le maximum d'une expression
fMin(expr,x) donne le minimum d'une expression
diff(expr,[x,y,z]) donne le triplet
diff(expr,x,y) donne
diff(expr,x,y,y) donne
[modifier (
modifier-385-section-12.cours)]Equations différentielles
desolve(y'+2*y=0) donne , ce qui signifie
desolve(y'-3*y=sin(x)) donne
ce qui n'est certes pas très simplifié, et doit s'interpréter comme
Dans la commande, on n'a même pas besoin de déclarer l'inconnue, y.
Pour la dérivée seconde, taper deux fois "prime" :
desolve(y''+4*y=0) donne bien , mais avec
complexes.
[modifier (
modifier-385-section-13.cours)]Algèbre linéaire
donne
det(M) donne -2 (c'est le déterminant)
M^{-1} donne (inverse de M)
charpoly(M,x) donne (x-1-4)x-2, soit , qui est le polynôme caractéristique de M.
eigenvals(M) donne les valeurs propres de M.
eigenvects(M) donne les vecteurs propres correspondants.
matrix(2,3,(j,k)→j+k) donne , matrice à 2 lignes et 3 colonne dont les éléments sont éléments des indices.
v:=([a,b,c]) définit le vecteur
u*v donne le produit scalaire des deux vecteurs en base orthonormale (xx'+yy'...)
cross(u,v) donne le produit vectoriel de u et v
det(u,v,w) donne le déterminant de trois vecteurs de l'espace
matrix([u,v,w]) donne
transpose(M) transpose la matrice M
concat(u,v) donne
stack(u,v) donne
si
norm(M) donne , soit
Pour un vecteur, on a aussi
norm(u) donne