MATLAB Résolution d'équations linéaires avec contraintes
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

MATLAB Résolution d'équations linéaires avec contraintes



  1. #1
    LucMBF

    MATLAB Résolution d'équations linéaires avec contraintes


    ------

    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
    invite73192618

    Re : MATLAB Résolution d'équations linéaires avec contraintes

    C'est un problème k-SAT, donc NP-complet, donc t'es dans la schnoute...

    Sauf si tu peux te contenter d'une solution approchée. Une méthode approchée en pseudo-code en supposant que A et B sont de taille a*b et a*c:

    Code:
    initialiser une matrice X de taille b*c avec, au hasard, k cases à 1 et le reste des cases à 0
    calculer E=(A*X-B).^2
    while tenveuxencore
        permuter n cases de X au hasard, avec n initialement tel que n=b*c
        recalculer E, et si E a augmenté annuler la permutation
        si les permutations ont été annulé 42 fois diminuer n
        si n=0 alors tenveuxplus
    faireunjoligraphique(desresultats)

  3. #3
    LucMBF

    Re : MATLAB Résolution d'équations linéaires avec contraintes

    Merci de ces renseignements.
    Ce que vous proposez est de rechercher par tirage au sort les meilleures solutions. Ce ne peut pas être une solution globale.
    D’où vient le 42 de la boucle?

  4. #4
    invite73192618

    Re : MATLAB Résolution d'équations linéaires avec contraintes

    Citation Envoyé par LucMBF Voir le message
    Ce que vous proposez est de rechercher par tirage au sort les meilleures solutions.
    Non, c'est un algorithme de recuit. Si tu affiches l'erreur en fonction du temps, tu verras une convergence.

    Citation Envoyé par LucMBF Voir le message
    D’où vient le 42 de la boucle?
    C'est un facteur qui règle la vitesse de convergence (température). Plus ce facteur est grand, plus le programme passera du temps à essayer des permutations pour chaque n et donc plus il sera lent. A l'inverse plus le facteur est petit, plus le programme a de chances de rester pris dans un minimum local.

    PS: j'ai écris k plutôt que p dans le pseudocode ci-dessus.

  5. A voir en vidéo sur Futura
  6. #5
    LucMBF

    Re : MATLAB Résolution d'équations linéaires avec contraintes

    Merci de toutes ces infos

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/10/2016, 21h49
  2. MATLAB - Résolution numérique d'un système d'équations différentielles non linéaires d'ordre 1
    Par Nixmoskva dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 19/04/2016, 09h31
  3. Probleme de contraintes non lineaires sur Matlab. (optimisation
    Par ratmrhcp1 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 15/05/2015, 22h50
  4. Résolution d'équations non linéaires
    Par invitee6f25024 dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 30/09/2010, 18h35
  5. Résolution d'équations non linéaires, Matlab, ordre de convergence, dichotomie.
    Par invite45d1502e dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 19/05/2008, 23h34