Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!-*- conding: utf8 -*-
- import numpy as np
- if __name__ == "__main__":
- def fun_Z(x):
- return (x**4)+4 # Funcaoo principal
- def der_Z(x):
- return 4*(x**3) # Derivada da funcao principal
- def newton(fun_Z, der_Z, x0, tolerancia, iteracoes=20): # Metodo de Newton
- x1 = 0
- if abs(x0-x1) <= tolerancia and abs((x0-x1)/x0) <= tolerancia:
- return x0
- print("k\t x0\t\t Funcao(x0)")
- k = 1
- while k <= iteracoes:
- x1 = x0 - (fun_Z(x0)/der_Z(x0))
- print("x%d\t%e\t%e"%(k,x1,fun_Z(x1)))
- if abs(x0-x1)<= tolerancia and abs((x0-x1)/x0)<= tolerancia:
- plt.plot(x0, fun_Z(x0), 'or')
- return x1
- x0 = x1
- k = k + 1
- # Para o programa quando o numero de iteracoes excede o permitido.
- if k > iteracoes:
- print("ERRO: Numero maximo de iteracoes excedido")
- return x1 # Retorna o valor encontrado
- sqrt = newton(fun_Z, der_Z, 0.00001, 0.00001)
- print("O valor aproximado de Z eh: "+str(sqrt))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement