Memento du logiciel Maxima - UHA

Transcription

Memento du logiciel Maxima - UHA
Memento du logiciel Maxima
Table des matières
A Préliminaires
1
B Affectation
1
C Constantes et fonctions usuelles
1
D Vecteurs (ou listes de réels)
2
E Matrices
2
F Polynômes
3
G Applications
3
H Dérivées
4
I
Dérivées partielles
4
J Primitive et intégrale
4
K Tracé de fonctions
4
L Tracé d’un nuage de points
5
M Equations différentielles du premier ordre
M.1 Equation homogène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
M.2 Equation non homogène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
M.3 Equation différentielles quelconques du premier ordre . . . . . . . . . . . . . . . . . .
5
5
6
6
N Equations différentielles du second ordre
7
O Calcul différentiel
7
P Equations de récurrence
8
Q Régression linéaire simple
8
A
Préliminaires
1) Pour les versions ne comportant pas une ligne d’entrée au bas de l’écran, la validation d’une
ligne s’effectue en appuyant sur la touche Retour Chariot (et non pas la touche Entrée du pavé
numérique)
2) L’exponentiation ab s’obtient
- sur un PC par aˆb ou par a ∗ ∗b
- sur un Mac uniquement par a ∗ ∗b
1
3) La variable ’%’ représente le dernier résultat obtenu. Les résulta précédents s’obtiennent en utilisant les variables ’%on’ où n est le numéro du résultat.
4) Dans tout ce qui suit, les exemples sont donnés tels qu’ils doivent être entrés, et non tels qu’ils
apparaissent à l’écran une fois entrés.
5) Pour obtenir une valeur numérique d’une application f (par exemple f (2)) il est nécessaire de
passer en mode N umrique par Basculer l0af f ichage numrique.
6) On peut télécharger le logiciel Maxima à partir du site
http://michel.gosse.free.fr/,
sur le quel on trouvera également de la documentation.
Autres sources : http://declic.softonic.fr/comparer/geogebra,multiplication,maxima
http://maxima.sourceforge.net/
B
Affectation
Constante : a : 5
Polynôme : p : (x − 1) ∗ (x + 3)
Application : f (x) := xˆ4 ∗ sin(x), g(x, y) := [x ∗ sin(x), exp(x ∗ y)]
La commande kill supprime une affectation
C
Constantes et fonctions usuelles
Constantes
%e, %pi, %i, true, f alse
Application
exp, log (logarithme népérien), cos, sin, sqrt (racine carrée), abs (valeur absolue) ,floor (parie
entière), ceiling (plus petit entier supérieur ou égal), gamma (gamma(n)=(n-1) !)
Combinatoire
factorial(n) (=gamma(n+1)), binomial(n,p) (=Cnp )
Opérateurs logiques : and, or, not
D
Vecteurs (ou listes de réels)
A) Déclaration d’un vecteur : a : [2, −1, 5], considéré selon le contexte comme une matrice
3 × 1 ou une matrice 1 × 3.
Exemples
1) Si b : [5, −3, 1], a.b donne le produit scalaire de a et b dont la valeur est 18.
2) Si M : matrix([−1, 2, −5], [3, 1, −4], [−2, 0, 6]), M.a donne la matrice colonne matrix([−29], [−15]),
et a.M donne la matrice ligne matrix([−15, 3, 24]) qui apparaît à l’écran sous la forme [−15 3 24]
3) transpose(a) donne la matrice colonne matrix([2], [−1], [5])
4) matrix(a) transforme a en la matrice ligne matrix([2, −1, 5]) qui apparaît à l’écran sous la
forme [2 −1 5]
B) Création de liste : si f est une application, la liste f (a), ..., f (b), où a < b sont des entiers,
s’obtient par
makelist(f (i), i, a, b) (ou par Algbre −→ Gnrer une liste)
P
Somme : si f est une application, la somme bi=a f (i), où a < b sont des entiers, se calcule par
sum(f (i), i, a, b).
2
C) Opération sur les listes
Commande apply : appliquée à une liste b (entrée directe ou Algbre −→ Appliquer une liste)
1) apply(” + ”, b) donne la somme de cette liste ; apply(” ∗ ”, b) donne le produit des éléments de
la liste
2) apply(max, b) (resp. apply(min, b)) donne le plus grand (resp. le plus petit) élément de la liste
Commande map : appliquée à une liste b (entrée directe ou Algbre −→ Appliquer une liste)
map(f, b) donne la liste obtenue en appliquant à chaque élément de b l’application f
E
Matrices
Trois façons d’entre une matrice :
1) De façon interactive : m : entermatrix(p, q), où p est le nombre de lignes et q le nombre de
colonnes
2) a) Sur un PC : Algbre −→ Entrer une matrice : entrer les coefficients, puis valider ; si l’on
veut appeler m la matrice que l’on vient de créer, entrer m : %
b) Sur un Mac : Algbre −→ Entrer une matrice : entrer les coefficients, le nom de la matrice,
puis valider
3) m : matrix([a, b, c], [d, e, f ]) ([a, b, c] est la première ligne de m)
Matrices particulières
zeromatrix(m, n) : matrice m × n nulle
ident(n) : matrice identité d’ordre n
diag_matrix(a1 , ..., an ) retourne la matrice diagonale d’éléments diagonaux a1 , ..., an
Extraction
Si m = (mi,j ) est une matrice :
- m[i, j] renvoie l’élément mi,j
- m[i] renvoie la ie ligne
- col(m, j) renvoie la j e colonne
Opérations unaires
- Inverse : invert(M ) (équivaut à mˆˆ − 1) (Algbre −→ Inverser une matrice)
- Déterminant : determinant(M ) (Algbre −→ Dterminant)
- Rang : rank(M )
- Transposée : transpose(M ) (Algbre −→ T ransposer une matrice)
- Transposée de la matrice des cofacteurs de M : adjoint − M (Algbre −→ M atrice asssocie)
- Trace 1) tracematrix(M ) après avoir entré load(f uncts) 2) mattrace(M ) après avoir entré load(nchrpl)
- Décomposition de Cholesky d’une matrice positive : cholesky(M )
- Polynôme caractéristique de la matrice M en x : charpoly(M, x) ((Algbre −→ P olynme caractristique)
- Valeurs propres : eigenvalues(M ) = eivals(M ) (Algbre −→ V aleurs propres)
- Vecteurs propres : eigenvectors(M ) = eivects(M ) (Algbre −→ V ecteurs propres)
- Matrice triangulaire supérieure obtenue par élimination de Gauss : triangularize(M )
Opérations binaires
+, −, ∗, /, exp,ˆ : opération élément par élément
. (point usuel) : produit
ˆˆ : puissance
3
F
Polynômes
Entrée d’un polynôme : p : 2 ∗ xˆ2 − 3 ∗ x + 4 (les expressions p(x) ou p(2) n’ont aucun sens)
Opération binaires sur deux polynômes p et q
- p + q, p − q, p ∗ q, gcd(p, q)
Composition
Si p : xˆ3 − 3 ∗ x et q : y − 2
subst(q, x, p) donne le polynôme composé p ◦ q en la variable y (=y 3 − 6 ∗ y 2 + 9 ∗ y − 2)
Division euclidienne
divide(x2 + x + 1, x − 2) donne [x + 3, 7] (dans l’ordre quotient et reste)
Factorisation
Si p est un polynôme, f actor(p) donne sa factorisation dans R et gf actor(p) donne sa factorisation
dans C
Développement
Si p : (2 ∗ x − 3) ∗ (5 ∗ x + 7), expand(p) donne 10x2 − x − 21
Racine
- Les racines réelles d’un polynôme p s’obtiennent par realroots(p)
- Les racines réelles ou complexes d’un polynôme p s’obtiennent par allroots(p)
G
Applications
1) Application à valeur dans R : f (x) := x ∗ cos(x)
2) Application à valeur vectorielle : g(x, y) := [exp(−4 ∗ x ∗ y), x ∗ sin(y)]
3) Application à valeur matricielle : h(x, y) := matrix([y∗exp(−2∗x), xˆ2∗y], [sin(x∗y), x∗log(y)])
Substitution de variables : si a et b n’ont pas d’affectation g(a, b) donne à l’écran [%e4ab , asin(b)]
Substitution de valeurs numériques :
µ
¶
4%e4
16
- si l’affichage numérique n’est pas activé, h(2, 4) donne la matrice
sin(8) 2log(4)
µ
¶
0.073262555554937
16
- si l’affichage numérique est activé, h(2, 4) donne la matrice
0.98935824662338 2.772588722239781
Composition : la composition de deux applications f et g de R dans R s’obtient par f (g(x)).
Résolution d’équation
1) si f est une application continue de R dans R, et si a < b et c sont des réels tels que f (a) − c et
f (b) − c sont de signes opposés, une solution de l’équation f (x) = c comprise entre a et b est donnée
par f ind_root(f (x) = c, x, a, b).
2) si f et g sont des applications, solve(f (x) = g(x)) donne des solutions de l’équation f (x) = g(x) ;
solve(f (x)) résout implicitement l’équation f (x) = 0.
H
Dérivées
Entrer l’application : g(x) := xˆ4 ∗ sin(x)
Dérivée : diff(g(x), x) (=g 0 (x))
Dérivée ne : diff(g(x), x, n) (= g (n) (x))
Evaluation en une valeur réelle : at(diff(g(x), x, n), x = 2) donne la valeur g (n) (2))
Il peut être plus pratique de poser h(x) :=diff(g(x), x, n), puis d’entrer at(h(x), x = 2)
4
I
Dérivées partielles
Entrée de l’application : g(x, y, z) := xˆ4 ∗ sin(y) ∗ exp(−2 ∗ z)
∂g
(x, y, z) s’obtient par diff(g(x, y, z), x)
∂x
∂ 2g
(x, y, z) s’obtient par diff(g(x, y, z), x, 2)
∂x2
∂ 2g
∂2g
(x, y, z) =
(x, y) s’obtient par diff(g(x), x, 1, y, 1) ou diff(g(x), y, 1, x, 1)
∂x∂y
∂y∂x
∂ 6g
(x, y, z) s’obtient par diff(g(x), x, 2, y, 1, z, 3)
∂x2 ∂y∂z 3
∂6g
(x, y, z), h(−1, 2, 4) s’obtient par
Si par exemple h(x, y, z) :=
∂x2 ∂y∂z 3
at(h(x, y, z), [x = −1, y = 2, z = 4])])
-
J
Primitive et intégrale
Si f (x) := 2 ∗ xˆ3 − x + 5
integrate(f (x), x) donne la primitive 21 x4 − 12 x2 + 5x
R1
integrate(f (x), x, 0, 1) donne l’intégrale 0 (2x3 − x + 5)dx = 5
K
Tracé de fonctions
Tracer du graphe d’une application f entre les bornes a et b
Première méthode
On entre la commande plot2d(f, [x, a, b]), qui trace le graphe de f dans le format par défaut
gnuplot. Cette commande équivaut à la commande plot2d(f, [x, a, b], [plot_f ormat, gnuplot]).
La précision des bornes a et b est obligatoire.
Si l’on veut faire afficher le graphe dans la fenêtre courante, on utilise la commande
wxplot2d(f, [x, a, b]).
Si l’on veut tracer le graphe selon le format openmath, on entre plot2d(f, [x, a, b], [plot_f ormat, openmath]).
Si l’on veut limiter le domaine de variation de y à l’intervalle [c, d] et imposer la largeur et la
couleur du trait, on utilise la commande plot2d(f, [x, a, b], [y, c, d], [style, [lines, l, co]]), où l détermine
la largeur du trait et co sa couleur.
La commande plot2d([f, g], [x, a, b]) trace le graphe de deux applications f et g. Si l’on veut imposer
la largeur et la couleur des deux graphes, on utilise la commande plot2d([f, g], [x, a, b], [style, [lines, lf , cof ], [lines, lg
Ces commandes s’étendent à un nombre quelconque d’applications.
Correspondance entre valeurs de co et couleur :
0 : bleu marine 1 : bleu clair 2 : rouge 3 : mauve 4 : vert 5 : brun 6 : vert clair
Deuxième méthode
- cliquer sur Courbe 2D dans la barre inférieure (ou latérale)
- entrer f (ou laisser % si l’on vient juste d’entrer f (x))
- choisir les bornes d’intégration
- modifier éventuellement la graduation
- choisir le format de sortie : 1) le format par défaut est gnuplot 2) en ligne : affiche le graphe
dans la fenêtre courante 3) gnuplot : affiche le graphe dans une fenêtre séparée 4) openmath : affiche
5
le graphe dans une fenêtre séparée ; format commode pour sauvegarder le graphe sous le format
PostScript
N.B. : sur un MAC on ne peut utiliser la sortie gnuplot que si le logiciel X11 est actif ; il se trouve
dans le dossier Utilitaires d’Applications.
L
Tracé d’un nuage de points
Si u et w sont des vecteurs de même longueur (ne pas nommer les vecteurs x)
plot2d([discrete, u, w], [x, a, b], [style, points])
trace le nuage de points (u, w), chaque point étant représenté par un disque bleu.
La commande plot2d([discrete, u, w], [x, a, b], [style, [points, t, co, f ]]) permet en plus de préciser la
taille (t), la couleur (co) et la forme (f ) de la figure représentant chaque point.
Correspondance entre valeur de f et forme :
1 : • 2 : ◦ 3 : + 4 : × 5 : ∗ 6 : ¥ 7 : ¤ 8 : N 9 : 4 10 : H 11 : O 12 : ¨ 13 :
♦
M
Equations différentielles du premier ordre
On commence par la résolution, sur un exemple, d’une équation différentielle du type :
g 0 (x) = ag(x) + P (x), où a est un réel et P un polynôme.
M.1
Equation homogène
Résolution de l’équation homogène : h0 (x) = 4h(x), de solution h(x) = ceax
Première méthode
Il faut donner un nom à l’équation,par exemple eq, puis poser
eq :’diff(h(x), x) = 4 ∗ h(x).
La résolution de l’équation s’obtient par
desolve([eq], [h(x)])
Si l’on impose une condition à initiale, nécessairement en 0 pour cette méthode, il faut procéder
comme suit. Si par exemple on exige que h(0) = −5 :
eq :’diff(h(x), x) = 4 ∗ h(x)
atvalue(h(x), x = 0, −5)
desolve([eq], [h(x)]),
pour obtenir à l’écran h(x) = −5%e4x .
Deuxième méthode
Si l’on préfère écrire l’équation précédente sous la forme y 0 = 4y, on entrera
equa :’diff(y, x) = 4 ∗ y
qui se résout par
ode2(equa, y, x)
Si l’on impose une condition à initiale, par exemple y(1) = −2, il est préférable de procéder comme
suit :
equa :’diff(y, x) = 4 ∗ y
g(x) := ode2(equa, y, x)
ic1(g(x), x = 1, y = −2),
pour obtenir à l’écran y = −2%e2x−2 (si l’affichage numérique n’est pas activé).
6
M.2
Equation non homogène
Résolution de l’équation homogène : h0 (x) = 4h(x) − 3x + 7 Première méthode
Il faut donner un nom à l’équation,par exemple eq, puis poser
eq :’diff(h(x), x) = 4 ∗ h(x) − 3 ∗ x + 7
desolve([eq], [h(x)]),
4x )
pour obtenir h(x) = (16h(0)+25)%e
+ 3x
− 25
.
16
4
16
Si l’on impose une condition initiale, nécessairement en 0 pour cette méthode, il faut procéder
comme suit :
eq :’diff(h(x), x) = 4 ∗ h(x) − 3 ∗ x + 7
atvalue(h(x), x = 0, 1)
desolve([eq], [h(x)]),
4x
pour obtenir à l’écran h(x) = 41%e
+ 3x
− 25
.
16
4
16
Deuxième méthode
Si l’on préfère écrire l’équation précédente sous la forme y 0 = 4y − 3x + 7, on entrera
equa :’diff(y, x) = 4 ∗ y − 3 ∗ x + 7
qui se résout par
ode2(equa, y, x). ³
´
−4x
7%e−4x
L’écran affiche y = 3(4x+1)%e
−
+
%c
%e4x ;
16
4
4x
après avoir cliqué sur l’un quelconque des boutons ”Simplifier” on obtient l’expression y = 16%c%e 16+12x−25 .
Si l’on impose une condition initiale, par exemple y(1) = −2, il est préférable de procéder comme
suit :
equa :’diff(y, x) = 4 ∗ y − 3 ∗ x + 7
g(x) := ode2(equa, y, x)
ic1(g(x), x = 1, y = −2),
−4
4x
4 x+25%e4 )
pour obtenir à l’écran y = − %e (19%e −12%e
.
16
M.3
Equation différentielles quelconques du premier ordre
Le cas général se traite même manière analogue. Nous l’illustrons par l’équation :
g 0 (x) = xg(x) + x2 exp(− 12 x2 ).
On utilisera la deuxième méthode qui permet d’imposer une valeur en tout point de R.
Entrer l’équation : equa :’diff(y, x) = x ∗ y + xˆ2 ∗ exp((1/2) ∗ xˆ2),
poser g(x) := ode2(equa, y, x),
3
x2
visualiser la solution générale en entrant g(x) qui affiche y = ( x3 + %c)%e 2
imposer la condition initiale g(1) = −1 par
ic1(g(x), x = 1, y = −1)
qui affiche
x2
1
x2
(x3 − 1)%e 2 + 2 − 3%e 2
√
.
y=
3 %e
7
N
Equations différentielles du second ordre
Résolution de l’équation g 00 (x) = 2g 0 (x) − cos(x)
Première méthode
equa :’diff(g(x), x, 2) = 2∗’diff(g(x), x, 1) − cos(x)
desolve([equa], [g(x)])
Si l’on souhaite imposer des conditions initiales, nécessairement en 0, on procède comme suit :
equa :’diff(g(x), x, 2) = 2∗ ’diff(g(x), x, 2) − cos(x)
atvalue(g(x), x = 0, 1)
atvalue(’diff(g(x), x), x = 0, 2)
2 sin(x) cos(x) 4e2x
desolve([equa], [g(x)]) (=
+
+
)
5
5
5
Deuxième méthode
equa :’diff(y, x, 2) = 2∗’diff(y, x, 1) − cos(x)
ode2(equa, y, x)
Si l’on impose des condition initiale, par exemple y(1) = −2 et y(0) = −3, il est préférable de
procéder comme suit :
equa :’diff(y, x, 2) = 2∗’diff(y, x, 1) − cos(x)
g(x) := ode2(equa, y, x)
bc2(g(x), x = 1, y = −2, x = 2, y = −3).
O
Calcul différentiel
Matrice jacobienne : jacobian([f (x, y), g(x, y)],
Ã[x, 2y])
!
∂ f
∂2f
(x,
y)
(x,
y)
2
∂x
∂x∂y
Matrice hessienne : hessian(f (x, y), [x, y]) (=
)
∂2f
∂2f
(x,
y)
(x, y)
∂x∂y
∂y 2
Exemple : si k(x, y) := xˆ2
µ ∗ sin(y), et si l’on pose¶ g(x, y) := hessian(k(x, y), [x, y])
2 sin(y) 2x cos(y)
- g(x, y) donne la matrice
2x cos(y) −x2 sin(y)
µ 2
¶
√
√2
2
2
- at(g(x, y), [x = 1, y = %pi/4]) donne à l’écran la matrice
√2
√2
2
2
µ
¶
2 sin(2) 2 cos(2)
- at(g(x, y), [x = 1, y = 2]) donne à l’écran la matrice
si l’affichage numé2 cos(2) − sin(2)
rique n’est pas activé
h
i
2
2
2
2
∂ k
∂ k
∂ k
- si l’on veut obtenir la valeur numérique ∆(1, 2) = ∂x
(1, 2) , on pourra
2 (1, 2) ∂y 2 (1, 2) −
∂x∂y
poser
d(x, y) := determinant(g(x, y)), activer l’affichage numérique, et obtenir la valeur souhaitée par
at(d(x, y), [x = 1, y = 2]).
P
Equations de récurrence
a) L’équation f (n + 1) = af (n) + g(n), où g est par exemple un polynôme, se résout de la façon
suivante :
eq : f (n + 1) = a ∗ f (n) + g(n)
f uncsolve(eq, f (n))
b) L’équation f (n + 2) = af (n + 1) + bf (n) + g(n), où g est une application de N dans R, se résout
de façon analogue :
eq : f (n + 2) = a ∗ f (n + 1) + b ∗ f (n) + g(n)
8
f uncsolve(eq, f (n))
N.B. : M axima recherche d’abord une solution constante. Dans le cas d’une équation sans second
membre f (n + 2) = af (n + 1) + bf (n) le résultat sera toujours 0.
Q
Régression linéaire simple
Si u et w sont des données de même longueur n, pour obtenir la droite de régression de u en w
il est nécessaire d’entrer les données sous forme d’un matrice 2 × n dont la première colonne est le
vecteur u et la seconde le vecteur w. On peut
- soit créer directement la matrice (qu’on appelle m)
- soit, si u et w sont des vecteurs, créer la matrice n × 2 ayant u pour première ligne et w pour
seconde ligne par m : matrix(u, w), puis obtenir la matrice souhaitée, de dimension 2 × n, par
m : transpose(m).
Il faut charger le module stat par load(stats). La commande simple_linear_regression(m) renvoie
quelques résultats des calculs relatifs à la régression, en premier lieu l’équation de la droite de
régression de w en u sous la forme y = ax + b.
La résultat suivant, appelé correlation, est le coefficient de corrélation linéaire entre u et w (noté
r(u, w) ou ρ(u, v)). Ce coefficient peut se calculer de la façon suivante : cov(m) renvoie une matrice
2 × 2, qu’on appellera co, qui est la matrice de variance-covariance du couple (u, w), i.e. co[1, 1] est la
variance de u, co[2, 2] est la variance de w et co[1, 2] = co[2, 1] est la covariance cov(u, w) du couple
(u, w). Le coefficient de corrélation linéaire entre u et w s’obtient alors par co[1, 2]/sqrt(co[1, 1] ∗
co[2, 2]).
Parmi les autres résultats :
n
- v_estimation se calcule par
cov(u, w)(1 − r2 ), où r = r(u, w)
n
−
2
p
- statistic se calcule par r/ (1 − r2 )/(n − 2).
9

Documents pareils