Modul Praktikum Metode Numerik. docx

Modul Praktikum
Metode Numerik

1

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

2

Chapter 4. Penyelesaian Sistem Persamaan
Linear .........................
56
Metode Iterasi
Jacobi ...................................................................... 58
Metode Gauss
Seidel .......................................................................
Chapter 5. Pendekatan
Fungsi .................................................................
Metode Devide
Difference ............................................................

3

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,

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

5

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

huruf kecil dan huruf kapital

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

6

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

7

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

9

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

3

4

5

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

3

4

5

(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

2

3

4

5

3

5

7

9

2

4

6

8

6

7

8

9

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

2

3

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

1

0

>> a + b % penjumlahan vector baris a dan vector baris b
ans =
3

3

3

>> a – b % pengurangan vector baris a dengan vector
b
ans =
-1

1

baris

3

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

1

8

1

8

27

1

8

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

1

4

9

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.

KD 1+ KD 2+ K 3+ D 4
4
, Jika Nilai akhir >80 memperoleh A, jika
70≤Nilai Akhir 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

22

numerik (Volkof,1990:8, dalam buku Komputasi Numerik dengan Matlab,
2005 oleh Sahid :3) adalah :
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̄ + ȳ+e ȳ=( x+ y )+(e x̄ +e ȳ )
Jadi

galat

penjumlahan

sama

dengan

jumlah

galat

suku-suku

yang

dijumlahkan, atau dapat ditulis :

e x̄+ ȳ =e x̄ +e ȳ
Galat relatif penjumlahan adalah :

r x̄+ ȳ=

e x̄ + ȳ
x̄+ ȳ

=

e x̄ +e ȳ
x̄ + ȳ

Untuk pengurangan

x− y= x̄ +e x̄− ȳ+e ȳ=( x− y )+(e x̄ −e ȳ )
Jadi, analog dengan penjumlahan, galat pengurangan sama dengan selisih
galat, atau dapat dituliskan :

e x̄− ȳ =e x̄ −e ȳ
Galat relatif pengurangan adalah :

r x̄− ȳ =

e x̄ − ȳ
x̄− ȳ

=

e x̄−e ȳ
x̄− ȳ

Dari persamaan terakhir dapat dipahami bahwa, apabila

x̄≈ ȳ

maka galat

relatif pengurangan kedua hampiran akan semakin besar.

Misalkan

x 1 ,x 2 ,....,x n

digunakan sebagai hampiran untuk

X 1 , X 2 ,...., X n

dengan maksimum galat yang mungkin untuk masing-masing hampiran
adalah E. Dengan kata lain :

23

x i−E≤X i ≤x i +E ,

untuk

i=1,2,....,n

Dengan menjumlahkan nilai-nilai tersebut diperoleh :
n

n

n

∑ x i−nE≤∑ X i ≤∑ xi + nE
i =1

i=1

n

i=1

n

|∑ X i −∑ x i|≤nE

Atau

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

24

c. Jadi, perhitungan menggunakan dua angka desimal menghasilkan
jumlah 671.48.
Oleh karena setiap akar dihitung sampai dua angka desimal, maka galat

0.5×10−2 .

maksium masing-masig suku adalah
galat hampiran jumlah tersebut adalah

Oleh karena itu, maksimum

100×0 . 5×10−2=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 :
1.

3

f (x )=2 x

3

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

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) iterasi maksimum, akhiri program.
7. Jika f(a).f(m) 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:

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) 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) >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=
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 ' ( x i )=

f ( x i )−0
xi −x i+1

f ' ( x i )=

atau

f ( xi )
xi −x i+1

Sehingga

x i+1 =x i−

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:
Carilah akar dari fungsi

3

f (x )=x −3 x −20

maka

'

2

f (x )=3 x −3

Dengan demikian rumus untuk menentukan akarnya adalah :
3

( x −3 x−20)
x i+1 =x i−
( x 2 −3)

Perkiraan Awal

x 0=5

Langkah 1:

f (5 )=5 3−3 (5)−20=90
f ' (5 )=3 (5)2 −3=72
90
x 1=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
x 2=3 . 75−
=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 ' ( x i )
f ( xi )−f ( x i−1 )
f ( x i )=
→ f ' ( x i )=
Δx i
x i−x i −1
'

Sehingga bila dimasukkan ke dalam persamaan Newton-Raphson :

x i+1 =x i−f ( x i )

x i −xi−1
f ( x i )−f ( x i−1 )

43

Contoh :
3

f (x )=x −3 x −20
x 1=6 →f ( 6 )=178
x 2=2→ f ( 2)=18
Untuk perkiraan awal
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)

1.

3
2
f (x )=x +x −3 x−3=0 Carilah akar x dengan tebakan awal x 0=1

dan

x 1=2

dengan program Melab dengan Metode :

a. Newton Raphson
b. Secant
Latihan di kelas :
1.

−x

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.

m=b−

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

m=b−

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. 000001
Langkah 2:
karena f(a).f(m)= (-1)( -1.1250000) > 0, maka a = m, sehingga:
a=0.5, b=2
3

2

f (0. 5 )=0 . 5 −0 .5 −1=−1 .1250000
3

2

f (2)=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
3

2

f (0. 909091 )=(0 . 909091) −(0. 909091 ) −1=−1 . 07513141
3

2

f (2)=2 −2 −1=3
48

m=2−

3(2−0 .909091 )
=1 .196903
3−(−1. 07513141)
3

2

f (1. 196903)=(1. 196903) −(1.196903) −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
3

2

f (1 . 196903)=(1. 196903) −(1. 196903) −1=−0 . 717921332
3

2

f (2)=2 −2 −1=3
m=2−

3 (2−1. 196903 )
=1. 351979027
3−(−0 .717921332 )
3

2

f (1 .351979)=(1. 351979) −(1.351979) −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
3

2

f (1 . 351979)=(1. 351979) −(1. 351979) −1=−0 . 35663608
3

2

f (2)=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 :
Langkah-langkah penyelesaian persamaan
regula falsi
6

3

2

f (x )=x −x −1 dengan metode

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

x

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

−x

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

yk

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)

56

y'=f (t , y )

Menghitung hampiran penyelesaian masalah nilai awal
dengan

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

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

Langkah-langkah :
1. hitung n=(b−t 0 )/h
2. for k = 1,2,3,….., n
Hitung

t k=t k −1 +h

Hitung

S 1 =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
Hitung

3. Selesai .
Pada metode ini
sebagai berikut:

y k+1 dihitung dengan menggunakan langkah – langkah

S 1 =f (t k , y k )

(1)

S 2 =f (t k + h , y k +hS 1 )

(2)

( S +S )
y k +1= y k +h 1 2
2

(3)

untuk k = 0, 1, 2, …., dengan (t 0 , y 0 ) diktehui.
Pada perhitungan-perhitungan di atas,

(t k , y k ) ,
S2

S2

S1

(t k +h , y k +hS1 )

gardien di titik

adalah gradient di titik
dan rata-rata

y k+1 .
digunakan untuk menghitung hampiran selanjutnya

S1

dan

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 ,y
Jika titik (t k , y k ) diketahui, maka titik solusi ( k +1 k +1 ) dapat diperoleh
[t k ,t k+1 ] ,
dengan mengintegralkan y' (t ) pada
t k +1

t k +1

∫ f (t , y (t ))dt=∫t
tk

k

y '(t )dt= y (t k +1 )− y (t k )

atau
tk +1

y (t k+1 )= y(t k )+∫t

y '(t )dt

k

dengan menggunakan aturan trapezium dengan lebar langkah

57

h=t k +1 −t k

untuk menghitung hampiran suku integral, diperoleh

hampiran :

h
[ f (t k , y k )+f (tk +1 , y k +1 )]
2
y k+1 .
suku kedua pada ruas kanan memuat nilai ruas kiri ,
y k+1
Kita dapat menggunakan Metode Euler untuk menaksir
y (t k +1 )≈ y (t k )+

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
3

h
y ( εk )
12
n

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



k =1

y n ( εk )

h 3 t n −t 0 n

y ( ε )h3 =O(h 2 )
12 12 h

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

O(h ) . 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
1 1
1
h=1, , , dan
2 4
8

langkah

Penyelesaian :
Rumus Iterasi Heun untuk hampiran solusi PD tersebut adalah :

y k +1= y k +

h t k − y k t k +1− y k −h(t k − y k )/2
3
+
, k=0,1,2, .. . .. .. .. , dengan t 0=0, y 0 =1
2
2
2
h

(

)

Penyelesaian eksak masalah nilai awal di atas adalah :
−t/2

y=e

+t−2

.

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

58

y k untuk 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
sedemi