IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Somme et sous matrice


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 5
    Points
    5
    Par défaut Somme et sous matrice
    Bonjour (toujours moi avec matlab lol) voila j'ai 2 problèmes qui je pense ne sont pas trés compliqué:

    Tout d'abord je veux faire un programme qui calcule pour k allant de 1 à( n-1) la somme k(k+1), alors j'ai créer cela: (où n est la taille de la matrice)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [n,n]=size(a)
        for i=1:n-1
            t=i*(i+1);
    end
    mais ca ne marche pas!!

    Mon 2ème problème concerne les sous matrices, je voudrais contrôler que toutes les sous matrice d'une matrice ont un déterminant différent de 0, je sais comment retirer une colonne ou une ligne mais je n'arrive pas a retiré toute les sous matrice!!
    merci

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Citation Envoyé par styleho Voir le message
    mais ca ne marche pas!!
    Ceci n'est jamais une explication suffisante permettant à quiconque de t'aider.

    Tu parle de somme et on ne voit aucun signe + ou fonction SUM dans ton code.
    Peut-être que le problème vient de là, non ?
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    désolé je suis un gros débutant qui comprends rien de rien....
    Ba tu pense que je devrais un signe +?? je pensais que le code été assez clair là vu que j'ai mis une boucle for non?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    Bonjour,

    effectivement, j'ai beaucoup de mal à comprendre ce que tu essaies de faire. Tu parles de K, de K(K+1), ensuite dans ton code y'a la matrice a puis t.

    Avant plus de précision de ta part, l'erreur principal de ta boucle est la définition de ta variable t : tu ne luis met aucun indice, elle s'écrasera donc à chaque ..boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    1ère boucle, i = 1 :
    t = 1*2 = 2
    2ème boucle, i = 2 :
    t = 2*3 = 6
    etc..jusqu'à
    t = (n-1)*n
    Ce que tu as codé revient donc uniquement à écrire :

    Que recherches tu à calculer avec t? un scalaire ? un vecteur? une matrice?
    Si c'est un scalaire, est ce la somme des éléments de a?
    Si c'est un vecteur ou matrice, quels types de sommes de a cherches tu à calculer?

    En attendant plus de détails de ta part, bon courage

    PS : si tu as des messages d'erreur, n'hésite pas à les mettre dans ton post, pour nous et surtout pour toi
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    non cela revient à : (n*n*n)/3 mais je voulais mettre ça sous forme de boucle pour que cela fasse plus "recherché".

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Citation Envoyé par styleho Voir le message
    non cela revient à : (n*n*n)/3 mais je voulais mettre ça sous forme de boucle pour que cela fasse plus "recherché".
    Non Newenda a raison.
    Il suffit de tester pour s'en convaincre.

    Il aurait fallu que tu répondes à ses questions.
    Pour ma part je suppose (puisque tu ne nous en dit pas plus) que tu veux au final que t soit la somme cumulative des i*(i+1).

    On aurait donc plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    t=0;%initialisation
    for i=1:n-1
            t=t+i*(i+1);
    end
    Règles du Forum

    Adepte de la maïeutique

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    Citation Envoyé par styleho Voir le message
    je voulais mettre ça sous forme de boucle pour que cela fasse plus "recherché".
    Hum en quoi écrire une commande trop longue et inutile fait "plus recherché" , disons que ça sera l'inverse même.

    Citation Envoyé par styleho Voir le message
    non cela revient à : (n*n*n)/3 .
    Es tu sur que c'est ce calcul que tu veux faire? mettre au cube la taille de a et tout diviser par 3... ça a un sens?
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    En fait le but c'est de mettre au cube la taille de la matrice et de la deiviser par 3, cela sert à trouver le nomvbre d'opération nécessaire pour la factoriser en LU.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    Dans un 1er temps
    est inutile.

    Soit A est un vecteur (dimension n*1) dans ce cas :
    Soit A est une matrice de dimension n*m, dans ce cas
    >> help size
    Et donc ton code se résume simplement à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    n=size(A)
    t = (n^3)/3
    comme tu l'as dit...mais je vois plus le rapport avec ton 1er post.
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

Discussions similaires

  1. somme conditionnelle sous VBA
    Par léclaireur dans le forum Général VBA
    Réponses: 5
    Dernier message: 26/04/2007, 10h32
  2. Réponses: 2
    Dernier message: 11/12/2006, 19h46
  3. Liste des sous-matrices carrées
    Par potimarara dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 12/10/2006, 18h30
  4. Pb de sommes dans sous formulaires !
    Par Fredri dans le forum Access
    Réponses: 10
    Dernier message: 11/01/2006, 12h09
  5. Sous matrice carrée d'une matrice carrée
    Par devils55 dans le forum C++
    Réponses: 2
    Dernier message: 13/11/2005, 19h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo