E intentándolo ahora mismo de otra forma llego a que .
OBviamente con su respectivos errores.
Código [Seleccionar]
from __future__ import division, print_function # Sólo para Python 2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from pylab import *
Código [Seleccionar]
def newton(f, df, x0, tol=1e-11, maxiter=100):
"""Cálculo de una solución de $f(x)=0$ mediante el método de Newton.
Argumentos:
f: Función considerada
df: Función derivada de f
x0 : Estimación inicial
tol: Tolerancia (diferencia entre dos iteraciones sucesivas)
maxiter: Número máximo de iteraciones admitidas
Valores devueltos: (x, niter) con
x: Aproximación del punto fijo
niter: Número de iteraciones realizadas
"""
k = 0
error = tol
while k<maxiter and error >= tol:
x1 = x0-f(x0)/df(x0) # Iteración de punto fijo
error = abs(x1-x0)
x0 = x1 # Preparamos la siguiente iteración
k = k+1
# Si se llegó al número máximo de iteraciones, lanzar una excepción
if k==maxiter:
raise ValueError("Error de convergencia!")
# Si todo fue bien, devolvemos la solución y el número de iteraciones
return x1, k
Código [Seleccionar]
x0 = 7 # Inicialización sugerida por la regla de Fourier
x, niter = newton(f,df,x0)
print("Aproximación por el m. de Newton:", x)
print("Número de iteraciones:", niter)
print("Resíduo: |f(x)| = %1.16f" % abs(f(x)))
OBviamente con su respectivos errores.
Código [Seleccionar]
TypeError Traceback (most recent call last)
<ipython-input-10-6e031eb10445> in <module>()
1 x0 = 7 # Inicialización sugerida por la regla de Fourier
----> 2 x, niter = newton(f,df,x0)
3 print("Aproximación por el m. de Newton:", x)
4 print("Número de iteraciones:", niter)
5 print("Resíduo: |f(x)| = %1.16f" % abs(f(x)))
<ipython-input-7-ffca3434fb25> in newton(f, df, x0, tol, maxiter)
15 error = tol
16 while k<maxiter and error >= tol:
---> 17 x1 = x0-f(x0)/df(x0) # Iteración de punto fijo
18 error = abs(x1-x0)
19 x0 = x1 # Preparamos la siguiente iteración
mtrand.pyx in mtrand.RandomState.f (numpy\random\mtrand\mtrand.c:22229)()
TypeError: f() takes at least 2 positional arguments (1 given)