Vous êtes ici : Accueil > Salle du prof > Il est libre Math > Maxima : calcul formel libre et gratuit
Par : mathazay
Publié : 20 avril 2006

Maxima : calcul formel libre et gratuit

Maxima est un logiciel de calcul formel libre, gratuit et multiplateforme. Pourquoi dépenser plus ? Voici deux courts exemples.

Une belle selle

Un exercice de dénombrement exposé sur mathlyc

Citation :

On place $n$ points sur un cercle, on trace toutes les cordes possibles. Combien y a-t-il de régions au maximum dans le disque ? Réponse: -$n=1$, 1 région - $n=2$, 2 régions - $n=3$, 4 régions - $n=4$, 8 régions - $n=5$, 16 régions mais... - $n=6$, 31 régions la formule générale $1+n(n-1)\frac{n^2 -5n+18}{24}$ se démontre par récurrence sur $n$ $u_n=1+n\,(n+1)\,\frac{(n^2-3n+14)}{24}$ ? Ce qui m'y fait penser, ce sont les valeurs. C'est un exercice que je donne chaque année à mes élèves de première pour insister sur le fait que le calcul des premiers termes d'une suite ne permet pas d'en déduire la nature. On obtient $u_0=1$, $u_1=2$, $u_2=4$, $u_3=8$, $u_4=16$.... et $u_5=31$.
(merci yannis)

Le script Maxima

Les lignes Ci sont les commandes, les lignes Di les évaluations des commandes

(C1) u(n):=1+n*(n-1)*(n^2-5*n+18)/24;
                                             2
                                 n (n - 1) (n  - 5 n + 18)
(D1)                 u(n) := 1 + -------------------------
                                            24
(C2)  f(n):=a+b*n+c*n^2+d*n^3+e*n^4;
                                          2      3      4
(D2)                 f(n) := a + b n + c n  + d n  + e n
(C3) linsolve([f(1)=1,f(2)=2,f(3)=4,f(4)=8,f(5)=16],[a,b,c,d,e]);
                                 3      23        1      1
(D3)               [a = 1, b = - -, c = --, d = - -, e = --]
                                 4      24        4      24
(C4) GLOBALSOLVE : TRUE$
(C5) ''c3;
                                 3      23        1      1
(D5)               [a : 1, b : - -, c : --, d : - -, e : --]
                                 4      24        4      24
(C6) f(n);
                            4    3       2
                           n    n    23 n    3 n
(D6)                       -- - -- + ----- - --- + 1
                           24   4     24      4
(C7) factor(%-1);
                                       2
                           (n - 1) n (n  - 5 n + 18)
(D7)                       -------------------------
                                      24
(C8) ratsimp(f(n)-u(n));
(D8)                                   0
(C9) plot2d([2^(n-1),u(n)],[n,0,12],[y,0,2000]);

La comparaison

Et pour une suite numérique...

Définition du terme général :

(C10) u[1]:1;
(D10)                                  1
(C11) u[n]:=1+n*(n-1)*(n^2-5*n+18)/24;
                                           2
                               n (n - 1) (n  - 5 n + 18)
(D11)                 u  := 1 + -------------------------
                      n                   24
(C12) u[4];
(D12)                                  8
(C13) u[5];
(D13)                                 16
(C14) u[6];
(D14)                                 31

ou par récurrence :

(C9) u[0]:0;    
(D9)                                   0
(C11) u[1]:1;
(D11)                                  1
(C12) u[n]:=u[n-1]+u[n-2];
(D12)                        u  := u      + u
                             n     n - 1    n - 2
(C13) u[5];
(D13)                                  5
(C14) u[10];
(D14)                                 55

mais attention, si l’on change une condition initiale, il faut tuer u avant de recalculer :

(C15) kill(u);
(D15)                                DONE
(C16) u[0]:1;
(D16)                                  1
(C17) u[1]:1;
(D17)                                  1
(C18) u[n]:=u[n-1]+u[n-2];
(D18)                        u  := u      + u
                             n     n - 1    n - 2
(C19) u[5];
(D19)                                  8
(C20) u[10];
(D20)                                 89