Anda di halaman 1dari 37

Penyelesaian Numerik Persamaan Non-Linear

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 100C. Bola ini
kemudian disimpan di dalam ruang pendingin dengan temperatur 0C. Dengan anggapan ada
perambatan panas, maka konduksi panas dapat dinyatakan dalam persamaan fungsi untuk

2 t
temperatur T di pusat bola setelah t detik sebagai : T(t) = 100 sin
) ( )
n
n 8
n =1
(2.1)
1
i adalah akar positif persamaan : cos =
2

n exp

(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).
y
f(a)

y = f(x)
b

a
f(b)

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

Metode Numerik Dalam Ilmu Rekayasa Sipil

Bab II hal. 1

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 :
1 jika f(a) dan f(m) berbeda tanda, berarti di [a,m]

2 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.
y
f(a)

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

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

x
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

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 :
a) f(b)
f(b) f(a)

m = a (b

f(a)

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

f(b

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)
y
f(a)
y
f(a)
b
a

a
f(b)
f(b)

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


(b). harga mutlak f (m) < 10-6
Gambar 2.4 Syarat lengkap kecermatan.
Metode Numerik Dalam Ilmu Rekayasa Sipil
Bab II hal. 3

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
y=tanx
y=2x

x
/2

3/2

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

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
Baca
a, b, tol,
iter_max
Iter = 0
Fa = F(a)
Fb = F(b)

Fa * Fb > 0
tidak

Tulis
Fa * Fb > 0

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

|m-a| < tol


iter > iter_max

Ya

Tidak
Fa * Fm < 0
ya

tidak

b=m
Fb = Fm

a=m
Fa = Fm

Tulis hasil
m, F(m)

1
SELESAI

Metode Numerik Dalam Ilmu Rekayasa Sipil

Bab II hal. 5

Penyelesaian Numerik Persamaan Non-Linear


2.2.2.2 Bagan Alir Metode Regula Falsi
MULAI

DEFINISIKAN
FUNGSI
Baca a,
b, tol,
iter_max

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

Fa * Fb > 0

ya
tidak
Tulis
Fa*Fb > 0
iter = iter +1
m = a - Fb*(b-a)
(Fb - Fa)
Fm = F(m)

|m-a|<tol
iter>iter_max

ya

tidak
Fa*Fm<0

ya
b=m
Fb = Fm

tidak
a=m
Fa = Fm

Tulis hasil
m, F(m)

1
SELESAI

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 6

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 x 0
(perkiraan awal), x1, x 2 ,..., 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 x 3 - 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
= (3 * 3.2771 + 20)1/3 = 3.1008
x2
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

y=x
y = g(x)
mbar 2.6
Geometri fungsi f(x)
= x - g(x)

x
M Rekayasa
e

Sipil

G
a
Bab II hal. 7

Penyelesaian Numerik Persamaan Non-Linear


perilaku fungsi. Jika diamati tiga cara penulisan f(x) sebagai x - g(x) :
(ii). x - (x - 20) /
(iii). x - 20/ (x

3 =0
- 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.
k
0
1
2
3
4
5
6
7
8
9

Cara ii

Cara iii

5
35
14285

5
0.9091
-9.2015

(tidak banyak manfaatnya untuk


dilanjutkan)

Cara iv
5
2.6458
3.2495
3.0257
3.1
3.0743
3.0831
3.0801
3.0811
3.0808

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.
8

g(x)=(x -20)/3
7
y=x
6
g(x)=(3+20/x)

0.5

4
3
2

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

1
0
0
-1
-2

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

Metode Numerik Dalam Ilmu


Rekayasa Sipil Bab II hal. 8

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=x
y=g(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 (x baru - 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

Penyelesaian Numerik Persamaan Non-Linear


2.3.2.1 Bagan Alir Metode Iterasi

MULAI
DEFINISIKAN
FUNGSI
Baca
xo, tol,
iter_max
Iter = 0

iter = iter +1

xb = G(xo)

|xb-xo|<tol ya
iter>iter_max
Tidak
xo = xb

Tulis hasil
xb, F(xb)
Stop

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 10

Penyelesaian Numerik Persamaan Non-Linear


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.
y

garis singgung

xk+1

xk
f(x)

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


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

f(xk ) f(xk +1)

(2.6)

(xk xk +1)
f(xk )

f'(x )= (xk xk +1)

(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 - ( xk - 3xk - 20) / (3xk - 3).
Perkiraan awal x0 = 5
x0 = 5
x3 = 3.0859
x1 = 3.75
x4 = 3.0809
x2

= 3.2018

x5 = 3.0809
Metode Numerik Dalam Ilmu Rekayasa Sipil
Bab II hal. 11

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
d x f (x )
g' (x ) =
=f (x)f"(x) <1

(2.9)

[f' (x )]
f'(x ) x = x
dx
Apabila nilai turunan fungsi susah didapat, nilai ini dapat didekati dengan harga fungsi dari
hasil dua tahapan proses sebelumnya.
2.10
Penentuan
nilai turunan
fungsi dengan
menggunakan
metode
Secant.

xk

xk+1

G
a
m
ba
r

xk+2

l
a
Pada Gambar 2.10, jika nilai xk dand x
x x
x x )
k+2

k+1

k+1

f (x k+1 ) = ff (x k ) f (x
x

=x

f (x

k+2
k+1
k+1 f (x k
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,

i
t
e
r
a
s
i
m
a
k
s
i
m
u
m
,
a
k
h
i
r
i

p
r
o
g
r
a
m
.
e
)
.
x
=
x
b
a
r
u

,
d
a
n
k
e
m
b
a
l
i
k
e
l
a
n
g
k
a
h
(
b
)
.

M
tode Numerik Dalam
eIlmu Rekayasa Sipil

Bab II hal. 13

Penyelesaian Numerik Persamaan Non-Linear


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
DEFINISIKAN
FUNGSI
Baca
xo, tol,
iter_max

Iter = 0

iter = iter +1
Fx=F(xo)
F1x=F'(xo)

xb =xo-Fx/F1x

|xb-xo|<tol ya
iter>iter_max
Tidak
xo = xb

Tulis hasil
xb, F(xb)

SELESAI
Metode Numerik Dalam Ilmu Rekayasa Sipil
Bab II hal. 14

Penyelesaian Numerik Persamaan Non-Linear


2.4.3.2 Bagan Alir Metode Secant

MULAI
DEFINISIKAN
FUNGSI
Baca
xo, x1, tol,
iter_max

Iter = 0

iter = iter +1
xb =x1- f(x1)*(x1-xo)
[f(x1)-f(xo)]

|xb-xo|<tol ya
iter>iter_max
Tidak
xo = xb

Tulis hasil
xb, F(xb)

SELESAI

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 15

Penyelesaian Numerik Persamaan Non-Linear


2.5 NILAI AWAL PERKIRAAN
Dalam hal tidak adanya petunjuk dalam penetapan nilai awal, maka usaha berikut ini dapat
dilakukan :
1 Membuat grafik fungsi, lalu diidentifikasikan segmen fungsi yang memotong absis.

2 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++

1/
2/

Program 1.1a
Metode Bisection

#include

<stdio.h>

#include <math.h>

/* Daftar Variable

1
2

tol

= batas bawah
= batas atas
= toleransi
max_iter = jumlah iterasi maksimum

*/

float a,m,b,F_a,F_m,F_b,tol;
int max_iter;

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 16

Penyelesaian Numerik Persamaan Non-Linear


float f(float x)
{
return tan(x) - x - 0.5;
}
void main()
{
int it;
float epsilon;
printf("Batas bawah
printf("Batas atas
printf("Toleransi

= "); scanf("%f",&a);
= "); scanf("%f",&b);
= "); scanf("%f",&tol);

printf("Jumlah iterasi maksimum = "); scanf("%d",&max_iter);

it = 0;
F_a = f(a);
Nilai F(a) x F(b) > 0\n");
F_b = f(b);
if(F_a * F_b > 0) printf("
else
{
a
m
b
f(a)
f(b)");
printf("It.
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

1
2

= batas bawah
= batas atas
= toleransi

tol

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;

Bab II hal. 17
Metode Numerik Dalam Ilmu Rekayasa Sipil

Penyelesaian Numerik Persamaan Non-Linear


Begin
write('Batas bawah
write('Batas atas
write('Toleransi

= '); read(a);
= '); read(b);
= '); read(tol);

write('Jumlah iterasi maksimum = '); read(max_iter);


it := 0;
F_a := f(a);
F_b := f(b);
Nilai F(a) x F(b) > 0')
if (F_a * F_b > 0) then writeln('
else
Begin
a
m
b
f(a)
f(b)');
write('It.
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
Begi
n
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
Batas
atas
Toleransi

= 0
= 1
= 0.0000001

Jumlah iterasi maksimum = 30


It.
1
2
3
4

a
0.00000
0.50000
0.75000
0.87500

m
0.50000
0.75000
0.87500
0.93750

b
1.00000
1.00000
1.00000
1.00000

f(a)
-0.50000
-0.45370
-0.31840
-0.17758

f(b)
abs[f(b)-f(a)]/2
-0.45370
2.79e-01
-0.31840
2.56e-01
-0.17758
1.88e-01
-0.07543
1.17e-01

0.93750

0.96875

1.00000

-0.07543 -0.01345

6.64e-02

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 18

Penyelesaian Numerik Persamaan Non-Linear


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

0.96875
0.96875
0.96875
0.97266
0.97461
0.97461
0.97461
0.97485
0.97498
0.97498
0.97501
0.97501
0.97501
0.97501
0.97502
0.97502
0.97502
0.97502

0.98438
0.97656
0.97266
0.97461
0.97559
0.97510
0.97485
0.97498
0.97504
0.97501
0.97502
0.97501
0.97502
0.97502
0.97502
0.97502
0.97502
0.97502

1.00000
0.98438
0.97656
0.97656
0.97656
0.97559
0.97510
0.97510
0.97510
0.97504
0.97504
0.97502
0.97502
0.97502
0.97502
0.97502
0.97502
0.97502

-0.01345
-0.01345
-0.01345
-0.00511
-0.00089
-0.00089
-0.00089
-0.00036
-0.00009
-0.00009
-0.00002
-0.00002
-0.00001
-0.00001
-0.00000
-0.00000
-0.00000
-0.00000

0.02078
0.00337
-0.00511
-0.00089
0.00124
0.00018
-0.00036
-0.00009
0.00004
-0.00002
0.00001
-0.00001
0.00000
-0.00000
-0.00000
-0.00000
0.00000
-0.00000

3.54e-02
1.71e-02
8.41e-03
4.24e-03
2.13e-03
1.06e-03
5.31e-04
2.66e-04
1.33e-04
6.64e-05
3.32e-05
1.66e-05
8.30e-06
4.15e-06
2.07e-06
1.04e-06
5.19e-07
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++

1/
2/

Program 1.2a

Metode Regula Falsi


#include <stdio.h>
#include <math.h>
/* Daftar Variable

1
2

tol

= batas bawah
= batas atas
= 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;

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 19

Penyelesaian Numerik Persamaan Non-Linear


printf("Batas bawah
printf("Batas atas
printf("Toleransi

= "); scanf("%f",&a);
= "); scanf("%f",&b);
= "); scanf("%f",&tol);

printf("Jumlah iterasi maksimum = "); scanf("%d",&max_iter);

it = 0;
F_a = f(a);
F_b = f(b);
Nilai F(a) x F(b) > 0\n");
if(F_a * F_b > 0) printf("
else
{
a
m
b
f(a)
f(b)");
printf("It.
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_bF_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

1
2

= batas bawah

= 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
= '); read(a);
write('Batas bawah
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);
Nilai F(a) x F(b) > 0')
if (F_a * F_b > 0) then writeln('
else

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 20

Penyelesaian Numerik Persamaan Non-Linear


Begin
a
m
b
f(a)
write('It.
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

f(b)');

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
Batas atas
Toleransi

= 0
= 1
= 0.0000001

Jumlah iterasi maksimum = 30


It.
1
2
3
4
5
6

a
0.00000
0.89701
0.97073
0.97479
0.97501
0.97502

m
0.89701
0.97073
0.97479
0.97501
0.97502
0.97502

b
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000

f(a)
-0.50000
-0.14456
-0.00925
-0.00050
-0.00003
-0.00000

f(b)
-0.14456
-0.00925
-0.00050
-0.00003
-0.00000
-0.00000

abs[f(b)-f(a)]/2
2.79e-01
1.01e-01
3.33e-02
2.90e-02
2.87e-02
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.
Metode Numerik Dalam Ilmu Rekayasa Sipil
Bab II hal. 21

Penyelesaian Numerik Persamaan Non-Linear


2.6.3 Program Sumber untuk Metode Iterasi
Program berikut menggunakan algoritma metode Iterasi untuk menyelesaikan persamaan nonlinear. 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++

1/
2/

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;
= "); scanf("%f",&x0);
printf("Harga awal
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");

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 22

Penyelesaian Numerik Persamaan Non-Linear


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
: real;
x0,xb,tol
max_iter,it
: integer;
epsilon

: real;

function g(x : real) : real;


Begin
g := (x*x + exp(x) - 2)/3;
End;
Begin
write('Harga awal
write('Toleransi

= '); read(x0);
= '); 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.
Metode Numerik Dalam Ilmu Rekayasa Sipil

Bab II hal. 23

Penyelesaian Numerik Persamaan Non-Linear

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++

1/
2/

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
{
return x*x

x)
- 3*x + exp(x) - 2;

}
float f1(float x)
{
- 3 + exp(x);
return 2*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;
x
f(x)
epsilon\n");
printf("It.
do
{
it + 1;
it =
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");

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 24

Penyelesaian Numerik Persamaan Non-Linear

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
max_iter,it
epsilon

: real;
: integer;
: 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
write('Toleransi

= '); read(x0);
= '); read(tol);

write('Jumlah iterasi maksimum = '); read(max_iter);


it := 0;
x
f(x)
epsilon');
writeln('It.
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
Toleransi
Jumlah iterasi maksimum =

= 0
= 0.00001
20

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 25

Penyelesaian Numerik Persamaan Non-Linear

It.
1
2
3

x
-0.50000
-0.39494
-0.39028

f(x)
epsilon
0.35653 5.00e-01
0.01451 1.05e-01
0.00003 4.66e-03

-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 nonlinear. Program kembali akan dicoba untuk menyelesaikan persamaan :
F(x) = ex + x2 - 3x - 2 = 0

2.6.5.1 DEKLARASI SUMBER PROGRAM dalam BAHASA C++

1/
2/

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
{
return x*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;
x
f(x)
epsilon\n");
printf("It.
do
{
it = it + 1;
xb = x1 - f(x1)*(x1 - x0)/(f(x1) - f(x0));
epsilon = fabs(xb-x0);
printf("%3d

%8.5f

%8.5f

Metode Numerik Dalam Ilmu Rekayasa Sipil

%8.2e\n",it,xb,f(xb),epsilon);

Bab II hal. 26

Penyelesaian Numerik Persamaan Non-Linear


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
max_iter,it
epsilon

: real;
: integer;
: real;

function f(x : real) : real;


Begin
f := x*x - 3*x + exp(x) - 2;
End;
Begin
= '); read(x0);
write('Harga awal
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

Metode Numerik Dalam Ilmu Rekayasa Sipil

Bab II hal. 27

Penyelesaian Numerik Persamaan Non-Linear


Harga kedua
Toleransi

= -0.1
= 0.00001

Jumlah iterasi maksimum = 20


It.
1
2
3
4
5

x
-0.46547
-0.37966
-0.38994
-0.39027
-0.39027

f(x)
0.24091
-0.03278
-0.00103
0.00000
0.00000

epsilon
4.65e-01
2.80e-01
7.55e-02
1.06e-02
3.33e-04

-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 ke6. 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)

Perletakan jepit

dengan

= 2/EI
= panjang elemen balok = 1 meter
= berat jenis elemen balok = 2.4 x 104
= frekuensi pribadi balok (sec-1)

Balok

(b)

6
EI = kekakuan lentur balok = 2.5 x 10

Metode Numerik Dalam Ilmu Rekayasa Sipil

Bab II hal. 28

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
Batas atas
Toleransi

= 7
= 8
= 0.0000001

Jumlah iterasi maksimum = 30


It.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

a
7.00000
7.50000
7.75000
7.75000
7.81250
7.84375
7.84375
7.85156
7.85156
7.85352
7.85449
7.85449
7.85474
7.85474
7.85474
7.85474
7.85475
7.85475
7.85476
7.85476
7.85476
7.85476
7.85476

24 7.85476

b
7.50000
7.75000
7.87500
7.81250
7.84375
7.85938
7.85156
7.85547
7.85352
7.85449
7.85498
7.85474
7.85486
7.85480
7.85477
7.85475
7.85476
7.85476
7.85476
7.85476
7.85476
7.85476
7.85476

c
8.00000
8.00000
8.00000
7.87500
7.87500
7.87500
7.85938
7.85938
7.85547
7.85547
7.85547
7.85498
7.85498
7.85486
7.85480
7.85477
7.85477
7.85476
7.85476
7.85476
7.85476
7.85476
7.85476

f(a)
414.37745
314.36577
121.48308
121.48308
52.24211
14.04382
14.04382
4.10828
4.10828
1.59993
0.34208
0.34208
0.02723
0.02723
0.02723
0.02723
0.00755
0.00755
0.00263
0.00017
0.00017
0.00017
0.00017

f(c) abs[f(c)-f(a)]/2
314.36577 3.2E+02
121.48308 2.7E+02
-26.64433 1.7E+02
52.24211 7.4E+01
14.04382 3.9E+01
-5.98411 2.0E+01
4.10828 1.0E+01
-0.91823 5.0E+00
1.59993 2.5E+00
0.34208 1.3E+00
-0.28777 6.3E-01
0.02723 3.1E-01
-0.13025 1.6E-01
-0.05150 7.9E-02
-0.01214 3.9E-02
0.00755 2.0E-02
-0.00229 9.8E-03
0.00263 4.9E-03
0.00017 2.5E-03
-0.00106 1.2E-03
-0.00045 6.2E-04
-0.00014 3.1E-04
0.00001 1.5E-04

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
EI *

2.5*106 * 7.8547575
2.4*104

-1

= 28.6 sec

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 29

Penyelesaian Numerik Persamaan Non-Linear


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

R2
R=

(R 2 + T2 )1/2

+M

(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-

T
M

kan metode iterasi.

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

R=(

R2

) +2 1/273.773.773 R 2 +

273.935
Tulis kembali persamaan dalam variabel bebas x sebagai berikut:
2
x
x=
2
1/2 + 73.773
(x + 75040.38)
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
Toleransi

= 125
= 0.001

Jumlah iterasi maksimum =


It.

30

1
2
3
4
5
6
7
8
9
10
11
12
13
14

x
125.00000
125.66487
126.17022
126.55552
126.84999
127.07544
127.24828
127.38093
127.48282
127.56112
127.62132
127.66763
127.70326
127.73068

g(x)
125.66487
126.17022
126.55552
126.84999
127.07544
127.24828
127.38093
127.48282
127.56112
127.62132
127.66763
127.70326
127.73068
127.75178

f(x)
6.6E-01
5.1E-01
3.9E-01
2.9E-01
2.3E-01
1.7E-01
1.3E-01
1.0E-01
7.8E-02
6.0E-02
4.6E-02
3.6E-02
2.7E-02
2.1E-02

15

127.75178 127.76803

1.6E-02

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 30

Penyelesaian Numerik Persamaan Non-Linear


16
17
18
19
20
21
22
23
24
25

127.76803
127.78053
127.79016
127.79757
127.80328
127.80767
127.81106
127.81366
127.81567
127.81722

127.78053
127.79016
127.79757
127.80328
127.80767
127.81106
127.81366
127.81567
127.81722
127.81841

1.3E-02
9.6E-03
7.4E-03
5.7E-03
4.4E-03
3.4E-03
2.6E-03
2.0E-03
1.5E-03
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 :
1
e
9.35
=1.14 2.0 * log
+
(a)
10
R
f
f
D
e
dengan
f = koefisien gesek aliran
Re = bilangan Reynolds
e = kekasaran pipa
D = diameter pipa
Hitunglah nilai koefisien gesek untuk dua kasus berikut ini :
Re = 3 x 104
D = 0.1 m
e = 0.0025
D = 0.1 m

Re = 5 x 106

e = 0.0015

Penyelesaian
Tulis kembali persamaan dalam bentuk :
2

f = 1.14 - 2.0 * log

e + 9.35
R f
10 D

, maka

metode yang paling cocok digunakan adalah metode iterasi.


Kasus (i)
Dengan memasukkan nilai-nilai yang diketahui ke dalam persamaan akan didapat :
f = 1.14 - 2.0 * log

f = 1.14 - 2.0 * log

10

10

0.0025 +
9.35
4
0.1 3*10 * f
2
0.0003117
0.025 +

f
Metode Numerik Dalam Ilmu Rekayasa Sipil
Bab II hal. 31

Penyelesaian Numerik Persamaan Non-Linear


Tuliskan dalam variabel bebas x, maka akan diperoleh persamaan berikut :
x = 1.14 - 2.0 * log

10

0.025 +

0.0003117

Dengan program 2.6.3, setelah memodifikasi definisi fungsi, hasil eksekusi program adalah:
Harga
awal
Toleransi

= 1
= 0.0000001

Jumlah iterasi maksimum = 20


It.
1
2
3

x
1.00000
0.05325
0.05412

g(x)
0.05325
0.05412
0.05411

f(x)
9.5E-01
8.7E-04
9.0E-06

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 :
f = 1.14 - 2.0 * log

10

f = 1.14 - 2.0 * log

10

0.0015 +
9.35
6
0.1 5*10 * f
2
0.00000187
0.015 +
f

Tulis fungsi dalam variabel bebas x akan diperoleh persamaan berikut:


x = 1.14 - 2.0 * log

10

0.015 +

0.00000187

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

= 1
= 0.0000001

Jumlah iterasi maksimum = 20


It.
1
2

x
1.00000
0.04363

g(x)
0.04363
0.04363

f(x)
9.6E-01
7.5E-06

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

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)
dengan
KA = koefisien tegangan aktif tanah
= tan2(450 - /2)
KP = koefisien tegangan pasif tanah
= tan2(450 + /2 )
Ka
H = tinggi dinding turap
D = kedalaman pemancangan
= sudut geser dalam tanah
D Kp
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
Toleransi

= 10
= 0.001

Jumlah iterasi maksimum = 20


It.
1
2
3
4
5
6

x
28.62530
21.25399
17.22334
15.67640
15.43196
15.42605

f(x)
35000.10294
9393.24741
2073.78951
250.07278
5.76369
0.00332

epsilon
1.9E+01
7.4E+00
4.0E+00
1.5E+00
2.4E-01
5.9E-03

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

Penyelesaian Numerik Persamaan Non-Linear


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
2
N 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
Harga kedua
Toleransi

= 100
= 90
= 0.001

Jumlah iterasi maksimum = 10


It.
1
2
3

x
96.71768
96.43829
96.41215

f(x)
0.01074
0.00092
-0.00000

epsilon
6.7E+00
2.8E-01
2.6E-02

96.41226

0.00000

1.1E-04

Toleransi terpenuhi
Hasil akhir = 96.4122577

Jumlah produksi optimal dalam satu hari adalah : N = 94 buah

Metode Numerik Dalam Ilmu Rekayasa Sipil


Bab II hal. 34

Anda mungkin juga menyukai