Dans l’ étape 19 , on a vu que l’on pouvait utiliser des blocs de code. On va poursuivre cette approche et réaliser des calculs dans org-mode.
Calc #
Expérience emacs #
Emacs possède un mode pour faire des calculs; les possibilités sont énormes (cf. Emacs calculator). Il s’agit d’une calculatrice RPN avancée, qui requière une certaine pratique…
Pour faire \(12\times 56\), on effectue la séquence suivante:
12
56
*
La notation RPN et la pile sont très pratiques : elles éliminent le besoin de parenthèses, mais la courbe d’apprentissage n’est pas facile… On peut aussi saisir des expressions usuelles…
Expérience casual #
Récemment, un paquetage se propose de simplifier l’usage de calc, en proposant un menu.
Pour faire \(30\times \cos 45\)
M-x calc- 30
- 45
C-o: menu casualt: (menu trigonométriec: cosinus- *
q: pour sortir.
Expérience org-mode #
exemple 1 : calculs simples #
24
3
'/
30*cos(45)
exemple 2 : résoudre une équation #
fsolve(x*2+x=4,x)
x = 1.33333333333
exemple 3 : résoudre un système linéaire d’équation de manière formelle #
fsolve([x + y = a, x - y = b],[x,y])
Plus d’exemples #
Expérience math-at-point #
Il s’agit d’une sur-couche à calc-mode.
Essentiellement deux commandes:
M-x math-at-point-expressionPermet de faire un calcul et de copier le résultat dans le kill-ring.M-x math-at-point-expression- 30*cos(45)
C-ypour coller le résultat dans le tampon.
M-x math-at-pointPermet de faire de petits calculs directement dans le tampon et fonctionne même avec les formules LaTeX! (Comme le mode embeded de calc).- Sélectionne 12*13
C-c qaffiche le résultat dans la zone d’écho (en bas)- Sélectionne 12*45
C-u C-c qeffectue le calcul dans le tampon
Les approches précédentes sont soit peu ergonomiques soit limitées…
Faire du calcul formel dans emacs #
Avec xcas #
Xcas est un logiciel de calcul formel écrit par Bernard Parisse de l’université de Grenoble. Les commandes sont en partie francisées et la documentation est exhaustive, en français et de grande qualité.
C’est mon préféré… et celui que je vais détailler.
J’ai écrit un module1 pour babel https://github.com/vincek59/ob-giac voici les exemples de la documentation. Le défaut: pour l’instant ne s’exporte pas très bien…
Exemple 1 #
-
Factorisation
factoriser(x^2+2*x+1+(x+1)*(x-7))
-
Développement
developper((x+3)^3)
-
Résoudre des équations ou des systèmes d’équation
resoudre(3*x-7=2*(x+7),x)DelVar(a) resoudre(3*x-a=2*(x+7))resoudre([3x+y-8=7,x-2y=1],[x,y])
-
Afficher des graphes
plot(sin(x))
Je le reconnais c’est le point faible d’xcas. On obtient de meilleur résultat avec geogebra, maxima ou matplotlib….
Exemple 2 #
-
Avec plusieurs lignes
f(x):=exp(x)*cos(x)+x^3 g:=unapply(diff(f(x),x),x) g(x)Note que seul le résultat de la dernière ligne est affichée
-
Sortie en latex
f(x):=exp(x)*cos(x)+x^3 g:=unapply(diff(f(x),x),x) g(x)
-
Sortie latex combinée avec org-fragtog-mode
f(x):=exp(x)*cos(x)+x^3 g:=unapply(diff(f(x),x),x) g(x)\(\mathrm{e}^{x} \cos x-\mathrm{e}^{x} \sin x+3 x^{2}\)
Exemple 3 #
-
Réutilisation d’un bloc
-3*pi*sqrt(5)/10
Exemple 4 #
lancers(n):={
local t=[0,0,0,0,0,0];
local j,l;
for (j:=1 ; j<=n ; j++) {
l:=rand(6);
t[l]:=t[l]+1;
}
return t;
}
lancers(12000)
Avec Sage #
À installer https://github.com/sagemath/sage-shell-mode
M-x run-sage
Avec maxima #
À installer https://github.com/emacsmirror/maxima
M-x maxima
-
Nécessite une version récente d’xcas (>=1.9) ↩︎