Algorytm Shaw–Trauba Niech dany będzie wielomian w(x) = x3 +

Transkrypt

Algorytm Shaw–Trauba Niech dany będzie wielomian w(x) = x3 +
Algorytm Shaw–Trauba
Niech dany będzie wielomian w(x) = x3 +2x2 +x−2. Wyznaczyć wartość wielomianu
w punkcie p = 2 oraz wartości w0 (2) i w00 (2).
Skorzystamy z algorytmu Shaw–Trauba. Mając wielomian w(x) w postaci naturalnej
n
X
w(x) =
ak x k
k=0
stopnia n i szukając wartości kolejnych pochodnych w punkcie p 6= 0 definiujemy (po
znalezieniu n + 1 = tq) dwie funkcje
(
s(j) = (n − j) mod q
r(j) =
0, j mod q 6= 0
q, j mod q = 0
j = 0, . . . , n
oraz ciąg rekurencyjny według następujących reguł
Ti−1 = an−i−1 · p
s(i+1)
Tii = an · p
i = 0, . . . , n − 1
k−1
k
Tik = Ti−1
+ Ti−1
·p
r(i−k)
gdzie m oznacza, że szukamy wartości w
Tnk =
s(0)
i = 0, . . . , n
k = 0, . . . , m i = k + 1, . . . , n
(m)
(p). Wówczas zachodzi wzór
w(k) (p)
·p
k!
k mod q
W naszym przypadku mamy n = 3, p = 2, a3 = 1, a2 = 2, a1 = 1, a0 = −2.
Ponadto niech n + 1 = 4 = 2 · 2, a więc q = 2.
j
0 1 2 3
s(j) 1 0 1 0
T0−1 = a3−0−1 · 2
s(0+1)
Wartość
T1−1 = a1 · 21 = 2
= a2 · 20 = 2
T00 = a3 · 21 = 2
j
0 1 2 3
r(j) 2 0 2 0
T10 = T0−1 + T00 · 2
T20 = T1−1 + T10 · 2 r(2−0) = 18
T30 jest podstawą do wyznaczenia
T30
=
T2−1
+
T2−1 = a0 · 20 = −2
r(1−0)
=4
T20
r(3−0)
·2
= 16
wartości wielomianu w punkcie 2
w(0) (2)
· 2 0 mod 2 ⇒ w(2) = 16
0!
Teraz wyznaczymy wartość w0 (2). Oczywiście T11 = T00 = 2
T30 =
T21 = T10 + T11 · 2
r(1)
= 4 + 2 · 20 = 6
T31 = T20 + T21 · 2
r(2)
= 18 + 6 · 22 = 42
Podobnie jak wcześniej wyznaczamy
w(1) (2)
· 2 1 mod 2 ⇒ w0 (2) = 21
1!
Pozostaje jeszcze obliczyć w00 (2). Mamy T22 = T00 = 2 oraz
T31 =
T32 = T21 + T22 · 2
I ostatecznie
T32 =
w(2) (2)
·2
2!
r(1)
2 mod 2
= 6 + 2 · 20 = 8
⇒
w00 (2) = 16
GRZEGORZ GIERLASIŃSKI