Gösterim amacıyla, diyelim ki (yani, bir vektörü girdi olarak alan ve aynı boyutta bir vektörü çıkaran vektör değerli bir işlev). İki endişe vardır: hesaplama maliyeti ve sayısal doğruluk.f:Rn→Rn
Sonlu farklar kullanarak (Jacobian matrisi, J ( x ) veya ( ∇ f ( x ) ) T türevini veya tercih ettiğiniz her şeyi) türevinin hesaplanması n fonksiyon değerlendirmesi gerektirecektir . Türevi doğrudan tanımdan kayan nokta aritmetiği kullanarak hesaplayabiliyorsanız, fark katsayısını hesaplamanız gerekir.Df(x)J(x)(∇f(x))Tn
Df(x)ei=limε→0f(x+εei)−f(x)ε
Her biri için , sen kıtlık deseni bildiğiniz (veya algılayabilir) çünkü (Curtis-Powell-Reid gibi) "akıllı sonlu fark kayıt" herhangi bir tür yapmayın varsayarak D f . Eğer n büyük, o işlev değerlendirmelerin çok olabilir. İçin analitik ifade varsa D f , o zaman daha ucuz olabilir hesaplanması. Farklılaşma yöntemleri (algoritmik olarak da bilinir) otomatik de hesaplamak için bazı durumlarda kullanılabilir D f bir işlev değerlendirme yaklaşık 3 ila 5 katı pahasına.i=1,…,nDfnDfDf
Sayısal kaygılar da var. Sıfır gider olarak Açıkçası, bir bilgisayarda, böylece biz yaklaşık ne zaman, bir büyüklük sınırı alamaz , gerçekten alıyoruz ε "küçük" olması ve hesaplamaDfε
Df(x)ei≈f(x+εei)−f(x)ε,
burada bu bir yaklaşıklama anlamına gelir ve umarım bu gerçekten iyi bir yaklaşımdır. Kayar nokta aritmetik bu tahminini hesaplanması sen seç çünkü eğer zor ε çok büyük, senin yaklaştırma kötü olabilir, ama eğer seçerseniz ε çok küçük, önemli yuvarlama hatası söz konusu olabilir. Bu etkiler, yüzeysel detaylarda sayısal farklılaşma hakkındaki Wikipedia makalesinde ele alınmıştır ; makalede daha ayrıntılı referanslar bulunabilir.≈εε
Jakobiyen matris hata durumunda çok büyük değildir, Newton Raphson yineleme yakınsar. Ayrıntılı bir teorik analiz için, Nick Higham'ın Sayısal Algoritmalarının Doğruluğu ve Kararlılığı başlıklı Bölüm 25'e veya dayandığı Françoise Tisseur'un makalesine bakınız .Df
(n=1)