Kerugian dari pendekatan Newton-Raphson dengan perkiraan turunan numerik

17

Misalkan saya memiliki beberapa fungsi f dan saya ingin mencari sedemikian rupa sehingga . Saya mungkin menggunakan metode Newton-Raphson. Tapi ini mengharuskan saya tahu fungsi turunan . Ekspresi analitik untuk mungkin tidak tersedia. Sebagai contoh, dapat didefinisikan oleh sepotong kode komputer yang rumit yang berkonsultasi dengan basis data nilai eksperimental.f ( x ) 0 f ( x ) f fxf(x)0f(x)ff

Tetapi bahkan jika rumit, saya dapat memperkirakan untuk tertentu dengan memilih sejumlah kecil dan menghitung .f ( a ) a ϵ f ( a ) f ( a + ϵ ) - f ( a )ff(Sebuah)Sebuahεf(Sebuah)f(Sebuah+ε)-f(Sebuah)ε

Saya telah mendengar bahwa ada beberapa kelemahan dari pendekatan ini, tetapi saya tidak tahu apa itu. Wikipedia mengisyaratkan bahwa "Menggunakan perkiraan ini akan menghasilkan sesuatu seperti metode garis potong yang konvergensinya lebih lambat daripada metode Newton."

Dapatkah seseorang tolong uraikan hal ini, dan berikan referensi yang secara khusus membahas masalah dengan teknik ini?

Mark Dominus
sumber
5
Metode garis potong adalah alternatif yang sangat baik ketika turunannya mahal untuk dihitung. Tiga langkah garis potong umumnya kira-kira setara dengan dua langkah Newton, dan langkah lebih murah.
1
Setiap kali Anda menghitung turunan secara numerik dengan selisih terbatas (seperti yang Anda sarankan), setiap derau dalam fungsi diperkuat, jadi Anda harus memilih epsilon dengan hati-hati. Salah satu kemungkinan adalah, ketika Anda mendekati solusi, beralih ke metode pembagian biner, yang dijamin akan menyatu selama f adalah monoton lokal.
Mike Dunlavey
2
Seperti disebutkan oleh André, turunan numerik dua titik, seperti yang Anda sarankan, setara dengan metode Secant yang dimulai kembali . Untuk konvergensi yang lebih cepat, saya akan menyarankan apa yang disebut algoritma Illinois , yang merupakan kerabat dekat dari metode Secant dan hanya akan menggunakan satu titik per langkah, sebagai lawan dua dalam kasus Anda, dan tidak akan macet seperti Metode posisi salah.
Pedro
Apa dimensi ? Semakin tinggi dimensinya, semakin bernilai turunannya. Newton-Krylov yang bebas Jacobian adalah opsi yang tidak memerlukan turunan eksplisit (meskipun prasyarat penting untuk sistem yang dikondisikan dengan buruk). x
Jed Brown

Jawaban:

12

Demi notasi, anggaplah (yaitu, ini adalah fungsi bernilai vektor yang mengambil vektor sebagai input dan menghasilkan vektor dengan ukuran yang sama). Ada dua masalah: biaya komputasi dan akurasi numerik.f:RnRn

Menghitung turunan (matriks Jacobian, J ( x ) , atau ( f ( x ) ) T , atau apapun yang Anda suka) menggunakan perbedaan terbatas akan membutuhkan n evaluasi fungsi. Jika Anda dapat menghitung turunan menggunakan aritmatika titik mengambang langsung dari definisi, Anda harus menghitung hasil bagi selisihDf(x)J(x)(f(x))Tn

Df(x)esaya=limε0f(x+εesaya)-f(x)ε

untuk setiap , dengan asumsi Anda tidak melakukan apapun "terbatas pintar differencing" (seperti Curtis-Powell-Reid) karena Anda tahu (atau dapat mendeteksi) pola sparsity dari D f . Jika n besar, itu bisa menjadi banyak evaluasi fungsi. Jika Anda memiliki ekspresi analitis untuk D f , maka perhitungan itu bisa lebih murah. Otomatis (juga dikenal sebagai algoritmik) metode diferensiasi juga dapat digunakan dalam beberapa kasus untuk menghitung D f pada kira-kira 3 sampai 5 kali biaya evaluasi fungsi.saya=1,...,nDfnDfDf

Ada juga kekhawatiran numerik. Jelas, di komputer, kita tidak bisa mengambil batas skalar karena pergi ke nol, jadi ketika kita perkiraan , kita benar-benar memilih ε menjadi "kecil" dan menghitungDfε

Df(x)esayaf(x+εesaya)-f(x)ε,

di mana berarti perkiraan, dan kami harap ini perkiraan yang benar-benar bagus. Menghitung perkiraan ini dalam aritmatika floating point sulit karena jika Anda memilih ε terlalu besar, perkiraan Anda bisa buruk, tetapi jika Anda memilih ε terlalu kecil, mungkin ada kesalahan pembulatan yang signifikan. Efek-efek ini tercakup dalam artikel Wikipedia tentang diferensiasi numerik dalam detail yang dangkal; referensi yang lebih rinci dapat ditemukan dalam artikel.εε

Jika kesalahan dalam Jacobian matriks tidak terlalu besar, Newton-Raphson iterasi akan bertemu. Untuk analisis teoretis terperinci, lihat Bab 25 tentang Keakuratan dan Stabilitas Algoritma Angka oleh Nick Higham , atau makalah dari Françoise Tisseur yang menjadi dasarnya .Df

Perpustakaan umumnya menangani perincian algoritmik ini untuk Anda, dan biasanya, implementasi perpustakaan dari algoritma Newton-Raphson (atau varian-varian daripadanya) akan menyatu dengan cukup baik, tetapi seringkali, akan ada masalah yang menyebabkan beberapa masalah karena kekurangannya. atas. Dalam kasus skalar , saya akan menggunakan metode Brent , karena kekokohan dan tingkat konvergensi yang baik dalam praktiknya.(n=1)

Geoff Oxberry
sumber