Espace vectoriel sur Z/2Z avec SAGE — Les-mathematiques.net The most powerful custom community solution in the world

Espace vectoriel sur Z/2Z avec SAGE

Bonjour, j'ai encore une question sur SAGE... J'ai regardé (mal?) dans la doc mais je n'ai pas trouvé la réponse.
Je dispose de k vecteurs e1,...,ek ( de dim 7 disons..) à coefficients dans Z/2Z .
Comment engendrer la liste de tous les éléments du ss-espace vectoriel engendré par ces k Vecteurs avec SAGE?
J'ai pensé à engendrer un groupe additif G=([e1],...,[ek])...ou par l'ideal I={somme i dans [1,k] de ai*ei où ai appartient à Z/2Z} ...mais je n'y arrive pas...
Merci de votre aide.

Réponses

  • Et quel est l'intérêt d'avoir cette liste, par rapport à avoir une base, disons ?
  • Calculer le nombre de mots de poids m où poids est la fonction qui à chaque mot de code 'donc dans mon exemple max poids =7)( donc du sev) associe le nb de bits non nul....
    Voili merci en tout cas pour ta rapidité.
    Remarque que j'avais plein d'autres questions à poser...et que j'ai cherché dans le petit livre bleu... ;-)
  • D'abord se ramener a une base de l'espace vectoriel par le pivot de Gauss, ensuite generer toutes les combinaisions lineaires par exemple en decomposant les entiers entre 0 et 2^dim-1 en base 2.
  • Ah oui merci, c est une bonne ruse indépendante du logiciel, dans le même genre suivre les chemins d'un arbre binaire complet devrait donner la même chose? Il n'y a donc pas de fonction, méthode toute faite dans SAGE pour engendrer cette liste?
  • aucune idee, mais ce ne serait de toutes facons pas efficace, car vous utiliseriez O(n*2^dim) de memoire pour rien. Il vaut bien mieux faire une boucle sur un entier j entre 0 et 2^dim-1, generer le mot du code, calculer son poids et mettre a jour les statistiques qui vous interessent.
  • Je viens de lancer SAGE et il est possible de faire ça :
    V.subspace([e1, e2, e3])
    
    où V est un espace vectoriel préalablement défini et $e_1$, $e_2$, $e_3$ des vecteurs.
    sage: V=VectorSpace(GF(2),7)
    sage: L=[V.random_element() for i in range(3)]
    sage: L
    [(0, 0, 1, 1, 1, 1, 0), (1, 0, 1, 0, 0, 0, 1), (1, 0, 0, 1, 0, 0, 1)]
    sage: W=V.subspace(L)
    sage: W
    Vector space of degree 7 and dimension 3 over Finite Field of size 2
    Basis matrix:
    [1 0 0 1 0 0 1]
    [0 0 1 1 0 0 0]
    [0 0 0 0 1 1 0]
    sage: for v in W:
    ....:    print v
    ....:     
    (0, 0, 0, 0, 0, 0, 0)
    (1, 0, 0, 1, 0, 0, 1)
    (0, 0, 1, 1, 0, 0, 0)
    (1, 0, 1, 0, 0, 0, 1)
    (0, 0, 0, 0, 1, 1, 0)
    (1, 0, 0, 1, 1, 1, 1)
    (0, 0, 1, 1, 1, 1, 0)
    (1, 0, 1, 0, 1, 1, 1)
    
  • Merci de vos réponses (un peu tardivement ... mais w.e. (long) )
    Je vais regarder tout cela ce soir.
Connectez-vous ou Inscrivez-vous pour répondre.
Success message!