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).
Bab II hal. 1
[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.
Bab II hal. 2
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)
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
Fa * Fb > 0
tidak
Tulis
Fa * Fb > 0
iter = iter +1
m = (a + b)/2
Fm = F(m)
Ya
Tidak
Fa * Fm < 0
ya
tidak
b=m
Fb = Fm
a=m
Fa = Fm
Tulis hasil
m, F(m)
1
SELESAI
Bab II hal. 5
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
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
3 =0
- 3) = 0
(iv). x - (3 + 20/x)1/2
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
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)
y
y=x
y=g(x)
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
garis singgung
xk+1
xk
f(x)
(2.6)
(xk xk +1)
f(xk )
(2.7)
(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
(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.
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
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
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
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;
= "); scanf("%f",&a);
= "); scanf("%f",&b);
= "); scanf("%f",&tol);
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");
}
1
2
= batas bawah
= batas atas
= toleransi
tol
Var
a,m,b,F_a,F_m,F_b,tol : real;
max_iter,it
: integer;
epsilon
: real;
Bab II hal. 17
Metode Numerik Dalam Ilmu Rekayasa Sipil
= '); read(a);
= '); read(b);
= '); read(tol);
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.
= 0
= 1
= 0.0000001
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
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
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;
= "); scanf("%f",&a);
= "); scanf("%f",&b);
= "); scanf("%f",&tol);
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");
}
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;
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.
= 0
= 1
= 0.0000001
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
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
1/
2/
Program 1.3a
Metode Iterasi
#include <stdio.h>
#include <math.h>
/* Daftar Variable
x0
= harga awal
tol
= toleransi
max_iter =
*/
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");
: real;
= '); read(x0);
= '); read(tol);
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.
-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
1/
2/
Program 1.4a
Metode Newton-Raphson
#include <stdio.h>
#include <math.h>
/* Daftar Variable
x0
= harga awal
tol
= toleransi
max_iter =
*/
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");
: real;
: integer;
: real;
= '); read(x0);
= '); read(tol);
End
else writeln('Toleransi tidak terpenuhi');
End.
= 0
= 0.00001
20
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
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 =
*/
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
%8.2e\n",it,xb,f(xb),epsilon);
Bab II hal. 26
}
else printf("Toleransi tidak terpenuhi\n");
: real;
: integer;
: real;
End
else writeln('Toleransi tidak terpenuhi');
End.
= 0
Bab II hal. 27
= -0.1
= 0.00001
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.
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
Bab II hal. 28
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
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
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
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
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
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
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
Re = 5 x 106
e = 0.0015
Penyelesaian
Tulis kembali persamaan dalam bentuk :
2
e + 9.35
R f
10 D
, maka
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
10
0.025 +
0.0003117
Dengan program 2.6.3, setelah memodifikasi definisi fungsi, hasil eksekusi program adalah:
Harga
awal
Toleransi
= 1
= 0.0000001
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
10
10
0.0015 +
9.35
6
0.1 5*10 * f
2
0.00000187
0.015 +
f
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
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
= 10
= 0.001
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
= 100
= 90
= 0.001
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