Implementasi Algoritma Turan
Untuk Menentukan Nilai Aproksimasi
Pada Proses Mencari Akar-akar Polinomial
Supriono Choirul Imron Bandung Arry SanjoyoJurusan Matematika
Institut Teknologi Sepuluh Nopember (ITS) Surabaya Kampus ITS Sukolilo Surabaya 60111
Email:[email protected]
Abstraks
Proses untuk menentukan n akar dari persamaan polinomial derajat n yang dikembangkan oleh Herman Weyl membutuhkan sebuah inputan berupa bujur sangkar. Bujur sangkar awal tersebut akan mengalami proses penyempitan sampai diperoleh aproksimasi akar-akar dari persamaan polinomial. Pada proses penyempitan bujur sangkar tersebut tentunya membutuhkan algoritma lain dalam hal ini digunakan algoritma Turan. Algoritma Turan adalah algoritma untuk mencari aproksimasi jarak terdekat antara sebuah titik dengan akar-akar polinomial. Pada proses menentukan nilai aproksimasi dibutuhkan langkah-langkah translasi polinomial, membentuk polinomial balikan, membentuk polinomial monik, iterasi Graeffe kemudian mencari nilai maksimum. Invers dari nilai maksimum adalah merupakan nilai Turan. Dari percobaan numerik dapat disimpulkan bahwa semakin banyak iterasi yang dilakukan maka nilai Turan konvergen ke satu.
Kata kunci: polinomial, iterasi Graeffe, algoritma Turan
1. PENDAHULUAN
Input dari algoritma Weyl pada proses menentukan akar-akar polionomial derajat tinggi adalah sebuah bujur sangkar, koefisien polinomial, dan banyaknya iterasi. Bujur sangkar awal tersebut akan mengalami proses penyempitan sampai diperoleh aproksimasi akar-akar polinomial. Dalam proses penyempitan bujur sangkar tersebut digunakan algoritma Turan.
Dalam penelitian ini dikaji algoritma Turan dan bagaimana implementasinya untuk mencari nilai aproksimasi. Proses kerja algoritma Turan membutuhkan inputan berupa koefisien polinomial, derajat polinomial, sebuah bilangan sebagai faktor translasi, dan banyaknya iterasi. Iterasi yang digunakan algoritma Turan adalah iterasi Graeffe.
Nilai aproksimasi yang diperoleh dari algoritma Turan digunakan untuk proses penyempitan bujur sangkar pada algoritma Weyl.
2. Persamaan Polinomial
Jika n adalah bilangan bulat tak negatif dan p0,
p1, ..., pn ∈ R adalah konstanta, maka persamaan
Pn(x) = p0 + p1x + p2x2 + ... + pnxn,
p
n≠
0
disebutpolinomial real dengan pn disebut leading coefficient.
Jika pn = 1, maka Pn(x) disebut polinomial monik.
Bilangan
z
∈
C
disebut akar dari Pn(x) jika Pn(z) =0.
Teorema 2.1 (Teorema Dasar Aljabar)[4]
Jika Pn(x) = p0 + p1x + p2x2 + ... + pnxn,
0
≠
n
p
adalah polinomial real berderajat n>0,maka terdapat sebuah bilangan kompleks
z
sedemikian sehingga Pn( )
z =0. Teorema 2.2: Jika Pn(x) = p0 + p1x + p2x2 + ... + pnxn,0
≠
np
adalah polinomial real berderajatn
≥
1
, dan misalkan z1, adalah akar dari Pn( )
x , maka terdapat polinomial Pn−1( )
x berderajat n – 1 sedemikian sehingga Pn( ) (
x = x−z1) ( )
Pn−1 x . Teorema 2.3: Setiap polinomial( )
n n n x p px p x P = 0+ 1 +...+dengan derajat tertinggi n dan p0,p1,K,pn∈R di mana pn ≠0dapat dituliskan sebagai perkalian dari
faktor-faktor linear, dalam bentuk
( ) (
x x z)(
x z) (
x z) ( )
P x Pn = − 1 − 2 ... − n 0( ) (
∏
)
= − = n i i z x x P 1 0dengan
z
i adalah akar-akar dariP
n( )
x
untuki
= 1, 2, 3, …, n.3. Algoritma Turan
Algoritma Turan adalah algoritma untuk memperoleh aproksimasi jarak antara sebarang bilangan C ∈
C
yang di berikan, dengan akar dari( )
xPn yang terdekat dengan C. Algoritma Turan ini digunakan dalam algoritma Weyl dalam proses penyempitan bujur sangkar. Pada bagian ini akan diterangkan tentang definisi, proposisi dan teorema yang merupakan konsep dasar dari algoritma Turan,
juga akan diberikan langkah–langkah dari algoritma Turan.
Definisi 3.1 (Root Radii dan Radius Akar)[7]:
Diberikan polinomial
P
n( )
x
yang memiliki n buah akar dan sebarang titik C∈C. Root Radii dari pada C adalah n buah jarak dari titik C ke setiap n buah akar dariP
n( )
x
dengan sifat r1(C) ≥r2(C) ≥ … ≥ rn(C) dan rs(C) disebut radius (jarak) akar ke-s dari
P
n( )
x
pada titik C.Proposisi 3.2
Jika z1,z2,…,zn adalah akar-akar dari polinominal
P
n( )
x
, Tn(x) adalah polinomialtranslasi dari
P
n( )
x
sejauh C dan Bn(x) adalahpolinomial balikan dari
P
n( )
x
maka :1. zi – C adalah akar dari Tn(x) = Pn(x + C)
2.
i
z
1
adalah akar-akar dari Bn(x) = xn
⎟
⎠
⎞
⎜
⎝
⎛
x
P
n1
untuk i = 1,2,…,n Proposisi 3.3Jika rs(C) adalah jarak akar ke-s dari
( )
x
P
n pada titik C dan *( )
0
s
r
adalah jarak akar ke-s dari Tn(x) = Pn(x + C) pada titik 0 makaberlaku:
a. rs(C) dari
P
n( )
x
sama denganr
s*( )
0
dari( )
x
P
(
x
C
)
T
n=
n+
b.)
0
(
1
sr
dariP
n( )
x
sama dengan r(n + 1- s)(0) dari polinom balikan Bn(x) = xnPn⎟
⎠
⎞
⎜
⎝
⎛
x
1
c.)
(
1
C
r
n dariP
n( )
x
sama dengan r1(0) dari Bn(x)= xnT n
⎟
⎠
⎞
⎜
⎝
⎛
x
1
Definisi 3.4 (Iterasi Graeffe)
Diberikan polinomial monik
P
n( )0 (x) = p0+ p1x + p2x2 + … + pnxn.
Iterasi Graeffe didefinisikan secara rekursif sebagai
( )v+1
n
P
= (-1)n pv
( )
−
x
.pv( )
x
, v = 0, 1, 2, …Proposisi 3.5
Diberikan polinomial real
P
n( )0 dan lakukan iterasi Graeffe( )v n
P
= (-1)n pv-1
( )
−
x
pv-1( )
x
, v = 1, 2, …, h.Pada iterasi ke-h diperoleh polinomial
P
n( )h (x) =n i=1 ∏
(
h)
i z x− 2 dengan zi adalah akar-akar dari Pn(x)
Teorema 3.6 (Identitas Newton)[5] Jika
P
n( )
x
= xn + pn-1xn-1 + … + p0 adalah polinomial monik dengan akar-akar zj untuk j =
1,2,…,n
Definisikan Sk = kj n j=1
z
∑
, maka akan berlaku identitas Newton berikut :Sk + pn-1Sk-1 + ...+p0Sk-n = 0 , (k > n)
Sk + pn-1Sk-1 + … +pn-k+1S1 = -kpn-k , (1≤ k ≤ n)
Teorema 3.7[10]
Untuk sebarang bilangan kompleks
(
ξ
1,...,
ξ
n)
dengan gmax
=1,...,nξ
g = 1 berlakupertidaksamaan 5 1 ... max 1 1 ,...., 1 ⎟ > ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ + + = g g n g n g n
ξ
ξ
Teorema 3.8 JikaP
n( )
x
= p0 + p1x + . . .+ pnxn = 0 dengan z1, z2, . . ., zn adalah akar- akar dariP
n( )
x
.Jika SgN = gNj
n j=1
z
∑
dengan g = 1,. . .,n dan N adalah bilangan asli. Maka berlaku pertidaksamaan( )
N gN gN n g n S r 1 1 ,..., 1 1 5 max 0 1≤ ≤ =Algoritma Turan membutuhkan tiga input yaitu: koefisien dari Pn(x), sebarang bilangan real C
dan sebarang bilangan asli N (log 2N adalah jumlah iterasi maksimum iterasi Graeffe).
Langkah-langkah dari Algoritma Turan adalah sebagai berikut:
Langkah 1 : Lakukan translasi polinomial Tn
( )
x =Pn(
x+C)
0 1 ... ' n nx q x q q + + + =kemudian bentuk polinomial balikan dari Tn(x) yaitu
⎟ ⎠ ⎞ ⎜ ⎝ ⎛ = x T x x Bn n n 1 ) ( =q xn+q xn−1+...+qn 1 0
Langkah 2 :Bentuk polinomial monik 0 ) ( ) ( q x B x M n n =
G
n( )1(
x
)
=
(
−
1
)
nt
i−1(
x
)
t
i−1(
−
x
),
N
h
h
i
2log
,...,
1
=
=
sehingga pada iterasi ke-h diperoleh
∏
=−
=
n i N i h nx
x
x
G
1)
(
)
(
=
t
0,h+
t
1,hx
+
L
+
t
n,hx
n=
t
0,h+
t
1,hx
+
L
+
x
ndimana xi (i= 1,2,…,n) adalah akar-akar dari
( )
( )
x
G
n0 Langkah 3: Hitung∑
==
n i gN i gNx
s
1 , g = 1,2,…ndimana xi(i=1,2,…,n) adalah akar-akar dari
( )
( )
x
G
n0 , dengan menyelesaikan identitas Newtonberikut: S1N =−tn−1,h N N h n S S t −1, 1 + 2 =−2tn−2,h N N h n N h n
S
t
S
S
t
−2, 1+
−1, 2+
3 h n t 3, 3 − − =M
(3.1) t1,hS1N + t2,hS2N +...
+ tn-1,hS(n-1)N + SnN =−
nt
o,h SPL (3.1) dapat dituliskan dituliskan dalam notasi matriks berikut: ⎟⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ⎞ ⎜⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎛ − − − − = ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎛ ⎟⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ⎞ ⎜⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎛ − − − − − − − h nt t s s s s t t t t t t h tn h tn h n nN N N N ,h n ,h ,h ,h n ,h n ,h n , 0 , 3 , 2 , 1 3 2 1 1 2 1 1 2 1 3 2 1 0 0 1 0 0 0 1 0 0 0 0 1 M M L M O Mdengan matriks koefisien merupakan matriks segitiga bawah Toeplitz.
SPL (3.1) dapat diselesaikan menggunakan algoritma subtitusi maju untuk mendapatkan nilai S1N,S2N,…,SnN
Langkah 4: Setelah diperoleh SgN (g=1,2…,n) hitung
nilai 1 1 ,..., 1 *
max
− =⎟
⎟
⎟
⎠
⎞
⎜
⎜
⎜
⎝
⎛
=
gN gn n gn
S
r
sebagai output dari algoritma Turan
4. HASIL DAN PEMBAHASAN
Pembuatan program algoritma Weyl digunakan software MATLAB 7.01 yang dilakukan pada komputer dengan sistem operasi Windows-Xp
dengan prosesor Pentium 2,4 GB dan RAM 256 MB.
Pada langkah ke-1 algoritma Turan dilakukan suatu translasi polinomial
P
n( )
x
pada titik Csehingga menjadi polinomial
T
n( )
x
=
P
n(
x
+
C
)
, karena itu diperlukan sebuah algoritma untuk memperoleh koefisien dari Tn(x) tersebut. Prosedurdari algoritma Translasi ditunjukkan oleh algoritma dibawah ini.
Input : Polinomial
P
n( )
x
(berupa koefisien-koefisien polinomial {p0, p1, p2,…, pn}), titik C∈ R FOR i← 0 TO n DO ki← 1; END FOR FOR i ← 0 TO n DO qi← 0; FOR j ← i TO n DO qi← qi + k(j-i+1)PjC(j-i) END FOR FOR l ← 1 TO n-i DO kl← kl + k(l-1) END FOR END FOR Output : q0, q1,…qnPada langkah ke-2 Algoritma Turan, dilakukan iterasi Graeffe sebanyak h kali pada sebuah polinomial monik Mn(x). Prosedur dari
algoritma Graeffe dengan h iterasi ditunjukan oleh algoritma dibawah ini.
Input : Polinomial
P
n( )
x
(berupa koefisien-koefisien Polinomial {p0,p1,p2,…,pn}), banyak iterasi Graeffe h.FOR l 1 TO h DO FOR i 0 TO n DO
{membuat koefisien S(x) setelah dilakukan satu iterasi Graeffe) ti,1 0; FOR j 0 TO n DO k 2i-j; IF k≥0AND k > n
t
i,1←
t
i,1+
(
−
1
)
kt
j.0t
k.0 END IF END FOR{mengalikan setiap koefisien S(x) dengan (-1)n} ; ) 1 ( .1 1 . n i i t t ← − END FOR ; 1 0 t t ← END FOR
Secara keseluruhan prosedur dari Algoritma Turan ditunjukkan oleh algoritma berikut.
Input : polinomial
P
n( )
x
(berupa koefisien-koefisien polinomial {p0,p1,p2,…,pn}), titikR
C
∈
, bilangan asli N (log2N adalahiterasi maksimum Algoritma Graeffe) ;
log2N h←
{menentukan koefisien polinomial translasi Tn(x) =
Pn(C+ x)} ←
q translasi (Pn(x),C)
{menentukan koefisien polinomial balikan
⎟
⎠
⎞
⎜
⎝
⎛
=
x
T
x
x
B
n n n1
)
(
} FOR i←1TO n+1 DO);
2
(
)
(
i
q
n
i
t
←
+
−
END FOR{membuat polinomial monik} FOR i←1TO n-1 DO t0(i)←t(i)/t(n); END FOR
;
1
)
(
0n
←
t
{melakukan iterasi Graeffe sebanyak h kali}
←
h
t
Graeffe( )
t
0,h
{membuat matriks segitiga bawah Toeplitz} FOR i 1 TO n -1 DO FOR j 1 TO n-1 DO IF
i
>=
j
THEN k←i− j; A(i,j)←
t
h(
n
−
k
);
END IF END FOR END FOR{membuat matriks konstanta dari SPL} FOR i←1TO n-1 DO
B(i)←−i*th(n−i); END FOR
{menyelesaikan SPL dengan metode substitusi maju}
←
S
subtutusi maju (A,B){mencari aproksimasi jarak terdekat akar dari
( )
x
P
n dengan bilangan kompleks C} FORg
←
1 TO n-1 DO ← ) (g r (abs(S(g)/(n−1)))∧(1/(g*N)); END FOR Solusi←
(maks(r))(-1)Output : solusi {output dari Algoritma Turan}
Percobaan dilakukan untuk melihat pengaruh dari:
Faktor translasi Banyaknya iterasi.
terhadap nilai aproksimasi yang didapatkan.
Polinomial yang akan di uji P5(x)=x5+2x3-4x2+10, dengan faktor translasi C=1,2,3,4,5 dan banyak iterasi h = 2,4,8,12,16 dengan h = 2 log N
P5(x)=x5+2x3-4x2+10 Tabel 4.1 C h aproksimasi Nilai 1 1 0.8911 2 1 1.1181 3 1 1.1983 4 1 1.2582 5 1 1.3065 Tabel 4.2 C h aproksimasi Nilai 2 2 0.7216 2 4 0.6640 2 8 0.6536 2 12 1.0002 2 16 1.0000
Dari Tabel 4.1 menunjukkan bahwa semakin besar faktor translasi dengan h = 1, maka nilai aproksimasi akan menuju N
1
5 dimana N=2.
Dari Tabel 4.2 menunjukkan bahwa nilai semakin besar iterasi yang dilakukan maka nilai aproksimasi akan konvergen ke satu dengan C=2.
5. PENUTUP
Dari hasil pembahasan dalam penelitian ini, dapat diambil kesimpulan bahwa nilai aproksimasi yang didapatkan dipengaruhi oleh besarnya faktor translasi dan banyaknya iterasi yang dilakukan, jika diperhatikan lebih lanjut maka pada iterasi lebih besar nilai aproksimasi akan konvergen ke satu.
Nilai aproksimasi ini dapat digunakan pada algoritma Weyl untuk mencari akar-akar polinomial.
REFERENSI
[1] Bond,C. 2002. A Method for Finding Real and Complex Roots of Real Polynomials With Multiple Roots.
[2] Bond,C. 2003. A Robust Strategy for Finding All Real and Complex Roots of Real
Polynomials.
[3] Golub, G. H. & Van Loan, C. F. 1996. Matrix Computations, Baltimore , Johns Hopkins University Press.
[4] Henrici, P. 1964. Elements of Numerical Analysis, New York:John Wiley.
[5] Kalman, D. 1999. A Matrix Proof of Newton’s Identities.
[6] Paliouras, J.D. 1975. Complex Variables For Scientists And Engineers.
[7] Pan, V.Y. 1996. On Approximating polynomial Zeros: Modified Quadtree (Weyl’s) Construction and Improved Newton’s Iteration. Research report 2894, INRIA, Sophia-Antipolis, France.
[8] Pan, V.Y. 1997. Solving A Polynomial Equation: Some History And Recent Progress.
SIAM Rev.Vol.39.
[9] Turan, P. 1984. On A New Method of Analysis and Its Applications, New Jersey, Willey and Sons.