TEOREMA DASAR TEOREMA DASAR ANALISIS ALIRAN DAYA ANALISIS ALIRAN DAYA
1.1 Pendahulan 1.1 Pendahulan
Studi aliran daya, yang juga dikenal dengan aliran beban, merupakan tulang punggung dari Studi aliran daya, yang juga dikenal dengan aliran beban, merupakan tulang punggung dari analisis dan desain suatu sistem tenaga. Studi aliran daya dilakukan untuk mendapatkan informasi analisis dan desain suatu sistem tenaga. Studi aliran daya dilakukan untuk mendapatkan informasi mengenai aliran daya atau tegangan sistem dalam kondisi operasi tunak. Informasi ini digunakan mengenai aliran daya atau tegangan sistem dalam kondisi operasi tunak. Informasi ini digunakan untuk mengevaluasi ujuk kerja sistem tenaga dan menganalisis kondisi pembangkitan maupun untuk mengevaluasi ujuk kerja sistem tenaga dan menganalisis kondisi pembangkitan maupun pembebanan
pembebanan, serta informasi , serta informasi keadaan sistem tenaga pada kondisi normal dan terganggu.keadaan sistem tenaga pada kondisi normal dan terganggu. Mas
Masalaalah h alialiran ran daydaya a sansangagat t dibdibutuutuhkahkan n untuntuk uk peperenrencancanaanaan, , opeoperasrasi i dan dan penpenjadjadwalwalanan ekonomis serta transfer daya. Sebagai tambahan, analisis aliran daya dibutuhkan juga pada analisis ekonomis serta transfer daya. Sebagai tambahan, analisis aliran daya dibutuhkan juga pada analisis stabilitas tran
stabilitas transient. Masasient. Masalah alah aliran daya liran daya mencakup mencakup perhitungan perhitungan aliran daaliran dan tegan tegangan singan sistem padstem padaa ter
terminminal al tertertententu tu ataatau u bus bus terttertenentu. tu. RepRepresresenentastasi i fasfasa a tuntunggggal al selselalu alu dildilakuakukan kan karkarena ena sissistemtem dianggap seimbang. Didalam studi aliran daya bus-bus dibagi dalam ti
dianggap seimbang. Didalam studi aliran daya bus-bus dibagi dalam ti ga macam, yaitu :ga macam, yaitu : a.
a. Slack busSlack bus atauatau swing busswing bus atau bus referensiatau bus referensi b.
b. Voltage controlled busVoltage controlled bus atau bus generatoratau bus generator c.
c. Load bus Load bus atau bus beban.atau bus beban.
Tiap-tiap bus terdapat empat besaran, yaitu : Tiap-tiap bus terdapat empat besaran, yaitu :
a. Daya aktif P a. Daya aktif P b. Daya reaktif Q b. Daya reaktif Q
c. Nilai skalar tegangan |V| c. Nilai skalar tegangan |V| d. Sudut fasa tegangan θ. d. Sudut fasa tegangan θ.
Pada tiap-tiap bus hanya ada dua macam besaran yang ditentukan sedangkan kedua besaran lainnya Pada tiap-tiap bus hanya ada dua macam besaran yang ditentukan sedangkan kedua besaran lainnya merupakan hasil akhir dari perhitungan. Besaran-besaran yang ditentukan itu adalah :
merupakan hasil akhir dari perhitungan. Besaran-besaran yang ditentukan itu adalah : a.
a. Slack busSlack bus ; harga sk; harga skalar |V| dan alar |V| dan sudut fasanysudut fasanya a θ.θ. b.
b. Voltage controlled busVoltage controlled bus; daya aktif P dan harga skalar tegangan |V|; daya aktif P dan harga skalar tegangan |V| c.
c. Load bus Load bus; daya aktif P dan daya reaktif Q.; daya aktif P dan daya reaktif Q. Slack bus
Slack bus merupakan bus yang menyuplai kekurangan daya aktif P dan daya reaktif merupakan bus yang menyuplai kekurangan daya aktif P dan daya reaktif Q pada sistem.Q pada sistem.
1.2 Matriks Admitansi Bus 1.2 Matriks Admitansi Bus
Unt
sederhana pada gambar 1.1, dimana impedansinya dinyatakan dalam satuan per unit pada dasar sederhana pada gambar 1.1, dimana impedansinya dinyatakan dalam satuan per unit pada dasar MVA
MVA semsemententara ara untuntuk uk penpenyedyederherhanaanaan an resresististansansinyinya a di di abaabaikaikan. n. BerBerdadasarsarkakan n HukHukum um AruAruss Kirchhoff impedansi-impedansi di ubah ke admitansi- admitansi, yaitu
Kirchhoff impedansi-impedansi di ubah ke admitansi- admitansi, yaitu :: y yijij
=
=
11 z zijij=
=
1 1 rrijij
jx jxijijgambar 1.1 Diagram impedansi sistem tenaga
gambar 1.1 Diagram impedansi sistem tenaga listrik sederhanalistrik sederhana
gambar 1.2 Diagram admitansi untuk sistem
gambar 1.2 Diagram admitansi untuk sistem tenaga listrik dari gambar 1.1tenaga listrik dari gambar 1.1
Rangkaian gambar 1.1 digambar ulang seperti gambar 1.2 dalam besaran admitansi dan Rangkaian gambar 1.1 digambar ulang seperti gambar 1.2 dalam besaran admitansi dan pengubahan kedalam bentuk sumber arus. Simpul 0 (biasanya adalah
pengubahan kedalam bentuk sumber arus. Simpul 0 (biasanya adalah groundground) diambil sebagai) diambil sebagai re
refefererensnsi. i. DeDengngan an memenenerarapkpkan an HuHukukum m ArArus us KiKircrchhhhofoff f anantatara ra sisimpmpul ul 1 1 hihingngga ga 4 4 akakanan menghasilkan:
I
I 11
=
=
y y1010V V 11
y y1212
V V 11−
−
V V 22
y y1313
V V 11−
−
vv33
II 22
=
=
y y2020V V 22
y y1212
V V 22−
−
V V 11
y y2323
V V 22−
−
V V 33
0
0
=
=
y y2323
V V 33−
−
V V 22
y y1313
V V 33−
−
V V 11
y y3434
V V 33−
−
V V 44
0
0
=
=
y y3434
V V 44−
−
V V 33
Dengan menyusun ulang persamaan diatas maka didapat . Dengan menyusun ulang persamaan diatas maka didapat .
I
I 11
=
=
yy1010
y y1212
y y1313
V V 11−
−
y y1212V V 22−
−
y y1313V3V3 II 22
=−
=−
y y1212V V 11
y y2020
y y1212
y y2323
V V 22−
−
y y2323V V 330
0
=−
=−
y y13
13V V 11
−
−
y y2323V V 22
yy1313
y y2323
y y3434
V V 33−
−
yy3434V V 440
0
=−
=−
y y3434V V 33
y y3434V V 44Dengan admitansi sebagai berikut . Dengan admitansi sebagai berikut .
Y
Y 1111
=
=
y y1010
y y1212
y y1313 YY 2222
=
=
y y2020
y y1212
y y2323 YY 3333
=
=
y y1313
y y2323
y y3434 YY 4444
=
=
y y3434 YY 1212
=
=
Y Y 2121=−
=−
y y1212 YY 1313
=
=
Y Y 3131=−
=−
y y1313 YY 2323
=
=
Y Y 3232=−
=−
y y2323 YY 3434
=
=
Y Y 4343=−
=−
y y3434Reduksi persamaan simpul menjadi. Reduksi persamaan simpul menjadi.
I
I 11
=
=
Y Y 1111V V 11
Y Y 1212V V 22
Y Y 1313V V 33
Y Y 1414V V 44 II 22
=
=
Y Y 2121V V 11
Y Y 2222V V 22
Y Y 2323V V 33
Y Y 2424V V 44 II 33
=
=
Y Y 3131V V 11
Y Y 3232V V 22
Y Y 3333V V 33
Y Y 3434V V 44 II 44
=
=
Y Y 4141V V 11
Y Y 4242V V 22
Y Y 4343V V 33
Y Y 4444V V 44Pada jaringan sistem tenaga listrik sederhana di atas, karena tidak ada hubungan antara bus 1 dan Pada jaringan sistem tenaga listrik sederhana di atas, karena tidak ada hubungan antara bus 1 dan bus 4, maka
bus 4, maka Y Y 1414= Y = Y 4141 = 0, dan Y = 0, dan Y 2424 = Y = Y 4242 = 0.= 0.
Dari
Dari perspersamaaamaan n diatadiatas, s, untuuntuk k sistesistem m dengdenganan nn bus, bus, perspersamaaamaan n tegateganganngan-simp-simpul ul dalamdalam bentuk matriks adalah :
bentuk matriks adalah :
[[
I I 11 .. .. I I ii .. .. I I nn]]
=
=
[[
YY 1111 Y Y 1212 .... .. Y Y 1i1i ... Y Y 1n1n
.. .. .. .. .. ..
.. .. .. .. .. ..
Y
Y i1i1 Y Y i2i2 .... .. Y Y iiii ... Y Y inin
.. .. .. .. .. ..
.. .. .. .. .. ..
Y
Y n1n1 Y Y n2n2 .... .. Y Y nini ... Y Y nnnn
]]
=
=
[[
V V 11 .. .. V V ii .. .. V V nn]]
(1.1) (1.1) atau atauI
I busbus = Y = Y busbusV V busbus (1.2)(1.2)
Dengan
Dengan I I busbus adalah vektor arus bus yang di injeksikan. Arus bernilai positif ketika masukadalah vektor arus bus yang di injeksikan. Arus bernilai positif ketika masuk
menuju bus dan bernilai negatif saat meninggalkan bus
menuju bus dan bernilai negatif saat meninggalkan bus V V busbus adalah vektor tegangan bus yang diukuradalah vektor tegangan bus yang diukur
dari
dari simpul simpul referensi.referensi. Y Y busbus dikenal dengan namadikenal dengan nama matriks admitansi busmatriks admitansi bus.. Elemen diagonal masing-Elemen diagonal
masing-masing simpul merupakan penjumlahan admitansi bus yang terhubung padanya. Elemen diagonal masing simpul merupakan penjumlahan admitansi bus yang terhubung padanya. Elemen diagonal ini disebut
ini disebut admitansi-sendiri.admitansi-sendiri. Y Y iiii
=
=
∑
∑
j j==00 n n y yijij (1.3)(1.3)elemen non-diagonal bernilai negatif terhadap admitansi antar simpul. Dikenal dengan
elemen non-diagonal bernilai negatif terhadap admitansi antar simpul. Dikenal dengan admitansiadmitansi bersama.
bersama. Y
Y ijij = Y = Y ji ji = -y= -yijij (1.4)(1.4)
Jika arus pada bus diketahui, dari persamaan (1.2) maka untuk tegangan
Jika arus pada bus diketahui, dari persamaan (1.2) maka untuk tegangan nn bus dapat ditentukanbus dapat ditentukan dengan :
dengan : V
V busbus = Y = Y busbus-1-1 I I busbus (1.5)(1.5)
Invers dari matriks admitansi bus
Invers dari matriks admitansi bus dikenal sebagai matriks impedansi busdikenal sebagai matriks impedansi bus Z Z busbus..
Berdasarkan persamaan (1.3) dan (1.4) , matriks admitansi bus untuk jaringan pada gambar Berdasarkan persamaan (1.3) dan (1.4) , matriks admitansi bus untuk jaringan pada gambar 1.2 yaitu :
1.2 yaitu :
Y Y busbus
=
=
[[
−
−
j j 8.508.50 j j 2.502.50 j j 55..0000 00 j j 2.502.50−
−
j j 8.758.75 j j 55..0000 00 j j 5.005.00 j j 5.005.00−
−
j j 22.5022.50−
−
j j 12.5012.50 0 0 00 j j 12.5012.50−
−
j j 12.5012.50]]
Contoh 1.1 Contoh 1.1 UntUntuk uk jarjaringingan an gamgambabar r 1.1 1.1 dibdiberierikakan n tegteganganganan E E11
=
=
1.11.1∢
∢
00°° dandan E E22=
=
1.01.0∢
∢
00 °° .. Tentukan matriks impedansi bus dengan cara inversi matriks, danTentukan matriks impedansi bus dengan cara inversi matriks, dan tentukan nilai tegangan busnya.tentukan nilai tegangan busnya. Penyelesaian
Penyelesaian
Dengan menggunakan python kita akan mencoba menyelesaikan contoh soal 1.1 diatas : Dengan menggunakan python kita akan mencoba menyelesaikan contoh soal 1.1 diatas : ((catatan: dalam python, matriks dimulai dari catatan: dalam python, matriks dimulai dari titik [0,0] bukan dari [1,1]titik [0,0] bukan dari [1,1] ).).
Berikut ini skrip yang dapat digunakan untuk menyelesaikan contoh soal 1.1, buatlah skrip Berikut ini skrip yang dapat digunakan untuk menyelesaikan contoh soal 1.1, buatlah skrip ini
ini di di tekteks s ededitoitor r ubuubuntu ntu (pe(penulnulis is menmengguggunaknakan an sofsoftwatwarere geanygeany) ) ananda, da, paspastiktikan an ananda da teltelahah memasang library
#Contoh Soal 1.1 #Contoh Soal 1.1 from scipy import * from scipy import *
z = matrix([[1.0j], # impedansi dari simpul 0 ke 1 z = matrix([[1.0j], # impedansi dari simpul 0 ke 1
[0.8j], # impedansi dari simpul 0 ke 2 [0.8j], # impedansi dari simpul 0 ke 2 [0.4j], # impedansi dari simpul 1 ke 2 [0.4j], # impedansi dari simpul 1 ke 2 [0.2j], # impedansi dari simpul 1 ke 3 [0.2j], # impedansi dari simpul 1 ke 3 [0.2j], # impedansi dari simpul 2 ke 3 [0.2j], # impedansi dari simpul 2 ke 3 [0.08j] # impedansi dari simpul 3 ke 4 [0.08j] # impedansi dari simpul 3 ke 4
]) ]) # Menentukan nilai y # Menentukan nilai y y = 1/z y = 1/z
# Menentukan komponen matriks Ybus # Menentukan komponen matriks Ybus Y11 = y[0,0]+y[2,0]+y[3,0] Y11 = y[0,0]+y[2,0]+y[3,0] Y22 = y[1,0]+y[2,0]+y[4,0] Y22 = y[1,0]+y[2,0]+y[4,0] Y33 = y[3,0]+y[4,0]+y[5,0] Y33 = y[3,0]+y[4,0]+y[5,0] Y44 = y[5,0] Y44 = y[5,0] Y12 = y[2,0] Y12 = y[2,0] Y21 = Y12 Y21 = Y12 Y13 = y[3,0] Y13 = y[3,0] Y31 = Y13 Y31 = Y13 Y23 = y[4,0] Y23 = y[4,0] Y32 = Y23 Y32 = Y23 Y34 = y[5,0] Y34 = y[5,0] Y43 = Y34 Y43 = Y34 Y14 = 0.0 Y14 = 0.0 Y41 = Y14 Y41 = Y14 Y24 = 0.0 Y24 = 0.0 Y42 = Y24 Y42 = Y24 # Matriks Ybus # Matriks Ybus
Ybus = matrix ([[Y11,Y12,Y13,Y14],[Y21,Y22,Y23,Y24], Ybus = matrix ([[Y11,Y12,Y13,Y14],[Y21,Y22,Y23,Y24], [Y31,Y32,Y33,Y34],[Y41,Y42,Y43,Y44]]) [Y31,Y32,Y33,Y34],[Y41,Y42,Y43,Y44]]) # Menentukan Matriks Zbus
# Menentukan Matriks Zbus Zbus = Ybus.I Zbus = Ybus.I E1 = 1.1 + 0.0j # tegangan E1 E1 = 1.1 + 0.0j # tegangan E1 E2 = 1.0 + 0.0j # tegangan E2 E2 = 1.0 + 0.0j # tegangan E2
# dengan transformasi sumber, sumber arus ekivalennya adalah : # dengan transformasi sumber, sumber arus ekivalennya adalah : I1 = (E1/(z[0,0])) I1 = (E1/(z[0,0])) I2 = (E2/(z[1,0])) I2 = (E2/(z[1,0])) # Matriks Ibus # Matriks Ibus
Ibus = matrix ([[I1],[I2],[0],[0]]) Ibus = matrix ([[I1],[I2],[0],[0]])
# Menentukan Magnitude Vbus # Menentukan Magnitude Vbus Vbus = abs(Zbus * Ibus) Vbus = abs(Zbus * Ibus) print
print "Y "Y = = "" print Ybus print Ybus print "Zbus =" print "Zbus =" print Zbus print Zbus print "Vbus = " print "Vbus = " print Vbus print Vbus
Simpan skrip diatas dengan nama
Simpan skrip diatas dengan nama ex_1.1.pyex_1.1.py lalu eksekusi program tersebut melalui terminal ubuntulalu eksekusi program tersebut melalui terminal ubuntu anda seperti dibawah ini :
anda seperti dibawah ini :
1.3 Penyelesaian Persamaan Aljabar Nonlinear 1.3 Penyelesaian Persamaan Aljabar Nonlinear
Tek
Tekniknik-te-tekniknik k yanyang g palpaling ing umuumum m digdigunaunakan kan untuntuk uk memenyenyeleslesaikaikan an pepersarsamaamaan n aljaljabaabarr nonlinear secara iterasi adalah
nonlinear secara iterasi adalah motode Gauss-Seidel, Newton-Raphson, dan Quasi-Newton.motode Gauss-Seidel, Newton-Raphson, dan Quasi-Newton. 1.3.1 Metode Gauss-Seidel
1.3.1 Metode Gauss-Seidel Me
Metotode de GaGaususs-s-SeSeididel el jujuga ga didikekenanal l dedengngan an memetotode de pepergrganantiatian n susuksksesesif if (( successivesuccessive displacement
displacement ). Sebagai gambaran untuk teknik ini, ). Sebagai gambaran untuk teknik ini, temukan penyelesaian persamatemukan penyelesaian persamaan nonlinear yangan nonlinear yang diberikan oleh :
diberikan oleh :
f(x) = 0
f(x) = 0 (1.6)(1.6)
Fungsi di atas disusun ulang dan ditulis menjadi : Fungsi di atas disusun ulang dan ditulis menjadi :
x = g(x)
x = g(x) (1.7)(1.7)
Jika
Jika x x(k)(k)merupakan nilai perkiraan awal dari variabelmerupakan nilai perkiraan awal dari variabel x x, maka bentuk urutan iterasinya adalah :, maka bentuk urutan iterasinya adalah :
x
x(k+1)(k+1)=g(x=g(x(k)(k) ) ) (1.8)(1.8)
Penyelesaiann
Penyelesaiannya ditemukan kya ditemukan ketika perbedaan etika perbedaan antara nilai mutlak antara nilai mutlak iterasi suksesifnyiterasi suksesifnya kurang daria kurang dari akurasi yang ditentukan, yaitu :
akurasi yang ditentukan, yaitu : |x
|x(k+1)(k+1)-x-x(k)(k)| ≤ є| ≤ є (1.9)(1.9)
dimana є adalah akurasi yang ditetapkan. dimana є adalah akurasi yang ditetapkan.
Contoh 1.2 Contoh 1.2
Gunakan metode Gauss-Seidel untuk menentukan akar dari persamaan berikut : Gunakan metode Gauss-Seidel untuk menentukan akar dari persamaan berikut : f(x) = x
f(x) = x 3 3- 6x- 6x22+ 9x - 4 = 0+ 9x - 4 = 0
Penyelesaian Penyelesaian Penyelesaian untuk
Penyelesaian untuk x x, persamaan di atas ditulis kembali menjadi :, persamaan di atas ditulis kembali menjadi : x x
=
= −
−
11 9 9 xx 3 3
66 9 9 xx 2 2
44 9 9=
=
gg
x x
Dengan menerapkan algoritma Gauss-Seidel dan menggunakan nilai pendekatan awal
Dengan menerapkan algoritma Gauss-Seidel dan menggunakan nilai pendekatan awal yaitu :yaitu : x
x(0)(0) = 2= 2
Dari persamaan (1.8), didapat iterasi pertama, yaitu : Dari persamaan (1.8), didapat iterasi pertama, yaitu :
x x11
=
=
gg2
2=−=−
11 9 92
2
3 3
66 9 92
2
2 2
44 9 9=
=2,2222
2,2222Iterasi keduanya adalah : Iterasi keduanya adalah :
x x22
=
=
gg2,2222
2,2222=−=−
11 9 9
2,22222,2222 3 3
66 9 92,2222
2,2222
2 2
44 9 9=
=2,5173
2,5173Hasil dari tahapan-tahapan iterasi yang dilakukan adalah 2.8966, 3.3376, 3.7398, 3.9568, Hasil dari tahapan-tahapan iterasi yang dilakukan adalah 2.8966, 3.3376, 3.7398, 3.9568, 3.9988 dan 4.000. Prosesnya akan berulang sampai
3.9988 dan 4.000. Prosesnya akan berulang sampai perubahan pada variabel mencapai akurasi yangperubahan pada variabel mencapai akurasi yang telah ditetapk
telah ditetapkan. an. DapaDapat t dilihdilihat at bahwbahwa a metodmetode e GausGauss-Seis-Seidel del memememerlukarlukan n banybanyak ak iterasiterasi i untuuntukk mencapai akurasi yang ditentukan, dan
mencapai akurasi yang ditentukan, dan tidak ada jaminan tidak ada jaminan penyelesaianpenyelesaiannya konvergen.nya konvergen.
Skrip berikut ini akan menunjukkan prosedur penyelesaian persamaan yang diberikan pada Skrip berikut ini akan menunjukkan prosedur penyelesaian persamaan yang diberikan pada contoh 1.2 untuk nilai perkiraan
contoh 1.2 untuk nilai perkiraan awalawal x x(0)(0) = 2= 2.. # Contoh 1.2
dx
dx = = 1.0 1.0 # # Set Set perubahan perubahan variabel variabel awalawal x
x = = 2.0 2.0 # # nilai nilai perkiraan perkiraan awalawal i itteer r = = 0 0 # # ppeenngghhiittuunnggaan n iitteerraassii while abs(dx) >= 0.001 : while abs(dx) >= 0.001 : i itteer r = = iitteer r + + 1 1 # n# noommoor r iitteerraassii g = ((1.0/9.0)*(x*x*x)) + ((6.0/9.0) * (x*x)) + (4.0/9.0) g = ((1.0/9.0)*(x*x*x)) + ((6.0/9.0) * (x*x)) + (4.0/9.0) d dx x = = ggx x # # ppeerruubbaahhaan n vvaarriiaabbeell x
x = = g g # # pendekatan pendekatan suksesif suksesif
print "iterasi : ", iter, "g = ", g, "dx = ", dx, " x = ", x print "iterasi : ", iter, "g = ", g, "dx = ", dx, " x = ", x Simpan skrip diatas dengan nama
Simpan skrip diatas dengan nama ex_1.2.pyex_1.2.py lalu jalankan melalui terminal linux anda, makalalu jalankan melalui terminal linux anda, maka hasilnya adalah sebagai berikut :
hasilnya adalah sebagai berikut :
Dapat dilihat bahwa akar persamaan nonlinear contoh soal 1.2 ditemukan (konvergen) pada Dapat dilihat bahwa akar persamaan nonlinear contoh soal 1.2 ditemukan (konvergen) pada iterasi ke-9 dengan nilai
iterasi ke-9 dengan nilai g = 4.0 g = 4.0 (akar persamaan(akar persamaan)).. Dala
Dalam m bebebeberapa rapa kasukasus, s, faktofaktor r akseakselaraslarasi i dapadapat t digundigunakan untuk akan untuk menimeningkangkatkan tkan tingktingkatat konvergensi. Jika α > 1
konvergensi. Jika α > 1 adalah faktor akselarasi, maka algoritma Gauss-Seidel menjadi :adalah faktor akselarasi, maka algoritma Gauss-Seidel menjadi : x
xk k 11
=
=
x xk k
α α[[
gg
x xk k
– – xxk k ]]
(1.10)(1.10) Contoh 1.3Contoh 1.3
Tentukan akar persamaan dalam contoh 1.2, menggunakan metode Gauss-Seidel dengan faktor Tentukan akar persamaan dalam contoh 1.2, menggunakan metode Gauss-Seidel dengan faktor akselarasi akselarasi α = α = 1.25.1.25. Penyelesaian Penyelesaian # Contoh 1.3 # Contoh 1.3
dx
dx = = 1.0 1.0 # # Set Set perubahan perubahan variabel variabel awalawal x
x = = 2.0 2.0 # # nilai nilai perkiraan perkiraan awalawal i itteer r = = 0 0 # # ppeenngghhiittuunnggaan n iitteerraassii while abs(dx) >= 0.001 : while abs(dx) >= 0.001 : i itteer r = = iitteer r + + 1 1 # n# noommoor r iitteerraassii g = ((1.0/9.0)*(x*x*x)) + ((6.0/9.0) * (x*x)) + (4.0/9.0) g = ((1.0/9.0)*(x*x*x)) + ((6.0/9.0) * (x*x)) + (4.0/9.0) d dx x = = ggx x # # ppeerruubbaahhaan n vvaarriiaabbeell x
x = = x x + + 1.21.25 5 * * dx dx # # pependendekakatan tan susuksksesiesif f dg dg fafaktktoror akselarasi
akselarasi
print "iterasi : ", iter, "g = ", g, "dx = ", dx, " x = ", x print "iterasi : ", iter, "g = ", g, "dx = ", dx, " x = ", x
Hasilnya adalah : Hasilnya adalah :
Terlih
Terlihat at bahwbahwa a faktofaktor r akseakselaraslarasi i dapadapat t mempememperceparcepat t konvkonvergenergensi si sehisehingga iterasi ngga iterasi dapadapatt lebih sedikit, namun faktor akselarasi yang tidak tepat dapat membuat perhitungan menjadi lebih lebih sedikit, namun faktor akselarasi yang tidak tepat dapat membuat perhitungan menjadi lebih lama dengan jumlah iterasi yang lebih
lama dengan jumlah iterasi yang lebih banyak bahkan dapat tidak terkendali ataubanyak bahkan dapat tidak terkendali atau over flowover flow semisal,semisal, jika anda ganti faktor akselarasi menjadi 1.8, maka akan terjadi iterasi sebanyak 26 kali untuk jika anda ganti faktor akselarasi menjadi 1.8, maka akan terjadi iterasi sebanyak 26 kali untuk
mencapai konvergensi. mencapai konvergensi.
Python sebenarnya menyediakan satu fungsi khusus untuk menentukan akan dari suatu Python sebenarnya menyediakan satu fungsi khusus untuk menentukan akan dari suatu persamaan yaitu dengan fungsi
persamaan yaitu dengan fungsi roots( ).roots( ). Jika kita Jika kita gunagunakan fungsi ini kan fungsi ini untuk menenuntuk menentukan akar daritukan akar dari persamaan pada contoh soal 1.2 maka hasilnya adalah :
Dapat dilihat bahwa ada tiga akar yang dapat digunakan untuk menyelesaikan persamaan Dapat dilihat bahwa ada tiga akar yang dapat digunakan untuk menyelesaikan persamaan pada contoh soal 1.2 yaitu
pada contoh soal 1.2 yaitu 4.0, 1.000000024.0, 1.00000002, dan, dan 0.999999980.99999998 atau dapat kita simpulkan lagi bahwaatau dapat kita simpulkan lagi bahwa ada dua akar persamaan yang dapat digunakan yaitu
ada dua akar persamaan yang dapat digunakan yaitu 4.04.0 dandan 1.01.0..
1.3.2 Metode Newton-Raphson 1.3.2 Metode Newton-Raphson
Metod
Metode e yang paling yang paling luas digunakaluas digunakan n dalam menyelesdalam menyelesaikaaikan n persapersamaan maan aljaaljabar bar nonlnonlineainearr simultan ialah metode
simultan ialah metode Newton-Raphson. Metode ini menggunakan pendekatan suksesif berdasarkanNewton-Raphson. Metode ini menggunakan pendekatan suksesif berdasarkan nilai perkiraan awal yang tidak diketahui dan menggunakan perluasan deret Taylor. Tentukan nilai perkiraan awal yang tidak diketahui dan menggunakan perluasan deret Taylor. Tentukan penyelesaian persama
penyelesaian persamaan satu-dimensi berikut ini an satu-dimensi berikut ini :: f(x) = c
f(x) = c (1.11)(1.11)
Jika x(0) adalah nilai perkiraan awal dari penyelesaian persamaan tersebut, dan
Jika x(0) adalah nilai perkiraan awal dari penyelesaian persamaan tersebut, dan Δx Δx(0)(0) adalah nilaiadalah nilai deviasi dari penyelesaian sebenarnya, maka
deviasi dari penyelesaian sebenarnya, maka f f
x x00
Δx Δx00=
=
ccDengan menggunakan perluasan deret Tylor pada bagian sebelah kiri persamaan di atas untuk Dengan menggunakan perluasan deret Tylor pada bagian sebelah kiri persamaan di atas untuk x x(0)(0)
maka didapat : maka didapat : f f
x x00
df df dx dx
00
x x00
11 2 2!! d d2f2f dx dx2200
x x 00
22
.. .. ..=
=
cc Dengan mengasumsikan bahwa erorDengan mengasumsikan bahwa eror Δx Δx(0)(0) sangat kecil, maka bagian sangat kecil, maka bagian berorde-tinggi dapat diabaikan,berorde-tinggi dapat diabaikan,
sehingga : sehingga :
cc00≃
≃
df df dx dx
00
x x00 dimana dimana Δc Δc00=
=
c – f c – f
x x00
Tambahkanx x11
=
=
x x00
cc 00
df df dx dx
00Penggunaan metode suksesif pada prosedur ini menghasilkan apa yang disebut algoritma Penggunaan metode suksesif pada prosedur ini menghasilkan apa yang disebut algoritma Newton-Raphson Raphson Δc Δck k
=
=
cc –– f f
x xk k
(1.12)(1.12) Δx Δxk k =
=
cc k k
df df dx dx
k k (1.13)(1.13) x xk k 11=
=
x xk k
Δx Δxk k (1.14)(1.14)persamaan (1.16) dapat disusun ulang menjadi : persamaan (1.16) dapat disusun ulang menjadi :
Δc Δck k
=
=
jjk k Δx Δxk k (1.15)(1.15) dimana dimana j jk k =
=
df df dx dx
k k Contoh 1.4 Contoh 1.4Gunakan metode Newton-Raphson untuk mencari akar persamaan yang diberikan pada contoh 1.2. Gunakan metode Newton-Raphson untuk mencari akar persamaan yang diberikan pada contoh 1.2. Asumsikan nilai perkiraan awal
Asumsikan nilai perkiraan awal x x(0)(0) = 6= 6
Penyelesaian Penyelesaian
Penyelesaian secara analitik diberikan oleh
Penyelesaian secara analitik diberikan oleh algoritma Newton-Rapshon sebagai berikut:algoritma Newton-Rapshon sebagai berikut: df df
x x
dx dx=
=
3x3x 2 2−
−
12 12 x x
99
cc00=
=
cc−
−
f f
x x00=
=
00−[
−[
66
33−
−
6 6
66
22
9 9
66−
−
44]=−
]=−
5050
df df dx dx
00=
=
33
66
22−
−
1212
66
99=
=
4545
x x00=
=
cc 00
df df dx dx
00=
=
−
−
5050 45 45=−
=−
1.11111.1111Sehingga, hasil akhir pada iterasi pertama adalah Sehingga, hasil akhir pada iterasi pertama adalah
x
x11
=
=
x x00
x x00=
=
66−
−
1.11111.1111=
=
4.88894.8889Akar persamaan akhirnya daat ditemukan pada iterasi ke-5
Akar persamaan akhirnya daat ditemukan pada iterasi ke-5 dengan nilai masing-masing iterasi yaitudengan nilai masing-masing iterasi yaitu 4.2789, 4.0405, 4.0011, 4.000.
4.2789, 4.0405, 4.0011, 4.000. Dap
metode Gauss-Seidel. metode Gauss-Seidel.
Berik
Berikut ut ini ini skrip yang skrip yang menumenunjuknjukkan kan proseprosedur dur untuk penyeluntuk penyelesaiaesaian n dari persamaadari persamaan n yangyang diberikan dengan metode
diberikan dengan metode Newton-Raphson.Newton-Raphson.
# Contoh 1.4 # Contoh 1.4
from math import * from math import * dx
dx = = 1.0 1.0 # # Set Set perubahan perubahan variabel variabel awalawal
x
x = = inpinput(ut("Ma"Masuksukkan kan NilNilai ai PenPendekdekataatan n AwaAwal l : : ") ") # # nilnilai ai perperkirkiraanaan awal awal i itteer r = = 0 0 # # ppeenngghhiittuunnggaan n iitteerraassii while abs(dx) >= 0.001 : while abs(dx) >= 0.001 : i itteer r = = iitteer r + + 1 1 # n# noommoor r iitteerraassii
deltaC = 0(pow(x,3) (6 * (pow(x,2))) + (9 *x) 4) deltaC = 0(pow(x,3) (6 * (pow(x,2))) + (9 *x) 4) J = 3 * pow(x,2) 12 * x + 9
J = 3 * pow(x,2) 12 * x + 9 d
dx x = = ddeellttaaCC//J J # # ppeerruubbaahhaan n vvaarriiaabbeell
x
x = = x + x + dx dx # # pendekatan pendekatan suksesif suksesif
print "iterasi : ", iter, "dC = ", deltaC, "J = ", J, " dx = ", print "iterasi : ", iter, "dC = ", deltaC, "J = ", J, " dx = ", dx,
dx, " " x x = = ",x ",x # # hasilhasil
Hasilnya adalah Hasilnya adalah
Sekarang, jika
Sekarang, jika n-dimensin-dimensi persamaan yang diberikan oleh persamaan(1.11). Perluasan bagianpersamaan yang diberikan oleh persamaan(1.11). Perluasan bagian kiri persamaan(1.11) dalam deret Tylor dengan nilai perkiraan awal dan persamaan orde tingginya kiri persamaan(1.11) dalam deret Tylor dengan nilai perkiraan awal dan persamaan orde tingginya diabaikan, maka akan
f f 11
00=
=
∂
∂
f f 11∂
∂
x x11
00
x x1100
∂
∂
f f 11∂
∂
x x22
00
x x2200
.. .. ..
∂
∂
f f 11∂
∂
x xnn
00
x xnn00=
=
cc11
f f 22
00=
=
∂
∂
f f 22∂
∂
x x11
00
x x1100
∂
∂
f f 22∂
∂
x x22
00
x x2200
.. .. ..
∂
∂
f f 22∂
∂
x xnn
00
x xnn00=
=
cc22 .. .. ..
f f nn
00=
=
∂
∂
f f nn∂
∂
x x11
00
x x1100
∂
∂
f f nn∂
∂
x x22
00
x x2200
.. .. ..
∂
∂
f f nn∂
∂
x xnn
00
x xnn00=
=
ccnn atau dalam bentuk matriksatau dalam bentuk matriks
[[
cc11−
−
f f 11
00 cc22−
−
f f 22
00 .. .. ccnn−
−
f f nn
00]]
=
=
[[
∂
∂
f f 11∂
∂
x x11
00
∂
∂
f f 11∂
∂
x x22
00 . . . . ..
∂
∂
f f 11∂
∂
x xnn
00
∂
∂
f f 22∂
∂
x x11
00
∂
∂
f f 22∂
∂
x x22
00 . . . . ..
∂
∂
f f 22∂
∂
x xnn
00 . . . . . . . .. . . . . . . . ..
∂
∂
f f nn∂
∂
x x11
00
∂
∂
f f nn∂
∂
x x22
00 . . . . ..
∂
∂
f f nn∂
∂
x xnn
00]]
=
=
[[
x x1100
x x2200 .. ..
x xnn00]]
Dalam bentuk sederhana dapat ditulis menjadi :Dalam bentuk sederhana dapat ditulis menjadi :
X X k k =
=
J J k k
X X k k atau atau
X X k k =[
=[
J J k k ]]
−−11
C C k k (1.17)(1.17)dan Algoritma Newton-Raphson untuk persamaan
dan Algoritma Newton-Raphson untuk persamaan n-dimensin-dimensi menjadimenjadi X X k k 11
=
=
X X k k
X X k k (1.18)(1.18) dimana dimana
X X k k =
=
[[
x x11k k
x x22k k .. ..
x xnnk k ]]
dan dan
C C k k =
=
[[
cc11−
−
f f 11
00 cc22−
−
f f 22
00 .. .. ccnn−
−
f f nn
00]]
(1.19) (1.19)J J k k
=
=
[[
∂
∂
f f 11∂
∂
x x11
00
∂
∂
f f 11∂
∂
x x22
00 . . . . ..
∂
∂
f f 11∂
∂
x xnn
00
∂
∂
f f 22∂
∂
x x11
00
∂
∂
f f 22∂
∂
x x22
00 . . . . ..
∂
∂
f f 22∂
∂
x xnn
00 . . . . . . . .. . . . . . . . ..
∂
∂
f f nn∂
∂
x x11
00
∂
∂
f f nn∂
∂
x x22
00 . . . . ..
∂
∂
f f nn∂
∂
x xnn
00]]
(1.20) (1.20) JJ (k)(k) disebut dengan matriks Jacobian. Elemen pada matriks ini hasil disebut dengan matriks Jacobian. Elemen pada matriks ini hasil dari turunan parsial padadari turunan parsial pada
X
X (k)(k). . diasudiasumsikamsikan n bahwbahwaa J J (k (k )) memmemiliiliki ki invinvers ers padpada a tiatiap p iteiterasrasinyinya a ((tidak tidak singusingularlar). Metode ini). Metode ini digunakan untuk meningkatkan akurasi dari nilai perkiraan yang dihasilkan.
digunakan untuk meningkatkan akurasi dari nilai perkiraan yang dihasilkan.
Contoh soal 1.5 Contoh soal 1.5
Gunakan metode Newton-Raphson untuk menentuk
Gunakan metode Newton-Raphson untuk menentukan interseksi dari kurva berikut an interseksi dari kurva berikut :: x x11 2 2
x x22 2 2=
=
44 ee x x11
x x22=
=
11 Penyelesaian Penyelesaian DengDengan an mengmengambil turunan ambil turunan parsiparsial al dari kedua dari kedua persapersamaan diatas maan diatas maka didapat matriksmaka didapat matriks Jacobian sebagai berikut
Jacobian sebagai berikut J
J
=
=
[[
22 x x11 22 x x22ee x x11 11
]]
Skrip python
Skrip python untuuntuk k menymenyelesaelesaikan ikan perspersamaaamaan n di di atas atas dengdengan an metometode de NewtoNewton-Rapn-Raphsonhson adalah sebagai berikut.
adalah sebagai berikut.
# Contoh 1.5 # Contoh 1.5
from scipy import matrix from scipy import matrix from math import pow, exp from math import pow, exp
x1 = input ("Nilai Perkiraan Awal Persamaan 1 :") x1 = input ("Nilai Perkiraan Awal Persamaan 1 :") x2 = input ("Nilai Perkiraan Awal Persamaan 2 :") x2 = input ("Nilai Perkiraan Awal Persamaan 2 :") x = matrix([[x1],[x2]])
x = matrix([[x1],[x2]]) C = matrix ([[4],[1]]) C = matrix ([[4],[1]])
Dx = matrix ([[1],[1]]) Dx = matrix ([[1],[1]])
iter = 0 iter = 0
while max(abs(Dx)) >= 1e4 : while max(abs(Dx)) >= 1e4 :
iter=iter+1 iter=iter+1 f
f = = matrmatrix ix ([[([[powpow(x[0(x[0,0],,0],2)+p2)+pow(xow(x[1,0[1,0],2)],2)],[],[exp exp (x[0(x[0,0]) ,0]) ++ x[1,0]]]) x[1,0]]]) DC = C f DC = C f J = matrix ([[2*x[0,0],2*x[1,0]],[exp(x[0,0]),1]]) J = matrix ([[2*x[0,0],2*x[1,0]],[exp(x[0,0]),1]]) Dx = J.I * DC Dx = J.I * DC x = x + Dx x = x + Dx
print "iterasi ke : ", iter ," x1 = ", x[0,0], " x2 = " , print "iterasi ke : ", iter ," x1 = ", x[0,0], " x2 = " , x[1,0], "Dx max = ", max (abs(Dx))
x[1,0], "Dx max = ", max (abs(Dx))
Jika skrip ini
Jika skrip ini dijalankan maka hasilnya adalahdijalankan maka hasilnya adalah
Dengan nilai pendekatan awal 0.5 dan -1 maka ditemukan penyelesaian yang konvergen Dengan nilai pendekatan awal 0.5 dan -1 maka ditemukan penyelesaian yang konvergen pada iterasi ke-5 dengan nilai
pada iterasi ke-5 dengan nilai x x11= = 1.00416873841.00416873847 7 dandan x x22 = = -1.7296372870-1.72963728703.3.
Contoh 1.6 Contoh 1.6
Mulai dengan nilai awal,
Mulai dengan nilai awal, x x11 =1, x=1, x22 = 1, x= 1, x 3 3 = = 11, selesaikan persamaan berikut ini dengan, selesaikan persamaan berikut ini dengan
menggunakan metode
menggunakan metode Newton-RapshonNewton-Rapshon.. x x1122
−
−
x x2222
x x3322=
=
1111 x x11 x x22
x x2222−
−
3x3x33=
=
33 x x11−
−
x x11 x x33
x x22 x x33=
=
66 Penyelesaian PenyelesaianDengan menurunkan secara parsial ketiga persamaan di atas, maka didapat matrik Jacobian Dengan menurunkan secara parsial ketiga persamaan di atas, maka didapat matrik Jacobian sebagai berikut.
J J
=
=
[[
2 2 x x11−
−
22 x x22 22 x x33 x x22 x x11
22 x x22−
−
33 1 1−
−
x x33 x x33−
−
x x11
x x22]]
Skrip berikut dapat digunakan untuk menyelesaikan persamaan yang diberikan pada contoh 1.6 di Skrip berikut dapat digunakan untuk menyelesaikan persamaan yang diberikan pada contoh 1.6 di atas.
atas.
# Contoh 1.6 # Contoh 1.6
from scipy import matrix from scipy import matrix from math import pow from math import pow
x = matrix([[1],[1],[1]]) x = matrix([[1],[1],[1]]) C = matrix ([[11],[3],[6]]) C = matrix ([[11],[3],[6]]) Dx = matrix ([[10],[10],[10]]) Dx = matrix ([[10],[10],[10]]) iter = 0 iter = 0
while max(abs(Dx)) >= 1e4 : while max(abs(Dx)) >= 1e4 :
iter=iter+1 iter=iter+1 f = matrix ([[pow(x[0,0],2)pow(x[1,0],2)+pow(x[2,0],2)], f = matrix ([[pow(x[0,0],2)pow(x[1,0],2)+pow(x[2,0],2)], [(x[0,0]*x[1,0]) + pow(x[1,0],2)3*x[2,0]],[x[0,0]x[0,0]*x[2,0]+ [(x[0,0]*x[1,0]) + pow(x[1,0],2)3*x[2,0]],[x[0,0]x[0,0]*x[2,0]+ x[1,0]*x[2,0]]]) x[1,0]*x[2,0]]]) DC = C f DC = C f J = matrix ([[2*x[0,0],2*x[1,0],2*x[2,0]],[x[1,0],x[0,0]+ J = matrix ([[2*x[0,0],2*x[1,0],2*x[2,0]],[x[1,0],x[0,0]+ 2*x[1,0],3],[1x[2,0],x[2,0],x[0,0]+x[1,0]]]) 2*x[1,0],3],[1x[2,0],x[2,0],x[0,0]+x[1,0]]]) Dx = J.I * DC Dx = J.I * DC x = x + Dx x = x + Dx
print "iterasi ke : ", iter ," x1 = ", x[0,0], " x2 = " , print "iterasi ke : ", iter ," x1 = ", x[0,0], " x2 = " , x[1,0], "Dx max = ", max (abs(Dx))
x[1,0], "Dx max = ", max (abs(Dx))
Jika dijalankan maka skript ini
Dapat dilihat bahwa penyelesaian konvergen pada iterasi
Dapat dilihat bahwa penyelesaian konvergen pada iterasi ke-6 dengan nilaike-6 dengan nilai x x11= 2.0= 2.0 dandan x x22 ==
3.0
3.0, metode Newton-Raphson memiliki keunggulan saat melakukan konvergensi secara kuadratik, metode Newton-Raphson memiliki keunggulan saat melakukan konvergensi secara kuadratik ketika akar persamaan yang dicari sudah dekat.