Anda di halaman 1dari 82

Modul Praktikum

Metode Numerik

DAFTAR ISI
Daftar
Isi ............................................................................................
................2
Pengenalan
Matlab......................................................................................
...
3
Pemrograman Sederhana dengan
Matlab................................
6
Chapter 1. Error Perhitungan
Numerik.................................................. 19
Chapter 2. Penyelesaian Persamaan Non
Linear ...............................
24
Metode Grafik dan
Tabulasi ........................................................... 24
Metode
Biseksi ....................................................................................
31
Metode Newton
Rhapson ............................................................... 38
Metode
Secant ....................................................................................
40
Metode Regula
Falsi .........................................................................44
Chapter 3. Penyelesaian Persamaan Differensial
Biasa ..................
50
Metode
Euler .......................................................................................
50
Metode Runge
Kutta ........................................................................
53

Chapter 4. Penyelesaian Sistem Persamaan


Linear .........................
56
Metode Iterasi
Jacobi ...................................................................... 58
Metode Gauss
Seidel .......................................................................
Chapter 5. Pendekatan
Fungsi .................................................................
Metode Devide
Difference ............................................................

71
71

66

Pengenalan Matlab
SEKILAS MATLAB
Fasilitas-fasilitas pada MATLAB :
1. Current Directory
Path Browser memungkinkan Anda melihat dan mengubah alamat Pencarian
MATLAB (alamat tempat MATLAB mencari file-file yang diperlukan )

2. Workspace (Pencari tempat kerja)


Workspace browser memungkinkan Anda melihat isi dari tempat kerja Matlab
yang sedang aktif atau Workspace browser juga menyediakan keluaran dari
perintah whos,

3. M-File editor/Debuger
Digunakan untuk menuliskan program berupa fungsi-fungsi dan disimpan
sesuai dengan nama fungsinya dan dapat dilakukan eksekusi program. M-File
dapat diaktifkan dengan mengklik File New M-File .

4. Command Windows
Command windows dapat digunakan seperti kalkulator dan juga dapat untuk
menuliskan operasi-operasi matematika, seperti operasi-operasi matriks,
polinomial, dan yang berhubungan dengan image prosessing.

Matematika Sederhana
Seperti sebuah kalkulator, MATLAB mengerjakan matematika sederhana.
Contoh : 5 + 4 = 9

Pi = 3.14
4 x 25 + 6 x 52 + 2 x 99 = 610
Apabila dikerjakan dengan Matlab :

Operasi-operasi Aritmetik Dasar :


Operasi
Penambahan, a + b
Pengurangan, a b

Simbol
+

Contoh
5+3

23 12

Perkalian, a x b

3.14 * 5

Pembagian, a : b

/ atau \

6/3 = 3\6

Pemangkatan, ab

5^2

Variabel
MATLAB mempunyai aturan penamaan variabel yaitu :

Aturan Penamaan Variabel


Nama variabel dibedakan antara

Catatan & Contoh


Items, items, itEms,

huruf kecil dan huruf kapital

semuanya

Nama
dengan

variabel

variabel

harus

diawali

berbeda

huruf,

diikuti

dengan

How_about, X123, a_b_c

bilangan,huruf atau garis bawah.


Karakter

adalah

tanda

baca

tidak

diperbolehkan.

dan

ITEMS
yang

PENDAHULUAN
Variabel
Nama yang diberikan untuk mewakili suatu data, baik berupa masukan data
atau merupakan hasil perhitungan aturan penulisan variabel:
1. harus diawali dengan huruf
2. tidak boleh mengandung spasi dan tanda baca (karakter khusus)
3. tidak boleh menggunakan key words
4. dibedakan antara huruf besar dan huruf kecil, misalnya: Nama, NAMA,
NamA, NaMa, dsb. merupakan variabel yang berbeda.
Input Data
Terdapat dua cara untuk memasukkan data yaitu:
a. inisialisasi data, dimana data diberikan secara langsung pada saat
pembuatan program
Bentuk umum:
variabel = ekspresi
b. menggunakan perintah input, dimana data diberikan pada saat program dirunning.
Bentuk umum:
variabel = input(text) numerik dan string
atau
variabel = input(text, s) string
pada layar akan tampil apa yang tertulis di antara tanda petik (text),menanti
masukan data yang diikuti dengan menekan enter melalui keyboard.
Contoh berikut ini menampilkan program perhitungan sederhana
dimanalangkah memasukkan data dilakukan dengan menggunakan kedua
cara: tersebut. Kedua contoh tersebut dijalankan pada layar utama Matlab
yang
disebut command window.
Contoh : Perhitungan luas segitiga L = 0.5 x a x t dengan cara inisialisasi
data

>> topik='segi tiga'


topik =
segi tiga
>> alas = 5
alas =
5
>> tinggi=10
tinggi =
10
>> luas_segitiga = 0.5 * alas * tinggi
luas_segitiga =
25

Contoh Perhitungan luas Segi Tiga A = 0.5 x a x t dengan cara input data.

>> topik = input('masukkan bangun geometri yang akan dicari


luasnya: ')
masukkan bangun geometri yang akan dicari luasnya: 'segi tiga'
topik =
segi tiga
>> alas = input(' masukkan alas segi tiga: ')
masukkan alas segi tiga: 5
alas =
5
>> tinggi = input('masukkan tinggi segi tiga : ')
masukkan tinggi segi tiga : 10
tinggi =
10
>> luas_segitiga = 0.5 * alas * tinggi
luas_segitiga =
25
8

Bila ingin menampilkan nilai dari suatu variable disp(A) dimana A adalah
variabel; hasil yang ditampilkan adalah nilai yang tersimpan dalam variabel A
tersebut.
Contoh :

>> A = 30
A =
30
>> disp(A)
30
Bila ingin menampilkan teks atau string4hasil yang ditampilkan adalah apa
yang tertulis di antara tanda petik.
Contoh :

>> disp('angkatan 45')


angkatan 45
Bila ingin menampilkan gabungan teks dan nilai dari suatu variabel, gunakan
tanda kurung siku dimana nilai numerik harus dikonversi ke bentuk string
terlebih dahulu dengan menggunakan fungsi num2str (number to string).
Contoh :

>> x = 45
x =
45
>> disp ([ 'Nilai sudut salah satu segitiga adalah =',num2str(x)
,'disebut segitiga siku-siku'])
Nilai sudut salah satu segitiga adalah = 45 disebut segitiga
siku-siku

Penggabungan Input Data


Beberapa data yang dimasukkan yang ditulis dalam beberapa baris program
dapat digabungkan dengan memberikan tanda koma (,) atau titik koma (;)
sebagai pemisah, tanda ; membuat data menjadi tersembunyi.

Contoh : Input data x, y, dan z pada contoh di atas yang ditulis dalam 3 baris
program dapat digabungkan menjadi 1 baris program dengan salah satu cara
berikut:

>> x = 1, y = 2, z = 3
x =
1
y =
2
z =
3
>> x = 1; y = 2; z = 3
z =
3
>> x = 1; y = 2; z = 3;
>>

Pemberian Komentar
Pemberian komentar diawali dengan tanda persen % merupakan
pernyataan atau komentar atau keterangan atau catatan.
Tujuannya adalah untuk memberi keterangan agar lebih mudah memahami
maksud suatu bagian program.
Sejauh ini, semua pekerjaan dilakukan melalui sebuah layar yang disebut
command window dimana perintah dapat dieksekusi secara langsung satu
per satu. Ada pula layar lain yang dapat menyimpan semua perintah yang
dibuat untuk kemudian dieksekusi secara keseluruhan. Layar tersebut adalah
layar M-File.
Contoh :
Perhitungan Luas persegi panjang :
L = p x l, L = Luas persegi panjang, l = lebar , p = panjang

% menghitung luas segi tiga siku-siku


% masukkan a = alas dan t = tinggi
% Luas = L = 0.5 * a * t
function L=luassegitigasiku(a,t);
10
L=0.5*a*t;

Fungsi di atas diketik dalam layer m.file, harus disimpan sesuai nama
fungsinya yaitu luassegitigasiku dalam direktori.
Bila akan menjalankan fungsi tersebut m.file buka nama fungsi
luassegitigasiku kemudian klik menu debug > run, kemudian dalam
command windows kita masukkan nilai alas dan tingginya. Misalnya palas a
= 10 dan tinggi t = 20, maka penulisan & hasil dalam command windows
adalah :

>> luassegitigasiku(10,20)
ans =
100

VEKTOR DAN MATRIKS VEKTOR MATRIKS


Vektor dan
Matlab. Berbagai
ringkas, dan cepat
Untuk itu, harus
vektor/matriks.

matriks merupakan konsep dasar perhitungan dalam


perhitungan dapat diselesaikan dengan lebih mudah,
bila bentuknya dikonversi ke dalam bentuk vektor/matriks.
dipahami benar dasar operasi dengan menggunakan

1. Skalar
Di dalam Matlab, skalar adalah sebuah data dengan satu baris dan
satu
kolom. Variabel-variabel yang memuat data skalar tersebut dapat mengalami
operasi penjumlahan, pengurangan, perkalian, dan pembagian.
2. Vektor
Di dalam Matlab, vektor adalah sekumpulan data yang membentuk
hanya satu baris atau satu kolom.
Penulisan elemen dilakukan di dalam kurung siku [ ] yang diantarai dengan
spasi atau titik koma. Pengecualian berlaku hanya untuk penulisan data yang
berbentuk deret dengan pola tertentu.
Vektor dapat mengalami operasi dengan skalar atau dengan vektor lain
asalkan mempunyai dimensi yang sama.
Contoh : Vektor dan Operasinya
(i) Bentuk deret sederhana
Bentuk umum penulisan data dengan pola tertentu atau deret yang
sederhana:

11

variabel = n : m dimana n = nilai awal, m = nilai akhir

>> a = 1:5
a =
1
2

>> a = [1:5]
a =
1
2

(ii) Penggunaan increment


>> a = [1 2 3 4 5]
Bentuk umum penulisan data dengan pola tertentu atau deret:
a =
variabel = n : i : m dimana n = nilai awal, m = nilai akhir, dan i =
1
2
3 I tidak4didefinisikan,
5
increment/langkah;
bila
maka Matlab akan
>> 1:10
menggunakan
default-nya yaitu 1.

ans =
1

10

>> 1:2:10
ans =
1
>> 0:2:10
ans =
0

10

Vektor dapat mengalami operasi penjumlahan, pengurangan, perkalian, dan


pembagian. Operasi penjumlahan dan pengurangan dapat dilakukan bila
vektor-vektor yang akan dijumlahkan atau dikurangkan mempunyai orde
(dimensi) yang sama. Perkalian 2 buah vektor x dan y mempunyai bentuk:
xi * yi dimana kedua vektor juga harus berde sama, tetapi 1 vektor kolom
dan yang lainnya vektor baris.

12

>> a = [1 2 3] % vector baris a


a =
1

>> b = [2 1 0] % vector baris b


b =
2

>> a + b % penjumlahan vector baris a dan vector baris b


ans =
3

>> a b % pengurangan vector baris a dengan vector


b
ans =
-1

baris

>> a * b % perkalian vector baris dengan vector baris tidak


bisa
??? Error using ==> *
Inner matrix dimensions must agree.
>> b=[2; 1; 0] % vector kolom b
b =
2
1
0
>> a * b % perkalian vector baris a denga vector kolom b
ans =
4

3. Matriks

13

Matriks merupakan himpunan data yang membentuk beberapa baris


dan kolom. Aturan operasi penjumlahan dan pengurangan yang berlaku pada
vektor juga berlaku untuk matriks apabila matriks mempunyai dimensi yang
sama.
Perkalian antara 2 buah matriks misalkan matriks A dan matriks B.
Perkalian matriks A x B, harus memenuhi aturan bahwabanyaknya kolom
pada matriks A harus sama dengan benyaknya baris pada matriks B.

Contoh : Matriks dan Operasinya


>> A=[1 2 3;2 1 3] % Operasi penambahan dan pengurangan
matriks. Dimensi matriks harus sama
A =
1
2
3
2
1
3
>> B=[3 3 3;2 2 2]
B =
3
3
3
2
2
2
>> C=A+B
C =
4
4

5
3

6
5

>> D=A-B
D =
-2
0

-1
-1

0
1

>> E=A*B % perkalian matriks ukuran baris matriks A tidak


sama dengan ukuran kolom matriks B jadi error...
??? Error using ==> *
Inner matrix dimensions must agree.
>> B'
ans =
3
2
3
2
3
2
>> A*B' %perkalian dapat dilakukan

ans =
18 12
18 12
4. Pengalamatan

14

Merupakan cara penulisan yang digunakan untuk menampilkan atau


mendefinisikan ulang suatu data atau sekumpulan data pada vector atau
matriks, ditulis dalam bentuk umum: variabel(i,j), dimana i menunjukkan
baris dan j menunjukkan kolom Vektor dan Matriks
Contoh : Pengalamatan Vektor atau Matriks
x(2) menunjukkan elemen kedua vektor x
z(3) menunjukkan elemen ketiga vektor z12
r(2,1) menunjukkan elemen matriks r pada baris kedua kolom
pertama
t(3,2) menunjukkan elemen matriks t pada baris ketiga kolom kedua
s(:,2) menunjukkan semua elemen matriks s pada kolom kedua
u(1,:) menunjukkan semua elemen matriks u pada baris pertama
PENGATURAN ALUR PROGRAM
Pengaturan alur program memungkinkan pengguna untuk mengulangi
perhitungan secara berulang-ulang ataupun memilih serta memutuskan
kondisi-kondisi yang sesuai/diinginkan. Matlab menyediakan empat bentuk
pengaturan alur program yang akan dibahas berikut ini.
1. Loop for
Loop for memungkinkan sekelompok perintah diulang sebanyak suatu jumlah
yang tetap. Bentuk umum:
for loopvariable = loopexpression
perintah-perintah
end
Loopvariable merpakan nama variabel yang diberikan, sedangkan
loopexpression biasanya memiliki bentuk n:m atau n:i:m.
Perintah perintah di antara baris for dan end dikerjakan berulang-ulang dari
nilai awal n sampai nilai akhir m, dengan increment (langkah) sebesar i.
Contoh : Perhitungan pangkat 3 dari himpunan bilangan bulatdari 1 sampai 4
>> for n = 1:4
x(n) = n^3
end
x =
1
x =

27

27

x =
x =

64

Contoh : Operasi perkalian 2 buah vector

15

>> x = [1 2 3];
y = [4 5 6];
sum = 0;
for i = 1:3
sum = sum + x(i)*y(i)
end
sum =
4
sum =
14
sum =
32
2. Loop while
Bentuk umum:
while while_expression
perintah-perintah
end
Operator relasi yang didefinisikan sebagai berikut:
> lebih besar >= lebih besar atau sama dengan
< lebih kecil <= lebih kecil atau sama dengan
== sama -= tidak sama
contoh :
n = 1;
x = 0;
while x <15
x(n) = n^2;
n = n+1;
end
>> x
x =

16

16

3. If-Statement
Bentuk umum:
if if_ekspresi
perintah-perintah
end
Contoh :
Di sebuah toko kue, harga kue per toples adalah Rp. 25.000
Apabila membeli minimal 4 toples akan mendapatkan potongan 10%
Harga = input('Harga 1 toples kue =');
Cacah_Kue = input('Berapa toples kue yang dibeli??? =');
if Cacah_Kue >= 4
bayar = ((Cacah_Kue*Harga)-(Cacah_Kue*Harga*0.01))
else
bayar =Cacah_Kue*Harga
end
Program ditulis dalam m.file, disimpan dengan nama kue.m
Apabila di_run hasilnya adalah:
Harga 1 toples kue =25000
Berapa toples kue yang dibeli??? =3
bayar =
75000
Harga 1 toples kue =25000
Berapa toples kue yang dibeli??? =4
bayar =
99000
Jika terdapat 3 atau lebih pilihan, konstruksi if-else-end mengambil bentuk:
if if_ekspresi1
perintah dikerjakan jika if_ekspresi1 benar
elseif if_ekspresi2
perintah dikerjakan jika if_ekspresi2 benar
elseif if_ekspresi3
perintah dikerjakan jika if_ekspresi3 benar

17

elseif if_ekspresi4
perintah dikerjakan jika if_ekspresi4 benar
elseif
else
perintah dikerjakan jika tidak ada if_ekspresi yang benar
end

Contoh:
Untuk menentukan nilai akhir mahasiswa, untuk setiap mata kuliah diadakan
ujian
kompetensi
dasar
(KD)
sebanyak
4
kali.

KD1 KD2 K 3 D 4
4
, Jika Nilai akhir >80 memperoleh A, jika
70 Nilai _ Akhir 80 , nilai B, Jika 60 Nilai _ Akhir 70 nilai C, jika
Nilai _ Akhir

Nilai_Akhir < 60 nilai D


Contoh Program adalah :
KD1
KD2
KD3
KD4

=
=
=
=

input('Masukkan
input('Masukkan
input('Masukkan
input('Masukkan

nilai
nilai
nilai
nilai

KD
KD
KD
KD

1
2
3
4

sekala
sekala
sekala
sekala

100,
100,
100,
100,

KD
KD
KD
KD

1
2
3
4

=');
=');
=');
=');

NA = (KD1+KD2+KD3+KD4)/4
if NA >= 80
ket = 'A'
else if 70 <= NA & NA < 80
ket = 'B'
else if 60 <= NA & NA < 70
ket = 'C'
else if 50 <= NA & NA < 60
ket = 'D'
else
ket = 'E'
end
end
end
end
end
Masukkan nilai KD 1 sekala 100, KD 1 =80
Masukkan nilai KD 2 sekala 100, KD 2 =78
Masukkan
nilai
KD 3 sekala
100, KD
3 =79
Program
di atas
disimpan
dalam format
m.file
dengan nama nilai.m. apabila
Masukkan nilai KD 4 sekala 100, KD 4 =79
di run hasilnya adalah:
NA =
79
ket =
B

18

4. Switch-case-otherwise
Bentuk umum:
switch ekspresi
case ekspresi1
perintah-perintah
case ekspresi2
perintah-perintah
case
.
.
otherwise
perintah-perintah
end
disp('1. Newton')
disp('2. Regula Falsi')
disp('3. Newton Raphson')
n = input('Metoda yang dipilih (masukkan nomor urutnya saja) =
');
switch n
case (1), disp('Metode Newton')
case (2), disp('Metode Regula Falsi')
case (3), disp('Metode Newton Raphson')
otherwise
disp('Metode tersebut belum dimasukkan dalam daftar')
end
Program tersebut ditulis dalam m.file dan diberi nama pilihan.m, apabila di
run hasilnya adalah :
>> 1. Newton
2. Regula Falsi
3. Newton Raphson
Metoda yang dipilih (masukkan nomor urutnya saja) = 2
Metode Regula Falsi

19

20

Chapter 1
ERROR PERHITUNGAN NUMERIK
A. Tujuan
a. Memahami galat dan hampiran
b. Mampu menghitung galat dan hampiran
c. Mampu membuat program untuk menyelesaikan perhitungan galat dan
hampiran dengan Matlab
B. Perangkat dan Materi
a. Software Matlab
b. Materi Galat dan Hampiran
C. Dasar Teori

(Hampiran)

Contoh : Hitunglah

2 sampai empat angka desimal.

Penyelesaian :
Mennggunakan

algoritma

untuk

menghitung

dengan

menggunakan operasi perkalian, pembagian, dan penjumlahan sebagai


berikut :

x1 1 ,

1
2

x n x n 1
2
x n 1
, untuk n = 2,3,4,...

Dengan menggunakan algoritma di atas, diperoleh, untuk n = 2,3,4,...

x2

3
2,

x3

17
12 ,

x4

1 17 24
577

2 12 17
408 ,

x5

1 577 816
665857


2 408 577
470832 ,

Atau dalam bentuk pecahan desimal :

x 2 1.5000000 , x3 1.4166667 , x 4 1.4142157 ,

x5 1.4142136

Jadi, hampiran sampai empat angka desimal untuk

21

2 adalah x5 1.4142

Implementasi dengan Matlab


Berikut ini langkah-langkah percobaan untuk menyelesaikan persoalan di
atas:
a. Buka program Matlab
b. Buat programnya di Command Windows
>> x=1;
>> e=1;
>> while e > 0.00001,
y=x;
x=(y+2/y)/2
e=abs(x-y);
end
x=
1.5000
x=
1.4167
x=
1.4142
x=
1.4142
>> fprintf('%5.7f',x);
1.4142136
c. Anda dapat mengubah batas nilai e untuk mendapatkan tingkat
keakuratan yang diinginkan.
Definisi Kesalahan (Galat)
Yaitu

kesalahan

yang

ditimbulkan

karena

proses

pengukuran

atau

penggunaan hampiran (aproksimasi).


Berikut

ini

merupakan

sumber

galat

(error)

pada

suatu

hampiran

penyelesaian yang diperoleh dengan menggunakan suatu metode komputasi


numerik (Volkof,1990:8, dalam buku Komputasi Numerik dengan Matlab,
2005 oleh Sahid :3) adalah :

22

1. Model matematika untuk suatu fenomena alam


2. Galat bawaan dari masukan (parameter masukan)
3. Metode Penyelesaian
4. Adanya pembulatan dalam melakukan operasi-operasi aritmetika.
Contoh : Galat Penjumlahan dan Pengurangan
Teori :
Dari hubungan nilai eksak diperoleh :

x y x e x y e y ( x y ) (e x e y )
Jadi

galat

penjumlahan

sama

dengan

jumlah

galat

suku-suku

yang

dijumlahkan, atau dapat ditulis :

ex y e x e y
Galat relatif penjumlahan adalah :

rx y

ex y
xy

ex e y
xy

Untuk pengurangan

x y x e x y e y ( x y ) (e x e y )
Jadi, analog dengan penjumlahan, galat pengurangan sama dengan selisih
galat, atau dapat dituliskan :

ex y ex e y
Galat relatif pengurangan adalah :

rx y

ex y
xy

ex e y
xy

Dari persamaan terakhir dapat dipahami bahwa, apabila

x y maka galat

relatif pengurangan kedua hampiran akan semakin besar.

Misalkan

x1 , x2 ,...., xn digunakan sebagai hampiran untuk X 1 , X 2 ,...., X n dengan

maksimum galat yang mungkin untuk masing-masing hampiran adalah E.


Dengan kata lain :

x i E X i xi E ,

untuk i 1,2,...., n

Dengan menjumlahkan nilai-nilai tersebut diperoleh :

23

i 1

i 1

i 1

xi nE X i xi nE
n

X x
i 1

Atau

i 1

nE

Jadi, galat jumlah n nilai hampiran tersebut adalah jumlah maksimum galat
masing-masing hampiran.
Contoh Kasus :
Hitunglah

jumlah

1 2 ... 100

dengan

menggunakan

pembulatan

sampai dua angka desimal (di belakang koma). Berapakah maksimum galat
penjumlahan tersebut? Berapakah galat yang sesungguhnya?
Penyelesaian :
Kita dapat menggunakan Matlab untuk menghitung jumlahan tersebut.
Dalam

menggunakan

Matlab

perhitungan

(menggunakan

16

angka

signifikan). Untuk menghitung sampai dua angka desimal, masing-masing


akar dikalikan 100 dan dibulatkan. Hasilnya sama dengan 100 kali jumlah
tersebut.
Implementasi dengan Matlab:
a. Bukalah program Matlab
b. Buatlah program berikut pada command windows
> s=0;
for k=1:100,
s=s+round(100*sqrt(k));
end;s=s/100
s=
671.4800
> s=fprintf('%5.2f',s);
671.48
c. Jadi, perhitungan menggunakan dua angka desimal menghasilkan
jumlah 671.48.

24

Oleh karena setiap akar dihitung sampai dua angka desimal, maka galat
2

maksium masing-masig suku adalah 0.5 10 . Oleh karena itu, maksimum


2
galat hampiran jumlah tersebut adalah 100 0.5 10 0.5 .

d. Nilai yang sebenarnya dapat dihitung dengan menggunakan Matlab


berikut, tulis program pada command windows :
>> s=0;
for k=1:100,
s=s+sqrt(k);
end;s=s
s=
671.4629
>> s=fprintf('%5.16f',s);
671.4629471031477100
Jadi, galat yang sesungguhnya adalah sekitar 0.071, lebih kecil daripada
maksimum galatnya.
Apabila dikerjakan dengan Matlab tanpa adalanya looping adalah sebagai
berikut :
>> format long g
barisan=1:100;
>> s1=sum(round(100*sqrt(barisan))/100);
>> s2=sum(sqrt(barisan));
>> s1=s1
s1 =
671.48
>> s2=s2
s2 =
671.462947103148

25

Chapter 2
PENYELESAIAN
PERSAMAAN NON LINEAR
METODE GRAFIK DAN TABULASI
A. Tujuan
d. Memahami Metode Grafik dan Tabulasi
e. Mampu Menentukan nilai akar persamaan dengan Metode Grafik dan
Tabulasi
f.

Mampu membuat program untuk menentukan nilai akar dengan


Metode Grafik dan Tabulasi dengan Matlab

B. Perangkat dan Materi


c. Software Matlab
d. Metode Grafik
C. Dasar Teori
Fungsi f di sini adalah fungsi atau persamaan tak linear. Nilai x = x 0 yang
memenuhi (1) disebut akar persamaan atau fungsi tersebut. Sehingga x0 di
sini menggambarkan fungsi tersebut memotong sumbu-x di x = x0.
Persamaan atau fungsi f dapat berbentuk sebagai berikut:
a. Persamaan aljabar atau polinomial
f(x) = pn(x) = anxn + an-1xn-1 + + a1x + a0
b. Persamaan transenden
Yaitu persamaan yang mengandung fungsi antara lain trigonometri,
logaritma, atau eksponen
Contoh: (i) ex + cos(x) = 0 (ii) ln(x) + log(x2) = 0

26

c. Persamaan campuran
Contoh: (i) x3 sin(x) + x = 0 (ii) x2 + log(x) = 0
Untuk polinomial derajat dua, persamaan dapat diselesaikan dengan rumus
akar persamaan kuadrat. Misalkan bentuk persamaan kuadrat adalah: ax2 +
bx + c = 0 dapat dicari akar-akarnya secara analitis dengan rumus berikut.

x12 =
Untuk polinomial derajat tiga atau empat, rumus-rumus yang ada sangat
kompleks dan jarang digunakan. Sedangkan untuk menyelesaikan polinomial
dengan derajat yang lebih tinggi atau persamaan tak linear selain polinomial,
tidak ada rumus yang dapat digunakan untuk menyelesaikannya. Metode
Numerik memberikan cara-cara untuk menyelesaikan bentuk tersebut, yaitu
metode hampiran. Penyelesaian numerik dilakukan dengan hampiran yang
berurutan (metode iterasi), sedemikian sehingga setiap hasil adalah lebih
teliti dari perkiraan sebelumnya. Dengan melakukan sejumlah proisedur
iterasi

yang dianggap cukup,

akhirnya didapat hasil perkiraan yang

mendekati hasil eksak (hasil yang benar) dengan toleransi kesalahan yang
diijinkan.Metode iterasi mempunyai keuntungan bahwa umumnya tidak
sangat terpengaruh oleh merambatnya error pembulatan.
a. LOKALISASI AKAR
Lokasi akar persamaan tak linear diselidiki untuk memperoleh tebakan awal,
yaitu:
(a) Cara grafik
Cara grafik ini dibedakan menjadi dua macam yaitu:
(i) Cara grafik tunggal
Misalkan f(x) = exp(-x) x

27

Gambar-1
Gambar-1 bisa dibuat dengan Matlab sbb.
x=-0.1:0.01:0.67;
f=exp(-x) - x;
x1=-0.2:0.01:1.5;
y1=0.*x1;
y2=-0.2:0.01:1.5;x2=0.*y2;
plot(x,f,x1,y1,'r',x2,y2,'r');
axis([-0.2 1.5 -0.2 1.5]);
gtext('f(x)=exp(-x)-x');
gtext('akar');
Dari Gambar-1, terlihat bahwa fungsi f(x) = exp(-x) x memotong sumbu-x,
yaitu (x0,0). Titik perpotongan tersebut, absisnya (nilai x0) merupakan akar
dari f(x0) = exp(-x0) x0 = 0.

28

(ii) Cara grafik ganda


Misalkan f(x) = exp(-x) x dan f1(x) = exp(x), f2(x) = x,
maka f(x) = f1(x) - f2(x)

Gambar-2
Gambar-2 bisa dibuat dengan Matlab sbb.
x=-0.1:0.01:2.5;
f1=exp(-x);
f2=x;
x1=-0.2:0.01:2.5;
y1=0.*x1;
y2=-0.2:0.01:1.5;x2=0.*y2;
plot(x,f1,x,f2,x1,y1,'r',x2,y2,'r');
axis([-0.2 2.5 -0.2 1.5]);

29

gtext('f1(x)=exp(-x)');
gtext('f2(x)=x');
gtext('akar');
Dari Gambar-2, terlihat bahwa fungsi f1 dan f2 saling berpotongan, yaitu (x0,
y0). Titik perpotongan tersebut, absisnya (nilai x0) merupakan akar dari
f(x0) = exp(-x0) x0 = 0.
(b) Cara tabulasi
Nilai-nilai fungsi pada interval yang diminati dihitung dengan membagi
interval tersebut menjadi sub interval sub interval, dan nilai-nilai tersebut
ditulis dalam bentuk tabulasi. Jika pada suatu interval nilai fungsi berubah
tanda, maka pada interval tersebut ada akar.
Misalkan f(x) = exp(-x) x, kemudian dibuat tabulasi dengan bantuan Matlab,
yaitu:
fprintf(' x f(x) tanda\n');
fprintf('------------------\n');
i=1;beda=0.1;
for x=0:beda:1;
f=exp(-x) - x;
fprintf('%3.1f %6.3f',x,f);
if sign(f)< 0
tanda(i)='-';
fprintf(' %s\n',tanda(i));
else
if sign(f)> 0
tanda(i)='+';
fprintf(' %s\n',tanda(i));
else

30

tanda(i)='0';
fprintf(' %s\n',tanda(i));
end;
end;
i=i+1;
end;
i=1;
for x=0:0.1:1;
if tanda(i)=='0'
fprintf('Akarnya adalah = %6.4f\n',x);
else
if i >1
if tanda(i)~= tanda(i-1)
a=x-beda;
b=x;
fprintf('Akar ada di interval [%3.1f, %3.1f]\n', a,b);
end;
end;
end;
i=i+1;
end;
maka hasil tabulasinya adalah sbb.
x f(x) tanda
------------------

31

0.0 1.000 +
0.1 0.805 +
0.2 0.619 +
0.3 0.441 +
0.4 0.270 +
0.5 0.107 +
0.6 -0.051 0.7 0.203 0.8 -0.351 0.9 -0.493 1.0 -0.632 Akar ada di interval [0.5, 0.6]
Latihan.
Cari akar persamaan tak linier dengan metode garfik dan tabulasi :
3
1. f ( x ) 2 x

2. f ( x) ( 2 x 1)
coba dikembangkan dengan mencari sendiri persamaan tak linier yang
dapatdiselesaikan dengan metode grafik dan tabulasi.
3

32

METODE BISEKSI
A. Tujuan
a. Memahami Metode Biseksi
b. Mampu Menentukan nilai akar persamaan dengan Metode Biseksi
c. Mampu membuat program untuk menentukan nilai akar dengan
Metode Biseksi dengan Matlab
B. Perangkat dan Materi
d. Software Matlab
e. Metode Biseksi
C. Dasar Teori
Metode Bisection (Setengah Interval)
Landasan utama dari metode ini adalah menentukan suatu interval
dalam suatu fungsi dimananilai fungsi dari ujung-ujungnya(batas bawah dan
batas atas) harus berbeda tanda untuk menunjukkan bahwa fungsi tersebut
memotong sumbu horisontal, kemudian interval tersebut dipecah menjadi
dua bagian yang sama untuk mendekati titik potong dengan sumbu
horisontal.
Di dalam aplikasinya, langkah awal yang dilakukan adalah menetapkan
nilai sembarang a dan b sebagai batas bawah dan batas atas interval nilai
fungsi yang dicari. Titik a dan b memberikan harga bagi fungsi f(x) untuk x =
a dan x = b.
Selanjutnya adalah memeriksa apakah f(a).f(b)<0, jika demikian maka
terdapat akar fungsi dalam interval yang ditinjau. Jika tidak, maka nilai a dan
b ditetapkan lagi sedemikian rupa sehingga terpenuhi ketentuan perkalian
f(a).f(b)<0, yaitu nilai f(a) dan f(b) mempunyai tanda yang berbeda.
Langkah selanjutnya adalah mencari nilai tengah interval a dan b
dengan rumus m=(a+b)/2, lalu diperiksa apakah nilai mutlak f(m)<
6

toleransi(misal 10 ).
Jika benar, nilai x = m adalah solusi yang dicari (akar dari persamaan
tersebut).

Jika tidak terpenuhi, ditetapkan batasan baru dengan mengganti

33

nilai b=m apabila f(a).f(m)<0, dan mengganti a=m bila f(a).f(m)>0 seperti
terlihat pada Gambar 3.1 Proses menemukan mbaru dilakukan seperti
prosedur yang telah dijelaskan.

Secara sederhana dari langkah-langkah yang dijelaskan di atas dapat disusun


suatu algoritma program sebagai berikut:
1. Tentukan fungsi f(x), batas bawah a, batas atas b, toleransi, dan jumlah
iterasi maksimum.
2. Hitung f(a) dan f(b).
3. Periksa apakah f(a).f(b)> 0; jika ya, keluar dari progam karena pada
interval yang diberikan tidak terdapat akar persamaan.
4. Hitung nilai m = (a+b)/2.
5. Jika nilai mutlak f(m) < toleransi, tuliskan m sebagai hasil perhitungan, dan
akhiri program; jika tidak, lanjutkan ke langkah berikutnya.
6. Jika jumlah iterasi > iterasi maksimum, akhiri program.
7. Jika f(a).f(m)<0, maka b=m, jika tidak, a = m.
8. Kembali ke langkah (2).
Contoh:
Persamaan, f ( x) x 5 . cari akarnya!
Langkah 1:
Nilai awal: batas bawah a=2, batas atas b=3, sehingga:
f(2)=22-5= -1
f(3)=33-5=22
m=(2+3)/2=2.5
f(2.5)=(2.5)2.5-5=|4.8821| > 0.000001
x

Langkah 2:
karena f(a).f(m)= (-1)(4.8821) < 0, maka b=m, sehingga:
a=2 _ f(2)=22-5= -1
b=2.5 _ f(2.5)=(2.5)2.5-5=4.8821
m=(2+2.5)/2=2.25
f(2.25)=(2.25)2.25-5=|1.2003|> 0.000001
Langkah 3:

34

karena f(a).f(m)= (-1)(1.2003) < 0, maka b=m, sehingga:


a=2 _ f(2)=22-5= -1
b=2.25 _ f(2.25)=(2.25)2.25-5=1.2003
m=(2+2.25)/2=2.125
f(2.125)=(2.125)2.125-5=|-0.0382|> 0.000001
Langkah 4:
karena f(a).f(m)= (-1)(-0.0382) > 0, maka a=m, sehingga:
a=2.125 _ f(2.125)=22.125-5= -0.0382
b=2.25 _ f(2.25)=(2.25)2.25-5=1.2003
m=(2.125+2.25)/2=2.1875
f(2.1875)=(2.1875)2.1875-5=|0.5416|> 0.000001
Langkah 5:
karena f(a).f(m)= (-0.0382)(0.5416) < 0, maka b=m,sehingga:
a=2.125 _ f(2.125)=22.125-5= -0.0382
b=2.1875 _ f(2.1875)=(2.1875)2.1875-5=0.5416
m=(2.125+2.1875)/2=2.1563
f(2.1563)=(2.1563)2.1563-5=|0.2430|> 0.000001
Seterusnya sampai didapatkan f(m)<toleransi yang disyaratkan. Langkahlangkah tersebut disusun

Dengan toleransi sebesar 10-6, pada langkah ke 23 iterasi berhenti dengan


hasil
x = 2.12937256693840. Contoh di atas bisa memberikan gambaran bahwa
metode bisection cukup mudah untuk dipergunakan. Di bawah ini gambar
diagram alir untuk proses perhitungan dengan menggunakan metode
bisection.

35

Implementasi dengan MATLAB:


function m= TengahInterval(f,a,b,n)
% f=fungsi,a=nilai awal,b=nilai akhir,n=jumlah iterasi
format long % format angka yang dipakai 15 digit di belakang koma
fa = f(a);
fb = f(b);
if fa*fb > 0.0 % jika nilai f(a) dan f(b) sama tanda
error('pesan kesalahan:sama tanda')
end
for i=1:n
m=(a+b)/2;
y=f(m);
disp([m y]) % menampilkan m dan f(m) ke layar
if abs(y) <= 0.000001 % toleransi dipenuhi (akar persamaan
ditemukan)
break % menghentikan iterasi
end
if fa*y < 0
b=m;
else
a=m;
end
end
Cara menggunakan program di atas untuk menyelesaikan persoalan

f ( x ) x x 5 dalam
36

MATLAB, di command window ketikkan perintah:


>>f=inline(x^x-5) % mendefinisikan fungsi f ( x) x 5
>>x=TengahInterval(f,-1,3,15) % memanggil file tengahint.m a=-1,b=3,
iterasi=15
dari dua perintah di atas MATLAB akan memberikan jawaban:
my
1 -4
2 -1
2.50000000000000 4.88211768802618
2.25000000000000 1.20027091141992
2.12500000000000 -0.03821735673994
2.18750000000000 0.54161544380854
2.15625000000000 0.24250328354650
2.14062500000000 0.09992110005946
2.13281250000000 0.03030574169645
2.12890625000000 -0.00409119118124
2.13085937500000 0.01307328653945
2.12988281250000 0.00448256839976
2.12939453125000 0.00019357102259
2.12915039062500 -0.00194933919712
2.12927246093750 -0.00087801640156
x

x=
2.12927246093750

37

Metode Newton Raphson


A. Tujuan
g. Memahami Metode Newton Raphson
h. Mampu Menentukan nilai akar persamaan dengan Metode Newton
Raphson
i.

Mampu membuat program untuk menentukan nilai akar dengan


Metode Newton Raphson dengan Matlab

B. Perangkat dan Materi


f.

Software Matlab

g. Metode Newton Raphson


C. Dasar Teori
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 xbaru. Metode ini diperlihatkan pada gambar berikut.

Garis singgung f(xi) memotong di x i+1.


Dari diagram di atas terlihat garis singgung terhadap f(x) adalah:

38

f ' ( xi )

f ( xi ) 0
xi xi 1

f ' ( xi )
atau

f ( xi )
xi xi 1

Sehingga

xi 1 xi

f ( xi )
f ' ( xi )

dimana i = 0, 1,2,....

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.
Contoh:
3
'
2
Carilah akar dari fungsi f ( x) x 3 x 20 maka f ( x) 3 x 3

Dengan demikian rumus untuk menentukan akarnya adalah :

xi 1 xi

( x 3 3x 20)
x 5
( x 2 3)
Perkiraan Awal 0

Langkah 1:

f (5) 5 3 3(5) 20 90
f ' (5) 3(5) 2 3 72
90
x1 5
3.75
72
Langkah 2:

f (3.75) 3.75 3 3(3.75) 20 21.84844


f ' (3.75) 3(3.75) 2 3 39.1875
x 2 3.75

21.4844
3.201754
39.1875

Dan seterusnya
Algoritma program untuk metode Newton-Raphson
1. Tentukan fungsi, x0, toleransi, dan jumlah iterasi maksimum.
2. Hitung xbaru = x f(x0)/f(x0).
3. Jika nilai mutlak fxbaru < toleransi, diperoleh xbaru sebagai hasil
perhitungan;
4. jika tidak, lanjutkan ke langkah berikutnya.
5. Jika jumlah iterasi > iterasi maksimum, akhiri program.

39

6. x = xbaru, dan kembali ke langkah (2).

Flow Chart Metode Newton Raphson

function x = MetodeNewton(f,x0,n,tol)
int i;
Implementasi
dengan MATLAB
f0=inline(char(f));
% menyelesaikan persoalan f(x) = 0
dengan Metode Newton
g=inline(char(diff(f))); % dengan g sebagai fungsi
turunannya.
x = x0;
i=0; % perkiraan awal x dengan nilai x0
fa=f0(x);
while abs(fa) > tol % lakukan sampai toleransi tercapai
fa=f0(x);
fb=g(x);
if fa == 0 or i=n
return % program berhenti jika f(x) = 0
end
x = x - fa./fb; % rumus
40 Newton
disp([i x fa]) % fa = f(x);
i=i+1;
end

Apabila di run dengan Command Window :


f =x^3-3*x-20
>> f0=inline(char(f))
f0 =
Inline function:
f0(x) = x^3-3*x-20
>> g=inline(char(diff(f)))
g=
Inline function:h
g(x) = 3*x^2-3
>> x=MetodeNewton(f,-2,20,0.000001)
0

0.4444 -22.0000

1.0000 -8.3806 -21.2455


2.0000 -5.5715 -583.4706
3.0000 -3.6161 -176.2331
4.0000 -2.0583 -56.4347
5.0000

0.2637 -22.5450

6.0000 -7.1781 -20.7728


7.0000 -4.7482 -368.3180
8.0000 -3.0029 -112.8032
9.0000 -1.4202 -38.0705
10.0000

4.6785 -18.6037

11.0000

3.5875 68.3674

12.0000

3.1548 15.4078

13.0000

3.0828

1.9339

14.0000

3.0809

0.0487

15.0000

3.0809

0.0000

16.0000

3.0809

0.0000

x=
3.0809

41

42

METODE SECANT
A. Tujuan
j.

Memahami Metode Newton Raphson

k. Mampu Menentukan nilai akar persamaan dengan Metode Secant


l.

Mampu membuat program untuk menentukan nilai akar dengan


Metode Secant dengan Matlab

B. Perangkat dan Materi


h. Software Matlab
i.

Metode Secant

C. Dasar Teori
Metode Secant
Merupakan perbaikan dari kekurangan yang dimiliki oleh metode
newton, yaitu nilai turunan f(x) didekati dengan beda hingga ( ).

Penentuan nilai turunan fungsi dengan metode Secant.


Dimana :

f ' ( xi )
f ( xi ) f ( xi 1 )
f ( xi )
f ' ( xi )
xi
xi xi 1
'

Sehingga bila dimasukkan ke dalam persamaan Newton-Raphson :

xi 1 xi f ( xi )

xi xi 1
f ( xi ) f ( xi 1 )

43

Contoh :

f ( x ) x 3 3 x 20

x1 6 f (6) 178
Untuk perkiraan awal

x 2 2 f (2) 18

Algoritma program untuk metode Secant adalah sebagai berikut:


1. Tentukan x0, x1 , toleransi, dan jumlah iterasi maksimum.
2. Hitung xbaru = x1 f(x1)( x 1- x0)/f(x1) f(x0).
3. Jika nilai mutlak (xbaru x1) < toleransi, diperoleh tulisan xbaru sebagai
hasil perhitungan;
4. jika tidak, lanjutkan ke langkah berikutnya.
5. Jika jumlah iterasi > iterasi maksimum, akhiri program.
6. x = xbaru, dan kembali ke langkah (2).
Flow Chart Metode Secant :

44

Impementasi Metode Secant dengan MATLAB :

function x = MetodeSecant(f,x0,x1,n,tol)
int i; % menyelesaikan persoalan f(x) = 0 dengan Metode
Secant
fa=f(x0); % f=fungsi yang akan dicari akarnya, x0=nilai
awal,x1=nilai akhir
fb=f(x1); % n=jumlah iterasi, tol=nilai toleransi
i=0;
while abs(x0-x1) > tol % lakukan sampai toleransi
tercapai
fa=f(x0);
fb=f(x1);
if fa == 0 or i=n
return % stops the program if f(x) = 0
end
x = x1 - fb.*(x1-x0)./(fb-fa); % rumus Newton
disp([i x fa]) % menampilkan hasil hitungan
x0=x1;
x1=x;
i=i+1;
end
Simpan fungsi di atas dengan naman MetodeSecant.
Apabila di run lewat command windows hasilnya adalah :
>> f=x^3-3*x-20

(diketikkan dahulu fungsinya)

f=
x^3-3*x-20
>> f=inline(char(f)) (membuat fungsi x)
f=
Inline function:
f(x) = x^3-3*x-20
>> x=MetodeSecant(f,6,2,15,0.000001)
0

2.3673 178.0000

1.0000

3.5874 -18.0000

2.0000

2.9446 -13.8346

3.0000

3.0581 15.4070

4.0000

3.0820 -3.3024

5.0000

3.0808 -0.5761

6.0000

3.0809

7.0000

3.0809 -0.0002

0.0299

45

x=
3.0809
Soal Tugas di rumah :
Dikumpulkan (Buat LAPORAN PRAKTIKUM)
3
2
x 1 dan
1. f ( x) x x 3 x 3 0 Carilah akar x dengan tebakan awal 0

x1 2 dengan program Melab dengan Metode :


a. Newton Raphson
b. Secant
Latihan di kelas :
x
1. f ( x) e x dengan titik awal X0/ a = 0 dan x1/b = 1, carilah nilai x
dengan program Matlab dengan Metode :
a. Newton Raphson

b. Secant

Praktikum 3
LAPORAN SEMENTARA
Hari/Tanggal
Nama
Nim
Kelas
TTD Dosen/Asisten

:
:
:
:
:

46

METODE REGULA FALSI


A. Tujuan
a. Memahami Metode Regula Falsi
b. Mampu Menentukan nilai akar persamaan dengan Metode Regula Falsi
c. Mampu membuat program untuk menentukan nilai akar dengan Metode
Regula Falsi dengan Matlab
B. Perangkat dan Materi
d. Software Matlab
j.

Metode Regula Falsi

C. Dasar Teori
Metode Regula Falsi atau Interpolasi Linier
Metode ini sangat mirip dengan metode bisection, perbedaannya hanya
dalam menentukan nilai m-nya.

mb

f (b)(b a )
f (b ) f ( a )

Penentuan nilai m dari perpotongan garis lurus melalui dua titik.


Proses dengan cara ini memberikan perhitungan yang lebih cepat
dibandingkan dengan metode bisection. Algoritma untuk metode ini sama
dengan metode bisection, hanya pada bagian menentukan nilai m
disesuaikan dengan rumus yang ada.Algoritma tersebut adalah:
1. Tentukan fungsi f(x), batas bawah a, batas atas b, toleransi, dan jumlah
iterasi
maksimum.
2. Hitung f(a) dan f(b).

47

3. Periksa apakah f(a).f(b)> 0; jika ya, keluar dari progam karena pada
interval yang
diberikan tidak terdapat akar persamaan.
4. Hitung nilai

mb

f (b)(b a )
f (b ) f ( a )

5. Jika nilai mutlak f(m) < toleransi, tuliskan m sebagai hasil perhitungan, dan
akhiri
program; jika tidak, lanjutkan ke langkah berikutnya.
6. Jika jumlah iterasi > iterasi maksimum, akhiri program.
7. Jika f(a).f(m)<0, maka b = m, jika tidak, a = m.
8. Kembali ke langkah (2).
3
2
6
Contoh : cari akar persamaan f ( x) x x 1 dengan toleransi: 10

Langkah 1:
Nilai awal: batas bawah a=0, batas atas b=2, sehingga:

f (0) 0 3 0 2 1 1
f ( 2) 2 3 2 2 1 3
m 2

3( 2 0)
0.5
3 (1)

f (0.5) 0.5 3 0.5 2 1 1.1250000 0.000001


Langkah 2:
karena f(a).f(m)= (-1)( -1.1250000) > 0, maka a = m, sehingga:
a=0.5, b=2

f (0.5) 0.5 3 0.5 2 1 1.1250000


f ( 2) 2 3 2 2 1 3
m 2

3(2 0.5)
0.909091
3 (1.125)

f (0.909091) (0.909091) 3 (0.909091) 2 1 1.07513141 0.000001


Langkah 3:
karena f(a).f(m)= (-1.1250000)( -1.07513141) > 0, maka a=m, sehingga:
a=0.909091, b=2

f (0.909091) (0.909091) 3 (0.909091) 2 1 1.07513141


f ( 2) 2 3 2 2 1 3
48

m 2

3( 2 0.909091)
1.196903
3 ( 1.07513141)

f (1.196903) (1.196903) 3 (1.196903) 2 1 0.717921331 0.000001

Langkah 4:
karena f(a).f(m)= (-1.07513141)(-0.717921332) > 0, maka a=m, sehingga:
a=1.196903, b=2

f (1.196903) (1.196903) 3 (1.196903) 2 1 0.717921332


f ( 2) 2 3 2 2 1 3
m 2

3(2 1.196903)
1.351979027
3 (0.717921332)

f (1.351979) (1.351979) 3 (1.351979) 2 1 0.35663608 0.000001

Langkah 5:
karena f(a).f(m)= (-0.717921332)( -0.35663608) > 0, maka a=m, sehingga:
a=1.351979, b=2

f (1.351979) (1.351979) 3 (1.351979) 2 1 0.35663608


f ( 2) 2 3 2 2 1 3
m 2

3(2 1.351979)
1.420829976
3 (0.35663608)

f (1.420829976) (1.420829976) 3 (1.420829976) 2 1 0.1.5044619 0.000001


Seterusnya sampai toleransi yang disyaratkan tercapai.
Perhitungan dapat dilihat dalam tabel berikut :
3
2
Langkah-langkah penyelesaian persamaan f ( x) x x 1 dengan metode
regula falsi

Dengan toleransi sebesar 10 , pada langkah ke 25 iterasi berhenti dengan


hasil x=1.46557119092277. Di bawah ini gambar diagram alir untuk proses
perhitungan dengan menggunakan metode regula falsi.

49

Diagram alir metode regula falsi.

50

Implementasi dalam MATLAB


Berikut ini, kode dalam MATLAB untuk menyelesaikan persamaan non linier
dengan metode regula falsi.

function m=regfalsi(f,a,b,n) %f=fungsi,a=nilai


awal,b=nilai akhir,n=jumlah
iterasi
format long % format angka yang dipakai 15 digit di
belakang koma
fa = f(a);
fb = f(b);
if fa*fb > 0.0
error('pesan kesalahan:sama tanda')
end
disp(' m y ')
for i=1:n
m=b-((b-a)*fb/(fb-fa));
y=f(m);
disp([m y])
if abs(y) <= 0.000001 % akar persamaan ditemukan
break % menghentikan iterasi
end
if fa*y < 0
b=m;
else
a=m;
end
end
Cara mengunakan program di atas untuk menyelesaikan persoalan

f ( x) x 3 x 2 1 dalam command window MATLAB, ketikkan perintah:


>>f=inline(x^3-x^2-1) % mendefinisikan fungsi f(x)=x3-x2 -1
>>m=regfalsi(f,1,2,20) % memanggil file regfalsi.m a=1,b=2, iterasi=20
my
1.25000000000000 -0.60937500000000
1.43750000000000 -0.09594726562500
1.57812500000000 0.43980789184570
1.47265625000000 0.02505737543106
1.44628906250000 -0.06647393759340
1.45782470703125 -0.02700672448077
1.46153259277344 -0.01413060394978
1.46431350708008 -0.00441245589910
1.46639919281006 0.00291058710115
1.46483492851257 -0.00258446469666
1.46522599458694 -0.00121226003640

51

1.46551929414272
1.46573926880956
1.46557428780943
1.46553304255940
1.46554335387191
1.46555108735629
1.46555688746957
1.46556123755454

-0.00018242496629
0.00059033482427
0.00001073416219
-0.00013413711025
-0.00009792037557
-0.00007075735056
-0.00005038481518
-0.00003510526367

x=
1.46556123755454
Soal Tugas di rumah:
Dikumpulkan (Buat LAPORAN PRAKTIKUM)
x
1. f ( x) e 4 x dengan titik awal a = 0 dan b = 1, carilah nilai x dengan
program Matlab dengan Metode :
a. Biseksi
b. Regula Falsi

Praktikum 2
LAPORAN SEMENTARA
Hari/Tanggal :
Nama:
Nim:
Kelas:
TTD Dosen/Asisten:

Latihan di kelas :
x
1. f ( x) e x dengan titik awal a = 0 dan b = 1, carilah nilai x dengan
program Matlab dengan Metode :
a. Biseksi
b. Regula Falsi

52

Chapter 3
PENYELESAIAN
PERSAMAAN DIFFERENSIAL
BIASA
Metode Euler
Metode Euler adalah Metode hampiran paling sederhana untuk
menyelesaikan masalah nilai awal:
..(1)
Biasanya diasumsikan bahwa penyelesaian y(t) dicari pada interval terbatas
yang diketahui
.
Kita tidak akan secara eksplisit menari fungsi dapat dideferensialkan
(diturunkan) yang memenuhi persamaan (1) melainkan menghitung sejumlah
pasangan nilai
sebagai pendekatan fungsi penyelesaian
tersebut yakni
.
Pada metode ini interval yang deberikan dibagi menjadi n interval, masingmasing sepanjang h.
Misalkan kita hendak mencari penyelesaian numeric untuk persamaan (1)
pada interval [a,b].
Misalkan
adalah suatu posisi pada [a,b] sedemikian sehingga :
untuk k = 1,2, , n
Misalkan
. Apabila
diketahui, maka kita dapat
menghitung nilai
.
Persamaan garis ini adalah
. Garis
ini merupakan garis singgung kurva penyelesaian pada
.
Selanjutnya, tentukan titik pada garis ini yang memiliki absis
. Ordinat ini
adalah
.
Sekarang
merupakan hampiran penyelesaian
.
Algoritma (Metode Euler)

53

CONTOH :
Misalkan akn menghitung hampiran penyelesaian masalah nilai awal :

Masalah nilai awal ini mempunyai penyelesaian eksak

Berikut perintah-perintah dalam matlab dengan metode euler.

function [t,y]=euler4pdb(f,n,a,b,y0)
%fungsi euler4pdb.m (metode euler);
%menghitung hampiran penyelesaian masalah niai awal
%y'=f(t,y), y(0) = y0 pada [a,b]
%menggunakan n langkah dengan lebar langkah (b-a)/n
h = (b-a)/n;
t = [a]; y = [y0];
for k = 2:n+1,
t = [t;a+(k-1)*h];
y = [y;y(k-1)+h*f(t(k-1),y(k-1))];
end
Dalam command windows kita coba running
f=inline('(t-y)/2') % fungsi ditulis di command windows dulu
f=
Inline function:
f(t,y) = (t-y)/2
>> [t1,y1]=euler4pdb(f,10,0,3,1);
>> ye1=3*exp(-t1/2)-2+t1;
>> [t2,y2]=euler4pdb(f,20,0,3,1);
>> ye2=3*exp(-t2/2)-2+t2;
>> [t3,y3]=euler4pdb(f,50,0,3,1);
>> ye3=3*exp(-t3/3)-2+t3;
>> plot(t1,y1,'o',t2,y2,'+',t3,y3,'*',t3,ye3)
Hasil Running program di atas dapat diperoleh grafik berikut :

54

Gambar 1 : solusi ekasakdan 3 hampiran penyelesaian PD


.
Berikut ini adalah perintah untuk menampilkan tabel perbandingan ketiga
hampiran. Kolom pertama adalah nilai
kolom kedua nilai hampiran
dengan lebar langkah h = 0.3, kolom ketiga nilai hampiran
dengan lebar langkah 0.15, kolom keempat nilai hampiran
dengan lebar langkah h = 0.06, dan kolom terakhir adalah nilai eksaknya.
tabel=[t1 y1 y2(1:2:21) y3(1:5:51),ye3(1:5:51)]
tabel =
0 1.0000 1.0000 1.0000 4.0000
0.3000 0.8500 0.8669 0.8762 3.5821
0.6000 0.7675 0.7963 0.8123 3.2225
0.9000 0.7424 0.7792 0.7998 2.9129
1.2000 0.7660 0.8079 0.8314 2.6464
1.5000 0.8311 0.8757 0.9009 2.4171
1.8000 0.9314 0.9771 1.0030 2.2197
2.1000 1.0617 1.1072 1.1331 2.0498
2.4000 1.2175 1.2618 1.2871 1.9036
2.7000 1.3949 1.4373 1.4618 1.7777
3.0000 1.5906 1.6309 1.6542 1.6694
Tugas :
1. Gunakan metode Euler untuk mendapatkan hampiran penyelesaian
masalah nilai awal :

55

Dengan lebar langkah h = 0.05.


2. Gunakan metode Euler untuk mendapatkan hampiran penyelesaian
masalah nilai awal di bawah ini di sepuluh titk dengan lebar langkah
(a). h = 0.1, (b). h = 0.01, (c). h = 0.001

Jelaskan bahwa solusi eksak PD adalah :


Gambar grafik solusi eksak tersebut bersama titik-titik hampiran yang
Anda peroleh di a,b, dan c.

Metode Runge Kutta


Pada Metode Euler nilai

y k 1 dihitung dengan menggunakan y k memakai

rumus :

y k 1 y k hf (t k , y k )
Metode ini disebut metode satu langkah karena informasi dari satu
langkah sebelumnya digunakan untuk menghitung hampiran sekarang.
Oleh karena itu galat di dalam metode Euler adalah O(h), kita perlu
memilih lebar langkah yang sangat kecil untuk mendapatkan keakuratan
yang diinginkan. Galat di dalam metode Runge Kutta jauh lebih kecil
daripada galat Metode Euler.
Ide belakang Metode Runge - Kutta adalah menghitung nilai f (t , y ) pada
beberapa titik di dekat kurva penyelesaian yang dipilih dengan metode
tertentu di dalam interval

(t k , t k h) dan mengombinasikan nilai-nlai ini

sedemikian sehingga diperoleh keakuratan yang baik pada hampiran


berikutnya,

y k 1 .

a. Metode Runge-Kutta orde-dua (RK2) : Metode Heun


Algoritma (Metode Heun)
Menghitung hampiran penyelesaian masalah nilai awal y ' f (t , y ) dengan

56

y (t 0 ) y 0 pada [t 0 , b] .
t 0 , b, y 0 , h, dan fungsi f
(t , y ), k 1,2,......., n
Output : k k
Input :

Langkah-langkah :

n (b t ) / h

0
1. hitung
2. for k = 1,2,3,.., n

Hitung
Hitung
Hitung

t k t k 1 h
S1 f (t k 1 , y k 1 ),
S 2 f (t k , y k 1 h * S1 ),

h
y k y k 1 ( S1 S 2 )
2
Hitung
3. Selesai .
Pada metode ini
sebagai berikut:

y k 1 dihitung dengan menggunakan langkah langkah

S1 f (t k , y k )

(1)

S 2 f (t k h, y k hS1 )

y k 1 y k h

(2)

( S1 S 2 )
2

(3)

untuk k = 0, 1, 2, ., dengan

(t 0 , y 0 ) diktehui.

Pada perhitungan-perhitungan di atas, S1 adalah gradient di titik

(t k , y k ) ,

S 2 gardien di titik (t k h, y k hS1 ) dan rata-rata S1 dan S 2


y k 1

digunakan untuk menghitung hampiran selanjutnya


Aturan di atas diperoleh sebagai berikut:
Misalkan kita akan menyelesaikan masalah nilai awal :

y ' (t ) f (t , y (t )) pada [a, b] dengan y (t 0 ) y 0


(t k , y k ) diketahui, maka titik solusi t k 1 , y k 1 dapat diperoleh
Jika titik
[t , t ]
dengan mengintegralkan y ' (t ) pada k k 1 ,
t k 1

tk

f (t , y (t )) dt

t k 1

tk

y ' (t )dt y (t k 1 ) y (t k )

atau

y (t k 1 ) y (t k )

t k 1

tk

y ' (t )dt

h t k 1 t k

dengan menggunakan aturan trapezium dengan lebar langkah


untuk menghitung hampiran suku integral, diperoleh hampiran :

57

h
f (t k , y k ) f (t k 1 , y k 1 )
2
y
suku kedua pada ruas kanan memuat nilai ruas kiri , k 1 .
y (t k 1 ) y (t k )

Kita dapat menggunakan Metode Euler untuk menaksir


kanan, sehingga diperoleh Metode Heun :

y (t k 1 ) y (t k )

y k 1 pada ruas

h
f (t k , y k ) f (t k 1 , y k hf (t k , y k ))
2

Galat pada setiap langkah dalam Metode Heun (Atau Metode RK2) sama
dengan galat aturan trapezium, yakni

y n ( k )

h3
12

oleh karena itu, galat setelah n langkah pada Metode Heun menjadi :
n

y
k 1

( k )

h 3 t n t0 n

y ( )h 3 O(h 2 )
12
12h

Dengan demikian kita peroleh bahwa galat pada setiap langkah (iterasi)

O(h 3 ) . Sedangakan galat yang


2
terakumulasi pada akhir setiap lankah adalah O (h ) .
dalam Metode Heun (RK2) adalah

Contoh :
Gunakan Metode Heun (RK2) untuk menyelesaikan masalah nilai awal :

y ' (t y ) / 2 pada [0, 3] dengan y(0) = 1, dengan menggunakan lebar


langkah

1 1
1
h 1, , , dan
2 4
8
Penyelesaian :
Rumus Iterasi Heun untuk hampiran solusi PD tersebut adalah :

h t y k t k 1 y k h(t k y k ) / 2
3
y k 1 y k k

, k 0,1,2,........., dengan
2
2
2
h

t 0 0, y 0 1

Penyelesaian eksak masalah nilai awal di atas adalah :

y e t / 2 t 2 .
Kode Matlab berikut ini akan menghasilkan nilai- nilai
langkah yang ditentukan :

58

y k untuk lebar-lebar

Chapter 4
PENYELESAIAN SISTEM
PERSAMAAN LINEAR
A. Latar Belakang
Persoalan yang melibatkan model matematika banyak muncul dalam
berbagai disiplin ilmu pengetahuan, seperti dalam bidang fisika, kimia,
ekonomi, atau pada persoalan rekayasa. Seringkali model matematika
tersebut muncul dalam bentuk yang rumit yang terkadang tidak dapat
diselesaikan dengan rumus-rumus aljabar yang sudah baku.
Solusi SPL secara numeris umumnya selalu (harus) lebih efisien dan
cepat dibandingkan dengan metode-metode analitis, seperti metode Cramer.
Namun demikian, solusi numerik ini secara teknis adakalanya juga
berkendala, karena:
(1) ada beberapa persamaan yang mendekati kombinasi linier, akibat adanya
round off error dari mesin penghitung pada,
(2) suatu tahap perhitungan adanya akumulasi round off error pada proses
komputasi akan berakibat domain bilangan nyata (fixed point) dalam
perhitungan akan terlampaui (overflow), biasanya akibat dari jumlah
persamaan yang terlalu besar.
Metode-metode solusi numerik yang banyak dipakai, dapat diklasifikasikan
sebagai:
1. Metode Langsung
a.
Metode Langsung Eliminasi Gauss (EGAUSS), prinsipnya:
merupakan operasi eliminasi dan substitusi variabel-variabelnya
sedemikian rupa sehingga dapat terbentuk matriks segitiga atas, dan
akhirnya solusinya diselesaikan menggunakan teknik substitusi balik
(backsubstitution),
b.
Metode Eliminasi Gauss ini. Eliminasi Gauss-Jordan (EGJ),
prinsipnya: mirip sekali dengan metode EG, namun dalam metode ini
jumlah operasi numerik yang dilakukan jauh lebih besar, karena matriks
A mengalami inversi terlebih dahulu untuk mendapatkan matriks
identitas (I). Karena kendala tersebut, maka metode ini sangat jarang
dipakai, namun sangat bermanfaat untuk menginversikan matriks,
c.
Dekomposisi LU (DECOLU), prinsipnya: melakukan dekomposisi
matriks A terlebih dahulu sehingga dapat terbentuk matriks-matrik
segitiga atas dan bawah, kemudian secara mudah dapat melakukan
substitusi balik (backsubstitution) untuk berbagai vektor VRK (vektor
ruas kanan).

59

d.

Solusi sistem TRIDIAGONAL (S3DIAG), prinsipnya merupakan


solusi SPL dengan bentuk matrik pita (satu diagonal bawah, satu
diagonal utama, dan satu diagonal atas) pada matriks A.

2. MetodeTak-Langsung (Metode Iteratif)


a. Metode Jacobi, prinsipnya: merupakan metode iteratif yang melakuakn
perbaharuan nilai x yang diperoleh tiap iterasi (mirip metode substitusi
berurutan, successive substitution),
b. Metode Gauss-Seidel, prinsipnya: mirip metode Jacobi, namun
melibatkan perhitungan implisit,
c. Metode Successive Over Relaxation (SOR), prinsipnya: merupakan
perbaikan secara langsung dari Metode Gauss- Seidel dengan cara
menggunakan faktor relaksasi (faktor pembobot) pada setiap
tahap/proses iterasi.
Metode-metode tak-langsung seperti di atas pada umunya sangat tidak
efisien dan time consuming (memerlukan CPU- time) yang jauh lebih besar
dari metode langsung.
Metode Eliminasi Gauss, metode Dekomposisi LU dan Metode Iterasi Jacobi
merupakan metode yang dapat dijadikan sebagai alternatif untuk
menyelesaikan model matematika. Metode Eliminasi Gauss mereduksi
matriks koefisien A ke dalam bentuk matriks segitiga, dan nilai-nilai variabel
diperoleh dengan teknik substitusi. Pada metode Dekomposisi LU, matriks A
difaktorkan menjadi matriks L dan matriks U, dimana dimensi atau ukuran
matriks L dan U harus sama dengan dimensi matriks A.
Pada metode iterasi Jacobi, penyelesaian dilakukan secara iterasi, dimana
proses iterasi dilakukan sampai dicapai suatu nilai yang konvergen dengan
toleransi yang diberikan. Dari hasil pengujian dapat diketahui bahwa metode
Iterasi Jacobi memiliki hasil ketelitian yang lebih baik dan waktu komputasi
yang lebih cepat dari metode Eliminasi Gauss dan metode Dekomposisi LU.
Penggunaan pendekatan dengan pemrograman MATLAB, salah satu software
komputer yang dapat digunakan untuk memberikan solusi komputasi
numerik. Karena metode metode numerik dengan bahasa pemrograman
yang sederhana, namun dapat menyelesaikan permasalahan yang dihadapi
oleh mereka yang bergerak dalam bidang matematika maupun aplikasi
matematika.
B. Rumusan Masalah
Dari uraian di atas, dapat dirumuskan permasalahannya.
1. Apakah urutan persamaan di dalam suatu SPL berpengaruh terhadap
penampilan metode iterasi Jacobi?
2. Apakah program MATLAB 7 dapat digunakan sebagai solusi
pemrograman
dalam
metode
numerik
khususnya
metode
iterasiJacobi?
C. Batasan Masalah

60

Dalam makalah ini akan membahas tentang penggunaan metode


iterasi Jacobi dalam penyelesaian Sistem Persamaan Linear (SPL) berukuran
besar dengan persentase elemen nol pada matriks koefisien besar dengan
pemrograman MATLAB 7 for Windows.
D. Tujuan
Tujuan penulisan makalah sebagai berikut.
1. Memberikan solusi dalam memperoleh urutan persamaan di dalam
suatu SPL dengan menggunakan metode iterasi Jacobi.
2. Penggunaan
MATLAB
7
untuk
membantu
menyelesaikan
pemrograman dalam penyelesaian Sistem Persamaan Linear (SPL)
dengan metode iterasi Jacobi.

E. Manfaat
Dapat diambil manfaatnya sebagia berikut.
1. Dapat digunakan sebagai solusi dalam memperoleh urutan persamaan
di dalam suatu SPL berukuran besar dengan menggunakan metode
iterasi Jacobi.
2. Memberi kemudahan dalam menyelesaikan Sistem Persamaan Linear
(SPL) berukuran besar dengan metode iterasi Jacobi dengan
pemrograman MATLAB 7 for Windows.

PEMBAHASAN
A. Iterasi Jacobi
Metode ini merupakan suatu teknik penyelesaian SPL berukuran n x n, AX
= b, secara iteratif. Proses penyelesaian dimulai dengan suatu hampiran awal
terhadap penyelesaian, X0, kemudian membentuk suatu serangkaian vector
X1, X2, yang konvergen ke X.
Teknik iteratif jarang digunakan untuk menyelesaikan SPL berukuran kecil
karena metode-metode langsung seperti metode eliminasi Gauss lebih
efisien dari pada metode iteratif. Akan tetapi, untuk SPL berukuran besar
dengan persentase elemen nol pada matriks koefisien besar, teknik iteratif
lebih efisien daripada metode langsung dalam hal penggunaan memori
komputer maupun waktu komputasi. Metode iterasi Jacobi, prinsipnya:
merupakan metode iteratif yang melakuakn perbaharuan nilai x yang
diperoleh tiap iterasi (mirip metode substitusi berurutan, successive
substitution).
B. Algoritma Iterasi Jacobi
Untuk menyelesaikan system persamaan linier AX = b dengan A adalah
matriks koefisien n x n, b vector konstan n x 1, dan X vektor n x 1 yang perlu
dicari.

61

INPUT : n, A, b, dan Himpunan awal Y = (y1 y2 y3yn)T, batas toleransi T, dan


maksimum iterasi N.
OUTPUT: X = (x1 x2 x3 ..xn)T, atau pesan gagal .
LANGKAH LANGKAH :
1.
set penghitung iterasi ke =1
2.
WHILE k n DO

xi

bi j i aij y j
aii

(a) FOR i = 1, 2, 3, ..., n, hitung


(b) Set X = (x1 x2 x3 ..xn)T

X Y

(c) IF
< T THEN STOP
(d) Tambahan penghitung iterasi, k = k + 1
(e) FOR i = 1, 2, 3, ..., n, Set yi = xi
(f) set Y = (y1 y2 y3 ..yn)T
3.

STOP

C. Flow Chart Iterasi Jacobi


START

AX = b

Input A, b, X0, T, N

[X, g, H]= jacobi(A,b,X0,T,N)

xi

bi j i a ij y j
a ii

xi = ( x1 x2 x3 xn)

STOP

62

D. Iterasi Jacobi dengan Menggunaan Matlab 7


Jika x(k)menyatakan hampiran ke k penyelesaian SPL , AX = b, dengan
x adalah hampiran awal, maka metode iterasi Jacobi dapat dinyatakan
sebagai berikut :
(0)

xi

(k )

1
a ii

bi aij x j ( k 1)

j i

, i = 1, 2, 3, ..., n ; k = 1, 2, 3, ..

Dalam bentuk matriks, rumus iterasi dapat dinyatakan sebagai


X(k) = D-1(b-(L+U)X(k-1)),
Dengan A = L + D + U ( L matriks segitiga bawah, D matriks diagonal, U
Matriks segitiga atas).
Berikut adalah gambaran bagaimana penggunaan metode iterasi Jacobi
dengan sebuah contoh. Misalkan kita ingin menyelesaikan SPL.
10x1 x2 +2 x3 = 6
-x1 + 11x2 x3 + 3x4 = 25
2x1 x2 + 10x3 x4 = - 11
3x2 x3 + 8x4 = 15
Mula mulakita nyatakan setiap variabel dalam ketiga variabel yang
lainnya
1. Nyatakan x1 dari persamaan (P1) dalam x2, x3, dan x4,
2. Nyatakan x2 dari persamaan (P2) dalam x1, x3, dan x4,
3. Nyatakan x3 dari persamaan (P3) dalam x1, x3, dan x4,
4. Nyatakan x4 dari persamaan (P4) dalam x1, x2, dan x3.
Hasilnya adalah SPL

x 2 x3 3

10 5 5
x x 3x
25
x2 1 3 4
11 11 11 11
x1 x 2 x 4 11
x3

5
10 10 10
3x 2 x3 15
x4

8
8 8
x1

Misalkan kita pilih hapiran penyelesaian awal (0 0 0 0) T, maka


hampiran pertama terhadap penyelesaian SPL tersebut adalah

3
0.6
5
=1
25
x2
2.2727
11
=2
11
x3
1.1
10
= -1

x1

63

x4

15
1.8750
8
=2

Sekarang dengan menggunakan nilai nilai ini pada ruas kanan


persamaan (P5) (P8), kita dapat menghitung hampiran kedua. Proses
ini dapat diulang-ulang sampai keakuratan hampiran yang diinginkan
tercapai. Berikut adalah hasil proses iterasi dengan menggunakan
komputer.
N
x1
x2
x3
x4
o
1
0.6
2.27273
-1.1
1.875
2
1.04727 1.71591
-0.805227
0.885227
3
0.93263 2.05331
-1.04934
1.13088
4
6
1.9537
-0.968109
0.973843
5
1.0152
2.01141
-1.01029
1.02135
6
0.98899 1.99224
-0.994522
0.994434
7
1
2.00231
-1.00197
1.00359
8
1.0032
1.99867
-0.999036
0.998888
0.99812
8
1.00063
Setelah iterasi ke-8 diperoleh hampiran penyelesaian
x = (1.00063 1.99867 -0.999036 0.998888)T
bandingkan dengan penyelesaian eksaknya, yakni x = (1 2 -1 1)T.

Menyelesaikan contoh
metode iterasi Jacobi.
2x1 x2 + 10x3 = -11
3x2 x3 + 8x4 = -11
10x1 x2 + 2x3 =6
-x1 + 11x2 x3+ 3x4 = 25

SPL

berikut

ini

dengan

E. Penulisan Logaritma dalam Layar Editor MATLAB 7


function [X1,g,H]= jacobi(A,b,X0,T,N)
H = X0';
n = length(b);
X1 = X0;
for k=1:N,
for i = 1:n,
S = b(i)-A(i,[1:i-1,i+1:n])*X0([1:i-1,i+1:n]);
X1(i)=S/A(i,i);
end
g = abs(X1-X0);
err = norm(g);

64

menggunakan

relerr = err/(norm(X1)+ eps);


X0 = X1;
H = [H;X0'];
if (err<T)|(relerr<T),break,end
end
Layar Editor MATLAB 7

F. Hasil Output fungsi MATLAB 7


Berikut adalah contoh pemakaian fungsi MATLAB 7 jacobi dan hasil
keluaran dari yang diperoleh:
>> A=[2 -1 10 0;0 3 -1 8;10 -1 2 0;-1 11 -1 3]
A=
2 -1 10
0
0
3 -1
8
10 -1
2
0
-1 11 -1
3
>> b=[-11;-11;6;25]
b=
-11
-11
6
25
>> X0=[0;0;0;0]
X0 =
0
0
0
0
>> T=.00001

65

T=
1.0000e-005
>> N=25
N=
25
>> [X,g,H]=jacobi(A,b,X0,T,N)
X=
1.0e+017*
-4.1950
0.5698
2.1380
0.0451
g=
1.0e+017*
3.7699
0.5442
1.2965
0.1535
H=
1.0e+017*
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
-0 . 0007
0 . 0000
0 . 0013 -0 . 0002
-0 . 0066
0 . 0009
0 . 0036
0 . 0000
-0 . 0173
0 . 0011
0 . 0333 -0 . 0042
-0 . 1661
0 . 0224
0 . 0873
0 . 0013
-0 . 4251
0 . 0256
0 . 8415 -0 . 1085
-4 . 0000
0 . 5698
2 . 1380
0 . 0451
Dari hasil diatas, metode Jacobi belum konvergen setelah
melakukan iterasi. Untuk mengetahui penyelesaian SPL kita,
selanjutnya gunakan metode langsung dengan menggunakan invers
matriks A. MATLAB memberikan penyelesaian sebagai berikut.
>> X=inv(A)*b

66

X=
1.1039
2.9965
-1.0211
-2.6263
Apakah metode jacobi tidak dapat menghasilkan penyelesaian
tersebut? Dengan mengubah susunan SPL, yakni persamaan pertama
dan kedua dipindah menjadi persamaan ketiga dan keempat, metode
Jacobi ternyata berhasil memberikan penyelesaian tersebut,
sebagaimana terlihat pada hasil keluaran MATLAB berikut.
>> A=[10 -1 2 0;-1 11 -1 3;2 -1
A=
10 -1
2
0
-1 11 -1
3
2 -1 10
0
0
3 -1
8
>> b=[6;25;-11;-11]
b=
6
25
-11
-11
>> X0=[-2;1;3;-1]
X0 =
-2
1
3
-1
>> [X,g,H]=jacobi(A,b,X0,T,N)
X=
1.1039
2.9965
-1.0211
-2.6263
g=
0.0795
0.2004
0.0797
0.1511
H=
-2 . 0000 1 . 0000
3 . 0000
1 . 1000 2 . 6364 -1 . 6000
1 . 9836 2 . 6023 -1 . 8564
1 . 0315 2 . 9494
-1 . 0365
1 . 1022 2 . 9426
-1 . 0114
1 . 1065 2 . 9930
-1 . 0262
1 . 1045 2 . 9895
-1 . 0200
1 . 1030 2 . 9965
-1 . 0220

10 0;0 3 -1 8]

-1 . 0000
-2 . 3750
-2 . 4386
-2 . 4579
-2 . 6106
-2 . 6049
-2 . 6256
-2 . 6236

67

1
1
1
1
1
1

.
.
.
.
.
.

1040 2 . 9856
-1 . 0209 -2 . 6264
1037 2 . 9966
-1 . 0212 -2 . 6260
1039 2 . 9964
-1 . 0211 -2 . 6264
1039 2 . 9965
-1 . 0211 -2 . 6263
1039 2 . 9965
-1 . 0211 -2 . 6263
1039 2 . 9965
-1 . 0211 -2 . 6263
Iterasi Jacobi konvergen (dengan menggunakan batas toleransi
0.0001) setelah iterasi ke-13. Penyelesaian yang diberikan persis sama
dengan yang dihasilkan dengan metode langsung. Hampiran
penyelesaian SPL kita adalah X = (1.1039
2.9965
-1.0211
-2.6263)T.
Layar MATLAB 7 (command window)

Dari contoh di atas bahwa urutan persamaan di dalam suatu SPL


sangat berpengaruh terhadap penampilan metode iterasi Jacobi. Kalau
kita amati lebih lanjut contoh di atas, kekonvergenan iterasi Jacobi
pada strategi kedua dikarenakan kita telah mengubah susunan SPL
sedemikian hingga elemen-elemen aiimerupakan elemen-elemen
terbesar pada setiap baris. Dengan kata lain, apabila matriks koefisien
A merupakan matriks dominan secara diagonal, maka metode iterasi
Jacobi akan konvergen. Suatu matrik A berukuran n x n dikatakan
dominansecaradiagonal apabila

| aii || ai ,1 | ... | ai ,i 1 | | ai ,i 1 | ... | ai ,n |


SIMPULAN

A. Simpulan

68

untuk i = 1, 2, 3, ..., n.

Dari pembahasan di atas kita dapat mengambil kesimpulan bahwa.


1. Urutan persamaan di dalam suatu SPL sangat berpengaruh
terhadap penampilan metode iterasi Jacobi.
2. Dengan menggunakan pemrograman MATLAB 7 dapat membantu
pemrograman dalam dalam metode numeric khususnya metode
iterasiJacobi
B. Saran
Dari hasil pembahasan disarankan untuk.
1. Menggunakan metode iterasi Jacobi lebih efektif untuk
memecahkan masalah numerik dalam SPL berukuran besar.
2. Menggunakan program MATLAB 7 for Windows dalam membantu
pengolahan metode iterasi Jacobi.

69

PERSAMAAN GAUSS SEIDEL


A. Tujuan
a. Memahami Persamaan Gauss Seidel
b. Mampu Menentukan nilai akar persamaan dengan Gauss Seidel
c. Mampu membuat program untuk menentukan nilai akar dengan
Metode Gauss Seidel dengan Matlab
B. Perangkat dan Materi
a. Software Matlab
b. Metode Iterasi Gauss Seidel
C. Dasar Teori
Metode iterasi Gauss-Seidel untuk menyelesaikan sistem persamaan linear
Suatu sistem persamaan linier terdiri atas sejumlah berhingga persamaan
linear dalam sejumlah berhingga variabel. Menyelesaikan suatu sistem
persamaan linier adalah mencari nilai-nilai variabel yang belum diketahui
yang memenuhi semua persamaan linier yang diberikan.
Rumus iterasi untuk hampiran ke-k pada metode iterasi Gauss-Seidel adalah
sebagai berikut. Untuk i = 1, 2, , n dan k = 1, 2, 3, ,

Algoritma Iterasi Gauss-Seidel


Untuk menyelesaikan sistem persamaan linier AX = b dengan A adalah
matriks koefisien n n , b vektor konstanta n 1 , dan X vektor n 1 yang
perlu di cari.
INPUT : n, A, b dan hampiran awal Y = (y1 y2 y3 ...yn)T, batas toleransi T dan
maksimum iterasi N.
OUTPUT : X = (x1 x2 x3 ...xn)T atau pesan "gagal".
LANGKAH-LANGKAH :
1. Set penghitung iterasi k = 1
2. WHILE k<= N DO
(a) FOR i = 1, 2, 3, ..., n, hitung :

(b) Set X = (x1 x2 x3 ...xn)T


(c) IF ||X - Y|| < T THEN STOP
(d) Tambah penghitung iterasi, k = k + 1
(e) FOR i = 1, 2, 3, ..., n, Set yi = xi
(f) Set Y = (y1 y2 y3 ...yn)T

70

3. Tulis pesan "metode gagal setelah N iterasi"


4. STOP.
Implementasi dengan MATLAB
function [X1,g,H] = seidel(A,b,X0,T,N)
H = X0';
n = length(b);
X1 = X0 ;
for k=1:N,
for i=1:n,
S=b(i)-A(i,1:i-1)*X1(1:i-1)-A(i,i+1:n)*X0(i+1:n);
X1(i)=S/A(i,i);
end
g=abs(X1-X0);
err=norm(g);
relerr=err/(norm(X1)+eps);
X0=X1;
H=[H,X0'];
if(err<T)|(relerr<T),break,end
end
Contoh
Sebagai gambaran misalkan mencari penyelesaian SPL
10x1 - x2 +2x3=6
-x1+11x2-x3+3x4=25
2x1-x2+10x3-x4=-11
3x2-x3+8x4=15

Berikut pemakaian fungsi MATLAB seidel untuk penyelesaian soal di atas dan
keluaran yang diperoleh :
>> A=[10 -1 2 0;-1 11 -1 3;2 -1 10 -1;0 3 -1 8]
A=
10

-1

71

-1

11

-1

-1

10

-1

-1

>> b=[6;25;-11;15]
b=
6
25
-11
15

>> X0=[0;0;0;0]
X0 =
0
0
0
0
>> T=0.0001;N=25;
>> [X,g,H]=seidel(A,b,X0,T,N)
X=
1.0000
2.0000
-1.0000
1.0000
g=

72

1.0e-004 *
0.8292
0.2017
0.2840
0.1111
H=
Columns 1 through 6
0

0.6000

2.3273

Columns 7 through 12
-0.9873

0.8789

1.0302

2.0369 -1.0145

0.9843

0.9984

2.0003

Columns 13 through 18
1.0066

2.0036 -1.0025

1.0009

Columns 19 through 24
-1.0003

0.9998

1.0001

2.0000 -1.0000

1.0000

Columns 25 through 28
1.0000

2.0000 -1.0000

1.0000

Proses iterasi dapat diulangi sampai tingkat keakuratan yang diinginkan


tercapai, penyelesaian eksak contoh di atas adalah (1, 2, -1, 1).

Soal tugas di rumah:


Dikumpulkan (Buat LAPORAN PRAKTIKUM)
Carilah akar-akar persamaan berikut dengan Metode Gauss-Seidel dengan
Matlab :

73

3x1 0.1x 2 0.2 x3 7.85


0.1x1 7 x 2 0.3x3 19.3
0.3x1 0.2 x 2 10 x3 71.4

Latihan di kelas :
Carilah akar-akar persamaan berikut dengan Metode Gauss-Seidel dengan
Matlab:

x y 2z 9
2 x 4 y 3z 1
3x 6 y 5z 0
Praktikum 1
LAPORAN SEMENTARA
Hari/Tanggal
Nama
Nim
Kelas
TTD Dosen/Asisten

:
:
:
:
:

74

Chapter 5
PENDEKATAN FUNGSI
DEVIDE DIFFERENCE (SELISIH TERBAGI)
A. Tujuan
a. Memahami Polinomial Newton (Selisih Terbagi)
b. Mampu menentukan koefisien-koefisien Polinomial Newton
c. Mampu menentukan koefisien-koefisien Polinomial Newton dengan
Matlab
B. Perangkat dan Materi
a. Software Matlab
b. Metode Selisih Terbagi
C. Dasar Teori
Misalkan akan mencari pollinomial interpolasi

P n (x ) untuk menghampiri

f (x) . Untuk ini data yang diberikan adalah (n + 1) titik ,


( x1 , f ( x1 )), ( x 2 , f ( x 2 )),....... .., ( x n 1 , f ( x n 1 )) .

suatu fungsi

Misalkan polynomial interpolasinya kita tulis :

Pn ( x) a1 a 2 ( x x1 ) a3 ( x x1 )( x x 2 ) ...... a n 1 ( x x1 )( x x 2 ).....( x x n )
(1)
dan kit a ingin mencari nilai-nilai koefisien
Perhatikan bahwa di sini berlaku :

a1 , a 2 ,........, a n , a n 1 .

Pn ( x k ) f ( x k ) untuk 1 k (n 1)

Jika x x1 disubstitusikan ke dalam persamaan 1 di atas, maka semua


suku pada sisi kanan kecuali suku pertama bernilai nol, sehingga diperoleh :

f ( x1 ) Pn ( x1 ) a1

(2)

jika x x 2 disubstitusikan ke dalam persamaan (1) , maka semua suku pada


sisi kanan kecuali dua suku pertama bernilai nol, sehingga diperoleh :

75

f ( x 2 ) Pn ( x 2 ) a1 a 2 ( x 2 x1 )
atau

a2

Jika

(3)

f ( x 2 ) a1
f ( x 2 ) f ( x1 )

x 2 x1
x 2 x1

(4)

P n (x ) dihitung pada x x3 , maka akan dperoleh persamaan


f ( x3 ) Pn ( x3 ) a1 a 2 ( x x1 ) a3 ( x3 x1 ) a3 ( x3 x1 )( x3 x 2 ).
(5)

sehingga diperoleh :

f ( x3 ) a1 a 2 ( x3 x1 )
( x3 x1 )( x3 x 2 )
f ( x 2 ) f ( x1 )
f ( x3 ) f ( x1 ) (
)( x3 x1 )
x 2 x1
( x3 x1 )( x3 x 2 )
=

a3

f ( x3 ) f ( x1 ) f ( x 2 ) f ( x1 )

x3 x1
x 2 x1

( x3 x 2 )

dengan cara menyamakan


persamaan terakhir menjadi :

a3

6
penyebut

( x3 x 2 )( x3 x1 )( x3 x1 ) , sehingga

f ( x3 ) f ( x1 ) f ( x 2 f ( x1 )

x3 x1
x 2 x1

( x3 x1 )

(6)

Berikut diperkenalkan pengertian selisih-selisih terbagi dari suatu fungsi :


1. Selisih terbagi ke nol terhadap

xk

f | x k | f ( x k )

k 1,2,3,....(n 1)

2. Selisih terbagi pertma terhadap

x k dan x k 1

76

(7)

f x k , x k 1

f x k 1 f x k
x k 1 x k

k 1,2,3,....n

3. Selisih terbagi kedua terhadap

f x k , x k 1 , x k 2

(8)

x k , x k 1 dan x k 2

f x k 1 , x k 2 f x k , x k 1
xk 2 xk

k 1,2,3,....( n 1)

(9)

4. ..
5. Selisih terbagi ke-j terhadap
rekursif.

f x k , x k 1 ,......, x k j

untuk

x k , x k 1 x k j didefinisikan secara

f x k 1 , x k 2 ,....., x k j f x k , x k 1 ,......, x k j 1

xk j xk

k 1,2,3,...., n 1 j;

j 1,2,3,...., n

(10)

Teorema POLINOMIAL NEWTON


Misalkan

fungsi

f (x)

terdefinisi

pada

interval

[a,

b],

dan

misalkan

x1 , x 2 ,...., x n 1 dan x n 1 bilangan yang berlainan pada interval [a,b], maka


P n (x ) berderajat paling tinggi n yang
terdapat sebuah polynomial tunggal
memenuhi :

f ( x k ) Pn ( x k )

untuk k = 1, 2, 3,

, (n+1)

Polinomial Newton adalah :

Pn ( x ) a1 a 2 ( x x1 ) a3 ( x x1 )( x x 2 ) ... a n 1 ( x x1 )( x x 2 ).....( x x n )

(11)

dengan

a k f [ x1 , x 2 ,....., x k ]
Koefisien polynomial
dihampiri.

untuk k 1,2,3,....., (n 1)
Newton

merupakan

AKIBAT HAMPIRAN NEWTON

77

selisih

terbagi

fungsi

yang

P n (x ) adalah polynomial Newton yang diberikan oleh teorema


Polinomial Newton di atas, dan digunakan untuk menghampiri fungsi f (x) ,
Misalkan
yaitu :

f ( x) Pn ( x) E n ( x)

(12)

Jika f mempunyai turunan ke (n+1) pada interval [a,b], maka untuk setiap

x [a, b] , terdapat bilangan c c( x) [a, b] , sedemikian sehingga fungsi galat


E n (x) berbentuk :
( x x1 )( x x 2 )....( x x n 1 ) f
E n ( x)
(n 1)!

Cara
menghitung
menggunakan tabel:

( n 1)

(c )
(13)

selisih-selisih

terbagi

Newton

dengan

Tabel 1 : Cara menghitung selisih terbagi Newton

x n 1

xn

x n 1

f [ x3 ]

f [ x n 1 ]

f [ xn ]

f [ x n 1 ]

f [ x3 , x 4 ]

f [ x n 1 , x n ]

f [ x n , x n 1 ]

x1

x2

x3

f [ x1 ]

f [ x2 ]

f [ x1 , x 2 ]

f [ x 2 , x3 ]

f [ x1 , x 2 , x3 ]

f [ x 2 , x3 , x 4 ] f [ x 3 , x 4 , x5 ]

f [ x1 , x 2 ,....., x n 1 ]

f [ x n 1 , x n , x n 1 ]

Untuk keperluan komputasi nilai-nilai selisih terbagi Newton pada tabel 1


perlu disimpan ke dalam matriks (array), misalkan D(j,k). Jadi koefisienkoefisien

a k pada persamaan 11 menjadi :

D( j , k ) f [ x k , x k 1 ,..., ( x k j ],

(14)

untuk 1 j (n 1) dan 1 k [( n 1) j 1]
dengan demikian

a j D ( j ,1)

j = 1,2, , (n+1)

Algoritma SELISIH TERBAGI NEWTON


INPUT

(( x1 , f ( x1 )), ( x 2 , f ( x 2 )),..., ( x n 1 , f ( x n 1 ))
78

a , a , a ,...., a

n 1
OUTPUT
: 1 2 3
LANGKAH-LANGKAH :
1. for k = 1,2,., (n+1)

D(1,k) =

f ( xk )

2. a1 D (1,1)
3. For j = 1, 2, , (n+1)
a. For k = 1, 2, , ((n+1) j + 1)

D ( j , k ) ( D ( j 1, k 1) D ( j 1, k )) /( x k j 1 x k )

b.
4. STOP

a j D ( j ,1)

Implementasi dalam MATLAB:

function D=selisihN(x,y)
n=length(x);
D(1,1:n)=y;
for j=2:n,
for k=1:n-j+1,
D(j,k)=(D(j-1,k+1)-D(j-1,k))/(x(k+j-1)-x(k));
end
end
Contoh 1:
Hitunglah selisih-selisih terbagi fungsi f sampai tingkat tiga, jika diketahui
data titik-titik sebagai berikut:
Selanjutnya, tentukan polynomial Newton yang menginterpolasikan titik-titik
tersebut.
Tabel contoh 1:

xk

f ( xk )

Penyelesaian :
Dari data pada tabel contoh 1 dapat disusun tabel selisih terbagi Newton
untuk fungsi f sebagai berikut. Nilai-nilai selisih terbagi Newton membentuk
transpose matriks segitiga atas. Dari hasil perhitungan tersebut, elemenelemen pada kolom pertama matriks D merupakan koefisien-koefisien
polynomial Newton yang menginterpolasikan data tersebut.

xk

79

f ( xk )
D(1,
D(2,
D(3,
D(4,

k)
k)
k)
k)

1
0
1/2
-1/12

1
1
1/6
0

2
3/2
0
0

5
0
0
0

Polinomial Newton yang dicari adalah :

P3 ( x ) 1

1
1
x( x 1) x( x 1)( x 2)
2
12

Contoh Cara Mencari Koefisien :

D(2,1)
Misal untuk D(2,1), berarti j = 2 , k =1

D(2,2)
Misal untuk D(2,2), berarti j = 2 , k = 2
dst

D(1,2) D (1,1) 1 1

0
x 2 x1
1 0

D(1,3) D(1,2) 2 1

1
x3 x 2
20

Bila Contoh 1 di atas dikerjakan dengan implementasi program Matlab di


atas, dan dirunning dalam command windows, diproleh:
>> x=[0 1 2 4]
x=
0

>> y=[1 1 2 5]
y=
1

>> D=selisihN(x,y)
D=
1.0000 1.0000 2.0000 5.0000
0 1.0000 1.5000
0
0.5000 0.1667
0
0
-0.0833
0
0
0
yang angka (hijau adalah koefisien-koefisien Newton)

Contoh 2:

80

3
Misalkan f ( x) x 4 x . Buatlah tabel selisih terbagi untuk fungsi f tersebut

dengan menggunakan titik-titik


Tentukan Polinomial Newton

x1 1, x 2 2,.x3 3, x 4 4, x5 5, x6 6

P3 ( x) dengan menggunakan notasi x1 , x 2 , x3 dan

x4
Penyelesaian:
Tabel contoh 2

xk

x1 1

x2 2

x3 3

x4 4

x5 5

x6 6

f ( xk )

-3

15

48

105

192

D(1,k)
D(2,k)
D(3,k)
D(4,k)
D(5,k)
D(6,k)

-3
3
6
1
0
0

0
15
9
1
0
0

15
33
12
1
0
0

48
57
15
0
0
0

105
87
0
0
0
0

192
0
0
0
0
0

Selanjutnya, diperoleh koefisien-koefisien


pada tabel contoh 2 di atas :

P3 ( x) adalah pada kolom kedua

P3 ( x) 3 3( x 1) 6( x 1)( x 2) 1( x 1)( x 2)( x 3)


Penyelesaian dengan implementasi Matlab:
>> x=[1 2 3 4 5 6]
x=
1

>> y=[-3 0 15 48 105 192]


y=
-3

15

48 105 192

>> D=selisihN(x,y)
D=
-3
3
6
1
0
0

0 15
15 33
9 12
1
1
0
0
0
0

48
57
15
0
0
0

105 192
87
0
0
0
0
0
0
0
0
0

81

TUGAS:

Buatlah tabel selisih terbagi untuk fungsi : f ( x ) cos( x) dengan

x1 0, x 2 1, x3 2, x 4 3, x 4 4, x5 5 . Tentukan
P (x ) , untuk k= 1,2,3,4.
Polinomial Newton k
menggunakan 5 titik

82