Stratégies pour la méthode de Newton lorsque le jacobien à la solution est singulier

12

J'essaie de résoudre le système d'équations suivant pour les variables et x 2 (toutes les autres sont des constantes):P,x1x2

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

Je peux voir que je peux transformer ce système d'équations en une seule équation d'une seule variable en résolvant respectivement les équations 1 et 2 pour x 1 et x 2 et en les remplaçant par l'équation 3. Ce faisant, je suis capable de utilisez la commande de matlab pour trouver la solution. En utilisant les paramètres k 1 = k 2 = 1 , r 1 = r 2 = 0,2 et A = 2 , j'ai trouvé que la vraie solution était P = x 1 = x(P)x1x2fzerok1=k2=1r1=r2=0.2A=2 .P=x1=x2=0.5

Cependant, lorsque j'utilise la méthode de newton appliquée au système d'équation 3 variate - 3 original, les itérations ne convergent jamais vers la solution, peu importe à quel point je commence à la vraie solution . x=(P,x1,x2)=(0.5,0.5,0.5)

Au début, je soupçonnais mon bug dans mon implémentation de la méthode de newton. Après avoir vérifié plusieurs fois, je n'ai trouvé aucun bug. Ensuite, j'ai essayé d'utiliser une supposition initiale , et voici: le jacobien est singulier. Je sais qu'un jacobien singulier peut réduire l'ordre de convergence, mais je ne pense pas qu'il empêche nécessairement la convergence vers la vraie solution. x0=x

Donc, ma question est, étant donné que le jacobien du système à la vraie solution est singulier:

  1. Quelles autres conditions sont nécessaires pour prouver que la méthode de newton ne convergera pas vers la racine?

  2. Une stratégie de mondialisation (par exemple la recherche en ligne) garantirait-elle la convergence malgré le jacobien singulier?

Paul
la source

Réponses:

4

(1): Cela dépend du comportement des dérivées du jacobien (sic!) Dans l'espace nul du jacobien à la solution. En pratique, personne ne calcule ces dérivées, et je n'ai même pas pris la peine de me souvenir des conditions précises.

(2) fonctionne, bien que la convergence ne soit que linéaire.

Pour obtenir une convergence superlinéaire (au moins dans la majorité des cas), on peut utiliser des méthodes tensorielles. Voir, par exemple,
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
la source
3

Au lieu d'une recherche de ligne, vous pouvez essayer de modifier la méthode de votre Newton pour l' algorithme de Levenberg-Marquardt . L'implémentation est assez simple si vous utilisez Matlab.

Leo Uieda
la source