analyse numérique méthode de Lagrange (python)
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

analyse numérique méthode de Lagrange (python)



  1. #1
    Youyoube

    Smile analyse numérique méthode de Lagrange (python)


    ------

    Bonsoir je viens vers vous car j'ai besoin d'aide pour mon programme de résolution d'équation non linéaire par la méthode de Lagrange.
    J'ai déjà commencer à le coder sur jupyter notebooks Mais je suis bloqué parce que je n'arrive pas à afficher les approximations successives des racines à chaque itération et j'ai du mal à trouver l'erreur dans mon code. merci d'avance pour votre aide !
    (voila le code)

    -----
    Images attachées Images attachées  
    Dernière modification par JPL ; 30/10/2021 à 23h08.

  2. #2
    pm42

    Re : analyse numérique méthode de Lagrange (python)

    La moindre des choses serait de copier ton code ici en texte et entre les balises CODE parce que là, c’est difficilement exploitable.

  3. #3
    Youyoube

    Red face Programme python méthode de Lagrange

    Bonjour je viens vers vous car j'ai besoin d'aide pour mon programme de résolution d'équation non linéaire par la méthode de Lagrange.
    J'ai déjà commencer à le coder sur jupyter notebooks Mais je suis bloqué parce que je n'arrive pas à afficher les approximations successives des racines à chaque itération et j'ai du mal à trouver l'erreur dans mon code. merci d'avance pour votre aide !
    (voila le code)

    #methode de lagrange avec enregistrement des itération et des racine
    def lagrange2(f,a,b,tol,maxITER):
    resultLag={}
    x_iter=[]
    erreur_x_iter =[]
    erreur_f_iter =[]
    iter=[]
    k=0
    fa=f(a)
    fb=f(b)
    x=a-((b-a)/(fb-fa))*fa
    while (((f(x))>(tol)) and (k)<(maxITER)):
    x_iter.append(b)
    erreur_x_iter.append(abs(b-a))
    erreur_f_iter.append( abs(fb-fa))
    iter.append(k)
    if (fa*(f(x)))<(0):
    b=x
    k+=1
    else:
    a=x
    k+=1
    resultLag={'k': iter ,'x': x_iter , 'erreur_x_iter':erreur_x_iter , 'erreur_f_iter':erreur_f_iter }
    if k==maxITER:
    print ("Pas de convergence")
    else:
    return resultLag
    Nom : Capture d’écran (58).png
Affichages : 717
Taille : 33,4 Ko

  4. #4
    Youyoube

    Re : analyse numérique méthode de Lagrange (python)

    Salut merci pour votre réponse je n'arrive pas à éditer mon message du coup j'ai ouvert une nouvelle discussion où j'ai essayé de taper le code !

  5. A voir en vidéo sur Futura
  6. #5
    jacknicklaus

    Re : Programme python méthode de Lagrange

    Bonjour,

    bel effort, mais tu n'avais pas tout lu de la réponse de pm42 :
    Citation Envoyé par pm42 Voir le message
    La moindre des choses serait de copier ton code ici en texte et entre les balises CODE parce que là, c’est difficilement exploitable.
    Car toujours pas de balise CODE , donc toujours illisible... Tu trouves ces balises en mode avancé de l'éditeur, ou plus simple tu les tapes : [CODE] pour ouvrir, et la même avec un \CODE entre deux [] pour terminer
    There are more things in heaven and earth, Horatio, Than are dreamt of in your philosophy.

  7. #6
    pm42

    Re : Programme python méthode de Lagrange

    C'est vrai mais on apprécie l'effort. D'où le code bien balisé plus bas où j'ai viré une variable inutilisée et des parenthèses inutiles.
    J'ai également corrigé le test "while f(x)>tol" pour "while abs(f(x))>tol" parce qu'il n'y a pas de raison de sortir si la fonction f devient négative.

    Bon, la méthode fait toujours un return de valeur si ça marche et un print("Pas de convergence") sans return ce qui est mal mais c'est une erreur débutant.

    Quand à la raison pour laquelle ça ne marche pas, c'est tout simple : on calcule x une seule fois puis on fait "while" basé sur f(x).
    Donc on va soit ne jamais rentrer dans le while soit le faire en entier.
    Il faut donc régler ce détail.

    Au passage si la convergence a lieu à la dernière étape, le code aussi est faux : il affiche "pas de convergence" à tord.
    Enfin, pour simplifier la vie de ceux qui lisent, préciser le sens des variables et donner un exemple de paramètres qui font que ça ne marche pas aurait été utile.


    Code:
    def lagrange2(f,a,b,tol,maxITER):
        x_iter=[]
        erreur_x_iter =[]
        erreur_f_iter =[]
        iter=[]
        k=0
        fa=f(a)
        fb=f(b)
        x=a-((b-a)/(fb-fa))*fa
        while abs(f(x))>tol and k<maxITER:
            x_iter.append(b)
            erreur_x_iter.append(abs(b-a))
            erreur_f_iter.append( abs(fb-fa))
            iter.append(k)
            if (fa*(f(x)))<(0):
                b=x
                k+=1
            else:
                a=x
                k+=1
        resultLag={'k': iter ,'x': x_iter , 'erreur_x_iter':erreur_x_iter , 'erreur_f_iter':erreur_f_iter }
        if k==maxITER:
            print ("Pas de convergence")
        else:
            return resultLag

  8. #7
    Youyoube

    Re : Programme python méthode de Lagrange

    Mercii beaucoup pour votre aide , Bonne soirée !

  9. #8
    albanxiii
    Modérateur

    Re : analyse numérique méthode de Lagrange (python)

    Citation Envoyé par Youyoube Voir le message
    Salut merci pour votre réponse je n'arrive pas à éditer mon message du coup j'ai ouvert une nouvelle discussion où j'ai essayé de taper le code !
    J'ai fusionné les discussions.
    Not only is it not right, it's not even wrong!

Discussions similaires

  1. Analyse numérique: puissance itéré et méthode de déflation
    Par novmbre2 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 20/05/2017, 13h36
  2. Analyse numerique :methode de Newton
    Par dalida1111 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 15/03/2012, 14h48
  3. convergence d'une méthode itérative analyse numérique
    Par invitee56171cc dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 30/11/2010, 04h32
  4. [Analyse numerique] Méthode à un pas ?
    Par vince3001 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 07/12/2009, 20h46
  5. analyse numérique: méthode de Newton
    Par invitef8e3a4d5 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 20/03/2008, 14h45