Método de Newton

Implementação do método de Newton para equações do tipo f (x) = 0. A convergência do método é condicional mas , quando converge, é normalmente um método de segunda ordem.

Parâmetros de entrada:

* f, x : Função f e sua variaável
* x0  : Aproximação inicial
* tol  : Erro máximo desejado, medido com base na diferença entre iteradas.
* nmax : Número máximo de iterações a realizar

Parâmetros de saída:

* valor numérico da solução, correspondente à última iteração realizada. Se o número máximo de iterações for atingido é emitida uma mensagem de erro.

Newton[fs_,x_,x0_,tol_,nmax_]:=Module[{f,s,sol,oldsol,iter},
f[s_]:=fs/.x->s;
sol = x0;
oldsol = x0+2*tol; (* para assegurar a entrada no ciclo *)
iter = 0;
While[And[iter≤nmax, Abs[sol-oldsol]>tol],
oldsol = sol;
sol = sol-f[sol]/f'[sol];
iter++
];
Print["Foram realizadas ", iter, " iterações"];
If[iter≥nmax, Print["AVISO: número máximo de iterações foi atingido. A solução pode não ter a precisão desejada."]];
sol
]

Newton[Cos[x^2]-x,x,0.5,10^(-12),100]