Método de Newton para sistemas não lineares
Se já sabe o que é um sistema não linear, chegou a hora de resolvê-lo
Vamos lá?
Agora que já vimos o que é um sistema não linear, vamos generalizar o método de Newton. Você vai perceber que, usando a linguagem certa, até que o método não fica tão diferente da sua versão para equações escalares.
- 1
- 2
- 3
Se então podemos dizer que...
Ao aplicar o método de Newton a uma função podemos afirma que...
- A. a norma de
decrescerá monotonamente. - B. a norma de
decrescerá monotonamente, a partir de uma certa iteração. - C. se o método gerar uma sequência convergente, a norma de
decrescerá monotonamente. - D. se o método gerar uma sequência convergente, a norma de
decrescerá monotonamente, a partir de uma certa iteração.
Em notação vetorial, um sistema não linear é representado por
A construção do método de Newton para sistemas não lineares é feita de forma muito semelhante à derivação algébrica realizada na construção do método de Newton para uma única variável. A ideia é construir uma aproximação linear para a função
Para fazer isso, precisamos saber como construir o polinômio de Taylor para uma função vetorial. Vamos começar relembrando como é polinômio de Taylor de primeira ordem para uma função
Se
Assim, cada iteração do método de Newton consiste em computar o vetor
- Seja
uma aproximação razoável de - Para
- Se
for não singular, resolver -
Como exemplo, podemos aplicar o método de Newton à
F = @(x) [x(1)^2-exp(-x(1)*x(2)); x(1)*x(2)+sin(x(1))]; J = @(x) [2*x(1)+x(2)*exp(-x(1)*x(2)), x(1)*exp(-x(1)*x(2)); x(2)+cos(x(1)), x(1)]; x = [2;1]; # ponto inicial # resolução do sistema linear e atualização de x s = J(x)\(-F(x)); x = x + s; # norma infinito do passo e de F(x) [norm(s,inf) norm(F(x),inf)] ans = 1.20485 0.67601 # 2ª iteração s = J(x)\(-F(x)); x = x + s; [norm(s,inf) norm(F(x),inf)] ans = 0.67440 1.52392 # 3ª iteração s = J(x)\(-F(x)); x = x + s; [norm(s,inf) norm(F(x),inf)] ans = 0.22960 0.32557 # 4ª iteração s = J(x)\(-F(x)); x = x + s; [norm(s,inf) norm(F(x),inf)] ans = 0.095528 0.021026 # 5ª iteração s = J(x)\(-F(x)); x = x + s; [norm(s,inf) norm(F(x),inf)] ans = 0.006059981 0.000076539 # 6ª iteração s = J(x)\(-F(x)); x = x + s; [norm(s,inf) norm(F(x),inf)] ans = 0.0000246324086 0.0000000011395 # 7ª iteração s = J(x)\(-F(x)); x = x + s; [norm(s,inf) norm(F(x),inf)] ans = 4.0684e-10 4.4409e-16
Observe que a partir da terceira iteração podemos perceber a taxa de convergência quadrática característica do método de Newton. Note também que ao computar a norma de
Claro que no exemplo acima, o melhor seria ter implementado um laço para repetir as iterações e a definição de um critério de parada. Os critérios de paradas usuais são similares aos empregados no método de Newton para uma variável, baseando-se ou em
Assim como em uma variável, quando método de Newton falha se a derivada for nula em algum iterando, aqui a iteração não pode prosseguir se a matriz Jacobina for singular. Nesse caso, não é possível resolver o sistema linear e portanto não há como progredir. A discussão sobre como superar ou mitigar essa dificuldade foge ao escopo deste curso.
Por fim, perceba que a parte mais custosa em cada iteração do método é a resolução do sistema linear. Não estamos explorando este aspecto aqui, mas diferentes implementações do método de Newton podem surgir quando diferentes métodos numéricos são empregados na resolução do sistema linear.
Por falar em sistemas lineares, esse é o próximo tópico deste curso.
Referências
J. E. Dennis e R. B. Schnabel. Numerical Methods for Unconstrained Optimization and Nonlinear Equations. SIAM, 1996.
P. Deuflhard. Newton Methods for Nonlinear Problems: Affine Invariance and Adaptative Algorithms. Springer, 2004.
C. T. Kelley. Solving Nonlinear Equations with Newton's Method. SIAM, 2003.
1. Estime a solução dos sistemas não lineares abaixo. Como critério de parada para o método de Newton utilize
com aproximação inicial-
com aproximação inicial