Partage
  • Partager sur Facebook
  • Partager sur Twitter

Runge Kuta

Mauvais resultats

    24 février 2016 à 17:54:41

    bonjour à tous

    J'essaie d'intégrer le système différentiel à deux variables  

    y1'(t) = y2(t)

    y2'(t) = (1-y1(t)^2)y2(t) - y1(t)

    y1(0) = 2.00861...

    y2(0) = 0

    à l'aide de la méthode de runge mais les resultats obtenue sont archi faux, quelqu'un aurait il une odée d'ou provient l'erreur ? merci

    import numpy as np
    
    def runge (t0,tf,fun,x0,N,n):
        T = np.zeros(N+1)
        T[0]= t0
        X = np.zeros([N+1,n])
        X[0,:] = x0
        Pas = (tf-t0)/N
        for k in range (N):
            k1 = fun(X[k][0],X[k][1])
            k2 = fun(X[k][0]+k1[0]*(Pas/2),X[k][1]+ k1[1]*(Pas/2))
            print(k2/2)
            X[k+1] = X[k] + (Pas/2)*(k2)
            T[k+1] = T[k] + Pas
        return(T,X) 
        
    def fun(x,y):
        k = y
        l = (1-x**2)*y - x
        return(np.array([k,l]))
    t0 = 0
    tf = 6.6632868593231301896996820305
    N = 10
    n = 2
    x0 = np.array([2.00861986087484313650940188,0])
    runge(t0,tf,fun,x0,N,n)
    print(runge(t0,tf,fun,x0,N,n))



    • Partager sur Facebook
    • Partager sur Twitter

    Runge Kuta

    × 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