Python - mise en Œuvre d'une équation numérique solveur (Newton-Raphson)

Je vous avertis, ce qui pourrait être source de confusion, et le code que j'ai écrit plus d'une mindmap de code terminé..

Je suis en train de mettre en œuvre le Newton-Raphson la méthode pour résoudre les équations.
Ce que je n'arrive pas à comprendre est comment écrire ce

Python - mise en Œuvre d'une équation numérique solveur (Newton-Raphson)

équation en Python, pour calculer le prochain rapprochement (xn+1) à partir de la dernière approximation de (xn). J'ai utiliser une boucle, de se rapprocher et plus proche de la vraie réponse, et la boucle doit se terminer lorsque le changement entre les approximations est inférieure à la variable h.

  1. Comment puis-je écrire le code de l'équation?
  2. Comment puis-je mettre fin à la boucle quand les approximations ne sont pas de changer plus?

    Calcule la dérivée de l'équation de f au point x, avec la précision de h (c'est utilisé dans l'équation pour résoudre())

    def derivative(f, x, h):
        deriv = (1.0/(2*h))*(f(x+h)-f(x-h))
        return deriv

    L'équation numérique solveur

    Censé boucle jusqu'à ce que la différence entre les approximations est inférieur à h

    def solve(f, x0, h):
        xn = x0
        prev = 0
    
        while ( approx - prev > h):
             xn = xn - (f(xn))/derivative(f, xn, h)
    
        return xn
Est l'équation que vous avez des problèmes pour donné? Parce que sinon, vous ne pouvez pas écrire l'équation. Une fois que vous l'avez, le mettre en œuvre comme def f(x): etc. - juste une autre définition de la fonction. Et vous avez besoin de prendre le valeur absolue de la différence de test pour la fin de la boucle (après laquelle votre solve fonction sera de retour).
Netwon-Raphson la méthode trouve le zéro de la fonction (résout l'équation f(x)=0)
Je sais, mais vous devez savoir ce qu'est f... il a demandé: "comment dois-je écrire le code de l'équation".

OriginalL'auteur user2906011 | 2013-12-18