L2- mat231 TP de maths 2009/10
Ce document propose un petit guide de référence de Xcas, puis des énoncés de TP pour
6 séances de 1h30 :
1. TP1 : apprentissage de xcas
2. TP2 : écriture sous forme matricielle des problemes d’algebre lineaire)
3. TP3,4 : programmation du pivot de Gauss et applications : inverse, base du
noyau/de l’image,
4. TP5 : polynome minimal et recherche des espaces propres
5. TP6 : codes correcteurs (peut etre donné sous forme de mini-projets?)
1 Premiers pas avec Xcas
Pour télécharger Xcas, allez sur le site
http://www-fourier.ujf-grenoble.fr/~parisse/install_fr.html
Pour traiter les exemples, il est conseillé d’ouvrir Xcas :
Sous Windows en installation locale, on clique sur l’icone xcasfr du bureau.
Sous Linux avec Gnome, on clique sur Xcas du menu Education. Sinon, ouvrir
un terminal et taper xcas &.
sur Mac, cliquez sur Xcas dans le menu Applications du Finder.
Lors de la première utilisation, choisissez Xcas lorsqu’on vous demande de choisir
une syntaxe (sauf si vous connaissez le langage Maple). Nous donnons ici seulement
le minimum de l’interface à connaitre pour commencer à programmer. On consultera
plutot le manuel Débuter en calcul formel ou les autres manuels (menu Aide) pour
apprendre à utiliser les fonctionnalités de Xcas en calcul formel, géométrie, tableur,
etc..L’interface apparaît comme suit au lancement de Xcas.
Fich Edit Cfg Aide CAS Tableur Graphe Geo Prg Expression Cmds Phys Scolaire Tortue
1
? Save
Config : exact real RAD 12 xcas 12.512M
STOP Kbd X
Unnamed
x y
z t "({}[],;
:=| ) i π
simplify
factor
convert
D I
Σ
Lsin cos tana a a
exp
10^
log10ln
+
-
*
/
^
%
inv
neg 1 2 3
4 5 6
7 8 9
0 . E
esc
abc
cmds
msg
b7
ctrl
X
coller
1
Vous pouvez la redimensionner. De haut en bas cette interface fait apparaître :
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 n’a pas
encore été sauvegardée,
une zone de gestion de la session avec un bouton ?pour ouvrir l’index de l’aide
un bouton Save pour sauvegarder la session, un bouton Config: exact real ...
affichant la configuration et permettant de la modifier, un bouton STOP perme-
ttant d’interrompre un calcul trop long, un bouton Kbd pour faire apparaitre un
clavier ressemblant à celui d’une calculatrice, qui peut faciliter vos saisies, et un
bouton xpour fermer la session
une zone rectangulaire blanche numérotée 1 (première ligne de commande) dans
laquelle vous pouvez taper votre première commande (cliquez si nécessaire pour
faire apparaitre le curseur dans cette ligne de commande) : 1+1, suivi de la
touche "Entrée" ("Enter" ou "Return" selon les claviers). Le résultat apparaît
au-dessous, et une nouvelle ligne de commande s’ouvre, numérotée 2.
Vous pouvez modifier l’aspect de l’interface et sauvegarder vos modifications pour les
utilisations futures (menu Cfg).
Vous n’avez pour l’instant qu’à entrer des commandes dans les lignes de comman-
des successives. Si vous utilisez la version html de ce cours, vous pouvez copier-coller
les commandes proposées depuis votre navigateur. Chaque ligne de commande saisie
est exécutée par la touche "Entrée". Essayez par exemple d’exécuter les commandes
suivantes.
1/3+1/4
sqrt(2)^5
resoudre(x+3=1,x)
50!
Toutes les commandes sont gardées en mémoire. Vous pouvez donc remonter dans
l’historique de votre session pour modifier des commandes antérieures. Essayez par
exemple de changer les commandes précédentes en :
1/3+3/4
sqrt(5)^2
resoudre(2*x+3=0)
500!
Notez que
pour effacer une ligne de commande, on clique dans le numéro de niveau à
gauche de la ligne de commande, qui apparait alors en surbrillance. On appuie
ensuite sur la touche d’effacement. On peut aussi déplacer une ligne de com-
mande avec la souris.
Le menu Edit vous permet de préparer des sessions plus élaborées qu’une sim-
ple succession de commandes. Vous pouvez créer des groupes de lignes de com-
mandes (sections), ajouter des commentaires ou fusionner des niveaux en un seul
niveau.
Le menu Prg contient la plupart des instructions utiles pour programmer.
2
2 Les objets du calcul formel
2.1 Les nombres
Les nombres peuvent être exacts ou approchés. Les nombres exacts sont les con-
stantes prédéfinies, les entiers, les fractions d’entiers et plus généralement toute expres-
sion ne contenant que des entiers et des constantes, comme sqrt(2)*e^(i*pi/3).
Les nombres approchés sont notés avec la notation scientifique standard : partie en-
tière suivie du point de séparation et partie fractionnaire (éventuellement suivie de e
et d’un exposant). Par exemple, 2est un entier exact, 2.0 est la version approchée du
même entier; 1/2 est un rationnel, 0.5 est la version approchée du même rationnel.
Xcas peut gérer des nombres entiers en précision arbitraire : essayez de taper 500! et
comptez le nombre de chiffres de la réponse.
On passe d’une valeur exacte à une valeur approchée par evalf, on transforme
une valeur approchée en un rationnel exact par exact Les calculs sont effectués en
mode exact si tous les nombres qui interviennent sont exacts. Ils sont effectués 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 réels approchés, la précision par défaut est proche de 14 chiffres
significatifs (la précision relative est de 53 ou 45 bits pour les réels flottants normal-
isés selon les versions de Xcas). Elle peut être augmentée, en donnant le nombre de
décimales désiré comme second argument de evalf.
evalf(sqrt(2),50)
evalf(pi,100)
On peut aussi changer la précision par défaut pour tous les calculs en modifiant la
variable Digits.
Digits:=50
evalf(pi)
evalf(exp(pi*sqrt(163)))
La lettre iest réservée à 1et ne peut être réaffectée; en particulier on ne peut
pas l’utiliser comme indice de boucle.
(1+2*i)^2
(1+2*i)/(1-2*i)
e^(i*pi/3)
Xcas distingue l’infini non signé infinity (), de +infinity (+) et de -infinity
(−∞).
3
1/0; (1/0)^2; -(1/0)^2
Constantes prédéfinies
pi π3.14159265359
ee2.71828182846
ii=1
infinity
+infinity +
-infinity −∞
2.2 Les caractères et les chaînes
Une chaîne est parenthésée par des guillemets ("). Un caractère est une chaîne
ayant un seul élément.
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)
Chaînes
asc chaîne->liste des codes ASCII
char liste des codes ASCII->chaîne
size nombre de caractères
concat ou +concaténation
mid morceau de chaîne
head premier caractère
tail chaîne sans le 1ier caractère
string nombre ou expression->chaîne
expr chaîne->nombre (base 10 ou 8) ou expression
2.3 Les variables
On dit qu’une variable est formelle si elle ne contient aucune valeur : toutes les
variables sont formelles tant qu’elles n’ont pas été affectées (à une valeur). L’affecta-
tion est notée :=. Au début de la session aest formelle, elle devient affectée après
l’instruction a:=3,asera alors remplacé par 3 dans tous les calculs qui suivent, et
4
a+1 renverra 4. Xcas conserve tout le contenu de votre session. Si vous voulez que la
variable aaprès l’avoir affectée, soit à nouveau une variable formelle, il faut la "vider"
par purge(a). Dans les exemples qui suivent, les variables utilisées sont supposées
avoir été purgées avant chaque suite de commandes.
Il ne faut pas confondre
le signe := qui désigne l’affectation
le signe == qui désigne une égalité booléenne : c’est une opération 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 définir une équation.
a==b
a:=b
a==b
solve(a=b,a)
solve(2*a=b+1,a)
On peut faire certains types d’hypothèses sur une variable avec la commande assume,
par exemple assume(a>2). Une hypothèse est une forme spéciale d’affectation, elle
efface une éventuelle valeur précédemment affectée à la variable. Lors d’un calcul, la
variable n’est pas remplacée mais l’hypothèse sera utilisée dans la mesure du possible,
par exemple abs(a) renverra asi on fait l’hypothèse 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 nom-
bre 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 référence, par exemple
pour modifier une valeur dans une liste (un vecteur, une matrice), sans recréer une
nouvelle liste mais en modifiant en place la liste existante, on utilise l’instruction =<
au lieu de :=. Cette instruction est plus rapide que l’instruction :=, car elle économise
le temps de copie de la liste.
2.4 Les expressions
2.4.1 Définition
Une expression est une combinaison de nombres et de variables reliés entre eux par
des opérations : par exemple x^2+2*x+c.
Lorsqu’on valide une commande, Xcas remplace les variables par leur valeur si
elles en ont une, et exécute les opérations.
5
1 / 22 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !