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 :

Problème de résolution système d'équation


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Problème de résolution système d'équation
    Bonjour,

    je dois bosser pour les cours la cinématique d'un mécanisme.

    Le but est d'obtenir le mouvement de deux points d'un mécanisme en fonction de l'angle d'un moteur menant.
    J'ai pour cela 8 équations (à 8 inconnus et un paramètre) à résoudre et afficher un graphique.
    J'utilise donc la fonction
    pour avoir mes 8 inconnus en fonction du paramètre.
    Paramètre que je remplace en boucle ensuite avec
    On a vraiment du se mettre à matlab sur le tas pour cet exercice donc j'ai pas mal de notions (surtout syntaxe) qui sont pas claires...

    Le problème vient avec la résolution du système: matlab me l'erreur
    comme quoi il ne trouve pas de solutions pourtant le système à des solutions (ça marchait l'autre jour)...
    Qu'est-ce qui peut clocher dans mes variables ou je ne sais quoi?

    Apparament il a aussi un problème avec la fonction
    Voila mon code:
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    function []= res(n)        %fonction res, affiche les trajectoire,  n = nombre points pour une période
     
    for i=1:n
        Phi1(i)= 2*pi*(i-1)/(n-1);   %création du vecteur de l'angle moteur valeur:  0:2pi
    end                    
     
    syms x1 x2 x3 y1 y2 y3 phi2 phi3 phi1;   %déclarations des variables sym pour le système d'équation
     
    e1='x1-650';
    e2='y1-100';
    e3='x2-x1-100*cos(phi1)';
    e4='y2-y1-100*sin(phi1)';
    e5='x3-x2-700*sin(phi2)';                    %système de 8 équations à 8 inconnus et un paramètre (phi1)
    e6='y3-y2-700*cos(phi2)';
    e7='x3-1000*cos(phi3)';
    e8='y3-1000*sin(phi3)';
     
    S = solve(e1,e2,e3,e4,e5,e6,e7,e8,'x1','y1','x2','y2','x3','y3','phi2','phi3'); %résolution du système en fonction de phi1
     
    X1=zeros(n,1);
    X2=zeros(n,1);
    X3=zeros(n,1);
    Y1=zeros(n,1);
    Y2=zeros(n,1);
    Y3=zeros(n,1);               %déclaration des vecteurs solutions
    PHI2=zeros(n,1);
    PHI3=zeros(n,1);
    x2c=zeros(n,1);
    y2c=zeros(n,1);
    x3d=zeros(n,1);
    y3d=zeros(n,1);
     
    for i=1:n
        X1(i)=subs(S.x1(1), Phi1(i));
        X2(i)=subs(S.x2(1), Phi1(i));
        Y1(i)=subs(S.y1(1), Phi1(i));
        Y2(i)=subs(S.y2(1), Phi1(i));                     %boucle pour assigner au vecteurs solution les valeurs en fonction de
        X3(i)=subs(S.x3(1), Phi1(i));				     % chaque angle Phi1
        Y3(i)=subs(S.y3(1), Phi1(i));
        PHI2(i)=subs(S.phi2(1), Phi1(i));
        PHI3(i)=subs(S.phi3(1), Phi1(i));
        x2c(i)=X2(i)-600*cos(PHI2(i))-800*sin(PHI2(i));
        y2c(i)=Y2(i)+800*cos(PHI2(i))-600*sin(PHI2(i));
        x3d(i)=X3(i)-350*cos(PHI3(i))-500*sin(PHI3(i));
        y3d(i)=Y3(i)+500*cos(PHI3(i))-350*sin(PHI3(i));
    end
     
    %R=[x2c y2c x3d y3d Phi1]
    subplot(3,1,1)                                             %affichage de graphiques
    plot(x2c,y2c,'b')
     
    subplot(3,1,2)
    plot(x3d, y3d, 'r')
     
    subplot(3,1,3)
    plot(x2c,y2c, 'b', x3d, y3d, 'r')
     
     
     
    %subplot(3,1,3)        % course x2(phi) (degré)
    %plot(Phi1*180/pi, x2c, 'g')
     
     
    end
    Voila, merci d'avance pour votre aide (je suis sur la version 2008a)

  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.
    'ai pour cela 8 équations (à 8 inconnus et un paramètre)
    Il y a 9 inconnues (avec phi1 en plus dans solve !))

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    oui justement phi1 est mon paramètre, 8 inconnus + phi1 paramètre, que je remplace ensuite dans les solutions S.x1 etc. par Phi1 (valeur numérique)..

  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.
    Curieusement il y a des résultats avec :
    phi1=0;
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     PHI2(i)=subs(eval(atan(tan(S.phi2(1)))), Phi1(i));
        PHI3(i)=subs(eval(atan(tan(S.phi3(1)))), Phi1(i));

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    effectivement c'est bizarre.

    Phryte: Je ne comprend pas bien l'usage du eval avec atan et tan, à quoi ca sert de faire f(f-1(x)) ???

    hier j'ai essayé de mettre seulement la partie équations + résolutions dans le code.... il ne me trouve toujours pas de solutions... (ci dessous)

    Ce que je comprend pas c'est que le jour avant en ayant changé seulement du code sur les graphiques, ça fonctionnait....

    Est-ce qu'il se peut que le système soit trop compliqué à résoudre numériquement???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     syms x1 x2 x3 y1 y2 y3 phi2 phi3 phi1;   %déclarations des variables sym pour le système d'équation
     
    e1='x1-650';
    e2='y1-100';
    e3='x2-x1-100*cos(phi1)';
    e4='y2-y1-100*sin(phi1)';
    e5='x3-x2-700*sin(phi2)';                    %système de 8 équations à 8 inconnus et un paramètre (phi1)
    e6='y3-y2-700*cos(phi2)';
    e7='x3-1000*cos(phi3)';
    e8='y3-1000*sin(phi3)';
     
    S = solve(e1,e2,e3,e4,e5,e6,e7,e8,'x1','y1','x2','y2','x3','y3','phi2','phi3'); %résolution du système en fonction de phi1

  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
    Bonjour.
    le système soit trop compliqué à résoudre numériquement???
    Sans doute ! Il faut l'aider !
    On peut enlever eval.

  7. #7
    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
    Salut,
    Citation Envoyé par Damien123 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     syms x1 x2 x3 y1 y2 y3 phi2 phi3 phi1;   %déclarations des variables sym pour le système d'équation
     
    e1='x1-650';
    e2='y1-100';
    e3='x2-x1-100*cos(phi1)';
    e4='y2-y1-100*sin(phi1)';
    e5='x3-x2-700*sin(phi2)';                    %système de 8 équations à 8 inconnus et un paramètre (phi1)
    e6='y3-y2-700*cos(phi2)';
    e7='x3-1000*cos(phi3)';
    e8='y3-1000*sin(phi3)';
     
    S = solve(e1,e2,e3,e4,e5,e6,e7,e8,'x1','y1','x2','y2','x3','y3','phi2','phi3'); %résolution du système en fonction de phi1
    Sur matlab r2007a, ce code fonctionne, enfin il trouve des solutions, après je ne peux pas dire si elle sont justes ou fausses...

    Par contre j'ai déjà eu des soucis avec la fonction solve : des résolutions qui fonctionnent sous 2007a mais pas sous 2009a... ton problème vient peut-être de là.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ok,

    la je bosse sous R2009a, ca ne fonctionne pas.

    Aux cours j'avais R2008a, ca a marché une fois... mais hier pas..
    vraiment spécial..

Discussions similaires

  1. résolution système d'équation
    Par Debzzy dans le forum MATLAB
    Réponses: 3
    Dernier message: 25/07/2014, 09h47
  2. Réponses: 1
    Dernier message: 19/12/2013, 14h36
  3. Résolution système d'équations polynomiales
    Par kaluk dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 24/05/2013, 13h36
  4. Résolution système d'équation par la méthode SOR
    Par seanp223 dans le forum Mathématiques
    Réponses: 9
    Dernier message: 25/05/2011, 15h35
  5. [XL-2003] résolution système d'équation
    Par yvespi dans le forum Excel
    Réponses: 1
    Dernier message: 17/05/2010, 22h02

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