-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNewton-Raphson.py
More file actions
26 lines (18 loc) · 897 Bytes
/
Newton-Raphson.py
File metadata and controls
26 lines (18 loc) · 897 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import sympy
x = sympy.symbols('x')
TOLERANCIA = 10**(-9)
def newton_raphson(funcion, funcionDerivada, unPunto):
raiz = unPunto-(funcion(unPunto)/funcionDerivada(unPunto))
if ( abs(funcion(raiz)) < TOLERANCIA ):
return round(raiz, 4)
return newton_raphson( funcion, funcionDerivada, raiz )
def encontrarRaiz():
unaFuncion = input("Ingrese una funcion cuadratica (usando 'x' como variable): ")
unaFuncion = sympy.sympify(unaFuncion)
funcionDerivada = sympy.diff(unaFuncion, x)
unaFuncion = sympy.lambdify(x, unaFuncion, 'numpy')
funcionDerivada = sympy.lambdify(x, funcionDerivada, 'numpy')
puntoInicial = input("Ingrese un punto inicial(en lo posible cercano a la raiz de la funcion) ")
puntoInicial = float(puntoInicial)
print( newton_raphson(unaFuncion, funcionDerivada, puntoInicial) )
encontrarRaiz()