Ce domaine est abondamment exploré par MuPAD. Chacun pourra l'approfondir selon ses besoins. Donnons quelques lignes générales.
Tout d'abord, avant de construire des matrices, MuPAD a besoin de savoir sur quel anneau vous voulez travailler.
Par exemple, en rentrant
Mq:=Dom::Matrix(Dom::Rational);
vous indiquez que vous allez travailler avec des coefficients rationnels, la dimension de votre espace n'entrant pas en ligne de compte.
Nous verrons que faire du Mq ensuite. Énumérons d'abord différents domaines. L'anneau de base peut être
Pour travailler dans un anneau quelconque, et si l'on veut utiliser des paramètres, il suffira de rentrer
M:=Dom::Matrix()
Maintenant, il reste à renter les matrices.
On peut la rentrer « à la main » par lignes en rappelant le domaine dans lequel on travaille.
Ici, nous travaillerons par exemple dans le domaine Mq précédemment défini.
A:=Mq([[1,2,3],[4,5,6],[7,8,9]]);
B:=Mq([[1,0,1],[0,1,0],[1,1,2]]);
puis effectuer les opérations usuelles
A+B; A*B; 1/B; 1/A; B^10; A*B-B*A;
On peut créer des matrices de tailles diverses
a:=Mq(4,1,[1,2,3,4]);
Les matrices sont en fait des listes1 de listes, donc en particuliers des listes. On les traitera donc comme telles. Nous étudierons plus précisément les listes au chapitre suivant, mais sachez que vous pouvez appliquer une fonction à tous les coefficients d'une matrice à l'aide des commandes map(A,f) et zip(A,B,f)
M:=Dom::Matrix(); C:=M([[1,0,2],[0,3,0],[4,5,6]]); F:=map(C,cos); G:=zip(C,F,(x,y)->2*x^2-y);
Pour la suite, nous aurons besoin de charger la volumineuse librairie linalg
export(linalg);
Impossible de parler de toutes les commandes. Faites-vous une idée en tapant
?linalg;
On peut au moins parler du déterminant, du polynôme caractéristique
det(A); det(B); charpoly(A,X);
des valeurs propres
eigenvalues(F); # pour rigoler...#
Accordons quelques instants aux résolutions de systèmes linéaires. Plusieurs méthodes d'entrée sont possibles.
Tout d'abord, nous pouvons rentrer les systèmes de manière naturelle grâce à la commande expr2Matrix(liste des équations, liste des variables) (en anglais expréchione tou matrix) qui transforme comme son nom l'indique une expression en matrice. On peut rentrer en troisième argument optionnel le domaine des coefficients, par exemple Dom::Integer. Ainsi
S:=expr2Matrix([x+2*y+3*z=4,y+7*z=6,x+y+z=3],[x,y,z]);
puis
matlinsolve(S);
affiche le triplet solution, s'il existe.
Nous aurions pu sinon rentrer une matrice carrée représentant le système linéaire et une matrice colonne afin de résoudre l'équation .
A:=M([[1,2,3],[0,1,7],[1,1,1]]); B:=M(3,1,[4,6,3]); matlinsolve(A,B);