Partage
  • Partager sur Facebook
  • Partager sur Twitter

Résolution d'un système d'équations non linéaire

    19 septembre 2019 à 16:47:06

    Bonjour, 

    J'essaie de résoudre un système d'équations non linéaires. Cependant, j'ai cette erreur : IndexError: index 5 is out of bounds for axis 0 with size 5

    Je suis débutant en python, alors je ne comprend pas encore comment tout fonctionne..

    Merci pour votre aide

    Voici mon code :

    import numpy as np
    
    import scipy.optimize as resol
    
    import scipy.integrate as integr
    
    import matplotlib.pyplot as plt
    
    p=0.0013
    
    b=0.03
    
    E=2
    
    nu=0.25
    
    h=0.001
    
    t=0.001
    
    D = (E*t**3)/(12*(1-nu**2))
    
    def f(v) :
    
        return v[0] + v[1] * np.log(v[5]) + v[3]*v[5]**2 + v[4]*np.log(v[5])*v[5]**2 + (p*v[5]**4)/(64*D), v[0] + v[1] * np.log(b) + v[3]*b**2 + v[4]*np.log(b)*b**2 + (p*v[5]**4)/(64*D) -h, v[2]*v[5]**-1+2*v[3]*v[5] + v[4]*v[5]*(2*np.log(v[5])+1) + (p*v[5]**3)/(16*D), v[2]*b**-1+2*v[3]*b + v[4]*b*(2*np.log(b)+1) + (p*b**3)/(16*D), v[2]*((nu-1)/b**2) + 2*v[3]*(nu+1)+v[4]*(3+2*np.log(b)+2*nu*np.log(b)+nu) + ((p*b**2)/(16*D))*(3+nu)
    
    sol = resol.root(f, [10,10,10,10,10])
    
    sol.success
    
    True
    
    print(sol.x)



    -
    Edité par JulienBourbon2 19 septembre 2019 à 16:49:32

    • Partager sur Facebook
    • Partager sur Twitter
      19 septembre 2019 à 19:20:09

      Sans trop regarder le code, juste avec le message d'erreur, tu essayes d'aller à l'index 5 sur un objet de longueur 5 dont le 1er commence à 0.

      Si on prend en compte cela, une longueur 5 induit un index pouvant aller de 0 à 4.

      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        19 septembre 2019 à 21:38:47

        c'est peut etre ton parametre dans  resol.root qui a un problème si c'est pas l'expression ...

        d'ailleur si tu ne savais pas on peut écrire comme ça:

        [10,10,10,10,10] == [10]*5



        -
        Edité par Coliculus 19 septembre 2019 à 21:39:29

        • Partager sur Facebook
        • Partager sur Twitter
          20 septembre 2019 à 7:33:39

          je pense plus à une erreur dans la ligne 25 avec v[5]
          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

          Résolution d'un système d'équations non linéaire

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown