Strategi untuk Metode Newton ketika Jacobian pada solusinya adalah tunggal

12

Saya mencoba memecahkan sistem persamaan berikut untuk variabel dan x 2 (semuanya adalah konstanta):P,x1x2

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

Saya dapat melihat bahwa saya dapat mengubah sistem persamaan ini menjadi persamaan tunggal dari variabel tunggal dengan menyelesaikan persamaan 1 dan 2 untuk masing-masing x 1 dan x 2 dan menggantikannya menjadi persamaan 3. Dengan demikian, saya dapat gunakan perintah matlab untuk menemukan solusinya. Dengan menggunakan parameter k 1 = k 2 = 1 , r 1 = r 2 = 0,2 , dan A = 2 , saya menemukan solusi sebenarnya adalah P = x 1 = x(P)x1x2fzerok1=k2=1r1=r2=0.2A=2 .P=x1=x2=0.5

Namun, ketika saya menggunakan metode newton yang diterapkan pada sistem persamaan 3 variate - 3 asli, iterasi tidak pernah menyatu dengan solusi, tidak peduli seberapa dekat saya mulai dengan solusi yang benar . x=(P,x1,x2)=(0.5,0.5,0.5)

Pada awalnya, saya mencurigai ada bug dalam penerapan metode newton. Setelah memeriksa beberapa kali, saya tidak menemukan bug. Kemudian saya mencoba menggunakan tebakan awal , dan lihatlah: Jacobian adalah singular. Saya tahu bahwa seorang jacobian tunggal dapat mengurangi urutan konvergensi, tetapi saya tidak berpikir itu mencegah konvergensi dengan solusi yang benar. x0=x

Jadi, pertanyaan saya adalah, Mengingat bahwa jacobian sistem pada solusi yang sebenarnya adalah tunggal:

  1. Kondisi lain apa yang diperlukan untuk membuktikan bahwa metode newton tidak akan menyatu dengan root?

  2. Akankah strategi globalisasi (mis. Pencarian garis) menjamin konvergensi terlepas dari jacobian tunggal?

Paul
sumber

Jawaban:

4

(1): Ini tergantung pada perilaku turunan Jacobian (sic!) Di ruang nol Jacobian pada solusinya. Dalam praktiknya, tidak ada yang menghitung turunan ini, dan saya bahkan tidak repot-repot mengingat kondisi yang tepat.

(2) berfungsi, meskipun konvergensi hanya linier.

Untuk mendapatkan konvergensi superlinear (setidaknya dalam sebagian besar kasus), seseorang dapat menggunakan metode tensor. Lihat, misalnya,
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
sumber
3

Alih-alih pencarian baris, Anda bisa mencoba memodifikasi metode Newton Anda ke algoritma Levenberg-Marquardt . Implementasinya cukup sederhana jika Anda menggunakan Matlab.

Leo Uieda
sumber