Professional Documents
Culture Documents
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
6 Considerações Finais 23
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
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.
df (x0 ) 2 (2)
f (x) ≡ f (x0 + δx) = f (x0 ) + δx + O2 (|δx| ),
dx
2
(a) (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
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 ).
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 > ε
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 > ε
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.
5
Figura 2: Processo iterativo de Newton-Raphson.
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
(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.
(12)
[K({u})]{u} = {f }.
Assumindo que o sistema esteja em equilı́brio para um dado par ({u}, {f }), tem-se que
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
(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.
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.
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
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:.
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.
• 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);
10
próximas seções serão aprsentados alguns desses métodos que visam contornar algumas das dificuldades
do Newton-Raphson convencional.
(a) (b)
(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
12
• Método DFP (Davidon, Fletcher e Powell, 1959-1963)
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 );
α
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.
{∆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
14
Figura 4: Método da Secante.
{∆u}
g0 ≡ g(α0 ) = {ψ({u}0)}T
k{∆u}k
gin = g0
(α1 − α0 )
α2 = α0 − g0
g1 − g0
• 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
15
• Caso contrário, α∗ deve estar no intervalo [α2 , α1 ] fazer α0 = α2 e g0 = g2 .
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%).
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.
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
(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)
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.
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.
{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:
Observações:
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.
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).
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, δ
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.
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’);
%Calculo da Funcao
f = 2*E*A*((Lf - Li)/Li).*(H - X)./Lf;
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