Gostaria de saber se alguém pode me ajudar com o código em Python para resolução de sistemas não lineares pelo Método de Newton com ciritério de parada de erro < 0.01. Estou fazendo meu programa porém ele não está rodando e não encontro o erro, alguém poderia ajudar?
Olá, aqui está um código exemplo do método de Newton-Raphson para a função f(x) = x^2 + x - 3:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Definição da função analisada
def f(x):
return x**2 + x - 3.0
# Definição da primeira derivada da função f(x)
def derivada1_f(x):
return 2.0*x + 1.0
# Definição da segunda derivada da função f(x)
def derivada2_f(x):
return 2.0
# Método de Newton-Raphson
def newton_raphson(x0, error):
if f(x0) * derivada2_f(x0) <= 0:
print("Condição de convergência não satisfeita: f(x0)*f''(x0) <= 0")
return None
while True:
x1 = x0 - f(x0)/derivada1_f(x0)
print("x = {:1.14e}, error = {:1.14e}".format(x1, abs(x1 - x0)))
if abs(x1 - x0) <= error:
break
x0 = x1
return x1
if __name__ == "__main__":
newton_raphson(10.0, 1e-3)