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

Calcul scientifique Python Discussion :

[math] Méthode de résolution d'un système d'équations non linéaires ?


Sujet :

Calcul scientifique Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    février 2017
    Messages
    0
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2017
    Messages : 0
    Points : 2
    Points
    2
    Par défaut [math] Méthode de résolution d'un système d'équations non linéaires ?
    Bonjour tout le monde,

    Pour créer un logiciel d'équilibrage statique et dynamique d'un objet en rotation, je dois résoudre un système à 4 inconnues et 4 équations non linéaires.
    J'utilise donc la fonction fsolve du module math de Python (3.5) (ainsi que cmath pour m'affranchir des problèmes de racine négative) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    def syst(var) :
    m_stat, m_dyn, x_stat, x_dyn = var[0], var[1], var[2], var[3]
                eq1 = M * X_cdg + m_stat * x_stat + m_dyn * x_dyn
                eq2 = M * Y_cdg + m_stat * cmath.sqrt(R**2 - x_stat**2) + m_dyn * cmath.sqrt(R**2 - x_dyn**2)
                eq3 = D + m_stat * cmath.sqrt(R **2 - x_stat **2) * z_stat + m_dyn * cmath.sqrt(R **2 - x_dyn **2) * z_dyn
                eq4 = E + m_stat * x_stat * z_stat + m_dyn * x_dyn * z_dyn
                res = [eq1, eq2, eq3, eq4]
                return res
    sol_ini = [100, 100, 0, 0]
    array1 = fsolve(syst,sol_ini);
    Seulement, les résultats que me renvoie Python ne sont pas corrects (si je les injecte dans les équations, les équations ne s'annulent pas).
    Je sais que suivant l'initialisation, les résultats seront différents. Seulement l'initialisation correcte n'est pas connue, le but étant d'équilibrer des objets complexes qui seraient trop fastidieux à équilibrer à la main.

    Existent-ils d'autres méthodes de résolution de système d'équations non linéaires qui seraient plus indiquées pour mon problème ?
    Sachant que je résout mon système pour un z_stat et un z_dyn donnés (boucle d'itérations sur z_stat puis à l'intérieur une autre boucle d'itérations sur z_dyn), donc c'est assez lourd comme programme.


    Merci d'avance !

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2021
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    J'ai une question sur votre code car je dois également résoudre un système d'équations non linéaires de 6équations à 6inconnus. J'ai piqué votre partie de code mais je ne comprend pas a quel moment vous indiquez les variables M, X_cdg, Y_cdg, etc. Autrement dit toutes les variables qui interviennent dans la fonction syst et qui ne sont pas définies dans var.
    Merci à vous

Discussions similaires

  1. Résolution d'un système d'équations non linéaires+
    Par Volimps15 dans le forum MATLAB
    Réponses: 0
    Dernier message: 04/11/2015, 01h36
  2. [Débutant] Résolution d'un système d'équations non-linéaires
    Par nicollivier dans le forum MATLAB
    Réponses: 9
    Dernier message: 09/12/2009, 17h32
  3. Réponses: 0
    Dernier message: 01/10/2008, 15h14
  4. Réponses: 1
    Dernier message: 14/02/2007, 11h12

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