Mathematics

Maxima - pour calculs mathématiques formels

1   Introduction

1.1   Choix de Maxima

(Parler de Joel Moses, puis de l'histoire du projet.)

2   Aide générale

2.1   Conventions

Les fonctions sont listées en minuscules dans ce document, alors qu'elles sont généralement documentées en majuscules, ailleurs. Mais notez que la casse importe généralement pour les noms de variables.

Plusieurs tableaux, dans cette documentation, comportent trois colonnes:

  • le nom de la variable ou de la fonction,

  • une lettre indiquant le type de l'élément décrit:

    (rien)

    fonction

    C

    constante

    V

    variable

    1

    opérateur monadique

    2

    opérateur dyadique

    L

    code chargeable viar load(...);

  • une courte description, avec les conventions suivantes.

    • Une forme verbale décrit l'action qui amène au résultat.
    • Une forme nominale décrit le résultat qui sera retourné.
    • Lorsque la description commence par "Si", le résultat est FALSE ou TRUE.
    • Une valeur initiale est fournie entre crochets.

2.2   Documentation

La commande maxima lance le système Maxima, qui est habituellement utilisé de manière interactive. Un simple Ctrl-D, ou la commande quit();, termine la session interactive.

La commande man maxima résume les options disponibles lors de l'appel, et la commande info maxima donne accès au manuel de référence. Une fois dans Maxima, la commande ? SUJET (l'espace est requis) ou describe(SUJET); fournit de l'aide sur un sujet donné, généralement sous la forme d'un menu de sous-sujets duquel on peut choisir quelques courts documents qui nous semblent pertinents, le ou les documents choisis sont alors affichés à l'écran. example(FONCTION); fournit des exemples d'utilisation d'une fonction.

Plusieurs manuels sont disponibles en format PDF:

(remplacer par des références plus manoeuvrables)

u'Maxima': [((u'decouverte|docmaxi|introduction|maxifaq|maxima'
             u'|maximabook|maximafr|memoire'),
            u'/home/pinard/maths/symbolique/maxima/%(document)s.pdf',
            None)],

2.3   Mode interactif

Interactivement, l'utilisateur donne une expression et Maxima produit un résultat pour cette expression s'il voit comment la transformer, ou l'expression elle-même sinon. L'utilisateur fait suivre son expression par $ ou par ;, dans ce dernier cas, le résultat est imprimé. Si l'expression est suivie d'une ou plusieurs clauses , OPTION, ces options sont mises à TRUE pour la durée du calcul seulement. Voici quelques autres spécialités:

%iN V N-ième expression fournie par l'usager
%oN V N-ième résultat calculé par Maxima
% V Résultat le plus récemment calculé par Maxima
%th   Tantième résultat précédent
' 1 Expression originale, évaluation inhibée
'' 1 Expression doublement évaluée

3   Fonctions utiles

Voici quelques fonctions que je trouve particulièrement utiles. S'il fallait n'en connaître que quelques-unes seulement, ce sont celles-là! :-)

: 2 Affectation
expand   Réduire les parenthèses par distribution
factor   Produire des parenthèses par factorisation
subst   Remplacer des variables par des expressions
solve   Isoler des variables d'un système d'équations

4   Language

4.1   Valeurs spéciales

FALSE C Faux
TRUE C Vrai

4.2   Opérateurs

+ 2 Addition
- 2 Soustraction
* 2 Multiplication
/ 2 Division
^, ** 2 Exponentiation
. 2 Multiplication matricielle

5   Arithmétique

5.1   Virgule flottante

minf C Infini négatif (??)
float   Évaluer une formule numériquement
bfloat   Comme float, mais en grande précision
bfloatp   Si flottant en grande précision
numer V Si bfloat automatique [FALSE]
fpprec V Nombre de chiffres pour bfloat [16]

5.3   Exponentielles

Les fonctions habituelles pour les exposants et les logarithmes sont disponibles:

sqrt   Racine carrée
exp   Exponentielle
log   Logarithme népérien
plog   Branche principale du log d'un complexe

Ainsi que plusieurs autres fonctions ou options plus spécialisées:

demoivre V Si récriture trigonométrique dans exp [FALSE]
%emode V Comme l'option demoivre dans exp lorsqu'exposants imaginaires entiers ou certains imaginaires fractionnaires [TRUE]
%enumer V Si %E à convertir dans exp lorsque ,numer [FALSE]
logexpand V Développement des exposants dans log [TRUE] (FALSE, ALL et SUPER sont aussi définis)
logsimp V %E en puissance contenant log [TRUE]
lognumer V Valeur absolue des arguments négatifs [FALSE]
lognegint V Entier négatif en forme complexe [FALSE]
%e_to_numlog V Si radcan automatique [FALSE]
logcontract   Contraire de l'action de logexpand
logconcoeffp V Pour contrôle fin de logcontract [FALSE]
logarc   Forme logarithmique des fonctions inverses circulaires ou hyperboliques
logarc V Si logarc automatique [FALSE]
logabs V Si abs à engendrer en intégrant [FALSE]

5.4   Trigonométrie

Les fonctions habituelles de la trigonométrie circulaire et hyperboliques sont disponibles:

%PI C Rapport de la circonférence au diamètre
sin   Sinus
cos   Cosinus
tan   Tangente
csc   Cosécante
sec   Sécante
cot   Cotangente
asin   Arc sinus
acos   Arc cosinus
atan   Arc tangente
atan2   Arg tangente entre -%PI et %PI
acsc   Arc cosécante
asec   Arc sécante
acot   Arc cotangente
%E C Constante exponentielle
sinh   Sinus hyperbolique
cosh   Cosinus hyperbolique
tanh   Tangente hyperbolique
csch   Cosécante hyperbolique
sech   Sécante hyperbolique
coth   Cotangente hyperbolique
asinh   Arc sinus hyperbolique
acosh   Arc cosinus hyperbolique
atanh   Arc tangente hyperbolique
acsch   Arc cosécante hyperbolique
asech   Arc sécante hyperbolique
acoth   Arc cotangente hyperbolique

Ainsi que plusieurs autres fonctions ou options plus spécialisées:

trigsign V Si développement d'angles négatifs [TRUE]
triginverses V Si cancellation avec fonctions inverses [ALL]
halfangles V Si simplification des demi-angles [FALSE]
atrig1 L Simplifications supplémentaires pour fonctions trigonométriques inverses
trigexpand   Développement trigonométrique
trigexpand V Si trigexpand automatique [FALSE]
trigexpandplus V Si développement des sommes d'angles dans trigexpand [TRUE]
trigexpandtimes V Si développement des multiples d'angles dans trigexpand [TRUE]
trigreduce   Contraire de trigexpand
trigsimp   Simplification par 1 circulaire ou hyperbolique
trigrat   Forme canonique simplifiée quasi-linéaire

5.5   Nombres complexes

%I C Unité imaginaire des nombres complexes
cabs   Module
carg   Argument
rectform   Forme rectangulaire
polarform   Forme polaire
exponentialize   Exponentielles plutôt que trigonométriques
demoivre   Trigonométriques plutôt qu'exponentielles

6   À reclasser

%

%%    
%edispflag    
%rnum_list    

?

?round    
?truncate    

[

[index](expr)    

"

!!    
!    
#    
::=    
::    
:=    
=    
[    

a

absboxchar    
activate    
activecontexts    
addcol    
additive    
addrow    
adjoint    
airy    
alarmclock    
algebraic    
algepsilon    
algexact    
algsys    
alias    
aliases    
all_dotsimp_denoms    
allbut    
alloc    
allroots    
allsym    
alphabetic    
antid    
antidiff    
antisymmetric    
append    
appendfile    
apply    
apply_nouns    
apply1    
apply2    
applyb1    
apropos    
args    
array    
arrayapply    
arrayinfo    
arraymake    
arrays    
askexp    
askinteger    
asksign    
assoc_legendre_p    
assoc_legendre_q    
assume    
assume_pos    
assume_pos_pred    
assumescalar    
asymp    
asympa    
at    
atom    
atomgrad    
atvalue    
augcoefmatrix    

b

backsubst    
backtrace    
backup    
bashindices    
batch    
batchkill    
batchload    
batcon    
batcount    
berlefact    
bern    
bernpoly    
bessel    
beta    
bezout    
bffac    
bfpsi    
bftorat    
bftrunc    
bfzeta    
bgzeta    
bhzeta    
bindtest    
binomial    
block    
bothcases    
bothcoef    
box    
boxchar    
break    
breakup    
bug    
buildq    
burn    
bzeta    

c

canform    
canten    
cartan    
catch    
cauchysum    
cbfac    
cf    
cfdisrep    
cfexpand    
cflength    
cgamma    
cgamma2    
change_filedefaults    
changevar    
charpoly    
chebyshev_t    
chebyshev_u    
check_overlaps    
chr1    
chr2    
christof    
clearscreen    
closefile    
closeps    
coeff    
coefmatrix    
col    
collapse    
columnvector    
combine    
commutative    
comp2pui    
compfile    
compgrind    
compile    
compile_file    
compile_lisp_file    
concat    
conjugate    
cons    
constant    
constantp    
cont2part    
content    
context    
contexts    
continue    
contract    
copylist    
copymatrix    
counter    
covdiff    
create_list    
current_let_rule_package    
cursordisp    
curvature    

d

dblint    
ddt    
deactivate    
debug    
debugmode    
debugprintmode    
declare    
declare_translated    
declare_weight    
default_let_rule_package    
defcon    
define    
define_variable    
defint    
defmatch    
defrule    
deftaylor    
delete    
delfile    
delta    
demo    
denom    
dependencies    
depends    
derivabbrev    
derivdegree    
derivlist    
derivsubst    
desolve    
determinant    
detout    
diagmatrix    
diagmetric    
diff    
dim    
dimension    
direc    
direct    
diskfree    
disolate    
disp    
dispcon    
dispflag    
dispform    
dispfun    
display    
display_format_internal    
display2d    
disprule    
dispterms    
distrib    
divide    
divsum    
do    
doallmxops    
domain    
domxexpt    
domxmxops    
domxnctimes    
dontfactor    
doscmxops    
doscmxplus    
dot0nscsimp    
dot0simp    
dot1simp    
dotassoc    
dotconstrules    
dotdistrib    
dotexptsimp    
dotident    
dotscrules    
dotsimp    
dpart    
dscalar    
dskall    
dummy    

e

e    
echelon    
eigenvalues    
eigenvectors    
einstein    
ele2comp    
ele2polynome    
ele2pui    
elem    
eliminate    
ematrix    
endcons    
entermatrix    
entier    
equal    
erf    
erfflag    
errcatch    
errexp    
errintsce    
error    
error_size    
error_syms    
errorfun    
errormsg    
euler    
ev    
eval    
evenp    
evflag    
evfun    
expandwrt    
expandwrt_denom    
expandwrt_factored    
explose    
expon    
expop    
express    
maxima    
manual    
expt    
exptdispflag    
exptisolate    
exptsubst    
extract_linear_equations    
ezgcd    

f

facexpand    
factcomb    
factlim    
factorflag    
factorial    
factorout    
factorsum    
facts    
fassave    
fast_central_elements    
fast_linsolve    
fasttimes    
feature    
featurep    
features    
fft    
fib    
fibtophi    
file_search    
file_string_print    
file_type    
filedefaults    
filename    
filename_merge    
filenum    
fillarray    
first    
fix    
float2bf    
floatdefunk    
floatnump    
flush    
flushd    
flushnd    
for    
forget    
fortindent    
fortmx    
fortran    
fortspaces    
fpprintprec    
freeof    
fullmap    
fullmapl    
fullratsimp    
fullratsubst    
funcsolve    
functions    
fundef    
funmake    

g

gamma    
gammalim    
gauss    
gcd    
gcfactor    
gen_laguerre    
gendiff    
genfact    
genindex    
genmatrix    
gensumnum    
get    
getchar    
gfactor    
gfactorsum    
globalsolve    
go    
gradef    
gradefs    
gramschmidt    
grind    
grobner_basis    

h

hach    
hermite    
hipow    
horner    

i

ibase    
ic1    
ident    
ieqn    
ieqnprint    
if    
ift    
ilt    
imagpart    
in_netmath    
inchar    
indices    
inf    
infeval    
infinity    
infix    
inflag    
infolists    
innerproduct    
inpart    
inrt    
integerp    
integrate    
integrate_use_rootsof    
integration_constant...   integration_constant_counter
interpolate    
intfaclim    
intopois    
intosum    
intpolabs    
intpolerror    
intpolrel    
intsce    
invert    
is    
isolate    
isolate_wrt_times    
isqrt    

j

jacobi    
jacobi_p    

k

kdelta    
keepfloat    
kill    
killcontext    
kostka    

l

labels    
laguerre    
laplace    
lassociative    
last    
lasttime    
lc    
lcm    
ldefint    
ldisp    
ldisplay    
legendre_p    
legendre_q    
length    
let    
let_rule_packages    
letrat    
letrules    
letsimp    
lgtreillis    
lhospitallim    
lhs    
limit    
linear    
linechar    
linedisp    
linel    
linenum    
linsolve    
linsolve_params    
linsolvewarn    
lispdebugmode    
list_nc_monomials    
listarith    
listarray    
listconstvars    
listdummyvars    
listofvars    
listp    
lmxchar    
load    
loadfile    
loadprint    
local    
lopow    
lorentz    
lpart    
lratsubst    
lriccicom    
lsum    
ltreillis    

m

m1pbranch    
macroexpansion    
mainvar    
make_array    
makebox    
makefact    
makegamma    
makelist    
map    
mapatom    
maperror    
maplist    
matchdeclare    
matchfix    
matrix    
matrix_element_add    
matrix_element_mult    
matrix_element_transpose    
matrixmap    
matrixp    
mattrace    
max    
maxapplydepth    
maxapplyheight    
maxnegex    
maxposex    
maxprime    
maxtayorder    
member    
metric    
min    
minf    
minfactorial    
minor    
mod    
mode_check_errorp    
mode_check_warnp    
mode_checkp    
mode_declare    
mode_identity    
modulus    
mon2schur    
mono    
monomial_dimensions    
motion    
multi_elem    
multi_orbit    
multi_pui    
multinomial    
multiplicative    
multiplicities    
multsym    
multthru    
myoptions    

n

nc_degree    
ncexpt    
ncharpoly    
negdistrib    
negsumdispflag    
new-disrep    
newcontext    
newdet    
newfac    
newton    
niceindices    
niceindicespref    
noeval    
nolabels    
nonscalar    
nonscalarp    
nostring    
noun    
noundisp    
nounify    
nouns    
nroots    
nterms    
ntermsg    
ntermsrci    
nthroot    
num    
numberp    
numerval    
numfactor    
nusum    
nzeta    

o

obase    
oddp    
ode    
ode2    
omega    
openplot_curves    
opproperties    
opsubst    
optimize    
optimprefix    
optionset    
orbit    
ordergreat    
ordergreatp    
orderless    
orderlessp    
outative    
outchar    
outofpois    

p

packagefile    
pade    
parsewindow    
part    
part2cont    
partfrac    
partition    
partpol    
partswitch    
pcoeff    
permanent    
permut    
pfeformat    
pi    
pickapart    
piece    
playback    
plot_options    
plot2d    
plot2d_ps    
plot3d    
poisdiff    
poisexpt    
poisint    
poislim    
poismap    
poisplus    
poissimp    
poisson    
poissubst    
poistimes    
poistrim    
polartorect    
polynome2ele    
posfun    
potential    
powerdisp    
powers    
powerseries    
pred    
prederror    
prime    
primep    
print    
printpois    
printprops    
prodhack    
prodrac    
product    
programmode    
prompt    
properties    
props    
propvars    
pscom    
psdraw_curve    
psexpand    
psi    
pui    
pui_direct    
pui2comp    
pui2ele    
pui2polynome    
puireduc    
put    

q

qput    
qq    
quanc8    
qunit    
quotient    

r

radcan    
radexpand    
radprodexpand    
radsubstflag    
raiseriemann    
random    
rank    
rassociative    
rat    
ratalgdenom    
ratcoef    
ratdenom    
ratdenomdivide    
ratdiff    
ratdisrep    
rateinstein    
ratepsilon    
ratexpand    
ratfac    
ratmx    
ratnumer    
ratnump    
ratp    
ratprint    
ratrieman    
ratriemann    
ratsimp    
ratsimpexpons    
ratsubst    
ratvars    
ratweight    
ratweights    
ratweyl    
ratwtlvl    
read    
readonly    
realonly    
realpart    
realroots    
rearray    
recttopolar    
refcheck    
rem    
remainder    
remarray    
rembox    
remcon    
remfunction    
remlet    
remove    
remrule    
remtrace    
remvalue    
rename    
reset    
residue    
resolvante    
resolvante_alternee1    
resolvante_bipartite    
resolvante_diedrale    
resolvante_klein    
resolvante_klein3    
resolvante_produit_sym    
resolvante_unitaire    
resolvante_vierer    
rest    
restore    
resultant    
return    
reveal    
reverse    
revert    
rhs    
riccicom    
riemann    
rinvariant    
risch    
rmxchar    
rncombine    
romberg    
rombergabs    
rombergit    
rombergmin    
rombergtol    
room    
rootsconmode    
rootscontract    
rootsepsilon    
row    

s

save    
savedef    
savefactors    
scalarmatrixp    
scalarp    
scalefactors    
scanmap    
schur2comp    
sconcat    
scsimp    
scurvature    
set_plot_option    
set_up_dot_simplifications    
setcheck    
setcheckbreak    
setelmx    
setup    
setup_autoload    
setval    
show    
showratvars    
showtime    
sign    
signum    
similaritytransform    
simp    
simpsum    
solve_inconsistent_error    
solvedecomposes    
solveexplicit    
solvefactors    
solvenullwarn    
solveradcan    
solvetrigwarn    
somrac    
sort    
sparse    
spherical_bessel_j    
spherical_bessel_y    
spherical_hankel1    
spherical_hankel2    
spherical_harmonic    
splice    
sprint    
sqfr    
sqrtdispflag    
srrat    
sstatus    
stardisp    
status    
string    
stringout    
sublis    
sublis_apply_lambda    
sublist    
submatrix    
substinpart    
substpart    
subvarp    
maxima    
manual    
sum    
sumcontract    
sumexpand    
sumhack    
sumsplitfact    
supcontext    
symbolp    
symmetric    
system(command)    

t

taylor    
taylor_logexpand    
taylor_order_coefficients    
taylor_simplifier    
taylor_truncate_polynomials    
taylordepth    
taylorinfo    
taylorp    
taytorat    
tcl_output    
tcontract    
tellrat    
tellsimp    
tellsimpafter    
tex    
throw    
time    
timer    
timer_devalue    
timer_info    
tldefint    
tlimit    
tlimswitch    
to_lisp    
tobreak    
todd_coxeter    
toplevel    
totaldisrep    
totient    
tpartpol    
tr_array_as_ref    
tr_bound_function_applyp    
tr_file_tty_messagesp    
tr_float_can_branch_complex    
tr_function_call_default    
tr_gen_tags    
tr_numer    
tr_optimize_max_loop    
tr_output_file_default    
tr_predicate_brain_damage    
tr_semicompile    
tr_state_vars    
tr_true_name_of_file...   tr_true_name_of_file_being_translated
tr_version    
tr_warn_bad_function_calls    
tr_warn_fexpr    
tr_warn_meval    
tr_warn_mode    
tr_warn_undeclared    
tr_warn_undefined_variable    
tr_warnings_get    
tr_windy    
trace    
trace_options    
transbind    
transcompile    
transform    
translate    
translate_file    
transpose    
transrun    
treillis    
treinat    
triangularize    
trunc    
tsetup    
ttransform    
ttyintfun    
ttyintnum    
ttyoff    

u

ultraspherical    
undeclaredwarn    
undiff    
uniteigenvectors    
unitvector    
unknown    
unorder    
unsum    
untellrat    
untrace    
use_fast_arrays    

v

values    
vect_cross    
vectorpotential    
vectorsimp    
verb    
verbify    
verbose    

w

weyl    
with_stdout    
writefile    

x

xgraph_curves    
xthru    

z

zerobern    
zeroequiv    
zeromatrix    
zeta    
zeta%pi    
zrpoly    
zsolve    
zunderflow