Calcul Formel Avec HP Prime
Calcul Formel Avec HP Prime
Calcul Formel Avec HP Prime
et
Mathmatiques
avec
la calculatrice HP Prime
Rene De Graeve
Matre de Confrence Grenoble I
2
c 2013 Rene De Graeve, renee.degraeve@wanadoo.fr
La copie, la traduction et la redistribution de ce document sur support lectronique
ou papier sont autoriss pour un usage non commercial uniquement. Lutilisation
de ce document des fins commerciales est interdite sans laccord crit du dtenteur du copyright. Cette documentation est fournie en ltat, sans garantie daucune
sorte. En aucun cas le dtenteur du copyright ne pourra tre tenu pour responsable
de dommages rsultant de lutilisation de ce document.
Ce document est disponible ladresse Internet suivante :
http://www-fourier.ujf-grenoble.fr/~parisse/hprime.pdf
II
1
Pour commencer
21
0.1
0.2
0.3
0.4
0.5
0.6
.
.
.
.
.
.
23
25
25
26
26
26
0.7
0.8
. . . . . . . . . .
La configuration de la calculatrice ShiftLes fonctions de calcul formel . . . . . . . . . . . . . . . . . . .
27
27
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
Gnralits
1.1 Les calculs dans le CAS . . . . . . . . .
1.2 La priorit des oprateurs . . . . . . . .
1.3 La multiplication implicite . . . . . . .
1.4 Les listes et les squences dans le CAS .
1.5 Diffrence entre expressions et fonctions
1.5.1 Exercice sur les expressions . .
1.5.2 Vrifions avec HPprime . . . .
1.5.3 Exercice (suite) sur les fonctions
1.5.4 Vrifions avec HPprime . . . .
.
.
.
.
.
.
.
.
.
31
31
31
31
32
33
33
34
34
34
Le menu Algebra
2.1 Simplifier une expression : simplify . . . . . . . . . . . . . .
2.2 Factoriser un polynme sur les entiers : collect . . . . . . . .
2.3 Dvelopper une expression : expand . . . . . . . . . . . . . . .
2.4 Factoriser une expression : factor . . . . . . . . . . . . . . . .
2.5 Substituer une variable par une valeur : subst . . . . . . . . . .
2.6 Dcomposer en lments simples : partfrac . . . . . . . . . .
2.7 Extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1 Numrateur dune fraction aprs simplification : numer .
2.7.2 Dnominateur dune fraction aprs simplification : denom
2.7.3 Pour avoir le membre de gauche dune quation : left .
2.7.4 Pour avoir le membre de droite dune quation : right .
37
37
37
38
38
39
40
40
40
41
41
41
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
43
43
44
45
46
47
48
48
48
48
49
50
50
51
52
53
53
53
54
54
54
55
55
57
57
Le menu Solve
4.1 Rsolution dquations : solve . . . . . . . . . .
4.2 Zros dune expression : zeros . . . . . . . . . .
4.3 Rsoudre des quations dans C : cSolve . . . . .
4.4 Zros complexe dune expression : cZeros . . . .
4.4.1 quations diffrentielles : deSolve . . .
4.5 Rsolution numrique dquationsnSolve . . . .
4.6 Solution approche de y=f(t,y) :odesolve . . . .
4.6.1 Rsoudre un systme linaire : linsolve
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
59
59
60
61
61
62
63
63
65
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Le menu Rewrite
5.1 Regrouper les log : lncollect . . . . . . . . . . . . . . . . . .
5.2 Transformer une puissance en produit de puissances :
powexpand . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Dvelopper une expression transcendante et de trigo : tExpand .
5.4 Exp & Ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1 Transformer exp(n*ln(x)) en puissance : exp2pow . . . .
5.4.2 Transformer une puissance en une exponentielle : pow2exp
5.4.3 Transformer les exponentielles complexes en sin et en cos :
exp2trig . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.4 Dvelopper les exponentielles : expexpand . . . . . . .
67
67
67
68
69
69
70
70
71
5.6
5.7
5.8
Sine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1 Transformer les arcsin en arccos : asin2acos . . . . . .
5.5.2 Transformer les arcsin en arctan : asin2atan . . . . . .
5.5.3 Transformer sin(x) en cos(x)*tan(x) : sin2costan . . .
Cosine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6.1 Transformer les arccos en arcsin : acos2asin . . . . . .
5.6.2 Transformer les arccos en arctan : acos2atan . . . . . .
5.6.3 Transformer cos(x) en sin(x)/tan(x) : cos2sintan . . .
Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7.1 Transformer les arctan en arcsin : atan2asin . . . . . .
5.7.2 Transformer les arctan en arccos : atan2acos . . . . . .
5.7.3 Transformer tan(x) en sin(x)/cos(x) : tan2sincos . . .
5.7.4 Transformer une expression trigonomtrique en fonction
de tan(x/2) : halftan . . . . . . . . . . . . . . . . . . .
Trig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.8.1 Simplifier en privilgiant les sinus : trigsin . . . . . .
5.8.2 Simplifier en privilgiant les cosinus : trigcos . . . . .
5.8.3 Transformer avec des fonctions trigonomtriques inverses
en logarithmes : atrig2ln . . . . . . . . . . . . . . . .
5.8.4 Simplifier en privilgiant les tangentes : trigtan . . . .
5.8.5 Linariser une expression trigonomtrique : tlin . . . .
5.8.6 Rassembler les sinus et cosinus de mme angle : tCollect
5.8.7 Dvelopper une expression trigonomtriques : trigexpand
71
71
71
72
72
72
72
72
73
73
73
73
73
74
74
74
74
75
75
75
76
Le menu Integer
6.1 Les diviseurs dun nombre entier : idivis . . . . . . . . . .
6.2 Dcomposition en facteurs premiers dun entier : ifactor .
6.3 Liste des facteurs premiers et de leur multiplicit : ifactors
6.4 PGCD de deux ou plusieurs entiers : gcd . . . . . . . . . . .
6.5 PPCM de deux ou plusieurs entiers : lcm . . . . . . . . . . .
6.6 Prime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.6.1 Test pour savoir si un nombre est premier : isPrime
6.6.2 Le N-ime nombre premier : ithprime . . . . . . .
6.6.3 nextprime . . . . . . . . . . . . . . . . . . . . . .
6.6.4 prevprime . . . . . . . . . . . . . . . . . . . . . .
6.6.5 Indicatrice dEuler : euler . . . . . . . . . . . . . .
6.7 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.1 Quotient de la division euclidienne : iquo . . . . . .
6.7.2 Reste de la division euclidienne : irem . . . . . . . .
6.7.3 Restes chinois pour des entiers : ichinrem . . . . .
6.7.4 Calcul de an mod p : powmod . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
77
77
77
77
78
78
78
78
79
79
79
80
80
80
80
81
81
Le menu Polynomial
7.1 Racines numriques dun polynme : proot . . . . .
7.2 Coefficients dun polynme : coeff . . . . . . . . . .
7.3 Liste des diviseurs dun polynme : divis . . . . . .
7.4 Liste des facteurs dun polynme : factors . . . . .
7.5 PGCD de polynmes par lalgorithme dEuclide : gcd
.
.
.
.
.
.
.
.
.
.
83
83
84
84
85
85
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7.8
7.9
III
9
Le menu Plot
8.1 Graphe dune fonction : plotfunc . . . . . . . . . . . . . . . .
8.2 Courbe implicite en 2-d : plotimplicit . . . . . . . . . . . .
8.3 Graphe dune fonction par niveaux de couleurs : plotdensity .
8.4 Le champ des tangentes : plotfield . . . . . . . . . . . . . .
8.5 Lignes de niveaux : plotcontour . . . . . . . . . . . . . . . .
8.6 Trac de solutions dquation diffrentielle : plotode . . . . . .
8.7 Ligne polygonale : plotlist . . . . . . . . . . . . . . . . . . .
105
105
106
107
107
108
109
110
111
Partie fractionnaire : FP . . . . . . . . . . . . . . . . . . . . . .
Arrondir avec n dcimales un rel ou un complexe : ROUND . .
Tronquer avec n dcimales un rel ou un complexe : TRUNCATE
Mantisse dun rel : MANT . . . . . . . . . . . . . . . . . . . .
Partie entire du logarithme base 10 dun rel : XPON . . . . .
10 Arithmtique
10.1 Maximum de 2 ou plusieurs valeurs :MAX
10.2 Minimum de 2 ou plusieurs valeurs : MIN
10.3 MOD . . . . . . . . . . . . . . . . . . . .
10.4 FNROOT . . . . . . . . . . . . . . . . . .
10.5 % . . . . . . . . . . . . . . . . . . . . . .
10.6 Complexe . . . . . . . . . . . . . . . . .
10.6.1 CONJ . . . . . . . . . . . . . . .
10.6.2 IM . . . . . . . . . . . . . . . . .
10.6.3 RE . . . . . . . . . . . . . . . . .
10.6.4 SIGN . . . . . . . . . . . . . . .
10.6.5 La touche Shift-+/ : ABS . .
10.7 Exponentielle . . . . . . . . . . . . . . .
10.7.1 ALOG alog10 . . . . . . . . .
10.7.2 EXPM1 . . . . . . . . . . . . . .
10.7.3 LNP1 . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
114
115
116
116
117
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
119
119
119
119
120
120
120
120
121
121
121
121
121
121
122
122
11 Fonctions trigonomtriques
11.1 CSC . . . . . . . . . .
11.2 ACSC . . . . . . . . .
11.3 SEC . . . . . . . . . .
11.4 ASEC . . . . . . . . .
11.5 COT . . . . . . . . . .
11.6 ACOT . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
123
123
123
123
124
124
124
12 Fonctions hyperboliques
12.1 SINH . . . . . . .
12.2 ASINH . . . . . .
12.3 COSH . . . . . . .
12.4 ACOSH . . . . . .
12.5 TANH . . . . . . .
12.6 ATANH . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
125
125
125
125
126
126
126
13 Fonctions de probabilit
13.1 Factorielle : ! . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2 Nombre de combinaisons de p objets pris parmi n : COMB . . . . .
13.3 nombre darrangements de p objets pris parmi n : PERM . . . . .
13.4 Nombres alatoires . . . . . . . . . . . . . . . . . . . . . . . . .
13.4.1 Nombre alatoire (rel ou entier) : RANDOM . . . . . . . .
13.4.2 Nombre entier alatoire RANDINT . . . . . . . . . . . . .
13.4.3 RANDNORM . . . . . . . . . . . . . . . . . . . . . . . . .
13.4.4 Pour initialiser la suite de nombres alatoires : RANDSEED
13.5 Densit de probabilit . . . . . . . . . . . . . . . . . . . . . . . .
127
127
127
128
128
128
128
129
129
130
.
.
.
.
.
.
.
.
.
.
.
.
14 Les listes
14.1 MAKELIST
14.2 SORT . . .
14.3 REVERSE .
14.4 CONCAT . .
14.5 POS . . . .
14.6 SIZE . . .
14.7 LIST . .
14.8 LIST . .
14.9 LIST . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
139
139
139
140
140
142
142
143
143
143
9
.
.
.
.
149
149
150
150
16 Les matrices
151
16.1 Matrice transpose : tran . . . . . . . . . . . . . . . . . . . . . 151
16.2 Matrice transpose : TRN ou trn . . . . . . . . . . . . . . . . . 151
16.3 Dterminant : DET ou det . . . . . . . . . . . . . . . . . . . . . 151
16.4 Rsolution dun systme linaire : RREF ou rref . . . . . . . . 152
16.5 Cration de matrices . . . . . . . . . . . . . . . . . . . . . . . . 153
16.5.1 Crer une matrice partir dune expression : MAKEMAT et
makemat . . . . . . . . . . . . . . . . . . . . . . . . . . 153
16.5.2 Matrice identit : IDENMAT ou identity . . . . . . . . 154
16.5.3 Matrice alatoire : RANDMAT et ramn . . . . . . . . . . . 154
16.5.4 JordanBlock . . . . . . . . . . . . . . . . . . . . . . 155
16.5.5 N -ime matrice de Hilbert hilbert . . . . . . . . . . . 155
16.5.6 Matrice dune isomtrie : mkisom . . . . . . . . . . . . . 155
16.5.7 Matrice de Vandermonde : vandermonde . . . . . . . . 156
16.6 Basique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
16.6.1 Norme de Schur ou de Frobenius dune matrice : ABS . . 157
16.6.2 Maximum des normes des lignes dune matrice : ROWNORM
ou rownorm . . . . . . . . . . . . . . . . . . . . . . . . 158
16.6.3 Max des normes des colonnes dune matrice : COLNORM
ou colnorm . . . . . . . . . . . . . . . . . . . . . . . . 158
16.6.4 Norme spectrale dune matrice : SPECNORM . . . . . . . 159
16.6.5 Rayon spectral dune matrice carre : SPECRAD . . . . . 160
16.6.6 Conditionnement dune matrice carre inversible : COND . 160
16.6.7 Rang dune matrice : RANK ou rank . . . . . . . . . . . 160
16.6.8 tape de la rduction de Gauss-Jordan dune matrice : pivot161
16.6.9 Trace dune matrice carre : TRACE ou trace . . . . . . 161
16.7 Avance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
16.7.1 Valeurs propres : EIGENVAL et eigenvals . . . . . . . 162
16.7.2 Vecteurs propres : EIGENVV et eigenvects . . . . . . 163
16.7.3 Matrice de Jordan jordan . . . . . . . . . . . . . . . . 164
16.7.4 Matrice diagonale et sa diagonale : diag . . . . . . . . . 164
16.7.5 Matrice de Cholesky : cholesky . . . . . . . . . . . . . 165
16.7.6 Forme normale de Hermite dune matrice : ihermite . . 165
16.7.7 Rduction de Hessenberg dune matrice : hessenberg . 165
16.7.8 ismith . . . . . . . . . . . . . . . . . . . . . . . . . . 166
16.8 Factorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
16.8.1 Dcomposition LQ dune matrice : LQ . . . . . . . . . . 167
16.8.2 Norme minimale du systme linaire A*X=B : LSQ . . . . 168
16.8.3 Dcomposition LU dune matrice carre : LU . . . . . . . 169
16.8.4 Dcomposition QR dune matrice carre : QR . . . . . . . 170
16.8.5 Rduction de Hessenberg dune matrice : SCHUR . . . . . 170
16.8.6 Singular value decomposition : SVD et svd . . . . . . . . 171
16.8.7 Valeurs singulires : SVL . . . . . . . . . . . . . . . . . . 172
10
IV
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
173
173
174
174
175
175
.
.
.
.
.
.
.
.
.
177
177
178
179
180
180
181
182
183
184
187
18 Le menu Geometry
189
18.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
18.2 Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
18.2.1 Point dfini comme barycentre de n points : barycenter 191
18.2.2 Le point en gomtrie : point . . . . . . . . . . . . . . 193
18.2.3 Orthocentre dun triangle : orthocenter ou orthocenter194
18.2.4 Le milieu dun segment : midpoint . . . . . . . . . . . 194
18.2.5 Lisobarycentre de n points : isobarycenter . . . . . 195
18.2.6 Dfinir au hasard un point 2-d : point2d . . . . . . . . 195
18.2.7 Point sur un objet gomtrique : element . . . . . . . . 195
18.2.8 Point divisant un segment : division_point . . . . . 198
18.2.9 Le centre dun cercle : center . . . . . . . . . . . . . . 199
18.3 Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
18.3.1 Droite dfinie par un point et une pente : DrawSlp . . . . 199
18.3.2 Tangente au graphe de y = f (x) en x = a : LineTan . . 199
18.3.3 Hauteur dun triangle : altitude . . . . . . . . . . . . 200
18.3.4 Bissectrice intrieure dun angle : bisector . . . . . . 200
18.3.5 Bissectrice extrieur dun angle : exbisector . . . . . 201
18.3.6 Demi-droite : half_line . . . . . . . . . . . . . . . . 201
18.3.7 La droite et la droite oriente : line . . . . . . . . . . . 201
18.3.8 Mdiane dun triangle : median_line . . . . . . . . . 203
18.3.9 Droites parallles : parallel . . . . . . . . . . . . . . 203
18.3.10 Mdiatrice : perpen_bisector . . . . . . . . . . . . 204
18.3.11 Perpendiculaire une droite : perpendicular . . . . . 204
18.3.12 Segment : segment . . . . . . . . . . . . . . . . . . . . 204
18.3.13 Les tangentes un objet gomtrique ou la tangente en un
point dun graphe : tangent . . . . . . . . . . . . . . . 205
11
12
19 Le tableur
19.1 Gnralits . . . . . . . . . . . . . . . . .
19.2 Description de lcran du tableur . . . . . .
19.2.1 Pour copier la formule dune cellule
19.2.2 Rfrences absolues et relatives . .
19.3 Les fonctions du tableur . . . . . . . . . . .
19.3.1 SUM . . . . . . . . . . . . . . . . .
19.3.2 AVERAGE . . . . . . . . . . . . . .
19.3.3 AMORT . . . . . . . . . . . . . . .
19.3.4 STAT1 . . . . . . . . . . . . . . .
19.3.5 REGRS . . . . . . . . . . . . . . .
19.3.6 PredY PredX . . . . . . . . . .
19.3.7 HypZ1mean HypZ2mean . . . .
19.4 Utilisation du tableur sur des exemples . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
259
259
259
259
259
260
260
260
260
261
261
261
261
261
13
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
285
21 Gnralits
22 Les instructions de programmation
22.1 Linstruction daffectation . . . .
22.2 Les instructions conditionnelles .
22.3 Les boucles . . . . . . . . . . . .
22.4 Les commentaires . . . . . . . . .
22.5 Les variables . . . . . . . . . . .
22.6 Les oprateurs boolens . . . . . .
22.7 Les commandes dinvite . . . . .
22.8 Les commandes des Applications .
267
267
267
267
268
268
269
270
270
270
271
271
272
273
275
276
280
282
283
283
283
283
287
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
289
289
289
293
294
294
294
296
299
301
301
302
302
304
306
14
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
306
307
308
309
309
310
312
312
312
313
24 Exemple de programmes
24.1 Le PGCD et lidentit de Bzout depuis Home . . . . . . . . . . .
24.1.1 Le PGCD . . . . . . . . . . . . . . . . . . . . . . . . . .
24.1.2 Lidentit de Bzout pour A et B . . . . . . . . . . . . . .
24.2 Le PGCD et lidentit de Bzout depuis CAS . . . . . . . . . . .
24.2.1 Le PGCD avec le CAS sans faire de programme . . . . .
24.2.2 Le PGCD avec un programme CAS . . . . . . . . . . . .
24.2.3 Lidentit de Bzout avec le CAS sans faire de programme
24.2.4 Lidentit de Bzout avec un programme CAS . . . . . . .
315
315
315
316
317
317
317
318
318
Index
LIST, 143
LIST, 143
, 43
, 43
+, 149
->, 43
//, 294
:=, 43, 289
<,<=,==,
=,>,>=, 294
%, 120
!, 127
LIST, 143
MOD, 119
STUDENT, 130
ABS, 121, 157
abscissa, 232
acos2asin, 72
acos2atan, 72
ACOSH, 126
ACOT, 124
ACSC, 123
affix, 232
ALOG, 121
alog10, 121
altitude, 200
AND, 295
angle, 233
angleat, 224
angleatraw, 225
arcLen, 234
area, 235
areaat, 225
areaatraw, 226
asc, 145
ASEC, 124
asin2acos, 71
asin2atan, 71
ASINH, 125
atan2acos, 73
atan2asin, 73
ATANH, 126
atrig2ln, 74
barycenter, 191
Beta, 177
BINOMIAL, 131
BINOMIAL_CDF, 134
BINOMIAL_ICDF, 137
bisector, 200
black, 190
blue, 190
BREAK, 293
CASE, 291
CEILING, 113
center, 199
char, 145
CHECK, 299
chinrem, 96
CHISQUARE, 130
CHISQUARE_CDF, 133
CHISQUARE_ICDF, 136
cholesky, 165
CHOOSE, 296
Ci, 184
circle, 211
circumcircle, 213
coeff, 84
collect, 37
COLNORM, 158
colnorm, 158
COMB, 127
CONCAT, 140, 149
COND, 160
conic, 213
CONJ, 120
content, 95
CONTINUE, 292
coordinates, 235
15
16
cos2sintan, 72
COSH, 125
COT, 124
CROSS, 173
cross, 173
CSC, 123
cSolve, 61
curl, 48
cyan, 190
cyclotomic, 97
cZeros, 61
degree, 94
denom, 41
deSolve, 62
DET, 151
det, 151
diag, 164
diff, 43
dim, 149
DISP, 296
display, 190
distance, 237
distance2, 238
distanceat, 227
distanceatraw, 227
divergence, 48
divis, 84
division_point, 198
divpc, 54
DO, 293
DOT, 174
dot, 174
DrawSlp, 199
EDITMAT, 298
Ei, 182
EIGENVAL, 162
eigenvals, 162
eigenvects, 163
EIGENVV, 163
element, 195
ellipse, 213
ELSE, 291
END, 289, 291, 293
equation, 238
equilateral_triangle, 206
erf, 180
erfc, 181
INDEX
euler, 80
exbisector, 201
excircle, 214
exp2pow, 69
exp2trig, 70
expand, 38
expexpand, 71
EXPM1, 122
expr, 146
extract_measure, 239
factor, 38
factor_xn, 94
factors, 85
fcoeff, 90
fft, 57
filled, 190
FISHER, 130
FISHER_CDF, 133
FISHER_ICDF, 136
FLOOR, 113
FNROOT, 120
FOR, 293
FP, 114
FREEZE, 296
FROM, 293
Gamma, 178
gbasis, 98
gcd, 78, 85
GETKEY, 296
grad, 48
greduce, 98
green, 190
half_line, 201
halftan, 73
head, 150
hermite, 99
hessenberg, 165
hessian, 49
hilbert, 155
homothety, 218
hyperbola, 214
ibpdv, 50
ibpu, 51
ichinrem, 81
IDENMAT, 154
INDEX
identity, 154
idivis, 77
IF, 289, 291
ifactor, 77
ifactors, 77
IFERR, 292
ifft, 57
IFTE, 290
ihermite, 165
IM, 121
incircle, 215
INPUT, 297
inString, 148
int, 44
inversion, 219
invlaplace, 55
IP, 114
iquo, 80
irem, 80
is_colinear, 242
is_concyclic, 243
is_conjugate, 243
is_coplanar, 244
is_element, 245
is_equilateral, 245
is_isosceles, 246
is_orthogonal, 246
is_parallel, 247
is_parallelogram, 248
is_perpendicular, 248
is_rectangle, 249
is_rhombus, 250
is_square, 250
ISKEYDOWN, 297
ismith, 166
isobarycenter, 195
isoploygon, 210
isosceles_triangle, 210
isPrime, 78
ithprime, 79
17
lcm, 78, 87
lcoeff, 90
left, 41, 148
legendre, 101
line, 201
LineTan, 199
linsolve, 65
lncollect, 67
LNP1, 122
LOCAL, 294
locus, 215
LQ, 167
LSQ, 168
LU, 169
magenta, 190
MAKELIST, 139
MAKEMAT, 153
makemat, 153
MANT, 116
MAX, 119
maxnorm, 175
median_line, 203
mid, 148
midpoint, 194
MIN, 119
mkisom, 155
MSGBOX, 297
nextprime, 79
NORMALD, 130
NORMALD_CDF, 131
NORMALD_ICDF, 135
NOT, 295
nSolve, 63
numer, 40
jordan, 164
JordanBlock, 155
odesolve, 63
OR, 295
order_size, 53
ordinate, 239
orthocenter, 194
orthocentre, 194
l1norm, 175
l2norm, 174
lagrange, 99
laguerre, 100
laplace, 54
parabola, 217
parallel, 203
parallelogram, 209
parameq, 240
partfrac, 40
18
pcoef, 89
pcoeff, 89
perimeter, 241
perimeterat, 228
perimeteratraw, 229
PERM, 128
perpen_bisector, 204
perpendicular, 204
pivot, 161
plotcontour, 108
plotdensity, 107
plotfield, 107
plotfunc, 105
plotimplicit, 106
plotlist, 110
plotode, 109
pmin, 90
point, 193
point2d, 195
POISSON, 131
POISSON_CDF, 135
POISSON_ICDF, 137
poly2symb, 89
POS, 142
pow2exp, 70
powexpand, 67
powmod, 81
preval, 44, 52
prevprime, 79
PRINT, 297
projection, 220
proot, 83
Psi, 179
QR, 170
quadrilateral, 209
quo, 92
radius, 241
ramn, 154
RANDINT, 128
RANDNMAT, 154
RANDNORM, 129
RANDOM, 128
randPoly, 91
RANDSEED, 129
RANK, 160
rank, 160
RE, 121
INDEX
rectangle, 208
red, 190
reflection, 221
rem, 93
REPEAT, 293
REVERSE, 140
rhombus, 207
right, 41, 148
right_triangle, 206
rotate, 149
rotation, 222
ROUND, 115
ROWNORM, 158
rownorm, 158
RREF, 152
rref, 152
SCHUR, 170
SEC, 123
segment, 204
SELECT, 300
Si, 183
SIGN, 121
similarity, 222
simplify, 37
sin2costan, 72
SINH, 125
SIZE, 142, 149
slope, 241
slopeat, 230
slopeatraw, 231
solve, 59
SORT, 139
SPECNORM, 159
SPECRAD, 160
square, 209
STARTAPLET, 300
STARTVIEW, 300
STEP, 293
STO, 289
StoI, 43
string, 147
STUDENT_CDF, 132
STUDENT_ICDF, 136
sturmab, 95
subst, 39
sum_riemann, 53
SVD, 171
INDEX
svd, 171
SVL, 172
symb2poly, 88
tail, 150
tan2sincos, 73
tangent, 205
TANH, 126
taylor, 53
tchebyshev1, 101
tchebyshev2, 102
tCollect, 75
tExpand, 68
THEN, 289, 291
tlin, 75
TO, 293
TRACE, 161
trace, 161, 190, 196
tran, 151
translation, 223
trig2exp, 76
trigcos, 74
trigexpand, 76
trigsin, 74
trigtan, 75
TRN, 151
trn, 151
TRUNCATE, 116
UNCHECK, 300
UNTIL, 293
vandermonde, 156
WAIT, 298
WHILE, 293
white, 190
XOR, 295
XPON, 117
yellow, 190
zeros, 60
Zeta, 180
19
20
INDEX
Premire partie
Pour commencer
21
0.1
23
2
En mode exact, i.e.dans lcran CAS, la suite u est donc stationnaire et vaut .
3
Le rsultat est ici conforme au rsultat thorique.
Toujours dans le CAS, on tape pour avoir les premiers termes de v :
2/3 puis Enter et on obtient 2/3.
On tape :
2*(Ans-1/3) puis Enter,Enter...
et on obtient 2/3, 2/3, 2/3...
2
En mode exact, i.e. dans lcran CAS, la suite v est donc stationnaire et vaut .
3
Le rsultat est encore ici conforme au rsultat thorique.
Dans lcran HOME
Maintenant on appuit sur
et pour avoir les premiers termes de u, on tape la
valeur de u0 :
2/3 puis Enter et on obtient 0.666666666667 puis.
on tape :
2*Ans-2/3 puis Enter, Enter, Enter...
et on obtient 0.666666666663,0.666666666663...
Le rsultat est ici presque conforme au rsultat thorique.
En mode approch i.e. dans lcran HOME (touche
tionnaire partir de n > 0 et vaut 0.666666666663.
24
2*(Ans-1/3) puis Enter, Enter, Enter...
et on obtient
v1 =0.666666666668, v2 =0.666666666670, v3 =0.666666666674puis
0.666666666682, 0.666666666682, 0.666666666698
0.666666666730, 0.666666666794, 0.666666666922
etc... et apres 51 ou 52 Enter on obtient :
v40 1.76617829443 et v50 2 252.46648036 etc.. En mode approch, i.e. dans
lcran HOME (touche
), la suite v tend donc vers +.
On voit donc quen mode approch les erreurs de calculs se cumulent et que les
rsultats affichs ne sont pas toujours conformes aux rsultats thoriques !
Comment sont fait les calculs dans HOME
Dans HOME, les nombres rels sont affichs au plus 12 chiffres significatifs mais
les calculs sont faits avec plus de chiffres puis sont arrondis pour tre affichs par
exemple :
1/3 sera reprsent par 0.333333333333 (avec 12 fois le chiffre 3)
2/3 sera reprsent par 0.666666666667 (avec 11 fois le chiffre 6 et un 7)
4/3 sera reprsent par 1.33333333333 (avec 1 puis 11 fois le chiffre 3)
2*0.666666666667 ou 2*0.666666666663 sera reprsent par 1.33333333333 (avec
1 puis 11 fois le chiffre 3)
Pour le calcul de u on tape u0 :
2/3 on obtient 0.666666666667 puis,
2*Ans-2/3 on obtient 1.33333333333-0.666666666667=0.666666666663 puis,
2*Ans-2/3 on obtient puisque 1.33333333333-0.666666666667=0.666666666663
etc...la suite u est donc stationnaire pour n > 0 et vaut 0.666666666663.
Pour la suite v le calcul est fait aprs avoir mis 2 en facteur.
On tape v0 :
2/3 on obtient 0.666666666667 puis,
2*(Ans-1/3) dans les diffrentes oprations on a toujours 12 dcimales, on obtient :
2*(0.666666666667-0.333333333333)=2*0.333333333334=0.666666666668.
On a donc :
si A := 0.666666666666 et B := 0.333333333333, on a A == 2 B et B ==
A B mais, 2/3 = A + 10 12 et 1/3 = B
On a donc :
v0 = 2/3 = A + 10 12 v1 = 2 (A + 10 12 B) = 2 (B + 10 12) =
A + 2 10 12 puis
v2 = 2 (A + 2 10 12 B) = A + 22 10 12 puis...
v38 = A + 238 10 12 = 0.94154457361
v39 = A + 239 10 12 = 1.21642248055
v40 = A + 240 10 12 = 1.76617829445
...
v50 = A + 250 10 12 = 1126.56657351
v51 = A + 251 10 12 = 2252.46648036
puis la formule risque de ntre plus vraie cause des erreurs darrondis prs....
Si on utilise la commande ITERATE qui itre, en dbutant par la valeur 2/3, 90
fois la fonction qui X fait correspondre 2*(X-1/3), on tape :
ITERATE(2*(X-1/3),x,2/3,90) on obtient :
1.23794003934E15
25
et
ITERATE(2*(X-1/3),x,2/3,91) on obtient :
2.4758800788=2*1.23794003934E15
Donc vn = 2n90 u90 et quand n tend vers linfini vn = 2n90 u90 tend vers
linfini.
0.2
0.3
Lcran tactile
On remarquera que les menus au bas de lcran (nomm ici menus du bandeau) ne sont accessibles quen les touchant avec le doigt : il ny a plus de touches
F1..F6 !
Lcran est tactile et cela permet de recopier tres facilement une ligne de commande ou une rponse de lhistorique ou de lire ou relire une rponse trop longue,
de slectionner un menu puis une commande de la touche
.
Pour cela :
il suffit de rechercher la commande ou la rponse copier en naviguant dans
lhistorique avec un doigt, puis de slectionner la commande ou la rponse
copier toujours avec un doigt et dappuyer sur Copier du bandeau quand
la ligne est en surbrillance ou on appuie 2 fois rapidement avec le doigt sur
la ligne recopier,
pour lire une rponse trop longue il suffit de balayer la ligne de la rponse
avec un doigt.
on ouvre un menu avec un doigt ou avec son numro, on fait de mme si il
y a un sous-menu, puis on slectionne la fonction avec un doigt ou avec son
numro et cela provoque lcriture de la fonction dans la ligne de commande
gauche : il ne reste plus qu taper les paramtres de cette fonction et de
valider avec Enter . Le rsultat scrit alors droite.
26
0.4
Le touches
CAS
Il faut appuyer sur la touche CAS pour faire du calcul formel. Les lettres
minuscules sont alors accessibles en mode ALPHA et la touche xtn permet davoir x directement.
0.5
La configuration gnrale
0.6
La configuration du CAS
27
Par exemple :
solve(x^3+2*x^2+x+2=0,x) renvoie [-2] en mode rel
solve(x^3+2*x^2+x+2=0,x) renvoie [-2,-i,i] en mode complexe
Pour utiliser des racines carres dans une factoristion il faut cocher :
Utiliser
Par exemple :
est dcoch,
si Utiliser
est coch.
0.7
0.8
28
Deuxime partie
29
Chapitre 1
Gnralits
1.1
1.2
1.3
La multiplication implicite
Dans le CAS, pour faire une multiplication, le signe * peut tre omis lorsque
lon fait la multiplication dun nombre par une variable. On a le droit dcrire 2x
mais il faut crire a*b pour faire le produit de la variable apat b, puisque ab est
aussi un nom de variable.
On peut crire par exemple :
2x+3i+4pi
31
32
CHAPITRE 1. GNRALITS
1.4
Avec le CAS, les listes (resp les vecteurs) sont parenthses par { } ou par [
].
Les indices commencent 0 si lindice est mis entre [ ] et commencent 1 si
lindice est mis entre ().
Par exemple,on tape :
l:=[1,2,3,4];
ll:={1,2,3,4}; l[2] ou ll[2] renvoie 3
l(2) ou ll(2) renvoie 2
Avec le CAS, il existe aussi le type squence qui est une suite dobjets. Les
indices dune squence commencent 0.
Avec ce type la concatnation est aise.
On tape pour dfinir la squence vide :
s:=NULL;
On obtient si on na pas coch Textbook ou Livre dans la configuration gnrale
(Shift HOME) :
NULL
Puis, on tape :
s:=s,1,2
On obtient :
seq[1,2]
On tape :
s[1])
On obtient :
2
Alors quavec le type liste, on tape pour dfinir la liste vide :
l:=[];
Puis, on tape :
l:=concat(l,[1,2])
On obtient :
[1,2]
On tape :
l[1])
On obtient :
2
Pour transformer une liste en squence on utilise loprateur op.
On tape :
op(l)
On obtient :
33
seq[1,2]
Pour transformer une squence en liste, il suffit de parenthser la squence par [].
On tape :
[s])
On obtient :
[1,2]
1.5
1.5.1
34
CHAPITRE 1. GNRALITS
C = 1 x (2 + x)
D = (1 x 2) + x
F = 1 (x 2 + x)
G = (1 x) (2 + x)
1.5.2
On tape :
T:=1-x*2+x
A:=(1-x)*2+x
B:=1-(x*2)+x
C:=1-x*(2+x)
D:=(1-x*2)+x
F:=1-(x*2+x)
G:=(1-x)*(2+x)
Puis on tape pour connaitre les expressions gales T :
A==T, B==T, etc...
On trouve que la rponse de A==T est 0 ce qui veut dire que lexpression A est
diffrente de T.
On trouve que la rponse de B==T est 1 ce qui veut dire que lexpression B est
identique T etc...
1.5.3
1.5.4
35
36
CHAPITRE 1. GNRALITS
Chapitre 2
Le menu Algebra
2.1
2.2
38
On obtient :
(x-1)*(x^2-x-1)
On tape :
collect(x^3-2*x^2+1,sqrt(5))
On obtient :
(x+(-(sqrt(5))-1)/2)*(x-1)*(x+(sqrt(5)-1)/2)
ou pas.
Voir aussi factor selon que dans la configuration du CAS on a coch
2.3
expand effectue, sur une expression, la distributivit de la multiplication par rapport laddition.
On tape :
expand((x+1)*(x+2))
On obtient :
x^2+3*x+2
On tape :
expand((a+b)^5)
On obtient :
5*a^4*b+10*a^3*b^2+10*a^2*b^3+5*a*b^4+b^5+a^5
2.4
On tape :
factor(x^6-1)
On obtient en mode rel :
(x-1)*(x+1)*(x^2-x+1)*(x^2+x+1)
On tape :
factor(x^6+1)
On obtient en mode rel :
(x^2+1)*(x^4-x^2+1)
39
(x+i)*(x-i)*(x^2+(i)*x-1)*(x^2+(-i)*x-1)
coch :
On obtient en mode complexe avec
(x+i)*(x-i)*(x+(-(sqrt(3))-i)/2)*(x+(-(sqrt(3))+i)/2)*
(x+(sqrt(3)-i)/2)*(x+(sqrt(3)+i)/2)
On tape :
factor(x^6+1,sqrt(3))
On obtient si on a coch
dans la configuration du CAS :
(x+(-(sqrt(5))-1)/2)*(x-1)*(x+(sqrt(5)-1)/2)
On tape :
factor(expexpand(exp(5*x))-exp(x))
On obtient en mode complexe :
exp(x)*(-1+exp(x))*(1+exp(x))*(i+exp(x))*(-i+exp(x))
2.5
40
On tape :
a:=2;subst(a^2+1,a=3)
On obtient :
(2,5)
On tape :
a:=2;purge(a);subst(a^2+1,a=3)
On obtient :
(2,2,10)
2.6
2.7
2.7.1
Extract
Numrateur dune fraction aprs simplification : numer
2.7. EXTRACT
2.7.2
41
2.7.3
2.7.4
42
Chapitre 3
Le menu Calculus
3.1
3.2
diff ou
44
3.3
int
int permet de calculer une primitive dune expression ou dune fonction ou une
intgrale dfinie.
Primitive dune expression
On tape :
int(x^3+ln(x))
On obtient une primitive de x^3+ln(x) par rapport x :
x*ln(x)-x+x^4/4
On tape :
int(y^3+ln(y),y)
3.4. LIMIT
45
3.4
limit
limit permet de calculer la limite dune expression en un point fini (ou infini). En
utilisant un paramtre supplementaire, on peut indiquer si on cherche une limite par
valeurs suprieures ou par valeurs infrieures (1 pour dire "par valeurs suprieures"
et -1 pour dire "par valeurs infrieures").
On tape :
limitx>1 (sin(x)+ln(x))/x
On obtient :
sin(1)
On tape :
limitx>0 (1/x)
On obtient :
infinity
On tape :
limitx>01 (1/x)
On obtient :
+infinity
46
On tape :
limitx>01 (1/x)
On obtient :
-infinity
3.5
series
3.6. SUM
3.6
47
sum
sum effectue la somme des lments dune liste ou la somme indice finie et infinie
ou calcule la primitive discrte dune expression.
48
3.7
3.7.1
Differential
Le rotationnel : curl
3.7.2
La divergence : divergence
3.7.3
Le gradient : grad
3.7. DIFFERENTIAL
49
On obtient :
[2*2*x*y-z^3,2*x^2,-x*3*z^2]
En effet :
diff(2*x^2*y-x*z^3,x) renvoie 4*x*y-z^3
diff(2*x^2*y-x*z^3,y) renvoie 2*x^2
diff(2*x^2*y-x*z^3,z) renvoie -3*x*z^2
3.7.4
La hessienne : hessian
50
3.8
3.8.1
Integral
Intgration par parties : ibpdv
ibpdv permet de chercher une primitive (ou de calculer une intgrale dfinie)
dune expression de la forme u(x).v 0 (x).
ibpdv a deux paramtres pour les primitives et cinq paramtres pour les intgrales
dfinies :
soit une expression de la forme u(x).v 0 (x) et v(x) (ou une liste de deux
expressions [F (x), u(x) v 0 (x)] et v(x)),
soit une expression de la forme g(x) et 0 (ou une liste de deux expressions
[F (x), g(x)] et 0).
pour les intgrales dfinies, il faut rajouter trois autres paramtres : le nom
de la variable et les bornes.
Valeur renvoye par ibpdv selon ses paramtres :
ibpdv(u(x).v(x),v(x)) (resp
ibpdv([F(x),u(x).v(x)],v(x))) renvoie :
si v(x) 6= 0, une liste forme de u(x).v(x) et de v(x).u0 (x) (resp une liste
forme de F (x) + u(x).v(x) et de v(x).u0 (x)),
ibpdv(g(x),0) (resp ibpdv([F(x),g(x)],0)) renvoie :
une primitive G(x) de g(x) (resp F (x) + G(x)) o diff(G(x))=g(x).
ibpdv(u(x)*v(x),v(x),x,a,b) (resp
ibpdv([F(x),u(x)*v(x)],v(x),x,a,b)) renvoie :
si v(x) 6= 0, une liste forme de u(b).v(b) u(a).v(a) et de v(x).u0 (x)
(resp une liste forme de F (b) + u(b).v(b) F (a) u(a).v(a) et de
v(x).u0 (x)),
si le deuxime argument est nul, ibpdv(g(x),0,x,a,b) renvoie :
G(b) G(a) o G(x) est une primitive du premier argument g(x) (resp
ibpdv([F(x),g(x)],0,x,a,b) renvoie F (x) + G(b) G(a) o
G(x) est une primitive de g(x)).
On tape :
ibpdv(ln(x),x)
On obtient :
[x.ln(x),-1]
puis on tape
ibpdv([x.ln(x),-1],0)
On obtient :
-x+x.ln(x)
On tape :
ibpdv(ln(x),x,x,1,2)
On obtient :
[2*ln(2),-1]
3.8. INTEGRAL
51
On tape :
ibpdv(ln(x),x,x,2,3)
On obtient :
[3*ln(3)-2*ln(2),-1]
puis on tape :
ibpdv([3*ln(3)-2*ln(2),-1],0,x,2,3)
On obtient :
-1+3*ln(3)-2*ln(2)
3.8.2
ibpu permet de chercher une primitive (ou de calculer une intgrale dfinie) dune
expression de la forme u(x).v 0 (x).
ibpu a deux paramtres pour les primitives et cinq paramtres pour les intgrales
dfinies :
soit une expression de la forme u(x).v 0 (x) et u(x) (ou une liste de deux
expressions [F (x), u(x) v 0 (x)] et u(x)),
soit une expression de la forme g(x) et 0 (ou une liste de deux expressions
[F (x), g(x)] et 0).
pour les intgrales dfinies, il faut rajouter trois autres paramtres : le nom
de la variable et les bornes.
Valeur renvoye par ibpu selon ses paramtres :
ibpu(u(x).v(x),u(x)) (resp
ibpu([F(x),u(x).v(x)],u(x))) renvoie :
si u(x) 6= 0, une liste forme de u(x).v(x) et de v(x).u0 (x) (resp une liste
forme de F (x) + u(x).v(x) et de v(x).u0 (x)),
ibpu(g(x),0) (resp ibpu([F(x),g(x)],0)) renvoie :
G(x) une primitive de g(x) (resp F (x) + G(x) o diff(G(x))=g(x)).
ibpu(u(x)*v(x),u(x),x,a,b) (resp
ibpu([F(x),u(x)*v(x)],u(x),x,a,b)) renvoie :
si u(x) 6= 0, une liste forme de u(b).v(b) u(a).v(a) et de v(x).u0 (x)
(resp une liste forme de F (b) + u(b).v(b) F (a) u(a).v(a) et de
v(x).u0 (x)),
si le deuxime argument est nul, ibpu(g(x),0,x,a,b) renvoie :
G(b) G(a) o G(x) une primitive de g(x) (resp F (x) + G(b) G(a)
o G(x) est une primitive de g(x)).
On tape :
ibpu(ln(x),ln(x))
On obtient :
[x.ln(x),-1]
puis on tape :
52
On obtient :
-x+x.ln(x)
On tape :
ibpu(ln(x),ln(x),x,2,3)
On obtient :
[3*ln(3)-2*ln(2),-1]
puis on tape :
ibpu([3*ln(3)-2*ln(2),-1],0,x,2,3)
On obtient :
-1+3*ln(3)-2*ln(2)
3.8.3
3.9. LIMITS
3.9
3.9.1
53
Limits
Somme de Riemann : sum_riemann
sum_riemann a deux arguments : une expression Xpr dpendant de deux variables et la liste des noms de ces deux variables.
sum_riemann(Xpr(n,k),[n,k])
renvoie un quivalent,
Pn1 au voisinage de n =
P
P
Xpr(n,
k)
ou
de
+, de nk=1 Xpr(n, k) ou de n1
k=1 Xpr(n, k), lorsque
k=0
la somme considre est une somme de Riemann associe une fonction continue
sur [0,1] ou rpond quand la recherche a t infructueuse "ce nest probablement
pas une somme de Riemann" .
n
X
k2
Soit Sn =
.
n3
k=1
Calculer lim Sn .
n+
On tape :
sum_riemann(k^2/n^3,[n,k])
On obtient :
1/3
n
X
k3
.
n4
k=1
Calculer lim Sn .
Soit Sn =
n+
On tape :
sum_riemann(k^3/n^4,[n,k])
On obtient :
1/4
Calculer lim (
n+
On tape :
1
1
1
+
+ ... +
).
n+1 n+2
n+n
sum_riemann(1/(n+k),[n,k])
On obtient :
ln(2)
3.9.2
taylor
peut avoir de un quatre paramtres :
lexpression dvelopper, x=a (par dfaut x=0), lordre du dveloppement (par
dfaut 5), ou encore :
lexpression dvelopper, x, lordre du dveloppement (par dfaut 5) et le point
au voisinage duquel on veut le dveloppement (par dfaut 0).
Remarque on peut aussi mettre x,a,n au lieu de x=a,n
taylor renvoie un polynme en x-a, plus un reste que Xcas crit :
54
(x-a)^n*order_size(x-a)
cela signifie que lon a un dveloppement limit lordre n1 (ou lordre p < n).
En effet order_size dsigne une fonction telle que, quelque soit r positif :
x^r*order_size(x) tend vers zro quand x tend vers zro.
Par exemple, les fonctions constantes, la fonction log (ou ln), sont des fonctions
order_size.
On tape :
taylor(sin(x),x=1,2)
Ou on tape (attention lordre des arguments !) :
taylor(sin(x),x,2,1)
On obtient :
sin(1)+cos(1)*(x-1)-(sin(1)/2)*(x-1)^2+(x-1)^3*order_size(x-1)
3.9.3
3.10
Transform
3.10.1
laplace a 1, 2 ou 3 arguments :
lexpression que lon transforme et ventuellement le nom dune ou deux variables.
Lexpression est une expression de la variable courante (ici x) ou lexpression que
lon transforme est une expression de la variable donne comme deuxime argument.
laplace est la transforme de Laplace de lexpression donne comme argument.
Le rsultat de laplace est une expression de variable le troisime argument ou
par dfaut le second argument ou par dfaut x.
On tape :
laplace(sin(x))
3.10. TRANSFORM
55
On obtient :
1/(x^2+1)
Ou on tape :
laplace(sin(t),t)
On obtient :
1/(t^2+1)
Ou on tape :
laplace(sin(x),x,t)
On obtient :
1/(t^2+1)
Ou on tape :
laplace(sin(t),t,s)
On obtient :
1/(s^2+1)
3.10.2
3.10.3
invlaplace
ilaplace a 1, 2 ou 3 arguments :
lexpression que lon transforme et ventuellement le nom dune ou deux variables.
Lexpression est une expression de la variable courante (ici x) ou lexpression que
lon transforme est une expression de la variable donne comme deuxime argument.
invlaplace est la transforme de Laplace inverse de lexpression donne comme
argument. Le rsultat de invlaplace est une expression de variable le troisime
argument ou par dfaut le second argument ou par dfaut x.
On tape :
invlaplace(1/(x^2+1))
On obtient :
sin(x)
Ou on tape :
invlaplace(1/(t^2+1),t)
On obtient :
sin(t)
Ou on tape :
56
On obtient :
sin(x)
Remarque :
On utilise la transforme de Laplace (laplace) et la transforme de Laplace inverse (ilaplace ou invlaplace) pour rsoudre des quations diffrentielles
linaires coefficients constants, par exemple :
y00 + p.y0 + q.y = f (x)
y(0) = a y0(0) = b
En notant L la transforme de Laplace, on a les relations suivantes :
Z +
L(y)(x) =
ex.u y(u)du
0 Z
1
L1 (g)(x) =
ez.x g(z)dz
2i C
o C est une courbe ferme contenant les ples de g.
Exemple :
Rsoudre :
y00 6.y0 + 9.y = x.e3.x ,
y(0) = c_0,
y0(0) = c_1
Ici, p = 6, q = 9.
On tape :
laplace(x*exp(3*x))
On obtient :
1/(x^ 2-6*x+9)
On tape :
ilaplace((1/(x^2-6*x+9)+(x-6)*c_0+c_1)/(x^2-6*x+9))
On obtient
(216*x^3-3888*x*c_0+1296*x*c_1+1296*c_0)*exp(3*x)/1296
aprs simplification et factorisation (commande factor) la solution y scrit :
(-18*c_0*x+6*c_0+x^3+6*x*c_1)*exp(3*x)/6
On peut bien sr taper directement :
desolve(y-6*y+9*y=x*exp(3*x),y)
On obtient bien :
exp(3*x)*(-18*c_0*x+6*c_0+x^3+6*x*c_1)/6
3.10. TRANSFORM
3.10.4
57
fft a comme argument une liste (ou une squence) [a0 , ..aN1 ] o N est une puissance de deux.
fft renvoie la liste [b0 , ..bN1 ] tel que pour k=0..N-1 on ait :
N1
X
kj
fft([a0 , ..aN1 ])[k] = bk =
xj N
avec N racine N -ime de lunit.
j=0
On tape :
fft(0,1,1,0)
On obtient :
[2., -1-i, 0., -1+i]
Remarque On peut aussi travailler sur un corps fini Z/pZ, en indiquant une racine
N -ime primitive de lunit en 2ime argument et p en 3ime argument de fft.
3.10.5
ifft a comme argument une liste ou une squence [b0 , ..bN1 ] o N est une puissance de deux.
ifft renvoie la liste [a0 , ..aN1 ] tel que :
fft([a0 , ..aN1 ]) = [b0 , ..bN1 ].
On tape :
ifft([2,-1-i,0,-1+i])
Ou on tape :
ifft(2,-1-i,0,-1+i)
On obtient :
[0., 1., 1., 0.]
Remarque On peut aussi travailler sur un corps fini Z/pZ, en indiquant une racine
N -ime primitive de lunit en 2ime argument et p en 3ime argument de ifft.
58
Chapitre 4
Le menu Solve
4.1
60
Ou on tape :
solve({-x^2+y=2,x^2+y=0},{x,y})
On obtient :
{}
4.2
4.3
61
4.4
62
4.4.1
63
G_0*cos(x)+(x+2*G_1)/2*sin(x)
c_0, c_1 sont les constantes dintgration : y(0)=c_0 et y(0)=c_1.
On tape, si veut les solutions vrifiant y(0) = 1 :
deSolve([y+y=cos(x),y(0)=1],y)
On obtient
[cos(x)+(x+2*c_1)/2*sin(x)]
les composantes de ce vecteur sont solutions (ici on a une seule composante car on
obtient une seule solution dpendant de la constante c_1).
4.5
4.6
64
On tape :
odesolve(sin(t*y),[t,y],[0,1],2)
ou :
odesolve(sin(t*y),t=0..2,y,1)
ou :
odesolve(0..2,(t,y)->sin(t*y),1)
ou encore on dfinit la fonction :
f(t,y):=sin(t*y)
et on tape :
odesolve(0..2,f,1)
On obtient :
[1.82241255674]
puis on tape :
odesolve(0..2,f,1,tstep=0.3)
On obtient :
[1.82241255675]
On tape :
odesolve(sin(t*y),t=0..2,y,1,tstep=0.5)
On obtient :
[1.82241255675]
On tape :
odesolve(sin(t*y),t=0..2,y,1,tstep=0.5,curve)
On obtient :
[[0.0,[1.0]],[0.3906,[1.07811817892]],[0.760963058921,[1.30972370161]]
On tape :
odesolve(sin(t*y),t=0..2,y,1,curve)
Ou on tape :
odesolve(sin(t*y),t=0..2,y,1,tstep=0.3,curve)
On obtient :
[[0.0,[1.0]],[0.3781,[1.07309655677]],[0.6781,[1.24392692452]],[0.9781
4.6.1
65
linsolve permet de rsoudre un systme dquations linaires o chaque quation est de la forme Xpr = 0 o Xpr est une expression.
linsolve a comme paramtres la liste des quations et la liste des variables.
linsolve renvoie une liste qui est solution du systme dquations.
linsolve permet de rsoudre aussi un systme dquations linaires dans Z/nZ.
On tape :
linsolve([2*x+y+z=1,x+y+2*z=1,x+2*y+z=4],[x,y,z])
On obtient :
[1/-2,5/2,1/-2]
donc
1
5
1
x = ,y = ,z =
2
2
2
2x + y + z = 1
x + y + 2z = 1
x + 2y + z = 4
66
Chapitre 5
Le menu Rewrite
5.1
5.2
68
5.3
69
5.4
5.4.1
Exp & Ln
Transformer exp(n*ln(x)) en puissance : exp2pow
70
5.4.2
5.4.3
5.5. SINE
5.4.4
71
5.5
5.5.1
Sine
Transformer les arcsin en arccos : asin2acos
5.5.2
72
5.5.3
5.6
5.6.1
Cosine
Transformer les arccos en arcsin : acos2asin
5.6.2
x
arccos(x) par arctan(
).
2
1 x2
On tape :
acos2atan(acos(x))
On obtient :
pi/2-atan(x/sqrt(1-x^2))
5.6.3
5.7. TANGENT
5.7
5.7.1
73
Tangent
Transformer les arctan en arcsin : atan2asin
5.7.2
).
arctan(x) par arccos(
2
1 + x2
On tape :
atan2acos(atan(x))
On obtient :
pi/2-acos(x/sqrt(1+x^2))
5.7.3
5.7.4
74
On tape :
halftan(sin(2*x)/(1+cos(2*x)))
On obtient :
2*tan(2*x/2)/((tan(2*x/2))^2+1)/
(1+(1-(tan(2*x/2))^2)/((tan(2*x/2))^2+1))
Et, aprs simplification avec simplify(Ans), on obtient :
tan(x)
5.8
5.8.1
Trig
Simplifier en privilgiant les sinus : trigsin
5.8.2
5.8.3
5.8. TRIG
5.8.4
75
5.8.5
5.8.6
76
On obtient :
sqrt(2)*cos(2*x-pi/4)
5.8.7
Chapitre 6
Le menu Integer
6.1
6.2
6.3
ifactors renvoie la liste des facteurs premiers dun entier avec leur multiplicit.
On tape :
ifactors(45)
On obtient :
[3,2,5,1]
en effet 45 = 32 51
77
78
6.4
gcd renvoie le PGCD de deux ou plusieurs entiers (voir 7.5 pour le PGCD de
polynmes).
On tape :
gcd(45,10)
On obtient :
5
On tape :
gcd(40,12,16,24)
On obtient :
4
6.5
6.6
6.6.1
Prime
Test pour savoir si un nombre est premier : isPrime
6.6. PRIME
6.6.2
79
6.6.3 nextprime
nextprime(n) renvoie le nombre premier p qui se trouve juste aprs n (p>n).
On tape :
nextprime(11)
On obtient :
13
On tape :
nextprime(1234567)
On obtient :
1234577
6.6.4 prevprime
prevprime(n) renvoie le nombre premier p qui se trouve juste avant n (p<n).
On tape :
prevprime(11)
On obtient :
7
On tape :
prevprime(1234567)
On obtient :
1234547
80
6.6.5
6.7
6.7.1
Division
Quotient de la division euclidienne : iquo
6.7.2
6.7. DIVISION
6.7.3
81
d = c + k lcm(p, q)
l vrifie
d=a
(mod p),
d = b (mod q)
6.7.4
82
Chapitre 7
Le menu Polynomial
7.1
proot a comme argument un polynme ou le vecteur de composantes les coefficients dun polynme (par ordre dcroissant).
proot renvoie un vecteur dont les composantes sont les racines numriques du
polynme.
Pour chercher les racines numriques de P (x) = x3 + 1, on tape :
proot([1,0,0,1])
ou on tape :
proot(x^3+1)
On obtient :
[-1,0.5+0.866025403784*i,0.5-0.866025403784*i]
On tape pour avoir les racines numriques de x2 3 :
proot([1,0,-3])
ou :
proot(x^2-3)
On obtient :
[1.73205080757,-1.73205080757]
Pour chercher les racines numriques de P (x) = x3 5 x2 + 8 x 4, on tape :
proot([1,-5,8,-4])
ou on tape :
proot(x^3-5x^2+8x-4)
On obtient :
[1.,2.,2.]
83
84
7.2
coeff a trois arguments : le polynme, le nom de la variable (ou la liste des noms
des variables) le degr (ou la liste des degrs des variables).
coeff renvoie le coefficient du polynme de degr spcifi.
On tape :
coeff(x^3-5x^2+8x-4,2)
On obtient :
-5
On tape :
coeff(-x^4+3*x*y^2+x,y,2)
On obtient :
3*x
On tape :
coeff(-x^4+3*x*y^2+x,[x,y],[1,2])
On obtient :
3
7.3
7.4
85
7.5
gcd dsigne le PGCD (plus grand commun diviseur) de deux polynmes pouvant avoir plusieurs variables et aussi le PGCD dune liste de polynmes ou dune
squence de polynmes pouvant avoir plusieurs variables (voir 6.4 pour le PGCD
dentiers).
On peut aussi mettre comme paramtres deux listes de mme longueur (ou une
matrice ayant 2 lignes), dans ce cas gcd renvoie le PGCD des lments de mme
indice (ou dune mme colonne). On tape :
gcd(x^2+2*x+1,x^2-1)
On obtient :
x+1
On tape :
gcd([x^2-4,x*y-y],[x^3-8,y^2-x^2*y])
86
Ou on tape :
gcd([[x^2-4,x*y-y],[x^3-8,y^2-x^2*y]])
On obtient :
[x-2,y]
On tape :
gcd(x^2-2*x+1,x^3-1,x^2-1,x^2+x-2)
ou
gcd([x^2-2*x+1,x^3-1,x^2-1,x^2+x-2])
On obtient :
x-1
On tape :
A:=z^2+x^2*y^2*z^2+(-(y^2))*z^2+(-(x^2))*z^2
B:=x^3*y^3*z+(-(y^3))*z+x^3*z-z
C:=gcd(A,B)
On obtient :
z*x*y+z*x-z*y-z
On tape :
factor(A)
On obtient :
(y-1)*(y+1)*(x-1)*(x+1)*z^2
On tape :
factor(B)
On obtient :
(x^2+x+1)*(x-1)*(y+1)*(y^2-y+1)*z
On tape :
factor(C)
On obtient :
(y+1)*(x-1)*z
Pour les polynmes coefficients modulaire , on tape, par exemple, car %% sert
ici dsigner un nombre modulaire :
87
gcd((x^2+2*x+2) %% 5,(x^2-1) %% 5)
On obtient :
(1 %% 5)*x -1 %% 5
Mais si on tape :
gcd(x^2+2*x+2,x^2-1) %% 5
On obtient :
1 %% 5
car lopration modulaire se fait aprs le calcul du PGCD qui a t calcul dans
Z[X].
7.6
lcm dsigne le PPCM (plus petit commun multiple) de deux polynmes pouvant
avoir plusieurs variables et aussi le PPCM dune liste de polynmes ou dune
squence de polynmes pouvant avoir plusieurs variables (voir ?? pour le PPCM
dentiers).
On tape :
lcm(x^2+2*x+1,x^2-1)
On obtient :
(x+1)*(x^2-1)
On tape :
lcm(x,x^2+2*x+1,x^2-1)
ou
lcm([x,x^2+2*x+1,x^2-1])
On obtient :
(x^2+x)*(x^2-1)
On tape :
A:=z^2+x^2*y^2*z^2+(-(y^2))*z^2+(-(x^2))*z^2
B:=x^3*y^3*z+(-(y^3))*z+x^3*z-z
D:=lcm(A,B)
On obtient :
(x*y*z-x*z+y*z-z)*(x^3*y^3*z+(-(y^3))*z+x^3*z-z)
On tape :
88
On obtient :
(y-1)*(y+1)*(x-1)*(x+1)*z^2
On tape :
factor(B)
On obtient :
(x^2+x+1)*(x-1)*(y+1)*(y^2-y+1)*z
On tape :
factor(D)
On obtient :
(x-1)*(x+1)*(x^2+x+1)*(y-1)*(y+1)*(y^2-y+1)*z^2
7.7
7.7.1
Create
Transformer un polynme en une liste (format interne rcursif
dense) : symb2poly
7.7. CREATE
89
On tape :
symb2poly(x*y^2+2y-1,x)
On obtient :
[y^2,2y-1]
On tape :
symb2poly(x*y^2+2y-1,y)
On obtient :
[x,2,-1]
7.7.2
poly2symb a comme argument la liste des coefficients par puissances dcroissantes dun polynme et un nom de variable formelle (par dfaut x) (resp le format interne creux distribu du polynme cest dire la somme de monmes tels
que : %%%{c,[px,py,pz] %%%} et une liste de variables formelles tel que
[x,y,z] ce qui reprsente le monme cxpx y py z pz ).
poly2symb transforme la liste des coefficients par puissances dcroissantes dun
polynme (resp la somme de %%%{c,[px,py,pz] %%%}), en son criture polynmiale (selon Horner), en utilisant le nom de la variable donn en deuxime argument
(resp en utilisant la liste de variables donn en deuxime argument [x,y,z]).
On tape :
poly2symb([1,0,-1])
Ou on tape :
poly2symb([1,0,-1],x)
On obtient :
x*x-1
On tape :
poly2symb([1,0,-1],y)
On obtient :
y*y-1
7.7.3
pcoeff (ou pcoef) a comme argument, une liste de composantes les racines
dun polynme P .
pcoeff (ou pcoef) renvoie une liste de composantes, les coefficients du polynme
unitaire P (par ordre dcroissant).
On tape :
pcoef([1,2,0,0,3])
On obtient :
[1,-6,11,-6,0,0]
cest dire (x 1)(x 2)(x2 )(x 3) = x5 6x4 + 11x3 6x2 .
90
7.7.4
7.7.5
7.7. CREATE
91
On obtient :
[1,-1]
Ou on tape :
pmin([[1,0],[0,1]],x)
On obtient :
x-1
Donc le polynme minimal de [[1,0],[0,1]] est x 1.
On tape :
pmin([[1,1,0],[0,1,1],[0,0,1]])
On obtient :
[1,-3,3,-1]
On tape :
pmin([[1,1,0],[0,1,1],[0,0,1]],x)
On obtient :
x^3-3*x^2+3*x-1
Donc le polynme minimal de [[1,1,0],[0,1,1],[0,0,1]] est x3 3 x2 + 3 x 1.
On tape :
pmin([[2,1,0],[0,2,0],[0,0,2]])
On obtient :
[1,-4,4]
On tape :
pmin([[2,1,0],[0,2,0],[0,0,2]],x)
On obtient :
x^2-4*x+4
Donc le polynme minimal de [[2,1,0],[0,2,0],[0,0,2]] est x2 4x + 4.
7.7.6
92
7.8
7.8.1
Algebra
Quotient euclidien de 2 polynmes : quo
7.8. ALGEBRA
7.8.2
93
94
7.8.3
7.8.4
7.8. ALGEBRA
7.8.5
95
7.8.6
sturmab a quatre paramtres : une expression polynmiale P , le nom de la variable et deux nombres a et b.
si a et b sont rels, sturmab renvoie soit un nombre strictement positif
qui est le nombre de changements de signe de P sur ]a; b], soit 0 si P
reste de signe constant positif ou nul sur ]a; b], soit -1 si P reste de signe
constant ngatif ou nul sur ]a; b]. Ainsi, sturmab permet davoir le nombre
de racines sur [a, b[ du polynme P/G avec G = gcd(P, diff(P )).
si a ou b est complexe, le nombre de racines complexes lintrieur du rectangle de sommets opposs a et b.
On tape :
sturmab(x^2*(x^3+2),x,-2,0)
On obtient :
1
On tape :
sturmab(x^3-1,x,-2-i,5+3i)
On obtient :
3
On tape :
sturmab(x^3-1,x,-i,5+3i)
On obtient :
1
Attention ! ! ! !
P doit tre donn par son expression symbolique et, si on tape :
sturmab([1,0,0,2,0,0],x,-2,0),
on obtient :
Bad argument type.
96
7.8.7
chinrem a comme argument deux listes ayant chacun comme composantes deux
polynmes ventuellement donns par la liste de leurs coefficients par ordre dcroissant.
chinrem renvoie une liste de composantes deux polynmes.
chinrem([A,R],[B,Q]) renvoie la liste des polynmes P et S vrifiant :
S = R.Q,
P =A
(mod R), P = B
(mod Q)
Il existe toujours une solution P si R et Q sont premiers entre eux, et toutes les
solutions sont congrues modulo S=R*Q
Trouver les solutions P (x) de :
P (x) = x
P (x) = x 1
mod (x2 + 1)
mod (x2 1)
On tape :
chinrem([[1,0],[1,0,1]],[[1,-1],[1,0,-1]])
On obtient :
[[1/-2,1,1/-2],[1,0,0,0,-1]]
ou on tape :
chinrem([x,x^2+1],[x-1,x^2-1])
On obtient :
[-1/2*x^2+x-1/2,x^4-1]
donc P (x) =
Autre exemple :
On tape :
x2 2.x + 1
(mod x4 1)
2
chinrem([[1,2],[1,0,1]],[[1,1],[1,1,1]])
On obtient :
[[-1,-1,0,1],[1,1,2,1,1]]
ou on tape :
chinrem([x+2,x^2+1],[x+1,x^2+x+1])
On obtient :
[-x^3-x^2+1,x^4+x^3+2*x^2+x+1]
7.9. SPECIAL
7.9
7.9.1
97
Special
Polynme cyclotomique : cyclotomic
98
7.9.2
gbasis a au moins deux arguments : une liste de polynmes de plusieurs variables et la liste du nom de ces variables.
gbasis renvoie une base de Grbner de lidal polynomial engendr par les
polynmes donns dans le premier argument.
On choisit dordonner les monmes selon lordre lexicographique en accord avec
la liste donne par le dernier argument et selon les puissances dcroissantes : par
exemple on crira x2 y 4 z 3 puis x2 y 3 z 4 si le deuxime argument est [x, y, z]
car (2, 4, 3) > (2, 3, 4) mais on crira x2 y 3 z 4 puis x2 y 4 z 3 si le deuxime
argument est [x, z, y].
Si I est un idal et si (Gk )kK est une base de Grbner de lidal I alors, si F
est un polynme non nul de I, le terme dominant de F est divisible par le terme
dominant dun Gk .
Proprit : Si on fait la division euclidienne de F par un des Gk puis, si on recommence avec le reste obtenu et le Gk suivant, on finit par obtenir un reste nul.
On tape :
gbasis([2*x*y-y^2,x^2-2*x*y],[x,y])
On obtient :
[y^3,x*y+(-1/2)*y^2,x^2-y^2]
7.9.3
7.9. SPECIAL
7.9.4
99
7.9.5
x1
2
= 0 et pour x = 3 on a
x1
2
= 1.
lagrange([1,3],[0,1],y)
On obtient :
1/2*(y-1)
100
7.9.6
7.9. SPECIAL
101
laguerre(2,y)
On obtient :
1/2*a^2-a*y+3/2*a+1/2*y^2-2*y+1)
On tape il faut que b soit purg (b:=b) :
laguerre(2,y,b)
On obtient :
1/2*b^2-b*y+3/2*b+1/2*y^2-2*y+1
7.9.7
7.9.8
102
7.9.9
7.9. SPECIAL
103
8*x^3+-4*x
On tape :
tchebyshev2(3,y)
On obtient :
8*y^3+-4*y
en effet :
sin(4.x) = sin(x) (8 cos(x)3 4. cos(x)) = sin(x) U (3, cos(x)).
104
Chapitre 8
Le menu Plot
Remarque
Le trac de la plupart des commandes commencant par plot ne se fait pas bien
depuis lcran CAS : il est donc prfierable dutiliser lapplication de gomtrie
pour faire les graphes correspondant ces commandes.
8.1
GC:=
On complte en
GC:=gf
Puison appuie sur la touche Plot pour avoir la vue graphique de lapplication de
gomtrie, on obtient :
le graphe de x^2-2
105
106
8.2
plotimplicit permet de tracer des courbes dfinies de faon implicite par une
expression. Pour que Xcas ne cherche pas factoriser lexpression, la commande
plotimplicit peut tre utilise avec loption unfactored ou sans_factoriser
mise comme dernier paramtre, :
avec unfactored lexpression ne sera pas modifie,
sans unfactored Xcas rduit lexpression au mme dnominateur puis
cherche factoriser le numrateur.
plotimplicit(f(x,y),x,y) ou plotimplicit(f(x,y),[x,y])
trace la reprsentation graphique de la courbe dfinie implicitement par f (x, y) =
0 lorsque x (resp y) varie selon WX-, WX+ (resp WY-, WY+) dfini dans
cfg,
plotimplicit(f(x,y),x=0..1,y=-1..1) ou
plotimplicit(f(x,y),[x=0..1,y=-1..1]) trace la reprsentation graphique de la courbe dfinie implicitement par f (x, y) = 0 lorsque
0 x 1 et 1 y 1 (mettre des bornes un peu plus grandes pour ne
pas avoir de manques !).
On tape :
plotimplicit(x^2+y^2-1,[x,y])
Ou on tape :
plotimplicit(x^2+y^2-1,{x,y},unfactored)
Ou on tape :
plotimplicit(x^2+y^2-1,x,y,unfactored)
On obtient :
circle(point(O,O),1)
On tape :
g:=plotimplicit(x^2+y^2-1,[x,y])
Puis dans la vue symbolique de lapplication de gomtrie (Symb), on fait New il
scrit par exemple :
GC:=
On complte en
GC:=g
8.3
8.4
108
On obtient :
Des segments de longueur 1 et de pente 4*sin(t*y) qui
reprsentent les tangentes au point situ en leur
milieu. Ces points espacs de 0.7
On tape :
plotfield(5*[-y,x],[x=-1..1,y=-1..1])
On obtient :
Des vecteurs [y, x] sont tracs aux points (x, y). Ces
vecteurs reprsentent des vecteurs tangents en leur
origine aux courbes solutions du systme
x(t)0 = y, y(t)0 = x. Ils sont dirigs selon les t
croissants.
On tape :
plotfield(5*[-y,x],[x=-1..1,y=-1..1],normalize)
On obtient :
Des segments de longueur 1 et de pente y/x qui
reprsentent les tangentes au point situ en leur
milieu aux courbes solutions du systme
x(t)0 = y, y(t)0 = x.
8.5
GC:=
On complte en
GC:=g
GC:=
On complte en
GC:=g
8.6
On peut tracer les solutions de lquation diffrentielle y 0 = f (t, y) ou du systme dquations diffrentielles x0 = u(t, x, y), y 0 = v(t, x, y) et on peut spcifier
les plages de valeurs des paramtres.
plotode(f(t,y),[t,y],[t0,y0]) trace en fonction du temps la solution y(t) de lquation diffrentielle y 0 = f (t, y) passant par le point
(t0,y0), o f (t, y) dsigne une expression dpendant de la variable de
temps t et de la variable y.
Par dfaut, t varie dans les 2 directions. On peut spcifier la plage du temps
par le paramtre optionnel t=tmin..tmax.
Lorsque y = (X, Y ) est un vecteur de longueur 2 et f valeurs dans R2 , on
peut galement reprsenter dans lespace (t, X, Y ) ou dans le plan (X, Y )
la solution dune quation diffrentielle y 0 = f (t, y) cest dire [X 0 , Y 0 ] =
[f (t, X, Y )]. Pour cela, il suffit de remplacer y par le noms des variables
X, Y et la valeur initiale par les deux valeurs initiales des variables au temps
t0 .
On tape :
plotode(sin(t*y),[t,y],[0,1])
On obtient :
Le graphe de la solution de y=sin(t,y) passant par le point (0,1) est trac
110
plotode(5*[-y,x],[t=0..1,x,y],[0,0.3,0.7],tstep=0.05,plan)
On obtient :
Le graphe de la solution de x=-y,y=x pour t=0 passant par le point (0.3,0.7)
8.7
plotlist a pour argument une liste l ou une matrice ayant deux colonnes.
plotlist permet de visualiser les segments reliant le nuage de points ayant pour
abscisse [0,1,2...n] et pour ordonne l ou pour coordonnes une ligne de la
matrice. listplot ou plotlist relie par des segments de droites, les diffrents
points du nuage, mais sans rordonner les points contrairement polygonplot
qui rordonne les points selon leur abscisse puis les relie.
On tape :
a:=plotlist([0,1,4,9,16])
Ou on tape :
a:=plotlist([[0,0],[1,1],[2,4],[3,9],[4,16]])
Puis dans la vue symbolique de lapplication de gomtrie (Symb), on fait New il
scrit par exemple :
GD:=
On complte en
GD:=a
Troisime partie
111
Chapitre 9
9.2
114
On obtient :
-6
On tape :
FLOOR(2.5)
On obtient :
2
9.3
9.4
Partie fractionnaire : FP
:
FP(45/8)
On obtient :
0.625
On tape dans CAS :
FP(45/8)
On obtient :
5/8
On tape dans
:
FP(-45/8)
On obtient :
-0.625
On tape dans CAS :
FP(-45/8)
On obtient :
-5/8
9.5
116
9.6
9.7
9.8
118
Chapitre 10
Arithmtique
10.1
MAX renvoie le maximum des lments dune squence ou dune liste de rels.
On tape :
MAX(4,5,8,2,6)
On obtient :
8
10.2
MIN renvoie le minimum des lments dune squence ou dune liste de rels.
On tape :
MIN(4,5,8,2,6)
On obtient :
2
10.3 MOD
MOD est une fonction infixe.
a MOD b renvoie le reste de la division euclidienne de a par b.
On tape :
22 MOD 5
On obtient :
2
119
120
10.4 FNROOT
FNROOT renvoe une racine approche de lexpression donne en premier argument
pour la variable donne en second argument et qui soit proche du 3ime argument.
On tape en mode rel (i non coch dans le Shift-CAS (Settings)) :
FNROOT(x^4+3x-4)
On obtient :
-1.74295920217,1.
On tape en mode rel (i non coch dans le Shift-CAS (Settings)) :
FNROOT(x^4+3x-4,x,-2)
On obtient :
-1.74295920217
On tape en mode complexe (i coch dans le Shift-CAS (Settings)) : :
FNROOT(x^4+3x-4)
On obtient :
[-1.74295920217,0.371479601083+1.46865601291*i,
0.371479601083-1.46865601291*i,1.0]
10.5 %
a
b (a pour cent de b).
%(a,b) renvoie
100
On tape :
%(5,70)
On obtient :
3.5
On tape :
%(5,90)
On obtient :
4.5
10.6
Complexe
10.6.1
CONJ
CONJ On tape :
CONJ(1+3*i)
On obtient :
1-3*i
10.7. EXPONENTIELLE
121
10.6.2 IM
On tape :
IM(1+3*i)
On obtient :
3
10.6.3 RE
On tape :
RE(1+3*i)
On obtient :
1
10.6.4 SIGN
On tape :
SIGN(1+3*i)
On obtient :
(1+3*i)/sqrt(10)
10.6.5
ABS renvoie :
la valeur absolue dun rel,
le module dun nombre complexe,
P
la longueur dun vecteur vj (( nj=1 |vj |2 )1/2 ),
P
la norme de Schur ou de Frobenius dune matrice aj,k (( nj,k=1 |aj,k |2 )1/2 ).
On tape :
ABS(1+3*i)
On obtient :
sqrt(10)
10.7
Exponentielle
122
On obtient :
sqrt(10)*10^1
On tape :
alog10(10)
On obtient :
10000000000
Remarque Si on slectionne ALOG depuis
, on a :
ALOG(3/2) renvoie 31.6227766017 qui est la valeur approche de sqrt(10)*10
1010 prs.
10.7.2
EXPM1
10.7.3 LNP1
LNP1 dsigne la fonction x > LN (x + 1)
On tape :
LNP1(4)
On obtient :
LN(5)
On tape :
LNP1(2.*10^-4)
On obtient :
1.99980002666E-4
Chapitre 11
Fonctions trigonomtriques
11.1 CSC
CSC(x) renvoie 1/SIN(x) : cest la fonction coscante.
On tape :
CSC(pi/3)
On obtient aprs simplification :
2*sqrt(3)/3
11.2 ACSC
ACSC(x) renvoie ASIN(1/x) : cest la fonction rciproque de la fonction coscante.
On tape :
ACSC(sqrt(2))
On obtient aprs simplification :
pi/4
11.3 SEC
SEC(x) renvoie 1/COS(x) : cest la fonction scante.
On tape :
SEC(pi/3)
On obtient :
2
123
124
11.4 ASEC
ASEC(x) renvoie ACOS(1/x) : cest la fonction rciproque de la fonction scante.
On tape :
ASEC(2)
On obtient :
1/3*pi
11.5 COT
COT(x) renvoie COS(x)/SIN(x) : cest la fonction cotangente.
On tape :
COT(pi/3)
On obtient aprs simplification :
sqrt(3)/3
11.6 ACOT
ACOT(x) renvoie pi/2-ATAN(x) : cest la fonction rciproque de la fonction
cotangente.
On tape :
ACOT(sqrt(3))
On obtient aprs simplification :
pi/6
Chapitre 12
Fonctions hyperboliques
12.1 SINH
SINH(x) renvoie :
On tape :
exp(x) exp(x)
: cest la fonction sinus hyperbolique,
2
hyp2exp(SINH(ln(2)))
On obtient :
3/4
12.2 ASINH
ASINH est la fonction rciproque de la fonction sinus hyperbolique,
On tape :
ASINH(3/4)
On obtient :
ln(2)
12.3 COSH
COSH(x) renvoie :
On tape :
exp(x) + exp(x)
: cest la fonction cosinus hyperbolique,
2
COSH(0)
On obtient :
1
125
126
12.4 ACOSH
ACOSH est la fonction rciproque de la fonction cosinus hyperbolique,
On tape :
ACOSH(1)
On obtient :
0
12.5 TANH
TANH(x) renvoie :
exp(2x) 1
: cest la fonction tangente hyperbolique,
exp(2x) + 1
On tape :
TANH(ln(3))
On obtient :
4/5
12.6 ATANH
ATANH est la fonction rciproque de la fonction tangente hyperbolique,
On tape :
ATANH(4/5)
On obtient :
ln(9)/2
Chapitre 13
Fonctions de probabilit
13.1
Factorielle : !
13.2
128
13.3
13.4
Nombres alatoires
13.4.1
13.4.2
129
2
Pour avoir un nombre alatoire entier a entre b et c (b a c), on met b et
c comme arguments.
On tape :
RANDINT(4,6)
On obtient 4,5 ou 6, par exemple :
5
Pour avoir k nombres alatoires entiers a entre p et n (p a n) on met k,
p et n comme arguments. On tape :
RANDINT(4,2,6)
On obtient 4 nombres compris entre 2 et 6, par exemple :
[2,6,2,6]
13.4.3 RANDNORM
RANDNORM(mu,sigma) renvoie un rel alatoirement distribu selon la loi normale N (mu, sigma) (par dfaut mu = 0 et sigma = 1).
On tape :
RANDNORM()
Ou on tape :
RANDNORM(0,1)
On obtient, par exemple :
1.2440525851
On tape :
RANDNORM(1,2)
On obtient, par exemple :
-1.8799815939
13.4.4
130
13.5
Densit de probabilit
13.5.1
NORMALD
On tape :
NORMALD(0.5)
Ou on tape :
NORMALD(0,1,0.5)
On obtient :
0.352065326764
On tape :
NORMALD(1,2,0.5)
On obtient :
0.193334058401
13.5.2
STUDENT
On tape :
STUDENT(3,5.2)
On obtient :
0.00366574413491
13.5.3
CHISQUARE
On tape :
CHISQUARE(2,3.2)
On obtient :
0.100948258997
13.5.4
13.5.5
131
13.5.6
POISSON(mu,k) renvoie
On tape :
exp(mu) muk
.
k!
POISSON(0.5,2)
On obtient :
0.0758163324641
13.6
Fonction de rpartition
13.6.1
132
On tape :
NORMALD_CDF(1.96)
On obtient :
0.975002104852
On tape :
NORMALD_CDF(0,1.96)
On obtient :
0.475002104852
car NORMALD_CDF(0)=1/2 et 0.975002104852-0.5=0.475002104852
On tape :
NORMALD_CDF(1,2,1.96)
On obtient :
0.684386303484
On tape :
NORMALD_CDFnormal_cdf(1,2,1.1,2.9)
On obtient :
0.309005067853
13.6.2
Lorsquune variable alatoire X suit une loi de Student ayant n degrs de libert,
on a :
P roba(X x)= STUDENT_CDF(n,x).
P roba(x X y)= STUDENT_CDF(n,x,y).
On tape :
STUDENT_CDF(5,2)
On obtient :
0.949030260585
On tape :
STUDENT_CDF(5,-2)
On obtient :
0.0509697394149
13.6.3
133
13.6.4
134
On obtient :
0.767376082
On tape :
FISHER_CDF(3,5,2.,9.)
On obtient :
0.214096816262
car 0.981472898262-0.767376082=0.214096816262
13.6.5
13.6.6
135
Lorsquune variable alatoire X suit une loi de Poisson de paramtre mu, cest
dire de moyenne mu et dcart-type mu, on a :
P roba(X x)=POISSON_CDF( mu,x) avec X P(mu). et
P roba(x X y)=POISSON_CDF(mu,x,y)
POISSON_CDF(mu,x) est la fonction de rpartition de la loi de Poisson de
paramtre mu, On tape :
POISSON_CDF(10.0,3)
On obtient :
0.0103360506759
13.7
13.7.1
Lorsquune variable alatoire X suit une loi normale centre rduite, si on a NORMALD_ICDF(x)=h
cest que lon a :
P roba(X h)=x=NORMALD_CDF(h).
Lorsquune variable alatoire X suit une loi normale de moyenne et dcart-type
, si on a NORMALD_ICDF(, ,x)=h cest que lon a :
P roba(X h)=x=NORMALD_CDF(, ,h).
On tape :
NORMALD_ICDF(0.95)
Ou on tape :
NORMALD_ICDF(0,1,0.95)
On obtient :
1.64485362695
On tape :
NORMALD_ICDF(0.975)
On obtient :
1.95996398454
On tape :
NORMALD_ICDF(1,2,0.495)
On obtient :
0.974933060984
On tape :
NORMALD_ICDF(1,2,NORMALD_CDF(1,2,0.975))
136
On obtient :
0.975
On tape :
NORMALD_CDF(1,2,NORMALD_ICDF(1,2,0.495))
On obtient :
0.495
On tape :
NORMALD_ICDF(1,2,2.96*sqrt(2))
On obtient :
0.944423950497
13.7.2
Lorsquune variable alatoire X suit une loi de Student ayant n degrs de libert,
si on a STUDENT_ICDF(n,x)=h cest que :
P roba(X h)=x=STUDENT_CDF(n,h).
On tape :
STUDENT_ICDF(5,0.95)
On obtient :
2.01504837333
13.7.3
13.7.4
Lorsquune variable alatoire X suit une loi de Fisher-Sndcor ayant comme degrs de libert n1, n2, si on a :
FISHER_ICDF(n1,n2,x)=h cest que :
P roba(X h)=x=FISHER_CDF(n1,n2,h).
On tape :
137
FISHER_ICDF(5,3,0.95)
On obtient :
9.01345516752
On tape :
1/FISHER_ICDF(3,5,0.05)
On obtient :
9.01345516752
Remarque :
FISHER_ICDF(n1,n2,p)=1/FISHER_ICDF(n2,n1,1-p)
13.7.5
13.7.6
Lorsquune variable alatoire X suit une loi de Poisson de paramtre mu, cest
dire de moyenne mu et dcart-type mu, on a :
POISSON_ICDF(mu,t)= h quivaut
P roba(X h) =t= POISSON_CDF(mu,h) avec X P(mu).
POISSON_ICDF(mu,t) est linverse de la fonction de rpartition de la loi de
Poisson de paramtre mu, On tape :
POISSON_ICDF(10.0,0.975)
On obtient :
0.125110035721
138
Chapitre 14
Les listes
14.1 MAKELIST
MAKELIST cre une liste partir dune expression symbolique.
Par exemple, on cre une liste partir de X 2 + 1, en faisant varier la variable X de
2 6 avec un pas de 1 (1 peut tre omis), on tape :
MAKELIST(X^2+1,X,2,6)
On obtient :
{5,10,17,26,37}
On tape :
MAKELIST(0,X,1,10)
On obtient :
{0,0,0,0,0,0,0,0,0,0}
On cre une liste partir de X 2 + 1, en faisant varier la variable X de 2 6 avec
un pas de 2, on tape :
MAKELIST(X^2+1,X,2,6,2)
On obtient :
{5,17,37}
14.2 SORT
SORT trie dans lordre croissant les composantes dune liste. On tape :
SORT([12,2,31,24,15])
On obtient :
[2,12,15,24,31]
On tape :
SORT({12,2,31,24,15})
On obtient :
{2,12,15,24,31}
139
140
14.3 REVERSE
REVERSE cre une liste en inversant lordre des lments.
On tape :
REVERSE([1,22,3,4,5])
On obtient :
[5,4,3,22,1]
On tape :
REVERSE({1,22,3,4,5})
On obtient :
{5,4,3,22,1}
14.4 CONCAT
CONCAT concatne deux listes ou deux vecteurs ou deux chaines de caractres.
On tape :
CONCAT([1,2,3],[4,5])
On obtient :
[1,2,3,4,5]
On tape :
CONCAT({1,2,3},{4,5})
On obtient :
{1,2,3,4,5}
On tape :
CONCAT("BON","JOUR")
On obtient :
"BONJOUR"
On tape :
2=>A
CONCAT([1,A,3],[4,5])
On obtient :
[1,2,3,4,5]
On tape :
14.4. CONCAT
141
2=>A
CONCAT({1,A,3},{4,5})
On obtient :
{1,2,3,4,5}
Pour concatner une chaine et une liste en une liste on utilise CONCAT.
On tape :
2=>A
CONCAT([1,A,3]),"L1"
On obtient :
[1,2,3,"L1"]
On tape :
2=>A
CONCAT("L1",[1,A,3])
On obtient :
["L1",1,2,3]
Attention
Pour concatner une chaine et une liste en une chaine on utilise +.
On tape :
2=>A
"L1="+[1,A,3]
On obtient :
"L1=[1,2,3]"
On tape :
2=>A
[1,A,3]+"L1="
On obtient :
"[1,2,3]L1="
On tape :
2=>A
"L1="+{1,A,3}
On obtient :
"L1={1,2,3}"
142
14.5 POS
POS renvoie la position dun lment dans une liste cest dire POS renvoie
lindice de la premire occurence de llment ou 0 si llment nest pas dans
la liste.
On tape :
POS([4,3,1,2,3,4,5],4)
Ou on tape :
POS({4,3,1,2,3,4,5},4)
On obtient :
1
On tape :
POS([4,3,1,2,3,4,5],2)
Ou on tape :
POS({4,3,1,2,3,4,5},2)
On obtient :
4
On tape :
POS([4,3,1,2,3,4,5],6)
Ou on tape :
POS({4,3,1,2,3,4,5},6)
On obtient :
0
14.6 SIZE
SIZE renvoie la longueur de la liste donne en argument.
On tape :
SIZE([1,2,3])
On obtient :
3
On tape :
SIZE({1,2,3})
On obtient :
3
14.7. LIST
143
14.7 LIST
LIST renvoie la liste des diffrences entre les composantes de la liste donne en
argument.
On tape :
LIST([1,21,34,41,52])
On obtient :
[20,13,7,11]
On tape :
LIST({1,21,34,41,52})
On obtient :
{20,13,7,11}
14.8 LIST
LIST renvoie la somme des composantes de la liste donne en argument.
On tape :
LIST([1,2,3,4,5])
On obtient :
15
On tape :
LIST({1,2,3,4,5})
On obtient :
15
14.9 LIST
LIST renvoie le produit des composantes de la liste donne en argument.
On tape :
LIST([1,2,3,4,5])
On obtient :
120
On tape :
LIST({1,2,3,4,5})
On obtient :
120
144
Chapitre 15
15.2 char
char renvoie la chaine correspondant aux caractres ayant comme code ASCII
ceux de largument. On tape :
char(65)
ou
char([65])
ou
char({65})
On obtient :
"A"
On tape :
145
146
ou
char({65,66,67})
On obtient :
"ABC"
15.3
15.3.1
expr permet dutiliser une chane de chiffres ne commenant pas par un zro
comme un nombre entier crit en base 10 ou une chane de chiffres comportant un
point comme un nombre dcimal crit en base 10.
expr renvoie ce nombre entier On tape :
expr("123")+1
On obtient :
124
On tape :
expr("45.67")+2.12
On obtient :
47.79
expr permet aussi dutiliser une chane de chiffres ne comportant pas de 8, ni de
9, et commenant par un zro comme un nombre entier crit en base 8.
On tape :
expr("0123")
On obtient :
83
En effet 1 82 + 2 8 + 3 = 83
Remarque :
Si on tape expr("018") on obtient le nombre dcimale 18.0.
expr permet dutiliser une chane contenant des chiffres et les lettres a,b,c,d,e,f,
et commenant par 0x comme un nombre entier crit en base 16.
On tape :
expr("0x12f")
On obtient :
303
En effet 1 162 + 2 16 + 15 = 303
15.3.2
15.4
.
string value une expression et renvoie sa valeur sous la forme dune chane de
caractres.
On peut aussi utiliser la concatnation de lexpression avec une chane vide.
On tape :
string(ifactor(6))
Ou on tape :
ifactor(6)+""
Ou on tape :
""+ifactor(6)
On obtient :
"2*3"
On tape :
string((ifactor(6)))
On obtient :
"ifactor(6)"
148
15.5 inString
inString(l,c) teste si c est dans la chaine l et renvoie lindice de c ou 0.
On tape :
inString"ABCDEF","C"
On obtient :
3
On tape :
inString"ABCDEF","G"
On obtient :
0
15.6 left
left(l,n) renvoie la partie gauche de longueur n de la chaine l.
On tape :
left("ABCDEF",3)
On obtient :
"ABC"
15.7 right
right(l,n) renvoie la partie droite de longueur n de la chaine l.
On tape :
right("ABCDEF",2)
On obtient :
"EF"
15.8 mid
mid(l,d,n) renvoie la chaine extraite de la chaine l, debutant par le caractre
dindice d, et de longueur n (par dfaut n=dim(l)-d). On tape :
mid("ABCDEF",2,3)
On obtient :
"BCD"
On tape :
mid("ABCDEF",2)
On obtient :
"BCDEF"
15.9. ROTATE
149
15.9 rotate
rotate renvoie la chaine obtenue en mettant le dernier caractre en premier.
On tape :
rotate("ABC")
On obtient :
("CAB")
15.10 dim
dim renvoie la longueur de la chaine.
On tape :
dim("ABC")
On obtient :
3
On peut aussi utiliser SIZE
On tape :
SIZE("ABC")
On obtient :
3
15.11 +
+ de concatne 2 chaines.
On tape :
"ABC"+"DEF"
On obtient :
"ABCDEF"
On peut aussi utiliser CONCAT
On tape :
CONCAT("ABC","DEF")
On obtient :
"ABCDEF"
150
15.12
15.13
Chapitre 16
Les matrices
16.1
16.2
16.3
152
Ou on tape :
det([[1,2,4],[4,5,6],[7,8,9]])
On obtient :
-3/2
16.4
153
[[1,0,2],[0,1,-4]]
et on en dduit que x = 2 et y = 4.
On veut rsoudre le systme :
{x + y z = 5, 2x y = 7, x 2y + z = 2} par rapport x, y, z.
On tape :
rref([[1,1,-1,5],[2,-1,0,7],[1,-2,1,2]])
Ou on tape :
RREF([[1,1,-1,5],[2,-1,0,7],[1,-2,1,2]])
On obtient :
[[1,0,-1/3,4],[0,1,-2/3,1],[0,0,0,0]]
et on en dduit que x = 4 + z/3, y = 1 + 2z/3 et z = z.
16.5
Cration de matrices
16.5.1
Dans HOME, MAKEMAT(Expr(I,J),n,p) cre une matrice partir dune expression selon les variables I et J.
I reprsente lindice des lignes et J reprsente lindice des colonnes et lindice I
va de 1 n et lindice J va de 1 p.
MAKEMAT(Expr(I,J),n,p) renvoie la matice MI,J = Expr(I, J) pour I =
1..n et J = 1..p.
On tape :
MAKEMAT(I*J,2,3)
On obtient :
[[2,3,4],[3,4,5]]
Dans CAS, on met une fonction comme premier argument : la premire variable
est lindice de la ligne et la deuxime variable est lindice de la colonne. Le deuxime argument reprsente le nombre de ligne et le troisime argument reprsente
le nombre de colonne.
Attention les indices commencent 0.
On tape :
MAKEMAT((j,k)->(j+k),2,3)
Ou on tape :
makemat((j,k)->(j+k),2,3)
On obtient :
[[0,1,2],[1,3,5]]
154
16.5.2
16.5.3
155
16.5.4 JordanBlock
Dans HOME, on lutilise sous la forme CAS.JordanBlock(a,n) car cest une
fonction du CAS.
Dans CAS, JordanBlock(a,n) renvoie une matrice carre dordre n avec a
sur la diagonale principale, 1 au-dessus de cette diagonale et 0 ailleurs.
On tape :
JordanBlock(7,3)
On obtient :
[[7,1,0],[0,7,1],[0,0,7]]
16.5.6
156
On tape :
mkisom([1,1,1],-1)
On obtient la matrice dune symtrie par rapport au plan x + y + z = 0 :
[[1/3,-2/3,-2/3],[-2/3,1/3,-2/3],[-2/3,-2/3,1/3]]
On tape :
mkisom([[1,1,1],pi/3],-1)
On obtient la matrice produit dune rotation daxe [1, 1, 1] et dangle
symtrie par rapport au plan x + y + z = 0 :
et dune
[[0,-1,0],[0,0,-1],[-1,0,0]]
On tape :
mkisom(pi/2,1)
On obtient la matrice en dimension 2, de la rotation plane dangle
[[0,-1],[1,0]]
On tape :
mkisom([1,2],-1)
On obtient la matrice en dimension 2, de la symtrie plane par rapport la droite
dquation x + 2y = 0 :
[[3/5,-4/5],[-4/5,-3/5]]
On tape pour avoir la matrice en dimension 2 dune rotation de centre O et dangle
1:
mkisom(1,1)
On obtient :
[[cos(1),-sin(1)],[sin(1),cos(1)]]
16.5.7
16.6. BASIQUE
157
16.6
Basique
16.6.1
en effet 1 + 4 + 9 + 16) = 30
On tape :
ABS([[1,2],[3,4],[5,11]])
On obtient :
4*sqrt(11)
p
car 1 + 4 + 16 + 25 + 1 = 47
Dans HOME, on tape :
ABS([[i,2],[4,5+i]])
Ou on tape || avec la touche situe ct de la malette :
|[[i,2],[4,5+i]]|
On obtient :
6.8556546004
158
16.6.2
16.6.3
16.6. BASIQUE
159
COLNORM([[1,-2,3],[4,5,-6]])
Ou on tape :
colnorm([[1,-2,3],[4,5,-6]])
On obtient :
9
en effet on a 1 + 4 < 2 + 5 < 3 + 6 = 9
16.6.4
5. + 3 2.28824561127.
160
16.6.5
16.6.6
On tape :
COND([[1,2],[5,6]])
On obtient :
22
On a en effet :
Norme colonne de [[1, 2], [5, 6]] est 2+6=8
Norme colonne de [[1, 2], [5, 6]]1 = [[1.5, 0.5], [1.25, 0.25]] est 1.5+1.25=2.75.
On a bien 2.75*8=22.
16.6.7
16.6. BASIQUE
161
On obtient :
2
Dans CAS, RANK ou rank renvoie le rang de la matrice donne en argument.
On tape :
RANK([[1,2,3],[4,5,6]])
Ou on tape :
rank([[1,2,3],[4,5,6]])
On obtient :
2
16.6.8
16.6.9
162
On obtient :
5
Dans CAS, TRACE ou trace renvoie la trace de la matrice carre donne en
argument.
On tape :
TRACE([[1/2,2,3],[4,5,6],[7,8,9]])
Ou on tape :
trace([[1,2,3],[4,5,6],[7,8,9]])
On obtient :
29/2
On tape :
TRACE([[i,2],[4,5-i]])
Ou on tape :
trace([[i,2],[4,5-i]])
On obtient :
5
16.7
Avance
16.7.1
16.7. AVANCE
163
On obtient :
[3,2,1]
On tape :
eigenvals([[1,1,2],[0,1,1],[0,0,1]])
On obtient :
[1,1,1]
On tape :
eigenvals([[1,1,2],[0,2,1],[0,0,3]])
On obtient :
[3,2,1]
16.7.2
Dans HOME, EIGENVV renvoie la liste de deux vecteurs celui des vecteurs
propres et celui des valeurs propres calculables dune matrice numrique diagonalisable.
On tape :
EIGENVV([[1,1],[0,2]])
On obtient :
{[[0.707106781187,-1.41421356237],[0.707106781187,0]],[[2,0],[0,1]]}
Dans CAS eigenvects renvoie la matrice des vecteurs propres dune matrice
diagonalisable.
On tape :
eigenvects([[1,1],[0,2]])
On obtient :
[[1,-1],[1,0]]
On tape :
eigenvects([[1,1,2],[0,1,1],[0,0,1]])
On obtient :
"Non diagonalisable, Try Jordan"
On tape :
eigenvects([[1,1,2],[0,2,1],[0,0,3]])
On obtient :
[[3,-1,1],[2,-1,0],[2,0,0]],[[3,0,0],[0,2,0],[0,0,1]]
164
16.7.3
16.7.4
16.7. AVANCE
16.7.5
165
16.7.6
16.7.7
166
On obtient :
[[[1,0,0],[0,4/7,1],[0,1,0]],
[[1,29/7,2],[7,39/7,8],[0,278/49,3/7]]]
On tape :
hessenberg([[1,2,3],[4,5,6],[7,8,1]],-1)
On obtient :
[[[-0.293737737475,0.802770468103,0.518919759814],
[-0.69005396727,-0.553745992027,0.466037443312],
[-0.661470833702,0.221189854777,-0.716611041155]],
[[12.4541647409,-2.25953233593,-4.26290461387],
[8.03071937292e-17,-0.379762185881,0.849798726727],
[4.52383345971e-20,-9.66694414605e-19,-5.07440255497]]]
On tape :
hessenberg([[1,2,3],[4,5,6],[7,8,1]],-2)
On obtient :
[[[1,0.0,0.0],[0,0.496138938357,0.868243142124],
[0,0.868243142124,-0.496138938357]],
[[1.0,3.59700730309,0.248069469178],
[8.0622577483,8.01538461538,6.27692307692],
[0,4.27692307692,-2.01538461538]]]
On tape :
hessenberg([[1,2,3],[4,5,6],[7,8,1]],3)
On obtient :
[[[1,0,0],[0,1,0],[0,1,1]],[[1,-1,0],[1,-1,0],[0,1,1]]]
16.7.8 ismith
ismith sutilise dans le CAS (dans HOME il faut mettre CAS.ismith).
ismith(A)calcule la forme normale de Smith de la matrice A coefficients entiers et renvoie les matrices U, B, V avec U et V inversibles dans Z et o B est une
matrice diagonale telle que B[j, j] divise B[j + 1, j + 1] et B = U A V .
On tape :
ismith([[1,2],[2,3]])
On obtient :
[[1,0],[2,-1]],[[1,0],[0,1]],[[1,-2],[0,1]]
On tape :
ismith([[9,-36,30],[-36,192,-180],[30,-180,180]])
On obtient :
[[-3,0,1],[6,4,3],[20,15,12]],[[3,0,0],[0,12,0],[0,0,60]],
[[1,24,-30],[0,1,0],[0,0,1]]
16.8. FACTORISATION
167
16.8
Factorisation
16.8.1
168
On obtient :
[[3.74165738677,0,0],[6.94879228972,1.30930734142,0],
[10.1559271927,2.61861468283,1]],
[[0.267261241912,0.534522483825,0.801783725737],
[0.872871560944,0.218217890236,-0.436435780472],
[-9.09494701773e-13,-2.27373675443e-13,6.8212102633e-13]],
[[1,0,0], [0,1,0],[0,0,1]]
16.8.2
16.8. FACTORISATION
169
0n tape :
LSQ([[1,2],[3,4],[3,6]],[[5,-1],[11,-1],[15,-1]])
On obtient :
[[1,-0.2],[2,-0.1]]
16.8.3
170
16.8.4
16.8.5
Dans HOME SCHUR(M1), (resp dans CAS SCHUR(A)), renvoie les matrices
numriques [P, B] tel que B = inv(P ) M 1 P (resp B = inv(P ) A P )
avec B triangulaire. On a SCHUR(A)=hessenberg(A,-1). B est la matrice
de Hessenberg semblable la matrice M1 (res A).
On tape :
SCHUR([[1,2,3],[4,5,6],[-1,3,-2]])
16.8. FACTORISATION
171
16.8.6
Dans HOME SVD(M1) renvoie 1 matrice M2, 1 vecteur M3, 1 matrice M4.
Cela donne la factorisation de la matrice rectangulaire numrique relle M1 (de
dimension m n) en M2*diag(M3)*TRN(M4) o M2 est une matrice orthogonale m m,M4 est une matrice orthogonale n n, et diag(M3) est une matrice
diagonale de dimension m n ayant comme diagonale les valeurs singulires M3
de M1 .
Dans CAS svd(A) renvoie 1 matrice U, 1 vecteur S, 1 matrice Q.
Cela donne la factorisation de la matrice rectangulaire numrique relle A (de dimension mn) en U*diag(S)*TRN(Q) o U est une matrice orthogonale mm,
Q est une matrice orthogonale n n, et diag(S) est une matrice diagonale de dimension m n ayant comme diagonale les valeurs singulires S de A.
On tape dans HOME :
M2,M3,M4:=SVD([[1,2],[2,1]])
On obtient :
{[[[0.707106781187,-0.707106781187],[0.707106781187,0.707106781187]],
[3,1],
[[0.707106781187,0.707106781187],[0.707106781187,-0.707106781187]]]}
172
[[-0.576048436767,0.81741556047],[-0.81741556047,-0.576048436766]],
car [[0.404553584834, 0.914514295677], [0.914514295677, 0.404553584834]]
[[5.46498570422, 0], [0, 0.365966190626]]
T RN ([[0.576048436767, 0.81741556047], [0.81741556047, 0.576048436766]]) =
[[1.0, 2.0], [3.0, 4.0]]
16.8.7
Dans HOME SVL(M1), (resp dans CAS SVL(A)), renvoie la liste des valeurs
singulires de la matrice numrique relle M1 (resp A) i.e. les racines carrs des
valeurs propres de la matrice relle symtrique M1 TRN(M1 ) (resp(ATRN(A)).
On tape :
SVL([[1,4],[1,1]])
16.9. VECTEUR
173
On obtient :
[4.30277563773,0.697224362268]
car eigenvals([[1,4],[1,1]]*[[1,1],[4,1]]) renvoie ;
(5*sqrt(13)+19)/2,(-5*sqrt(13)+19)/2 et
sqrt((5*sqrt(13)+19)/2.),sqrt((-5*sqrt(13)+19)/2.) renvoie
4.30277563773,0.697224362268
On tape :
SVL([[1,2],[2,1]])
On obtient :
[3,1]
car EIGENVAL([[1,2],[2,1]]*[[1,2],[2,1]]) renvoie [9,1].
On tape :
SVL([[1,2],[3,4]])
On obtient :
[5.46498570422,0.365966190626]
car EIGENVAL([[1,2],[3,4]]*[[1,3],[2,4]]) renvoie
[29.8660687473,0.133931252682]
p
16.9
Vecteur
16.9.1
174
ou
cross([1,2,3],[4,5,6])
On obtient :
[-3,6,-3]
car 2 6 5 3 = 3, 4 3 1 6 = 6, 5 4 2 = 3
16.9.2
16.9.3
Norme l2 :l2norm
16.9. VECTEUR
16.9.4
175
Norme l1 :l1norm
16.9.5
176
Chapitre 17
La fonction : Beta
Beta sutilise dans le CAS (dans HOME il faut mettre CAS.Beta et la rponse
sera exacte).
Beta a comme argument deux rels a, b ou trois rels a, b, p ou trois rels et 1
a, b, p, 1.
avec 2 arguments a, b, Beta calcule les valeurs de la fonction au point
a, b de R2 .
On a par dfinition :
(x, y) =
(x) (y)
(x + y)
On a :
(1, 1) = 1
(n, 1) =
et :
(n, 2) =
1
n
1
n(n + 1)
On a :
R1
Beta(a,b)= 0 ta1 (1 t)b1 dt
Beta(a,b) est dfini pour a et b rels positifs (pour que lintgrale soit
convergente).
On tape :
Beta(5,2)
On obtient :
1/30
On tape :
simplify(Beta(5,-3/2))
On obtient :
256/15
On tape :
Beta(x,y)
177
178
17.2
La fonction : Gamma
Gamma sutilise dans le CAS (dans HOME il faut mettre CAS.Gamma et la rponse
sera exacte).
Gamma a comme argument un nombre a.
Gamma calcule les valeurs de la fonction au point a.
On a par dfinition :
+
Z
(a) =
et on utilise la formule :
(a + 1) = a (a) si a nest pas un entier negatif
Donc :
(1) = 1
(a + 1) = a (a)
et ainsi :
(n + 1) = n!
On tape :
Gamma(5)
On obtient :
24
179
On tape :
Gamma(1/2)
On obtient :
sqrt(pi)
On tape :
Gamma(0.7)
On obtient :
1.29805533265
On tape :
Gamma(-0.3)
On obtient :
-4.32685110883
En effet : Gamma(0.7)=-0.3*Gamma(-0.3)
On tape :
Gamma(-1.3)
On obtient :
3.32834700679
En effet :
Gamma(0.7)=-0.3*Gamma(-0.3)=(-0.3)*(-1.3)*Gamma(-1.3)
17.3
Psi sutilise dans le CAS (dans HOME il faut mettre CAS.Psi et la rponse sera
exacte).
Psi a comme arguments un rel a et un entier n (par dfault n = 0).
Psi est la valeur de la n-ime drive de la fonction DiGamma au point a.
La fonction DiGamma est la drive de ln((x)).
On tape :
Psi(3,1)
On obtient :
pi^2/6-5/4
On peut ommettre le paramtre n lorsque n = 0.
Lorsque Psi a comme seul paramtre un nombre a, Psi renvoie la valeur de la
fonction DiGamma au point a :
on a donc Psi(a,0)=Psi(a).
On tape :
180
On obtient :
Psi(1)+3/2
On tape :
evalf(Psi(3))
On obtient :
.922784335098
17.4
La fonction : Zeta
Zeta sutilise dans le CAS (dans HOME il faut mettre CAS.Zeta et la rponse
sera exacte).
Zeta a comme argument un rel x.
+
X
1
Zeta renvoie pour x > 1 :
.
nx
n=1
On tape :
Zeta(2)
On obtient :
pi^2/6
On tape :
Zeta(4)
On obtient :
pi^4/90
17.5
erf sutilise dans le CAS (dans HOME il faut mettre CAS.erf et la rponse sera
exacte).
erf a comme argument un nombre a.
erf calcule les valeurs de la fonction erf au point a.
On a par dfinition :
Z x
2
2
erf (x) =
et dt
0
On a :
erf (+) = 1
erf () = 1
En effet on sait que :
Z
0
On tape :
et dt =
181
erf(1)
On obtient :
0.84270079295
On tape :
erf(1/(sqrt(2)))*1/2+0.5
On obtient :
0.841344746069
Remarque
Il y a une relation entre les fonctions erf et normal_cdf :
normal_cdf(x) = 12 + 12 erf( x2 )
En effet :
Rx
2
normal_cdf(x) = 21 + 12 0 et /2 dt
17.6
erfc sutilise dans le CAS (dans HOME il faut mettre CAS.erfc et la rponse
sera exacte).
erfc a comme argument un nombre a.
erfc calcule les valeurs de la fonction erf c au point a.
On a par dfinition :
Z +
2
2
erf c(x) =
et dt = 1 erf (x)
x
On a :
erf c(0) = 1
erf c() = 1
En effet on sait que :
Z
t2
dt =
On tape :
erfc(1)
On obtient :
0.15729920705
On tape :
182
On obtient :
0.841344746069
Remarque
Il y a une relation entre les fonctions erfc et normal_cdf :
normal_cdf(x) = 1 21 erfc( x2 )
En effet :
Rx
2
normal_cdf(x) = 12 + 12 0 et /2 dt
17.7
Ei sutilise dans le CAS (dans HOME il faut mettre CAS.Ei et la rponse sera
exacte).
Ei a comme argument un nombre complexe a.
Ei calcule les valeurs de la fonction Ei au point a.
On a par dfinition :
Z x
exp(t)
Ei(x) =
dt
t
t=
Pour x > 0, on prolonge par la valeur principale de lintgrale (les morceaux en
0 et 0+ se compensent). On a :
Ei(0) = ,
Ei() = 0
x2
x3
+
+ ...
2.2! 3.3!
x2
x3
+
+ ...
2.2! 3.3!
183
1.89511781636
On tape :
Ei(-1.)
On obtient :
-0.219383934396
On tape :
Ei(1.)-Ei(-1.)
On obtient :
2.11450175075
On tape :
int((exp(x)-1)/x,x=-1..1.)
On obtient :
2.11450175075
On tape :
evalf(Ei(-1)-sum((-1)^n/n/n!,n=1..100))
On obtient la constante dEuler :
0.577215664901532860606507
17.8
Si sutilise dans le CAS (dans HOME il faut mettre CAS.Si et la rponse sera
exacte).
Si a comme argument un nombre complexe a.
Si calcule les valeurs de la fonction Si au point a.
On a par dfinition
Z x
sin(t)
Si(x) =
dt
t
t=0
On a Si(0) = 0, Si() = 2 , Si(+) = 2 . Lorsque lon est proche de x = 0
on sait que :
sin(x)
x2 x4
x2n
=1
+
+ ... + (1)n
....
x
3!
5!
(2n + 1)!
ce qui donne par intgration le dveloppement en sries de Si en 0.
On observe aussi que Si est une fonction impaire.
On tape :
Si(1.)
184
On obtient :
0.946083070367
On tape :
Si(-1.)
On obtient :
-0.946083070367
On tape :
Si(1.)+Si(-1.)
On obtient :
0
On tape :
Si(1.)-Si(-1.)
On obtient :
1.89216614073
On tape :
int(sin(x)/x,x=-1..1.)
On obtient :
1.89216614073
17.9
Ci sutilise dans le CAS (dans HOME il faut mettre CAS.Ci et la rponse sera
exacte).
Ci a comme argument un nombre complexe a.
Ci calcule les valeurs de la fonction Ci au point a.
On a par dfinition :
Z x
Z x
cos(t)
cos(t) 1
Ci(x) =
dt = ln(x) + +
dt
t
t
t=+
0
On a : Ci(0) = , Ci() = i, Ci(+) = 0. Lorsque lon est proche de
x = 0 on sait que
cos(x)
1 x x3
x2n1
= +
+ ... + (1)n
....
x
x 2
4!
(2n)!
ce qui donne par intgration le dveloppement en sries de Ci.
On tape :
185
186
Quatrime partie
187
Chapitre 18
Le menu Geometry
18.1
Gnralits
189
190
18.2. POINT
191
Line
Polygon
Curve
Transform
Les tapes de la construction sont enregistres sous la forme de commandes
et sont visibles en appuyant sur la touche Symb.
La touche Menu presse depuis la vue graphique permet de changer la couleur
du dessin et faire des formes pleines.
Num est la vue numrique
La vue numrique permet dutiliser les commandes numriques lies au
graphique et davoir des rsultats numriques.
Les commandes donnant un rsultat numrique (coordonnes des points,
quation des droites ou des courbes...) peuvent tre excutes dans lcran
Num en utilisant New puis Cmds du bandeau de lcran Num. On retrouve
laide du menu New->Cmds ou Edit->Cmds du bandeau de la vue
numrique les 2 derniers thmes du menu App->Geometry :
Measure
Test
Au fur et mesure de leur construction,les objets gomtriques sont nomms et
dsigns par A, B, C... mais sont sauvs dans les variables GA, GB, GC....
Remarque
Toutes les fonctions de gomtrie peuvent tre utilises depuis le CAS, mais alors
la rponse sera par exemple point(1,2) ou line(x=1) mais ne sera pas dessine.
On peut donc faire de la gomtrie analytique 2 d et mme 3 d depuis le CAS :
on peut par exemple taper depuis le CAS :
g:=line(x=1) puis rajouter dans lcran Symb GK:=g.
Attention
On peut retrouver la valeur de ces variables dans la vue symbolique ou dans la vue
numrique ou dans lcran du CAS. Si par exemple dans lapplication de gomtrie
on a : GA:=point(4.16+2.13*i) et que dans le CAS, on tape GA:=5, GA
sera gal 5 tant que lon a pas utilis Plot de lapplication de gomtrie car
aprs son utilisation on aura nouveau GA:=point(4.16+2.13*i).
Il est donc dangereux dutiliser les variables GA, GB... dans le CAS.
18.2
Point
18.2.1
192
P
Si j = 0, barycentre ou barycenter renvoie une erreur.
On tape :
barycenter([1+i,1],[1-i,1])
Ou on tape :
barycenter([point(1,1),1],[point(1,-1),1])
Ou on tape :
barycenter([[1+i,1],[1-i,1]])
Ou on tape :
barycenter([[point(1,1),1],[point(1,-1),1]])
On obtient dans lApplication de gomtrie :
Le point daffixe 1 est trac avec une croix avec son
nom
On obtient dans le CAS :
point(1)
Attention dans lApplication de gomtrie pour avoir comme rponse un nombre complexe il faut demander laffixe du barycentre, sinon on a le trac du point
barycentre.
On tape :
affix(barycenter([1+i,1],[1-i,1]))
Ou on tape :
affix(barycenter([[1+i,1],[1-i,1]]))
On obtient :
1
Dans lcran CAS barycenter est aussi utilisable en gomtrie 3d et a comme
argument n listes de longueur 2 (ou une matrice ayant n lignes et 2 colonnes). Le
premier lment de la liste j (resp le jime lment de la premire colonne de
la matrice) contient le point Aj , le deuxime lment de la liste j (resp le jime
lment de la deuxime colonne) contient le coefficient rel j affect Aj .
barycenter renvoie point([a,b,c]) o [a,b,c] sont les coordonnes
du barycentre de ces n points.
On tape :
barycenter([point(0,0,0),1],[point(3,3,3),2])
On obtient :
pnt(pn[(point[2,2,2],0)])
18.2. POINT
18.2.2
193
Dans la vue graphique, pour obtenir un point il suffit dtre en mode point
(i.e. Point du bandeau, puis slectionner point et Enter) et damener le curseur
lendroit voulu (avec le doigt ou les flches) puis de valider avec Enter : un point
saffiche avec un nom.
Ce nom est cre automatiquement : A puis B etc...
On peut aussi utiliser la commande point :
point a comme argument un nombre complexe ou un couple de 2 nombres rels.
Attention
Si a,b est un couple de 2 nombres complexes dont 1 est non rel, GK:=point(a,b)
renvoie 2 points de mme nom (ici K) lun daffixe a, lautre daffixe b.
Lorsque a,b est un couple de 2 nombres rels, GA:=point(a,b) renvoie et
dessine le point ayant pour affixe a+ib.
On tape :
GA:=point(1+i)
On obtient :
Le point A daffixe 1+i est trac avec une croix
On tape :
GB:=point(-2,1)
On obtient :
Le point B daffixe -2+i est trac avec une croix
On tape :
GC:=point(-2,i)
On obtient :
Les 2 points daffixe -2 et i sont tracs avec une
croix et sont nots C
Remarque Lorquon fait une affectation par exemple GA:=point(-2+i) cela
a pour effet de stocker le point(-2+i) dans la variable GA, de dessiner le point
avec une croix et de lui mettre comme lgende le nom qui est situ gauche de :=
en supprimant la lettre G : ici A.
Si on fait plusieurs affectations avec un seul signe := par exemple :
GD,GE:=point(-2+i),point(2+i) la variable GD contient le point(-2+i),
la variable GE contient point(-2+i) mais on ne pourra pas deplacer ces points
en mode pointeur.
Pour viter cela on doit taper :
GL:=point(-2+i),point(2+i):;GD:=L[0];GE:=L[1]
ou
GL:=point(-2+i,2+i):;GD:=L[0];GE:=L[1] ce qui dfinit le point D
daffixe -2 et le point E daffixe i (car laffixe de GD nest pas rel !).
194
18.2.3
18.2.4
midpoint, en gomtrie plane, a comme argument 2 points ou 2 nombres complexes reprsentant laffixe de ces points (ou encore une liste de 2 points ou de 2
complexes).
midpoint renvoie et dessine le point milieu du segment dfini par ces deux
points.
On tape :
midpoint(-1,1+i)
On obtient dans lApplication de gomtrie :
Le point daffixe i/2 est trac avec son nom
Dans lcran CAS midpoint est utilisable en gomtrie 3 d et renvoie le
point milieu du segment dfini par deux points.
On tape :
midpoint(point(0,0,0),point(2,2,2))
On obtient :
point(1,1,1)
18.2. POINT
18.2.5
195
18.2.6
18.2.7
196
1. un intervalle a..b et deux rels la valeur et le pas (par dfaut la valeur vaut
(a+b)/2 et le pas (ba)/100), par exemple, on tape dans la vue symbolique :
GC:=element(-pi..pi) ou
GC:=element(-pi..pi,pi/2) ou
GC:=element(-pi..pi,pi/2,pi/100.0)
cela signifie que GC peut prendre une valeur quelconque de [; ] et le
deuxime argument /2 donne la valeur qui dfinit GC au dbut et /100.0
est le pas choisi.
Puis dans la vue graphique :
on a en bas et droite on a Pointeur x1,y1 o x1,y1 sont les coordonnes du pointeur. On tape C en mode Alpha,
en bas et droite on a alors Pointeur GC on appuie sur Enter pour
valider.
maintenant on pointe sur C.
Un trait apparait en haut de lcran graphique : cest un curseur qui permet
de changer la valeur de GC avec les flches de direction ( et ) et en bas
et droite on a Dplacer GC gauche de ce trait on a GC=xc (xc est
la valeur de GC). Les flches de direction et permettent de changer
la valeur xc de GC.
Exemple.
On dfinit GC comme ci-dessus :
On tape dans la vue symbolique :
GC:=element(-pi..pi,pi/2)
GD:=line(y+x*TAN(GC)-2*SIN(GC)=0)
GD est donc une droite de paramtre GC.
Quand on fait bouger le curseur GC, la doite GD bouge.
On peut conserver la trace de cette droite GD en tapant dans la vue symbolique : trace(GD) ou en utilisant dans le menu de la vue graphique
Point->Plus->trace qui permet de choisir le nom de lobjet dont on
veut la trace et ainsi trace(GD) scrit automatiquement dans la vue symbolique.
On peut ainsi voir que lenveloppe de ces droites est une astroide.
Remarque
Pour effacer la trace ou pour larrter, il faut utiliser le menu Point->Plus.
2. un objet gomtrique et un rel (par dfaut ce rel vaut 1/2), par exemple :
GA:=element(circle(0,2),1) signifie que A se trouve sur le cercle
de centre 0 et de rayon 2 et a comme affixe 2 exp(i) (car 2 exp(i t)
est lquation paramtrique de ce cercle et le deuxime argument 1 donne la
valeur du paramtre t pour dfinir GA).
Par exemple, GA:=element(circle(0,1)) signifie que A se trouve
sur le cercle de centre 0 et de rayon 1, le point A sera trac en prenant
t = 1/2 comme valeur du paramtre de lquation paramtrique de lobjet
gomtrique (ici affix(GA)= 2 exp(i/2)). Lorsque ensuite on dplacera
A avec les flches, A se dplacera sur lobjet gomtrique.
Attention cest la projetion du curseur sur le cercle qui dfinit le point A : il
faut donc veiller dplacer le curseur dans la fentre graphique de faon
ce quil dfinisse un point A.
3. un objet gomtrique et un nom de variable (par exemple GC) dfini aupara-
18.2. POINT
197
198
18.2.8
division_point a trois arguments : deux points (ou deux nombres complexes a et b) et un nombre complexe k.
division_point renvoie et dessine le point daffixe z tel que :
za
zb = k On tape :
GA:=division_point(i,2+i,3+i)
On obtient :
le point A daffixe (5+4*i)/(2+i)
car csolve(z-i=(3+i)*(z-2-i),z) renvoie [(14+3*i)/5] et
(5+4*i)/(2+i) renvoie (14+3*i)/5
On tape :
GB:=division_point(point(i),point(2+i),3)
On obtient :
le point B daffixe 3+i
car csolve(z-i=3*(z-2-i),z) renvoie [3+i]
18.3. LINE
18.2.9
199
center a comme argument le nom dun cercle (voir la dfinition du cercle ??).
center renvoie et trace le centre de ce cercle.
On tape :
GC:=center(circle(0,point(2*i)))
On obtient :
Le point daffixe i est trac avec une croix et est
not C
On tape :
GM:=center(circle(point(1+i),1))
On obtient :
Le point daffixe 1+i est trac avec une croix et est
not M
18.3
Line
18.3.1
18.3.2
200
18.3.3
18.3.4
\
bisector(GA,GB,GC) trace la bissectrice intrieure de langle BAC.
On tape :
bisector(0,1,i)
On obtient dans lApplication de gomtrie :
\
Le trac de la bissectrice intrieure de langle (0,
1, i)
On tape dans lcran CAS :
bisector(0,1,i)
On obtient :
line(y=x)
18.3. LINE
18.3.5
201
\
exbisector(GA,GB,GC) trace la bissectrice intrieure de langle BAC.
On tape :
exbisector(0,1,i)
On obtient dans lApplication de gomtrie :
\
Le trac de la bissectrice extrieure de langle (0,
1, i)
On tape dans lcran CAS :
exbisector(0,1,i)
On obtient :
line(y=-x)
18.3.6
Demi-droite : half_line
18.3.7
en gomtrie plane, a comme argument deux points (ou deux nombres complexes
reprsentant laffixe de ces points) ou une liste de deux points (ou de deux complexes) ou a comme argument un point et slope=m ou encore une quation de
droite de la forme a*x+by+c=0.
droite renvoie et trace la droite dfinie par les deux arguments.
line(GA,GB) trace la droite A, B.
Remarqueslope est aussi une commande donnant la pente dune droite. Il est
prfrable dutiliser DrawSlp pour dfinir une droite avec un point et sa pente
(DrawSlp(a,b,m) dfinit la droite line(point(a,b),slope=m)).
Dans lcran CAS :
On tape :
line(1,2+i)
202
On obtient :
line(y=x-1)
Dans lApplication de gomtrie :
On tape :
line(1,2+i)
On obtient :
Le trac de la droite passant par le point daffixe 1
et par le point daffixe 2+i.
On tape :
line(0,1+i)
On obtient :
La droite dquation y=x est trace
On tape :
line(i,slope=2)
Ou on tape :
DrawSlp(0,1,2)
On obtient :
La droite dquation y=2x+1 est trace
On tape :
line(y-x=0)
On obtient :
La droite dquation y=x est trace
Remarque : lorientation de la droite
Lorsque la droite est donne par deux points, son orientation est dfinie par
lordre des points donns en argument. Par exemple ine(GA,GB) dfinit
18.3. LINE
203
18.3.8
18.3.9
204
18.3.10
Mdiatrice : perpen_bisector
18.3.11
perpendicular(GA,GB,GC) ou perpendicular(GA,line(GB,GC))
trace la perpendiculaire la droite BC droite passant par le point A.
On tape :
perpendicular(1,1,2-i)
On obtient dans lApplication de gomtrie :
le trac de la perpendiculaire la droite (1,2-i)
etpassant par le point daffixe 1
On tape dans lcran CAS :
perpendicular(1,1,2-i)
On obtient :
line(y=(x-1))
18.3.12
Segment : segment
18.3. LINE
18.3.13
205
206
18.4
Polygon
18.4.1
18.4.2
18.4. POLYGON
207
18.4.3
Losange : rhombus
208
18.4.4 rectangle
rectangle, en gomtrie plane, peut avoir de trois cinq arguments :
3 arguments,
ces trois arguments sont : deux points (ou deux nombres complexes reprsentant laffixe de ces points) et un nombre rel k non nul.
rectangle(GA,GB,k) renvoie et trace le rectangle ABCD tel que :
AD = |k| AB et (AB, AD) = (k/|k|) /2,
cest dire tel que :
af f ix(GD) = af f ix(GA)+kexp(i/2)(af f ix(GB)af f ix(GA))
mais sans dfinir les points C et D.
Remarque Si k est complexe, on a :
af f ix(GD) = af f ix(GA)+kexp(i/2)(af f ix(GB)af f ix(GA))
et on peut ainsi se retrouver avec le trac dun paralllogramme.
On tape :
rectangle(0,1+i,1/2)
On obtient :
Le rectangle de sommets 0,1+i,1/2+3*i/2,-1/2+i/2
On tape :
rectangle(0,1+i,-1/2)
On obtient :
Le rectangle de sommets 0,1+i,3/2+i/2,1/2-i/2
On tape :
rectangle(0,1,1+i)
On obtient :
Le paralllogramme de sommets 0,1,i,-1+i car
1 + i = (1 + i) exp(i /2)
5 arguments, ces cinq arguments sont les 3 arguments prcdents et les 2
derniers arguments sont les noms de deux variables qui serviront dfinir
les 2 derniers sommets.
On tape :
rectangle(0,1+i,-1/2,GG,GH)
On obtient :
Le rectangle de sommets 0,1+i,3/2+i/2,1/2-i/2
On tape :
normal(affix(GG))
On obtient :
(3+i)/2
On tape :
normal(affix(GH))
On obtient :
(1-i)/2
18.4. POLYGON
209
18.4.5 square
square, en gomtrie plane, peut avoir de deux quatre arguments :
2 arguments
Ces 2 arguments sont : 2 points ou 2 nombres complexes reprsentant laffixe
de ces points (ou encore une liste de 2 points ou de 2 complexes).
squareGA,GB) renvoie et trace le carr ABCD de sens direct, mais sans
dfinir les points D et C.
On tape :
square(0,1+i)
On obtient :
Le carr de sommets 0, 1+i, 2*i, -1+i
3 (resp 4) arguments
Ces 3 (resp 4) arguments sont les 2 arguments orcdents suivi par le le nom
dune (resp deux) variable(s) qui serviront dfinir lavant-dernier sommet
(resp les deux autres sommets). On tape :
square(0,1+i,GC,GD)
On obtient :
Le carr de sommets 0, 1+i, 2*i, -1+i
On tape :
affix(GC)
On obtient :
2*i
On tape :
affix(GD)
On obtient :
-1+i
18.4.6 quadrilateral
quadrilateral(GA,GB,GC,GD), en gomtrie plane, renvoie et trace le quadrilatre ABCD.
On tape :
quadrilateral(0,1,1+i,-1+2*i)
On obtient :
Le "cerf-volant" de sommets 0, 1, 1+i, 1+2*i
18.4.7 parallelogram
parallelogram, en gomtrie plane, a trois arguments ou quatre arguments :
3 arguments,
Ces 3 arguments sont : trois points (ou trois nombres complexes reprsentant
laffixe de ces points).
parallelogram(GA,GB,GC) renvoie et trace le paralllogramme ABCD
tel que : AD = BC mais sans dfinir le point D.
On tape :
parallelogram(0,1,2+i)
210
18.4.8
isoploygon
18.4.9
isosceles_triangle
18.5. COURBES
211
3 arguments
Ces 3 arguments sont : 2 points A et B (ou 2 nombres complexes reprsentant laffixe de ces points) et un rel qui dsigne la mesure en radians (ou en
degrs) de langle (AB, AC).
isosceles_triangle(GA,GB,c) renvoie et trace le triangle ABC
isocle de sommet A (AB = AC) et tel que langle (AB, AC) = c radians
(ou degrs), sans dfinir le point C).
On tape :
isosceles_triangle(i,1,-3*pi/4)
On obtient si on a coch radian dans la configuration du cas (bouton
donnant la ligne dtat) :
18.5
Courbes
18.5.1
circle a un ou deux arguments pour dessiner un cercle et de quatre six arguments pour dessiner un arc de cercle :
Avec un argument :
largument de cercle est alors lquation du cercle ayant comme variables
x et y,
Avec deux arguments :
le premier argument de cercle est un point ou un nombre complexe considr comme laffixe dun point.
le deuxime argument dtermine si on trace le cercle avec la donne de son
centre et de son rayon (le deuxime argument est alors un nombre complexe
de module le rayon) ou avec la donne de son diamtre (le deuxime argument est un point).
Ainsi :
circle(GC,r) o GC est un point (ou un nombre complexe) et r un
nombre complexe, trace le cercle de centre C et de rayon le module de r.
Cela est utile, par exemple, pour avoir le cercle de centre A qui passe par
B on tape circle(GA,GB-GA).
212
2
))
Larc AB (GA:=point(-1+i) et GB:=point( 1 2+i
2
du cercle de centre -1 et de rayon 1 est trac
En effet, langle est compt partir de laxe (-1,i-1) et donc langle 0 est le
point daffixe i-1.
On tape :
circle(-1, point(i),0,pi/4,A,B)
On obtient :
2)
)) du
Larc AB (GA:=point(i) et GB:=point( 1+i(1+
2
18.5. COURBES
213
18.5.2
18.5.3
18.5.4
Lellipse : ellipse
214
On obtient :
Lellipse de foyers -i, i et passant par 1+i
On tape :
ellipse(-i,i,sqrt(5)-1)
On obtient :
Lellipse de foyers -i, i et de demi-grand axe
sqrt(5)-1
On tape :
ellipse(x^2+2*y^2-1)
ou on tape :
ellipse(sqrt(2)/2,-sqrt(2)/2,1)
On obtient :
Lellipse de centre 0 et de demi-grand axe 1 et de
foyers sqrt(2)/2 et -sqrt(2)/2
18.5.5
18.5.6
Lhyperbole : hyperbola
18.5. COURBES
215
On tape :
hyperbola(-i,i,1+i)
On obtient :
Lhyperbole de foyers -i, i et passant par 1+i
On tape :
hyperbola(-i,i,1/2)
On obtient :
Lhyperbole de foyers -i, i et de demi-grand axe 1/2
On tape :
hyperbole(x^2+2*y^2-1)
ou on tape :
hyperbole(sqrt(6)/2,-sqrt(6)/2,1)
On obtient :
Lhyperbole de centre 0 et de demi-grand axe 1 et de
foyers sqrt(6)/2 et -sqrt(6)/2
18.5.7
18.5.8
locus permet de tracer le lieu dun point qui dpend dun autre point qui doit tre
dfini avec la fonction element.
locus permet aussi de tracer lenveloppe dune droite qui dpend dun point qui
doit tre dfini avec la fonction element
lieu dun point.
locus a 2 4 arguments.
Les deux premiers argument sont deux noms de variables :
le premier argument est le nom du point (par exemple B) dont on veut connaitre le lieu et ce point est fonction du deuxime argument,
le deuxime argument est le nom du point (par exemple A) qui se dplace
sur une courbe C et qui doit tre dfini par GA:=element(GC).
On peut prciser ventuellement en troisime argument lintervalle o se
216
18.5. COURBES
217
18.5.9
La parabole : parabola
218
ou on tape :
parabola(-i,1)
ou on tape :
parabola(i,-i)
On obtient :
La parabole de sommet -i et de foyers i
18.6
Transformation
18.6.1
Lhomothtie : homothety
18.6. TRANSFORMATION
18.6.2
219
Linversion : inversion
220
18.6.3
18.6. TRANSFORMATION
18.6.4
221
222
18.6.5
La rotation : rotation
18.6.6
La similitude : similarity
18.6. TRANSFORMATION
223
18.6.7
La translation : translation
translation, en gomtrie plane, a un ou deux arguments : le vecteur de translation donn par un vecteur gomtrique ou par la liste de ses coordonnes ou par
son affixe (la diffrence de deux points ou un nombre complexe) et ventuellement
lobjet gomtrique transformer.
Lorsque translation a un argument, cest une fonction qui agit sur un objet
gomtrique.
On tape :
t:=translation(1+i)
Puis :
t(-2)
On obtient :
Le point -1+i trac avec une croix (x) noire
224
18.7
Mesure et graphique
18.7.1
18.7.2
225
18.7.3
areaat a comme arguments le nom dun cercle ou dun polygone toil par rapport son premier sommet et 1 point (ou 1 nombre complexe qui est laffixe dun
point).
areaat renvoie le point, calcule laire du cercle ou polygone toil par rapport
son premier sommet et affiche cette aire lendroit du point avec une lgende.
Attention Il faut que le premier argument soit le nom dun cercle ou dun polygone.
On tape :
t:=triangle(0,1,i)
areaat(t,(1+i)/2)
On obtient :
1/2 scrit au point(1+i)/2 avec la lgende
On tape :
cc:=circle(0,2)
areaat(cc,2.2)
On obtient :
4*pi scrit au point(2.2) avec une lgende
On tape :
226
On obtient :
4 scrit au point(2.2) avec une lgende
On tape :
h:=hexagon(0,1)
areaat(h,1.2)
On obtient :
3*sqrt(3)/2 scrit au point(1.2) avec une lgende
18.7.4
18.7.5
227
18.7.6
228
Ou on tape directement :
distanceatraw(point(-1),point(1+i),0.4i)
On obtient :
sqrt(5) scrit au point(0.4i)
On tape :
GC:=point(0);GD:=line(-1,1+i)
distanceatraw(GC,GD,i/2)
Ou on tape directement :
distanceatraw(point(0),line(-1,1+i),0.4i)
On obtient :
sqrt(5)/5 scrit au point(i/2)
On tape :
GK:=circle(0,1); GL:=line(-2,1+3i)
distanceatraw(GK,GL,0)
Ou on tape directement :
distanceatraw(circle(0,1),line(-2,1+3i),0.4i)
On obtient :
sqrt(2)-1 scrit au point(0)
18.7.7
229
18.7.8
230
On obtient :
6 scrit au point(1.2)
On tape :
perimeteratraw(square(0,2),2.2)
On obtient :
8 scrit au point(2.2)
18.7.9
slopeat est une commande qui permet dafficher en un point la pente dune
droite ou dun segment avec une lgende.
On tape cette commande dans La vue symbolique.
slopeat a 2 arguments le nom dune droite (ou dun segment) et 1 point (ou 1
nombre complexe qui est laffixe dun point).
slopeat renvoie le point, calcule la pente de la droite (ou du segment) et affiche
cette pente lendroit du point avec une lgende.
Attention Il faut que le premier argument soit le nom dune droite ou dun segment.
On tape :
GD:=line(1,2i)
Ou on tape :
GD:=segment(1,2i),i)
slopeat(GD,i)
On obtient :
"sD=-2" scrit au point(i)
On tape :
GP:=line(2y-x=3),2*i)
slopeat(GP,2*i)
On obtient :
"sP=1/2" scrit au point(2*i)
On tape :
GT:=tangent(plotfunc(sin(x)),pi/4)
Ou on tape :
GT:=LineTan(sin(x),pi/4)
Puis :
slopeat(GT,i)
On obtient :
"sT=(sqrt(2))/2" scrit au point(i)
18.7.10
231
slopeatraw est une commande qui permet dafficher en un point la pente dune
droite ou dun segment mais sans lgende.
On tape cette commande dans La vue symbolique.
slopeatraw a 2 arguments une droite (ou un segment) et 1 point (ou 1 nombre
complexe qui est laffixe dun point).
slopeatraw renvoie le point, calcule la pente de la droite (ou du segment) et
affiche cette pente lendroit du point.
On tape :
GD:=line(1,2i)
slopeatraw(GD,i)
Ou on tape directement :
slopeatraw(line(1,2i),i)
On obtient :
-2 scrit au point(i)
On tape :
GE:=segment(1,2i),i)
slopeatraw(GE,1)
Ou on tape directement :
slopeatraw(segment(1,2i),1)
On obtient :
-2 scrit au point(1)
On tape :
GP:=line(2y-x=3,2*i)
slopeatraw(GP,2*i)
Ou on tape directement :
slopeatraw(line(2y-x=3,2*i),2*i)
On obtient :
1/2 scrit au point(2*i)
On tape :
GT:=tangent(plotfunc(sin(x)),pi/4)
slopeat(GT,i)
Ou on tape directement :
slopeatraw(tangent(plotfunc(sin(x)),pi/4),i)
On obtient :
(sqrt(2))/2 scrit au point(i)
232
18.8
Measure
18.8.1
abscissa, en gomtrie plane, est une fonction ayant comme argument un point
ou un vecteur ou un nombre complexe.
abscissa renvoie labscisse du point ou du vecteur :
- si le point A a pour coordonnes cartsiennes (xA , yA ), abscisse(GA) renvoie
xA ,
- si le point B a pour coordonnes cartsiennes (xB , yB ), abscisse(GA-GB)
18.8.2
affix est une fonction qui a comme argument soit un point soit un vecteur soit
les coordonnes dun point ou dun vecteur 2-d.
affix renvoie laffixe du point ou du vecteur :
si le point A a pour coordonnes cartsiennes (xA , yA ),
affix(GA) renvoie xA + i yA ,
si le point B a pour coordonnes cartsiennes (xB , yB ),
affix(GA-GB) ou affix(vector(GB,GA)) renvoie
xA xB + i (yA yB )
18.8. MEASURE
233
On tape :
affix(point(i))
On obtient :
i
On tape :
affix(point(i)-point(1+2*i))
On obtient :
-1-i
18.8.3
angle a comme argument trois points (ou trois nombres complexes qui sont laffixe de ces points) et ventuellement une chaine de caractres pour afficher un petit
arc de cercle avec ce symbole en lgende afin de reprsenter langle sur la figure
(larc est remplac par le symbole quart de carre si langle vaut pi/2 ou -pi/2).
angle renvoie la mesure (en radians ou en degrs) de langle orient de sommet
le premier argument, le deuxime argument se trouve sur le premier cot de langle
et le troisime argument se trouve sur le deuxime cot.
Ainsi :
angle(GA,GB,GC) dsigne la mesure de langle en radians (ou en degrs) de
(AB, AC).
angle(GA,GB,GC,"") trace langle (AB, AC) avec comme lgende un petit
arc orient.
angle(GA,GB,GC,"a") trace langle (AB, AC) avec comme lgende un petit
arc orient not a.
angle(GA,GB,GC,"")[0] ou angle(GA,GB,GC,"a")[0] dsigne la mesure
de langle en radians (ou en degrs) de (AB, AC).
On tape :
angle(0,1,1+i)
On obtient si on a choisi radian dans la configuration du CAS :
pi/4
On tape :
angle(0,1,1+i,"")
On obtient si on a coch radian dans la configuration du CAS :
[pi/4,circle(point(0,0),1/5)]
et langle est repr par un arc de cercle sans lgende.
On tape :
angle(0,1,1+i,"a")
234
[pi/2,polygon(point(1/5,0),point(1/5,1/5),point(0,1/5),point(0,1/5))]
et langle droit est repr par un quart de carr avec a comme lgende.
18.8.4
arcLen a quatre paramtres : une expression expr (resp une liste de 2 expressions
[expr1, expr2]), le nom dun paramtre et deux valeurs a et b de ce paramtre.
arcLen calcule la longueur de larc de courbe dfinie par lquation y = f (x) =
expr (resp par x = expr1, y = expr2) pour les valeurs du paramtre comprises
entre a et b.
On a donc arcLen(f(x),x,a,b)= :
integrate(sqrt(diff(f(x),x)^2+1),x,a,b)
ou
integrate(sqrt(diff(x(t),t)^2+diff(y(t),t)^2),t,a,b).
Exemples
Calculer la longueur de larc de parabole y = x2 pour x allant de 0 x = 1.
On tape
arcLen(x^2,x,0,1)
ou
arcLen([t,t^2],t,0,1)
On obtient :
-1/4*log(sqrt(5)-2)-(-(sqrt(5)))/2
Calculer la longueur de larc de la courbe y = cosh(x) pour x allant de 0
x = ln(2).
On tape :
arcLen(cosh(x),x,0,log(2))
On obtient :
3/4
Calculer la longueur de larc de cercle x = cos(t), y = sin(t) pour t allant
de 0 t = 2 .
On tape
arcLen([cos(t),sin(t)],t,0,2*pi)
On obtient :
2*pi
18.8. MEASURE
18.8.5
235
area calcule laire dun cercle ou dun polygone toil par rapport son premier
sommet.
On tape :
aire(triangle(0,1,i))
On obtient :
1/2
On tape :
aire(square(0,2))
On obtient :
4
18.8.6
236
Ou on tape :
coordinates(point(1+2*i)-point(i))
On obtient :
[1,1]
On tape :
coordinates(vector(point(i),point(1+2*i)))
Ou on tape :
coordinates(vector(i,1+2*i))
Ou on tape :
coordinates(vector([0,1],[1,2]))
On obtient :
[1,1]
On tape :
coordinates(1+2*i)
Ou on tape :
coordinates(vector(1+2*i))
Ou on tape :
coordinates(vecteur(point(i),vecteur(1+2*i)))
On obtient :
[1,2]
On tape :
coordinates(point(i),vector(1+2*i))
On obtient :
[1,2]
On tape :
d:=line(-1+i,1+2*i)
Ou on tape
d:=line(point(-1,1),point(1,2))
Puis,
coordinates(d)
18.8. MEASURE
237
On obtient :
[-1+i,1+2*i]
On tape :
d:=line(y=(1/2*x+3/2))
On obtient :
[(3*i)/2,1+2*i]
On tape :
d:=line(x-2*y+3=0)
On obtient :
[(3*i)/2,(-4+i)/2]
Attention
coordinates peut aussi avoir comme argument une squence ou une liste de
points. coordinates renvoie alors la squence ou la liste des listes des coordonnes de ces points, par exemple :
coordinates(i,1+2*i) ou coordinates(point(i),point(1+2*i))
renvoie la squence :
[0,1],[1,2]
et
coordinates([i,1+2*i]) ou coordinates([point(i),point(1+2*i)])
renvoie la matrice :
[[0,1],[1,2]] donc
coordinates([1,2]) renvoie la matrice :
[[1,0],[2,0]] car [1,2] est considr comme la liste de 2 points daffixe 1
et 2.
18.8.7
distance a comme argument deux points (ou deux nombres complexes qui sont
laffixe de ces points) ou deux objets gomtriques.
distance renvoie la longueur du segment dfini par ces deux points ou la distance entre les deux objets gomtriques.
On tape :
distance(-1,1+i)
On obtient :
sqrt(5)
On tape :
distance(0,line(-1,1+i))
238
On obtient :
sqrt(5)/5
On tape :
distance(circle(0,1),line(-2,1+3i))
On obtient :
sqrt(2)-1
18.8.8
18.8.9
18.8. MEASURE
18.8.10
239
18.8.11
ordinate, en gomtrie plane, est une fonction ayant comme argument un point
ou un vecteur ou un nombre complexe.
ordinate renvoie lordonne du point ou du vecteur :
- si le point A a pour coordonnes cartsiennes (xA , yA ), ordinate(GA) renvoie
yA ,
- si le point B a pour coordonnes cartsiennes (xB , yB ), ordinate(GA-GB)
240
On obtient :
-1
On tape :
ordinate(1+2*i)
On obtient :
2
On tape :
ordinate([1,2])
On obtient :
2
18.8.12
18.8. MEASURE
18.8.13
241
18.8.14
18.8.15
slope est soit une commande soit un attribut de la commande droite pour cela
voir 18.3.7
Lorsque slope est une commande son argument est une droite ou un segment ou
deux points ou deux nombres complexes.
slope renvoie la pente de la droite dfinie par le segment ou par les 2 points ou
leurs affixes.
On tape :
slope(line(1,2i))
Ou on tape :
slope(segment(1,2i))
Ou on tape :
242
Ou on tape :
slope(1,2i)
On obtient :
-2
On tape :
slope(line(2y-x=3))
On obtient :
1/2
On tape :
slope(tangent(plotfunc(sin(x)),pi/4))
Ou on tape :
slope(LineTan(sin(x),pi/4))
On obtient :
(sqrt(2))/2
18.9
Test
18.9.1
is_colinear est une fonction boolenne ayant comme argument une liste ou
une squence de points.
is_colinear vaut 1 si les points sont aligns, et vaut 0 sinon.
On tape :
is_colinear(0,1+i,-1-i)
On obtient :
1
On tape :
is_colinear(i/100,1+i,-1-i)
On obtient :
0
18.9. TEST
18.9.2
243
is_concyclic est une fonction boolenne ayant comme argument une liste ou
une squence de points.
is_concyclic vaut 1 si les points sont cocycliques, et vaut 0 sinon.
On tape :
is_concyclic(1+i,-1+i,-1-i,1-i)
On obtient :
1
On tape :
is_concyclic(i,-1+i,-1-i,1-i)
On obtient :
0
18.9.3
244
On tape :
is_conjugate(point(1+i),point(3+i),point(i),point(i+3/2))
On obtient :
1
On tape :
is_conjugate(line(0,1+i),line(2,3+i),
line(3,4+i),line(3/2,5/2+i))
On obtient :
1
18.9.4
18.9. TEST
18.9.5
245
18.9.6
is_equilateral est une fonction boolenne ayant comme argument trois points
ou un objet gomtrique.
is_equilateral vaut 1 si les trois points forment un triangle quilatral ou si
lobjet gomtrique est un triangle quilatral, et vaut 0 sinon.
On tape :
is_equilateral(0,2,1+i*sqrt(3))
On obtient :
1
On tape :
GT:=equilateral_triangle(0,2,GC);is_equilateral(GT[0])
On obtient :
1
En effet GT[0] dsigne un triangle car GT est une liste compose du triangle et de
son sommet GC.
On tape affix(GC) et on obtient 1+i*sqrt(3)
On tape :
is_equilateral(1+i,-1+i,-1-i)
On obtient :
0
246
18.9.7
is_isosceles est une fonction boolenne ayant comme argument trois points
ou un objet gomtrique.
is_isoceles vaut 1 (resp 2, 3) si les trois points forment un triangle isocle
ou si lobjet gomtrique est un triangle isocle dont langle portant les deux cots
gaux est dsign par le premier (resp second, troisime) argument, ou vaut 4 si les
trois points forment un triangle quilatral, ou si lobjet gomtrique est un triangle
quilatral, et vaut 0 sinon.
On tape :
is_isosceles(1,1+i,i)
On obtient :
2
On tape :
GT:=isosceles_triangle(0,1,pi/4);is_isoceles(GT)
On obtient :
1
On tape :
GT:=isosceles_triangle(0,1,pi/4,GC);is_isoceles(GT[0])
On obtient :
1
En effet GT[0] dsigne un triangle car GT est une liste compose du triangle et de
son sommet C.
On tape affix(GC) et on obtient (sqrt(2))/2+((i)*sqrt(2))/2
On tape :
is_isosceles(1+i,-1+i,-i)
On obtient :
3
18.9.8
is_orthogonal est une fonction boolenne ayant comme argument deux droites
ou deux sphres ou une droite et un plan ou deux plans.
is_orthogonal vaut 1 si les deux droites ou les deux sphres (i.e si les plans
tangents en leurs points dintersection sont orthogonaux), ou la droite et le plan ou
les deux plans sont orthogonaux et vaut 0 sinon.
On tape :
is_orthogonal(line([2,3,-2],[-1,-1,-1]),
line([1,0,0],[1,2,8]))
18.9. TEST
247
On obtient :
1
On tape :
is_orthogonal(line([2,3,-2],[-1,-1,-1]),
plane([-1,-1,-1],[-1,0,3],[-2,0,0]))
On obtient :
1
On tape :
is_orthogonal(plane([0,0,0],[1,2,-3],[1,1,-2]),
plane([-1,-1,-1],[1,2,-3],[0,0,0]))
On obtient :
1
On tape :
is_orthogonal(sphere([0,0,0],sqrt(2)),sphere([2,0,0],sqrt(2)))
On obtient :
1
18.9.9
248
18.9.10
18.9.11
18.9. TEST
249
is_perpendicular(line(0,1+i),line(i,1))
On obtient :
1
On tape :
is_perpendicular(line(0,1+i),line(1+i,1))
18.9.12
is_rectangle est une fonction boolenne ayant comme argument trois ou quatre points ou un objet gomtrique.
is_rectangle vaut 1 (resp 2 ou 3) si les trois points forment un triangle rectangle, langle droit tant dsign par le premier (resp second, troisime) argument
ou si lobjet gomtrique est un triangle rectangle,
is_rectangle vaut 1 (resp 2) si les quatre points forment un rectangle (resp un
carr) ou si lobjet gomtrique est un rectangle (resp un carr), et vaut 0 sinon.
On tape :
is_rectangle(1,1+i,i)
On obtient :
2
On tape :
is_rectangle(1+i,-2+i,-2-i,1-i)
On obtient :
1
On tape :
GR:=rectangle(-2-i,1-i,3,GC,GD);is_rectangle(GR[0])
On obtient :
1
En effet GR[0] dsigne un rectangle car GR est une liste compose du rectangle et
de ses sommets C et D.
250
18.9.13
is_rhombus est une fonction boolenne ayant comme argument quatre points
ou un objet gomtrique.
is_rhombus vaut 1 (rep 2) si les quatre points forment un losange (resp un carr)
ou si lobjet gomtrique est un losange (resp un carr), et vaut 0 sinon.
On tape :
is_rhombus(1+i,-1+i,-1-i,1-i)
On obtient :
1
On tape :
GK:=rhombus(1+i,-1+i,pi/4);is_rhombus(GK)
On obtient :
1
On tape :
GK:=rhombus(1+i,-1+i,pi/4,GC,DD);is_rhombus(GK[0])
On obtient :
1
En effet GK[0] dsigne un losange car GK est une liste compose dun losange et
de ses sommets GC et GD.
Si on tape : normal(coordinates(GC,GD)),
on obtient [-sqrt(2)-1,-sqrt(2)+1],[-sqrt(2)+1,-sqrt(2)+1].
On tape :
is_rhombus(i,-1+i,-1-i,1-i)
On obtient :
0
18.9.14
is_square est une fonction boolenne ayant comme argument quatre points ou
un objet gomtrique.
is_square vaut 1 si les quatre points forment un carr ou si lobjet gomtrique
est un carr, et vaut 0 sinon.
On tape :
is_square(1+i,-1+i,-1-i,1-i)
On obtient :
1
251
On tape :
GK:=square(1+i,-1+i);is_square(GK)
On obtient :
1
On tape :
GK:=square(1+i,-1+i,C,D);is_square(GK[0])
On obtient :
1
En effet GK[0] dsigne un carr car GK est une liste compose dun carr et de
ses sommets C et D.
Si on tape affix(GC,GD), on obtient -1-i,1-i.
On tape :
is_square(i,-1+i,-1-i,1-i)
On obtient :
0
18.10
Exercices de gomtrie
18.10.1
Les transformations
252
18.10.2
Les lieux
(OA, At) = c, 0 c 2 .
Soient A1 et B1 les projections respectives de A et B sur D.
Quelle est la valeur de c pour laquelle A1 et B1 sont confondus en un point que
lon nommera P ? Trouver les lieux de A1 et de B1 quand c varie.
Montrer que le triangle P A1B1 reste semblable au triangle OAB quand c varie.
Trouver le lieu de M milieu de A1B1 quand c varie.
GA:=point(0.,3.)
GB:=point(5.,0.)
GC:=arc(1.5*i,1.5)
GD:=(inter(GC,line(GA,GB)))[0]
GE:=arc(1.5*i,-pi/2.,pi/2)
GG:=element(0..1.57,0.25)
GH:=line(y=TAN(GG)*x)
GI:=projection(GH,GA)
GJ:=projection(GH,GB)
GK:=triangle(GD,GI,GJ)
GL:=triangle(GD,2.5,1.5*i)
GM:=midpoint(GI,GJ)
GN:=trace(GM)
18.11
Activits de gomtrie
Mdiatrice de AB
Crer un segment AB.
253
254
EXPORT BARY(L):={
BEGIN
LOCAL S,D;
D:=SIZE(L);
S:=sum(L[k],k,1,d-1,2);
IF (s==0) THEN RETURN "pas defini" END;
RETURN 1/s*sum(L[k]*L[k+1],k,0,d-2,2);
}
Bissectrice dun angle
Crer un triangle ABC.
Construire les bissectrices de langle A du triangle ABC, en utilisant la
mme construction quavec un compas et en utilisant linstruction perpen_bissector
qui trace la mdiatrice dun segment.
Rponse
On slectionne :
Lines->Triangle->triangle et on dfinit avec le curseur trois points
A, B et C et le triangle D ainsi que ses cots sont dfinis automatiquement
dans SYMB (GD:=triangle(GA,GB,GC)), GE:=segment([GA,GB]),GG:=segment([G
GH:=segment([GC,GA]).
On slectionne : Curves->Circles->circle
On suppose que AB < AC pour que le cercle de centre A qui passe par B
coupe le segment H qui est le segment AC.
On pointe le centre A (ou on tape Alpha A), on valide avec ENTER ou avec
, puis on pointe le point B (ou on tape Alpha B) .
Il sinscrit en dessous de la figure :
circle(GA,GB-GA) qui )=est le cercle I de centre A passant par B.
255
256
257
258
Chapitre 19
Le tableur
19.1
Gnralits
19.2
19.2.1
Par exemple :
On met 1 dans A1 et =A1+1 dans A2 et on veut recopier vers le bas cette formule.
Il y a 3 moyens de le faire : vous de choisir celui qui vous convient !
tchnique 1 : on slectionne A2 jusqu A5, et on tape : =A1+1,
tchnique 2 : entre =A1+1 dans A2, on fait copy, puis avec select du
bandeau on slectionne A3 jusqu A5, et on fait paste et on choisit la
formule parmi les expressions qui sont dans le presse papier,
tchnique 3 : on met =A1+1 dans A2, puis on slectionne A2 jusqu A5
puis Edit et Enter
19.2.2
260
19.3
19.3.1 SUM
SUM effectue la somme des cellules mises en argument.
Par exemple : SUM(A1:B3) effectue la somme A1+A2+A3+B1+B2+B3
19.3.2 AVERAGE
AVERAGE
19.3.3 AMORT
261
plage fait rfrence aux cellules dans lesquelles on pourra lire les rsultats,
n est le nombre de remboursements du prt,
i est le taux dintrt, pv est la somme restant due pmt est le montant de chaque
remboursement,
Par exemple :
Mais il me semble que cest plus facile dutiliser lApplication Finance.
19.3.4 STAT1
STAT1 permet de faire des statistiques une variable.
La syntaxe est : STAT1(plage,[mode],["configuration"]).
plage est la source des donnes, par exemple : A1:B3
mode vaut :
1 si chaque colonne sont indpendantes,
2 si les colonnes sont utilises par paires (donnes, frquences),
3 si les colonnes sont utilises par paires (donnes, poids),
4, Mais il me semble que cest plus facile dutiliser lApplication :
Stats-1Var.
19.3.5 REGRS
REGRS essaie de faire correspondre les donnes une fonction (linaire par
dfaut).
La syntaxe est : REGRS(plage,[mode],["configuration"]).
Par exemple : Mais il me semble que cest plus facile dutiliser les commandes
linear_regression, exponential_regression, etc....
19.4
19.4.1
Exercice 1
262
P
Calculer kj=1 2j 1 lorsque k N.
Une solution
On tape 1 dans A1.
On met =A1+1 dans A2, puis, on recopie vers le bas la formule contenue
dans A2 : pour cela on slectionne A2...A10 (lorsque select. du bandeau est visible et on slectionne A2...A10 avec le curseur) et on tape
=A1+1.
On met =A1^2 dans B1, puis, on recopie vers le bas la formule contenue
dans B1 : pour cela on slectionne B1...B10 (lorsque select. du bandeau est visible et on slectionne B1...B10 avec le curseur) et on tape
=A1^2.
On met =2*A1-1 dans C1, puis, on recopie vers le bas la formule contenue
dans C1 : pour cela on slectionne C1...C10 (lorsque select. du bandeau est visible et on slectionne C1...C10 avec le curseur) et on tape
=2*A1-1.
On tape 1 dans D1.
On met =D1+C2 dans D2, puis, on recopie vers le bas la formule contenue
dans D2 : pour cela on slectionne D2...D10 (lorsque select. du bandeau est visible et on slectionne D2...D10 avec le curseur) et on tape
=D1+C2.
On obtient :
A
B C
D
1 1
1 1
1
2 2
4 3
4
3 3
9 5
9
4 4 16 7 16
5 5 25 9 25
6 6 36 11 36
7 7 49 13 49
8 8 64 15 64
9 9 81 17 81
10 10 100 19 100
On
Pkva donc montrer2 par rcurrence que :
j=1 2j 1 = k lorsque k N La formule est vraie pour k = 1..10 (cf cidessus).
P
Supposons que pour k = n nj=1 2j 1 = n2 alors pour k = n + 1 on a
Pn+1
Pn
2
2
j=1 2j 1 =
j=1 +2(n + 1) 1 = n + 2n + 1 = (n + 1) Donc la formule
est montre.
19.4.2
Exercice 2
263
264
1
2
3
4
5
6
7
8
9
10
11
A B
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
C
D
E
F
g
H I J K
0
0
0
0
0
0 0 0 0
0
0
0
0
0
0 0 0 0
1
0
0
0
0
0 0 0 0
3
1
0
0
0
0 0 0 0
6
4
1
0
0
0 0 0 0
10 10
5
1
0
0 0 0 0
15 20 15
6
1
0 0 0 0
21 35 35 21
7
1 0 0 0
28 56 70 56 28
8 1 0 0
36 84 126 126 84 36 9 1 0
45 120 210 252 210 120 45 10 1
1
1
2
3
=
=
=
=
13 =
0
%
0
%
1
%
0
%
0
%
10
10
15
20
15
%
3
%
4
0
%
0
%
%
1
%
1
%
1
On tape :
A:=makemat((j,k)->comb(j,k),11,11)
L:=sum(A[j-k, k],k=0..j)$(j=0..10)
On obtient :
1,1,2,3,5,8,13,21,34,55,89
On tape :
L1:=0,sum(A[j-k-1,k-1],k=1..j-1)$(j=1..10)
On obtient :
0,0,1,1,2,3,5,8,13,21,34
On tape :
L2:=1,sum(A[j-k-1,k],k=0..j-1)$(j=1..10)
On obtient :
1,1,1,2,3,5,8,13,21,34,55
Pour le montrer on utilise la relation pour n N :
p
p1
Cn0 = 1, Cnn = 1 et Cnp = Cn1
+ Cn1
pour 0 < p < n.
Soit an la suite gale la somme des diagonales montantes du triangle de Pascal.
265
On a donc :
a0 = 1, a1 = 1 et pour n > 1 :
Pfloor(n/2)
Pfloor(n/2)
an = p=0
comb(n p, p) = 1 + p=1
comb(n p, p)
Pfloor(n/2)
Pfloor(n/2)
an = 1 + p=1
comb(n p 1, p 1) + p=1
comb(n p 1, p)
On a pour tout n : floor(n/2) 1 = floor((n 2)/2)).
On a si n = 2k, on a floor(n/2) = floor((n 1)/2) + 1 = k :
Pfloor(n/2)
1 + p=1
comb(n p 1, p) =
Pfloor((n1)/2)
comb(n 1 p, p) + comb(2k 1 k, k) = an1
p=0
car comb(2k 1 k, k) = 0
Pfloor(n/2)
comb(n p 1, p 1) =
p=1
Pfloor((n2)/2)
comb(n 2 p, p) = an2
p=0
car floor(n/2)-1=floor((n-2)/2)
On a si n = 2k + 1 alors floor(n/2) = floor((n 1)/2) = k :
Pfloor(n/2)
1 + p=1
comb(n p 1, p) =
Pfloor((n1)/2)
comb(n 1 p, p) = an1
p=0
Pfloor(n/2)
comb(n p 1, p 1) =
p=1
Pfloor((n2)/2)
comb(n 2 p, p) = an2
p=0
car floor(n/2)-1=floor((n-2)/2)
Donc :
a0 = 1, a1 = 1 et pour n > 1 on a an = an1 + an2
an est donc la suite de Fibonacci.
266
Chapitre 20
LApplication Fonction
20.2
LApplication Suite
20.2.1
La suite de Fibonnacci
On tape :
U1(1)=1
U1(2)=1
U1(N)=U1(N-1)+U1(N-2)
On obtient en appuyant su Num :
la suite de Fibonnacci
On tape la suite des restes :
U1(1)=1
U1(2)=1
U1(N)=U1(N-1)+U1(N-2)
267
268
20.2.2
Le PGCD
B Q1 + R1
0 R1 < B
B=
R1 Q2 + R2
0 R2 < R1
R1 =
R2 Q3 + R3
0 R3 < R2
.......
Rn2 = Rn1 Qn + Rn 0 Rn < Rn1
Aprs un nombre fini dtapes (au plus B), il existe un entier n tel que : Rn = 0.
on a alors :
P GCD(A, B) = P GCD(B, R1 ) = ....
P GCD(Rn1 , Rn ) = P GCD(Rn1 , 0) = Rn1
laide de lAplet Suite, on crit la suite des restes.
On tape la suite des restes R :
U1(1)=76
U1(2)=56
U1(N)=irem(U1(N-2),U1(N-1))
On obtient en appuyant sur Num :
76,56,20,16,4,0 donc ....le PGCD de 76 et 56 vaut 4
20.2.3
Lidentit de Bzout
269
U1(N)=irem(U1(N-2),U1(N-1))
On tape la suite des quotients Q dans U2 :
U2(1)=0
U2(2)=0
U2(N)=iquo(U1(N-2),U1(N-1))
0n va mettre U dans U3 et dans V U4 pour qu chaque tape on ait 76 U + 56
V = R.
Puisque R(N ) = R(N 2)R(N 1)Q(N ) et Q(N )iquo(R(N 2), R(N 1)),
si on a :
76 U (N 2) + 56 V (N 2) = R(N 2) (1) et
76 U (N 1) + 56 V (N 1) = R(N 1) (2)
En faisant (1)-(2)*Q(N), on a :
76 (U (N 2) U (N 1) Q(N )) + 56 (V (N 2) V (N 1) Q(N )) =
R(N 2) R(N 1) Q(N ) = R(N )
Les relations de rcurence sont donc :
U (N ) = U (N 2) U (N 1) Q(N ) = U (N 2) U (N 1) iquo(R(N
2), R(N 1))
V (N ) = V (N 2) V (N 1) Q(N ) = V (N 2) V (N 1) iquo(R(N
2), R(N 1))
On tape dans U3 la suite des U :
U3(1)=1
U3(2)=0
U2(N)=U3(N-2)-U3(N-1)*iquo(U1(N-2),U1(N-1))
On tape dans U4 la suite des V :
U4(1)=0
U4(2)=1
U4(N)=U4(N-2)-U4(N-1)*iquo(U1(N-2),U1(N-1))
Ainsi pour chaque N on a 76*U3(N)+56*U4(N)=U1(N) On obtient en appuyant sur Num :
76,0,1,0 (76=76*1+56*0)
56,0,0,1 (56=76*0+56*1)
20,1,1,-1 (20=76*1+56*-1)
16,2,-2,3 (16=76*-2+56*3)
4,1,3,-4 (4=76*3+56*-4)
0,4,-14,19 (0=76*-14+56*19)
donc 76*3+56*-4=4=PGCD de 76 et 56
20.3
LAplet Paramtrique
On tape :
X1(T)=-COS(2T)
Y1(T)=SIN(3T)
On obtient :
le dessin dune courbe ressemblant un
270
20.4
LAplet Polaire
On tape :
R1()=COS(3)
On obtient :
le dessin dun trfle
20.5
LAplet Rsoudre
20.6
LAplet Finance
On remplit les diffrents champs sauf un pour lequel on appuie sur SOLVE du
bandeau.
Par exemple, on veut connaitre les mensualits dun prt 4.6 % de 100 000 euros
sur 10 ans, on tape :
NbPmt 120
IPYR 4.6
PV 100000
PPYR 12
PMT
CPYR 12
FV 0.00
Fin Y
Taille du groupe 12
On met PMT en surbrillance et on appuie sur SOLVE du bandeau.
On obtient le montant du remboursement mensuel :
-1041.21
Les remboursements de ce prt sont donc de 1041.21 euros par mois.
On appuie sur AMORT du bandeau.
On obtient le tableau damortissement par groupement de 12 mois :
Princ donne le montant des sommes rembourses
Inter donne le montant des interts verss
Balan donne le montant des sommes dues
Par exemple au bout de la 2ime anne on a :
Princ=-16505.07 : on a donc rembours 16505.07 euros
Inter=-8484.0 : on a pay 8484 euros dinterts
Balan=83494.9 : il reste rembourser 83494.93 euros (100000-16505.07)
En appuyant sur la touche PLOT on a le graphe de lamortissement.
On peut lire :
271
20.7
Cette Aplet permet de rsoudre des systmes linaires de 2 quations 2 inconnues X, Y ou de 3 quations 3 inconnues X, Y, Z.
Remarque
Pour rsoudre un systme linaire de 2 quations 2 inconnues X, Y , il faut cocher
22 du bandeau.
Le canevas du systme saffiche et il ne reste qua taper les coefficients.
La rponse sinscrit en bas de lcran. On tape :
1*X+1*Y+1*Z=3
2*X+(-2)*Y+1*Z=1
3*X+1*Y+1*Z=5
On obtient :
X:1,Y:1,Z:1
On tape :
1*X+1*Y+1*Z=3
2*X+2*Y+2*Z=1
3*X+1*Y+1*Z=5
On obtient :
No Solutions
20.8
272
20.9
Statistiques 1-Var
Laplet Statistiques 1-Var permet de faire des statistiques une variable avec ou sans effectif.
Exemple On mesure les tailles en cm de 10 personnes.
On obtient :
150,165,170,165,160,170,160,175,165,180.
1. Calculer la mdiane, la moyenne et lcart-type de cette srie.
On ouvre laplet Statistiques 1-Var et on utilise une seule colonne.
On appuie sur START du bandeau et on tape dans D1 :
150 ENTER 165 ENTER....
On peut si on le dsire trier les donnes avec TRIER du bandeau.
On appuie sur Symb, on coche H1 :D1 et on vrifie que lon a Plot1 :
Histogramme
On appuie sur la touche Num et sur STATS du bandeau.
On obtient :
Nb Item 10
X min 150
X Q1 160
X med 165
X Q3 170
X
P max 180
PX 1660
X^2 276200
MoyX 166
SX 8.432740
X 8
SE X 2.6666667
2. Construire lhistogramme.
On rgle tout dabord le Plot Setup (SHIFT Plot) : Largeur 5
HRNG 150
180
XRNG 150
180
YRNG -1
10
XTICK 1
YTICK 1
Puis on appuie sur Plot.
273
On obtient :
lhistogramme
3. Dessiner la boite moustache.
On appuie sur Symb et on met Plot1 : Histogramme en surbrillance.
Avec CHOOS du bandeau on choisit Boite--moustache, puis on appuie sur Plot.
On obtient :
Le dessin de la boite moustache
4. Le mme exercice en utilisant une colonne pour les effectifs.
On mesure les tailles en cm de 10 personnes.
On obtient :
150:1
160:2
165:3
170:2
175:1
180:1
On appuie sur Num et on tape dans D2 :
150 ENTER 160 ENTER 165 ENTER 170 ENTER 175 ENTER 180
ENTER
et dans D3 :
1 ENTER 2 ENTER 3 ENTER 2 ENTER 1 ENTER 1 ENTER
On appuie sur Symb et on dcoche H1 :D1et on met :
H2 :D2 et on tape D3 lorsque Freq est en surbrillance. H2 est coch ainsi
que Plot2 : Histogramme.
On obtient la mme chose que prcdemment.
Nb Item 10
X min 150
X Q1 160
X med 167.5
X Q3 175
20.10
Statistiques 2-Var
274
175:72
165:58
180:75
1. Calculer la taille moyenne et le poids moyen de ces individus.
Calculer le coefficient de corrlation.
On ouvre laplet Statistiques 2-Var et on utilise deux colonnes.
On appuie sur START du bandeau.
On tape dans C1 :
150 ENTER 165 ENTER....
On tape dans C2 :
41 ENTER 53 ENTER....
On peut si on le dsire trier les donnes avec TRIER du bandeau.
On appuie sur Symb, on met S1 :C1
C2, on coche S1 et on vrifie
que lon a :
Type1 :Lineaire
Fit1 : m*X+b
On appuie sur la touche Num et sur STATS du bandeau.
On obtient :
Nb Item 10
Corr 0.91798
CoefDet 0.84269
SCov 81.7778
PCov 73.6
X
P max 180
XY 102660
En appuyant sur X du bandeau on a :
MoyX
166
P
X
1660
P
X^2 276200
SX 8.432740
X 8
SE X 2.6666667
En appuyant sur Y du bandeau on a :
MoyY
61.4
P
PY 614
Y^2 38704
SY 10.5641
Y 10.0220
SE Y 3.340659
2. Dessiner le nuage de points
On rgle tout dabord le Plot Setup (SHIFT Plot) : XRNG 145
185
YRNG 39
77
XTICK 5
YTICK 2
Puis on appuie sur Plot.
On obtient :
le nuage de points et le trac de la droite de rgression
275
20.11
Aplet Infrence
Rsultats retenir
Si est la moyenne dune population et m la moyenne des moyennes des
valeurs dun chantillon de taille n extrait de cette population, on a : m = ,
Si lcart-type dune population et lcart-type de la moyenne des moyennes
des valeurs dun chantillon de taille n extrait de cette population, on a : = n ,
2 la variance dune population et s2 la moyenne des variances des valeurs
2
dun chantillon de taille n extrait de cette population : S 2 = n1
n ,
S
Donc on a n = n1 .
Lorsquon a un chantillon de taille n de moyenne x et dcart-type s on choisit
faute de mieux :
S = s et m = x et donc la moyenne des valeurs des chantillons de taille n a
s
pour moyenne x et pour cart-type n1
.
En Rsum
La moyenne et la variance dune somme sont respectivement la somme des
moyennes et la somme des variances.
La moyenne et la variance dune diffrence sont respectivement la diffrence
des moyennes et la somme des variances.
La moyenne de lensemble des moyennes des valeurs dun chantillon de
taille n extrait dune population de moyenne m est m.
La variance de lensemble des moyennes des valeurs dun chantillon de
2
taille n extrait dune population de variance 2 est n .
Lcart-type de lensemble des moyennes des valeurs dun chantillons de
taille n extrait dune population dcart-type est n .
La moyenne s des variances de lensemble des variances des valeurs dun
2
chantillon de taille n extrait dune population de variance 2 est n1
n .
Lcart-type de lensemble des moyennes des valeurs dun chantillon de
taille n sobtient en divisant la moyenne S des variances
de lensemble des
variances des valeurs dun chantillon de taille n par n 1 :
lensemble des moyennes des valeurs dun chantillon de taille n a donc
S
pour moyenne m et pour cart-type n1
.
276
20.11.1
277
On obtient :
8.5523597412
On tape dans Home :
normald_icdf(100,9.35414346693,0.99)
On obtient :
121.760991768
On tape dans Home :
(121.760991768-100)/9.35414346693
On obtient :
2.32634787407
On tape dans Home pour = 0.002 :
normald_icdf(100,9.354,0.001),
normald_icdf(100,9.354,0.999)
On obtient :
71.0939670081,128.906032992
Intervalle de confiance dune proportion ou frquence
278
C=0.38
On appuie sur CALC du bandeau :
On obtient :
C 0.38
Crit Z 0.495850347347
Minimum critique 0.159986734614
Maximum critique 0.166679932052
Comparaison des frquences de 2 chantillons
On a 2 chantillons deffectifs n1 et n2 pour lesquels les frquences dun caractre sont f1 et f2 . Si f1 et f2 sont diffrents comment savoir si les 2 chantillons
proviennent dune mme population ou pas ?
Si on fait lhypothse que les 2 chantillons proviennent dune mme population
on peut estimer la frquence p de la population entire en reunissant les 2 chantil2 f2
lons avec p = n1nf11 +n
+n2 .
Lcart-type
de la distribution des frquences
du caractre de lchantillon 1 est
q
q
f1 (1f1 )
n1
2)
et celui de lchantillon 2 est f2 (1f
.
n2
On considre la distibution des valeurs de f1 f2 , si les 2 chantillons proviennent
dune mme population :
la moyenne de f1 f2 est 0 q
et
+ p(1p)
lcart-type s de f1 f2 est p(1p)
n1
n2
Exemple
Dans la classe A de 40 lves il y a eu 23 reus et
dans la classe B de 40 lves il y a eu 17 reus. Les lves de la classe A et de la
classe B appartiennent-ils la mme population ?
Si ils appartiennent la mme population, la distribution des frquences f1 f2
suit une loi normale :
de moyenne p = 40
80 = 0.5 et
q
dcart-type s = 20.50.5
= 0.111803398875
40
17
On sait que f1 = 23
40 ' 0.575 et f2 = 40 ' 0.425 donc f1 f2 = 0.15 et
f1 f2
' 1.3416407865
s
On tape :
normal_cdf(0,0.111803398875,0.15)-normal_cdf(0,0.111803398875,-0.15)
ou on tape :
normal_cdf(0,1,1.3416407865)-normal_cdf(0,1,-1.3416407865)
On obtient :
0.820287505121
On tape :
1-0.820287505121
On obtient :
0.179712494879
Cela veut dire que lon peut dire que les 2 classes proviennent de la mme population car si on affirmait le contraire on aurait une probabilit de 17.97 % de se
tromper.
On tape si on veut un rsultat au seuil de 5% :
normal_icdf(0,0.111803398875,0.025),normal_icdf(0,0.111803398875,0.975
279
On obtient :
-0.219130635144,0.219130635144
280
On obtient :
0.1105384548472
normal_icdf(0.15,0.1105384548472,0.025),normal_icdf(0.15,0.11053845484
On obtient le minimum critique et le maximum critique :
-0.0666513904072,0.366651390407
20.11.2
S
sqrtn1 et donc = sqrtn1 .
Exemple
On pse 100 pains de 400 gr pris au hasard dans une boulangerie et on obtient une
moyenne m1 de 390 gr avec un cart-type s1 de 50 gr.
Le boulanger respecte-t-il le poids de ses pains de 400 gr pour le seuil de confiance
de 95 % ?
Estimer la moyenne de la population partir de x et dcart-type s de cet chantillon.
Il sagit de comparer une moyenne exprimentale m = x une moyenne
thorique .
Lhypothse (H0 ) est que la diffrence entre ces 2 moyennes nest pas significative ie (H0 ) : x = . Lhypothse alyternative (H1 ) est donc (H1 ) :
x 6= .
Lcart-type s de lchantillon de 100 lments est 50, on estime donc lcarttype p
de la population :
50 100/99 ' 50.25
On sait que :
x
U=
(n)
suit sensiblement une loi centre rduite car n = 100 > 30.
On pose donc :
U=
390 400
= 1.98997487421
50
(99)
281
de moins de 5%. Donc on peut dire, avec un risque derreur moins de 5%,
que le boulanger ne respecte pas le poids de ses pains de 400 gr.
Avec la calculatrice :
On appuie sur Symb et on choisit :
Test dHypo
Type Z-Test: 1
Hypoth Alt 6= 0
On appuie sur Num et on tape :
N=100
=400
=50.25
=0.05
On appuie sur CALC du bandeau :
On obtient :
Rsultat 0 (Rejet de lhypothse =0.05)
Test Z -1.99
Test x 390
Prob Z 0.0466
Crit Z 1.9599
Minimum critique 390.151
Maximum critique 409.849
On tape dans Home :
normald_icdf(400,5.025,0.025),
normald_icdf(400,5.025,0.975)
On obtient :
390.151180978,409.848819022
Il sagit de trouver un intervalle au seuil de 5% de centre x dans lequel m se
trouve avec une probabilit de 95 %.
On choisit faute de mieux :
x = m
s = s = n1
et
n
s = sigma donc La moyenne des moyennes des chantillons deffectif
s
n suit une loi normale de moyenne x et dcart-type n = n1
Donc
=
500
99
' 50.25.
Avec la calculatrice :
On appuie sur Symb et on choisit :
Inter de Confiance
.Type Z-int: 1
On appuie sur Num et on tape :
x 390
N=100
=50.25
C=0.95
On appuie sur CALC du bandeau :
On obtient :
C 0.95
282
20.11.3
On utilise la loi de Student (valable plutt pour les petits chantillons (n<30)) :
20.12
On tape :
On obtient :
20.13
On tape :
On obtient :
20.13.1
On tape :
On obtient :
20.14
283
284
Cinquime partie
285
Chapitre 21
Gnralits
Les exemples de programmes qui suivent sont des programmes CAS qui utilisent
les commandes du CAS.
Pour cela on tape :
Shift Program puis,
Nouv. du bandeau.
On obtient une fentre avec Nom et CAS.
On coche CAS pour crire un programme CAS et on met comme Nom par exemple : decimales, puis OK et on tape le programme qui donne la partie entire et
les p dcimales une une du nombre rationnel f (cf 23.4.2).
287
288
Chapitre 22
Les instructions de
programmation
22.1
Linstruction daffectation
22.2
290
On tape :
3=>X
IF X>0 THEN
ou
IF X>0 THEN
On obtient :
3
On tape :
-3=>X
IF X>0 THEN
ou
IF X>0 THEN
On obtient :
-3
X+1 END
X+1;END
X+1 END
X+1;END
IFTE
Si la condition donne en premier argument est vraie on excute le deuxime argument et sinon on excute le troisime argument.
On tape :
3=>X
IFTE(X>0,X+1,X-1)
On obtient :
4
On tape pour dfinir la valeur absolue :
-3=>X
IFTE(X>0,X,-X)
On obtient :
3
On tape :
EXPORT ESSAI0(X,A)
BEGIN
RETURN IFTE(X<-ABS(A),-1,IFTE(X<ABS(A),0,1));
END;
Puis on tape :
ESSAI0(-5,3)
On obtient :
-1
On tape :
ESSAI0(-2,3)
On obtient :
0
On tape :
ESSAI0(5,3)
On obtient :
1
291
IF < cond >THEN < inst1 > ELSE < inst2 > END
Si la condition < cond > est vraie on excute les instructions < inst1 > et sinon
on excute les instructions < inst2 >.
On tape :
3=>X
IF X>0 THEN X+1 ELSE X-1 END
ou
IF X>0 THEN X+1; ELSE X-1; END
On obtient :
3
On tape :
-3=>X
IF X>0 THEN X+1 ELSE X-1 END
ou
IF X>0 THEN X+1; ELSE X-1; END
On obtient :
-4
On tape :
EXPORT ESSAI(X,A)
BEGIN
IF X<-ABS(A) THEN RETURN -1; END;
IF X<ABS(A) THEN RETURN 0; END;
RETURN 1;
END;
Puis on tape :
ESSAI(-5,3)
On obtient :
-1
On tape :
ESSAI(-2,3)
On obtient :
0
On tape :
ESSAI(5,3)
On obtient :
1
CASE ...END
CASE
IF < cond1 > THEN < inst1 > END;
IF < cond2 > THEN < inst2 > END;
IF < cond3 > THEN < inst3 > END;
DEFAULT < inst4 > ;
END
On utilise CASE pour viter de faire des IF imbriqus.
< cond1 > est value :
292
CASE
IF X<-1 THEN -1=>R; END;
IF X<1; THEN 0=>R; END;
IF X>=1 THEN 1=>R; END;
END;
R;
ou bien :
CASE
IF X<-1 THEN -1=>R; END;
IF X<1 THEN 0=>R; END;
DEFAULT 1=>R;
END;
R;
IFERR
La syntaxe est :
IFERR <inst0> THEN <inst1> ELSE <inst2> END
Si une erreur est ddecte dans les instructions <inst0>, on effectue les instructions <inst1> et sinon on effectue les instructions <inst2>.
On tape (par exemple si on ne sait pas lordre des arguments de la commande
POS) :
IFERR(A:=POS(5,[1,3,5,2,4]); THEN
A:=POS([1,3,5,2,4],5); ELSE
A:=POS(5,[1,3,5,2,4]);
END
On obtient :
4
CONTINUE
Lorsque CONTINUE; se trouve parmi les instructions dune itration, elle a pour
effet de sauter les instructions quiP
la suivent pour aller la prochaine itration.
On tape pour calculer 1+2+4+5= 5j6=3etj=1 j :
A:=0;
FOR J FROM 1 TO 5 DO
IF J==3 THEN CONTINUE; END;
A:=A+J;
END}\\
293
On obtient :
12
22.3
Les boucles
294
On tape
EXPORT PI2S6(P)
BEGIN
LOCAL J,S,U;
FOR J FROM 1 TO 100 DO
U:=1/J^2;
IF U<P THEN
BREAK;
END;
S:=S+U;
END;
RETURN S;
END;
On tape :
PI2S6(0.001)
On obtient :
1.61319070033
On tape :
PI2S6(0.0001)
On obtient :
1.63498390018
On tape :
PI^2/6
On obtient :
1.64493406685
22.4
Les commentaires
//
// commence une ligne destine faire un commentaire.
22.5
Les variables
En programmation les variables ont comme noms une suite de lettres ou chiffres
commencant par une lettre.
Les variables qui sont locales au programme seront dclares en utilisant le mot
cl LOCAL, par exemple : LOCAL A,B,AB,x;.
Dans ce cas les variables sont initialises 0.
Pour avoir une variable formelle on crira : x :=x
22.6
<,<=,==,!=,>,>=
<,<=,>,>= sont des oprateurs boolens infixs testant lingalit.
== est un oprateur boolen infix testant lgalit.
295
296
1
On tape :
1 XOR 1
On obtient :
0
On tape :
0 XOR 0
On obtient :
0
On tape :
On obtient :
22.7
CHOOSE
On tape pour choisir la valeur de A parmi les 3 valeurs, (1,2,3) :
CHOOSE(A,"TITRE:A=","UN","DEUX","TROIS")
On obtient :
Louverture dune boite de dialogue comportant 3 items :
si on clique sur le 1ier (resp 2nd, 3ime) item, cela stocke
1 (resp 2, 3) dans A
DISP
On tape :
DISP("A="+A)
On obtient :
FREEZE
On tape :
FREEZE
On obtient :
un gel de lcran, on appuie sur une touche pour degeler
GETKEY
On tape :
A:=GETKEY
On obtient, si on a appuyer sur . :
48
On tape :
A:=GETKEY
On obtient, si on na pas press de touche :
-1
297
ISKEYDOWN
On tape :
ISKEYDOWN(48)
On obtient, si on na pas press la touche . :
0
On tape :
ISKEYDOWN(48)
On obtient si on a press la touche . :
1
INPUT
On tape :
INPUT(C,"TITRE:C=")
On obtient :
Un cran permettant dentrer une valeur qui sera stocke
dans la variable C
MSGBOX
On tape :
A:=3
MSGBOX(2*A)
ou
MSGBOX(2*A,0)
On obtient :
6 et OK dans le bandeau
Si on appuie sur OK alors MSGBOX(2*A) ou MSGBOX(2*A,0) renvoie 1.
On tape :
A:=3
MSGBOX(2*A,1)
On obtient :
6 et CANCEL et OK dans le bandeau
On tape :
Si on appuie sur CANCEL alors MSGBOX(2*A,1) renvoie 0.
Si on appuie sur OK alors MSGBOX(2*A,1) renvoie 1.
On tape :
A:=3
MSGBOX("A= "+A)
On obtient :
"A= 3"
PRINT
On tape :
A:=3
PRINT(A)
On obtient :
A:3
298
WAIT
On tape :
WAIT(5)
On obtient :
Une interruption du programme pendant 5 secondes
EDITMAT
On tape :
EDITMAT(M)
On obtient :
Louverture dun diteur de matrice permettant dentrer
la matrice M
Une utilisation de GETKEY et de ISKEYDOWN.
Le programme suivant permet de connaitre le code des touches sur lesquelles on
appuie et se termine lorsquon appuie sur la touche ..
EXPORT AA()
BEGIN
LOCAL A,L;
L:=[];
REPEAT
REPEAT
A:=GETKEY;
UNTIL A!=-1;
L:=CONCAT(L,A);
UNTIL ISKEYDOWN(48);
RETURN L;
END;
On tape :
AA() puis ENTER 1230.
On obtient :
[42,43,44,47,48]
On peut aussi crire le programme suivant qui donnera le mme rsultat :
EXPORT AAA()
BEGIN
LOCAL A,L,N;
L:=[];
N:=0
WHILE N==0 DO
REPEAT
A:=GETKEY;
UNTIL A!=-1;
L:=CONCAT(L,A);
N:=ISKEYDOWN(48);
END;
299
RETURN L;
END;
On tape :
AAA() puis ENTER 1230.
On obtient :
[42,43,44,47,48]
Un exemple un lancer de ds : 2 joueurs A et B lancent tour de rle 2 ds et
comptent leur scores SA et SB en liminant du score certaines parties (par exemple
les parties qui contiennt un 6). Ils dcident de sarreter de jouer au bout de 2mn.
Le programme va afficher le rsultat du jet des 2 ds pour chacun des 2 joueurs. On
remarquera que laffichage du jet du joueur B : MSGBOX(N+1+":B="+B,1)) a
comme deuxime paramtre 1 et donc on a dans le bandeau CANCEL et OK. Si on
appuie sur CANCEL, MSGBOX(N+1+":B="+B,1) renvoie 0 et si on nappuie
pas sur CANCEL, MSGBOX(N+1+":B="+B,1) renvoie 1. Donc si on appuie sur
CANCEL on annule la partie.
Pour arrter de jouer il suffit dappuyer sur OK (touche 5).
Le programme affiche alors le score et la liste des diffrents coups.
EXPORT DEUXDES()
BEGIN
LOCAL SA,SB,A,B,C,N,L;
SA:=0;
SB:=0;
N:=0;
L:=[];
RANDSEED
WHILE ISKEYDOWN(5)==0 DO
A:=(RANDOM 6+RANDOM 6);
MSGBOX(N+1+":A="+A,0);
B:=(RANDOM 6+RANDOM 6);
C:=MSGBOX(N+1+":B="+B,1);
IF C==-1 THEN
L[N]:=[A,B];
N:=N+1;
IF A>B THEN
SA:=SA+1;
ELSE
SB:=SB+1;
END;
END;
END;
RETURN SA,SB,L;
END;
22.8
CHECK
300
STARTAPLET
On tape :
STARTAPLET
On obtient :
STARTVIEW
On tape :
STARTVIEW(1)
On obtient :
noir :0 gris fonce :1 gris clair :2 blanc :3 Symbolic : 0 Plot : 1 Numeric : 2 Symbolic Setup : 3 Plot Setup : 4 Numeric Setup : 5 First special view (Split Screen
Plot Detail) : 6 Second special view (Split Screen Plot Table) : 7 Third special view
(Autoscale) : 8 Fourth special view (Decimal) : 9 Fifth special view (Integer) : 10
Sixth special view (Trig) : 11
HomeScreen : -1 Home Modes : =-2 Memory Manager : -3 APP Library : -4
Aplet Note Editor : -5 MatrixCatalog : -6 ListsCatalog : =-8 ProgramCatalog : =-10
NoteCatalog : =-12
Chapitre 23
Linstruction conditionnelle IF
Trois magasins vendant les mmes laines au mme prix unitaire de p euros,
font une promotion.
Dans le magasin1 la promotion prcise :
rduction de 10 % si vous achetez plus de 5 pelotes mais moins que 10,
rduction de 20 % si vous achetez au moins 10 pelotes.
Dans le magasin2 la promotion prcise :
1 gratuite pour 8 pelotes achetes
2 pelotes gratuites pour 13 pelotes achetes.
Dans le magasin3, la promotion prcise :
rduction de 10 % si vous achetez 5 pelotes,
rduction de 20 % si vous achetez 10 pelotes,
par exemple si vous achetez 7 pelotes p euros lunit, vous avez la rduction
seulement sur 5 pelotes et vous payez 2 p + 5 0.9 p = 6.5 p et si vous
achetez 17 pelotes vous avez la rduction seulement sur 10 pelotes et sur 5
pelotes et vous payez 2 p + 5 0.9 p + 10 0.8 p = 14.5 p.
Vous avez besoin de 9 pelotes, quel magasin choisissez-vous ?
Vous avez besoin de 15 pelotes, quel magasin choisissez-vous ?
Faire le programme prix(n,p) pour xchaque magasin qui donne le prix que
vous allez payer, le nombre de pelotes et lconomie ralise grce la promotion,
lors de lachat de n pelotes au prix unitaire de p. Les programmes prix1
(n,p)->BEGIN
LOCAL p1,p2,n1,n2,r1;
p1:=0.8*p;
p2:=0.9*p;
r1:=irem(n,10);
IF n<5 THEN return n*p,n,0;END;
IF 5<=n and n<10 THEN return n*p2,n,n*(p-p2);END;
IF n>10 THEN return n*p1,n, n*(p-p1);END;
END:;
301
302
prix2
(n,p)->BEGIN:={
LOCAL r1,q1;
r1:= irem(n,13);
q1:=iquo(n,13);
IF r1>=8 THEN return n*p, n+2*q1+1, 2*q1*p+p; END;
IF r1<8 THEN return n*p, n+2*q1, 2*q1*p; END;
END:;
prix3
(n,p)->BEGIN
LOCAL p1,p2,n1,n2,r1;
p1:=0.8*p;
p2:=0.9*p;
r1:=irem(n,10);
IF r1<5 THEN n1:=n-r1; return n1*p1+r1*p,n,(n-r1)*p-n1*p1;END;
IF r1>=5 THEN n1:=n-r1; return n1*p1+5*p2+(r1-5)*p,n,(n-r1+5)*p-n1*p
END:;
23.2
23.2.1
303
END;
RETURN n;
END;
On remarquera que :
n est initialis par la valeur qui suit FROM et la valeur qui suit TO sert faire le test
darrt de la boucle,
linstruction n:=n+1, puis le test n<=p se fait automatiquement dans une boucle
FOR. La boucle sarrte au premier entier n strictement suprieur p.
On tape dans le CAS :
comptef(-1)
On obtient :
0 car le test n<=p se fait en dbut de boucle.
On tape dans le CAS :
comptef(4)
On obtient :
0
1
2
3
4
puis 5 car 5 est le premier entier strictement suprieur p=4
En rsum
FOR initialise la variable du FOR fait le test si le test est vrai il excute le corps
de la boucle (i.e. toutes les instructions jusquau END du FOR) puis la variable du
FOR est incrmente, puis il fait le test : si le test est vrai il excute le corps de la
boucle etc.. ; et si le test est faux il excute les instructions qui suivent le END du
FOR.
La boucle WHILE
On donne comme nom de programme comptew et on coche CAS.
On tape, pour que saffiche la suite 0,1,2..p, le programme qui utilise une
boucle WHILE :
(p)->BEGIN
LOCAL n;
n:=0;
WHILE n <=p DO
PRINT(n);
n:=n+1;
END
RETURN n;
END;
On remarquera que :
n doit tre initialis avant le commencement de la boucle,
WHILE effectue le test n<=p : si le test est vrai il excute le corps de la boucle
(i.e. toutes les instructions jusquau END du WHILE) mais attention il faut changer
304
dans le corps de la boucle la valeur dau moins une variable du test pour que le test
devienne faux un moment afin de ne pas avoir une boucle infinie, cest ici linstruction n:=n+1. Puis WHILE effectue le test n<=p si le test estvrai il excute le
corps de la boucle etc..., et si le test est faux il excute les instructions qui suivent
le END du WHILE.
La boucle sarrte au premier entier n strictement suprieur p.
On tape dans le CAS :
comptew(-1)
On obtient :
0 car le test n<=p se fait en dbut de boucle.
On tape dans le CAS :
comptew(4)
On obtient :
0
1
2
3
4
puis
5 car 5 est le premier entier strictement suprieur p=4
23.2.2
305
(p)->BEGIN
LOCAL n,l;
l:=[];
n:=0;
WHILE n <=p DO
l:=append(l,n);
n:=n+1;
END
RETURN l;
END;
On tape :
comptelf(4) ou comptelw(4)
On obtient :
[0,1,2,3,4]
Avec une squence
La squence vide est NULL et la commande l:=l,a met llment a la fin
de la squence l. Avec une boucle FOR
On donne comme nom de programme comptesf (ou on modifie le programme
prcdent) et on coche CAS.
On tape, pour que saffiche la liste [0,1,2..p], le programme qui utilise une
boucle FOR :
(p)->BEGIN
LOCAL n,l;
l:=NULL;
FOR n FROM 0 TO p DO
l:=l,n;
END;
RETURN l;
END;
Avec une boucle WHILE
On donne comme nom de programme comptesw (ou on modifie le programme
prcdent) et on coche CAS.
On tape, pour que saffiche la liste [0,1,2..p], le programme qui utilise une
boucle WHILE :
(p)->BEGIN
LOCAL n,l;
l:=NULL;
n:=0;
WHILE n <=p DO
l:=l,n;
n:=n+1;
END;
RETURN l;
END;
306
On tape :
comptesf(4) ou comptesw(4)
On obtient :
0,1,2,3,4
23.3
23.3.1
Sans programme
On tape dans le CAS :
s:=0;n:=1;
Puis Enter
On tape ensuite :
s:=s+1/n^2;n:=n+1
Puis Enter,Enter etc ...
On obtient (chaque Enter fait une addition de plus) :
[1,2]
[5/4,3]
[49/36,4]
[205/144,5]
[5269/3600,6]
[5369/3600,7]
[266681/176400,8] etc...
Avec un programme du CAS
On donne comme nom de programme sommeu et on coche CAS.
On tape, pour avoir la somme des 1 + 1/22 + ... + 1/1/p2 , le programme :
(p)->BEGIN
LOCAL s,n;
s:=0;
FOR n FROM 1 TO p DO
s:=s+1/n^2;
PRINT([s,n]);
END;
RETURN [s,n];
END;
On tape dans le CAS :
sommeu(7)
On obtient :
[1,1]
[5/4,2]
[49/36,3]
[205/144,4]
307
[5269/3600,5]
[5369/3600,6]
[266681/176400,7]
[266681/176400,8]
On remarquera quil faudrait mettre PRINT([s,n+1]); pour avoir les mmes
rsultats car dans le FOR lincrmentation de n se fait quand le corps de la boucle a
t excut. Mais le rsultat final est le mme car lincrmentation de n a t faite
et comme 8>7 le FOR sarrte.
23.3.2
Sans programme
On tape dans le CAS :
s:=0;n:=1;
Puis Enter
On tape ensuite :
s:=s+(-1)^(n+1)/n;n:=n+1
Puis Enter,Enter etc ...
On obtient (chaque Enter fait une opration de plus) :
[1,2]
[1/2,3]
[5/6,4]
[7/12,5]
[47/60,6]
[37/60,7]
[319/420,8] etc
Avec un programme du CAS
On donne comme nom de programme sommev et on coche CAS.
On tape, pour avoir la somme des 11/2+1/3...+(1)( p+1)/p, le programme :
(p)->BEGIN
LOCAL s,n;
s:=0;
FOR n FROM 1 TO p DO
s:=s+(-1)^(n+1)/n;
PRINT([s,n]);
END
RETURN [s,n];
END;
On tape dans le CAS :
sommeu(7)
On obtient :
[1,1]
[1/2,2]
308
[5/6,3]
[7/12,4]
[47/60,5]
[37/60,6]
[319/420,7]
[319/420,8]
23.3.3
P2p
n=2p 1 1/k
1/2
Sans programme
On tape dans le CAS :
s:=1;n:=1;k:=0;
Puis Enter
On tape ensuite :
s:=s+sum(1/k,k=n+1..2*n);n:=2*n;k:=1+k;1+k/2<=s
Puis Enter,Enter etc ...
On obtient (chaque Enter fait une opration de plus) :
[3/2,2,1]
[25/12,4,1]
[761/280,5,1]
[2436559/720720,6,1] etc
Avec un programme du CAS
On donne comme nom de programme sommediv et on coche CAS.
On tape, dans le CAS, pour avoir la somme des n :
sommediv(p)->BEGIN
LOCAL s,n,k;
s:=1;
n:=1;
FOR k FROM 1 TO p DO
s:=s+sum(1/k,k=n+1..2*n);
n:=2*n;
1+k/2<=s;
PRINT([s,n,k,1+k/2,1+k/2<=s]);
END
RETURN [s,n,1+(k-1)/2<=s];
END;
On tape dans le CAS :
sommediv(7)
On obtient :
309
3/2,2,1,vrai]
[25/12,4,2,vrai]
[761/280,8,3,vrai]
[2436559/720720,16,4,vrai]
puis, [2436559/720720,16,5,vrai] Exercice Pour quelle valeur de n
p ? On tape, dans le CAS, pour avoir la somme des n :
k = 1n 1/k >
sommesup(p)->BEGIN
LOCAL s,n;
s:=0;
n:=0;
WHILE s<p DO
n:=n+1;
s:=s+1/n;
END;
RETURN evalf(s),n;
END;
On tape dans le CAS :
sommesup(4)
On obtient :
4.02724519544,31
23.4
23.4.1
Sans programme
355
Par exemple on veut trouver le premires dcimale de f = 113
(f est une fraction qui donne avec 6 dcimales exactes !) On tape dans le CAS :
f:=355/113;f1:=floor(f);l:=f1;n:=numer(f-f1);d:=denom(f-f1);
Puis Enter
On tape ensuite :
ds,n:=iquorem(10*n,d); L:=L,ds;
Puis Enter,Enter etc ... On obtient (chaque Enter donne une dcimale de
plus) :
[[1,47],3,1]
[[1,47],3,1,4]
[[1,47],3,1,4,1]
[[1,47],3,1,4,1,5]
[[1,47],3,1,4,1,5,9]
[[1,47],3,1,4,1,5,9,2]
Les dcimales obtenus sont dans la liste l qui commence par la partie entire de la
fraction f.
Ou bien on tape :
f:=355/113;f1:=floor(f);L:=f1;n:=numer(f-f1);d:=denom(f-f1);
Puis Enter
On tape ensuite :
ds,n:=iquorem(10*n,d):; L:=L,ds:;
310
23.4.2
311
LOCAL n,d,l,f1,j,ds;
f1:=floor(f);
l:=f1;
n:=numer(f-f1);
d:=denom(f-f1);
FOR j FROM 1 TO p DO
ds,n:=iquorem(10*n,d);
l:=l,ds;
END;
RETURN l;
END;
(f,p,g)->BEGIN
LOCAL n,d,l,f1,j,ds;
f1:=floor(f);
l:=f1;
n:=numer(f-f1);
d:=denom(f-f1);
FOR j FROM 1 TO p DO
ds,n:=iquorem(10^g*n,d);
l:=l*10^g+ds;
END;
RETURN l;
END;
312
23.5
23.5.1
La mthode de Newton
Soit f deux fois drivable ayant un zro et un seul r dans lintervalle [a ; b].
Supposons de plus que f 0 et f 00 ont un signe constant sur [a ; b]. La mthode de
Newton consiste approcher r par labscisse x1 du point commun Ox et la
tangente en un point M0 du graphe de f . Si M0 a pour coordones (x0 , f (x0 ))
(x0 [a ; b]), la tangente en M0 a pour quation :
y = f (x0 ) + f 0 (x0 ) (x x0 ) et donc on a :
x1 = x0
f (x0 )
f 0 (x0 )
On peut alors ritrer le processus, et on obtient une suite xn qui converge vers r
soit par valeurs suprieures, si f 0 f 00 > 0 sur [a ; b] (i.e. si f 0 (r) > 0 et si f
est convexe (f 00 > 0 sur [a ; b]) ou si f 0 (r) < 0 et si f est concave (f 00 < 0 sur
[a ; b])) soit par valeurs infrieures, si f 0 f 00 < 0 sur [a ; b] (i.e. si f 0 (r) < 0 et
si f est convexe (f 00 > 0 sur [a ; b]) ou si f 0 (r) > 0 et si f est concave (f 00 < 0
sur [a ; b])). Lalgorithme de Hron est un cas particulier de lapplication de la
23.5.2
1
a
x2n a
= (xn
)
2xn
2
xn
313
h:=-p;
END;
WHILE (f(x1)*f(x1+h)>0) DO
x1:=x1-f(x1)/g(x1);
END;
RETURN x1;
END;
On tape dans le CAS :
f(x):=cos(x)-x
newtonrac(f,0.4,1e-10)
On obtient :
0.739085133215 On tape dans le CAS :
cos(0.739085133215)-0.739085133215
On obtient :
2.70006239589e-13
23.5.3
314
Chapitre 24
Exemple de programmes
24.1
24.1.1
Le PGCD
EXPORT PGCD(A,B)
BEGIN
LOCAL R;
WHILE B<>0 DO
R:=CAS.irem(A,B);
A:=B;
B:=R;
END;
RETURN A;
END;
On tape :
PGCD(45,25)
On obtient : 5.
315
316
24.1.2
317
EXPORT BEZOUT(A,B)
BEGIN
LOCAL L1,L2,L3,Q;
L1:={1,0,A};
L2:={0,1,B};
WHILE L2(3)<>0 DO
//Q:=iquo(L1(3),L2(3));
Q:=(L1(3)-L1(3) MOD L2(3))/L2(3)
L3:=L1-Q*L2;
L1:=L2;
L2:=L3;
END;
RETURN L1;
END;
On tape :
BEZOUT(45,10)
On obtient : 1,-4,5.
Ce qui veut dire que 1*45-4*10=5=PGCD(45,25) On tape :
BEZOUT(45,25)
On obtient : -1,2,5.
Ce qui veut dire que -1*45+2*25=5=PGCD(45,25)
24.2
24.2.1
24.2.2
318
b:=r;
END;
RETURN(a);
END;
On tape :
pgcd(45,25)
On obtient : 5.
24.2.3
24.2.4
319