Anda di halaman 1dari 108

# Modul Praktikum

Metode Numerik

1
DAFTAR ISI

## Daftar Isi ............................................................................................................

2

Pengenalan Matlab.........................................................................................
3
Pemrograman Sederhana dengan Matlab................................ 6

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

2
Metode Iterasi Jacobi ...................................................................... 58
Metode Gauss Seidel ....................................................................... 66

## Chapter 5. Pendekatan Fungsi ................................................................. 71

Metode Devide Difference ............................................................ 71

3
Pengenalan Matlab

SEKILAS MATLAB

1. Current Directory

Path Browser memungkinkan Anda melihat dan mengubah alamat Pencarian MATLAB

## 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,

4
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

## berhubungan dengan image prosessing.

5
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 :

6
Operasi-operasi Aritmetik Dasar :

## Operasi Simbol Contoh

Penambahan, a + b + 5+3

Pengurangan, a b 23 12

Perkalian, a x b * 3.14 * 5

## Pembagian, a : b / atau \ 6/3 = 3\6

Pemangkatan, ab ^ 5^2

Variabel

## Aturan Penamaan Variabel Catatan & Contoh

Nama variabel dibedakan antara huruf Items, items, itEms, dan ITEMS semuanya

## atau garis bawah. Karakter tanda baca

tidak diperbolehkan.

PENDAHULUAN

Variabel

7
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 di-running.

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

8
>> topik='segi tiga'

topik =

segi tiga

>> alas = 5

alas =

>> tinggi=10

tinggi =

10

## >> luas_segitiga = 0.5 * alas * tinggi

luas_segitiga =

25

9
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

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 10

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

11
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 =

y =

z =

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

z =

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

12
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);

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

>> luassegitigasiku(10,20)
13
ans =

100
VEKTOR DAN MATRIKS VEKTOR MATRIKS

Vektor dan matriks merupakan konsep dasar perhitungan dalam Matlab. Berbagai
perhitungan dapat diselesaikan dengan lebih mudah, ringkas, dan cepat bila bentuknya
dikonversi ke dalam bentuk vektor/matriks. Untuk itu, harus dipahami benar dasar operasi
dengan menggunakan vektor/matriks.

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.

## (i) Bentuk deret sederhana

Bentuk umum penulisan data dengan pola tertentu atau deret yang sederhana:
variabel = n : m dimana n = nilai awal, m = nilai akhir

14
>> a = 1:5
a =
1 2 3 4 5

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

>> a = [1 2 3 4 5]
a =
1 2 3 4 5
>> 1:10
(ii) Penggunaan increment
ans =umum penulisan data dengan pola tertentu atau deret:
Bentuk
variabel 1= n : i : m
2 dimana3n = nilai4awal, m 5= nilai akhir,
6 dan i7= increment/langkah;
8 9 bila10I
tidak didefinisikan, maka Matlab akan
>> 1:2:10 default-nya yaitu 1.
menggunakan
ans =
1 3 5 7 9

>> 0:2:10
ans =

0 2 4 6 8 10

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

a =

1 2 3

b =

2 1 0

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

ans =

3 3 3
16
>> a b % pengurangan vector baris a dengan vector baris
b
ans =
3. Matriks

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.

17
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

>> C=A+B
C =
4 5 6
4 3 5

>> D=A-B
D =
-2 -1 0
0 -1 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

18
4. Pengalamatan
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
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

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

x(n) = n^3
end

x =
1

x =
1 8

x =
1 8 27

x =
1 8 27 64

## Contoh : Operasi perkalian 2 buah vector

20
>> 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 :

21
n = 1;
x = 0;
while x <15
x(n) = n^2;
n = n+1;
end
>> x

x =
1 4 9 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

22
Program ditulis dalam m.file, disimpan dengan nama kue.m

## 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
elseif if_ekspresi4
perintah dikerjakan jika if_ekspresi4 benar
elseif
else
perintah dikerjakan jika tidak ada if_ekspresi yang benar
end

23
Contoh:
Untuk menentukan nilai akhir mahasiswa, untuk setiap mata kuliah diadakan ujian
KD1 KD2 K 3 D 4
kompetensi dasar (KD) sebanyak 4 kali. Nilai _ Akhir , Jika Nilai
4
akhir >80 memperoleh A, jika 70 Nilai _ Akhir 80 , nilai B, Jika
60 Nilai _ Akhir 70 nilai C, jika Nilai_Akhir < 60 nilai D

## KD1 = input('Masukkan nilai KD 1 sekala 100, KD 1 =');

KD2 = input('Masukkan nilai KD 2 sekala 100, KD 2 =');
KD3 = input('Masukkan nilai KD 3 sekala 100, KD 3 =');
KD4 = input('Masukkan nilai KD 4 sekala 100, KD 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

24
Program di atas disimpan dalam format m.file dengan nama nilai.m. apabila di run

## 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
Masukkan nilai KD 4 sekala 100, KD 4 =79

NA =

79

ket =

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
25 nomor urutnya saja) =
');
switch n
case (1), disp('Metode Newton')
case (2), disp('Metode Regula Falsi')
Program tersebut ditulis dalam m.file dan diberi nama pilihan.m, apabila di run hasilnya

>> 1. Newton
2. Regula Falsi
3. Newton Raphson
Metoda yang dipilih (masukkan nomor urutnya saja) = 2
Metode Regula Falsi

26
Chapter 1
ERROR PERHITUNGAN NUMERIK

A. Tujuan

dengan Matlab

## B. Perangkat dan Materi

a. Software Matlab

C. Dasar Teori

(Hampiran)

Penyelesaian :

## perkalian, pembagian, dan penjumlahan sebagai berikut :

1 2
x1 1, xn xn1 , untuk n = 2,3,4,...
2 xn1

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

27
3 17 1 17 24 577 1 577 816 665857
x2 , x3 , x4 , x5 ,
2 12 2 12 17 408 2 408 577 470832

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

28
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 :

## 2. Galat bawaan dari masukan (parameter masukan)

3. Metode Penyelesaian

Teori :

## Dari hubungan nilai eksak diperoleh :

29
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 ex e y

## Galat relatif penjumlahan adalah :

ex y ex e y
rx y
xy 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 :

ex y ex e y
rx y
xy xy

Dari persamaan terakhir dapat dipahami bahwa, apabila x y maka galat relatif

## 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 :

xi E X i xi E , untuk i 1,2,...., n

## Dengan menjumlahkan nilai-nilai tersebut diperoleh :

30
n n n

xi nE X i xi nE
i 1 i 1 i 1

n n
Atau X i xi nE
i 1 i 1

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?

Penyelesaian :

## menggunakan Matlab perhitungan (menggunakan 16 angka signifikan). Untuk

menghitung sampai dua angka desimal, masing-masing akar dikalikan 100 dan

## b. Buatlah program berikut pada command windows

> s=0;

for k=1:100,

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

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

2
masing-masig suku adalah 0.5 10 . Oleh karena itu, maksimum galat hampiran jumlah

2
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

galatnya.

32

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

33
Chapter 2

PENYELESAIAN
PERSAMAAN NON LINEAR

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

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

## Persamaan atau fungsi f dapat berbentuk sebagai berikut:

34
a. Persamaan aljabar atau polinomial

## f(x) = pn(x) = anxn + an-1xn-1 + + a1x + a0

b. Persamaan transenden

atau eksponen

## Contoh: (i) ex + cos(x) = 0 (ii) ln(x) + log(x2) = 0

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

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

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

35
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:

## Misalkan f(x) = exp(-x) x

Gambar-1

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

37
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]);

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

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

39
if sign(f)> 0

tanda(i)='+';

fprintf(' %s\n',tanda(i));

else

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'

else

if i >1

if tanda(i)~= tanda(i-1)

a=x-beda;

b=x;

40
end;

end;

end;

i=i+1;

end;

## maka hasil tabulasinya adalah sbb.

x f(x) tanda

------------------

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]

41
Latihan.
Cari akar persamaan tak linier dengan metode garfik dan tabulasi :
1. f ( x) 2 x 3
2. f ( x) (2 x 1) 3
coba dikembangkan dengan mencari sendiri persamaan tak linier yang dapatdiselesaikan
dengan metode grafik dan tabulasi.

42
METODE BISEKSI

A. Tujuan

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

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

43
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

6
m=(a+b)/2, lalu diperiksa apakah nilai mutlak f(m)< toleransi(misal 10 ).

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

Jika tidak terpenuhi, ditetapkan batasan baru dengan mengganti nilai b=m

apabila f(a).f(m)<0, dan mengganti a=m bila f(a).f(m)>0 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.

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

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

45
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. Langkah-langkah 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.

46
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

47
Cara menggunakan program di atas untuk menyelesaikan persoalan f ( x) x x 5
dalam
MATLAB, di command window ketikkan perintah:

## >>f=inline(x^x-5) % mendefinisikan fungsi f ( x) 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=
2.12927246093750

48
Metode Newton Raphson

A. Tujuan

## h. Mampu Menentukan nilai akar persamaan dengan Metode Newton Raphson

i. Mampu membuat program untuk menentukan nilai akar dengan Metode Newton

## B. Perangkat dan Materi

f. Software Matlab

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

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

f ( xi ) 0 f ( xi )
f ' ( xi ) atau f ' ( xi )
xi xi 1 xi xi 1

Sehingga

f ( xi )
xi 1 xi dimana i = 0, 1,2,....
f ' ( xi )

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

## Dengan demikian rumus untuk menentukan akarnya adalah :

( x 3 3x 20)
xi 1 xi Perkiraan Awal x0 5
( x 2 3)

Langkah 1:

50
f (5) 53 3(5) 20 90
f ' (5) 3(5) 2 3 72
90
x1 5 3.75
72

Langkah 2:

## f (3.75) 3.753 3(3.75) 20 21.84844

f ' (3.75) 3(3.75) 2 3 39.1875
21.4844
x2 3.75 3.201754
39.1875

Dan seterusnya

## 2. Hitung xbaru = x f(x0)/f(x0).

3. Jika nilai mutlak fxbaru < toleransi, diperoleh xbaru sebagai hasil perhitungan;

## Flow Chart Metode Newton Raphson

51
Implementasi dengan MATLAB

function x = MetodeNewton(f,x0,n,tol)
int i;
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 Newton
disp([i x fa]) % fa = f(x);
52
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

## 8.0000 -3.0029 -112.8032

53
9.0000 -1.4202 -38.0705

x=

3.0809

54
METODE SECANT

A. Tujuan

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

## Penentuan nilai turunan fungsi dengan metode Secant.

55
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 xi 1
xi 1 xi f ( xi )
f ( xi ) f ( xi 1 )

Contoh :

f ( x) x 3 3x 20

x1 6 f (6) 178
Untuk perkiraan awal
x 2 2 f (2) 18

## 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;

## Flow Chart Metode Secant :

56
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 57
Simpan fungsi di atas dengan naman MetodeSecant.

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

## 6.0000 3.0809 0.0299

58
7.0000 3.0809 -0.0002

x=

3.0809

## dengan program Melab dengan Metode :

a. Newton Raphson

b. Secant

Latihan di kelas :

1. f ( x) e x 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 :

59
60
METODE REGULA FALSI

A. Tujuan

## b. Mampu Menentukan nilai akar persamaan dengan Metode Regula Falsi

c. Mampu membuat program untuk menentukan nilai akar dengan Metode Regula

## B. Perangkat dan Materi

d. Software Matlab

C. Dasar Teori

## Metode Regula Falsi atau Interpolasi Linier

Metode ini sangat mirip dengan metode bisection, perbedaannya hanya dalam
menentukan nilai m-nya.

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

61
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
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
f (b)(b a)
mb
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).

6
Contoh : cari akar persamaan f ( x) x 3 x 2 1 dengan toleransi: 10

Langkah 1:

f (0) 03 0 2 1 1

f (2) 23 2 2 1 3

3(2 0)
m 2 0.5
3 (1)

## f (0.5) 0.53 0.52 1 1.1250000 0.000001

Langkah 2:

62
karena f(a).f(m)= (-1)( -1.1250000) > 0, maka a = m, sehingga:

a=0.5, b=2

f (2) 23 2 2 1 3

3(2 0.5)
m 2 0.909091
3 (1.125)

Langkah 3:

a=0.909091, b=2

f (2) 23 2 2 1 3

3(2 0.909091)
m 2 1.196903
3 (1.07513141)

Langkah 4:

a=1.196903, b=2

f (2) 23 2 2 1 3

3(2 1.196903)
m 2 1.351979027
3 (0.717921332)

63
Langkah 5:

a=1.351979, b=2

f (2) 23 2 2 1 3

3(2 1.351979)
m 2 1.420829976
3 (0.35663608)

## Perhitungan dapat dilihat dalam tabel berikut :

Langkah-langkah penyelesaian persamaan f ( x) x 3 x 2 1 dengan metode regula falsi

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

6

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

64
Diagram alir metode regula falsi.

65
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

66
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
1.46551929414272 -0.00018242496629
1.46573926880956 0.00059033482427
1.46557428780943 0.00001073416219
1.46553304255940 -0.00013413711025
1.46554335387191 -0.00009792037557
1.46555108735629 -0.00007075735056
1.46555688746957 -0.00005038481518
1.46556123755454 -0.00003510526367

x=
1.46556123755454

67
Soal Tugas di rumah:

## 1. f ( x) e x 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 :

## 1. f ( x) e x x dengan titik awal a = 0 dan b = 1, carilah nilai x dengan program

Matlab dengan Metode :
a. Biseksi
b. Regula Falsi

68
69
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 .
sepanjang h.

Misalkan kita hendak mencari penyelesaian numeric untuk persamaan (1) pada interval
[a,b].
sedemikian sehingga :

untuk k = 1,2, , n

## Misalkan . Apabila diketahui, maka kita dapat menghitung nilai .

70
Persamaan garis ini adalah . Garis ini merupakan garis singgung
Selanjutnya, tentukan titik pada garis ini yang memiliki absis . Ordinat ini adalah
.
Sekarang merupakan hampiran penyelesaian .

## Algoritma (Metode Euler)

CONTOH :
Misalkan akn menghitung hampiran penyelesaian masalah nilai awal :

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

71
>> [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)

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

72
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 :

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

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

73
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

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

## Menghitung hampiran penyelesaian masalah nilai awal y ' f (t , y ) dengan

y (t 0 ) y 0 pada [t 0 , b] .

## Input : t 0 , b, y 0 , h, dan fungsi f

Output : (t k , y k ), k 1,2,......., n

Langkah-langkah :

1. hitung n (b t 0 ) / h

74
2. for k = 1,2,3,.., n

Hitung t k t k 1 h

Hitung S1 f (t k 1 , y k 1 ),

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

h
Hitung y k y k 1 ( S1 S 2 )
2
3. Selesai .

## Pada metode ini y k 1 dihitung dengan menggunakan langkah langkah sebagai

berikut:

S1 f (t k , y k ) (1)

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

(S1 S 2 )
y k 1 y k h (3)
2
untuk k = 0, 1, 2, ., dengan (t 0 , y0 ) diktehui.

## Pada perhitungan-perhitungan di atas, S1 adalah gradient di titik (t k , y k ) , S2

gardien di titik (t k h, y k hS1 ) dan rata-rata S1 dan S 2 digunakan untuk
menghitung hampiran selanjutnya y k 1 .

## Jika titik (t k , y k ) diketahui, maka titik solusi t k 1 , y k 1 dapat diperoleh dengan

mengintegralkan y ' (t ) pada [t k , t k 1 ] ,
t k 1
t k 1

tk
f (t , y (t )) dt
tk
y ' (t )dt y (t k 1 ) y (t k )

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

75
dengan menggunakan aturan trapezium dengan lebar langkah h t k 1 t k untuk
menghitung hampiran suku integral, diperoleh hampiran :

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

Kita dapat menggunakan Metode Euler untuk menaksir y k 1 pada ruas kanan,
sehingga diperoleh Metode Heun :

y (t k 1 ) y (t k )
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

h3
y ( k )
n

12
oleh karena itu, galat setelah n langkah pada Metode Heun menjadi :
n
h3 tn t0 n

k 1
y ( k )
n

12

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

Dengan demikian kita peroleh bahwa galat pada setiap langkah (iterasi) dalam
Metode Heun (RK2) adalah O(h 3 ) . Sedangakan galat yang terakumulasi pada akhir
setiap lankah adalah O(h 2 ) .

Contoh :

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 t 0 0, y 0 1
2 2 2 h

76
Penyelesaian eksak masalah nilai awal di atas adalah :

y e t / 2 t 2 .

Kode Matlab berikut ini akan menghasilkan nilai- nilai y k untuk lebar-lebar langkah
yang ditentukan :

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

78
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).
d. Solusi sistem TRIDIAGONAL (S3DIAG), prinsipnya merupakan solusi SPL dengan
bentuk matrik pita (satu diagonal bawah, satu diagonal utama, dan satu diagonal

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

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

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

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 :

81
1. set penghitung iterasi ke =1
2. WHILE k n DO
bi j i aij y j
(a) FOR i = 1, 2, 3, ..., n, hitung xi
aii
(b) Set X = (x1 x2 x3 ..xn)T
(c) IF X Y < 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)

bi j i aij y j
xi
aii

xi = ( x1 x2 x3 xn)

STOP

82
D. Iterasi Jacobi dengan Menggunaan Matlab 7

## Jika x(k)menyatakan hampiran ke k penyelesaian SPL , AX = b, dengan x(0)adalah

hampiran awal, maka metode iterasi Jacobi dapat dinyatakan sebagai berikut :
1
xi
(k )
bi aij x j ( k 1) , i = 1, 2, 3, ..., n ; k = 1, 2, 3, ..

aii j i

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

83
x 2 x3 3
x1
10 5 5
x x 3x 25
x2 1 3 4
11 11 11 11
x1 x2 x4 11
x3
5 10 10 10
3x2 x3 15
x4
8 8 8
Misalkan kita pilih hapiran penyelesaian awal (0 0 0 0)T, maka hampiran
3
x1 0 .6 = 1
5
25
x2 2.2727 = 2
11
11
x3 1.1 = -1
10
15
x4 1.8750 = 2
8
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.
No x1 x2 x3 x4
1 0.6 2.27273 -1.1 1.875
2 1.04727 1.71591 -0.805227 0.885227
3 0.932636 2.05331 -1.04934 1.13088
4 1.0152 1.9537 -0.968109 0.973843
5 0.988991 2.01141 -1.01029 1.02135
6 1.0032 1.99224 -0.994522 0.994434
7 0.998128 2.00231 -1.00197 1.00359
8 1.00063 1.99867 -0.999036 0.998888

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

84
Menyelesaikan contoh SPL berikut ini dengan menggunakan metode iterasi
Jacobi.
2x1 x2 + 10x3 = -11
3x2 x3 + 8x4 = -11
10x1 x2 + 2x3 =6
-x1 + 11x2 x3+ 3x4 = 25

## 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);
relerr = err/(norm(X1)+ eps);
X0 = X1;
H = [H;X0'];
if (err<T)|(relerr<T),break,end
end

## Layar Editor MATLAB 7

85
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

86
0
>> T=.00001
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

87
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
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 10 0;0 3 -1 8]

A=
10 -1 2 0
-1 11 -1 3

88
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 . 0000
1 . 1000 2 . 6364 -1 . 6000 -2 . 3750
1 . 9836 2 . 6023 -1 . 8564 -2 . 4386
1 . 0315 2 . 9494 -1 . 0365 -2 . 4579
1 . 1022 2 . 9426 -1 . 0114 -2 . 6106
1 . 1065 2 . 9930 -1 . 0262 -2 . 6049
1 . 1045 2 . 9895 -1 . 0200 -2 . 6256
1 . 1030 2 . 9965 -1 . 0220 -2 . 6236

89
1 . 1040 2 . 9856 -1 . 0209 -2 . 6264
1 . 1037 2 . 9966 -1 . 0212 -2 . 6260
1 . 1039 2 . 9964 -1 . 0211 -2 . 6264
1 . 1039 2 . 9965 -1 . 0211 -2 . 6263
1 . 1039 2 . 9965 -1 . 0211 -2 . 6263
1 . 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

90
iterasi Jacobi akan konvergen. Suatu matrik A berukuran n x n dikatakan
| aii || ai ,1 | ... | ai ,i 1 | | ai ,i 1 | ... | ai ,n | untuk i = 1, 2, 3, ..., n.

SIMPULAN
A. Simpulan
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.

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

berikut. Untuk i = 1, 2, , n dan k = 1, 2, 3, ,

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

92
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
3. Tulis pesan "metode gagal setelah N iterasi"
4. STOP.

## 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);

93
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 2 0

-1 11 -1 3

2 -1 10 -1

0 3 -1 8

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

b=

25

-11

15

>> X0=[0;0;0;0]

X0 =

>> T=0.0001;N=25;

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

X=

1.0000

2.0000

-1.0000

1.0000

95
g=

1.0e-004 *

0.8292

0.2017

0.2840

0.1111

H=

Columns 1 through 6

0 0 0 0 0.6000 2.3273

Columns 7 through 12

## -0.9873 0.8789 1.0302 2.0369 -1.0145 0.9843

Columns 13 through 18

## 1.0066 2.0036 -1.0025 0.9984 1.0009 2.0003

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

96
Soal tugas di rumah:

## 3x1 0.1x2 0.2 x3 7.85

0.1x1 7 x2 0.3x3 19.3
0.3x1 0.2 x2 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 5 z 0

Praktikum 1
LAPORAN SEMENTARA

Hari/Tanggal :
Nama :
Nim :
Kelas :
TTD Dosen/Asisten :

97
98
Chapter 5

PENDEKATAN FUNGSI

A. Tujuan

## B. Perangkat dan Materi

a. Software Matlab

## b. Metode Selisih Terbagi

C. Dasar Teori

Misalkan akan mencari pollinomial interpolasi P n (x) untuk menghampiri suatu fungsi
f (x) . Untuk ini data yang diberikan adalah (n + 1) titik ,
( x1 , f ( x1 )), ( x2 , f ( x2 )),........., ( xn1 , f ( xn1 )) .

## dan kit a ingin mencari nilai-nilai koefisien a1 , a2 ,........, an , an1 .

Perhatikan bahwa di sini berlaku : Pn ( xk ) f ( xk ) untuk 1 k (n 1)

99
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 x2 disubstitusikan ke dalam persamaan (1) , maka semua suku pada sisi kanan
kecuali dua suku pertama bernilai nol, sehingga diperoleh :

f ( x2 ) Pn ( x2 ) a1 a2 ( x2 x1 ) (3)
atau
f ( x2 ) a1 f ( x2 ) f ( x1 )
a2 (4)
x2 x1 x2 x1

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

f ( x3 ) Pn ( x3 ) a1 a2 ( x x1 ) a3 ( x3 x1 ) a3 ( x3 x1 )( x3 x2 ).
(5)

sehingga diperoleh :

f ( x3 ) a1 a2 ( x3 x1 )
a3
( x3 x1 )( x3 x2 )
f ( x 2 ) f ( x1 )
f ( x3 ) f ( x1 ) ( )( x3 x1 )
x 2 x1
=
( x3 x1 )( x3 x 2 )

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

x3 x1 x 2 x1
= 6
( x3 x 2 )

100
dengan cara menyamakan penyebut ( x3 x2 )( x3 x1 )( x3 x1 ) , sehingga persamaan

f ( x3 ) f ( x1 ) f ( x 2 f ( x1 )
(6)
x x x 2 x1
a3 3 1

( x3 x1 )

## Berikut diperkenalkan pengertian selisih-selisih terbagi dari suatu fungsi :

1. Selisih terbagi ke nol terhadap x k

f | x k | f ( x k ) k 1,2,3,....(n 1) (7)

## 2. Selisih terbagi pertma terhadap x k dan x k 1

f x k 1 f x k
f x k , x k 1 k 1,2,3,....n (8)
x k 1 x k

## 3. Selisih terbagi kedua terhadap x k , x k 1 dan xk 2

f x k 1 , x k 2 f x k , x k 1
f x k , x k 1 , x k 2 k 1,2,3,....(n 1) (9)
xk 2 xk
4. ..
5. Selisih terbagi ke-j terhadap x k , x k 1 x k j didefinisikan secara rekursif.

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

f x k 1 , x k 2 ,....., x k j f x k , x k 1 ,......, x k j 1
(10)
xk j xk
untuk k 1,2,3,...., n 1 j; j 1,2,3,...., n .

## Teorema POLINOMIAL NEWTON

101
Misalkan fungsi f (x ) terdefinisi pada interval [a, b], dan misalkan x1 , x2 ,...., xn1 dan x n 1
bilangan yang berlainan pada interval [a,b], maka terdapat sebuah polynomial tunggal
P n (x) berderajat paling tinggi n yang memenuhi :
f ( xk ) Pn ( xk ) untuk k = 1, 2, 3, , (n+1)

dengan

## AKIBAT HAMPIRAN NEWTON

Misalkan P n (x) adalah polynomial Newton yang diberikan oleh teorema Polinomial
Newton di atas, dan digunakan untuk menghampiri fungsi f (x ) , 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 :

E n ( x) (13)
(n 1)!

## Tabel 1 : Cara menghitung selisih terbagi Newton

102
x1 x2 x3 x n 1 xn x n 1
.
f [ x1 ] f [ x2 ] f [ x3 ] f [ x n 1 ] f [ xn ] f [ x n 1 ]

f [ x1 , x2 ] f [ x 2 , x3 ] f [ x3 , x 4 ] f [ xn1 , xn ] f [ xn , xn1 ]

f [ x1 , x2 , x3 ] f [ x 2 , x3 , x 4 ] f [ x3 , x 4 , x5 ] f [ xn1 , xn , xn1 ]

.
f [ x1 , x2 ,....., xn1 ]

Untuk keperluan komputasi nilai-nilai selisih terbagi Newton pada tabel 1 perlu disimpan
ke dalam matriks (array), misalkan D(j,k). Jadi koefisien-koefisien a k pada persamaan 11

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]

## INPUT : (( x1 , f ( x1 )), ( x2 , f ( x2 )),..., ( xn1 , f ( xn1 ))

OUTPUT : a1 , a2 , a3 ,...., an1
LANGKAH-LANGKAH :
1. for k = 1,2,., (n+1)
D(1,k) = f ( x k )
2. a1 D(1,1)
3. For j = 1, 2, , (n+1)
a. For k = 1, 2, , ((n+1) j + 1)

103
D( j , k ) ( D( j 1, k 1) D( j 1, k )) /( x k j 1 x k )
b. a j D ( j ,1)
4. STOP

## 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 0 1 2 4
f ( xk ) 1 1 2 5

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

104
atas. Dari hasil perhitungan tersebut, elemen-elemen pada kolom pertama matriks D
merupakan koefisien-koefisien polynomial Newton yang menginterpolasikan data
tersebut.

xk 0 1 2 4
f ( xk ) 1 1 2 5
D(1, k) 1 1 2 5
D(2, k) 0 1 3/2 0
D(3, k) 1/2 1/6 0 0
D(4, k) -1/12 0 0 0

## Polinomial Newton yang dicari adalah :

1 1
P3 ( x) 1 x( x 1) x( x 1)( x 2)
2 12
Contoh Cara Mencari Koefisien :
D(1,2) D(1,1) 1 1
Misal untuk D(2,1), berarti j = 2 , k =1 D(2,1) 0
x 2 x1 1 0
D(1,3) D(1,2) 2 1
Misal untuk D(2,2), berarti j = 2 , k = 2 D(2,2) 1
x3 x 2 20
dst

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 1 2 4

>> y=[1 1 2 5]

y=

105
1 1 2 5

>> 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:
Misalkan f ( x) x 3 4 x . Buatlah tabel selisih terbagi untuk fungsi f tersebut dengan
menggunakan titik-titik x1 1, x2 2,.x3 3, x4 4, x5 5, x6 6
Tentukan Polinomial Newton P3 ( x) dengan menggunakan notasi x1 , x 2 , x3 dan x 4

Penyelesaian:
Tabel contoh 2

xk x1 1 x2 2 x3 3 x4 4 x5 5 x6 6
f ( xk ) -3 0 15 48 105 192
D(1,k) -3 0 15 48 105 192
D(2,k) 3 15 33 57 87 0
D(3,k) 6 9 12 15 0 0
D(4,k) 1 1 1 0 0 0
D(5,k) 0 0 0 0 0 0
D(6,k) 0 0 0 0 0 0

106
contoh 2 di atas :

## Penyelesaian dengan implementasi Matlab:

>> x=[1 2 3 4 5 6]

x=

1 2 3 4 5 6

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

y=

-3 0 15 48 105 192

>> D=selisihN(x,y)

D=

-3 0 15 48 105 192
3 15 33 57 87 0
6 9 12 15 0 0
1 1 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

TUGAS:
Buatlah tabel selisih terbagi untuk fungsi : f ( x) cos( x) dengan menggunakan 5 titik
x1 0, x2 1, x3 2, x4 3, x4 4, x5 5 . Tentukan Polinomial Newton Pk (x) , untuk k=
1,2,3,4.

107
108