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 :

résolution d'une équations linéaire avec optimisation


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut résolution d'une équations linéaire avec optimisation
    Bonjour tout le monde,

    Ma question concerne la résolution d'une équations algébriques avec optimisation sous matlab. On a :


    X1=alpha * A1 + beta* B1;
    X2=alpha * A2 + beta* B2;

    il me faut chercher la somme: X=X1+X2 , alpha et beta pour X=X1+X2=1;

    A1,A2 et B1,B2 sont des données.

    Ma question est si MATLAB est déjà doté des algorithmes de résolution de ce genre d'équations (optimset, lsqlin ) ou que je dois moi même programmer mon algorithme de résolution et comment faire avec ces deux fonction dont le help n'aide a rien concernant un tel exemple ???

    Merci ,un grand merci à l'avance...

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Est-ce que c'est le même problème que précédemment?

    Quelles sont les dimensions de tes données (alpha, beta, A1, A2, B1, B2)?

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    merci pour votre réponse:

    Moi j'ai essayer de simplifier ici l'énoncé du problème mais le vrai c'est une boucle ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for k=3:nb
      X1(k)=alpha*A1(k)+beta*B1(k);
      X2(k)=alpha*A2(k)+beta*B2(k);
      X3(k)=alpha*A3(k)+beta*B3(k);
    end
    ou nb c'est le nb de données

    et alpha , beta restent des scalaires inconnus à chercher avec optimisation de la somme de ces élément que j'ai nommé le vecteur X(k), ou
    X(k)= X1(k)+X2(k)+X3(k) soit égale ou vecteur unité.


    (Mon autre problème étais trop mal exposé merci pour votre compréhension et coopération )

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    si je prends l'enoncé que tu as mis au départ, ce que tu cherche à résoudre revient à résoudre ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alpha(A1+A2)+Beta(BA+B2)-1=0
    tu n'as qu'une equation à deux inconnues donc un infinité de solution.

    Si tu veux une solution particulière il te faut choisir un point de départ (alpha,Beta) et faire des itérations avec un algorithme de type Newton
    qui va te permettre de trouver la racine la plus proche de ton point de départ

    #######

    sinon, tu peux résoudre ceci par une approche moindre carré mais je ne sais plus trop comment ça fonctionne...

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Bonjour

    j'ai essayer avec l'approche moindre carré ça n'a pas donné des bon résultat vu que la condition sur la somme X(k)=1 n'est pas prise en considération et pour celle de Newton veillez m'aider avec son code svp

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Salut

    Citation Envoyé par RosaBlanca Voir le message
    j'ai essayer avec l'approche moindre carré ça n'a pas donné des bon résultat vu que la condition sur la somme X(k)=1 n'est pas prise en considération
    je ne sais plus comment on résout un syst. lin. par approche moindre carré, peux tu nous montrer ton code? peut être qu'il est possible de mettre la condition que tu souhaite dans le systeme ?

    Citation Envoyé par RosaBlanca Voir le message
    et pour celle de Newton veillez m'aider avec son code svp
    c'est très facile à programmer, regarde sur cette page il y a un exemple
    http://fr.wikipedia.org/wiki/M%C3%A9thode_de_Newton

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    on a dis que :

    X1(k)=alpha*A1(k)+beta*B1(k);
    X2(k)=alpha*A2(k)+beta*B2(k);
    X3(k)=alpha*A3(k)+beta*B3(k);

    et il faut que X(k)=X1(k)+X2(k)+X3(k)=1

    Fallait chercher chaque fois X1 , X2 et X3(k) et alpha et beta
    en voici le code de la mcr pour le 1er X1(k)

    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
    26
    27
    28
    29
    %
     
    y1=A1;
    u1=B1;
    p1=1000*eye(2);
    landa=.98;
    teta_mcr1=0*[ones(1,2)]';
    a11=[];b11=[];
     
    X1=zeros(1,nb);
     
     
    %moindre carré ordinaire MCR
     
    for k=1:nb;
    h1 = [y1(k)  u1(k)]';
    pr1=(1/landa)*(p1-(p1*h1*h1'*p1)/(1+h1'*p1*h1));
    K1=pr1*h1;
    teta_mcr1=teta_mcr1+K1*(y1(k)-h1'*teta_mcr1);
    A1=teta_mcr1(1);
    B1=teta_mcr1(2);
     
        a11=[a11 A1(1)];
        b11=[b11 B1(1)];
     
    %Génération de  X1(k)
     
    X1(k)=A1(1)*y1(k)+B1(1)*u1(k);
    end;
    voila et mercii bien pour votre effort

  8. #8
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    je suis franchement perplexe.

    Si j'ai bien compris le problème posé (ce qui est peut-être le point bloquant),
    alors ceci

    alpha(A1+A2)+Beta(BA+B2)-1=0

    tu n'as qu'une equation à deux inconnues donc un infinité de solution.
    est ce qu'on appelle communément une droite.

    en l'occurence l'ensemble de points définits comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (alpha,beta) = (c/(A1+A2),(1-c)/(B1+B2)); c€R
    pas besoin de Newton ou de moindres carrés.

    Où alors j'ai pas compris le problème.

  9. #9
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Il s'agit pas d'une droite car A1, A2,A3 et B1 , B2 et B3 sont des vecteurs de nb élément

  10. #10
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    dans ce cas tu as alors un système de nb équations à deux inconnues. Sauf enorme coup de bol, tu ne peux pas résoudre ton système.

  11. #11
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    @Dombrai:
    dans ce cas tu as alors un système de nb équations à deux inconnues. Sauf enorme coup de bol, tu ne peux pas résoudre ton système.
    Mais on peut chercher une solution approchée via moindre carrés.

    @RosaBlanca:
    Ce que je n'arrive pas à saisir, c'est si tu observes les X1 X2 X3 ou pas:
    - Si tu les observes, il suffit de regresser [X1 X2 X3] sur [A1 A2 A3] et [B1 B2 B3]
    - Sinon, il faut regresser la variable constante 1 sur [A1+A2+A3] et [B1+B2+B3]. Si la relation X1+...+X3 = 1 n'est pas bruitée, la regression n'a aucun sens et il faut explicitement minimiser mean((1-a*sum(A)-b*sum(B)).^2)

    Dans les deux cas, pas besoin de recoder les moindres carrés, la fonction regress() fait ca pour toi

  12. #12
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 883
    Points : 3 431
    Points
    3 431
    Par défaut
    sauf que optimisation et résolution ne sont pas la même chose
    n équations à 2 inconnues n'as probablement pas de solution, mais on peut rechercher une optimisation par les moindres carrés
    en utilisant l'opérateur \

  13. #13
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    Mea culpa, j'ai été trompé par la première phrase de la question posée.

    du coup je cautionne complètement le moindre carré.

  14. #14
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par VV33D Voir le message
    Bonjour,

    @Dombrai:

    Mais on peut chercher une solution approchée via moindre carrés.

    @RosaBlanca:
    Ce que je n'arrive pas à saisir, c'est si tu observes les X1 X2 X3 ou pas:
    - Si tu les observes, il suffit de regresser [X1 X2 X3] sur [A1 A2 A3] et [B1 B2 B3]
    - Sinon, il faut regresser la variable constante 1 sur [A1+A2+A3] et [B1+B2+B3]. Si la relation X1+...+X3 = 1 n'est pas bruitée, la regression n'a aucun sens et il faut explicitement minimiser mean((1-a*sum(A)-b*sum(B)).^2)

    Dans les deux cas, pas besoin de recoder les moindres carrés, la fonction regress() fait ca pour toi
    j'ai les données de A1(k) A2(k) et A3(k) ainsi que B1(k) B2(k) et B3(k)
    Par l'approche MC j'ai réussi a identifié a chaque itération aplha et beta et par la suite calculer X1 , X2 et X3 .. le pb c que la condition sur X1+X2+X3=1 n'est pas prit en compte ici dans l'identification MCR
    remarque: cette condition est vrai aussi pour les données ou A1+A2+A3=1 et B1+B2+B3=1

  15. #15
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    j'ai les données de A1(k) A2(k) et A3(k) ainsi que B1(k) B2(k) et B3(k)
    Par l'approche MC j'ai réussi a identifié a chaque itération aplha et beta et par la suite calculer X1 , X2 et X3 .. le pb c que la condition sur X1+X2+X3=1 n'est pas prit en compte
    Comment peux tu identifier (a,b) dans la relation x1= a A1+ b B2 sachant que tu n'observes pas x1 ??? chaque valeur de (a,b) donne une suite x1 et je ne vois pas comment tu peux choisir un couple (a,b) plutot qu'un autre. Tu as minimisé les moindres carrés entre quelles quantités ? J'ai l'impression que tu as fait n'importe quoi, ou que tu n'as pas tout dit ...

    La seule chose qui me semble censée avec ce que tu as exposé, c'est de minimiser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mean( (1-a*(A1+A2+A3) - b*(B1+B2+B3)).^2)
    et alors autant dire que l'optimisation précédente risque de ne pas du tout aimer ton histoire de A1+A2+A3=1 et B1+B2+B3=1

  16. #16
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Alors comment faire si l'approche MCR n'est pas juste ?? comment procéder pour le calcule de alpha et beta convenable qui garantie que X1+X2+X3=1

  17. #17
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    min mean( (1-a*(A1+A2+A3) - b*(B1+B2+B3)).^2)
    Donne une solution si l'une des sommes A1+A2+A3 et B1+B2+B3 est non constante

    Si tu veux une autre solution, il faut rajouter des hypothèses sur a,b ou x (par exemple, corrélation maximale entre les Xi, Xi non gaussiens...). Cela dépends bien sur de ce que représentent tes données

  18. #18
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Mes données sont A1(k) A2(k) A3(k) k :1..n chaque valeur de ces vecteurs est dans [0 1] de même pour B1, B2 et B3.

    ces données sont des résultats d'un autre programme, c'est pourquoi j'ai bien testé que:

    pour chaque k:
    A1(k)+A2(k)+A3(k)=1
    B1(k)+B2(k)+B3(k)=1

    l'énoncé dit qu'on cherche a et b dont:
    X(k)=X1(k)+X2(k)+X3(k)=a*[A1(k)+A2(k)+A3(k)]+b*[B1(k)+B2(k)+B3(k)]=1

    où bien évidement comme citer avant:

    X1(k)=a*A1(k)+b*B1(k);
    X2(k)=a*A2(k)+b*B2(k);
    X3(k)=a*A3(k)+b*B3(k);

  19. #19
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Ton equation se simplifie en a+b=1, et n'importe quelles valeurs a,b telles que a+b=1 sont solutions

Discussions similaires

  1. Résolution d'une équation non-linéaire
    Par noeldou dans le forum MATLAB
    Réponses: 3
    Dernier message: 26/09/2012, 19h06
  2. Réponses: 0
    Dernier message: 12/07/2011, 23h15
  3. résolution d'une équation non linéaire
    Par adam.aafif dans le forum Simulink
    Réponses: 2
    Dernier message: 11/03/2010, 18h20
  4. Réponses: 2
    Dernier message: 25/02/2010, 18h04
  5. Résolution d'une équation avec ode45
    Par zed793 dans le forum Simulink
    Réponses: 8
    Dernier message: 19/09/2008, 09h21

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