bahan kuliah ke 3 metoda numerik.pdf

33
Penyelesaian Numerik Persamaan Non-Linear Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 1 2.1 PENDAHULUAN Untuk mendapatkan penyelesaian matematika yang menjabarkan model suatu persoalan nyata bidang rekayasa, sering solusi yang dicari berupa suatu nilai variabel x sedemikian rupa sehingga terpenuhi persamaan f(x) = 0 yang digunakan dalam model. Dalam beberapa kasus, melalui faktorisasi f(x) = 0 dapat diperoleh penyelesaian seperti yang diinginkan; akan tetapi, lebih banyak jabaran persamaan dalam model mempunyai bentuk yang rumit, sehingga teknik analisis matematika murni tidak dapat memberikan solusi. Contoh Sebuah bola baja berjari-jari 1cm dibakar merata sampai mencapai temperatur 100°C. Bola ini kemudian disimpan di dalam ruang pendingin dengan temperatur 0°C. Dengan anggapan ada perambatan panas, maka konduksi panas dapat dinyatakan dalam persamaan fungsi untuk temperatur T di pusat bola setelah t detik sebagai : ( ) () = 8 t 2 n λ exp n τ n sinλ 1 n 100 = T(t) (2.1) λ i adalah akar positif persamaan : 2 λ 1 cos λ = (2.2) Untuk mencari T(t) pada t tertentu di tengah bola perlu dicari harga λ dari persamaan (2.2); dan penyelesaian dengan cara analitik tidak berguna. Tanya: Apakah yang dimaksud dengan ‘menentukan x sedemikian rupa sehingga terpenuhi persamaan f(x) = 0 ?’ Jawab: Secara geometri ini berarti mencari suatu titik dengan f(x) tepat memotong absis x, sehingga f(x) = 0. Jika dianggap f(x) sesungguhnya memotong absis x, maka dapat dicari suatu interval [a,b], sedemikian rupa sehingga f(a) dan f(b) mempunyai tanda berbeda (Gambar 2.1). b y = f(x) a f(a) f(b) y x Gambar 2.1 Tinjauan interval [a,b] dalam penentuan akar fungsi f(x).

Upload: doankhanh

Post on 31-Dec-2016

274 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 1

2.1 PENDAHULUAN

Untuk mendapatkan penyelesaian matematika yang menjabarkan model suatu persoalan nyata bidang rekayasa, sering solusi yang dicari berupa suatu nilai variabel x sedemikian rupa sehingga terpenuhi persamaan f(x) = 0 yang digunakan dalam model. Dalam beberapa kasus, melalui faktorisasi f(x) = 0 dapat diperoleh penyelesaian seperti yang diinginkan; akan tetapi, lebih banyak jabaran persamaan dalam model mempunyai bentuk yang rumit, sehingga teknik analisis matematika murni tidak dapat memberikan solusi.

Contoh Sebuah bola baja berjari-jari 1cm dibakar merata sampai mencapai temperatur 100°C. Bola ini kemudian disimpan di dalam ruang pendingin dengan temperatur 0°C. Dengan anggapan ada perambatan panas, maka konduksi panas dapat dinyatakan dalam persamaan fungsi untuk

temperatur T di pusat bola setelah t detik sebagai : ( ) ( ) ⎟⎠⎞⎜

⎝⎛−∑

= 8

t 2 n λexp n τnsinλ

1n100= T(t)

(2.1)

λi adalah akar positif persamaan : 2λ1cos λ =

(2.2) Untuk mencari T(t) pada t tertentu di tengah bola perlu dicari harga λ dari persamaan

(2.2); dan penyelesaian dengan cara analitik tidak berguna. Tanya: Apakah yang dimaksud dengan ‘menentukan x sedemikian rupa sehingga terpenuhi persamaan f(x) = 0 ?’ Jawab: Secara geometri ini berarti mencari suatu titik dengan f(x) tepat memotong absis x, sehingga f(x) = 0. Jika dianggap f(x) sesungguhnya memotong absis x, maka dapat dicari suatu interval [a,b], sedemikian rupa sehingga f(a) dan f(b) mempunyai tanda berbeda (Gambar 2.1).

b

y = f(x)

a

f(a)

f(b)

y

x

Gambar 2.1 Tinjauan interval [a,b] dalam penentuan akar fungsi f(x).

Page 2: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear Dengan pembatasan interval ini, secara cermat dapat dicari nilai x = λ yang memberikan

nilai f(λ) = 0, sebagai berikut : 1. Bagi dua interval [a,b] dan evaluasi nilai f(x) pada titik tengah interval. 2. Apabila f(m) = 0 berarti x = m; bila tidak, dicari posisi nilai m apakah berada pada

interval [a,m] atau interval [m,b]; yaitu dengan memeriksa perbedaan tanda : • jika f(a) dan f(m) berbeda tanda, berarti λ di [a,m] • jika f(a) dan f(m) mempunyai tanda sama, berarti λ di [m,b].

Proses pembagian sub-interval dapat diulangi sampai ditemukan nilai λ yang memberikan f(λ) = 0. Gambar 2.2 menjelaskan proses pembagian sub-interval.

2.2 METODE BISECTION dan REGULA FALSI

Metode numerik untuk mendapatkan harga x untuk f(x) = 0 seperti uraian di pasal 2.1 disebut METODE BISECTION. Tahap pertama proses adalah menetapkan nilai sembarang a dan b sebagai batas segmen nilai fungsi yang dicari. Batasan a dan b memberikan harga bagi fungsi f(x) untuk x = a dan x = b. Langkah selanjutnya adalah memeriksa apakah f(a)× f(b) < 0. Apabila terpenuhi syarat tersebut, berarti terdapat akar fungsi dalam segmen tinjauan. Jika tidak demikian, kembali harus ditetapkan nilai a dan b sedemikian rupa sehingga terpenuhi ketentuan perkalian f(a)× f(b) < 0.

Dengan rumusan m = (a+b)/2, diperiksa apakah nilai mutlak f(m) < 10-6 (batas simpangan kesalahan). Jika benar, nilai x = m adalah solusi yang dicari. Jika tidak terpenuhi, ditetapkan batasan baru dengan mengganti nilai b = m apabila f(a)*f(m) < 0, dan mengganti a = m bila f(a)× f(m) > 0; proses menemukan m baru dilakukan seperti prosedur yang telah dijelaskan.

a (a=m)(b=m) b

f(b

f(a)

[f(a) x f(m)>0]

[f(a) x f(m)<0]

x

y

Gambar 2.2 Penentuan nilai tengah m interval metode Bisection

Metode Bisection adalah salah satu kelas metode Pengelompokan, karena prosedur untuk

mendapatkan nilai x untuk f(x) = 0 dilakukan melalui pendekatan kelompok akar. Metode ini tidak sepenuhnya memanfaatkan data f(x) bagi penentuan nilai x. Misalnya, tidak digunakannya ukuran relatif f(a) dan f(b), karena umumnya jika f(a) < f(b) dalam nilai mutlaknya, maka akar persamaan akan terletak lebih dekat ke f(a), seperti dijelaskan di Gambar 2.2. Salah satu cara efektif mendapatkan nilai m ini adalah menghubungkan f(a) dan f(b) dengan garis lurus dan perpotongan garis ini dengan absis x merupakan nilai m, seperti dijelaskan pada Gambar 2.3.

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 2

Page 3: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear Penetapan m ini dikenal dengan cara REGULA FALSI dan algoritmanya sama seperti

metode Bisection, kecuali mengganti penentuan m dengan rumusan :

⎥⎦

⎤⎢⎣

⎡−×−

−=f(a)f(b)f(b)a)(bam

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 3

f(a)

λ b

f(b

a mGambar 2.3 Penentuan nilai m dari perpotongan garis lurus melalui dua titik.

Proses dengan cara ini memberikan perhitungan yang lebih cepat dibandingkan dengan metode Bisection, walaupun pada kasus yang khusus dapat juga terjadi proses ‘cantelan’, baik pada a ataupun b, yang memperlambat perhitungan.

Pada algoritma, proses memang dihentikan jika dicapai nilai mutlak f(m) < 10-6, tetapi untuk kecermatan hasil, kriteria ini belum cukup. Dengan memperhatikan dua sifat kurva seperti pada Gambar 2.4, maka syarat kecermatan yang tepat adalah (a)

(b). harga mutlak f (m) < 10-6

a

b

f(b)

f(a)

x

y f(a)

f(b)

b

a

x

y

(a). harga mutlak [abaru - bbaru ] < 10-6

Gambar 2.4 Syarat lengkap kecermatan.

Page 4: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear Untuk menghindari masalah yang mungkin terjadi bagi perilaku persamaan yang tidak

dapat dilacak, perlu pembatasan tinjauan interval sesuai dengan sifat fungsi. Hal ini penting dalam teknik numerik untuk memperoleh solusi nyata. Sebagai penjelasan, jika

cot x = 1/(2x). yang bila akan dicari besaran x persamaan ini, bentuk persamaan diubah menjadi

f(x) = tan x - 2x = 0, (2.3) maka dengan mengabaikan akar x = 0 yang bukan solusi persamaan dasar, terlihat bahwa metode Bisection atau Regula Falsi tidak akan memberikan solusi. Hal ini perlu disadari bahwa fungsi f(x) bukan fungsi kontinu untuk nilai kelipatan ganjil dari π/2, seperti dijelaskan di Gambar 2.5.

y=2x

y=tanx

π/2 π 3π/2

y

x

Gambar 2.5 Fungsi periodik y = tan x diskontinu pada kelipatan ganjil π/2.

2.2.1 Algoritma Program Algoritma program untuk metode Bisection a). Tentukan a, b, toleransi, dan jumlah iterasi maksimum. b). Periksa apakah f(a) x f(b) > 0; jika ya, keluar dari progam karena pada selang yang

diberikan tidak terdapat akar persamaan. c). Hitung nilai m = (a + b)/2 d). Jika nilai mutlak (b-a) < toleransi, tuliskan m sebagai hasil perhitungan, dan akhiri

program; jika tidak, lanjutkan ke langkah berikutnya. e). Jika jumlah iterasi > iterasi maksimum, akhiri program. f). Jika f(a) x f(m) < 0, maka b = m; jika tidak, a = m. g). Kembali ke langkah (c).

Algoritma program untuk metode Regula Falsi a). Tentukan a, b, toleransi, dan jumlah iterasi maksimum. b). Periksa apakah f(a) x f(b) > 0; jika ya, keluar dari progam karena pada selang yang

diberikan tidak terdapat akar persamaan. c). Hitung nilai m = a - f(b) x (b - a) / [f(b) - f(a)]. d). Jika nilai mutlak (m-a) < toleransi, tuliskan m sebagai hasil perhitungan, dan akhiri

program; jika tidak, lanjutkan ke langkah berikutnya.

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 4

Page 5: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear e). Jika jumlah iterasi > iterasi maksimum, akhiri program. f). Jika f(a) x f(m) < 0, maka b = m; jika tidak, a = m g). Kembali ke langkah (c).

2.2.2 Bagan Alir Program

Dalam mempersiapkan program sumber, algoritma dijabarkan dalam bentuk bagan alir yang dapat dilihat pada dua bagan berikut ini.

2.2.2.1 Bagan Alir Metode Bisection

MULAI

DEFINISIKAN FUNGSI

Bacaa, b, tol,iter_max

Iter = 0Fa = F(a)Fb = F(b)

iter = iter +1m = (a + b)/2Fm = F(m)

|m-a| < toliter > iter_max

b = mFb = Fm

Tulis hasilm, F(m)

Ya

Tidak

SELESAI

Fa * Fb > 0

tidakTulis

Fa * Fb > 0

ya

1

Fa * Fm < 0

a = mFa = Fm

ya tidak

1

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 5

Page 6: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

2.2.2.2 Bagan Alir Metode Regula Falsi

MULAI

DEFINISIKANFUNGSI

Bacaa, b, tol,iter_max

Iter = 0Fa = F(a)Fb = F(b)

Fa * Fb > 0

iter = iter +1m = a - Fb*(b-a) (Fb - Fa)

Fm = F(m)

|m-a|<toliter>iter_max

ya

TulisFa*Fb > 0

Fa*Fm<0

tidak

tidak

ya

a = mFa = Fm

b = mFb = Fm

Tulis hasilm, F(m)

SELESAI

1

1

tidakya

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 6

Page 7: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

2.3 METODE ITERASI Bentuk lain metode penentuan akar persamaan adalah dengan memulai suatu perkiraan

harga akar persamaan, yang kemudian dengan serangkaian nilai perkiraan ini, mulai x0 (perkiraan awal), x1, x2 ,..., xk , akhirnya konvergen pada λ, yaitu xk cukup dekat pada λ menurut tingkat kecermatan yang diinginkan.

Metode perkiraan awal untuk satu variabel disebut METODE ITERASI TUNGGAL. Dalam hal ini fungsi f(x) ditulis sebagai :

f(x) = x - g(x) = 0, sehingga λ = g(λ), (2.4) kemudian xk+1 = g(xk ), k = 0,1,2,... (2.5)

Persamaan (2.4) dan (2.5) merupakan rumusan iterasi.

Contoh Untuk mendapatkan akar persamaan x3 - 3x - 20 = 0, langkah pertama yang dilakukan adalah mengubah persamaan dalam bentuk f(x) = x - g(x). Perubahan ini dapat dilakukan melalui empat cara :

(i). x - (3x + 20)1/3 = 0 (ii). x - (x3 - 20)/3 = 0 (iii). x - 20/(x2 - 3) = 0 (iv). x - (3 + 20/x)1/2 = 0

Dengan menggunakan bentuk pertama dapat dinyatakan rumusan : x k+1 = (3xk + 20)1/3 , k = 0,1,2,....

dan dengan perkiraan awal x0 = 5, diperoleh x0 = 5 x1 = (3 * 5 + 20)1/3 = 3.2771 x2 = (3 * 3.2771 + 20)1/3 = 3.1008 x3 = 3.0830 x4 = 3.0811 ; x5 = 3.0809 x6 = 3.0809 ; x7 = 3.0809

Karena nilai x sudah konstan pada harga 3.0809, dilakukan pemeriksaan harga f(x). Diperoleh f(3.0809) = 0.0010. Jika simpangan kesalahan ini dapat diabaikan, maka harga x = 3.0809 merupakan solusi.

Metode iterasi yang diuraikan ini disebut CARA PENDEKATAN BERURUT. Secara geometri yang dilakukan adalah menemukan perpotongan dua kurva y = x dan y = g(x), seperti pada Gambar 2.6. Terlihat mudah mendapatkan akar persamaan dengan proses tersebut, bila dipahami benar

y = x y

x

y = g(x)

Gambar 2.6 Geometri fungsi f(x) = x - g(x)

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 7

Page 8: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear perilaku fungsi. Jika diamati tiga cara penulisan f(x) sebagai x - g(x) :

(ii). x - (x³ - 20) / 3 = 0 (iii). x - 20/ (x² - 3) = 0 (iv). x - (3 + 20/x)1/2 = 0, dan menggunakan perkiraan awal x0 = 5,

maka seri besaran xk , k = 0,1, 2, …, memberikan hasil seperti tercantum dalam Tabel 2.1.

Tabel 2.1 Hasil perhitungan metode Iterasi.

-2

-1

0

1

2

3

4

5

6

7

8

0 1 2 3 4 5 6 7 8

y=x

g(x)=20/(x2-3)

g(x)=(3+20/x)0.5

g(x)=(x3-20)/3

k Cara ii Cara iii Cara iv0 5 5 51 35 0.9091 22 14285 -9.2015 3.24953 3.02574 35 3.07436 3.08317 3.08018 3.08119 3.0808

(tidak banyak manfaatnya untuk dilanjutkan)

.6458

.1

Dari contoh hitungan dapat dilihat bahwa cara iterasi tidak selalu dapat digunakan. Guna

mengetahui pada awal proses bahwa metode ini dapat dipakai, perlu diperiksa bentuk fungsi. Sajian grafik bentuk fungsi cara ii - iv adalah seperti pada Gambar 2.7.

Gambar 2.7 Sajian fungsi y = g(x) cara (iii) dan (iv)

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 8

Page 9: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Dengan meneliti grafik tampak bahwa bagi cara ii dan iii, garis singgung y = g(x) lebih tajam daripada garis singgung y = x dekat nilai akar; sedangkan pada cara i dan cara iv, garis singgung y = g(x) tidaklah setajam garis singgung y = x dekat nilai x = 3. Secara matematika, ini berarti nilai absolut g’ (x) < 1 di dekat nilai akar. Dengan demikian, konvergensi dari solusi metode iterasi dapat dilacak dari perilaku turunan pertama fungsi. Perhatikan gambar 2.8. Turunan fungsi g’(x) berada pada nilai 0 < g’(x) < 1 untuk jaminan hasil iterasi konvergen.

y

y=g(x)

y=x

x

Gambar 2.8 Turunan fungsi g’(x) < 1 = y’ = 1.

2.3.1 Algoritma Program Algoritma program dengan metode Iterasi a). Tentukan xo, toleransi, dan jumlah iterasi maksimum. b). Hitung xbaru = g(xo). c). Jika nilai mutlak (xbaru - xo) < toleransi, diperoleh tulisan xbaru sebagai hasil perhitungan;

jika tidak, lanjutkan ke langkah berikutnya. d). Jika jumlah iterasi > iterasi maksimum, akhiri program. e). xo = xbaru , dan kembali ke langkah (b).

2.3.2 Bagan Alir Program

Dalam mempersiapkan program sumber, algoritma dijabarkan dalam bentuk bagan alir berikut, dan bagan alir metode ini dapat dilihat pada Bagan 2.3.2.1.

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 9

Page 10: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 10

2.3.2.1 Bagan Alir Metode Iterasi

MULAI

DEFINISIKANFUNGSI

Bacaxo, tol,

iter_max

Iter = 0

iter = iter +1

xb = G(xo)

|xb-xo|<toliter>iter_max

xo = xb

Tulis hasilxb, F(xb)

Stop

Tidak

ya

Page 11: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 11

2.4 METODE NEWTON-RAPHSON

Metode yang lebih baik dalam memilih g’(x) adalah dengan membuat garis singgung dari f(x) untuk nilai x yang dipilih, dan dengan menggunakan besaran x dari perpotongan garis singgung terhadap absis sehingga diperoleh nilai x baru. Metode ini diperlihatkan pada Gambar 2.9.

xk

xk+1

garis singgung

f(x)

x

y

Gambar 2.9 Garis singgung f(xk) memotong di xk+1.

Dari diagram ini terlihat tagensial (garis singgung) f(x) adalah :

( ))1kxk(x

)1kf(x)kf(xxf'

+−+−

= (2.6)

( ))1kxk(x

)kf(xxf'

+−= (2.7)

sehingga x k+1 = x k - f( x k ) / f’(x k), k = 0,1,2,.... (2.8) Metode ini dikenal dengan METODE NEWTON-RAPHSON dan merupakan salah satu

cara yang paling dikenal dalam metode penyelesaian fungsi f(x) = 0. Keuntungan cara ini adalah sifat konvergensi kuadratik dalam proses iterasi, karena terjadinya koreksi digit ganda di setiap proses. Contoh

f(x) = x³ - 3x - 3x - 20 , maka f’(x) = 3x² - 3 Dengan demikian x k+1 = x k - ( x³k - 3xk - 20) / (3x²k - 3). Perkiraan awal x0 = 5 x0 = 5 x1 = 3.75 x2 = 3.2018

x3 = 3.0859 x4 = 3.0809 x5 = 3.0809

Page 12: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear Kekurangan metode ini adalah : a). Harus mencari f’(x), dan nilainya mungkin 0. b). Tidaklah sederhana melacak proses untuk konvergen. c). Dalam perhitungan ada kemungkinan besar proses memberikan hasil divergen, kecuali

nilai perkiraan awal x cukup tepat.

2.4.1 Konvergensi Metode Newton-Raphson Dengan memperhatikan rumusan

xk=1 = xk - f (xk )/f’ (xk ), k = 0, 1, 2, … dan syarat konvergensi | g’ (x) | < 1, berarti

( ) ( )( )

( ) ( )( )[ ]

1 2xf'

xf" xf xxxf'

xfx dxd x g' <=

=⎥⎦

⎤⎢⎣

⎡−= (2.9)

Apabila nilai turunan fungsi susah didapat, nilai ini dapat didekati dengan harga fungsi dari hasil dua tahapan proses sebelumnya.

Gambar 2.10 Penentuan nilai turunan fungsi dengan menggunakan metode Secant.

x xk+1 xk+2k

Pada Gambar 2.10, jika nilai xk dan xk+1 telah didapat, maka :

( ) ( ) ( )1kk

k1k

1k

1k2k

xfxffxx

xfxx

+

+

+

++

−−

=− atau

( ) ( ) ( )k1k

k1k1k1k2k xfxf

xx xfxx−−

−=+

++++ (2.10)

Penentuan nilai turunan fungsi dengan cara ini disebut metode SECANT. 2.4.2 Algoritma Program Algoritma program untuk metode Newton-Raphson a). Tentukan xo, toleransi, dan jumlah iterasi maksimum. b). Hitung xbaru = x - f(xo)/f’(xo). c). Jika nilai mutlak (xbaru - xo) < toleransi, diperoleh tulisan xbaru sebagai hasil perhitungan;

jika tidak, lanjutkan ke langkah berikutnya. d). Jika jumlah iterasi > iterasi maksimum, akhiri program. e). x = xbaru , dan kembali ke langkah (b).

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 13

Page 13: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 14

2.4.3 Bagan Alir Program

Dalam mempersiapkan program sumber, algoritma dijabarkan dalam bentuk bagan alir berikut.

2.4.3.1 Bagan Alir Metode Newton-Raphson

MULAI

DEFINISIKANFUNGSI

Bacaxo, tol,

iter_max

Iter = 0

iter = iter +1Fx=F(xo)

F1x=F'(xo)

xb =xo-Fx/F1x

|xb-xo|<toliter>iter_max

xo = xb

Tulis hasilxb, F(xb)

SELESAI

Tidak

ya

Page 14: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 15

2.4.3.2 Bagan Alir Metode Secant

MULAI

DEFINISIKANFUNGSI

Bacaxo, x1, tol,iter_max

Iter = 0

iter = iter +1

xb =x1- f(x1)*(x1-xo) [f(x1)-f(xo)]

|xb-xo|<toliter>iter_max

xo = xb

Tulis hasilxb, F(xb)

SELESAI

Tidak

ya

Page 15: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 16

2.5 NILAI AWAL PERKIRAAN

Dalam hal tidak adanya petunjuk dalam penetapan nilai awal, maka usaha berikut ini dapat dilakukan : • Membuat grafik fungsi, lalu diidentifikasikan segmen fungsi yang memotong absis. • Membuat tabel harga x and f(x), lalu diidentifikasi nilai x pada perubahan tanda f(x).

2.6 PROGRAM SUMBER

Dari rancangan algoritma atau bagan alir, program komputer dapat dikembangkan melalui pembuatan program sumber di dalam bahasa tingkat tinggi PASCAL dan C++. Secara umum terdapat enam kategori utama dari pernyataan dalam program sumber, yaitu : 1. Pernyataan bagi arsip atau file dan record yang akan diproses oleh komputer. 2. Pernyataan untuk data di luar arsip, seperti untuk membuat judul yang perlu bagi

dokumentasi. 3. Pernyataan memindahkan data pada satu lokasi memori ke lokasi memori lainnya dalam

memori utama komputer. 4. Pernyataan untuk melakukan operasi aritmatik yang disimpan dalam memori utama. 5. Pernyataan logika : proses urut, perbandingan, dan iterasi. 6. Pernyataan membaca data dari memori dampingan ke memori utama atau menuliskan data

dari memori utama ke memori dampingan. Pemahaman lebih jauh dalam pemrogramana dapat dibaca pada buku-buku komputer.

Lampiran A buku ini mengulas secara umum prosedur pemrograman dalam bahasa TURBO PASCAL dan C++.

2.6.1 Program Sumber untuk Metode Bisection

Program berikut menggunakan algoritma metode Bisection untuk menyelesaikan persamaan non-linear. Program akan dicoba untuk menyelesaikan persamaan :

tan (x) - x - 0,5 = 0

2.6.1.1 DEKLARASI SUMBER PROGRAM dalam BAHASA C++ // Program 1.1a // Metode Bisection #include <stdio.h> #include <math.h> /* Daftar Variable a = batas bawah b = batas atas tol = toleransi max_iter = jumlah iterasi maksimum */ float a,m,b,F_a,F_m,F_b,tol; int max_iter;

Page 16: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 17

float f(float x) { return tan(x) - x - 0.5; } void main() { int it; float epsilon; printf("Batas bawah = "); scanf("%f",&a); printf("Batas atas = "); scanf("%f",&b); printf("Toleransi = "); scanf("%f",&tol); printf("Jumlah iterasi maksimum = "); scanf("%d",&max_iter); it = 0; F_a = f(a); F_b = f(b); if(F_a * F_b > 0) printf(" Nilai F(a) x F(b) > 0\n"); else { printf("It. a m b f(a) f(b)"); printf(" abs[f(b)-f(a)]/2\n"); do { it = it + 1; m = (a + b) / 2; F_m = f(b); printf("%3d %8.5f %8.5f %8.5f %8.5f %8.5f %8.2e\n", it,a,m,b,F_a,F_b,fabs(F_b-F_a)/2); epsilon = fabs(m-a); if(F_a * F_m <= 0) { b = m; F_b = F_m; } else { a = m; F_a = F_m; } } while(it <= max_iter && epsilon > tol); if(it<=max_iter) { printf("Toleransi terpenuhi\n"); printf("Hasil akhir = %g\n",m); } else printf("Toleransi tidak terpenuhi\n"); } }

2.6.1.2 DEKLARASI SUMBER PROGRAM dalam BAHASA TURBO PASCAL { Program 1.1b Metode Bisection Daftar Variable a = batas bawah b = batas atas tol = toleransi max_iter = jumlah iterasi maksimum } Var a,m,b,F_a,F_m,F_b,tol : real; max_iter,it : integer; epsilon : real; function f(x : real) : real; Begin f := sin(x)/cos(x) - x - 0.5; End;

Page 17: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 18

Begin write('Batas bawah = '); read(a); write('Batas atas = '); read(b); write('Toleransi = '); read(tol); write('Jumlah iterasi maksimum = '); read(max_iter); it := 0; F_a := f(a); F_b := f(b); if (F_a * F_b > 0) then writeln(' Nilai F(a) x F(b) > 0') else Begin write('It. a m b f(a) f(b)'); writeln(' abs[f(b)-f(a)]/2'); epsilon := tol+1; while((it <= max_iter) and (epsilon > tol)) do Begin it := it + 1; m := (a + b) / 2; F_m := f(m); write(it:3,' ',a:8:5,' ',m:8:5,' ',b:8:5,' '); writeln(F_a:8:5,' ',F_m:8:5,' ',abs(F_b-F_a)/2:4); epsilon := abs(m-a); if(F_a * F_m <= 0) Then Begin b := m; F_b := F_m End else Begin a := m; F_a := F_m End; End; if(it<=max_iter) Then Begin writeln('Toleransi terpenuhi'); writeln('Hasil akhir = ',m:9:7); End else writeln('Toleransi tidak terpenuhi'); End; End.

2.6.1.3 Contoh eksekusi program Eksekusi program dilakukan dalam selang interval [0,1], toleransi 10-7 dan jumlah iterasi

maksimum sebanyak 30. Hasil eksekusi program adalah sebagai berikut : Batas bawah = 0 Batas atas = 1 Toleransi = 0.0000001 Jumlah iterasi maksimum = 30 It. a m b f(a) f(b) abs[f(b)-f(a)]/2 1 0.00000 0.50000 1.00000 -0.50000 -0.45370 2.79e-01 2 0.50000 0.75000 1.00000 -0.45370 -0.31840 2.56e-01 3 0.75000 0.87500 1.00000 -0.31840 -0.17758 1.88e-01 4 0.87500 0.93750 1.00000 -0.17758 -0.07543 1.17e-01 5 0.93750 0.96875 1.00000 -0.07543 -0.01345 6.64e-02

Page 18: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 19

6 0.96875 0.98438 1.00000 -0.01345 0.02078 3.54e-02 7 0.96875 0.97656 0.98438 -0.01345 0.00337 1.71e-02 8 0.96875 0.97266 0.97656 -0.01345 -0.00511 8.41e-03 9 0.97266 0.97461 0.97656 -0.00511 -0.00089 4.24e-03 10 0.97461 0.97559 0.97656 -0.00089 0.00124 2.13e-03 11 0.97461 0.97510 0.97559 -0.00089 0.00018 1.06e-03 12 0.97461 0.97485 0.97510 -0.00089 -0.00036 5.31e-04 13 0.97485 0.97498 0.97510 -0.00036 -0.00009 2.66e-04 14 0.97498 0.97504 0.97510 -0.00009 0.00004 1.33e-04 15 0.97498 0.97501 0.97504 -0.00009 -0.00002 6.64e-05 16 0.97501 0.97502 0.97504 -0.00002 0.00001 3.32e-05 17 0.97501 0.97501 0.97502 -0.00002 -0.00001 1.66e-05 18 0.97501 0.97502 0.97502 -0.00001 0.00000 8.30e-06 19 0.97501 0.97502 0.97502 -0.00001 -0.00000 4.15e-06 20 0.97502 0.97502 0.97502 -0.00000 -0.00000 2.07e-06 21 0.97502 0.97502 0.97502 -0.00000 -0.00000 1.04e-06 22 0.97502 0.97502 0.97502 -0.00000 0.00000 5.19e-07 23 0.97502 0.97502 0.97502 -0.00000 -0.00000 2.59e-07 24 0.97502 0.97502 0.97502 -0.00000 0.00000 1.30e-07 Toleransi terpenuhi Hasil akhir = 0.975017

Dari hasil eksekusi ini didapat hasil x = 0.975017. Hasil ini tercapai setelah iterasi ke-24.

2.6.2 Program Sumber untuk Metode Regula Falsi

Program 2.6.2.1 dan 2.6.2.2 menggunakan algoritma metode Regula Falsi untuk menyelesaikan persamaan non-linear. Secara umum program memiliki bentuk yang sama dengan metode Bisection kecuali pada perhitungan nilai m. Program kembali akan dicoba untuk menyelesaikan persamaan :

tan(x) - x - 0.5 = 0

2.6.2.1 DEKLARASI SUMBER PROGRAM dalam BAHASA C++ // Program 1.2a // Metode Regula Falsi #include <stdio.h> #include <math.h> /* Daftar Variable a = batas bawah b = batas atas tol = toleransi max_iter = jumlah iterasi maksimum */ float a,m,b,F_a,F_m,F_b,tol; int max_iter; float f(float x) { return tan(x) - x - 0.5; } void main() { int it; float epsilon;

Page 19: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 20

printf("Batas bawah = "); scanf("%f",&a); printf("Batas atas = "); scanf("%f",&b); printf("Toleransi = "); scanf("%f",&tol); printf("Jumlah iterasi maksimum = "); scanf("%d",&max_iter); it = 0; F_a = f(a); F_b = f(b); if(F_a * F_b > 0) printf(" Nilai F(a) x F(b) > 0\n"); else { printf("It. a m b f(a) f(b)"); printf(" abs[f(b)-f(a)]/2\n"); do { it = it + 1; m = a - F_a * (b - a) / (F_b - F_a); F_m = f(m); printf("%3d %8.5f %8.5f %8.5f %8.5f %8.5f %8.2e\n", it,a,m,b,F_a,F_m,fabs(F_b-F_a)/2); epsilon = fabs(m-a); if(F_a * F_m <= 0) { b = m; F_b = F_m; } else { a = m; F_a = F_m; } } while(it <= max_iter && epsilon > tol); if(it<=max_iter) { printf("Toleransi terpenuhi\n"); printf("Hasil akhir = %g\n",b); } else printf("Toleransi tidak terpenuhi\n"); } }

2.6.2.2 DEKLARASI SUMBER PROGRAM dalam TURBO PASCAL { Program 1.2b Metode Regula Falsi Daftar Variable a = batas bawah b = batas atas tol = toleransi max_iter = jumlah iterasi maksimum } Var a,m,b,F_a,F_m,F_b,tol : real; max_iter,it : integer; epsilon : real; function f(x : real) : real; Begin f := sin(x)/cos(x) - x - 0.5; End; Begin write('Batas bawah = '); read(a); write('Batas atas = '); read(b); write('Toleransi = '); read(tol); write('Jumlah iterasi maksimum = '); read(max_iter); it := 0; F_a := f(a); F_b := f(b); if (F_a * F_b > 0) then writeln(' Nilai F(a) x F(b) > 0') else

Page 20: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 21

Begin write('It. a m b f(a) f(b)'); writeln(' abs[f(b)-f(a)]/2'); epsilon := tol+1; while((it <= max_iter) and (epsilon > tol)) do Begin it := it + 1; m := a - F_a * (b - a)/(F_b - F_a); F_m := f(m); write(it:3,' ',a:8:5,' ',m:8:5,' ',b:8:5,' '); writeln(F_a:8:5,' ',F_m:8:5,' ',abs(F_b-F_a)/2:4); epsilon := abs(m-a); if(F_a * F_m <= 0) Then Begin c := m; F_b := F_m End else Begin a := m; F_a := F_m End; End; if(it<=max_iter) Then Begin writeln('Toleransi terpenuhi'); writeln('Hasil akhir = ',m:9:7); End else writeln('Toleransi tidak terpenuhi'); End; End.

2.6.2.3 Contoh eksekusi program

Eksekusi program dilakukan dengan menggunakan data yang sama dengan metode Bisection. Hasil eksekusi program adalah sebagai berikut :

Batas bawah = 0 Batas atas = 1 Toleransi = 0.0000001 Jumlah iterasi maksimum = 30 It. a m b f(a) f(b) abs[f(b)-f(a)]/2 1 0.00000 0.89701 1.00000 -0.50000 -0.14456 2.79e-01 2 0.89701 0.97073 1.00000 -0.14456 -0.00925 1.01e-01 3 0.97073 0.97479 1.00000 -0.00925 -0.00050 3.33e-02 4 0.97479 0.97501 1.00000 -0.00050 -0.00003 2.90e-02 5 0.97501 0.97502 1.00000 -0.00003 -0.00000 2.87e-02 6 0.97502 0.97502 1.00000 -0.00000 -0.00000 2.87e-02 7 0.97502 0.97502 1.00000 -0.00000 -0.00000 2.87e-02 Toleransi terpenuhi Hasil akhir = 0.975017

Dari hasil eksekusi ini didapat hasil x = 0.975017 yang tercapai setelah iterasi ke-7. Dari hasil ini terlihat bahwa dengan menggunakan data yang sama sebagaimana yang digunakan pada metode Bisection, konvergensi hasil perhitungan akan lebih cepat dicapai.

Page 21: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 22

2.6.3 Program Sumber untuk Metode Iterasi

Program berikut menggunakan algoritma metode Iterasi untuk menyelesaikan persamaan non-linear. Program akan dicoba untuk menyelesaikan persamaan :

ex + x2 - 3x - 2 =0 atau dalam bentuk lain x - (ex + x2 - 2)/3 = 0 Dari bentuk ini diambil fungsi

g(x) = (ex + x2 -2)/3

2.6.3.1 DEKLARASI SUMBER PROGRAM dalam BAHASA C++ // Program 1.3a // Metode Iterasi #include <stdio.h> #include <math.h> /* Daftar Variable x0 = harga awal tol = toleransi max_iter = jumlah iterasi maksimum */ float x0,tol; int max_iter; float g(float x) { return (x*x + exp(x) - 2)/3; } void main() { int it; float epsilon,xb; printf("Harga awal = "); scanf("%f",&x0); printf("Toleransi = "); scanf("%f",&tol); printf("Jumlah iterasi maksimum = "); scanf("%d",&max_iter); it = 0; printf("It. x g(x) f(x)\n"); do { it = it + 1; xb = g(x0); epsilon = fabs(xb-x0); printf("%3d %8.5f %8.5f %8.2e\n",it,x0,xb,epsilon); x0 = xb; } while(it <= max_iter && epsilon > tol); if(it<=max_iter) { printf("Toleransi terpenuhi\n"); printf("Hasil akhir = %g\n",xb); } else printf("Toleransi tidak terpenuhi\n"); }

Page 22: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 23

2.6.3.2 DEKLARASI SUMBER PROGRAM dalam BAHASA PASCAL { Program 1.3b Metode Iterasi Daftar Variable x0 = harga awal tol = toleransi max_iter = jumlah iterasi maksimum } Var x0,xb,tol : real; max_iter,it : integer; epsilon : real; function g(x : real) : real; Begin g := (x*x + exp(x) - 2)/3; End; Begin write('Harga awal = '); read(x0); write('Toleransi = '); read(tol); write('Jumlah iterasi maksimum = '); read(max_iter); it := 0; writeln('It. x g(x) f(x)'); epsilon := tol+1; while((it <= max_iter) and (epsilon > tol)) do Begin it := it + 1; xb := g(x0); epsilon := abs(xb-x0); writeln(it:3,' ',x0:8:5,' ',xb:8:5,' ',epsilon:4); x0 := xb; End; if(it<=max_iter) Then Begin writeln('Toleransi terpenuhi'); writeln('Hasil akhir = ',xb:9:7); End else writeln('Toleransi tidak terpenuhi'); End.

2.6.3.3 CONTOH EKSEKUSI PROGRAM Harga awal = 1 Toleransi = 0.0000001 Jumlah iterasi maksimum = 20 It. x g(x) f(x) 1 1.00000 0.57276 4.27e-01 2 0.57276 0.03374 5.39e-01 3 0.03374 -0.32152 3.55e-01 4 -0.32152 -0.39053 6.90e-02 5 -0.39053 -0.39026 2.63e-04 6 -0.39026 -0.39027 9.12e-06 7 -0.39027 -0.39027 3.28e-07 8 -0.39027 -0.39027 2.98e-08 Toleransi terpenuhi Hasil akhir = -0.390272 Dari hasil eksekusi ini didapat hasil x = -0.390272 yang tercapai setelah iterasi ke-8.

Page 23: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 24

2.6.4 Program Sumber untuk Metode Newton-Raphson

Program berikut menggunakan algoritma metode Newton-Raphson untuk menyelesaikan persamaan non-linear. Program akan dicoba untuk menyelesaikan persamaan :

f(x) = ex + x2 - 3x - 2 = 0 Turunan pertama fungsi ini adalah :

f’(x) = ex + 2x - 3

2.6.4.1 DEKLARASI SUMBER PROGRAM dalam BAHASA C++ // Program 1.4a // Metode Newton-Raphson #include <stdio.h> #include <math.h> /* Daftar Variable x0 = harga awal tol = toleransi max_iter = jumlah iterasi maksimum */ float x0,tol; int max_iter; float f(float x) { return x*x - 3*x + exp(x) - 2; } float f1(float x) { return 2*x - 3 + exp(x); } void main() { int it; float epsilon,xb; printf("Harga awal = "); scanf("%f",&x0); printf("Toleransi = "); scanf("%f",&tol); printf("Jumlah iterasi maksimum = "); scanf("%d",&max_iter); it = 0; printf("It. x f(x) epsilon\n"); do { it = it + 1; xb = x0 - f(x0)/f1(x0); epsilon = fabs(xb-x0); printf("%3d %8.5f %8.5f %8.2e\n",it,xb,f(xb),epsilon); x0 = xb; } while(it <= max_iter && epsilon > tol); if(it<=max_iter) { printf("Toleransi terpenuhi\n"); printf("Hasil akhir = %g\n",xb); } else printf("Toleransi tidak terpenuhi\n"); }

Page 24: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 25

2.6.4.2 DEKLARASI SUMBER PROGRAM dalam BAHASA PASCAL { Program 1.4b Metode Newton-Raphson Daftar Variable x0 = harga awal tol = toleransi max_iter = jumlah iterasi maksimum } Var x0,xb,tol : real; max_iter,it : integer; epsilon : real; function f(x : real) : real; Begin f := x*x - 3*x + exp(x) - 2; End; function f1(x : real) : real; Begin f1 := 2*x - 3 + exp(x); End; Begin write('Harga awal = '); read(x0); write('Toleransi = '); read(tol); write('Jumlah iterasi maksimum = '); read(max_iter); it := 0; writeln('It. x f(x) epsilon'); epsilon := tol+1; while((it <= max_iter) and (epsilon > tol)) do Begin it := it + 1; xb := x0 - f(x0)/f1(x0); epsilon := abs(xb-x0); writeln(it:3,' ',xb:8:5,' ',f(xb):8:5,' ',epsilon:4); x0 := xb; End; if(it<=max_iter) Then Begin writeln('Toleransi terpenuhi'); writeln('Hasil akhir = ',xb:9:7); End else writeln('Toleransi tidak terpenuhi'); End.

2.6.4.3 CONTOH EKSEKUSI PROGRAM

Eksekusi program dilakukan dengan menggunakan harga awal 0, toleransi 10-5, dan jumlah iterasi maksimum sebesar 20. Hasil eksekusi program adalah sebagai berikut :

Harga awal = 0 Toleransi = 0.00001 Jumlah iterasi maksimum = 20

Page 25: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 26

It. x f(x) epsilon 1 -0.50000 0.35653 5.00e-01 2 -0.39494 0.01451 1.05e-01 3 -0.39028 0.00003 4.66e-03 4 -0.39027 0.00000 9.33e-06 Toleransi terpenuhi Hasil akhir = -0.390272

Dari hasil eksekusi ini didapat hasil x = -0.390272 yang tercapai setelah iterasi ke-4. Dapat dilihat bahwa untuk kasus ini penggunaan metode Newton-Rapson memberikan hasil yang lebih cepat daripada metode Iterasi.

2.6.5 Program Sumber untuk Metode Secant

Program berikut menggunakan algoritma metode Secant untuk menyelesaikan persamaan non-linear. Program kembali akan dicoba untuk menyelesaikan persamaan :

F(x) = ex + x2 - 3x - 2 = 0

2.6.5.1 DEKLARASI SUMBER PROGRAM dalam BAHASA C++ // Program 1.5a // Metode Secant #include <stdio.h> #include <math.h> /* Daftar Variable x0 = harga awal x1 = harga kedua tol = toleransi max_iter = jumlah iterasi maksimum */ float x0,x1,tol; int max_iter; float f(float x) { return x*x - 3*x + exp(x) - 2; } void main() { int it; float epsilon,xb; printf("Harga awal = "); scanf("%f",&x0); printf("Harga kedua = "); scanf("%f",&x1); printf("Toleransi = "); scanf("%f",&tol); printf("Jumlah iterasi maksimum = "); scanf("%d",&max_iter); it = 0; printf("It. x f(x) epsilon\n"); do { it = it + 1; xb = x1 - f(x1)*(x1 - x0)/(f(x1) - f(x0)); epsilon = fabs(xb-x0); printf("%3d %8.5f %8.5f %8.2e\n",it,xb,f(xb),epsilon);

Page 26: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 27

x0 = x1; x1 = xb; } while(it <= max_iter && epsilon > tol); if(it<=max_iter) { printf("Toleransi terpenuhi\n"); printf("Hasil akhir = %g\n",xb); } else printf("Toleransi tidak terpenuhi\n"); }

2.6.5.2 DEKLARASI SUMBER PROGRAM dalam BAHASA TURBO PASCAL { Program 1.5b Metode Secant Daftar Variable x0 = harga awal x1 = harga kedua tol = toleransi max_iter = jumlah iterasi maksimum } Var x0,x1,xb,tol : real; max_iter,it : integer; epsilon : real; function f(x : real) : real; Begin f := x*x - 3*x + exp(x) - 2; End; Begin write('Harga awal = '); read(x0); write('Harga kedua = '); read(x1); write('Toleransi = '); read(tol); write('Jumlah iterasi maksimum = '); read(max_iter); it := 0; writeln('It. x f(x) epsilon'); epsilon := tol+1; while((it <= max_iter) and (epsilon > tol)) do Begin it := it + 1; xb := x1 - f(x1)*(x1-x0)/(f(x1) - f(x0)); epsilon := abs(xb-x1); writeln(it:3,' ',xb:8:5,' ',f(xb):8:5,' ',epsilon:4); x0 := x1; x1 := xb; End; if(it<=max_iter) Then Begin writeln('Toleransi terpenuhi'); writeln('Hasil akhir = ',xb:9:7); End else writeln('Toleransi tidak terpenuhi'); End.

2.6.5.3 CONTOH EKSEKUSI PROGRAM

Eksekusi program dilakukan dengan menggunakan harga awal dan -0.1, toleransi 10-5, dan jumlah iterasi maksimum sebesar 20. Hasil eksekusi program adalah sebagai berikut :

Harga awal = 0

Page 27: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear Harga kedua = -0.1 Toleransi = 0.00001 Jumlah iterasi maksimum = 20 It. x f(x) epsilon 1 -0.46547 0.24091 4.65e-01 2 -0.37966 -0.03278 2.80e-01 3 -0.38994 -0.00103 7.55e-02 4 -0.39027 0.00000 1.06e-02 5 -0.39027 0.00000 3.33e-04 6 -0.39027 0.00000 1.52e-06 Toleransi terpenuhi Hasil akhir = -0.390272

Dari hasil eksekusi ini didapat hasil x = -0.390272, sama dengan hasil yang didapat dengan menggunakan metode iterasi dan metode Newton-Raphson. Hasil ini tercapai setelah iterasi ke-6. Walaupun konvergensi hasil perhitungan lebih lambat dibandinggkan dengan penggunaan metode Newton-Raphson, namun metode ini memiliki kelebihan karena tidak memerlukan penentuan turunan fungsi.

2.7 TERAPAN METODE NUMERIK dalam REKAYASA SIPIL

Persamaan non-linear sebagai model matematika bagi solusi masalah rekayasa sipil dengan menggunakan metode numerik merupakan salah satu alternatif prosedur pemecahan yang digunakan apabila tidak dimungkin perolehan bentuk closed form dari pemodelan.

Lima contoh bentuk penyelesaian numerik persamaan non-linear di dalam bidang truktur, geoteknik, sumber tenaga air, transportasi atau jalan raya, dan manajemen konstruksi berikut ini bertujuan untuk memberi pemahaman mengenai penggunaan terapan metode numerik untuk mencari solusi nyata bagi suatu permasalahan.

2.7.1 Bidang Teknik Struktur

Frekuensi alami dari getaran balok uniform yang terjepit pada salah satu ujungnya dan bebas pada ujungnya yang lain dapat dicari dari persamaan berikut :

cos (βl) cosh(βl) + 1 = 0 (a)

Balok Perletakan jepit

dengan β = ρω2/EI (b) l = panjang elemen balok = 1 meter ρ = berat jenis elemen balok = 2.4 x 104

ω = frekuensi pribadi balok (sec-1) EI = kekakuan lentur balok = 2.5 x 106

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 28

Page 28: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear Tetapkan nilai β dari persamaan (a), kemudian gunakan nilai β untuk menentukan frekuensi alami balok. Gunakan metode Bisection untuk mencari akar persamaan (a).

Penyelesaian Dengan memasukkan nilai l = 1 ke dalam persamaan (a) : cos (β) cosh(β) + 1 = 0 Tulis kembali persamaan dengan variabel bebas x : cos (x) cosh(x) + 1 = 0 Selanjutnya digunakan program 2.6.1 dengan memodifikasi bagian definisi fungsi menjadi :

return cos(x) * cosh(x) + 1; (C++) atau f := cos(x) * (exp(x) + exp(-x)) / 2 + 1; (Pascal) Maka, eksekusi program dengan batasan interval [7,8] memberikan hasil eksekusi program sebagai berikut :

Batas bawah = 7 Batas atas = 8 Toleransi = 0.0000001 Jumlah iterasi maksimum = 30 It. a b c f(a) f(c) abs[f(c)-f(a)]/2 1 7.00000 7.50000 8.00000 414.37745 314.36577 3.2E+02 2 7.50000 7.75000 8.00000 314.36577 121.48308 2.7E+02 3 7.75000 7.87500 8.00000 121.48308 -26.64433 1.7E+02 4 7.75000 7.81250 7.87500 121.48308 52.24211 7.4E+01 5 7.81250 7.84375 7.87500 52.24211 14.04382 3.9E+01 6 7.84375 7.85938 7.87500 14.04382 -5.98411 2.0E+01 7 7.84375 7.85156 7.85938 14.04382 4.10828 1.0E+01 8 7.85156 7.85547 7.85938 4.10828 -0.91823 5.0E+00 9 7.85156 7.85352 7.85547 4.10828 1.59993 2.5E+00 10 7.85352 7.85449 7.85547 1.59993 0.34208 1.3E+00 11 7.85449 7.85498 7.85547 0.34208 -0.28777 6.3E-01 12 7.85449 7.85474 7.85498 0.34208 0.02723 3.1E-01 13 7.85474 7.85486 7.85498 0.02723 -0.13025 1.6E-01 14 7.85474 7.85480 7.85486 0.02723 -0.05150 7.9E-02 15 7.85474 7.85477 7.85480 0.02723 -0.01214 3.9E-02 16 7.85474 7.85475 7.85477 0.02723 0.00755 2.0E-02 17 7.85475 7.85476 7.85477 0.00755 -0.00229 9.8E-03 18 7.85475 7.85476 7.85476 0.00755 0.00263 4.9E-03 19 7.85476 7.85476 7.85476 0.00263 0.00017 2.5E-03 20 7.85476 7.85476 7.85476 0.00017 -0.00106 1.2E-03 21 7.85476 7.85476 7.85476 0.00017 -0.00045 6.2E-04 22 7.85476 7.85476 7.85476 0.00017 -0.00014 3.1E-04 23 7.85476 7.85476 7.85476 0.00017 0.00001 1.5E-04 24 7.85476 7.85476 7.85476 0.00001 -0.00006 7.7E-05 Toleransi terpenuhi Hasil akhir = 7.8547575

Harga yang didapat dimasukkan ke dalam persamaan (b) untuk mendapatkan nilai frekuensi alami balok :

β = ρω2/EI

4

6

10*2.47.8547575*10*2.5

ρβ*EIω ==

ω = 28.6 sec-1

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 29

Page 29: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

2.7.2 BidangTeknik Transportasi Dalam desain tikungan jalan lingkar, terdapat rumusan berikut :

( )M

TR

RR 1/222

2+

+= (a)

dengan R = jari-jari kurva jalan T = jarak tangensial = 273.935 m M = ordinat tengah = 73.773 m

Hitunglah berapa nilai R dengan mengguna-kan metode iterasi.

M

T

R

Penyelesaian Dengan memasukkan nilai-nilai yang diketahui ke persamaan (a) didapat :

( )73.773.773

273.935R

RR 1/222

2+

+=

Tulis kembali persamaan dalam variabel bebas x sebagai berikut:

73.77375040.38)(x

xx 1/22

2+

+=

Selanjutnya digunakan program 2.6.3 dengan memodifikasi bagian definisi fungsi sebagai berikut:

return x*x / sqrt(x*x + 75040.38) + 73.773 (C++) g := x*x / sqrt(x*x + 75040.38) + 73.773 (Pascal)

Program dieksekusi dengan memberikan harga awal xo =125. Hasil eksekusi program adalah :

Harga awal = 125 Toleransi = 0.001 Jumlah iterasi maksimum = 30 It. x g(x) f(x) 1 125.00000 125.66487 6.6E-01 2 125.66487 126.17022 5.1E-01 3 126.17022 126.55552 3.9E-01 4 126.55552 126.84999 2.9E-01 5 126.84999 127.07544 2.3E-01 6 127.07544 127.24828 1.7E-01 7 127.24828 127.38093 1.3E-01 8 127.38093 127.48282 1.0E-01 9 127.48282 127.56112 7.8E-02 10 127.56112 127.62132 6.0E-02 11 127.62132 127.66763 4.6E-02 12 127.66763 127.70326 3.6E-02 13 127.70326 127.73068 2.7E-02 14 127.73068 127.75178 2.1E-02 15 127.75178 127.76803 1.6E-02

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 30

Page 30: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear 16 127.76803 127.78053 1.3E-02 17 127.78053 127.79016 9.6E-03 18 127.79016 127.79757 7.4E-03 19 127.79757 127.80328 5.7E-03 20 127.80328 127.80767 4.4E-03 21 127.80767 127.81106 3.4E-03 22 127.81106 127.81366 2.6E-03 23 127.81366 127.81567 2.0E-03 24 127.81567 127.81722 1.5E-03 25 127.81722 127.81841 1.2E-03 26 127.81841 127.81932 9.2E-04 Toleransi terpenuhi Hasil akhir = 127.8193231 Panjang jari-jari kurva jalan adalah : R = 127.819 m

2.7.3 Bidang Teknik Sumber Daya Air Koefisien gesek untuk aliran turbulen dalam sebuah pipa diberikan dalam persamaan berikut :

⎟⎟⎠

⎞⎜⎜⎝

⎛+−=

fR9.35

De log*2.01.14

f1

e10 (a)

dengan f = koefisien gesek aliran Re = bilangan Reynolds e = kekasaran pipa D = diameter pipa

Hitunglah nilai koefisien gesek untuk dua kasus berikut ini : D = 0.1 m e = 0.0025 Re = 3 x 104

D = 0.1 m e = 0.0015 Re = 5 x 106

Penyelesaian

Tulis kembali persamaan dalam bentuk : 2

e10 fR

9.35Delog*2.0 - 1.14=f

⎟⎟

⎜⎜

⎥⎥⎦

⎢⎢⎣

⎡+ , maka

metode yang paling cocok digunakan adalah metode iterasi.

Kasus (i) Dengan memasukkan nilai-nilai yang diketahui ke dalam persamaan akan didapat :

2

410 f*10*3

9.350.1

0.0025 log*2.0 - 1.14=f−

⎟⎟⎠

⎞⎜⎜⎝

⎛⎥⎦

⎤⎢⎣

⎡+

2

10 f

0.00031170.025 log*2.0 - 1.14=f−

⎟⎟⎠

⎞⎜⎜⎝

⎛⎥⎦

⎤⎢⎣

⎡+

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 31

Page 31: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear Tuliskan dalam variabel bebas x, maka akan diperoleh persamaan berikut :

2

10 x

0.00031170.025 log*2.0 - 1.14=x−

⎟⎟⎠

⎞⎜⎜⎝

⎛⎥⎦

⎤⎢⎣

⎡+

Dengan program 2.6.3, setelah memodifikasi definisi fungsi, hasil eksekusi program adalah: Harga awal = 1 Toleransi = 0.0000001 Jumlah iterasi maksimum = 20 It. x g(x) f(x) 1 1.00000 0.05325 9.5E-01 2 0.05325 0.05412 8.7E-04 3 0.05412 0.05411 9.0E-06 4 0.05411 0.05411 9.3E-08 Toleransi terpenuhi Hasil akhir = 0.0541142

Maka nilai koefisien gesek untuk kasus (i) adalah : f = 0.0541142

Kasus (ii) Dengan memasukkan nilai-nilai yang diketahui ke dalam persamaan akan didapat :

2

610 f*10*5

9.350.1

0.0015 log*2.0 - 1.14=f−

⎟⎟⎠

⎞⎜⎜⎝

⎛⎥⎦

⎤⎢⎣

⎡+

2

10 f

0.000001870.015 log*2.0 - 1.14=f−

⎟⎟⎠

⎞⎜⎜⎝

⎛⎥⎦

⎤⎢⎣

⎡+

Tulis fungsi dalam variabel bebas x akan diperoleh persamaan berikut:

2

10 x

0.000001870.015 log*2.0 - 1.14=x−

⎟⎟⎠

⎞⎜⎜⎝

⎛⎥⎦

⎤⎢⎣

⎡+

Dengan program 2.6.3, dengan memodifikasi bagian definisi fungsi, diperoleh hasil eksekusi program berikut :

Harga awal = 1 Toleransi = 0.0000001 Jumlah iterasi maksimum = 20 It. x g(x) f(x) 1 1.00000 0.04363 9.6E-01 2 0.04363 0.04363 7.5E-06 3 0.04363 0.04363 8.1E-10 Toleransi terpenuhi Hasil akhir = 0.0436334 Nilai koefisien gesek untuk kasus (ii) adalah : f = 0.0436334

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 32

Page 32: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

2.7.4 Bidang Geoteknik

Untuk menghitung kedalaman pemancangan dinding turap baja dapat digunakan rumusan berikut:

KP D3 - KA (H + D)3 = 0 (a)

Ka H

KpD

dengan KA = koefisien tegangan aktif tanah = tan2(450 - ϕ/2) KP = koefisien tegangan pasif tanah = tan2(450 + ϕ/2 ) H = tinggi dinding turap D = kedalaman pemancangan ϕ = sudut geser dalam tanah

Dengan menggunakan metode Newton-Raphson, hitunglah kedalaman pemancangan dinding turap bila diketahui H = 15 m dan ϕ = 280. Penyelesaian

Hitung KA dan KP : KA = tan2(45 - ϕ/2) = tan2(45 - 28/2); KP = tan2(45 + ϕ/2) = tan2(45 + 28/2) = 0.361 = 2.770 Kedua parameter ini dimasukkan ke persamaan (a) : KP D3 - KA (H + D)3 = 0 2.770 D3 - 0.361 (15 + D)3 = 0 Tulis kembali persamaan dalam variabel bebas x sebagai : 2.770 x3 - 0.361 (15 + x)3 = 0 maka turunan fungsi adalah : f’ (x) := 8.310 x2 - 1.083 (15 + x)2 = 0 Selanjutnya gunakan program 2.6.4 dengan modifikasi pada definisi fungsi : Fungsi f(x) : return 2.770 * x * x * x - 0.361 * (15 + x) * (15 + x) * (15 + x); (C++) f : = 2.770 * x * x * x - 0.361 * (15 + x) * (15 + x) * (15 + x); (Pascal) Fungsi f ’(x) : return 8.310 * x * x - 1.083 * (15 + x) * (15 + x); (C++) f1 : = 8.310 * x * x - 1.083 * (15 + x) * (15 + x); (Pascal) Hasil eksekusi program adalah: Harga awal = 10 Toleransi = 0.001 Jumlah iterasi maksimum = 20 It. x f(x) epsilon 1 28.62530 35000.10294 1.9E+01 2 21.25399 9393.24741 7.4E+00 3 17.22334 2073.78951 4.0E+00 4 15.67640 250.07278 1.5E+00 5 15.43196 5.76369 2.4E-01 6 15.42605 0.00332 5.9E-03 7 15.42605 0.00000 3.4E-06 Toleransi terpenuhi Hasil akhir = 15.4260489

Kedalaman pemancangan yang diperlukan adalah : D = 15.426 m

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 33

Page 33: bahan kuliah ke 3 metoda numerik.pdf

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa Sipil Bab II hal. 34

2.7.5 Manajemen Konstruksi

Dari suatu perhitungan tentang kebutuhan akan produksi optimal suatu komponen struktur didapat persamaan biaya yang dibutuhkan untuk pengadaan produksi dalam satu hari sebagai berikut :

C = 13000 N-1 + 158.11 N-0.5 + N + 0.0025 N2

dengan C = biaya per hari N = jumlah komponen yang diproduksi

Hitunglah jumlah optimal komponen yang diproduksi sehingga biaya produksi menjadi minimum.

Penyelesaian Biaya minimum turunan pertama dari persamaan biaya harus nol.. Ini berarti : C ‘ (N) = - 13000 N-2 - 79.055 N-1.5 + 1 + 0.005 N = 0 Nyatakan kembali persamaan dalam varibel bebas x : - 13000 x -2 - 79.055 x -1.5 + 1 + 0.005 x = 0 Maka, menghitung akar persamaan dengan program 1.5 setelah modifikasi pada definisi

fungsi adalah: return -13000 /(x * x) - 79.055 / (x * sqrt(x)) + 1 + 0.005 * x; (C++) f : = -13000 /(x * x) - 79.055 / (x * sqrt(x)) + 1 + 0.005 * x; (Pascal) yang memberikan hasil eksekusi program : Harga awal = 100 Harga kedua = 90 Toleransi = 0.001 Jumlah iterasi maksimum = 10 It. x f(x) epsilon 1 96.71768 0.01074 6.7E+00 2 96.43829 0.00092 2.8E-01 3 96.41215 -0.00000 2.6E-02 4 96.41226 0.00000 1.1E-04 Toleransi terpenuhi Hasil akhir = 96.4122577 Jumlah produksi optimal dalam satu hari adalah : N = 94 buah