[go: up one dir, main page]

Saltar para o conteúdo

Método de Newton–Raphson

Origem: Wikipédia, a enciclopédia livre.

Em análise numérica, o método de Newton (ou Método de Newton–Raphson), desenvolvido por Isaac Newton e Joseph Raphson, tem o objetivo de estimar as raízes de uma função. Para isso, escolhe-se uma aproximação inicial para esta. Após isso, calcula-se a equação da reta tangente (por meio da derivada) ao gráfico da função nesse ponto e a interseção dela com o eixo das abcissas, a fim de encontrar uma melhor aproximação para a raiz. Repetindo-se o processo, cria-se um método iterativo para encontrarmos a raiz da função. Em notação matemática, o método de Newton é dado pela seguinte sequência recursiva:

onde é uma aproximação inicial dada, indica a -ésima iteração do algoritmo e é a derivada da função no ponto

Interpretação geométrica

[editar | editar código-fonte]

Consideremos o problema de calcular a raiz de uma função conforme a figura ao lado.[1][2][3][4]

As três primeiras iterações do método de Newton.[5]

Queremos calcular em função de sabendo que será a cota no eixo das abcissas interceptado pela reta tangente à curva, originada por

A equação da reta tangente ao gráfico da função no ponto ) tem inclinação e é dada por Sabendo que essa reta passa por temos que Portanto, De modo geral, temos

Análise de convergência

[editar | editar código-fonte]

Devemos ter em mente que, mesmo se a condição estabelecida na introdução for satisfeita, o método de Newton poderá não convergir para a raiz. Seja f(x) uma função e sua derivada diferente de zero, definimos uma função como:[2][3][4]


Consideramos x* uma aproximação da solução x de f(x)=0 tal que f'(x*)≠0 e |x – x*| seja “pequeno”. Expandimos por Série de Taylor em torno de x* e obtemos:


Para a dedução do método de Newton, vamos supor que |x - x*| é pequeno, logo, o termo (x - x*)² será muito menor. Com isso, dizemos que:



Pelo processo iterativo do método do ponto fixo, sabemos que:




Portanto:



Logo:




Considerando (xn - x*) o erro absoluto, obtemos:



Com isso, observamos que o erro é de ordem quadrática e, por isso, a iteração convergirá rapidamente para a raiz da função.

Generalização

[editar | editar código-fonte]

O método de Newton é uma poderosa ferramenta para resolvermos equações de uma variável (f(x)=0). Esse método, contudo, pode ser utilizado em problemas mais complexos, como na solução de equações do tipo Ax=b, em que x e b são vetores e A é uma matriz. Queremos, portanto, generalizar o método de Newton para resolvermos um sistema de equações da forma:[2][3][4][6]

Podemos analisar esse sistema de equações na forma vetorial, definindo o vetor F(x) tal que:


Para resolvermos o problema de uma variável (f(x)=0), nós expandíamos a função f(x) em torno de x* por sua Série de Taylor, de modo a obtermos:

sendo x* uma aproximação para a solução de f(x)=0 . De modo equivalente, o problema matricial se resume a resolver a equação F(x)=0, e devemos expandir a função F(x) em torno de x*, sendo x* uma aproximação para a solução de F(x)=0. Efetuando-se essa expansão, obteremos:

Portanto, será necessário definirmos a derivada de F(x). Definimos, então, a Matriz Jacobiana por:



E percebemos que a Matriz Jacobiana, ou o Jacobiano do vetor F(x), é a matriz formada pelas derivadas parciais das componentes de F(x):


Logo, podemos reescrever a expansão por Série de Taylor de F(x) como Também de acordo com o problema de uma variável, tínhamos que o método de Newton era dado pela iteração:


Consequentemente, em problemas envolvendo sistemas de equações, teremos que o método de Newton será dado pela iteração:[6]

Problemas de otimização

[editar | editar código-fonte]

O método de Newton pode ainda ser visto da seguinte forma:

Se , para podemos definir outra função

,

em que denota o produto escalar usual.

Então o valor mínimo de é , ou seja,

e a equação pode ser resolvida como um problema de otimização.

Definindo a equação diferencial ordinária

,

pode-se mostrar, sob certas condições, que a única solução dessa equação é tal que

.

Isso garante que decresce, enquanto , e que

.

O uso do método de Euler para determinar uma aproximação para , com tamanho de passo , é equivalente ao método de Newton[7].



Quando desconfiarmos que a matriz jacobiana não possui inversa (em algum ponto), podemos usar a equação diferencial

em que

,

e denota a matriz transposta da matriz jacobiana .

Nesse caso, pode-se mostrar que também é decrescente[7], enquanto ; e uso do método de Euler para determinar uma aproximação a solução (da equação ) é equivalente ao método do gradiente.

Exemplos com uma variável

[editar | editar código-fonte]
  1. Neste exemplo,[5] mostraremos porque a função f deve ser diferenciável em xn, para a satisfazer a condição inicial. Considere a função f(x)=|x-3|-1. Essa função possui uma cúspide em (3,-1); portanto, f não é diferenciável nesse ponto. Analisando o gráfico dessa função, percebemos que x=2 e x=4 são suas raízes. Caso iniciemos o método de Newton com x0=3, o processo iterativo falhará porque a derivada de f em x=3 não é definida.
  2. Neste exemplo,[5] mostraremos porque a função f deve ter derivada não nula em xn. Considere a função f(x)=x2-1. Essa função possui uma reta tangente horizontal em (0,-1); portanto, a derivada de f nesse ponto é nula. Como a reta tangente é horizontal, logo ela nunca interceptará o eixo das abcissas e, assim, o método de Newton falhará, pois ocorrerá uma indeterminação matemática (divisão por zero).
  3. Neste exemplo,[5] mostraremos que mesmo escolhendo-se uma aproximação x0 distante da real raiz da função f, o método de Newton ainda assim poderá convergirá rapidamente para a solução de f(x)=0. Considere a função f(x)=sen(x). Se arbitrarmos x0=10,85 rad, valor relativamente distante da primeira raiz, x=π rad, o método convergirá para essa raiz rapidamente.

Isso mostra que a primeira aproximação da raiz não necessita ser um valor próximo dela. Existem casos em que essa aproximação é distante da raiz e mesmo assim o método converge, conforme mostrado no exemplo acima.

Considerações sobre o método

[editar | editar código-fonte]

O método de Newton é considerado por muitos autores o melhor método para encontrar sucessivas melhores aproximações de raízes (ou zeros) de uma determinada função real e, portanto, tem sido estudado e utilizado em diversos ramos da ciência (Matemática, Física, Engenharia), sendo também muito utilizado na resolução de sistemas não lineares. Além disso, esse método tem sido alvo de novos estudos e aprimoramentos. Em 1984, Allan J. Macleod mostrou, num artigo da International Journal of Mathematical Education in Science and Technology, que o método iterativo de Newton–Raphson para equações não lineares pode ser considerado um membro da família geral de um parâmetro de métodos de segunda ordem.[8]

Um ponto importante a ser observado diz respeito a praticidade do método de Newton. Caso a função f seja complicada, encontrar sua derivada pode ser muito trabalhoso e o método torna-se improdutivo. Nesses casos, o método das secantes é mais produtivo de ser utilizado, porque não exige que a derivada de f seja conhecida.

Referências
  1. Howard Anton; Irl Bivens, Stephen Davis. Cálculo Volume 1. [S.l.]: Editora Bookman, 8° edição 
  2. a b c Richard L. Burden; J. Douglas Faires. Análise Numérica. [S.l.]: Editora CENGAGE Learning, 8° edição 
  3. a b c Borche, Alejandro. Métodos Numéricos. [S.l.]: Editora Ed. da UFRGS 
  4. a b c Ruggiero, M; Lopes, V. Cálculo Númerico - Aspectos Teóricos e Computacionais. [S.l.]: Editora Pearson 
  5. a b c d «Construção geométrica do Método de Newton–Raphson». omonitor.io. Consultado em 22 de março de 2016 
  6. a b «Método de Newton». omonitor.io. Consultado em 22 de março de 2016 
  7. a b Ferreira, José Claudinei (2021). «QUANDO OS MÉTODOS DE EULER E DE NEWTON COINCIDEM» (PDF). Revista Matemática Universitária (1): 34–46. doi:10.21711/26755254/rmu20213. Consultado em 26 de dezembro de 2022 
  8. A.J. Macleod. «"A generalization of Newton–Raphson"» (em inglês). Int. J. Math. Ed. Sci. Tech., v.15, n.1 January 1984, pages 117-120 

Ligações externas

[editar | editar código-fonte]