Estratégias para o método de Newton quando o jacobiano na solução é singular

12

Estou tentando resolver o seguinte sistema de equações para as variáveis e x 2 (todos os demais são constantes):P,x1x2

A(1P)2k1x1=0AP2k2x2=0(1P)(r1+x1)4L1P(r1+x2)4L2=0

Percebo que posso transformar esse sistema de equações em uma única equação de uma única variável resolvendo as equações 1 e 2 para x 1 e x 2 respectivamente e substituindo-as na equação 3. Ao fazer isso, sou capaz de use o comando matlab para encontrar a solução. Usando os parâmetros k 1 = k 2 = 1 , r 1 = r 2 = 0,2 e A = 2 , achei a solução verdadeira P = x 1 = x(P)x1x2fzerok1=k2=1r1=r2=0.2A=2 .P=x1=x2=0.5

No entanto, quando uso o método de newton aplicado ao sistema de equações 3 variável - 3 original, as iterações nunca convergem para a solução, não importa o quão perto eu comece da solução verdadeira . x=(P,x1,x2)=(0.5,0.5,0.5)

No começo, suspeitei de um erro na implementação do método de newton. Depois de verificar várias vezes, não encontrei nenhum bug. Então tentei usar um palpite inicial e eis que o jacobiano é singular. Sei que um jacobiano singular pode reduzir a ordem da convergência, mas não acho que isso impeça necessariamente a convergência para a verdadeira solução. x0=x

Então, minha pergunta é: Dado que o jacobiano do sistema na verdadeira solução é singular:

  1. Que outras condições são necessárias para provar que o método de Newton não convergirá para a raiz?

  2. Uma estratégia de globalização (por exemplo, busca de linha) garantiria convergência, apesar do jacobiano singular?

Paulo
fonte

Respostas:

4

(1): Isso depende do comportamento dos derivados do jacobiano (sic!) No espaço nulo do jacobiano na solução. Na prática, ninguém calcula essas derivadas e nem me importei em lembrar as condições precisas.

(2) funciona, embora a convergência seja apenas linear.

Para obter convergência superlinear (pelo menos na maioria dos casos), pode-se usar métodos tensores. Veja, por exemplo,
https://cfwebprod.sandia.gov/cfdocs/CCIM/docs/SAND2004-1944.pdf
http://www.jstor.org/stable/10.2307/2156931
http://www.springerlink.com/ index / X5G827367G548327.pdf

Arnold Neumaier
fonte
3

Em vez de uma pesquisa de linha, você pode tentar modificar o método de Newton para o algoritmo de Levenberg-Marquardt . A implementação é bastante simples se você estiver usando o Matlab.

Leo Uieda
fonte