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 :

Solution d'une équation trigonométrique


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 25
    Points : 11
    Points
    11
    Par défaut Solution d'une équation trigonométrique
    Bonjour,

    Je voudrais trouver l'angle alpha , solution de l'équation suivante:

    10*Fm*(W*sin(alpha))-(10*c*(b/cos(alpha))+((W*cos(alpha)-u*(b/cos(alpha)))*tan(Phi)))=0

    W,c,b,u et Phi sont connus.

    J'ai essayé avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    alpha=0;
     
    while 10*Fm*(W*sin(alpha))-(10*c*(b/cos(alpha))+((W*cos(alpha)-u*(b/cos(alpha)))*tan(Phi)))~=0
     
        alpha=alpha+1;
    end
     
    Sol=alpha;
    Je me bloque devant cette erreur:

    ??? Error using ==> alpha
    Too many output arguments.
    Merci de m'aider à résoudre ce problème.

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    alpha est une fonction matlab
    prend un autre nom pour ta variable (monAlpha par exemple)

    Fabien

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Merci pour votre réponse

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    salut,

    pourquoi ne pas remplacer alpha par j, et commencer ton incrémentation par 1 au lieu de 0, i.e:
    par exemple.

  5. #5
    Membre confirmé
    Avatar de Dam2227
    Inscrit en
    Juin 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 343
    Points : 487
    Points
    487
    Par défaut
    Salut Sakona.

    Tu vas aussi avoir un autre problème. C'est que ton équation ne va pas forcément s'annuler pour des valeurs de alpha (ou monalpha à présent) entières. il faut donc que tu trouves quand la fonction s'approchera au plus près de 0 et ton alpha sera une valeur approchée à +/-1. Étant donné que tu cherches un angle, alors tu peux définir monalpha sur l'intervalle 0:359, évalue ta fonction avec ce vecteur monalpha puis cherche le minimum des valeurs absolues de ta fonction. Enfin, dans Matlab, les fonctions sin cos etc fonctionnent avec des radiants (0 -> 2pi), pas des degrés. Un exemple dans lequel j'essaye de trouver le minimum de la fonction cos:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    monalpha = 0.5:1:359.5;
    res = cos(monalpha*2*pi/360);
    [val,pos] = min(abs(res));
    monalpha(pos)
    Après, il y a des histoires de symétrie alors à toi de choisir la valeur qui correspond à ton problème.

    Enfin, une méthode peut-être plus adaptée et plus robuste pour ton problème est la méthode de dichotomie: http://fr.wikipedia.org/wiki/M%C3%A9thode_de_dichotomie
    Matlab 7.14.0.739 (R2012a)
    C/C++, python, R, SQL, Pig, MR

    Ma philosophie: Ne rien faire, mais le faire bien.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Bonjour Dam2227

    Effectivement, j'essaye de trouver une valeur proche de 0.
    Avec tes propositions importantes, je chercherai la bonne valeur de alpha.

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    j est également un mot clef matlab !
    à éviter

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Citation Envoyé par le fab Voir le message
    j est également un mot clef matlab !
    « j » n'est pas à proprement parler un mot-clé, pas plus que « i ».

    Il faut néanmoins connaitre l’ambiguïté qui existe avec la notation complexe : Peut-on utiliser « i » comme indice de boucle dans MATLAB ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

Discussions similaires

  1. Solution d'une équation
    Par sakona dans le forum Mathématiques
    Réponses: 3
    Dernier message: 11/09/2014, 13h27
  2. Réponses: 0
    Dernier message: 01/06/2014, 23h15
  3. Solution d'une équation
    Par Onimaru dans le forum Mathématiques
    Réponses: 11
    Dernier message: 29/11/2010, 23h04
  4. Résolution d'une équation trigonométrique
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 20/08/2009, 17h47
  5. Réponses: 4
    Dernier message: 17/10/2008, 18h15

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