SORU
6 EKİM 2009, Salı


sublinear sayı n'inci fibonacci zaman

Alt doğrusal zamanda n'inci fibonacci sayısını hesaplamak için bir algoritma var mı?

CEVAP
6 EKİM 2009, Salı


Pillsy aşağıdaki matris üs alma, matris için böyle bir referans yok

M = [1 1] 
    [1 0] 

fib(n) = Mn1,2

Güçler tekrarlanan çarpma kullanarak matris yetiştirmek çok verimli değil.

Matris üs için iki yaklaşım böl ve fethet verirMn. ben^>Ç( . ben^>n lnsabit), ama hataları sınırlı kayan nokta hassas. nedeniyle tanıtabilir hangi adımları, ya da n-boyutlu ayrışma

Eğer tam bir kayan nokta değeri uygulamanız hassasiyetle daha büyük isterseniz, (ln n ) yaklaşımı bu ilişkinin temelinde kullanmak zorunda:

Mn = (Mn/2)2 if n even
   = M.Mn-1 if n is odd

Öz değeri az parçalanmaMbulur iki matrisiUveΛbu . böyle ^b>Λçapraz ve

 M  = U Λ U-1 
 Mn = ( U Λ U-1) n
    = U Λ U-1 U Λ U-1 U Λ U-1 ... n times
    = U Λ Λ Λ ... U-1 
    = U Λ n U-1 
Köşegen bir matris yetiştirmekΛiçin . ben^>nth güç her elemanı yetiştirme basit bir mesele değildirΛiçin . ben^>ninci, bu yetiştirme(1) O bir yöntem verirMiçin . ben^>ninci güç. Ancak, değerleriΛtamsayılar olmak değil, büyük olasılıkla bazı hatalar ortaya çıkar.

TanımlamaΛ2x2 matrisi için

Λ = [ λ1 0 ]
  = [ 0 λ2 ]

Her bulmak içinλbiz çözmek

 |M - λI| = 0
hangi verir
 |M - λI| = -λ ( 1 - λ ) - 1

λ² - λ - 1 = 0

kuadratik formül kullanarak

λ    = ( -b ± √ ( b² - 4ac ) ) / 2a
     = ( 1 ± √5 ) / 2
 { λ1, λ2 } = { Φ, 1-Φ } where Φ = ( 1   √5 ) / 2

Eğer Jason cevabı okuduysanız eğer, bunun nereye gittiğini nerede olduğunu görebilirsiniz.

Bu öz vektörleri için çözmeX1veX2:

if X1 = [ X1,1, X1,2 ]

 M.X1 1 = λ1X1

 X1,1   X1,2 = λ1 X1,1
 X1,1      = λ1 X1,2

=>
 X1 = [ Φ,   1 ]
 X2 = [ 1-Φ, 1 ]

Bu vektörler verinU:

U = [ X1,1, X2,2 ]
    [ X1,1, X2,2 ]

  = [ Φ,   1-Φ ]
    [ 1,   1   ]

Tersine çevirmeUkullanarak

A   = [  a   b ]
      [  c   d ]
=>
A-1 = ( 1 / |A| )  [  d  -b ]
                   [ -c   a ]

bu yüzdenU-1tarafından . verilir

U-1 = ( 1 / ( Φ - ( 1 - Φ ) )  [  1  Φ-1 ]
                               [ -1   Φ  ]
U-1 = ( √5 )-1  [  1  Φ-1 ]
               [ -1   Φ  ]

Akıl sağlığını kontrol edin:

UΛU-1 = ( √5 )-1 [ Φ   1-Φ ] . [ Φ   0 ] . [ 1  Φ-1 ] 
                     [ 1   1  ]   [ 0  1-Φ ]   [ -1   Φ ]

let Ψ = 1-Φ, the other eigenvalue

as Φ is a root of λ²-λ-1=0 
so  -ΨΦ = Φ²-Φ = 1
and Ψ Φ = 1

UΛU-1 = ( √5 )-1 [ Φ   Ψ ] . [ Φ   0 ] . [  1  -Ψ ] 
                 [ 1   1 ]   [ 0   Ψ ]   [ -1   Φ ]

       = ( √5 )-1 [ Φ   Ψ ] . [ Φ   -ΨΦ ] 
                 [ 1   1 ]   [ -Ψ  ΨΦ ]

       = ( √5 )-1 [ Φ   Ψ ] . [ Φ    1 ] 
                 [ 1   1 ]   [ -Ψ  -1 ]

       = ( √5 )-1 [ Φ²-Ψ²  Φ-Ψ ] 
                  [ Φ-Ψ      0 ]

       = [ Φ Ψ   1 ]    
         [ 1     0 ]

       = [ 1     1 ] 
         [ 1     0 ]

       = M 

Akıl sağlığını kontrol tutar.

Şimdi hesaplamak için ihtiyacımız olan her şey varM. ben^>n1,2:

Mn = UΛnU-1
   = ( √5 )-1 [ Φ   Ψ ] . [ Φn  0 ] . [  1  -Ψ ] 
              [ 1   1 ]   [ 0   Ψn ]   [ -1   Φ ]

   = ( √5 )-1 [ Φ   Ψ ] . [  Φn  -ΨΦn ] 
              [ 1   1 ]   [ -Ψn   ΨnΦ ]

   = ( √5 )-1 [ Φ   Ψ ] . [  Φn   Φn-1 ] 
              [ 1   1 ]   [ -Ψnn-1 ] as ΨΦ = -1

   = ( √5 )-1 [ Φn 1n 1      Φnn ]
              [ Φnn      Φn-1n-1 ]

bu yüzden

 fib(n) = Mn1,2
        = ( Φn - (1-Φ)n ) / √5

Formülü başka bir yerde verilen katılıyor.

Sen ortaklıkları ondan tekrarın ilişki, ama mühendislik hesaplama ve simülasyon hesaplama özdeğerler ve öz büyük matrislerin önemli bir aktivite olarak verir istikrar ve harmonikler sistemleri denklemleri yanı sıra, izin yetiştirme matrisleri için yüksek güçler etkili.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • arnejann

    arnejann

    3 Kasım 2007
  • EatingIn

    EatingIn

    12 EKİM 2013
  • Garrett Müller

    Garrett Mül

    26 HAZİRAN 2009

İLGİLİ SORU / CEVAPLAR