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 :

Systeme d'équations avec contrainte


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Systeme d'équations avec contrainte
    Bonjour,

    J'essaie de résoudre avec MATLAB l'équation A*X=B (A et B connus, X inconnu) en imposant des contraintes à X:
    1) X ne contient que des 0 et des 1
    2) sum(X)=p

    Merci de votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour,

    A et B connus :
    Sous quelle forme, vecteur, matrice ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    A est une matrice et B un vecteur

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour,

    Une solution (force brute !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    clear
    % Formation de A et B
    L=8;% Dimensions A
    p=3;% Nombre de "1" de X
    A=fix(10*rand(L,L)+0.5);
    Xi=[ones(1,p) zeros(1,L-p)];
    Xi=Xi(randperm(L))';
    B=A*Xi;
     
    n=0;% Nombre d'itérations
    while n <1000
        n=n+1;
        X=fix(rand(1,L)+0.5)';
        if A*X==B;
            break
        else
            if n==1000
                disp('Pas de solution')
            end
        end
    end
    Xi'
    X'
    n
    ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    clear
    % Formation de A et B
    L=8;% Dimensions A
    p=3;% Nombre de "1" de X
    A=fix(10*rand(L,L)+0.5);
    Xi=[ones(1,p) zeros(1,L-p)];
    Xi=Xi(randperm(L))';
    B=A*Xi;
     
    n=0;% Nombre d'itérations
    XX=[ones(1,p) zeros(1,L-p)];% Initialisation de X
    while n <1000
        n=n+1;
        X=XX(randperm(L))';
        if A*X==B;
            break
        else
            if n==1000
                disp('Pas de solution')
            end
        end
    end
    Xi'
    X'
    n

  5. #5
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci de votre réponse. Je vais tester le programme.
    Pour vérifier que j'ai bien compris votre code:
    * L est le nombre de colonnes de A
    * 1000 est défini de façon arbitraire

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Oui, c'est ça.
    Tu peux aussi essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sol=round(linsolve(A,B))

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/08/2016, 14h06
  2. [Débutant] Peut-on utiliser systeme.web.security avec MVC 5 (contrainte client)
    Par Nadinette dans le forum ASP.NET MVC
    Réponses: 0
    Dernier message: 06/04/2016, 17h01
  3. Résoudre un systeme d'équations avec matlab ?
    Par laroche1 dans le forum MATLAB
    Réponses: 12
    Dernier message: 03/03/2008, 23h06
  4. Résolution d'équation avec contraintes
    Par ZBour dans le forum MATLAB
    Réponses: 4
    Dernier message: 20/02/2008, 11h26
  5. SELECT : extraire 2 val d'1 colonne avec contraintes diff
    Par NiBicUs dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/03/2004, 14h56

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