Apprendre Maple Travail dirigé 8
Maple en algèbre linéaire


 
  Page d'accueilPage d'accueil   RechercherRechercher   Forum de discussionForum de discussion   ContactContact   SommaireSommaire 
  Cours MapleCours Maple   Travaux dirigésTravaux dirigés   Thèmes d'activitésThèmes d'activités   Thèmes d'activitésMaplets
Ecran MapleEcran Maple  TéléchargementTéléchargement  BibliographieBibliographie  LiensLiens  

 

Page d'accueil   Travaux dirigés   << TD précédent   TD suivant >>



TD 8.1:

Corrigé TD 8.1

Ecrire une procédure pcd(L::list) retournant à partir d'une liste donnée L la liste obtenue par

permutation circulaire vers la droite des éléments de L .

Exemple:

> pcd([a,b,c,d,e,f,g]);

[g, a, b, c, d, e, f]

 


TD 8.2:

Corrigé TD 8.2

Ecrire une procédure circulante_droite(n::posint) retournant à partir de l'entier n> 0

une matrice carrée d'ordre n telle que

 

- sa première ligne est constituée par les entiers de 1 à n .

- pour k> 1 , sa k-ième ligne est déduite de la ligne précédente par permutation

circulaire vers la droite de ses éléments.

 

Exemple:

> circulante_droite(5);

matrix([[1, 2, 3, 4, 5], [5, 1, 2, 3, 4], [4, 5, 1,...

 


TD 8.3: Test d'égalité de 2 matrices:

Corrigé TD 8.3

Deux matrices M et N sont égales si et seulement si elles ont même nombre de lignes, même

nombre de colonnes, et les mêmes coefficients .

Sans avoir recours à la fonction préexistante equal de Maple, écrire une procédure

egal(M: : matrix , N: : matrix) retournant la valeur booléenne true si M=N et false sinon.

 


 

Corrigé du Travail dirigé 8:

TD 8.1:

Énoncé TD 8.1

> pcd:=proc(L::list)
        local M,k;
        if nops(L)>=1 then M:=L[nops(L)],seq(L[k],k=1..nops(L)-1)
             else M:=NULL
        end if;
        [M];
    end proc;

pcd := proc (L::list) local M, k; if 1 <= nops(L) t...
pcd := proc (L::list) local M, k; if 1 <= nops(L) t...
pcd := proc (L::list) local M, k; if 1 <= nops(L) t...
pcd := proc (L::list) local M, k; if 1 <= nops(L) t...

> pcd([a,b,c,d,e,f,g]);

[g, a, b, c, d, e, f]

 


TD 8.2:

Énoncé TD 8.2

> with(linalg);

[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp,...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp,...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp,...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp,...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp,...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp,...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp,...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp,...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp,...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp,...

> circulante_droite:=proc(n::posint)
        local L,M,k;
        L:=[seq(k,k=1..n)];M:=L;
        for k from 2 to n do
            L:=pcd(L);
            M:=M,L;
        end do;
        matrix([M]);
    end proc;

circulante_droite := proc (n::posint) local L, M, k...
circulante_droite := proc (n::posint) local L, M, k...
circulante_droite := proc (n::posint) local L, M, k...
circulante_droite := proc (n::posint) local L, M, k...

> circulante_droite(7);

matrix([[1, 2, 3, 4, 5, 6, 7], [7, 1, 2, 3, 4, 5, 6...

 


T.D 8.3:

Énoncé TD 8.3

 

> egal:=proc(M::matrix,N::matrix)
        local p,q;
        if rowdim(M)=rowdim(N) and coldim(M)=coldim(N) then
            for p to rowdim(M) do
                    for q to coldim(M) do
                        if M[p,q]<>N[p,q] then RETURN(false) end if
                    end do
            end do;
            RETURN(true)
        else
            RETURN(false)
        end if;
    end proc;

egal := proc (M::matrix, N::matrix) local p, q; if ...
egal := proc (M::matrix, N::matrix) local p, q; if ...
egal := proc (M::matrix, N::matrix) local p, q; if ...
egal := proc (M::matrix, N::matrix) local p, q; if ...
egal := proc (M::matrix, N::matrix) local p, q; if ...
egal := proc (M::matrix, N::matrix) local p, q; if ...
egal := proc (M::matrix, N::matrix) local p, q; if ...
egal := proc (M::matrix, N::matrix) local p, q; if ...
egal := proc (M::matrix, N::matrix) local p, q; if ...

> with(linalg):

> M:=matrix([[1,1,3],[1,0,-1],[2,0,1]]);

M := matrix([[1, 1, 3], [1, 0, -1], [2, 0, 1]])

> N:=matrix([[1,1,3],[1,0,-1],[2,0,1],[0,0,1]]);

N := matrix([[1, 1, 3], [1, 0, -1], [2, 0, 1], [0, ...

> P:=matrix([[sign(2),1,3],[1,0,-1],[sqrt(4),0,1]]);

P := matrix([[1, 1, 3], [1, 0, -1], [2, 0, 1]])

> egal(M,N);

false

> egal(M,P);

true

 

 

 

 

haut de cette page


©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.