You are on page 1of 32

Métodos de Solução para Sistemas de Equações Algébricas Não

Lineares: Uma Breve Revisão

Seminário de Conclusão de Disciplina de Pós-Graduação

UNICAMP - Universidade Estadual de Campinas


FEM - Faculdade de Engenharia Mecânica
DMC - Departamento de Mecânica Computacional
Disciplina: IM388 - Métodos Matemáticos para Engenharia Mecânica I
Professores: Pablo S. Meireles e L. F. Iguti

Aluno: Wallace G. Ferreira - RA 000968

CAMPINAS - JUNHO DE 2005


Conteúdo
1 Introdução 1
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Definição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Método de Newton-Raphson - NR 2
2.1 Cálculo de Zeros de Funções - Problema Unidimensional . . . . . . . . . . . . . . . . . . . 2
2.2 Generalização para Várias Dimensões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Aplicação em Sistemas Não Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Algoritmo do Método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5 Critérios de Convergência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.6 Comentários Gerais sobre o NR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3 Métodos Alternativos - Variações do NR 10


3.1 Método de Newton-Raphson Modificado - NRM . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Métodos Quase-Newton - QN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Algoritmo dos Métodos Quase-Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 Busca Linear - Método da Secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Tratamento de Singularidades - Pontos Crı́ticos 16


4.1 Definições Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2 Métodos Arc-Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3 Método de Bergan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.4 Introdução de Perturbações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5 Estudo de Casos - Exemplos em MATLAB 21


5.1 Flambagem Não Linear de Treliças . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

6 Considerações Finais 23

A Listagens dos Programas em MATLAB 26


A.1 Algoritmo de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
A.2 Rotina para Cálculo da Função . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
A.3 Rotina para Cálculo do Jacobiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
A.4 Algoritmo de Newton-Raphson com Controle de Bergan . . . . . . . . . . . . . . . . . . . 28

i
Lista de Figuras
1 Função não linear (a) Função resı́duo (b). . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Processo iterativo de Newton-Raphson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Método de Newton-Raphson (a) e Newton-Raphson Modificado (b). . . . . . . . . . . . . 11
4 Método da Secante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 Curva não linear com pontos crı́ticos. Exemplo de snap-through, snap-back e bifurcação. . 16
6 Método de Newton-Raphson convencional (a) e Método Arc-Length (b). . . . . . . . . . . 19
7 Falha do método Arc-Length: várias soluções possı́veis. . . . . . . . . . . . . . . . . . . . . 19
8 Modelo de treliça sob compressão (a) e curva Força vs. Deslocamento (R × δ) (b). . . . . 22
9 Resultado obtido com Newton-Raphson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10 Resultado obtido com Newton-Raphson. Divergência no ponto limite - snap-through. . . . 23
11 Resultado obtido com controle de incrementos pelo método de Bergan. . . . . . . . . . . . 24

ii
1 Introdução
1.1 Motivação
A solução de sistemas de equações algébricas não lineares é um problema recorrente em várias
áreas das ciências fı́sicas, entre elas a engenharia. Como exemplo, dentro da mecânica estrutural, pode-se
citar a análise de tensões e deformações de componentes, considerando grandes deslocamentos e rotações,
grandes deformações, comportamento de materiais fora da região elástica linear (hiperelásticos, plásticos,
viscoelásticos, etc), problemas envolvendo contato-impacto, entre outros fenômenos. Essa famı́lia de
problemas é geralmente modelada através de sistemas de equações diferenciais envolvendo as quantidades
de interesse, as quais são na maioria dos casos resolvidas através de métodos aproximados como o Método
dos Elementos Finitos (MEF). Dessa forma, o problema aproximado recai na solução de um ou vários
sistemas de equações algébricas não lineares.
Além desses exemplos, podem ser citados inúmeros outros problemas fı́sicos representados por
sistemas de equações diferenciais, nos quais a forma final do problema é um sistema ou um conjunto
de sistemas de equações algébricas não lineares. O presente texto tem por objetivo fazer uma breve
revisão dos métodos clássicos para a solução de sistemas não lineares através de procedimentos numéricos-
computacionais e discutir seus aspectos mais relevantes.
Não se tem a intenção aqui de esgotar o assunto ou fazer uma abordagem detalhada do tema,
até por que existe uma quantidade grande de métodos para esse fim e a blibliografia disponı́vel sobre
o assunto é bastante vasta. Ao final do texto será apresentada uma lista de livros e artigos cientı́ficos
pertinentes ao assunto (referenciados ao longo do texto) e o leitor interessado poderá consultar, caso
deseje obter maiores detalhes.
Inicialmente será apresentado o problema a ser resolvido na forma de um sistema de equações não
lineares. O procedimento de solução será definido baseando-se no método de Newton-Raphson para o
cálculo de zeros de funções unidimensioais, através da expansão por Série de Taylor. Em seguida, esse
procedimento será generalizado para o cálculo de zeros de funções vetoriais de várias dimensões, o qual
recai na solução de um sistema de equações não lineares, que pode ser resolvido aproximadamente por
uma sucessão de sistemas lineares. Serão discutidas as vantagens, desvantagens e limitações do método,
bem como serão apresentados os algoritmos para a sua solução numérica.
Como alternativa a contornar algumas limitações do método de Newton-Raphson serão apresen-
tados o método Newton-Raphson Modificado e métodos Quase-Newton com busca linear pelo método
da Secante. Em seguida, serão apresentados métodos para o tratamento de problemas de divergência
na vizinhaça de pontos crı́ticos (pontos de instabilidade), entre eles os métodos do tipo Arc-Length e o
método de Bergan.
Ao final serão apresentados alguns exemplos de aplicação desses métodos, através de implementação
computacional usando a linguagem MATLAB, com o objetivo de ilustrar o funcionamento dos algoritmos,
e discutir as suas principais caracterı́sticas.

1.2 Definição do Problema


Deseja-se definir um método para a solução de um sistema de equações algébricas:

A11 x1 + A12 x2 + · · · + A1N xN = b1


A21 x1 + A22 x2 + · · · + A2N xN = b2 ⇒ [A] {x} = {b} , (1)
.. .. .. .. ..
. . . . .
AN 1 x1 + AN 2 x2 + · · · + AN N xN = bN

1
sendo [A] a matriz dos coeficientes dada por,
 
A11 A12 ··· A1N
 A21 A22 ··· A2N 
[A]N ×N =  .. .. .. ,
 
..
 . . . . 
AN 1 AN 2 · · · AN N
{b} o vetor de termos indendentes dado por

 T
{b}N ×1 = b1 b2 · · · bN
e {x} o vetor de incógnitas dado por

 T
{x}N ×1 = x1 x2 · · · xN .
Nesse caso, de forma geral, tanto os componentes da matriz [A] quanto os do vetor {b} são funções
não lineares de forma implı́cita ou explı́cita de {x}, o que impede a resolução imediata do sistema de
equações a partir de métodos convencionais já estabelicidos para sistemas lineares.
Uma estratégia para esse tipo de problema consiste em transformar o sistema de equações (1)
numa série de sistemas lineares e resolver o problema de forma aproximada. O método clássico para essa
abordagem é conhecido como Newton-Raphson e será detalhado na próxima seção.

2 Método de Newton-Raphson - NR
Nesta seção será apresentada a solução do sistema de equações não lineares (1) com base no método
de Newton-Raphson.
Apenas com objetivos didáticos, o princı́pio do método será introduzido considerando o caso par-
ticular para uma função unidimensional, ou seja, dependente de uma única variável x. Em seguida será
feita a generalização para N incógnitas, que como será visto, recai num sistema de equações não lineares.

2.1 Cálculo de Zeros de Funções - Problema Unidimensional


Com base na figura 1, tem-se y = f (x) uma função não linear da variável x. Adimite-se que f (x)
é suficientemente suave e diferenciável no intervalo [x0 , xn ]. O objetivo, é obter o valor de xn dado um
valor conhecido de f (xn ) = fn . Esse problema pode ser interpretado de outra maneira: deseja-se obter
um x tal que ψ(x) ≡ fn − f (x) = 0, ou seja, o problema agora é definido como encontrar o valor de x
que anula a função resı́duo ψ(x).
Nesse sentido, o valor x = xn que anula ψ(x) é denominado como “zero” da função ψ(x), pois define
o ponto de interseção de ψ com o eixo das abscissas. Conhecendo-se a função inversa x(f ) = f −1 (f (x))
o problema é trivial, entretanto f (x) em geral não é inversı́vel de forma explı́cita, de modo que deve-se
recorrer a outros métodos para se resolver esse problema.
Há na literatura (ver referências [1] e [2]) vários métodos para se calcular zeros de funções de uma
ou mais variáveis, os quais estão fora do escopo desse texto. Aqui será apresentado apenas o método de
Newton-Raphson que pode ser aplicado à solução de sistemas de equações não lineares.
Para tanto será considerado que, conhecendo-se os valore de x0 e f0 = f (x0 ), pode-se expandir
a função f (x) em torno do ponto (x0 , f0 ) e obter uma expressão para o ponto (xn , fn ). Nesse caso,
considera-se a expansão em Série de Taylor na vizinhança de x0

df (x0 ) 2 (2)
f (x) ≡ f (x0 + δx) = f (x0 ) + δx + O2 (|δx| ),
dx

2
(a) (b)

Figura 1: Função não linear (a) Função resı́duo (b).

2
sendo que O2 (|δx| ) representa os termos a partir da segunda ordem da série. Considerando o truncamento
da série na primeira ordem, tem-se que
 
df (x0 ) (3)
f (x) ≡ f (x0 + δx) = lim f (x0 ) + δx ,
δx−→0 dx
ou seja, para valores finitos δx = ∆x, tem-se que f (x) = f (x0 + ∆x) é uma aproximação da série dada
por

df (x0 ) (4)
f (x0 + ∆x) ∼= f (x0 ) + ∆x.
dx
Feita dessa forma, a aproximação se deve ao erro introduzido pelo truncamento dos termos acima
da segunda ordem da série. Quanto maior o afastamento do ponto (x0 , f0 ) (valores maiores de ∆x), maior
2
será o erro da aproximação, que é da ordem de |∆x| . Como pode ser observado, essa é uma aproximação
linear da função f (x) no intervalo [x0 , x0 + ∆x], através de uma reta tangente partindo de (x0 , f0 ) com
inclinação

df (x0 ) (5)
Kt = .
dx
Dessa maneira, pode-se sugerir um método iterativo para a determinação de aproximada de xn ,
df (x)
ou seja, conhecendo-se x0 e f0 , e as expressões para f (x) e f ′ (x) = , faz-se expansões lineares
dx
sucessivas com valores de ∆x, até que se consiga determinar o valor de xn , dentro de uma determinada
margem de precisão.
Esse procedimento gera uma série de pontos

(x0 , f0 ) (x1n , fn1 ) · · · (xin , fni ),


tais que
 1

 xn = x0 + ∆x0



 2
xn = x1n + ∆x1
 ..
.




 i+1
xn = xin + ∆xi

3
com
(6)
∆xi = (Kti )−1 [fn − f (xin )] ⇒ ∆xi = (Kti )−1 ψ(xin ),
sendo,

df (xin )
Kti = .
dx
Assim, quanto maior o número de aproximações sucessivas (iterações), melhor a precisão do re-
sultado final, isto é: i → ∞, então xin → xn , ∆x → 0 e ψ(xin ) = fn − f (xin ) → 0. Para ilustrar esse
conceito, será apresentado um exemplo numérico.
Considerando:

df (x)


 f (x) = x2 + 2x ⇒ = 2x + 2



 dx

x0 = 0 ⇒ f0 = 0 ,





fn = 3


calcular xn com precisão ε ≤ 10−3 (εi = xn − xin ).

1. Primeira iteração (i = 0):



 f0 = f (x0 ) = 0



df (x0 )


Kt0 =


 =2
dx






fn − f0 3−0
∆x0 = 0 ⇒ ∆x0 = = 1, 5



 Kt 2



xi+1 = x0 + ∆x0 ⇒ x1n = 1, 5




 n



ε0 = x1n − x0 = 1, 5 > ε

2. Segunda iteração (i = 1):

f1 = f (x1n ) = 5, 25






df (x1n )


1


 K t = =5
dx






fn − f1 3 − 5, 25
∆x1 = 1 ⇒ ∆x1 = = −0, 45



 K t 5



xi+1 = x1n + ∆x1 ⇒ x2n = 1, 05




 n



ε1 = x2n − x1n = 0, 45 > ε

4
3. Terceira iteração (i = 2):

f2 = f (x2n ) = 3, 2025






df (x2n )


2


 K t = = 4, 1
dx






fn − f2 3 − 3, 2025
∆x2 = 2 ⇒ ∆x2 = = −4, 93902.10−2



 K t 4, 1



xi+1 = x2n + ∆x2 ⇒ x3n = 1, 0006097




 n



ε2 = x3n − x2n = 4, 93902.10−2 > ε

4. Quarta iteração (i = 3):

f3 = f (x3n ) = 3, 00243939






df (x3n )


3


 K t = = 4, 00121951
dx






 ∆x = fn − f3 ⇒ ∆x = 3 − 3, 00243939 = −6, 0966318.10−4



3 3
Kt3 4, 00121951



xi+1 = x3n + ∆x3 ⇒ x4n = 0, 999999 ≈ 1, 0




 n



ε4 = x4n − x3n = 6, 0966318.10−4 < ε ⇒ Precisão Atingida!








xn = x4n

xn = 1, 0

Assim, através do procedimento iterativo, determinou-se dentro da precisão requerida (ε < 10−3 )
o valor de xn = 1 tal que fn = f (xn ) = 3. Os passos do procedimento iterativo de Newton-Raphson para
a determinação de xn estão ilustrados geometricamente na figura 2.
A seguir, esse mesmo procedimento será generalizado para uma função vetorial qualquer de N
dimensões.

2.2 Generalização para Várias Dimensões


A generalização do método de Newton-Raphson para N dimensões (ou incógnitas) é imediata e
similar ao caso unidimensional. Nesse caso, considera-se a expansão em Série de Taylor para uma função
vetorial {f ({x})}, dependente do vetor {x}, que pode representar, por exemplo, um campo de força
(campo vetorial), dependente dos deslocamentos de cada ponto de um corpo em movimento no espaço
(variáveis vetoriais).
Desse modo
(7)
{f ({x}0 + {∆x})} = {f ({x}0 )} + [∇f ({x}0 )]{∆x} + {O2 (k{∆x}k2 )},
sendo k{∆x}k a norma euclidiana de {∆x}.

5
Figura 2: Processo iterativo de Newton-Raphson.

Em forma de componentes, tem-se para a função {f ({x})},

 T
{f ({x})} = f1 ({x}) f2 ({x}) · · · fN ({x})
e para o vetor {x}

 T
{x} = x1 x2 · · · xN .
Já para a matriz [∇f ({x})], denominada Jacobiana ou operador Jacobiano de {f ({x})}, vem que

∂f1 ∂f1 ∂f1


 

···

 ∂x1 ∂x2 ∂xN 

 
 ∂f2 ∂f2 ∂f2 
.
···
 
[J({x})] ≡ [∇f ({x})] = 
 ∂x1 ∂x2 ∂xN


 .. .. . . .. 

 . . . . 

 ∂fN ∂fN ∂fN 
···
∂x1 ∂x2 ∂xN
{x}
Usando dos mesmos argumentos para a aproximação da Série de Taylor (truncamento na segunda
ordem) aplicados no caso unidimensional, pode-se escrever

(8)
[J({x}0 )] {∆x} ∼
= {f ({x}0 + {∆x})} − {f ({x}0 )}
Definindo o vetor resı́duo
(9)
{ψ({x}0 + {∆x})} ≡ {f ({x}0 + {∆x})} − {f ({x}0 )},
pode-se escrever de forma mais compacta,

(10)
[J({x}0 )]{∆x} ∼
= {ψ({x}0 + {∆x})}.
Adotando um procedimento iterativo de solução (aproximações lineares sucessivas), analogamente
ao caso unidimensional, pode-se escrever

(11)
[J]i {∆x}i = {ψ}i ⇒ {∆x}i = [J]−1i {ψ}i ,
que é um sistema linear algébrico de N equações e N incógnitas, para cada iteração i.
Para a resolução em cada iteração pode-se aplicar os métodos convencionais para a resolução

6
numérica de sistemas de equações já conhecidos, como por exemplo os métodos LU, QR, Cholesky,
Gauss, etc (ver refs. [1] e [2]).
Como pode ser observado, em cada iteração i, é necessário que as derivadas parciais das com-
ponentes da função{f } sejam definidas e suficientemente suaves no ponto {x}i , de modo que a matriz
Jacobiana [J] não seja singular e possa ser invertida para a resolução do sistema de equações em (11).
Com base nesse conceito, é possı́vel aproximar uma função qualquer não linear {f }, através de
aproximações lineares sucessivas (ou calcular o zero de uma função resı́duo {ψ}), baseando-se da expansão
por Série de Taylor na vizinhança de um ponto conhecido {x}0 . Essa é a idéia central do método de
Newton-Raphson, que será aplicada na solução de sistemas de quações lineares, apresentada na próxima
seção.

2.3 Aplicação em Sistemas Não Lineares


Na seção anterior foi mostrado que o problema geral de calcular uma função não linear por aprox-
imações lineares sucessivas, com base no método de Newton-Raphson, por expansão em Série de Taylor.
Esse problema recai na resolução de um sistema não linear de equações que é resolvido iterativamente por
uma série de sistemas lineares. Aqui o princı́pio do método será generalizado para a solução de sistemas
de equação não lineares, bem como será apresentado um algoritmo para a sua solução numérica.
Seja o sistema não linear de equações dado por

(12)
[K({u})]{u} = {f }.
Assumindo que o sistema esteja em equilı́brio para um dado par ({u}, {f }), tem-se que

{ψ} ≡ {f } − {P ({u})} = {0}


.
{P ({u})} ≡ [K({u})]{u}
No contexto da Mecânica Estrutural é comum utilizar a seguinte nomenclatura

[K] : Matriz de Rigidez

{f } : Vetor de Forças Externas

{u} : Vetor de Deslocamentos

{P } : Vetor de Forças Internas

{ψ} : Vetor de Forças Desbalanceadas ou Resı́duo


Isso de deve ao fato de que, em geral o sistema representa o equilı́brio estático de um componente
ou estrutura submetido a um carregamento {f }. A matriz [K] representa genericamente a influência
da geometria e das propriedades do material, definindo a rigidez do conjunto. O vetor {P } representa
as forças internas no sistema que equlibram o carregamento {f } aplicado. Quando são consideradas
não linearidades de material (plasticidade, hiperelasticidade), grandes deslocamentos, grandes rotações,
contato, impacto, entre outros fenômenos, o sistema passa a ser não linear devendo-se aplicar algum
método adequado para a sua solução.
Naturalmente, esse é apenas um dos exemplos possı́veis no qual um problema fı́sico recai em um
sistema de equações algébricas não lineares. Apenas por conveniência e para manter a consistência com
a literatura técnica, aqui será utilizada a notação da mecânica estrutural, mas esse fato não afeta a
generalidade do método de solução, podendo ser facilmente transferido para outros contextos.
Para aplicar o conceito do método de Newton-Raphson apresentado nas seções anteriores, é

7
necessário resolver o problema iterativamente, anulando o resı́duo (para garantir o equilı́brio) em cada
iteração, ou seja

(13)
{ψ}i = {f } − {P }i .
Expandindo o resı́duo por Série de Taylor1, em torno da solução obtida na iteração i, vem que

∂{ψ}i (14)
{ψ}i+1 ∼
= {ψ}i + ({u}i+1 − {u}i ) .
∂{u}i
Impondo o equilı́brio do sistema ({ψ}i+1 = {0}), tem-se

∂{ψ}i (15)
({u}i+1 − {u}i ) = −{ψ}i .
∂{u}i
Definindo agora

∂{P }i ∂{ψ}i
[Kt ]i = =− e {∆u}i = ({u}i+1 − {u}i ) ,
∂{u}i ∂{u}i
sendo

[Kt ] : Matriz de Rigidez Tangente ou Jacobiano de {ψ}


.
{∆u} : Vetor de Incremento de Deslocamentos
Desse modo, tem-se finalmente o sistema

(16)
[Kt ]i {∆u}i = {ψ}i ⇒ {∆u}i = [Kt ]i−1 {ψ}i ,
que deve ser resolvido iterativamente até que a convergência desejada seja atingida.

2.4 Algoritmo do Método de Newton-Raphson


A seguir, tem-se o algoritmo de Newton-Raphson, no contexto da solução de sistemas de equações
não lineares.

1. Conhecidos {u}0 e {f }, inicializar o contador de iterações, i = 0;


2. Montar a matriz de rigidez tangente: [Kt ]i = [Kt ({u}i )];
3. Montar o vetor de forças internas: {P }i = {P ({u}i)};
4. Calcular o resı́duo: {ψ}i = {f } − {P }i ;
5. Calcular o vetor de incrementos (sistema linear em {∆u}i ): {∆u}i = [Kt ]−1
i [ψ]i ;

6. Atualizar o ponto (vetor de deslocamentos): {u}i+1 = {u}i + {∆u}i ;


7. Verificar a convergência:

• Se convergiu, então {u}i+1 é a solução → FIM.


• Caso contrário, fazer i = i + 1 e voltar para o passo 2.

Observações:
1 Será considerado no presente texto que as forças externas são constantes, apenas por conveniência e simplicidade. Em

formulações mais gerais (contato-impacto, por exemplo), o carregamento externo pode ser variável e dependente de {u} e
a suas derivadas parciais devem ser consideradas na expansão por Série de Taylor.

8
• Em geral estima-se {u}0 através da solução linear do sistema, desprezando-se partes não lineares
de [Kt ] e {P }, com base no carregamento externo {f };
• As expressões de [Kt ] e {P } são definidas com base na formulação empregada para a solução do
problema. No caso do Método dos Elementos Finitos em mecânica estrutural, [Kt ] e {P } dependem
do tipo de formulação de elemento utilizada, propriedades de material, etc. Além disso, o algoritmo
acima deve ser ligeiramente modificado para contemplar os procedimentos de montagens de matrizes
e vetores locais e globais.

2.5 Critérios de Convergência


Há varios métodos para se definir a convergência do método de Newton-Raphson, podendo citar
alguns:

1. Norma euclidiana do incremento: η = k{∆x}k ;


2. Norma euclidiana do resı́duo: η = k{ψ}k;
3. Máxima componente do incremento (norma no infinito): η = |max{∆x}| ;
4. Máxima componente do resı́duo (norma no infinito): η = |max{ψ}| ;
k{∆x}k
5. Norma relativa dos deslocamentos: η = ;
k{x}0 k
k{ψ}k
6. Norma relativa do resı́duo: η = .
k{f }k

Em todos os casos, considera-se que o problema convergiu quando η < ε, sendo 0 < ε < 1,
a precisão requerida para a aproximação (por exemplo, 10−3 ,10−8 , etc). Além dessas, outras normas
podem ser definidas, mais adequadas ao problema sendo estudado.
De maneira geral, os critérios de convergência definidos acima são equivalentes do ponto de vista
conceitual. Do ponto de vista prático, entretanto, normas relativas (do tipo 5 e 6) são mais robustas
pois “escalonam” o problema, tornando-o independente do sistema de unidades utilizado. Além disso, é
comum também usar critérios combinados do tipo
 
max η1 η2 · · · ηk < ε,
ηk
 
sendo η1 η2 · · · ηk um conjunto de k critérios de convergência adequados para uma dada aplicação.
Lembrando-se que uma sequência geral {x}k ⊂ ℜn (k = 1, 2, 3, ...) converge para {x}∗ , se

lim k{x}k − {x}∗ k = 0.


k→∞
A convergência é dita local, se o ponto inicial {x}0 está na vizinhança de {x}∗ , ou seja,

k{x}0 − {x}∗ k ≤ ξ,
sendo ξ um escalar positivo arbitrário.
Desse modo, a vizinhança de {x}∗ é o conjunto de pontos contidos na “esfera generalizada” (ou
uma hiperesfera em ℜn ) com raio ξ e centrada em {x}∗ .
Com base nesse conceito, pode-se definir a taxa de convergência para uma sequência {x}k . Assumindo-
se que exista uma constante C > 0, para k suficientemente grande, vem que:.

• Taxa de convergência linear: k{x}k+1 − {x}∗ k ≤ C k{x}k − {x}∗ k ;

9
• Taxa de convergência super-linear: k{x}k+1 − {x}∗ k ≤ C k{x}k − {x}∗ k1+α , 0 < α < 1;
2
• Taxa de convergência quadrática: k{x}k+1 − {x}∗ k ≤ C k{x}k − {x}∗ k .

Na forma como foi definido, o método de Newton-Raphson possui taxa de convergência quadrática
local, em uma vizinhança muito próxima de {x}∗ . Isso pode ser interpretado da seguinte forma: desde
que sejam respeitadas as condições de diferenciabilidade e suavidade de {f ({x})}, a norma do resı́duo é
reduzida em cada iteração, a uma taxa quadrática.
Na prática, uma taxa de convergência quadrática é bastante acentuada, de modo que o método
de Newton-Raphson converge em poucas iterações (ordem de 5 iterações) em problemas ditos “bem
condicionados” na vizinhança da solução {x}∗ . Por esse motivo o Newton-Raphson é considerado uma
referência (benchmark ) para comparação da eficiência de convergência com outros métodos alternativos,
que em geral convergem linearmente ou de forma super-linear.

2.6 Comentários Gerais sobre o NR


Podem-se fazer os seguintes comentários sobre o método de Newton-Raphson:

• Como visto, possui rápida taxa de convergência (quadrática) local na vizinhança da solução {x}∗ .
Isso requer um certo cuidado na escolha do ponto inicial {x}0 de partida para o método. Em
problemas no qual não se conhece a priori a forma da curva de {f ({x})}, principalmente em
problemas com muitos graus de liberdade (número de incógnitas), a determinação de {x}0 não é
uma tarefa evidente e trivial, de modo que o método pode divergir encontrando soluções erradas
ou mesmo não encontrando nenhuma solução (loops infinitos);
• Com base nesse primeiro comentário, é comum adotar técnicas de solução “incrementais” ou “em
passos”, que cosistem basicamente de reduzir a força aplicada {f } em pequenos incrementos {∆f } =
λ{f } (ou passos de carga, load steps), de maneira a seguir paulatinamente o caminho de solução
até {x}∗ . Em geral adota-se λ da ordem de 1/10 ou inferior, podendo ser um fator constante ou
variável durante o processo de solução. Como será visto nas seções seguintes, esse procedimento
melhora bastante a convergência do Newton-Raphson, mas não garante convergência na presença
de singularidades;
• [Kt ] e {P } precisam ser calculados e “fatorados” em cada iteração para a solução do sistema linear.
Para probelmas com muitos graus de liberdade o custo computacional pode se tornar bastante
elevado;
• É necessário que [Kt ] seja não singular para que haja solução do sistema linear. Nos casos em a
tangente da curva {f } × {u} se anula e/ou muda de inclinação (ou mesmo não existe), o problema
diverge, devendo ser aplicados métodos alternativos para contornar esses incovenientes, com será
apresentado nas seções seguintes;
• [Kt ] pode perder a simetria ao longo do processo iterativo, de modo que é necessário utilizar soluções
de sistemas lineares que não dependam da simetria de [Kt ]. Isso pode gerar uma dificuldade
adicional, em termos memória e processamento numérico, para armazenar os termos não simétricos
de [Kt ] (em geral, solvers para o MEF linear são desenvovidos com base na simetria da matriz de
rigidez);

3 Métodos Alternativos - Variações do NR


Há vários métodos disponı́veis para tratar as limitações do Newton-Raphson (ver refs. [3], [4] e
[5]), entretanto, em geral ganha-se em robustez ou em custo, mas perde-se em taxa de convergência. Nas

10
próximas seções serão aprsentados alguns desses métodos que visam contornar algumas das dificuldades
do Newton-Raphson convencional.

3.1 Método de Newton-Raphson Modificado - NRM


O método de Newton-Raphson Modificado é apenas uma variação simples do método convencional,
entretanto é bastante utilizado pelo potencial de reduzir o custo de processamento computacional com
baixa perda de precisão e taxa de convergência.
Geralmente, em problemas bem condicionados (com baixo grau de não linearidade), [Kt ] varia
pouco a cada iteração, de modo que calcula-se o seu valor, bem como a sua fatoração apenas no inı́cio do
processo, mantendo-se constante ao longo das iterações.
A taxa de convergência é suavemente reduzida para pequenos incrementos de carregamento (número
de iterações), mas o ganho computacional pode ser significativo, principalmente problemas com muitos
graus de liberdade. Pode-se adotar vários critérios para o re-cálculo de [Kt ] (restart ), como por exemplo
a cada m > 1 iterações, ou baseando-se na perda de taxa de convergência (i > imax ), ou ainda na perda
de condicionamento da matriz. A figura 3 ilustra a diferenca entre os métodos de Newton-Raphson e
Newton-Raphson Modificado. Observe a diferença nas taxas de convergência.

(a) (b)

Figura 3: Método de Newton-Raphson (a) e Newton-Raphson Modificado (b).

3.2 Métodos Quase-Newton - QN


Os métodos Quase-Newton são derivados dos métodos de otimização e programação matemática
não linear (ver refs. [6] e [7]). Baseando-se no princı́pio de que o equilı́brio em geral está associado à
minimização de um determinado funcional (no caso da mecânica estrutural esse conceito está associado à
mı́nima energia potencial total do sistema quando em equilı́brio), pode-se estabelecer uma relação direta
da solução de sistemas não lineares com o processo de minimização.
Não é objetivo desse texto descrever em detalhes os métodos de otimização, o leitor interessado
pode consultar as referências citadas para maiores detalhes. Em linhas gerais, define-se uma direção de
busca ou “direção de descida”, na qual ocorre a minimzação da função, ou seja, é uma direção oposta
à definida pelo gradiente da função a ser minimizada. No caso de sistemas de equações não lineares, a
função a ser minimizada é a energia potencial total do sitstema. Nesse sentido, é possı́vel demonstrar que

(17)
{d} = −[D]{∇Π({u})} = −[D]{ψ({u})},
sendo {d} a direção de descida, Π({u}) a energia potencial total do sistema e {ψ({u})} a função resı́duo

11
(ou vetor de forças desbalanceadas). A matriz [D] representa uma “ponderação” ou correção da máxima
direção de descida ou direção de mimização. Quando [D] = [I], sendo [I] a matriz identidade, tem-se a
máxima direção de descida (steepest descent method ), definida pelo gradiente da função a ser minimizada.
Esse método de máxima direção de descida é conhecido como Método do Gradiente. A escolha de [D] 6=
[I] define várias famı́lias de métodos de otimização baseados no gradiente.
Demonstra-se também que

[D]−1 = [∇2 Π({u})] ⇒ [D]−1 = {∇ψ({u})} ⇒ [D]−1 = {J({u})}


(18)
−1
⇒ [D] = [Kt ({u})]
2
sendo [∇ Π({u})] a matriz Hessiana (matriz das derivadas parciais de segunda ordem) da função energia
potencial total. Métodos de otimização baseados no gradiente e na Hessiana da função são conhecidos
como Métodos de Newton.
Partindo-se de um ponto {u}i , o mesmo é atualizado no sentido de minimizar o funcional da
seguinte maneira

{u}i+1 = {u}i + α{d}


(19)
{d} = −[D]{∇Π({u})}
Associando as expressões (17) e (18) com (19) pode-se perceber a similaridade do processo de
minimzação com a solução do sistema de equações não lineares, ou seja

{u}i+1 = {u}i + α{d}


(20)
−1
{d} ≡ {∆u} = −[D]{∇Π({u})} ⇒ {d} ≡ −{∆u} = [Kt ] {ψ}
sendo α um escalar que define o “passo” em que se caminha na direção de minimização do funcional. O
uso desse parâmetro de ponderação tem o objetivo de melhorar a robustez do método como será visto
mais adiante nesse texto. O cálculo de α 6= 1 é baseado em métodos de busca linear, que serão explicados
em seguida.
Como o cálculo da matriz Hessiana (ou da matriz tangente) geralmente tem custo bastante alto,
além de sua inversão ou fatoração para a solução do sistema, definem-se no contexto de otimização os
métodos Quase-Newton, como alternativa a contornar esse processo.
A principal motivação dos métodos Quase-Newton é tentar aproximar o valor de [D], a partir de
informações obtidas nas iterações já calculadas previamente. Desse modo, é possı́vel obter automati-
camente a inversa aproximada de [Kt ] ([D] = [Kt ]−1 ) de forma que o sistema de equações linear em
cada iteração reduz-se a um problema de multiplicação de matriz por vetor, o que é bem mais vantajoso
computacionalmente. Por outro lado, perde-se em taxa de convergência, que passa a ser super-linear.
Há várias expressões que foram deduzidas para [D], que podem ser encontradas na literatura
relacionada a métodos de otimização (ver refs. [6] e [7]). Aqui serão apresentados apenas os resultados
finais de algumas das mais famosas.
Definindo

[D]i ≡ [Kt ]−1


i , {s} ≡ {u}i+1 − {u}i e {y} ≡ {ψ}i+1 − {ψ}i ,
tem-se:

• Método de Broyden (1967)

({s} − [D]i {y}) ({s} − [D]i {y})T (21)


[D]B
i+1 = [D]i + T
({s} − [D]i {y}) {y}

12
• Método DFP (Davidon, Fletcher e Powell, 1959-1963)

{s}{s}T [D]i {s}{s}T [D]i (22)


[D]DF P
i+1 = [D]i + − T
{y}T {y} ([D]i {y}) {y}

• Método BFGS (Broyden, Fletcher, Goldfarb e Shano, 1970)

{y}T [D]i {y} {s}{s}T {s}{y}T [D]i + [D]i {y}{s}T


 
(23)
[D]BF
i+1
GS
= [D]i + 1 − T T
+
{s} {y} {s} {y} {s}T {y}

3.3 Algoritmo dos Métodos Quase-Newton


A seguir, tem-se o algoritmo de Quase-Newton no contexto da solução de sistemas de equações
não lineares.

1. Conhecidos {u}0 e {f }, inicializar o contador de iterações i = 0, [D]0 = [I] (inicia com a identidade,
método do Gradiente);
2. Montar o vetor de forças internas: {P }i = {P ({u}i)};
3. Calcular o resı́duo (gradiente): {ψ}i = {f } − {P }i ;
4. Calcular o vetor de incrementos (direção de descida): {∆u}i = −[D]i {ψ}i
5. Busca unidimensional (cálculo de α): α = min Π({u}i + α{∆u}i );
α

6. Atualizar o ponto (vetor de deslocamentos): {u}i+1 = {u}i + α{∆u}i ;


7. Verificar a convergência:

• Se convergiu, então {u}i+1 é a solução → FIM.


• Caso contrário, atualização aproximada para [Kt ]−1 :

{s}i = {u}i+1 − {u}i

{y}i = {ψ}i+1 − {ψ}i




 [D]B
i+1 ou




 [D]DF P
i+1 ou


[D]i+1 =
[D]BF GS
ou



 i+1




···

8. Fazer i = i + 1 e voltar para o passo 2.

Observações:

• Os métodos do tipo Quase-Newton não garantem automaticamente que [D]i+1 seja positivo definida,
isto é, a aproximação para [Kt ]−1 pode tornar-se mal condicionada (singular), podendo levar à
divergência da solução. Nesse caso consideram-se métodos de restart, por exemplo calculando
diretamente [Kt ] ou substituindo-a pela matriz identidade.

13
• Os procedimentos de busca linear (cálculo de α) ajudam a reduzir os erros de aproximação para
a matriz tangente, melhorando a convergência do método de uma forma geral (muitos autores os
definem como aceleradores de convergência), os quais serão apresentados na proxima seção.

3.4 Busca Linear - Método da Secante


Como visto na seção anterior, a atualização do ponto na direção de descida é feita considerando
um passo α tal que

{u}i+1 = {u}i + α{∆u}i ,


Dessa forma, pode-se calcular o “melhor” avanço na direção de descida {∆u}i com o objetivo de reduzir
o resı́duo a zero, ou minimizar o funcional de equilı́brio, isto é
α = min Π({u}i + α{∆u}i ) ⇒ {∇Π(α)}i = {0} ⇒ {ψ(α)}i = {0}. (24)
α
Calculado dessa forma, em geral α 6= 1, ao contrário do considerado normalmente no método de
Newton-Raphson. Assim, a aplicação desse conceito permite uma rápida redução do resı́duo na maioria
dos casos, daı́ a denominação dos métodos de busca para α como aceleradores de convergência.
Como {u}i e {∆u}i são valores conhecidos ao final da iteração i, tanto Πi e {ψ}i são funões apenas
de α, de forma que o cálculo se resume à minimização irrestrita de uma função de uma variável, de onde
deriva o termo busca linear ou busca unidimensional.
Há vários métodos dispoı́veis para o cálculo de mı́nimos de funções de uma variável, como pode ser
observado na literatura (ver refs. [6] e [7]). Um dos mais populares, no contexto da solução de sistemas
não lineares, é o Método da Secante (ou método da Posição Falsa), o qual será descrito a seguir.
O objetivo é determinar um α que minimiza Π(α) ou, em outras palavras, α que leva o gradiente
a zero, que significa o mesmo que calcular o zero do da função resı́duo ψ(α).
Para tanto, define-se a projeção do gradiente na direção de descida (derivada direcional, ou gradi-
ente projetado), dada por

{∆u} (25)
g(α) = {ψ({u})}T .
k{∆u}k
O cálculo do zero de g(α) é definido pelo método da Secante como se segue.
Considerando um processo iterativo para o cálculo de α pelo método da Secante (ou da Posição
Falsa) (ver refs. [1] e [2]), tem-se a equação da reta secante à curva de g(α) entre os pontos (αi , g(αi )) e
(αi−1 , g(αi−1 )), é dada por

(αi − αi−1 ) (26)


αi+1 = αi−1 − g(αi−1 ),
g(αi ) − g(αi−1 )
que é uma fórmula de recorrência para αi+1 .
A reta secante à curva de g(α), como definida pela equação acima, deve sempre interceptar o eixo
das abscissas no ponto (αi+1 , 0). Resolvendo-se de modo iterativo, em cada iteração αi+1 se aproxima do
valor α∗ , o qual anula a função g(α∗ ), como pode ser visto na figura 4. Assume-se que α ≥ 0, para que
se caminhe sempre no sentido de minimização.
Assim, define-se o algoritmo:

1. Dados {u}0 e {∆u}0

14
Figura 4: Método da Secante.

2. Calcular a projeção inicial (α = 0)

{∆u}
g0 ≡ g(α0 ) = {ψ({u}0)}T
k{∆u}k

gin = g0

3. Determinar o intervalo inicial de busca para α∗ (intervalo de confiança)

(a) Adotar α1 = 1. Intervalo [0, α1 ].


(b) {u}1 = {u}0 + α1 {∆u}0
{∆u}0
(c) g1 ≡ g(α1 ) = {ψ({u}1 )}T
k{∆u}0 k
(d) Verificar se existe zero no intervalo:
• Se g1 .go < 0, o intervalo [0, α1 ] contém o zero. Ir para o passo 4.
• Caso contrário, fazer α1 = γα1 (γ > 1, por exemplo γ = 2) e retorne para o passo 3.(a)

4. Calcular α2 pela equação da reta secante

(α1 − α0 )
α2 = α0 − g0
g1 − g0

5. {u}2 = {u}1 + α2 {∆u}0


{∆u}0
6. g2 ≡ g(α2 ) = {ψ({u}2 )}T
k{∆u}0k
7. Verificação da congergência para α∗ :

• Se g2 < βgin (0 < β < 1, tolerância para aceitar α∗ , geralmente adota-se β = 1/10), então
α∗ = α2 → FIM .
• Caso contrário, ir para o passo 8

8. Redefinir o intervalo de confiança

• Se g0 .g2 < 0, α∗ deve estar no intervalo [0, α2 ], fazer α1 = α2 e g1 = g2 .

15
• Caso contrário, α∗ deve estar no intervalo [α2 , α1 ] fazer α0 = α2 e g0 = g2 .

9. Retornar para o passo 4

Observações:

• Os métodos de busca linear oferecem a vantagem de acelerar a convergência NR NRM ou QN, bem
como melhorar o condicionamento do sistema, principalmente em pontos próximos a singularidades,
como será visto na próxima seção. Por outro lado, podem aumentar significativamente o custo
computacional, devido aos sucessivos cáculos de adicionais de {ψ}, introduzidos no processo de
busca linear unidimensional. Por esse motivo, em muitos casos onde o cálculo de {ψ} é trabalhoso,
o custo benefı́cio pode não valer a pena, de modo de alguns autores indicam muita cautela ao
utilizar métodos de busca linear na solução de sistemas de equações não lineares (ver refs. [3] e [4]),
ou seja, apenas em casos que a convergência esteja realmente muito difı́cil e e lenta, por exemplo
k{ψ}i+1 k > ξ k{ψ}i k, com 1/2 ≤ ξ ≤ 4/5 (entre 50% e 80%).

4 Tratamento de Singularidades - Pontos Crı́ticos


Em diversos problemas fı́sicos, por exemplo na mecânica estrutural: flambagem não linear, amolec-
imento de deformação (strain softening), processos de danificação e propagação de trincas, grandes
rotações, contato-impacto, entre outros, há na curva {f }×{u} singularidades (pontos limite e bifurcações,
denominados genericamente de pontos crı́ticos), nos quais a inclinação (definida por [Kt ]) se anula ou
muda de sinal, fazendo com que os métodos convencionais NR, NRM e QN deixem de convergir, pois
[Kt ] se torna muito mal condicionada, ou mesmo singular.
A figura 5 ilustra o fenômeno de pontos crı́ticos em uma dimensão (apenas um grau de liberdade).
Na existência desses pontos, ocorrem fenômenos conhecidos como snap-through ({f } muda de sentido e
o algoritmo de NR “salta” do ponto limite B para C) e snap-back ({u} muda de sentido e o NR “salta”
do ponto limite D para E). Há também bifurcações, nos quais existem múltiplos caminhos a percorrer.
Desse modo, quando é necessário “seguir” todo o caminho da curva {f } × {u} devem-se aplicar métodos
adequados para contornar as singularidades.

Figura 5: Curva não linear com pontos crı́ticos. Exemplo de snap-through, snap-back e bifurcação.

Essa tem sido uma área de intensa pesquisa nas últimas décadas, sendo de grande importância para
a engenharia e para as ciências fı́sicas de um modo geral. Apesar dos avanços, ainda não há uma solução
geral para tratar todos os tipos de singularidades encontradas, de modo que os métodos existentes são, de
certa forma particulares, e devem ser tratados caso a caso. Dessa forma, é de fundamental importância
se conhecer a priori o comportamento “global” do sistema sendo considerado, a fim de poder utilizar os
métodos adequados de solução.

16
Em linhas gerais, podem-se definir duas grandes frentes de estudo nessa área, que são: os métodos
de detecção e métodos de continuação. Em muitos casos, não é de interesse seguir ou “traçar” a curva
{f }×{u}. Deseja-se apenas conhecer onde existem os pontos crı́ticos e dimensionar o sistema ou estrutura
para trabalhar fora dessas regiões instáveis. Por exemplo, determinar a carga crı́tica de flambagem (ou os
modos de flambagem) e dimensionar a estrutura para que a mesma não atinja as cargas crı́ticas. Essa é a
linha englobada pelos métodos de detecção, que se destinam a prever ou detectar a existência de pontos
crı́ticos no sistema, sem necessariamente seguir o caminho da curva até eles.
Já nos casos nos quais necessário traçar a curva {f } × {u}, é onde se aplicam os métodos de
continuação. Os métodos de continuação, como o próprio nome diz, tem o objetivo de seguir (com um
certo nı́vel de detalhe) todo o caminho do carregamento (load path) em um determinado intervalo, sem que
se conheça de antemão onde existem pontos crı́ticos. Essa classe de métodos é muito importante quando
se deseja conhecer a curva de funcionamento do sistema, em um determinado intervalo de parâmetros.
A literatura sobre o tratamento de pontos crı́ticos é bastante vasta (ver refs. [9], [10], [11], [12],
[13], [14] e [15]) e não serão apresentados detalhes aprofundados nesse texto. Serão tratados apenas os
métodos clássicos de continuação conhecidos como arc-length e um método alternativo, proposto por
Bergan, os quais serão descritos sumariamente nas seções seguintes.

4.1 Definições Preliminares


Como foi explicado nas seções anteriores, os métodos tipo NR, NRM, QN e similares devem ser
tratados como locais, isto é, garantem a convergência da solução apenas em uma pequena vizinhança da
solução e desde que não haja pontos crı́ticos ou singularidades no intervalo de cálculo.
Esse fato reforça a necessidade de resolver os sistemas não lineares de forma incremental ou em pas-
sos de carregamento, ou seja, dado um carregamento {f }total , resolve-se o problema em cada incremento
{∆f }n , de modo que

NX
incr NX
incr

 {f }total = {∆f }n ≡ ∆λn {f }s


(27)
n=0 n=0



{f }s = γ{f }total com 0 < γ < 1

sendo Nincr o número de divisões, incrementos ou passos de carregamento, {f }s um percentual da carga


total (geralmente constante, sugerindo-se γ ≤ 1/10).
Em cada incremento n de carga, obtém-se uma solução {u}n , através do métodos já conhecidos,
sendo que a solução em n é a estimativa inicial para o passo n + 1, e assim por diante.
O escalar ∆λn é um parâmetro (variável em métodos de contiuação) para controlar a evolução do
carregamento, de forma que

 {f }n+1 = {f }n + {∆f }n ≡ λn+1 {f }s
(28)
.
λn+1 = λn + ∆λn

Uma famı́lia de métodos de continuação se baseia em controlar o comprimento de {f }n e/ou {u}n,


de modo a evitar a divergência (métodos de controle incremental). Em linhas gerais, reescreve-se o

17
sistema não linear da seguinte forma


 {ψ}n+1 ≡ {f }n+1 + {P }n+1 = {0}




{u}n+1 = {u}n + {∆u}n






(29)

{f }n+1 = {f }n + {∆f }n ≡ λn+1 {f }s .




λn+1 = λn + ∆λn








ρ({u}n+1 , λn+1 ) = 0

Desse modo, tem-se um sistema aumentado de ordem (N + 1) × (N + 1), sendo N o número de


incógnitas em {u}. A incógnita adicional é λn+1 (ou ∆λn ), que deve agora ser determinada em cada
incremento n. De maneira a ser possı́vel determinar λn+1 , deve ser introduzida uma nova equação no
sistema, representada pela restrição ρ({u}n+1 , λn+1 ) = 0.
A seguir serão apresentados alguns métodos para a determinação de λn+1 , que são os métodos tipo
arc-length e o método de Bergan.

4.2 Métodos Arc-Length


Encontram-se na literatura (ver refs. [9] a [15]) várias expressões para a restrição ρ({u}n+1 , λn+1 ),
como por exemplo

(30)
ρ({u}n+1 , λn+1 ) = {∆u}Tn {∆u}n + ∆λ2n {f }Ts {∆u}n − ∆l2 = 0,
proposta por Riks, ou

(31)
ρ({u}n+1 , λn+1 ) = {∆u}Tn {∆u}n − ∆l2 = 0,
proposta or Crisfield.
Tem-se que ∆l é um escalar que define o raio de uma esfera (hiperesfera ou esfera generalizada),
cilindro ou um comprimento de arco, no espaço de N + 1 dimensões das variáveis do problema. Por
esse motivo, métodos como os definidos acima são conhecidos genericamente como arc-length. A idéia é
restringir, ou controlar os incrementos, não permitindo que a solução caia fora da região definida pela
equação de restrição. Desse modo, as soluções possı́veis representam a intersecção da equação de restrição
com a curva {f } × {u}.
Em muitos casos, a equação resultante que define ∆λn é uma parábola da forma

(32)
Λ∆λ2n + Ξ∆λn + Γ = 0,
sendo que Λ, Ξ e Γ são funções escalares de {u}, {f }s e ∆l. No melhor dos casos, há duas soluções
possı́veis para ∆λn , o que gera uma problemática adicional para escolher entre as duas raı́zes e evitar
que o algoritmo siga na direção contrária. Há vários métodos propostos para esse fim, o que geralmente é
feito baseando-se em critérios geométricos. A figura 6 ilustra o princı́pio de funcionamento dos métodos
tipo arc-length comparado com o NR tradicional.
Seguindo numa linha um pouco diferente da tradicional, pode-se citar um trabalho recente [13],
que interpreta o método arc-length como um problema de minização com restrição (otimização restrita),
permitindo a escolha da solução correta para ∆λn , de maneira tão robusta quanto os métodos conven-
cionais, porém com um algoritmo mais simples de ser implementado. Além do mais, na forma como
proposto, no contexto da minimização de uma função objetivo (norma do resı́duo ao quadrado), com esse
método não há a necessidade do cálculo da matriz de rigidez tangente em nenhum passo do algoritmo, o
que revela uma grande vantagem computacional.

18
(a) (b)

Figura 6: Método de Newton-Raphson convencional (a) e Método Arc-Length (b).

Pela capacidade de solução de boa parte dos problemas com pontos limite, os métodos tipo arc-
length, vêm se tornando cada vez mais populares. Entretanto, observa-se que ainda não existe uma
abordagem de implementação que ofereça garantia total de convergência em todos os casos, principalmente
em problemas com muitos graus de liberdade.
Uma escolha inadequada de {f }s e ∆l, associada a singularidades muito “agudas”, pode levar à
múltiplas soluções possı́veis (intersecções múltiplas da restrição com a curva do problema), ou mesmo em
alguns casos a nenhuma solução viável (divergência total).
A figura 7 iustra um exemplo em que há várias soluções possı́veis através do arc-length. Em geral
adotam-se valores iniciais para {f }s e ∆l suficientemente pequenos e definem-se critérios (podendo ser
automáticos) para seu aumento ou diminuição no caso de mau condicionamento e perda de convergência.

Figura 7: Falha do método Arc-Length: várias soluções possı́veis.

4.3 Método de Bergan


Bergan (ref. [3]) propôs um método alternativo para contrlode de incrementos, o qual não se baseia
na restrição conforme os métodos tipo arc-length.
Adota-se um valor para λin+1 e resolve-se a iteração i do sistema no intervalo [n, n + 1]

 {ψ}in+1 = λin+1 {f }s + {P ({u}in+1)}



(33)
.
{u}i+1 = {u}in + {∆u}in

n+1

19
Atualiza-se o vetor de forças internas {P }i+1 i+1 ∗ i+1
n+1 = {P ({u}n+1 )} e obtém-se o valor λn+1 ≡ λn+1 ,
que minimiza o resı́duo

T (34)
ξ = λ∗n+1 {f }s − {P }i+1 λ∗n+1 {f }s − {P }i+1

n+1 n+1 ,
ou seja

∂ξ {f }Ts {P }i+1
n+1 (35)
∗ = 0 ⇒ λ∗n+1 = .
∂λn+1 {f }Ts {f }s
Observa-se que não há garantia a priori sobre a unicidade da solução λ∗n+1 . Dependendo da forma
de {f } × {u}, o resı́duo ξ pode ter vários mı́nimos no intervalo [n, n + 1]. Dessa maneira, dependendo do
tipo de problema e do comprimento do intervalo [n, n + 1], pode haver oscilações ou mesmo divergência
na proximidade de pontos crı́ticos. Na prática no entanto, para problemas “bem comportados”, com
singularidades suaves, λ∗n+1 promove rápida redução do resı́duo {ψ}in+1 , exigindo poucas iterações por
incremento (ref. [3]).
A seguir, tem-se o algoritmo de Bergan para o controle de incrementos.

1. Conhecidos {u}0 , λ0n+1 e {f }n e {f }s , inicializar o contador de iterações i = 0, e o contador de


incrementos n = 0;
2. Calcular o carregamento incremental: {f }n+1 = {f }n + {f }s ;
3. Montar o vetor de forças internas: {P }in+1 = {P ({u}in )};
4. Calcular o resı́duo: {ψ}in+1 = {f }in+1 − {P }in+1 ;
5. Montar a matriz tangente: [Kt ]i = [Kt ({u}in )]
6. Calcular o vetor de incrementos: {∆u}in = [Kt ]−1 i
i {ψ}n+1 ;

7. Atualizar o ponto: {u}i+1 i i


n+1 = {u}n + {∆u}n ;

8. Calcular o parâmetro de Bergan

• Atualizar o vetor de forças internas: {P }i+1 i+1


n+1 = {P ({u}n+1 )};
• Parâmetro de Bergan:

{f }Ts {P }i+1
n+1
λi+1
n+1 = ;
{f }Ts {f }s
• Atualizar o carregamento: {f }i+1 i+1
n+1 = λn+1 {f }s

9. Verificar a convergência:

• Se convergiu, então salvar a solução, fazer i = 0, n = n + 1 e votar para o passo 2.


• Caso contrário, {u}i+1
n = {u}i+1
n+1 , fazer i = i + 1 e voltar para o passo 3.

Observações:

• No passo 2, deve-se verificar em cada incremento se atingiu-se o valor máximo do carregamento


{f }total (ou um valor máximo de incrementos nmax ). Além disso, deve-se verificar se ocorre inversão
do carregamento (geralmente λ∗n+1 ou {∆f } mudam de sinal). Nesse caso, deve-se mudar o sinal
de {f }s , de modo a ser possı́vel seguir a curva do carregamento em sentido contrário.

20
4.4 Introdução de Perturbações
Alguns autores sugerem a introdução de pequenas “perturbações” no sistema, no caso de mau
condicionamento, como ocorre na iminência de pontos crı́ticos (ver ref. [4]). Basicamente a estratégia é
a seguinte: no cálculo de [Kt ], verficar o condicionamento da matriz. Caso haja indı́cio de singularidade,
perturbar o vetor {u} de um pequeno {δu} (k{δu}k = 10−5 k{u}k, por exemplo) e recalcular [Kt ],
verificando novamente o condicionamento. Esse procedimento de perturbação pode ser repetido algumas
vezes (2 a 4) até que se consiga escapar escapar da zona de instabilidade.
Apesar de ser um método de caráter empı́rico, funciona razoavelmente bem no caso de pontos
limite suaves, entretanto não é geral, com a tendência de falhar em singularidades agudas e bifurcações.
Esse procedimento, bem como outros de melhora de robustez, podem ser associados a métodos de busca
linear, os quais em conjunção com métodos tipo arc-length ou equivalente, podem ajudar no tratamento
de singularidades com melhora de convergência e condicionamento.

5 Estudo de Casos - Exemplos em MATLAB


A fim de ilustrar os conceitos dos métodos de solução de sistemas não lineares, serão apresentados
alguns exemplos práticos, implementados computacionalmente utilizando a linguagem de programação
MATLAB [8].

5.1 Flambagem Não Linear de Treliças


O exemplo utilizado é um problema de flambagem não linear de treliças (elemento finito de barra),
apresentado na figura 8. Como pode ser observado, a curva força vs. deslocamento R(δ) para esse sistema,
considerando grandes deslocamentos (não linearidade geométrica), apresenta dois pontos limite.
O equacionamento desse problema é simples e maiores detalhes podem ser encontrados em [5]. As
equações que regem o problema são:
 
EA 3 1 3

2 2

 R(δ) = 3 H δ + Hδ + δ



 L 2 2



dR(δ) EAH 2 N EAH 2

(36)

K t (δ) = ⇒ K t (δ) = 2
+ + 3
2Hδ + δ 2


 dδ L L L

  
EA 1 2



 N (δ) =
 Hδ + δ
L2 2
Para esse exemplo foram consideradas as seguintes propriedades E = 100, A = 1.0, L = 1 e
θ = π/12.
A figura 9 apresenta os resultados para a solução de Newton-Raphson convencional, considerando
um valor de R inferior ao ponto limite (R = 0.6), partindo da origem. Observa-se que o algoritmo é
capaz de acompanhar a curva com bastante precisão.
Já a figura 10 apresenta os resultados do Newton-Raphson convencional com um valor de carga
acima do ponto limite (R = 0.7). Observa-se que o método falha na iminência do ponto limite, divergindo e
sendo incapaz de acompanhar a curva, devido ao fenômeno de flambagem (ou nesse caso, snap-through),
onde há inversão súbita do carregamento. Nos dois casos anteriores, utilizou-se um fator de passo de
carregamento γ = 1/10.
Considerando o algoritmo com controle de incrementos através do método de Bergan, é possı́vel
seguir todo o caminho da curva, sem haver divergência nos dois pontos crı́ticos, conforme ilustrado na
figura 11. Observa-se que foi necessário utilizar um incremento bastante reduzido para se conseguir
acompanhar a curva (γ = 1/100).

21
Curva Força vs. Deslocamento
1.5

Força, R
0.5

−0.5

−1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

Deslocamento Vertical, δ

(a) (b)

Figura 8: Modelo de treliça sob compressão (a) e curva Força vs. Deslocamento (R × δ) (b).

Curva Força vs. Deslocamento − Metodo NR


1.5
Teórico
Aproximado por NR

0.5
Força, R

−0.5

−1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

Deslocamento Vertical, δ

Figura 9: Resultado obtido com Newton-Raphson.

22
Força vs. Deslocamento − Método NR
1.5
Teórico
Aproximado por NR

0.5
Força, R

−0.5

−1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
Deslocamento Vertical, δ

Figura 10: Resultado obtido com Newton-Raphson. Divergência no ponto limite - snap-through.

As listagens dos programas desenvolvidos em MATLAB para os exemplos que foram apresentados,
encontram-se no apêndice A.

6 Considerações Finais
No presente texto foi apresentada um breve revisão dos métodos existentes para a solução de
sistemas de equações algébricas não lineares.
Foram apresentados e discutidos os métodos baseados no algoritmo de Newton-Raphson e suas
variações como os métodos Newton-Raphson modificado e Quase-Newton com busca unidimensional pelo
método da Secante. Foram desenvolvidos os respectivos algorimos para implementação computacional
desses métodos.
Foi discutido também o problema de divergência desses algoritmos na iminência de singularidades
(pontos crı́ticos). A famı́lia clássica de métodos para o tratamento de pontos crı́ticos em sistemas não lin-
eares (métodos tipo arc-length) foi apresentada, discutindo-se suas principais caracterı́sticas e limitações.
Além dos métodos tipo arc-length, foi apresentado um método alternativo (método de Bergan), bem como
o seu algoritmo para solução numérica.
Os conceitos dos algoritmos foram aplicados computacionalmente, usando a linguagem MAT-
LAB, em um problema de flambagem de treliças (elementos de barra) considerando não linearidade
geométrica (grandes deslocamentos). Os resultados mostraram as caracterı́sticas de convergência do al-
goritmo Newton-Raphson, bem como sua falha na iminência de pontos limite, onde ocorreu o fenômeno
de snap-trhough. O algoritmo implementado, baseado no método de Bergan, foi capaz de ultrapassar os
pontos limite e seguir toda a curva força vs. deslocamento para o problema.
Finalmente, como foi amplamente discutido no texto, observa-se que os métodos existentes atual-

23
Força vs. Deslocamento − Método NR − Controle de Bergan
1.5
Teórico
Aproximado por Bergan

0.5
Força, R

−0.5

−1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
Deslocamento Vertical,δ

Figura 11: Resultado obtido com controle de incrementos pelo método de Bergan.

mente para a solução de sistemas de equações não lineares não são suficientemente gerais e capazes de
convergir em qualquer tipo de não linearidade. Deve-se sempre ter um conhecimento prévio do tipo de
problema a ser resolvido, para poder aplicar o método adequado de solução.

Referências
[1] Press, W. H. et al. Numerical Recipes in C: The art of scientific computing. Cambridge University
Press. 2nd Edition, 1992.
[2] Ruggiero, M. A. G., Lopes, V. L. R. Cálculo Numérico - Aspectos Teóricos e Computacionais.
McGraw-Hill, 1988.
[3] Zienkiewicz, O. C., Taylor, R.L. The Finite Element Method. Volume: 2. Butterworth Heinemann,
Fifith Edition, 2000.
[4] Felippa, C. A. Non Linear Finite Element Analysis. Course Notes. Dept. of Aerospace
Engineering Sciences. University of Colorado at Boulder, 2004. Disponı́vel on-line:
http : //caswww.colorado.edu/courses.d/nfem.d/home.html
[5] Crisfield, M.A. Non-Linear Finite Element Analysis of Solids and Structures, Vol. 1. John Wiley &
Sons, Chichester, 1991.
[6] Bazaraa, M.S. et al. Nonlinear Programing: Theory and Algorithms. 2nd Edition. John Wiley &
Sons, 1993.
[7] Luenberger, D. G. Linear and Nonlinear Programing. 1st Edition. Kluwer Academic Publishers,
1972.

24
[8] Hanselman, D., Littlefield, B. MATLAB - A Comprehensive Tutorial and Reference. Prentice-Hall,
Inc., 2001.
[9] Hellweg, H. -B., Crisfield, M.A. A new arc-length method for handling sharp snap-backs. Computers
& Structures, Vol. 66 No. 5, pp. 705-709, 1998.
[10] Memon, B.-A.,Su, X.-Z. Arc-length techinique for nolinear finite element analysis. Journal of Zhejiang
Science.5(5):618-628, 2004.
[11] Geers, M. G. D. Enhanced solution control for physically and geometrically non-linear problems. Part
I - The subplane control approach. International Journal for Numerical Methods in Engineering, v.46,
pp.177-204, 1999.
[12] Geers, M. G. D. Enhanced solution control for physically and geometrically non-linear problems. Part
II - Comparative performance analysis. International Journal for Numerical Methods in Engineering,
v.46, pp.205-230, 1999.
[13] Paulino, L. P. Método de Continuação Baseado em Programação Matemática na Mecânica Estrutural
Não-Linear. Dissertação de Mestrado. UNICAMP - Universidade Estadual de Campinas. Faculdade
de Engenharia Mecânica. Departamento de Mecânica Computacional. Campinas, 2004.
[14] Ferreira, J. V., Serpa, A. L. Application of the arc-length method in nonlinear frequency response.
Journal of Sound and Vibration, v. 284, pp. 133-149, 2005.
[15] Ragon, S. A. et al. A comparison of three algorithms for tracing nonlinear equilibrum paths for
structural systems. International Journal of Solids and Structures, v. 39, pp. 689-698, 2002.

25
A Listagens dos Programas em MATLAB
A seguir, têm-se as listagens dos programas em MATLAB que foram desenvolvidos.

A.1 Algoritmo de Newton-Raphson


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Rotina <nr.m>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;
%Ponto
X = 0;
%Forca interna
f = 0;
%Forca externa aplicada
fn = -0.7;
%Numero max de iteracoes
maxiter = 100;
dX = 0.0;
jac = 0.0;
phi = 0.0;
%Fator de mult. carregamento
gama = 0.1;
%Tolerancia
eps = 1e-12;
converg = 2*eps;
dlamb = 1;
kiter = 1;
%Incremento de carga
fs = gama*fn;
fstep = f;
kstep = 1;
%Armazenando variaveis para plotagem
vX(kstep) = X;
vF(kstep) = f;
%Iteracoes dos incrementos de carga
while (abs(fstep) < abs(fn)) ,
%Incrementando o carregamento
fstep = fstep + fs;
%Iteracoes de Newton-Raphson
while ((converg > eps) & (kiter <= maxiter)),
%Forca interna
f = func(X);
%Jacobiano
jac = jacob(X);
%Residuo
phi = fstep - f;
%Incremento
dX = jac\phi;
%Atualizando o ponto
X = X + dX;

26
%Teste de convergencia
if (norm(X)~=0),
converg = norm(dX)/norm(X);
else
converg = norm(phi)/norm(fn);
end
kiter = kiter + 1;
end
%Atualizando variaveis e salvando os resultados
kiter = 1;
converg = 2*eps;
vX(kstep + 1) = X;
vF(kstep + 1) = fstep;
kstep = kstep + 1;
end
%Plotando os resultados
Delta = linspace(0,0.6,10000);
R = func(Delta);
plot(Delta,-R);
hold on;
grid on;
plot(vX,-vF, ’r-o’);

A.2 Rotina para Cálculo da Função


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Rotina <func.m>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function f = func(X)
%Constantes e parametros auxiliares
E = 100.0; %Mod. elasticidade
Li = 1.0; %Comprimento inicial
A = 1.0; %Area das barras
Theta = pi/12; %Angulo com a horizontal
B = Li*cos(Theta); %Semi-comprimento do vao livre
H = Li*sin(Theta); %Altura inicial
Lf = (B^2 + (H - X).^2).^0.5; %Comprimento final

%Calculo da Funcao
f = 2*E*A*((Lf - Li)/Li).*(H - X)./Lf;

A.3 Rotina para Cálculo do Jacobiano


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Rotina <jacob.m>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function jac = jacob(X)
%Jacobiano de f(X) por diferencas finitas
eps = 1e-12;
jac = (func(X+eps) - func(X))/eps;

27
A.4 Algoritmo de Newton-Raphson com Controle de Bergan
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Rotina <nrberg.m>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;
%Ponto
X = 0;
%Forca interna
f = 0;
%Forca externa aplicada
fn = -0.7;
maxiter = 20;
dX = 0.0;
jac = 0.0;
phi = 0.0;
%Fator de mult. carregamento
gama = 0.01;
%Tolerancia
eps = 1e-12;
converg = 2*eps;
dlamb = 1;
kiter = 1;
%Incremento de carga
fs = gama*fn;
fstep = f;
kstep = 1;
vX(kstep) = X;
vF(kstep) = f;
slope = 1;
vSlp(kstep) = slope;
df = fs;
%Iteracoes para os incrementos de carga
while (abs(fstep) < abs(fn)) ,
%Incrementando o carregamento e verificando
%o final da carga e a mudanca de inclinacao
f_init = fstep;
if(slope < 0),
fs = -fs;
slope = 1;
end
fstep = fstep + fs;
if(abs(fstep) > abs(fn)),
fstep = fn;
end
%Iteracoes de Newton-Raphson
while ((converg > eps) & (kiter <= maxiter)),
%Forca interna
f = func(X);
%Jacobiano
jac = jacob(X);
%Residuo

28
phi = fstep - f;
%Incremento
dX = jacphi;
X = X + dX;
%Controle de Bergan
f = func(X);
dlamb = dot(fs,f)/dot(fs,fs);
fstep = dlamb*fs;
%Teste de convergencia
if (norm(X)~=0),
converg = norm(dX)/norm(X);
else
converg = norm(phi)/norm(fn);
end
kiter = kiter + 1;
end
%Atualizando variaveis e salvando os resultados
kiter = 1;
converg = 2*eps;
f_fin = fstep;
vX(kstep + 1) = X;
df_aux = df;
df = f_fin - f_init;
slope = df_aux*df/abs(df_aux*df);
vF(kstep + 1) = fstep;
vdF(kstep) = df;
vSlp(kstep) = slope;
kstep = kstep + 1;
end
vdF(kstep) = 0;
vSlp(kstep) = slope;
Delta = linspace(0,0.6,10000);
R = func(Delta);
plot(Delta,-R);
hold on;
grid on;
plot(vX,-vF, ’r-o’);

29

You might also like