Penjelasan Metode Numerik Lgkp

86
DIKTAT KULIAH (3 sks) MX 211: Metode Numerik (Revisi Terakhir: Juni 2009 ) Oleh: Didit Budi Nugroho, M.Si. Program Studi Matematika Fakultas Sains dan Matematika Universitas Kristen Satya Wacana

Transcript of Penjelasan Metode Numerik Lgkp

Page 1: Penjelasan Metode Numerik Lgkp

DIKTAT KULIAH (3 sks)MX 211: Metode Numerik

(Revisi Terakhir: Juni 2009 )

Oleh:

Didit Budi Nugroho, M.Si.

Program Studi MatematikaFakultas Sains dan MatematikaUniversitas Kristen Satya Wacana

Page 2: Penjelasan Metode Numerik Lgkp

KATA PENGANTAR

Naskah ini ditulis ketika penulis mengajar Metode Numerik (MX 211) di UniversitasKristen Satya Wacana pada Semester 2 tahun 2008-2009 dan juga Trimester 2 tahun2008-2009 di Soe, Nusa Tenggara Timur. Catatan ini membentuk naskah dasar untukkuliah "Metode Numerik".

Tujuan yang ingin dicapai dari mata kuliah Metode Numerik adalah memahami kon-sep dasar metode numeris, mengetahui kekurangan dan kelebihan dari setiap metode,dan juga mampu untuk mengaplikasikannya. Karena itu, naskah ini difokuskan padapemahaman konsep matematis dasar dan penyelesaian masalah menggunakan metodenumerik dengan bantuan program MatLab. Beberapa metode disajikan dengan algo-ritma dalam pseudocode sehingga pembaca atau pengguna bisa mengimplementasikandalam bahasanya sendiri. Di sini, analisis (seperti untuk galat) tidak diberikan secaramendalam.

Naskah ini memerlukan masukan dan saran dari pembaca demi perbaikan dan pengem-bangan secara terus menerus. Harapannya adalah bahwa naskah ini memberikan man-faat yang lebih dalam pengajaran Metode Numerik.

Salatiga, Juli 2009

Didit B. Nugroho

i

Page 3: Penjelasan Metode Numerik Lgkp

DAFTAR ISI

KATA PENGANTAR i

DAFTAR ISI ii

DAFTAR GAMBAR iv

DAFTAR TABEL v

1 Pendahuluan 1

2 Galat 32.1 Pengertian Galat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Penghitungan Galat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Pencarian Akar 63.1 Akar-akar Persamaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.2 Metode Bagi Dua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.3 Metode Posisi Palsu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.4 Metode Iterasi Titik Tetap . . . . . . . . . . . . . . . . . . . . . . . . . 113.5 Metode Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . 143.6 Metode Garis Potong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4 Metode Iterasi 204.1 Iterasi Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.2 Iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.3 Iterasi SOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5 Interpolasi Polinomial 285.1 Interpolasi Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.2 Interpolasi Kuadratik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.3 Interpolasi Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.4 Interpolasi Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6 Interpolasi Spline 366.1 Spline Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366.2 Spline Kuadratik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.3 Spline Kubik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

ii

Page 4: Penjelasan Metode Numerik Lgkp

DAFTAR ISI iii

7 Regresi Kuadrat Terkecil 507.1 Regresi Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507.2 Regresi Polinomial Derajat Dua . . . . . . . . . . . . . . . . . . . . . . . 527.3 Linearisasi Fungsi Tak Linear . . . . . . . . . . . . . . . . . . . . . . . . 55

8 Diferensiasi Numerik 578.1 Turunan Pertama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578.2 Ekstrapolasi Richardson . . . . . . . . . . . . . . . . . . . . . . . . . . . 608.3 Turunan Kedua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

9 Persamaan Diferensial Biasa 639.1 Metode Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.2 Metode Heun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669.3 Metode Titik Tengah . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689.4 Metode Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

10 Integrasi Numerik 7410.1 Aturan Trapesium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7410.2 Aturan-aturan Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

DAFTAR PUSTAKA 80

Page 5: Penjelasan Metode Numerik Lgkp

DAFTAR GAMBAR

3.1 Ilustrasi gra�s untuk akar hampiran dalam metode bagi dua. . . . . . . 73.2 Ilustrasi gra�s untuk akar hampiran dalam metode posisi palsu. . . . . . 103.3 Ilustrasi gra�s untuk akar hampiran dalam metode iterasi titik tetap

y = x, y = g (x). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.4 Ilustrasi gra�s untuk akar hampiran dalam metode Newton-Raphson. . 143.5 Ilustrasi gra�s untuk akar hampiran dalam metode Secant. . . . . . . . 17

5.1 Kurva polinomial Newton untuk Contoh 5.3. . . . . . . . . . . . . . . . 33

6.1 Spline kuadratik untuk Contoh 6.2. . . . . . . . . . . . . . . . . . . . . . 386.2 Spline kuadratik untuk Contoh 6.3. . . . . . . . . . . . . . . . . . . . . . 416.3 Pendekatan dengan polinomial spline kubik. . . . . . . . . . . . . . . . . 426.4 Spline kuadratik untuk Contoh 6.4. . . . . . . . . . . . . . . . . . . . . . 48

7.1 Kurva linear dengan metode kuadrat terkecil untuk titik-titik data dalamContoh 7.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7.2 Kurva polinomial derajat dua dengan metode kuadrat terkecil untuktitik-titik data dalam Contoh 7.2. . . . . . . . . . . . . . . . . . . . . . . 55

9.1 Ilustrasi dari penurunan metode Euler. . . . . . . . . . . . . . . . . . . . 649.2 Ilustrasi dari penurunan metode Heun. . . . . . . . . . . . . . . . . . . . 669.3 Ilustrasi penurunan metode titik tengah. . . . . . . . . . . . . . . . . . . 68

10.1 Ilustrasi dari aturan trapesium. . . . . . . . . . . . . . . . . . . . . . . . 75

iv

Page 6: Penjelasan Metode Numerik Lgkp

DAFTAR TABEL

5.1 Tabel beda terbagi hingga untuk orde 3. . . . . . . . . . . . . . . . . . . 30

7.1 Linearisasi dari fungsi tak linear dengan transformasi data. . . . . . . . 56

8.1 Tabel ekstrapolasi Richardson untuk beda maju sampai hampiran orde 4. 608.2 Tabel ekstrapolasi Richardson untuk beda pusat sampai hampiran orde 8. 61

9.1 Perbandingan hasil dari metode-metode penyelesaian untuk persamaandiferensial y0 (t) = y (t)� t2 + 1, 0 � t � 2, y (0) = 0:5. . . . . . . . . . . 73

v

Page 7: Penjelasan Metode Numerik Lgkp

Bab 1

Pendahuluan

Tujuan Pembelajaran:� Mengetahui apa yang dimaksud dengan metode numerik.� Mengetahui kenapa metode numerik perlu dipelajari.� Mengetahui langkah-langkah penyelesaian persoalan numerik.

Metode numerik merupakan teknik untuk menyelesaikan masalah matematika denganpengoperasian aritmatika (hitungan).

Beberapa alasan mengapa kita harus mempelajari metode numerik:

1. Metode numerik merupakan alat bantu pemecahan masalah matematika yangsangat ampuh. Metode numerik mampu menangani sistem persamaan besar,ketidaklinearan, dan geometri yang rumit yang dalam praktek rekayasa seringkalitidak mungkin dipecahkan secara analitik.

2. Di pasaran banyak tersedia program aplikasi numerik komersil. Penggunaan apli-kasi tersebut menjadi lebih berarti bila kita memiliki pengetahuan metode nu-merik agar kita dapat memahami cara paket tersebut menyelesaikan persoalan.

3. Kita dapat membuat sendiri program komputer tanpa harus membeli paket pro-gramnya. Seringkali beberapa persoalan matematika tidak selalu dapat disele-saikan oleh program aplikasi. Sebagai contoh, terdapat program aplikasi tertentuyang tidak dapat dipakai untuk menghitung integrasi lipat dua, atau lipat tiga.Mau tidak mau, kita harus menulis sendiri programnya. Untuk itu, kita harusmempelajari cara pemecahan integral lipat dua atau lebih dengan metode nu-merik.

4. Metode numerik menyediakan sarana untuk memperkuat kembali pemahamanmatematika, karena metode numerik ditemukan dengan cara menyederhanakanmatematika yang lebih tinggi menjadi operasi matematika yang mendasar.

Langkah-langkah penyelesaian persoalan numerik:

1. Identi�kasi masalah.

2. Memodelkan masalah secara matematis.

3. Identi�kasi metode numerik yang diperlukan untuk menyelesaikan masalah.

1

Page 8: Penjelasan Metode Numerik Lgkp

Bab 1. Pendahuluan 2

4. Implementasi metode dalam komputer.

5. Analisis hasil akhir: implementasi, metode, model dan masalah.

Jenis-jenis persoalan matematika yang akan diselesaikan secara numerik dalam naskahini:

1. Pencarian akar-akar persamaan tak linear.

2. Metode iteratif untuk penyelesaian sistem persamaan linear

3. Interpolasi linear, kuadrat, Newton, dan spline.

4. Regresi kuadrat terkecil.

5. Diferensiasi numerik.

6. Persamaan diferensial biasa.

7. Integrasi numerik.

Page 9: Penjelasan Metode Numerik Lgkp

Bab 2

Galat

Tujuan Pembelajaran:� Mengetahui de�nisi dan jenis-jenis galat.� Mengetahui bagaimana menghitung galat.

2.1 Pengertian Galat

Penyelesaian secara numerik dari suatu persamaan matematik hanya memberikan nilaiperkiraan (hampiran) yang mendekati nilai eksak (yang sebenarnya) dari penyelesaiananalitis. Berarti dalam penyelesaian numerik tersebut terdapat galat terhadap nilaieksak.

Ada tiga macam galat:

1. Galat bawaan, terjadi karena kekeliruan dalam menyalin data, salah membacaskala, atau karena kurangnya pengertian mengenai hukum-hukum �sik dari datayang diukur.

2. Galat pembulatan (round-o¤ error), terjadi karena tidak diperhitungkannya be-berapa angka terakhir dari suatu bilangan. Sebagai contoh, 3.1415926 dapatdibulatkan menjadi 3.14.

3. Galat pemotongan (truncation error), terjadi karena tidak dilakukannya hitungansesuai dengan prosedur matematik yang benar. Sebagai contoh, turunan pertamadari V (t) terhadap t dihitung dengan prosedur

dV

dt=�V

�t=V (ti+1)� V (ti)

ti+1 � ti:

Contoh lain yaitu pengambilan beberapa suku awal dari deret Taylor:

f (xi+1) = f (xi) + f0 (xi) (xi+1 � xi) +

f 00 (xi)

2!(xi+1 � xi)2

+f 000 (xi)

3!(xi+1 � xi)3 + :::+

f (n) (xi)

n!(xi+1 � xi)n +Rn

dengan Rn =f (n+1) (c)

(n+ 1)!(xi+1 � xi)n+1 dimana c 2 [xi; xi+1].

3

Page 10: Penjelasan Metode Numerik Lgkp

Bab 2. Galat 4

Dari deret Taylor di atas, dipunyai hampiran orde-0:

f (xi+1) � f (xi) ;

hampiran orde-1:

f (xi+1) � f (xi) + f 0 (xi) (xi+1 � xi) ;

hampiran orde-2:

f (xi+1) � f (xi) + f 0 (xi) (xi+1 � xi) +f 00 (xi)

2!(xi+1 � xi)2 :

Contoh 2.1 Diberikan fungsi

f (x) = �0:1x4 � 0:15x3 � 0:5x2 � 0:25x+ 1:2:

Turunan pertama dan kedua dari f (x) berturut-turut yaitu

f 0 (x) = �0:4x3 � 0:45x2 � x� 0:25;f 00 (x) = �1:2x2 � 0:9x� 1;

Dimulai dari x = 0, diperoleh hampiran orde-1 untuk f (1):

f (1) � f (0) + f 0 (0) (1� 0) = 1:2� 0:25 = 0:95;

dan hampiran orde-2 untuk f (1):

f (1) � f (0) + f 0 (0) (1� 0) + f00 (0)

2!(1� 0)2 = 1:2� 0:25� 0:5 = 0:9:

2.2 Penghitungan Galat

Untuk galat pembulatan dan pemotongan, hubungan antara hasil yang eksak denganhampirannya dapat dirumuskan oleh

nilai eksak = hampiran + galat.

Dengan menyusun kembali persamaan di atas, diperoleh

Es = galat = nilai eksak - hampiran

dimana subskrip s menunjukkan bahwa galat adalah galat sejati.

Kelemahan dari de�nisi di atas adalah bahwa tingkat besaran dari nilai yang diperiksasama sekali tidak diperhatikan. Sebagai contoh, galat satu sentimeter jauh lebih berartijika yang diukur adalah paku ketimbang jembatan. Salah satu cara untuk memperhi-tungkan besarnya besaran yang sedang dievaluasi adalah dengan menormalkan galatterhadap nilai eksak, yaitu

galat relatif =nilai eksak - hampiran

nilai eksak.

Page 11: Penjelasan Metode Numerik Lgkp

Bab 2. Galat 5

Galat relatif dapat juga dikalikan dengan 100% agar dapat dinyatakan sebagai

�s = persen galat relatif =nilai eksak - hampiran

nilai eksak� 100%.

Dicatat bahwa untuk metode numerik, nilai eksak hanya akan diketahui jika fungsi yangditangani dapat diselesaikan secara eksak. Jika tidak demikian, maka alternatifnyaadalah menormalkan galat dengan menggunakan hampiran terbaik yang tersedia darinilai eksak, yaitu terhadap hampiran itu sendiri, seperti yang dirumuskan oleh

�h =galat hampiranhampiran

� 100%

=hampiran sekarang � hampiran sebelumnya

hampiran sekarang� 100%

dengan subskrip h menunjukkan bahwa galat dinormalkan terhadap nilai hampiran.

Page 12: Penjelasan Metode Numerik Lgkp

Bab 3

Pencarian Akar

Tujuan Pembelajaran:� Mengetahui metode-metode pencarian akar dari persamaan tak linear.� Mengetahui keunggulan dan kelemahan dari setiap metode.� Mengaplikasikan metode-metode pencarian akar untuk persamaan yang sama.

3.1 Akar-akar Persamaan

Akar atau pembuat nol dari suatu fungsi adalah nilai-nilai dari variabel bebas yangmembuat fungsi bernilai nol. Sebagai contoh, penyelesaian analitik untuk fungsi kua-dratik f (x) = ax2 + bx+ c = 0 diberikan oleh

x =�b�

pb2 � 4ac2a

:

Contoh lain, kita tidak mungkin mendapatkan suatu penyelesaian analitik untuk fungsif (x) = ex � x = 0.

Secara umum, terdapat dua kelompok metode untuk pencarian akar dari persamaantak linear:

1. Metode Pengurung.

Sesuai dengan namanya, tebakan akar dalam metode ini selalu berada "dalamkurung" atau berada pada kedua sisi dari nilai akar. Karena itu, di sini diper-lukan dua tebakan awal untuk akar. Metode ini mempunyai suatu keunggulanyaitu konvergen (makin lama makin mendekati nilai sebenarnya), dan mempunyaikelemahan yaitu konvergensinya relatif lambat. Contoh dari metode pengurungyaitu metode bagi dua (bisection) dan metode posisi palsu (false position).

2. Metode Terbuka.

Dalam metode ini, pencarian dimulai dari suatu nilai tunggal variabel bebas,atau dua nilai yang tidak perlu mengurung akar. Metode ini mempunyai suatukelemahan yaitu tidak selalu konvergen, tetapi mempunyai keunggulam yaitu jikakonvergen maka konvergensinya lebih cepat daripada metode pengurung. Con-toh dari metode terbuka yaitu metode iterasi titik tetap (�xed-point iteration),metode Newton-Raphson, dan metode garis potong (secant).

6

Page 13: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 7

Penggunaan metode pengurung didasarkan pada teorema berikut ini.

Teorema 3.1 Diberikan f : [a; b] ! R adalah kontinu, dimana a; b 2 R dan a < b.Jika f (a) � f (b) < 0, maka terdapat c 2 (a; b) sedemikian sehingga f (c) = 0.

3.2 Metode Bagi Dua

Metode ini mengasumsikan bahwa fungsi f(x) adalah kontinu pada interval [a1; b1],serta f (a1) dan f (b1) mempunyai tanda berlawanan, artinya f (a1)�f (b1) < 0. Karenaitu terdapat minimal satu akar pada interval [a1; b1].

Idenya adalah interval selalu dibagi dua sama lebar. Jika fungsi berubah tanda sepan-jang suatu subinterval, maka letak akarnya kemudian ditentukan ada di tengah-tengahsubinterval. Proses ini diulangi untuk memperoleh hampiran yang diperhalus. (LihatGambar 3.1.)

y

xa1 b1x1x2

y = f(x)

x3

Gambar 3.1: Ilustrasi gra�s untuk akar hampiran dalam metode bagi dua.

Dicatat bahwa terdapat beberapa kriteria penghentian pencarian akar jika diberikansuatu toleransi keakuratan �, yaitu

�s < �, �h < �, atau nmaks = N 2 N:

Proses untuk metode bagi dua diberikan seperti dalam Algoritma 1.

Contoh 3.2 Selesaikan persamaan x2 � 3 = 0 dalam interval [1; 2] menggunakanmetode bagi dua sampai lima iterasi.

Penyelesaian. Proses metode bagi dua adalah seperti berikut ini.Iterasi 1:

a1 = 1 =) f (a1) = �2;b1 = 2;

x1 =a1 + b12

=1 + 2

2= 1:5 =) f (x1) = �0:75:

Page 14: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 8

Algorithm 1 Algoritma Metode Bagi DuaMasukan:

fungsi kontinu: f (x)interval yang mengurung akar: [a1; b1]maksimum iterasi: N 2 Ntoleransi keakuratan: "; misalnya " = 10�5

Penghitungan Inti: Ketika n � N dan �h � �,Hitung: xn =

an + bn2

.

Tentukan subinterval mana yang akan mengurung akar:a) Jika f (an) � f (xn) < 0, maka an+1 = an, bn+1 = xn.b) Jika f (an) � f (xn) > 0, maka an+1 = xn, bn+1 = bn.c) Jika f (an) � f (xn) = 0, maka diperoleh akar sama dengan xn.

Berhenti.

Hitung: �h =

����xn � xn�1xn

����� 100%, n � 1Hasil akhir: akar xn sedemikian sehingga f (xn) � 0:

Iterasi 2: Diamati bahwa f (a1) � f (x1) > 0, maka

a2 = x1 = 1:5 =) f (a2) = �0:75;b2 = b1 = 2;

x2 =a2 + b22

=1:5 + 2

2= 1:75 =) f (x2) = 0:0625;

�2 =

����x2 � x1x2

���� � 100% = ����1:75� 1:51:75

���� � 100% = 14:29%:Iterasi 3: Diamati bahwa f (a2) � f (x2) < 0, maka

a3 = a2 = 1:5 =) f (a3) = �0:75;b3 = x2 = 1:75;

x3 =a3 + b32

=1:5 + 1:75

2= 1:625 =) f (x3) = �0:3594;

�3 =

����x3 � x2x3

���� � 100% = ����1:625� 1:751:625

���� � 100% = 7:69%:Iterasi 4: Diamati bahwa f (a3) � f (x3) > 0, maka

a4 = x3 = 1:625 =) f (a4) = �0:3594;b4 = b3 = 1:75;

x4 =a4 + b42

=1:625 + 1:75

2= 1:6875 =) f (x4) = �0:1523;

�4 =

����x4 � x2x4

���� � 100% = ����1:6875� 1:6251:6875

���� � 100% = 3:7%:

Page 15: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 9

Iterasi 5: Diamati bahwa f (a4) � f (x4) > 0, maka

a5 = x4 = 1:6875 =) f (a5) = �0:1523;b5 = b4 = 1:75;

x5 =a5 + b52

=1:6875 + 1:75

2= 1:7187 =) f (x5) = �0:0459;

�5 =

����x5 � x4x5

���� � 100% = ����1:7187� 1:68751:7187

���� � 100% = 1:82%:Jadi pada iterasi ke-5 diperoleh akar hampiran x = 1:7187. H

Dalam MatLab, Algoritma 1 untuk metode bagi dua diimplementasikan dalam fungsibagidua() berikut ini.

function [x,galat] = BagiDua(f,X,N,tol)% BagiDua Menyelesaikan persamaan f(x) = 0 menggunakan metode bagi dua.%% Input: f = fungsi dari x, gunakan fungsi inline(�ekspresi�,�x�)% X = [a b] = vektor titik-titik ujung interval dengan a < b% N = maksimum iterasi% tol = toleransi keakuratan%% Output: x = akar hampiran yang memenuhi kriteria% galat = persen galat relatif% ---PENGHITUNGAN INTI:if nargin < 4, tol = 1e-3; end %dinamakan BagiDua(f,X,N)if nargin < 3, N = 100; end %dinamakan BagiDua(f,X)a = X(1); % batas kiri intervalb = X(2); % batas kanan intervalx = (a+b)/2; % hampiran awaln = 1; galat = 1; % supaya iterasi pertama dapat dikerjakanwhile ( n <= N & galat > tol ) % kriteria penghentian

if f(a)*f(x)<0b = x;

elseif f(a)*f(x)>0a = x;

elsebreak

endxnew = (a+b)/2; % titik tengah intervalgalat = abs((xnew - x)/xnew)*100; % galat relatifx = xnew;n = n+1;

end

Dimisalkan xs adalah akar sejati dari f (x) = 0. Dicatat bahwa kita dapat menurunkanbatas galat untuk metode bagi dua seperti berikut ini.

jxs � xn+1j � jbn+1 � an+1j =1

2jbn � anj =

�1

2

�2jbn�1 � an�1j = :::

=

�1

2

�njb1 � a1j

Page 16: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 10

Ini berarti bahwa telah ditunjukkan jxs � xn+1j � k jxs � xnj, dengan k = 12 . Lebih

lanjut, ini dinamakan konvergensi linear dan k dinamakan konstanta galat asimtotik.

Dalam contoh di atas, banyaknya langkah yang diperlukan untuk menjamin bahwagalat kurang dari 10�3 dihitung seperti berikut:�

1

2

�nj2� 1j � 10�3 =)

�1

2

�n� 10�3 =) 2n � 103

=) n ln (2) � 3 ln (10) =) n � 10:

3.3 Metode Posisi Palsu

Metode posisi palsu adalah metode pencarian akar persamaan dengan memanfaatkankemiringan dan selisih tinggi dari dua titik batas interval yang mengurung akar. Metodeini merupakan salah satu alternatif untuk mempercepat konvergensi.

y

xa1 b1

x1x2x3

y = f(x)

Gambar 3.2: Ilustrasi gra�s untuk akar hampiran dalam metode posisi palsu.

Idenya adalah menghitung akar (yang merupakan titik ujung interval baru) yang meru-pakan absis untuk titik potong antara sumbu x dengan garis lurus yang melalui keduatitik yang absisnya adalah titik-titik ujung interval lama. (Lihat Gambar 3.2) Rumusuntuk mencari akar adalah sebagai berikut. Diasumsikan bahwa fungsi f(x) adalah kon-tinu pada interval [an; bn], dan f (an) � f (bn) < 0. Garis yang melalui titik (an; f (an))dan (bn; f (bn)) mempunyai persamaan

y � f (an) =f (bn)� f (an)

bn � an(x� an) :

Garis memotong sumbu x jika y = 0, sehingga diperoleh titik absis sebagai hampiranakar yaitu

xn = an �bn � an

f (bn)� f (an)f (an) : (3.1)

Proses untuk metode posisi palsu adalah seperti metode bagi dua tetapi penghitunganxn menggunakan rumus (3.1).

Page 17: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 11

Contoh 3.3 Selesaikan persamaan x2 � 3 = 0 dalam interval [1; 2] menggunakanmetode posisi palsu sampai lima iterasi.

Penyelesaian. Berikut ini adalah tabel penyelesaian sampai lima iterasi.

n an bn xn f (xn) �n =���xn�xn�1xn

���%1 1 2 1:6667 �0:22222222 �2 1:66667 2 1:7273 �0:01652892 3:50877192

3 1:72727 2 1:7317 �0:00118976 0:25608194

4 1:73170 2 1:7320 �0:00008543 0:01840773

5 1:73202 2 1:7321 �0:00000613 0:00132172

6 1:73204 2 1:7321 �0:00000044 0:00009489

Jadi pada iterasi ke-6 diperoleh akar hampiran x = 1:7320 dengan f (x) = �0:000006.H

3.4 Metode Iterasi Titik Tetap

Metode iterasi titik tetap adalah metode yang memisahkan x sedemikian sehinggaf (x) = 0 ekivalen dengan x = g(x). Selanjutnya p adalah suatu akar dari f (x) jikahanya jika p adalah suatu titik tetap dari g (x). Kita mencoba untuk menyelesaikanx = g (x) dengan menghitung

xn = g (xn�1) ; n = 1; 2; :::

dengan menggunakan tebakan awal x0. Ilustrasi gra�s untuk penyelesaian xn diberikanoleh Gambar 3.3

y

xx0 x1x2

y = g(x)

x3x4

y = x

Gambar 3.3: Ilustrasi gra�s untuk akar hampiran dalam metode iterasi titik tetap y = x,y = g (x).

Proses untuk metode bagi dua diberikan seperti dalam Algoritma 2.

Contoh 3.4 Gunakan metode iterasi titik tetap sampai lima iterasi untuk menyele-saikan x2 � 3 = 0 dengan tebakan awal x0 = 1:5.

Page 18: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 12

Algorithm 2 Algoritma Iterasi Titik TetapMasukan:

fungsi kontinu: f (x), g (x)tebakan awal: x0maksimum iterasi: N 2 Ntoleransi keakuratan: "; misalnya " = 10�5

Penghitungan Inti: Ketika n � N dan �h � �,Hitung: xn = g (xn�1).

Hitung: �h =

����xn � xn�1xn

����� 100%Hasil akhir: akar xn sedemikian sehingga f (xn) � 0:

Penyelesaian. Persamaan dapat diubah ke beberapa bentuk:

Kasus 1: x =3

x= g1(x) =) xn =

3

xn�1

Kasus 2: x = x��x2 � 3

�= g2 (x) =) xn = xn�1 �

�x2n�1 � 3

�Kasus 3: x = x� x

2 � 32

= g3 (x) =) xn = xn�1 �x2n�1 � 3

2

Penyelesaian untuk Kasus 3:Iterasi 1:

x1 = x0 �x20 � 32

= 1:5� 1:52 � 32

= 1:875;

�1 =

����1:875� 1:51:875

���� � 100% = 20%:Iterasi 2:

x2 = x1 �x21 � 32

= 1:875� 1:8752 � 32

= 1:6172;

�2 =

����1:6172� 1:8751:6172

���� � 100% = 15:94%:Iterasi 3:

x3 = x2 �x22 � 32

= 1:6172� 1:61722 � 32

= 1:8095;

�3 =

����1:8095� 1:61721:8095

���� � 100% = 10:63%:Iterasi 4:

x4 = x3 �x23 � 32

= 1:8095� 1:80952 � 32

= 1:6723;

�4 =

����1:6723� 1:80951:6723

���� � 100% = 8:20%:

Page 19: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 13

Iterasi 5:

x5 = x4 �x24 � 32

= 1:6723� 1:67232 � 32

= 1:7740;

�4 =

����1:7740� 1:67231:7740

���� � 100% = 5:73%:Berikut ini adalah penyelesaian sampai lima iterasi untuk ketiga kasus.

n xnKasus 1 Kasus 2 Kasus 3

0 1:5 1:5000 1:5

1 2 2:2500 1:875

2 1:5 0:1875 1:6172

3 2 3:1523 1:8095

4 1:5 �3:7849 1:6723

5 2 �15:1106 1:7740

Terlihat bahwa Kasus 1 dan Kasus 2 adalah divergen, tetapi Kasus 3 adalah konvergen.H

Berikut ini diberikan kriteria kekonvergenan dari metode iterasi titik tetap.

Teorema 3.5 Diambil k = maxa�x�b

jg0 (x)j. Metode iterasi titik tetap adalah konvergenjika hanya jika k < 1.

Bukti. Dimisalkan xs adalah akar sejati dari f (x) = 0, maka

jxs � xnj = jg (xs)� g (xn�1)j =��g0 (�) (xs � xn�1)�� � k jxs � xn�1j

berdasarkan Teorema Nilai Rata-rata. Karena itu

jxs � xnj � k jxs � xn�1j � k2 jxs � xn�2j � � � � � kn jxs � x0j :

Kita mencatat:

1. Telah ditunjukkan bahwa jxs � xnj � k jxs � xn�1j, yang berarti metode iterasititik tetap adalah konvergen secara linear.

2. Karena k � jg0 (xs)j, kita akan memilih fungsi iterasi g (xs) sedemikian sehinggajg0 (xs)j adalah kecil.Dari contoh sebelumnya dipunyai xs =

p3 = 1:73205, maka

Kasus 1: g0 (x) = � 3

x2=)

��g0 (xs)�� = 1 : divergen;Kasus 2: g0 (x) = 1� 2x =)

��g0 (xs)�� = 2:4641 : divergen;Kasus 3: g0 (x) = 1� x =)

��g0 (xs)�� = 0:73025 : konvergen:

Page 20: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 14

Dalam MatLab, Algoritma 2 untuk metode iterasi titik tetap diimplementasikan dalamfungsi TitikTetap() berikut ini.

function [x,galat] = TitikTetap(g,x0,N,tol)% TitikTetap Menyelesaikan persamaan x = g(x), ekivalen dengan f(x)=0,% menggunakan metode iterasi titik tetap.%% Input: g = fungsi dari x, gunakan fungsi inline(�ekspresi�,�x�)% x0 = tebakan awal% N = maksimum iterasi% tol = toleransi keakuratan%% Output: x = akar hampiran yang memenuhi kriteria% galat = persen galat relatif% ---PENGHITUNGAN INTI:if nargin < 4, tol = 1e-3; endif nargin < 3, N = 100; endn = 1; galat = 1;while ( n <= N & galat > tol )

x = g(x0);galat = abs((x - x0)/x)*100;x0 = x;n = n+1;

end

3.5 Metode Newton-Raphson

Metode Newton-Raphson adalah metode pendekatan yang menggunakan satu titik awaldan mendekatinya dengan memperhatikan kemiringan kurva pada titik tersebut. Pen-jelasan gra�s mengenai metode ini adalah seperti dalam Gambar 3.4.

y

xx0 x1 x2

y = f(x)

Gambar 3.4: Ilustrasi gra�s untuk akar hampiran dalam metode Newton-Raphson.

Diasumsikan bahwa fungsi f(x) adalah kontinu. Idenya adalah menghitung akar yangmerupakan titik potong antara sumbu x dengan garis singgung pada kurva di titik(xn�1; f (xn�1)). Kemiringan kurva di titik tersebut adalah f 0 (xn�1), sehingga garissinggung mempunyai persamaan

y � f (xn�1) = f 0 (xn�1) (x� xn�1) :

Page 21: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 15

Karena itu diperoleh akar hampiran dengan mengambil y = 0, yaitu

xn = xn�1 �f (xn�1)

f 0 (xn�1): (3.2)

Algorithm 3 Algoritma Metode Newton-RaphsonMasukan:

fungsi kontinu: f (x), f 0 (x)tebakan awal: x0maksimum iterasi: N 2 Ntoleransi keakuratan: "; misalnya " = 10�5

Penghitungan Inti: Ketika n � N dan �h � �,Hitung: xn = xn�1 �

f (xn�1)

f 0 (xn�1).

Hitung: �h =

����xn � xn�1xn

����� 100%Hasil akhir: akar xn sedemikian sehingga f (xn) � 0:

Contoh 3.6 Gunakan metode Newton-Raphson untuk menyelesaikan x2 � 3 = 0 de-ngan tebakan awal x0 = 1:5.

Penyelesaian. Karena f (x) = x2�3, f 0 (x) = 2x dan dibentuk rumus pencarian akar:

xn = xn�1 �x2n�1 � 32xn�1

; n = 1; 2; :::

Iterasi 1:

x1 = x0 �x20 � 32x0

= 1:5� 1:52 � 3

2 � 1:5 = 1:75;

�1 =

����1:75� 1:51:75

���� � 100% = 14:2857142%:Iterasi 2:

x2 = x1 �x21 � 32x1

= 1:75� 1:752 � 3

2 � 1:75 = 1:73214;

�2 =

����1:73214� 1:751:73214

���� � 100% = 1:0309278%:Iterasi 3:

x3 = x2 �x22 � 32x2

= 1:73214� 1:732142 � 3

2 � 1:73214 = 1:73205;

�3 =

����1:73205� 1:732141:73205

���� � 100% = 0:0053143%:

Page 22: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 16

Iterasi 4:

x4 = x3 �x23 � 32x3

= 1:73205� 1:732052 � 3

2 � 1:73205 = 1:73205;

�4 =

����1:73205� 1:732051:73205

���� � 100% = 0%:Jadi pada iterasi ke-4 diperoleh akar hampiran x = 1:73205. H

Metode Newton-Raphson merupakan suatu contoh dari metode iterasi titik tetap, xn =g (xn�1), dimana fungsi iterasinya adalah

g (x) = x� f (x)

f 0 (x):

Dari sini diperoleh bahwa

g0 (xs) = 1�[f 0 (xs)]

2 � f (xs) � f 00 (xs)[f 0 (xs)]

2 = 0

dengan mengingat bahwa f (xs) = 0 dan f 0 (xs) 6= 0. Ini mengakibatkan bahwa metodeNewton adalah konvergen lebih cepat daripada secara linear; pada kenyataannya dipu-nyai

jxs � xnj � C jxs � xn�1j2

yaitu konvergen kuadratik.

Dalam MatLab, Algoritma 3 untuk metode Newton-Raphson diimplementasikan dalamfungsi NewRap() berikut ini.

function [x,galat] = NewRap(f,f1,x0,N,tol)% NewtonRaphson Menyelesaikan persamaan f(x) = 0 menggunakan metode Newton-Raphson.%% Input: f = fungsi dari x, gunakan fungsi inline(�ekspresi�,�x�)% f1 = turunan pertama dari f(x), cari dengan fungsi \QTR{bf}{diff}% x0 = tebakan awal% N = maksimum iterasi% tol = toleransi keakuratan%% Output: x = akar hampiran yang memenuhi kriteria% galat = persen galat relatif% ---PENGHITUNGAN INTI:if nargin < 4, tol = 1e-3; endif nargin < 3, N = 100; endn = 1; galat = 1;while ( n <= N & galat > tol )

x = x0-f(x0)/f1(x0); % persamaan (3.2)galat = abs((x - x0)/x)*100;x0 = x;n = n+1;

end

Page 23: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 17

3.6 Metode Garis Potong

Masalah yang ada dalam metode Newton adalah terkadang sulit untuk mendapatkanturunan pertama f 0 (x). Alternatifnya adalah turunan f 0 (xn�1), kemiringan garis di(xn�1; f (xn�1)), dihampiri oleh kemiringan garis potong yang melalui (xn�2; f (xn�2))dan (xn�1; f (xn�1)):

f 0 (xn�1) �f (xn�2)� f (xn�1)

xn�2 � xn�1:

Jadi iterasi xn yaitu

xn = xn�1 �f (xn�1) (xn�2 � xn�1)f (xn�2)� f (xn�1)

: (3.3)

Penjelasan gra�s mengenai metode ini adalah seperti dalam Gambar 3.5.

y

xx0

x­1x1x2x3

y = f(x)

x4

Gambar 3.5: Ilustrasi gra�s untuk akar hampiran dalam metode Secant.

Dicatat:

1. Persamaan di atas memerlukan dua tebakan awal x tetapi tidak memperhatikanperubahan tanda dari f (x).

2. Kemudian dapat ditunjukkan bahwa

jxs � xnj � C jxs � xn�1j1:6 ;

sehingga metode garis potong lebih cepat daripada metode iterasi titik tetap,tetapi lebih lambat daripada metode Newton-Raphson.

Proses untuk metode garis potong diberikan seperti dalam Algoritma 4.

Contoh 3.7 Gunakan metode garis potong untuk menyelesaikan x2 � 3 = 0 dengantebakan awal x�1 = 1 dan x0 = 2.

Page 24: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 18

Algorithm 4 Algoritma Garis PotongMasukan:

fungsi kontinu: f (x)dua tebakan awal: x�1, x0maksimum iterasi: N 2 Ntoleransi keakuratan: "; misalnya " = 10�5

Penghitungan Inti: Ketika n � N dan �h � �,Hitung: xn = xn�1 �

f (xn�1) (xn�2 � xn�1)f (xn�2)� f (xn�1)

.

Hitung: �h =

����xn � xn�1xn

����� 100%Hasil akhir: akar xn sedemikian sehingga f (xn) � 0:

Penyelesaian. Dituliskan rumus untuk metode garis potong :

xn = xn�1 ��x2n�1 � 3

�(xn�2 � xn�1)�

x2n�2 � 3���x2n�1 � 3

�= xn�1 �

�x2n�1 � 3

�(xn�2 � xn�1)

x2n�2 � x2n�1; n = 1; 2; :::

Iterasi 1:

x1 = x0 ��x20 � 3

�(x�1 � x0)

x2�1 � x20= 2�

�22 � 3

�(1� 2)

12 � 22 = 1:66667;

�1 =

����1:66667� 21:66667

���� � 100% = 20%:Iterasi 2:

x2 = x1 ��x21 � 3

�(x0 � x1)

x20 � x21= 1:66667�

�1:666672 � 3

�(2� 1:66667)

22 � 1:666672= 1:72727;

�2 =

����1:72727� 1:666671:72727

���� � 100% = 3:50877%:Iterasi 3:

x3 = x2 ��x22 � 3

�(x1 � x2)

x21 � x22= 1:72727�

�1:727272 � 3

�(1:66667� 1:72727)

1:666672 � 1:727272= 1:73214;

�3 =

����1:73214� 1:727271:73214

���� � 100% = 0:28116%:Iterasi 4:

x4 = x3 ��x23 � 3

�(x2 � x3)

x22 � x23= 1:73214�

�1:732142 � 3

�(1:72727� 1:73214)

1:727272 � 1:732142= 1:732051;

�4 =

����1:732051� 1:732141:732051

���� � 100% = 0:00532%:

Page 25: Penjelasan Metode Numerik Lgkp

Bab 3. Pencarian Akar 19

Jadi pada iterasi ke-4 diperoleh akar hampiran x = 1:732051. H

Dalam MatLab, Algoritma 4 untuk metode garis potong diimplementasikan dalamfungsi Secant() berikut ini.

function [x,galat] = Secant(f,x_1,x0,N,tol)% Secant Menyelesaikan persamaan f(x) = 0 menggunakan metode% garis potong (Secant).%% Input: f = fungsi dari x, gunakan fungsi inline(�ekspresi�,�x�)% x_1 = tebakan awal pertama% x0 = tebakan awal kedua% N = maksimum iterasi% tol = toleransi keakuratan%% Output: x = akar hampiran yang memenuhi kriteria% galat = persen galat relatif% ---PENGHITUNGAN INTI:if nargin < 4, tol = 1e-3; endif nargin < 3, N = 100; endn = 1; galat = 1;while ( n <= N & galat > tol )

x = x0-f(x0)*(x_1-x0)/(f(x_1)-f(x0)); % persamaan (3.3)galat = abs((x - x0)/x)*100;x_1 = x0;x0 = x;n = n+1;

end

Page 26: Penjelasan Metode Numerik Lgkp

Bab 4

Metode Iterasi

Tujuan Pembelajaran:� Mengetahui metode-metode penyelesaian sistem persamaan linear secara iterasi.

� Mengaplikasikan iterasi Jacobi, Gauss-Seidel, dan SOR.

Untuk menyelesaikan suatu sistem persamaan linier Ax = b, dipunyai pilihan antarametode langsung atau metode iterasi. Contoh dari metode langsung yaitu metodeinvers, eliminasi Gauss, dan dekomposisi LU . Metode iterasi mempunyai kelebihandalam hal kemurahan memori dan waktu CPU. Metode ini dimulai dari penentuannilai awal vektor x0 sebagai suatu penyelesaian awal untuk x. Terdapat beberapametode iterasi seperti iterasi Jacobi, iterasi Gauss-Seidel, dan iterasi SOR.

Suatu klas besar dari metode iterasi dapat dide�nisikan sebagai berikut. Sistem Ax = bdituliskan menjadi Qx = (Q�A)x + b untuk suatu matriks Q yang berorde samadengan A. Selanjutnya dide�nisikan suatu skema iterasi ke-k:

Qx(k) = (Q�A)x(k�1) + b; k = 1; 2; :::; (4.1)

untuk x(0) adalah suatu tebakan awal. Diasumsikan bahwa Q adalah non-singular,sehingga skema iterasi menghasilkan suatu barisan tunggal vektor-vektor

�x(k)

.

4.1 Iterasi Jacobi

Pertama kali dicatat bahwa matriks A dapat dituliskan sebagai A = L+D+U , denganL adalah matriks segitiga bawah, D adalah matriks diagonal, dan U adalah matrikssegitiga atas. Iterasi Jacobi memilih Q = D. Karena itu

x(k) = D�1 (D �A)x(k�1) +D�1b

= D�1nb� (A�D)x(k�1)

o; k = 1; 2; :::;

dengan asumsi bahwa masukan-masukan diagonal dari A tidak sama dengan nol (jikatidak maka dilakukan penukaran baris-baris dan kolom-kolom untuk mendapatkan su-atu sistem yang ekivalen). Untuk langkah ke-k, komponen-komponen x(k)i dinyatakanoleh

x(k)i =

1

aii

0@bi � nXj=1; j 6=i

aijx(k�1)j

1A ; i = 1; 2; :::; n (4.2)

20

Page 27: Penjelasan Metode Numerik Lgkp

Bab 4. Metode Iterasi 21

Contoh 4.1 Diketahui sistem persamaan linear:

10x1 � x2 + 2x3 = 6;

�x1 + 11x2 � x3 + 3x4 = 25;

2x1 � x2 + 10x3 � x4 = �11;3x2 � x3 + 8x4 = 15:

Sistem persamaan tersebut diubah susunannya menjadi

x1 =1

10(6 + x2 � 2x3) ;

x2 =1

11(25 + x1 + x3 � 3x4) ;

x3 =1

10(�11� 2x1 + x2 + x4) ;

x4 =1

8(15� 3x2 + x3) :

Kita bisa menyatakan bahwa nilai x1, x2, x3, dan x4 yang berada di ruas kiri sebagaix(baru). Sementara itu, nilai x1, x2, x3, dan x4 yang berada di ruas kanan sebagaix(lama). Secara umum, sistem persamaan tersebut dapat dituliskan menjadi seperti

x(k)1 =

1

10

�x(k�1)2 � 2x(k�1)3 + 6

�;

x(k)2 =

1

11

�x(k�1)1 + x

(k�1)3 � 3x(k�1)4 + 25

�;

x(k)3 =

1

10

��2x(k�1)1 + x

(k�1)2 + x

(k�1)4 � 11

�;

x(k)4 =

1

8

��3x(k�1)2 + x

(k�1)3 + 15

�:

Dimisalkan bahwa nilai-nilai awal x(0) = 0. Pada langkah k = 1, diperoleh nilai-nilaiuntuk x(1):

x(1)1 =

6

10; x(1)2 =

25

11; x(1)3 = �11

10; x(1)4 =

15

8:

Setelah nilai-nilai x(1) diperoleh, penghitungan diulangi kembali dengan nilai k = 2untuk memperoleh nilai-nilai x(2):

x(2)1 = 1:0473; x

(2)2 = 1:7159; x

(2)3 = �0:8052; x(2)4 = 0:8852:

Proses diulang lagi untuk nilai-nilai k berikutnya. Berikut ini diberikan suatu hasilsampai langkah ke-4.

k 0 1 2 3 4

x(k)1 0 0:6000 1:0473 0:9326 1:0152

x(k)2 0 2:2727 1:7159 2:0530 1:9537

x(k)3 0 �1:1000 �0:8052 �1:0493 �0:9681x(k)4 0 1:8852 0:8852 1:1309 0:9738

Page 28: Penjelasan Metode Numerik Lgkp

Bab 4. Metode Iterasi 22

Untuk kriteria penghentian iterasi, kita bisa menggunakan suatu norma dari vektor:

l1 = kxk1 = maks1�i�n

jxij :

Sebagai contoh, vektor x =(3;�2; 8; 5) memiliki norma

l1 = kxk1 = maks1�i�n

fj3j ; j�2j ; j8j ; j5jg = 8:

Sekarang kita ambil kriteria penghentian dalam metode iterasi:

l1 = x(k) � x(k�1)

1= maks1�i�n

���x(k)i � x(k�1)i

��� :Berdasarkan kriteria tersebut, metode iterasi Jacobi dapat dinyatakan seperti dalamAlgoritma 5, sedangkan implementasi dalam MatLab diberikan oleh fungsi jacobi().

Algorithm 5 Algoritma Iterasi JacobiMasukan:

matriks koe�sien sistem: A 2 Rn�nvektor konstanta sistem: b 2 Rnvektor penyelesaian awal: x(0) 2 Rnmaksimum iterasi: N 2 Ntoleransi keakuratan: "; misalnya " = 10�6

Penghitungan Inti:Dibentuk matriks: P = D�1 (D �A) dan Q = D�1b.Ketika k � N dan norm � ",

Hitung: xn = Q� Px(n�1)norm = maks1�i�n jxij

Hasil akhir: vektor x sedemikian sehingga Ax � b:

function X = jacobi(A,b,X0,N,tol)% jacobi Menyelesaikan SPL AX = b menggunakan iterasi Jacobi.%% Input: A = matriks koefisien dari sistem% b = vektor konstan dari sistem% X0 = penyelesaian awal% N = maksimum iterasi% tol = toleransi keakuratan%% Output: X = penyelesaian sistem

if nargin < 5, tol = 1e-6; endif nargin < 4, N = 1000; endif nargin < 3, X0 = zeros(size(b)); endn = size(A,1);X = X0;P = zeros(n,n);for i = 1:n

for j = 1:nif j ~= i

Page 29: Penjelasan Metode Numerik Lgkp

Bab 4. Metode Iterasi 23

P(i,j) = A(i,j)/A(i,i); % elemen dari matriks inv(D)*(D-A)end

endQ(i) = b(i)/A(i,i); % elemen dari matriks inv(D)*b

endwhile k <= N & norma > tol

X = Q� - P*X; % persamaan (4.2)norma = max(abs(X-X0));X0 = X;

end

4.2 Iterasi Gauss-Seidel

Dari persamaan (4.2) dicatat bahwa komponen-komponen dari x(k) diketahui, tetapitidak digunakan, ketika penghitungan komponen-komponen sisanya. Metode Gauss-Seidel merupakan suatu modi�kasi dari metode Jacobi, yaitu semua komponen-kom-ponen terakhir yang dihitung dipergunakan. Prosedur dalam metode Gauss-Seideldiperoleh dengan memilih Q = D + L. Karena itu, dari (4.1) didapatkan bentukmatriks

(D + L)x(k) = (D + L�A)x(k�1) + bDx(k) = �Lx(k) � Ux(k�1) + bx(k) = D�1

�b� Lx(k) � Ux(k�1)

�; k = 1; 2; ::::

Jadi, skemanya adalah

x(k)i =

1

aii

0@bi � i�1Xj=1

aijx(k)j �

nXj=i+1

aijx(k�1)j

1A ; i = 1; 2; :::; n (4.3)

dengan asumsi bahwa untuk langkah k, komponen-komponen x(k)j , 1 � j � i�1, sudahdiketahui.

Contoh 4.2 Diperhatikan kembali sistem persamaan linear pada contoh sebelumnya.Sistem persamaan diubah susunannya menjadi

x(k)1 = � 1

10

�x(k�1)2 � 2x(k�1)3 + 6

�;

x(k)2 =

1

11

�x(k)1 + x

(k�1)3 � 3x(k�1)4 + 25

�;

x(k)3 =

1

10

��2x(k)1 + x

(k)2 + x

(k�1)4 � 11

�;

x(k)4 =

1

8

��3x(k)2 + x

(k)3 + 15

�:

Pada langkah k = 1, diperoleh nilai-nilai untuk x(1):

x(1)1 = 0:6000; x

(1)2 = 2:3272; x

(1)3 = �0:9873; x(1)4 = 0:8789:

Setelah nilai-nilai x(1) diperoleh, penghitungan diulangi kembali dengan nilai k = 2

Page 30: Penjelasan Metode Numerik Lgkp

Bab 4. Metode Iterasi 24

untuk memperoleh nilai-nilai x(2):

x(2)1 = 1:0300; x

(2)2 = 2:0369; x

(2)3 = �1:0145; x(2)4 = 0:9843:

Proses diulang lagi untuk nilai-nilai k berikutnya. Berikut ini diberikan suatu hasilsampai langkah ke-4.

k 0 1 2 3 4

x(k)1 0 0:6000 1:0300 1:0066 1:0009

x(k)2 0 2:3272 2:0369 2:0036 2:0003

x(k)3 0 �0; 9873 �1:0145 �1:0025 �1:0003x(k)4 0 0:8789 0:9843 0:9984 0:9998

Untuk keperluan komputasi, iterasi (4.3) dinyatakan secara khusus untuk i = 1 dani = n berturut-turut:

x(k)1 =

0@b1 � nXj=2

a1jx(k�1)j

1A ; x(k)n =1

ann

0@bn � n�1Xj=1

anjx(k)j

1A : (4.4)

Sekarang kita bisa menyatakan skema untuk iterasi Gauss-Seidel seperti dalam Algo-ritma 6 dan implementasi dalam MatLab diberikan oleh fungsi gauseid().

Algorithm 6 Algoritma Iterasi Gauss-SeidelMasukan:

matriks koe�sien sistem: A 2 Rn�nvektor konstanta sistem: b 2 Rnvektor penyelesaian awal: x(0) 2 Rnmaksimum iterasi: N 2 Ntoleransi keakuratan: "; misalnya " = 10�6

Penghitungan Inti: Ketika 1 � k � N dan norm � ",Hitung: x(k)1 menggunakan (4.4)

untuk i = 2 : 1 : n� 1Hitung: x(k)i menggunakan (4.3)

x(k)n menggunakan (4.4)

Hitung: norm = maks1�i�n jxijHasil akhir: vektor x sedemikian sehingga Ax � b:

function X = gauseid(A,b,X0,N,tol)% gauseid Menyelesaikan SPL AX = b menggunakan iterasi Gauss-Seidel.%% Input: A = matriks koefisien dari sistem% b = vektor kolom untuk nilai konstanta dari sistem% X0 = penyelesaian awal% N = maksimum iterasi% tol = toleransi keakuratan%% Output: X = penyelesaian sistem

Page 31: Penjelasan Metode Numerik Lgkp

Bab 4. Metode Iterasi 25

if nargin < 5, tol = 1e-6; endif nargin < 4, N = 1000; endif nargin < 3, X0 = zeros(size(b)); endn = size(A,1);X = X0;while k <= N & norma > tol

X(1,:) = (b(1)-A(1,2:n)*X(2:n,:))/A(1,1); % persamaan (4.4)for i = 2:n-1

tmp = b(i,:)-A(i,1:i-1)*X(1:i-1,:)-A(i,i+1:n)*X(i+1:n,:);X(i,:) = tmp/A(i,i); % persamaan (4.3)

endX(n,:) = (b(n,:)-A(n,1:n-1)*X(1:n-1,:))/A(n,n); % persamaan (4.4)norma = max(abs(X-X0));X0 = X;

end

4.3 Iterasi SOR

Berikutnya diperhatikan suatu metode untuk mempercepat konvergensi dari metodeiterasi. Dipilih

Q =1

!D + L

dengan ! adalah suatu faktor skala, maka iterasi (4.1) menjadi�1

!D + L

�x(k) =

�1

!D + L�A

�x(k�1) + b�

1

!D + L

�x(k) =

��1

!� 1�D � U

�x(k�1) + b

1

!Dx(k) = �Lx(k) +

��1

!� 1�D � U

�x(k�1) + b

x(k) = �!D�1Lx(k) +�1� ! � !D�1U

�x(k�1) + !D�1b

x(k) = x(k�1) � !D�1�Lx(k) +Dx(k�1) + Ux(k�1) � b

�untuk k = 1; 2; :::. Secara jelas, ini diproses dengan cara:

x(k)i = x

(k�1)i � !

aii

0@Xi<j

ajix(k)i + aiix

(k�1)i +

Xi>j

ajix(k�1)i � bi

1A= (1� !)x(k�1)i +

!

aii

0@bi � i�1Xj=1

aijx(k)j �

nXj=i+1

aijx(k�1)j

1A (4.5)

untuk i = 1; 2; :::; n, dan diasumsikan bahwa untuk langkah ke-k, komponen-komponenx(k)j , 1 � j � i� 1, sudah diketahui.

Untuk ! = 1, iterasi (4.5) memberikan metode Gauss-Seidel. Untuk 0 < ! < 1, prose-durnya dinamakan metode under-relaxation dan dapat digunakan untuk memperolehkonvergensi dari beberapa sistem yang tidak konvergen oleh metode Gauss-Seidel.

Untuk ! > 1, prosedurnya dinamakan metode overrelaxation, yang digunakan un-tuk mempercepat konvergensi bagi sistem yang konvergen oleh teknik Gauss-Seidel.

Page 32: Penjelasan Metode Numerik Lgkp

Bab 4. Metode Iterasi 26

Metode-metode tersebut disingkat SOR untuk Successive Overrelaxation dan digu-nakan untuk penyelesaian sistem linier yang muncul dalam penyelesaian numeris daripersamaan diferensial parsial tertentu.

Contoh 4.3 Diketahui sistem persamaan linear:

4x1 + 3x2 = 24;

3x1 + 4x2 � x3 = 30;

�x2 + 4x3 = �24:

Persamaan untuk metode relaksasi dengan ! = 1:25:

x(k)1 = (1� 1:25)x(k�1)1 +

1:25

4

�24� 3x(k�1)2

�= �0:25x(k�1)1 � 0:9375x(k�1)2 + 7:5;

x(k)2 = (1� 1:25)x(k�1)2 +

1:25

4

�30� 3x(k)1 + x

(k�1)3

�= �0:9375x(k)1 � 0:25x(k�1)2 + 0:3125x

(k�1)3 + 9:375;

x(k)3 = (1� 1:25)x(k�1)3 +

1:25

4

��24 + x(k)2

�= 0:3125x

(k)2 � 0:25x(k�1)3 � 7:5:

Tabel berikut ini menampilkan hasil penghitungan sampai langkah ke-4 menggunakanpenyelesaian awal x(0)= 0.

k 0 1 2 3 4

x(k)1 1 7:5000 3:4277 3:3987 3:0442

x(k)2 1 2:3438 3:4607 3:8465 3:9606

x(k)3 1 �6:7676 �4:7266 �5:1163 �4:9832

Skema iterasi (4.5) diimplementasikan dengan fungsi MatLab SOR() berikut ini.

function X = SOR(A,b,X0,N,tol,w)% SOR Menyelesaikan SPL Ax = b menggunakan iterasi SOR%% Input: A = matriks koefisien dari sistem% b = vektor kolom untuk nilai konstanta dari sistem% X0 = penyelesaian awal% w = faktor skala% tol = toleransi keakuratan%% Output: X = penyelesaian sistemif nargin < 6, w = 1.25; endif nargin < 5, tol = 1e-6; endif nargin < 4, N = 1000; endif nargin < 3, X0 = zeros(size(b)); endn = size(A,1);X = X0;for k = 1:N

X(1) = (1-w)*X(1)+w*(b(1)-A(1,2:n)*X(2:n,:))/A(1,1);

Page 33: Penjelasan Metode Numerik Lgkp

Bab 4. Metode Iterasi 27

for i = 2:n-1tmp = b(i,:)-A(i,1:i-1)*X(1:i-1,:)-A(i,i+1:n)*X(i+1:n,:);X(i) = (1-w)*X(i)+w*tmp/A(i,i);

endX(n) = (1-w)*X(n)+w*(b(n,:)-A(n,1:n-1)*X(1:n-1,:))/A(n,n);galat = max(abs(X-X0));if galat < tol, break; endX0 = X;

end

Page 34: Penjelasan Metode Numerik Lgkp

Bab 5

Interpolasi Polinomial

Tujuan Pembelajaran:� Mengetahui metode penentuan suatu polinomial yang melewati semua titik data yang diberikan.� Mengaplikasikan interpolasi polinomial untuk menaksir nilai antara titik-titik data.

Interpolasi menghubungkan titik-titik data diskret dalam suatu cara yang masuk akalsehingga dapat diperoleh taksiran layak dari titik-titik data di antara titik-titik yangdiketahui. Dicatat bahwa kurva interpolasi melalui semua titik data.

5.1 Interpolasi Linear

Interpolasi linear merupakan interpolasi paling sederhana dengan mengasumsikan bahwahubungan titik-titik antara dua titik data adalah linear. Karena itu digunakan pen-dekatan fungsi linear antara dua titik data, misalnya (x0; y0) dan (x1; y1). Persamaanyang menghubungkan kedua titik tersebut yaitu

y = y0 +y1 � y0x1 � x0

(x� x0) :

Contoh 5.1 Hitung taksiran y untuk x = 2 dengan menggunakan interpolasi linearuntuk data: (1; 0) dan (4; 1:386294).

Penyelesaian. Taksiran y untuk x = 2 yaitu

y = y0 +y1 � y0x1 � x0

(2� x0) = 0 +1:386294� 0

4� 1 (2� 1)

= 0:462098:

5.2 Interpolasi Kuadratik

Interpolasi kuadratik menentukan titik-titik antara tiga titik data dengan menggunakanpendekatan fungsi kuadrat. Dibentuk persamaan kuadrat yang melalui tiga titik data,misalnya (x0; y0), (x1; y1), dan (x2; y2), yaitu

y = a0 + a1 (x� x0) + a2 (x� x0) (x� x1) :

28

Page 35: Penjelasan Metode Numerik Lgkp

Bab 5. Interpolasi Polinomial 29

Kita akan menentukan b0, b1, b2 sedemikian sehingga persamaan di atas melalui ketigatitik data yang diberikan.

x = x0; y = y0 =) a0 = y0;

x = x1; y = y1 =) y0 + b1 (x1 � x0) = y1 =) a1 =y1 � y0x1 � x0

;

x = x2; y = y2 =) y0 +y1 � y0x1 � x0

(x2 � x0) + a2 (x2 � x0) (x2 � x1) = y2

=) a2 =y2 � y0

(x2 � x0) (x2 � x1)� y1 � y0(x1 � x0) (x2 � x1)

=) a2 =y2 � y1

(x2 � x0) (x2 � x1)+

y1 � y0(x2 � x0) (x2 � x1)

� y1 � y0(x1 � x0) (x2 � x1)

=) a2 =y2 � y1

(x2 � x0) (x2 � x1)� y1 � y0(x2 � x0) (x1 � x0)

=) a2 =

y2�y1x2�x1 �

y1�y0x1�x0

x2 � x0:

Contoh 5.2 Hitung taksiran y untuk x = 2 dengan menggunakan interpolasi kuadratikuntuk data: (1; 0), (4; 1:386294), (6; 1:791759).

Penyelesaian. Koe�sien-koe�sien dari persamaan interpolasi kuadratik:

a0 = 1;

a1 =1:386294� 0

4� 1 = 0:4620981;

a2 =1:791759�1:386294

6�4 � 1:386294�04�1

6� 1 = �0:0518731;

sehingga interpolasi kuadratik untuk data yang diberikan yaitu

y = 1 + 0:4620981 (x� 1)� 0:05187312 (x� 1) (x� 4) :

Karena itu, nilai y untuk x = 2 yaitu

y = 1 + 0:4620981 (2� 1)� 0:05187312 (2� 1) (2� 4) = 0:5658444:

5.3 Interpolasi Newton

Secara umum, n+1 titik data, misalnya (x0; y0), (x1; y1), :::, (xn; yn) dapat dicocokkandengan suatu polinomial berderajat n yang mempunyai bentuk

y = fn (x) = a0 + a1 (x� x0) + a2 (x� x0) (x� x1) + � � �+an (x� x0) (x� x1) � � � � � (x� xn�1) : (5.1)

Page 36: Penjelasan Metode Numerik Lgkp

Bab 5. Interpolasi Polinomial 30

Persamaan-persamaan yang digunakan untuk menghitung koe�sien-koe�sien yaitu

a0 = y0;

a1 =y1 � y0x1 � x0

= y [x1; x0] ;

a2 =

y2�y1x2�x1 �

y1�y0x1�x0

x2 � x0=y [x2; x1]� y [x1; x0]

x2 � x0= y [x2; x1; x0] ;

...

a3 =y [xn; xn�1; :::; x2; x1]� y [xn�1; xn�2; :::; x1; x0]

xn � x0= y [xn; xn�1; :::; x1; x0] :

Nilai fungsi berkurung siku dinamakan beda terbagi hingga dan dide�nisikan sebagai

y [xi; xi�1] =yi � yi�1xi � xi�1

(beda terbagi hingga pertama),

y [xi�2; xi�1; xi] =y [xi�2; xi�1]� y [xi�1; xi]

xi�2 � xi(beda terbagi hingga kedua),

y [xn; xn�1; :::; x1; x0] =y [xn; :::; x1]� y [xn�1; :::; x0]

xn � x0(beda terbagi hingga ke-n).(5.2)

Persamaan-persamaan di atas adalah rekursif, yaitu beda orde lebih tinggi dihitungdengan mengambil beda dari orde lebih rendah.

Sebagai contoh, penghitungan koe�sien-koe�sien dalam polinomial berderajat tiga da-pat diperoleh secara berturut-turut mulai dari baris kedua dalam Tabel 5.1.

Tabel 5.1: Tabel beda terbagi hingga untuk orde 3.

n xn yn pertama kedua ketiga0 x0 b0 = y0 b1 =

y1�y0x1�x0 b2 =

b11�b1x2�x0 b3 =

b21�b2x3�x0

1 x1 y1 b11 =y2�y1x2�x1 b21 =

b12�b11x3�x1 �

2 x2 y2 b12 =y3�y2x3�x2 � �

3 x3 y3 � � �

Contoh 5.3 Hitung taksiran y untuk x = 2 dengan menggunakan interpolasi polino-mial Newton untuk empat titik data:

(1; 0) ; (4; 1:386294) ; (5; 1:609438) ; dan (6; 1:791759) :

Penyelesaian. Disusun tabel beda terbagi hingga:

n xn yn pertama kedua ketiga0 1 a0 = 0 a1 = 0:4621 a2 = �0:0598 a3 = 0:0079

1 4 1:386294 a11 = 0:2231 a21 = �0:0203 �2 5 1:609438 a12 = 0:1824 � �3 6 1:791759 � � �

Page 37: Penjelasan Metode Numerik Lgkp

Bab 5. Interpolasi Polinomial 31

Diperoleh polinomial Newton orde ketiga:

y = 0:4621 (x� 1)� 0:0598 (x� 1) (x� 4) + 0:0079 (x� 1) (x� 4) (x� 5) : (5.3)

Karena itu, nilai y untuk x = 2 yaitu

y = 0 + 0:4621 (2� 1)� 0:0598 (2� 1) (2� 4) + 0:0079 (2� 1) (2� 4) (2� 5)= 0:6289:

Dicatat bahwa e�siensi komputasi yang lebih baik untuk menuliskan polinomial Newton(5.1) adalah dalam bentuk perkalian bersarang seperti

y = ((� � � (an (x� xn�1) + an�1) (x� xn�2) + � � � ) + a1) (x� x0) + a0; (5.4)

untuk mendapatkan koe�sien-koe�sien dari suku-suku xn, xn�1, ..., x2, x, dan x0.Dalam MatLab ini dapat dilakukan dengan

X; % X = [x_0 x_1 x_2 ... x_n]a; % a = [a_0 a_1 a_2 ... a_n]K = koef(n+1); % koefisien dari x^nfor i = n:-1:1 % koefisien dari x^n, ..., x^0

K = [K a(i)] - [0 K*X(i)]; % a(i)*(x - x_(i - 1))+a_(i - 1)end

Fungsi MatLab poliNewton() menyusun Tabel Beda Terbagi Hingga seperti Tabel 5.1,mengkonstruksi polinomial Newton dan selanjutnya menghitung nilai y untuk suatunilai x yang diberikan. Fungsi ini juga menampilkan plot titik-titik data dan kurvapolinomial Newton. Di sini dicatat bahwa koe�sien-koe�sien dari polinomial dinyatakansebagai vektor yang disusun dalam derajat yang menurun.

function [T,K,yi]=poliNewton(X,Y,xi)% poliNewton Menyusun Tabel Beda Terbagi Hingga untuk interpolasi polinomial Newton% dan menghitung nilai fungsi interpolasi untuk suatu nilai x = xi.%% Input: X = data x% Y = data y yang berkorespondensi dengan x% xi = suatu nilai di antara titik-titik data x%% Output: T = Tabel Beda Terbagi Hingga mulai pertama% K = vektor yang memuat koefisien dari x^n, x^(n-1), ..., x, x^0% yi = f(xi)%% ---PENGHITUNGAN INTI:N = length(X)-1; % banyaknya pasangan data% konstruksi tabel beda terbagihasil = zeros(N+1,N+3);hasil(:,1) = [0:N]�; % iterasihasil(:,2) = X�; % nilai xhasil(:,3) = Y�; % nilai y

Page 38: Penjelasan Metode Numerik Lgkp

Bab 5. Interpolasi Polinomial 32

for j=4:N+3for i=1:N+3-(j-1) % beda terbagi orde 1,2, ..., n-1

hasil(i,j) = (hasil(i+1,j-1)-hasil(i,j-1))/(hasil(j+i-3,2)-hasil(i,2));end

endTabel = hasil;

% ---OUTPUT:% tabel beda terbagi hingga:T = Tabel(:,4:end);a = hasil(1,3:end); % a = [a_0 a_1 a_2 ... a_N]

% koef x^n, ..., x^0:K = a(N+1); % koefisien dari x^Nfor i = N:-1:1

K = [K a(i)] - [0 K*X(i)]; %a(i)*(x - x_(i - 1))+a_(i - 1)end

% nilai y untuk suatu nilai xi:yi = sum(K�.*xi.^([N:-1:0]�));

% plot titik-titik data dan kurva polinomialxsim = X(1):0.1:X(end);for k=1:length(xsim)

ysim(k) = sum(K�.*xsim(k).^([N:-1:0]�));endplot(X,Y,�bo�,xsim,ysim,�r-�)

Sebagai contoh, dengan menjalankan fungsi MatLab poliNewton untuk data dalam 5.3akan diperoleh fungsi polinomial Newton orde tiga yaitu

y = 0:0079x3 � 0:1386x2 + 0:9894x� 0:8587

yang adalah sama dengan hasil (5.3). Kurva dari fungsi tersebut diberikan dalamGambar 5.1.

5.4 Interpolasi Lagrange

Interpolasi polinomial Lagrange hanyalah perumusan ulang dari polinomial Newtonyang menghindari penghitungan beda terbagi hingga. Berikut ini adalah penurunanbentuk Lagrange secara langsung dari interpolasi polinomial Newton.

Untuk kasus orde pertama dipunyai

f1 (x) = y0 + (x� x0) y [x1; x0] : (5.5)

Beda terbagi hingga pertama

y [x1; x0] =y1 � y0x1 � x0

dapat dirumuskan ulang sebagai

y [x1; x0] =y1

x1 � x0+

y0x0 � x1

: (5.6)

Page 39: Penjelasan Metode Numerik Lgkp

Bab 5. Interpolasi Polinomial 33

Gambar 5.1: Kurva polinomial Newton untuk Contoh 5.3.

Karena itu, dengan mensubstitusikan (5.6) ke (5.5) akan dihasilkan

f1 (x) = y0 +x� x0x1 � x0

y1 +x� x0x0 � x1

y0:

Selanjutnya dengan pengelompokkan suku-suku yang serupa dan penyederhanaan akandiperoleh bentuk Lagrange:

f1 (x) =x� x1x0 � x1

y0 +x� x0x1 � x0

y1:

Dengan cara yang serupa, yaitu beda-beda terbagi hingga dirumuskan ulang, akandihasilkan polinomial Lagrange derajat n untuk n + 1 titik data, misalnya (x0; y0),(x1; y1), :::, (xn; yn):

y = fn (x) =nXi=0

Li (x) yi (5.7)

dengan

Li (x) =

nYj=0;j 6=i

x� xjxi � xj

: (5.8)

Dalam hal ini, Li (x) dinamakan sebagai polinomial koe�sien Lagrange dan mempunyaisifat:

Li (xk) =

�0 ; i 6= k1 ; i = k

:

Sebagai contoh, dari rumus di atas, versi orde kedua untuk polinomial Lagrange mem-

Page 40: Penjelasan Metode Numerik Lgkp

Bab 5. Interpolasi Polinomial 34

punyai bentuk yaitu

f2 (x) =(x� x1) (x� x2)(x0 � x1) (x0 � x2)

y0 +(x� x0) (x� x2)(x1 � x0) (x1 � x2)

y1

+(x� x0) (x� x1)(x2 � x0) (x2 � x1)

y2:

Contoh 5.4 Diperhatikan kembali data dalam Contoh 5.3. Polinomial-polinomial koe-�sien Lagrange:

L0 (x) =(x� x1) (x� x2) (x� x3)(x0 � x1) (x0 � x2) (x0 � x3)

=(x� 4) (x� 5) (x� 6)(1� 4) (1� 5) (1� 6)

= � 1

60(x� 4) (x� 5) (x� 6) = � 1

60() ;

L1 (x) =(x� x0) (x� x2) (x� x3)(x1 � x0) (x1 � x2) (x1 � x3)

=(x� 1) (x� 5) (x� 6)(4� 1) (4� 5) (4� 6)

=1

6(x� 1) (x� 5) (x� 6) ;

L2 (x) =(x� x0) (x� x1) (x� x3)(x2 � x0) (x2 � x1) (x2 � x3)

=(x� 1) (x� 4) (x� 6)(5� 1) (5� 4) (5� 6)

= �14(x� 1) (x� 4) (x� 6) ;

L3 (x) =(x� x0) (x� x1) (x� x2)(x3 � x0) (x3 � x1) (x3 � x2)

=(x� 1) (x� 4) (x� 5)(6� 1) (6� 4) (6� 5)

=1

10(x� 1) (x� 4) (x� 5) :

Jadi, polinomial Lagrange yang sesuai dengan 4 titik data yang diberikan:

y = � 1

60(x� 4) (x� 5) (x� 6) � 0 + 1

6(x� 1) (x� 5) (x� 6) � 1:386294

�14(x� 1) (x� 4) (x� 6) � 1:609438 + 1

10(x� 1) (x� 4) (x� 5) � 1:791759

= 0:231049 (x� 1) (x� 5) (x� 6)� 0:4023595 (x� 1) (x� 4) (x� 6)+0:1791759 (x� 1) (x� 4) (x� 5) :

Koe�sien-koe�sien dari suku-suku xn, xn�1, ..., x, x0 dalam polinomial Lagrange orden dapat dibentuk melalui perkalian dua polinomial:

(bnxn + � � �+ b1x+ b0) (cnxn + � � �+ c1x+ c0) = d2nx2n + � � � d1x+ d0

dengan

dk =

min(k;n)Xm=maks(0;k�n)

bk�mcm, untuk k = 2n; 2n� 1; :::; 1; 0:

Operasi ini dapat dilakukan dengan menggunakan perintah conv() yang sudah diberikanoleh MatLab seperti diilustrasikan berikut ini.

Page 41: Penjelasan Metode Numerik Lgkp

Bab 5. Interpolasi Polinomial 35

>> b = [1 -1]; c = [1 1 1];>> d = conv(a,b)

d = 1 0 0 -1 % artinya bahwa (x-1)*(x^2+x+1)=x^3+0*x^2+0*x-1

Fungsi MatLab poliLagrange() mencari koe�sien-koe�sien dari polinomial Lagrange(5.7) bersama-sama dengan setiap polinomial koe�sien Lagrange (5.8). Fungsi ini jugamenampilkan plot titik-titik data dan kurva polinomial Lagrange. Di sini dicatat bahwakoe�sien-koe�sien dari polinomial dinyatakan sebagai vektor yang disusun dalam dera-jat yang menurun.

function [K,L,yi]=poliLagrange(X,Y,xi)% poliLagrange Mencari koefisien dari polinomial Lagrange dan menghitung% nilai fungsi interpolasi untuk suatu nilai x = xi.%% Input: X = data x% Y = data y yang berkorespondensi dengan x% xi = suatu nilai di antara titik-titik data x%% Output: K = vektor yang memuat koefisien dari x^n, x^(n-1), ..., x, x^0% L = vektor yang memuat polinomial koefisien Lagrange% yi = f(xi)%% ---PENGHITUNGAN INTI:N = length(X)-1; % banyaknya pasangan dataL = zeros(N+1,N+1);

% membentuk polinomial koefisien Lagrangefor i=1:N+1

P = 1;for j=1:N+1

if i~=jP = conv(P,[1 -X(j)])/(X(i)-X(j));

endendL(i,:) = P;

end

% menentukan koefisien dari polinomial LagrangeK = Y*L;

% menghitung nilai y = f(xi):yi = sum(K�.*xi.^([N:-1:0]�));

% plot titik-titik data dan kurva polinomialxsim = X(1):0.1:X(end);for k=1:length(xsim)

ysim(k) = sum(K�.*xsim(k).^([N:-1:0]�));endplot(X,Y,�bo�,xsim,ysim,�r-�)

Page 42: Penjelasan Metode Numerik Lgkp

Bab 6

Interpolasi Spline

Tujuan Pembelajaran:� Mengetahui interpolasi spline untuk mendapatkan kurva mulus di antara dua titik data.� Mengaplikasikan interpolasi spline untuk sekumpulan data.

Pada bab sebelumnya telah dibahas mengenai interpolasi titik-titik data (x0; y0) sam-pai (xn; yn) menggunakan suatu polinomial berderajat n. Namun terdapat kasus di-mana fungsi-fungsi ini memberikan hasil yang salah. Pendekatan alternatifnya adalahmenerapkan polinomial-polinomial berderajat lebih rendah pada sebagian titik data.Polinomial penghubung tersebut dinamakan fungsi-fungsi spline.

De�nisi 6.1 Suatu fungsi f (x) dinamakan suatu spline berderajat k jika

1. Domain dari S adalah suatu interval [a; b].

2. S; S0; :::; S(k�1) kontinu pada [a; b].

3. Terdapat titik-titik xi sedemikian sehingga a = x0 < x1 < ::: < xn = b dan jugaS adalah suatu polinomial berderajat k pada setiap [xi; xi+1].

Dengan kata lain, spline adalah potongan-potongan fungsi polinomial dengan turunan-turunan memenuhi kendala-kendala kekontinuan tertentu. Ketika k = 1, spline dina-makan spline linear. Ketika k = 2, spline dinamakan spline kuadratik. Ketika k = 3,spline dinamakan spline kubik.

6.1 Spline Linear

Kita mencoba mencari suatu fungsi spline linear S (x) sedemikian sehingga S (xi) = yiuntuk 0 � i � n. Diambil

S (x) =

8>>><>>>:S0 (x) ; x0 � x � x1S1 (x) ; x1 � x � x2...

...Sn�1 (x) ; xn�1 � x � xn

dimana setiap Si (x) adalah linear.

36

Page 43: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 37

Diperhatikan fungsi linear Si (x). Garis ini melalui titik (xi; yi) dan (xi+1; yi+1), se-hingga kemiringan dari Si (x) yaitu

mi =yi+1 � yixi+1 � xi

:

Kita dapat juga mengatakan bahwa garis tersebut melalui titik (xi; yi) dan (x; S (x))untuk sembarang x 2 [xi; xi+1], sehingga

mi =Si (x)� yix� xi

;

yang memberikan

Si (x) = yi +mi (x� xi)

= yi +yi+1 � yixi+1 � xi

(x� xi) (6.1)

Contoh 6.2 Konstruksi spline kuadratik untuk data berikut:

x 0:0 0:1 0:4 0:5 0:75 1:0

y 1:3 4:5 2:0 2:1 5:0 3:0

Penyelesaian.

[0:0; 0:1] : S0 (x) = 1:3 +4:5� 1:30:1� 0 (x� 0) = 1:3 + 32x;

[0:1; 0:4] : S1 (x) = 4:5 +2:0� 4:50:4� 0:1 (x� 0:1) =

16

3� 253x;

[0:4; 0:5] : S2 (x) = 2:0 +2:1� 2:00:5� 0:4 (x� 0:4) = 1:6 + x;

[0:5; 0:75] : S3 (x) = 2:1 +5:0� 2:10:75� 0:5 (x� 0:5) = �3:7 + 11:6x;

[0:75; 1:0] : S4 (x) = 5:0 +3:0� 5:01:0� 0:75 (x� 0:75) = 11� 8x:

Jadi spline adalah potongan linear, yaitu linear di antara setiap titik data.

Persamaan (6.1) dapat dituliskan kembali sebagai

Si (x) = aix+ bi; i = 0; 1; :::; n� 1 (6.2)

dengan

ai =yi+1 � yixi+1 � xi

dan bi = yi � aixi:

Fungsi MatLab spline1() mengkonstruksi spline linear dengan menghitung koe�sien-koe�sien spline linear (6.2) untuk koordinat-koordinat (x; y) dari titik-titik data. Fungsiini juga menghitung taksiran nilai y untuk suatu nilai x di antara titik-titik data. Selainitu, kurva spline linear akan ditampilkan oleh fungsi tersebut.

Page 44: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 38

function [S,yi] = spline1(X,Y,xi)% spline2 Mengkonstruksi fungsi spline linear untuk titk-titik data (x,y).%% Input: X = [x0,x1,...,xn]% Y = [y0,y1,...,yn]% xi = suatu nilai di antara x0 dan xn%% Output: S = [ai,bi], koefisien-koefisien spline linear y = ai*x + bi% yi = taksiran nilai pada x = xi%% ---PENGHITUNGAN INTI:if nargin < 3, xi = X(1); endn = length(X);S = [];

% koefisien-koefisien spline linearfor i=1:n-1

a = (Y(i+1)-Y(i))/(X(i+1)-X(i));b = Y(i)-a*X(i);if xi>X(i) & xi<X(i+1)

yi = a*xi+bi; % nilai y untuk suatu x = xiendS = [S; a b]; % derajat turun

end

% plot kurva-kurva splineplot(X,Y,�bo�)for i=1:n-1

hold ony(i) = S(i,1)*X(i)+S(i,2);y(i+1) = S(i,1)*X(i+1)+S(i,2);plot(X(i:i+1),y(i:i+1),�r-�)

endhold off

Gambar 6.1: Spline kuadratik untuk Contoh 6.2.

Page 45: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 39

Dari contoh di atas telah ditunjukkan bahwa kekurangan utama spline-spline linearadalah ketidakmulusannya. Artinya, pada titik-titik data di mana dua spline bertemu,kemiringannya berubah secara mendadak. Secara formal ini berarti bahwa turunanpertama dari fungsi tidak kontinu pada titik-titik tersebut. Kelemahan ini diatasi olehpenggunaan polinomial spline orde yang lebih tinggi.

6.2 Spline Kuadratik

Tidak seperti spline linear, spline kuadratik tidak dide�nisikan sepenuhnya oleh nilai-nilai di xi. Berikut ini kita perhatikan alasannya. Spline kuadratik dide�nisikan oleh

Si (x) = aix2 + bix+ ci:

Jadi terdapat 3n parameter untuk mende�nisikan S (x).

Diperhatikan titik-titik data:

x0 x1 x2 � � � xny0 y1 y2 � � � yn

Syarat-syarat untuk menentukan 3n parameter dijelaskan seperti berikut ini.

1. Setiap subinterval [xi; xi+1], untuk i = 0; 1; 2; :::; n � 1, memberikan dua per-samaan berkaitan dengan Si (x), yaitu

Si (xi) = yi dan Si (xi+1) = yi+1:

Jadi dari sini dipunyai 2n persamaan.

2. Syarat pada kontinuitas dari S0 (x) memberikan suatu persamaan tunggal untuksetiap titik dalam xi, i = 1; 2; :::; n� 1, yaitu

S0i�1 (xi) = S0i (xi) :

Jadi dari sini dipunyai n� 1 persamaan. Sekarang totalnya terdapat 3n� 1 per-samaan, tetapi karena terdapat 3n parameter yang tidak diketahui maka sistemmempunyai kekurangan ketentuan.

3. Pilihan-pilihan yang mungkin untuk melengkapi kekurangan ketentuan yaitu

S0 (x0) = 0 atau S00 (x0) = 0:

Sekarang dimisalkan zi = S0i (xi). Karena Si (xi) = yi, S0i (xi) = zi, dan S0i (xi+1) =zi+1, maka kita dapat mende�nisikan

Si (x) =zi+1 � zi

2 (xi+1 � xi)(x� xi)2 + zi (x� xi) + yi: (6.3)

Page 46: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 40

Selanjutnya, dengan pengambilan x = xi+1 diperoleh

yi+1 = Si (xi+1) =zi+1 � zi

2 (xi+1 � xi)(xi+1 � xi)2 + zi (xi+1 � xi) + yi

yi+1 � yi =zi+1 � zi

2(xi+1 � xi) + zi (xi+1 � xi)

yi+1 � yi =zi+1 + zi

2(xi+1 � xi) :

Jadi, kita dapat menentukan zi+1 dari zi:

zi+1 = 2yi+1 � yixi+1 � xi

� zi: (6.4)

Contoh 6.3 Konstruksi spline kuadratik untuk data berikut:

x 0:0 0:1 0:4 0:5

y 1:3 4:5 2:0 2:1

dengan penetapan z0 = 0.

Penyelesaian. Pertama kali dihitung nilai-nilai zi:

z1 = 2y1 � y0x1 � x0

� z0 = 24:5� 1:30:1� 0:0 � 0 = 64;

z2 = 2y2 � y1x2 � x1

� z1 = 22:0� 4:50:4� 0:1 � 64 = �

242

3;

z3 = 2y3 � y2x3 � x2

� z2 = 22:1� 2:00:5� 0:4 +

242

3=248

3;

Jadi, fungsi spline kuadratik S (x):

S0 (x) =z1 � z0

2 (x1 � x0)(x� x0)2 + z0 (x� x0) + y0

= 320x2 + 1:3 = 320x2 + 1:3; untuk 0:0 � x � 0:1

S1 (x) =z2 � z1

2 (x2 � x1)(x� x1)2 + z1 (x� x1) + y1

= �21709

(x� 0:1)2 + 64 (x� 0:1) + 4:5

= �21709x2 +

1010

9x� 194

45; untuk 0:1 � x � 0:4

S2 (x) =z3 � z2

2 (x3 � x2)(x� x2)2 + z2 (x� x2) + y2

=2450

3(x� 0:4)2 � 242

3(x� 0:4) + 2

=2450

3x2 � 2202

3x+

4948

30; untuk 0:4 � x � 0:5

Persamaan (6.3) dapat dituliskan kembali sebagai

Si (x) = aix2 + bix+ ci; i = 0; 1; :::; n� 1 (6.5)

Page 47: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 41

dengan

ai =zi+1 � zi

2 (xi+1 � xi); bi = zi � 2aixi; ci = aix2i � zixi + yi:

Fungsi MatLab spline2() mengkonstruksi (6.5) untuk koordinat-koordinat titik data(x; y) dengan suatu syarat batas S0 (x0) = 0. Fungsi ini juga menghitung taksiran nilaiy untuk suatu nilai x di antara titik-titik data. Selain itu, kurva dari spline kuadratikuntuk titik-titik data yang diberikan juga akan ditampilkan.

Gambar 6.2: Spline kuadratik untuk Contoh 6.3.

function [S,yi] = spline2(X,Y,xi)% spline2 Mengkonstruksi fungsi spline kuadrat untuk titik-titik data (x,y).%% Input: X = [x0,x1,...,xn]% Y = [y0,y1,...,yn]% xi = suatu nilai di antara x0 dan xn%% Output: S = [ai,bi,ci], koefisien-koefisien spline kuadrat y = ai*x^2+bi*x+ci% yi = taksiran nilai pada x = xi%% ---PENGHITUNGAN INTI:if nargin < 3, xi = X(1); endz0 = 0;n = length(X);S = [];z_lama = z0;

% koefisien-koefisien spline linear:for i=1:n-1

z_baru = 2*(Y(i+1)-Y(i))/(X(i+1)-X(i))-z_lama;a = 0.5*(z_baru-z_lama)/(X(i+1)-X(i));b = z_baru-2*a*X(i+1);c = a*X(i)^2-z_lama*X(i)+Y(i);S = [S; a b c];z_lama = z_baru;

Page 48: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 42

end

% nilai potongan fungsi f(xi):for i=1:n-1

if xi>X(i) & xi<X(i+1)yi = S(i,1)*xi^2+S(i,2)*xi+S(i,3);

endend

% plot kurva-kurva spline:for i=1:n-1

dX(i)=(X(i+1)-X(i));enddX = min(dX);dx = dX/100; % lebar domain x

plot(X,Y,�bo�)for i=1:n-1

hold onxx = X(i):dx:X(i+1);yy = S(i,1)*xx.^2+S(i,2)*xx+S(i,3);plot(xx,yy,�r-�)

endhold off

6.3 Spline Kubik

S(x)

x0 x1 x2 xi xi+1 xi+2 xn­2 xn­1 xn x

S0

S1

Si Si+1 Sn­2

Sn­1

( ) ( ) ( )( ) ( )( ) ( )111

111

1111

+++

+++

++++

′′=′′′=′

==

iiii

iiii

iiiii

xSxSxSxS

xSxfxS

Gambar 6.3: Pendekatan dengan polinomial spline kubik.

Diketahui suatu fungsi f (x) yang dibatasi oleh interval a dan b, dan memiliki sejumlahtitik data a = x0 < x1 < x2 < ::: < xn = b. Interpolasi spline kubik S (x) adalahsuatu potongan fungsi polinomial berderajat tiga (kubik) yang menghubungkan duatitik yang bersebelahan, lihat Gambar 6.3, dengan ketentuan, untuk i = 0; 1; :::; n� 1:

(S0) Potongan fungsi pada subinterval [xi; xi+1], i = 0; 1; :::; n� 1:

Si (x) = ai (x� xi)3 + bi (x� xi)2 + ci (x� xi) + di:

Page 49: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 43

(S1) Pada setiap titik data x = xi, i = 0; 1; :::; n:

S (xi) = f (xi) :

(S2) Nilai-nilai fungsi harus sama pada titik-titik dalam:

Si (xi+1) = Si+1 (xi+1) ; i = 0; 1; :::; n� 2:

(S3) Turunan-turunan pertama pada titik dalam harus sama:

S0i (xi+1) = S0i+1 (xi+1) ; i = 0; 1; :::; n� 2:

(S4) Turunan-turunan kedua pada titik dalam harus sama:

S00i (xi+1) = S00i+1 (xi+1) ; i = 0; 1; :::; n� 2:

(S5) Salah satu syarat batas di antara dua syarat batas x0 dan xn berikut ini harusdipenuhi:

� S00 (x0) = S00 (xn) = 0 (disebut batas alamiah/ natural boundary)� S0 (x0) = f 0 (x0) dan S0 (xn) = f 0 (xn) (disebut batas apitan/ clamped bound-ary)

Berikut ini akan dijelaskan bagaimana mencari polinomial spline kubik S.

Langkah 1 (Kendala S0): Polinomial spline kubik S untuk suatu fungsi f dide�ni-sikan oleh

Si (x) = ai (x� xi)3 + bi (x� xi)2 + ci (x� xi) + di (6.6)

dengan i = 0; 1; :::; n� 1.

Langkah 2 (Kendala S1): Ketika x = xi maka dipunyai

Si (xi) = ai (xi � xi)3 + bi (xi � xi)2 + ci (xi � xi) + di= di = f (xi) : (6.7)

Ini berarti bahwa di selalu menjadi pasangan titik data dari xi . Dengan pola inimaka pasangan titik data xi+1 adalah ai+1, konsekuensinya S (xi+1) = di+1.

Langkah 3 (Kendala S2): Ketika x = xi+1 disubstitusikan ke persamaan (S3) makadiperoleh

Si (xi+1) = Si+1 (xi+1)

ai (xi+1 � xi)3 + bi (xi+1 � xi)2 + ci (xi+1 � xi) + di = di+1

dengan i = 0; 1; :::; n�2. Sekarang dimisalkan hi = xi+1�xi, sehingga persamaandi atas bisa dituliskan kembali menjadi

di+1 = aih3i + bih

2i + cihi + di: (6.8)

Page 50: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 44

Langkah 4 (Kendala S3): Turunan pertama dari (6.6) yaitu

S0i (x) = 3ai (x� xi)2 + 2bi (x� xi) + ci:

Ketika x = xi dipunyai

S0i (xi) = 3ai (xi � xi)2 + 2bi (xi � xi) + ci = ci;

dan ketika x = xi+1 dipunyai

S0i (xi+1) = S0i+1 (xi+1)

3ai (xi+1 � xi)2 + 2bi (xi+1 � xi) + ci = ci+1

3aih2i + 2bihi + ci = ci+1: (6.9)

Langkah 5 (Kendala S4): Turunan kedua dari (6.6) yaitu

S00i (x) = 6ai (x� xi) + 2bi: (6.10)

Dengan ketentuan tambahanS00 (x)

2, persamaan di atas dimodi�kasi menjadi

S00i (x) = 3ai (x� xi) + bi:

Ketika x = xi dipunyai

S00i (xi) = 3ai (xi � xi) + bi = bi;

dan ketika x = xi+1 dipunyai

S00i (xi+1) = S00i+1 (xi+1)

3ai (xi+1 � xi) + bi = bi+1

3aihi + bi = bi+1:

Dari sini bisa dinyatakan

ai =1

3hi(bi+1 � bi) : (6.11)

Karena itu, persamaan (6.8) dapat dituliskan kembali menjadi

di+1 =1

3hi(bi+1 � bi)h3i + bih2i + cihi + di

=h2i3(2bi + bi+1) + cihi + di; (6.12)

sedangkan persamaan (6.9) menjadi

ci+1 = hi (bi+1 � bi) + 2bihi + ci= hi (bi + bi+1) + ci

atau dinyatakan menjadi

ci = hi�1 (bi�1 + bi) + ci�1: (6.13)

Page 51: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 45

Dari persamaan (6.12) diperoleh

ci =1

hi(di+1 � di)�

hi3(2bi + bi+1) (6.14)

dan untuk ci�1 dinyatakan

ci�1 =1

hi�1(di � di�1)�

hi�13(2bi�1 + bi) : (6.15)

Disubstitusikan ci dan ci�1 ke persamaan (6.13) untuk memperoleh

hi�1bi�1 + 2 (hi�1 + hi) bi + hibi+1 =3

hi(di+1 � di)�

3

hi�1(di � di�1) (6.16)

dengan i = 1; 2; :::; n � 1. Dalam sistem persamaan ini, nilai fhign�1i=0 dan nilaifdigni=0 sudah diketahui, sedangkan nilai fbig

ni=0 belum diketahui dan memang

nilai inilah yang akan dihitung dari persamaan tersebut.

Langkah 6 (Kendala S5): (1) Batas alamiah. Ketika S00 (x0) = S00 (xn) = 0, daripersamaan (6.10) diperoleh

S00 (x0) = 6a0 (x0 � x0) + 2b0 = 0 =) b0 = 0;

S00 (xn) = 6an (xn � xn) + 2bn = 0 =) bn = 0:

Sistem persamaan (6.16) dapat dituliskan sebagai perkalian matriksAz = Bdimana

A =

26666664

1 0 0 � � � � � � � � � 0h0 2 (h0 + h1) h1 0 � � � � � � 00 h1 2 (h1 + h2) h2 0 � � � 0� � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � hn�2 2 (hn�2 + hn�1) hn�10 � � � � � � � � � 0 0 1

37777775 ;

z =

26664b0b1...bn

37775 ; B =2666664

03h1(d2 � d1)� 3

h0(d1 � d0)

...3

hn�1(dn � dn�1)� 3

hn�2(dn�1 � dn�2)

0

3777775 :

(2) Batas apitan. Dari persamaan (6.14), dengan i = 0, dimana f 0 (x0) =S0 (x0) = c0 diperoleh

f 0 (x0) =1

h0(d1 � d0)�

h03(2b0 + b1) ;

dan konsekuensinya

2h0b0 + h0b1 =3

h0(d1 � d0)� 3c0: (6.17)

Sementara itu, pada x = xn dan dengan menggunakan persamaan (6.13)

Page 52: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 46

diperolehf 0 (xn) = cn = cn�1 + hn�1 (bn�1 + bn)

dengan cn�1 bisa diperoleh dari persamaan (6.15), dengan i = n� 1,

cn�1 =1

hn�1(dn � dn�1)�

hn�13

(2bn�1 + bn) :

Jadi

f 0 (xn) =1

hn�1(dn � dn�1)�

hn�13

(2bn�1 + bn) + hn�1 (bn�1 + bn)

=1

hn�1(dn � dn�1) +

hn�13

(bn�1 + 2bn)

dan akhirnya diperoleh

hn�1bn�1 + 2hn�1bn = 3cn �3

hn�1(dn � dn�1) (6.18)

Persamaan (6.17) dan (6.18) ditambah persamaan (6.16) membentuk perkalianmatriks Az = B dimana

A =

26666664

2h0 h0 0 � � � � � � � � � 0h0 2 (h0 + h1) h1 0 � � � � � � 00 h1 2 (h1 + h2) h2 0 � � � 0� � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � hn�2 2 (hn�2 + hn�1) hn�10 � � � � � � � � � 0 hn�1 2hn�1

37777775 ;

z =

26664b0b1...bn

37775 ; B = 326666664

1h0(d1 � d0)� c0

1h1(d2 � d1)� 1

h0(d1 � d0)

...1

hn�1(dn � dn�1)� 1

hn�2(dn�1 � dn�2)

cn � 1hn�1

(dn � dn�1)

37777775 :

Langkah 7: Setelah sistem persamaan diselesaikan untuk b0, b1, ..., bn, kita mensub-stitusikan nilai-nilai tersebut ke kendala (S1), (6.14), (6.11) untuk mendapatkankoe�sien-koe�sien lain dari spline kubik:

di(S1)= yi; ci

(6:14)=

di+1 � dihi

� hi3(2bi + bi+1) ; ai

(6:14)=

1

3hi(bi+1 � bi) : (6.19)

Contoh 6.4 Konstruksikan spline kubik untuk 4 titik data berikut:

x 0 1 2 3

y 0 1 4 5

terhadap syarat batas: S0 (x0) = S0 (0) = c0 = 2 dan S0 (xn) = S0 (3) = cn = 2.

Page 53: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 47

Penyelesaian. Lebar subinterval pada sumbu x:

h0 = h1 = h2 = h3 = 1

dan beda terbagi pertama, dengan mengingat bahwa di = f (xi) = yi, yaitu

d1 � d0h0

= 1;d2 � d1h1

= 3;d3 � d2h2

= 1:

Persamaan matriks dapat dituliskan sebagai26642 1 0 01 4 1 00 1 4 10 0 1 2

37752664b0b1b2b3

3775 = 326641� 23� 11� 32� 1

3775 =2664�36

�63

3775 ;yang mempunyai penyelesaian

b0 = �3; b1 = 3; b2 = �3, dan b3 = 3.

Disubstitusikan penyelesaian tersebut ke persamaan (6.19) untuk memperoleh koe�sien-koe�sien lain dari spline kubik:

d0 = 0; d1 = 1; d2 = 4;

c0 = 1� 13(3 + 2 (�3)) = 2; c1 = 3�

1

3(�3 + 2 (3)) = 2; c2 = 1�

1

3(3 + 2 (�3)) = 2;

a0 =3� (�3)

3= 2; a1 =

�3� 33

= �2; a2 =3� (�3)

3= 2:

Terakhir, kita dapat menuliskan persamaan spline kubik seperti

S0 (x) = 2x3 � 3x2 + 2x, untuk x 2 [0; 1] ;S1 (x) = �2 (x� 1)3 + 3 (x� 1)2 + 2 (x� 1) + 1, untuk x 2 [1; 2] ;S2 (x) = 2 (x� 2)3 � 3 (x� 2)2 + 2 (x� 1) + 4, untuk x 2 [2; 3] .

Fungsi MatLab splinekubik() mengkonstruksi persamaan matriks Ax = b, menye-lesaikannya menggunakan iterasi SOR untuk mendapatkan koe�sien-koe�sien splinekubik untuk koordinat-koordinat x, y dari titik-titik data yang dilengkapi syarat batasapitan.

function [S,yi] = splinekubik(X,Y,dy0,dyn,xi)% splinekubik Mengkonstruksi polinomial spline kubik untuk titik-titik data (x,y).%% Input: X = [x0,x1,...,xn]% Y = [y0,y1,...,yn]% dy0 = S�(x0) = c0: turunan awal% dyn = S�(xn) = cn: turunan akhir% xi = suatu nilai di antara x0 dan xn%% Output: S = [ai,bi,ci,di], koefisien-koefisien spline kubik

Page 54: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 48

Gambar 6.4: Spline kuadratik untuk Contoh 6.4.

% Si(x)= ai*(x-xi)^3+bi*(x-xi)^2+ci(x-xi)+di% yi = taksiran nilai pada x = xi%% ---PENGHITUNGAN INTI:if nargin < 5, xi = X(1); endif nargin < 4, dyn = 0; endif nargin < 3, dy0 = 0; endn = length(X);for i = 1:n-1 % lebar subinterval

h(i) = X(i+1) - X(i);end

% mengkonstruksi matriks A dan B:A = zeros(n,n); B = zeros(n,1);A(1,1) = 2*h(1); A(1,2) = h(1); A(2,1) = h(1);A(n,n) = 2*h(n-1); A(n-1,n) = h(n-1); A(n,n-1) = h(n-1);

for i = 2:n-1for j = 2:n-1

if j==i, A(i,j) = 2*(h(i-1)+h(i));elseif j==i+1, A(i,j) = h(i);elseif j==i-1, A(i,j) = h(i);else A(i,j) = 0;end

endend

B(1) = (Y(2)-Y(1))/h(1) - dy0;B(n) = dyn - (Y(n)-Y(n-1))/h(n-1);for i = 2:n-1

B(i) = (Y(i+1)-Y(i))/h(i) - (Y(i)-Y(i-1))/h(i-1);endB = 3*B;

% koefisien-koefisien spline kubik:z = iterasiSOR(A,B);

Page 55: Penjelasan Metode Numerik Lgkp

Bab 6. Interpolasi Spline 49

bi = z(1:3);di = Y(1:3)�;for i = 1: n-1

ci(i) = (Y(i+1)-Y(i))/h(i) - h(i)/3*(2*z(i)+z(i+1));ai(i) = (z(i+1)-z(i))/(3*h(i));

endS = [ai� bi ci� di]; % orde menurun

% nilai potongan fungsi f(xi):for i=1:n-1

if xi>X(i) & xi<X(i+1)yi = S(i,1)*(xi-X(i))^3+S(i,2)*(xi-X(i))^2+S(i,3)*(xi-X(i))+S(i,4);end

end

% plot kurva-kurva spline:for i=1:n-1

dX(i)=(X(i+1)-X(i));enddX = min(dX);dx = dX/100; % lebar domain x

plot(X,Y,�bo�)for i=1:n-1

hold onxx = X(i):dx:X(i+1);yy = S(i,1)*(xx-X(i)).^3+S(i,2)*(xx-X(i)).^2+S(i,3)*(xx-X(i))+S(i,4);plot(xx,yy,�r-�)

endhold off

Page 56: Penjelasan Metode Numerik Lgkp

Bab 7

Regresi Kuadrat Terkecil

Tujuan Pembelajaran:� Mengetahui teknik pencocokan kurva yang merepresentasikan trend data.� Mengaplikasikan regresi kuadrat terkecil untuk menentukan fungsi hampiran.

Jika terdapat banyak galat yang berhubungan dengan data, khususnya data eksperi-mental, maka interpolasi tidak sesuai dan mungkin memberikan hasil-hasil yang tidakmemuaskan jika dipakai untuk meramalkan nilai-nilai antara. Untuk kasus yang demi-kian, suatu strategi yang sesuai adalah dengan pencocokan kurva. Pencocokan kurvaadalah pencarian suatu kurva yang bisa menunjukkan kecenderungan (trend) dari him-punan data. Kurva ini tidak harus melalui titik-titik data. Suatu kriteria yang dipakaiuntuk mengukur kecukupan dari kecocokan yaitu regresi kuadrat terkecil.

7.1 Regresi Linear

Regresi linier digunakan untuk menentukan fungsi linier yang paling sesuai dengankumpulan titik data f(xk; yk) : k = 1; :::; ng yang diketahui. Pernyataan matematisuntuk fungsi linear tersebut yaitu

y = a0 + a1x+ e

dengan e dinamakan galat atau sisa. Sisa adalah selisih antara pengamatan dengangaris:

e = y � a0 + a1x:

Suatu kriteria untuk pencocokan yang terbaik adalah hampiran kuadrat terkecil yangmeminimalkan jumlahan kuadrat dari sisa:

Sr =

nXi=1

e2i =

nXi=1

(yi;observasi � yi;data)2 =nXi=1

(yi � a0 + a1xi)2 :

Kriteria ini menghasilkan suatu garis tunggal untuk himpunan data yang diberikan.Untuk menentukan nilai-nilai a0 dan a1, diturunkan Sr terhadap setiap koe�sien dan

50

Page 57: Penjelasan Metode Numerik Lgkp

Bab 7. Regresi Kuadrat Terkecil 51

selanjutnya disamakan dengan nol:

@S

@a0= �2

nXi=1

(yi � a0 � a1xi) = 0;

@S

@a1= �2

nXi=1

(yi � a0 � a1xi)xi = 0:

Persamaan-persamaan di atas dapat dituliskan kembali menjadi

nXi=1

yi �nXi=1

a0 �nXi=1

a1xi = 0;

nXi=1

yixi �nXi=1

a0xi �nXi=1

a1x2i = 0;

atau ekivalen dengan

na0 + a1

nXi=1

xi =

nXi=1

yi;

a0

nXi=1

xi + a1

nXi=1

x2i =nXi=1

yixi:

Selanjutnya diselesaikan kedua persamaan untuk memperoleh

a1 =

nnXi=1

xiyi �nXi=1

xi

nXi=1

yi

nnXi=1

x2i �

nXi=1

xi

!2 dan a0 =1

n

nXi=1

yi � a11

n

nXi=1

xi:

Contoh 7.1 Berikut ini akan dicari persamaan kurva linear jika diberikan tujuh datauntuk x dan y:

xi 1 2 3 4 5 6 7

yi 0:5 2:5 2:0 4:0 3:5 6:0 5:5

Berdasarkan data diperoleh:

n = 7;

7Xi=1

xiyi = 119:5;

7Xi=1

xi = 28;

7Xi=1

yi = 24;

7Xi=1

x2i = 140:

Karena itu

a1 =7 � 119:5� 28 � 247 � 140� (28)2

= 0:8392857;

a0 =24

7� 0:8392857 � 28

7= 0:07142857;

Page 58: Penjelasan Metode Numerik Lgkp

Bab 7. Regresi Kuadrat Terkecil 52

sehingga persamaan kurva linear:

y = 0:07142857 + 0:8392857x:

Fungsi MatLab reglin() menjalankan skema kuadrat terkecil untuk mencari koe�siendari suatu persamaan kurva linear yang cocok dengan sekumpulan titik data. Fungsiini juga menampilkan plot titik-titik data dan kurva regresi linear.

function Koef = reglin(X,Y)% reglin Mencari koefisien dari persamaan kurva linear untuk sekumpulan% titik data menggunakan kriteria kuadrat terkecil.%% Input: X = data x% Y = data y yang berkorespondensi dengan x%% Output: koefisien dari x^0 dan x^1 secara berturutan%% ---PENGHITUNGAN INTI:n = length(X);sigmaXY = sum(X.*Y);sigmaX = sum(X);sigmaY = sum(Y);sigmaXX = sum(X.^2);koefx1 = (n*sigmaXY-sigmaX*sigmaY)/(n*sigmaXX-sigmaX^2); % koefisien dari x^1koefx0 = (sigmaY-koefx1*sigmaX)/n; % koefisien dari x^0

% ---OUTPUT:Koef = [koefx0,koefx1]; % orde naik

% plot titik-titik data dan kurva linearxreg = X(1):0.01:X(end);yreg = Koef(1)+Koef(2)*xreg;plot(X,Y,�bo�,xreg,yreg,�r-�);

7.2 Regresi Polinomial Derajat Dua

Diberikan kumpulan titik data f(xk; yk) : k = 1; :::; ng. Fungsi pendekatan untuk fungsipolinomial berderajat dua:

y = a0 + a1x+ a2x2:

Jumlahan kuadrat dari sisa yaitu

Sr =

nXi=1

�yi � a0 � a1xi � a2x2i

�2:

Page 59: Penjelasan Metode Numerik Lgkp

Bab 7. Regresi Kuadrat Terkecil 53

Gambar 7.1: Kurva linear dengan metode kuadrat terkecil untuk titik-titik data dalamContoh 7.1.

Diturunkan Sr terhadap semua parameter dan selanjutnya disamakan dengan nol:

@Sr@a0

= �2nXi=1

�yi � a0 � a1xi � a2x2i

�= 0;

@Sr@a1

= �2nXi=1

�yi � a0 � a1xi � a2x2i

�xi = 0;

@Sr@a1

= �2nXi=1

�yi � a0 � a1xi � a2x2i

�x2i = 0

Persamaan-persamaan disusun kembali menjadi

na0 + a1

nXi=1

xi + a2

nXi=1

x2i =

nXi=1

yi;

a0

nXi=1

xi + a1

nXi=1

x2i + a2

nXi=1

x3i =

nXi=1

xiyi;

a0

nXi=1

x2i + a1

nXi=1

x3i + a2

nXi=1

x4i =

nXi=1

x2i yi;

atau dalam bentuk perkalian matriks:26666666664

n

nXi=1

xi

nXi=1

x2i

nXi=1

xi

nXi=1

x2i

nXi=1

x3i

nXi=1

x2i

nXi=1

x3i

nXi=1

x4i

3777777777524 a0a1a2

35 =

26666666664

nXi=1

yi

nXi=1

xiyi

nXi=1

x2i yi

37777777775:

Page 60: Penjelasan Metode Numerik Lgkp

Bab 7. Regresi Kuadrat Terkecil 54

Contoh 7.2 Berikut ini akan dicari persamaan kurva polinomial derajat dua untukdata:

xi 0 1 2 3 4 5

yi 2:1 7:7 14 27 41 61

Berdasarkan data diperoleh:

n = 6;

6Xi=1

xi = 15;

6Xi=1

x2i = 55;

6Xi=1

yi = 152:6;

6Xi=1

x3i = 225;

6Xi=1

xiyi = 585:6;6Xi=1

x4i = 979;6Xi=1

x2i yi = 2488:8:

Karena itu dipunyai sistem persamaan linear dalam bentuk24 6 15 5515 55 22555 225 979

3524 a0a1a2

35 =24 152:6

585:62488:8

35yang mempunyai penyelesaian

a0 = 2:47857; a1 = 2:35929; a2 = 1:86071;

sehingga persamaan kurva polinomial derajat dua:

y = 2:47857 + 2:35929x+ 1:86071x2:

Fungsi MatLab regkuad() mencari koe�sien dari suatu persamaan polinomial derajatdua yang cocok dengan sekumpulan titik data dengan metode kuadrat terkecil.

function Koef = regkuad(X,Y)% reglin Mencari koefisien dari persamaan polinomial derajat dua untuk% sekumpulan titik data menggunakan kriteria kuadrat terkecil.%% Input: X = data x% Y = data y yang berkorespondensi dengan x%% Output: koefisien dari x^0, x^1, dan x^2 secara berturutan%% ---PENGHITUNGAN INTI:% penyusun sistem persamaan:A(1,1) = length(X);A(1,2) = sum(X);A(1,3) = sum(X.^2);A(2,1) = A(1,2);A(2,2) = A(1,3);A(2,3) = sum(X.^3);A(3,1) = A(2,2);A(3,2) = A(2,3);A(3,3) = sum(X.^4);b(1) = sum(Y);b(2) = sum(X.*Y);b(3) = sum(X.^2.*Y);

Page 61: Penjelasan Metode Numerik Lgkp

Bab 7. Regresi Kuadrat Terkecil 55

b = b�;

% penyelesaian sistem dengan SOR:Koef = SOR(A,b)�; % orde naik

% plot titik-titik data dan kurva regresi kuadratxreg = X(1):0.01:X(end);yreg = Koef(1)+Koef(2)*xreg+Koef(3)*xreg.^2;plot(X,Y,�bo�,xreg,yreg,�r-�);

Gambar 7.2: Kurva polinomial derajat dua dengan metode kuadrat terkecil untuk titik-titik data dalam Contoh 7.2.

7.3 Linearisasi Fungsi Tak Linear

Regresi linear memberikan teknik yang ampuh untuk mencocokkan garis "terbaik"terhadap data. Namun, teknik ini tergantung pada kenyataan bahwa kaitan antaravariabel tak bebas dan bebas adalah linear. Dalam analisis regresi, seharusnya langkahpertama adalah penggambaran gra�k untuk memeriksa apakah pada data berlaku suatuhubungan linear.

Beberapa data yang tidak linear dapat dilinearkan dengan suatu transformasi data,seperti yang disajikan dalam Tabel 7.1.

Contoh 7.3 Berikut ini akan dicari persamaan kurva eksponensial untuk data:

xi 1 2 3 4 5

yi 0:5 1:7 3:4 5:7 8:4

ln (yi) �0:6931 0:5306 1:2238 1:7405 2:1282

Page 62: Penjelasan Metode Numerik Lgkp

Bab 7. Regresi Kuadrat Terkecil 56

Tabel 7.1: Linearisasi dari fungsi tak linear dengan transformasi data.

Substitusi Variabel/Fungsi Pencocokan Fungsi Linearisasi Perbaikan Parameter

(1) y =a

x+ b y = aX + b X =

1

x

(2) y =b

a+ xY = Ax+B Y =

1

y;A =

1

b;B =

a

b(3) y = a � bx Y = Ax+B Y = ln (y) ; A = ln (b) ; B = ln (a)(4) y = b � eax Y = ax+B Y = ln (y) ; B = ln (b)(5) y = C � b � e�ax Y = Ax+B Y = ln (C � y) ; A = �a;B = ln (b)(6) y = a � xb Y = AX +B Y = ln (y) ; A = b;X = ln (x) ; B = ln (a)

(7) y = ax � ebx Y = Ax+B Y = ln�yx

�; A = b; B = ln (a)

(8) y =C

1 + b � eax Y = ax+B Y = ln

�C

y� 1�; B = ln (b)

(9) y = a ln (x) + b y = aX + b X = ln (x)

Jadi di sini digunakan fungsi linearisasi seperti no. 4 dalam Tabel 7.1. Berdasarkandata diperoleh:

n = 5;

5Xi=1

xizi = 21:6425;

5Xi=1

xi = 15;

5Xi=1

zi = 4:93;

5Xi=1

x2i = 55:

Karena itu

a =5 � 21:6425� 15 � 4:93

5 � 55� (15)2= 0:685;

B =4:93

5� 0:685 � 15

5= �1:069;

sehingga persamaan kurva linear:

Y = 0:685� 1:069x

atau persamaan kurva eksponensial, dengan b = eB = e�1:069, yaitu

y = e0:685x�1:069

Page 63: Penjelasan Metode Numerik Lgkp

Bab 8

Diferensiasi Numerik

Tujuan Pembelajaran:� Mencari rumus hampiran beda untuk turunan pertama dan kedua.� Mengetahui rumus hampiran turunan yang mempunyai galat lebih baik.� Mengaplikasikan rumus hampiran beda untuk suatu fungsi.

8.1 Turunan Pertama

Suatu teori sederhana mengenai hampiran numerik untuk turunan dapat diperolehmelalui ekspansi deret Taylor dari f (x+ h) di sekitar x:

f (x+ h) = f (x) + hf 0 (x) +h2

2!f 00 (x) +

h3

3!f 000 (x) + � � � : (8.1)

Pengurangan f (x) dari kedua sisi dan membagi kedua sisi dengan ukuran langkah hmenghasilkan

Df1 (x; h) =f (x+ h)� f (x)

h= f 0 (x) +

h

2!f 00 (x) +

h2

3!f 000 (x) + � � � (8.2)

= f 0 (x) +O(h);

dimana O(h) menyatakan suku galat pemotongan yang sebanding dengan h untukjhj � 1. Dari sini kita mendapatkan hampiran beda maju (forward di¤erence ap-proximation) untuk f 0 (x):

Df1 (x; h) =f (x+ h)� f (x)

h

yang mempunyai galat sebanding dengan ukuran langkah h atau ekivalen dalam ordedari h.

Sekarang, untuk menurunkan rumus hampiran yang lain untuk turunan pertama yangmempunyai galat lebih kecil, dihapus suku orde satu terhadap h dari persamaan (8.2)dengan mensubstitusikan 2h untuk h dalam persamaan:

Df1 (x; 2h) =f (x+ 2h)� f (x)

2h= f 0 (x) +

2h

2!f 00 (x) +

4h2

3!f 000 (x) + � � �

57

Page 64: Penjelasan Metode Numerik Lgkp

Bab 8. Diferensiasi Numerik 58

dan pengurangan hasil ini dari dua kali persamaan (8.2) menghasilkan

2Df1 (x; h)�Df1 (x; 2h) = 2f (x+ h)� f (x)

h� f (x+ 2h)� f (x)

2h

Df2 (x; h) =�f (x+ 2h) + 4f (x+ h)� 3f (x)

2h

= f 0 (x)� 2h2

3!f 000 (x) + � � �

= f 0 (x) +O�h2�

(8.3)

yang dapat dipandang sebagai suatu perbaikan atas persamaan (8.2) karena ini mem-punyai galat pemotongan sebanding dengan h2 untuk jhj � 1.

Berikutnya, dengan mensubstitusikan �h untuk h dalam persamaan (8.1) akan diper-oleh hampiran beda mundur (backward di¤erence approximation) untuk f 0 (x):

Db1 (x; h) =f (x)� f (x� h)

h= Df1 (x;�h)

yang galat pemotongan yang sebanding dengan h untuk jhj � 1. Untuk menghasilkansuatu versi perbaikan yang mempunyai galat pemotongan sebanding dengan h2 untukjhj � 1 dapat diproses seperti berikut:

Db2 (x; h) =2Db1 (x; h)�Db1 (x; 2h)

2� 1 =3f (x)� 4f (x� h) + f (x� 2h)

2h

= f 0 (x) +O�h2�: (8.4)

Untuk menurunkan rumus hampiran lain untuk turunan pertama, kita mengambilekspansi deret Taylor dari f (x+ h) dan f (x� h) sampai orde kelima:

f (x+ h) = f (x) + hf 0 (x) +1

2!h2f 00 (x) +

1

3!h3f 000 (x) +

1

4!h4f (4) (x)

+1

5!h5f (5) (x) + � � � ; (8.5)

f (x� h) = f (x)� hf 0 (x) + 1

2!h2f 00 (x)� 1

3!h3f 000 (x) +

1

4!h4f (4) (x)

� 15!h5f (5) (x) + � � � (8.6)

dan membagi selisih antara kedua persamaan dengan 2h untuk mendapatkan hampi-ran beda pusat (central di¤erence approximation) untuk f 0 (x):

Dc2 (x; h) =f (x+ h)� f (x� h)

2h= f 0 (x) +

1

3!h2f 000 (x) +

1

5!h4f (5) (x) + � � �

= f 0 (x) +O�h2�

yang mempunyai galat sebanding dengan h2, serupa dengan persamaan (8.3) dan (8.4).Ini juga dapat diproses untuk menghasilkan suatu versi perbaikan yang mempunyai

Page 65: Penjelasan Metode Numerik Lgkp

Bab 8. Diferensiasi Numerik 59

galat pemotongan sebanding dengan h4:

22Dc2 (x; h)�Dc2 (x; 2h) = 4f (x+ h)� f (x� h)

2h� f (x+ 2h)� f (x� 2h)

2 � 2h

= 3f 0 (x)� 12h4

5!f (5) (x)� � � �

Dc4 (x; h) =22Dc2 (x; h)�Dc2 (x; 2h)

22 � 1

=8f (x+ h)� 8f (x� h)� f (x+ 2h) + f (x� 2h)

12h= f 0 (x) +O

�h4�

Contoh 8.1 Hitung nilai turunan f (x) = x2 pada x = 2 dengan h = 0:1.

Penyelesaian. Hampiran beda maju:

O (h) : Df1 (2; 0:1) =f (2:1)� f (2)

0:1=4:41� 40:1

= 4:1;

O�h2�: Df2 (2; 0:1) =

�f (2:2) + 4f (2:1)� 3f (2)0:2

=�4:84 + 17:64� 12

0:2= 4:

Hampiran beda mundur:

O (h) : Db1 (2; 0:1) =f (2)� f (1:9)

0:1=4� 3:610:1

= 3:9;

O�h2�: Db2 (2; 0:1) =

3f (2)� 4f (1:9) + f (1:8)0:2

=12� 14:44 + 3:24

0:2= 4:

Hampiran beda pusat:

O�h2�: Dc2 (2; 0:1) =

f (2:1)� f (1:9)0:2

=4:41� 3:61

0:2= 4;

O�h4�: Dc4 (2; 0:1) =

8f (2:1)� 8f (1:9)� f (2:2) + f (1:8)1:2

= 4:

Berikut ini adalah kode MatLab untuk mencari hampiran beda pusat orde dua untukfungsi f (x) = sin (x) di x = 1

3� untuk h yang bevariasi.

f = inline(�sin(x)�);f1 = inline(�cos(x)�);h = 0.1;x = pi/3;

fprintf(� h Galat Mutlak\n�);fprintf(�=========================\n�);for i = 1:6

Dc2 = (f(x+h) - f(x-h))/(2*h);fprintf(�%7.1e %8.1e\n�,h,abs(f1(x)-Dc2))

Page 66: Penjelasan Metode Numerik Lgkp

Bab 8. Diferensiasi Numerik 60

h = h/10;end

Kode MatLab tersebut menghasilkan tabel seperti berikut:

h Galat Mutlak=========================1.0e-001 8.3e-0041.0e-002 8.3e-0061.0e-003 8.3e-0081.0e-004 8.3e-0101.0e-005 7.8e-0121.0e-006 4.1e-011

8.2 Ekstrapolasi Richardson

Prosedur yang sudah diturunkan untuk hampiran beda pada bagian sebelumnya dapatdirumuskan menjadi suatu rumus umum, dinamakan ekstrapolasi Richardson, untukmemperbaiki hampiran beda dari turunan-turunan seperti berikut ini:

Df;n+1 (x; h) =2nDf;n (x; h)�Df;n (x; 2h)

2n � 1 ; [n: orde galat]

Db;n+1 (x; h) =2nDb;n (x; h)�Db;n (x; 2h)

2n � 1 ;

Dc;2(n+1) (x; h) =4nDc;2n (x; h)�Dc;2n (x; 2h)

4n � 1 :

Seperti dalam beda bagi, penghitungan hampiran-hampiran beda juga dapat disusundalam bentuk tabel piramida. Sebagai contoh, konstruksi ekstrapolasi Richardson un-tuk beda maju sampai hampiran orde 4 diberikan seperti dalam Tabel ??. Sementaraitu, untuk beda pusat sampai hampiran orde 8 diberikan seperti dalam Tabel 8.2.

Tabel 8.1: Tabel ekstrapolasi Richardson untuk beda maju sampai hampiran orde 4.

O (h) O�h2�

O�h3�

O�h4�

1: Df1 (x; h) 3: Df2 (x; h) 6: Df3 (x; h) 10: Df4 (x; h)2: Df1 (x; 2h) 5: Df2 (x; 2h) 9: Df3 (x; 2h)4: Df1 (x; 4h) 8: Df2 (x; 4h)7: Df1 (x; 8h)

Fungsi MatLab RichDiff1()mengkonstruksi tabel ekstrapolasi dan mendapatkan ham-piran beda pusat untuk turunan pertama sampai orde n dimana n adalah bilangangenap positif.

Page 67: Penjelasan Metode Numerik Lgkp

Bab 8. Diferensiasi Numerik 61

Tabel 8.2: Tabel ekstrapolasi Richardson untuk beda pusat sampai hampiran orde 8.

O�h2�

O�h4�

O�h6�

O�h8�

1: Dc2 (x; h) 3: Dc4 (x; h) 6: Dc6 (x; h) 10: Dc8 (x; h)2: Dc2 (x; 2h) 5: Dc4 (x; 2h) 9: Dc6 (x; 2h)4: Dc2 (x; 4h) 8: Dc4 (x; 4h)7: Dc2 (x; 8h)

function [Dcf1,Dc] = RichDiff1(f,x0,h,n)% RichDiff1 Mengkonstruksi ekstrapolasi Richardson untuk hampiran beda pusat dari% turunan pertama fungsi f(x).% Input: f = fungsi f(x)% x0 = nilai dimana turunan f�(x0) akan dicari% h = ukuran langkah% n = orde galat pemotongan (harus bilangan genap positif)% Output: Dcf1 = nilai f�(x0)

N = n/2;Dc = zeros(N,N); % matriks turunan-turunan Richardson

% kolom pertama dalam matriks Dc: Dc2(x,2^k*h)for i = 1:N

x = x0 + 2^(i-1)*h;f1 = f(x);x = x0 - 2^(i-1)*h;f2 = f(x);Dc(i,1) = (f1-f2)/(2^i*h); % hampiran turunan-turunan pertama untuk beda pusat

end

% matriks Dc mulai kolom keduafor j = 2:N

for i = 1:N+1-jDc(i,j) = (4^(j-1)*Dc(i,j-1)-Dc(i+1,j-1))/(4^(j-1)-1);

endend

% Turunan pertama untuk beda pusat sampai orde n:Dcf1 = Dc(1,end);

8.3 Turunan Kedua

Untuk memperoleh suatu rumus hampiran untuk turunan kedua, kita mengambil ekspansideret Taylor dari f (x+ h) dan f (x� h) sampai orde kelima seperti dalam persamaan(8.5) dan (8.6). Dijumlahkan kedua persamaan (untuk menghapus suku f 0 (x)) danselanjutnya dilakukan pengurangan 2f (x) dari kedua sisi dan dibagi kedua sisi denganh2 untuk memperoleh hampiran beda pusat untuk turunan kedua:

D(2)c2 (x; h) =

f (x+ h)� 2f (x) + f (x� h)h2

= f 00 (x) +1

12h2f (4) (x) +

2

6!h4f (6) (x) + � � �

Page 68: Penjelasan Metode Numerik Lgkp

Bab 8. Diferensiasi Numerik 62

yang mempunyai suatu galat pemotongan orde h2.

Ekstrapolasi Richardson dapat digunakan untuk memanipulasi persamaan di atas se-hingga suku h2 terhapus. Hasil yang diperoleh adalah suatu versi perbaikan:

22D(2)c2 (x; h)�D

(2)c2 (x; 2h)

22 � 1 =

�f (x+ 2h) + 16f (x+ h)� 30f (x) + 16f (x� h)� f (x� 2h)12h2

= f 00 (x)� h4

90f (5) (x) + � � � :

atau dituliskan kembali menjadi

D(2)c4 (x; h) =

�f (x+ 2h) + 16f (x+ h)� 30f (x) + 16f (x� h)� f (x� 2h)12h2

= f 00 (x) +O�h4�

yang mempunyai galat pemotongan orde h4.

Kode MatLab untuk mengkonstruksi tabel ekstrapolasi dan mendapatkan hampiranbeda pusat untuk turunan kedua adalah sama seperti untuk turunan pertama tetapipenghitungan hampiran turunan-turunan pertama orde 2 pada kolom pertama digantidengan rumus turunan kedua:

Dc(i,1) = (f1-2*f(x0)+f2)/(2^(i-1)*h)^2;

Lebih lanjut, untuk mendapatkan rumus hampiran dari turunan tingkat tinggi dapatdilihat di [5].

Page 69: Penjelasan Metode Numerik Lgkp

Bab 9

Persamaan Diferensial Biasa

Tujuan Pembelajaran:� Mengetahui metode-metode penyelesaian numeris untuk persamaan diferensial biasa.� Mengetahui metode yang memberikan hasil paling dekat dengan hasil sesungguhnya.� Mengaplikasikan metode untuk menyelesaikan persamaan diferensial biasa.

Dalam bab ini, kita akan membicarakan beberapa metode penyelesaian numeris daripersamaan diferensial biasa (disingkat PDB) dimana variabel tak bebas y tergantungpada variabel bebas tunggal t.

9.1 Metode Euler

Diperhatikan persamaan diferensial tingkat satu:

dy (t)

dt= f (t; y (t)) , a � t � b, y (a) = �: (9.1)

Tahap awal penyelesaian pendekatan numerik adalah dengan menentukan titik-titikdalam jarak yang sama di dalam interval [a; b], yaitu dengan menerapkan

ti = a+ i � h, i = 0; 1; :::; n

dimana h menyatakan jarak antar titik yang dirumuskan oleh

h =b� an

yang juga biasa dikenal sebagai lebar langkah (step size).

Berikutnya, turunan dalam persamaan diferensial diganti dengan suatu turunan nu-merik (diperkenalkan dalam bab sebelumnya). Untuk kesepakatan diperkenalkan singkatanyi = y (ti). Metode Euler menghampiri turunan pertama di t = ti dalam persamaan(9.1) dengan persamaan

y0i =dyidt� yi+1 � yiti+1 � ti

=yi+1 � yi

h:

Karena itu, pada saat t = ti, persamaan (9.1) dapat dituliskan sebagai

yi+1 � yih

� f (ti; yi) :

63

Page 70: Penjelasan Metode Numerik Lgkp

Bab 9. Persamaan Diferensial Biasa 64

Jadi, metode Euler mendapatkan barisan numerik fyigni=0 yang dinyatakan sebagai

y0 = �

yi+1 � yi + hf (ti; yi) , i = 0; 1; 2; :::; n� 1: (9.2)

Pengertian geometris untuk metode Euler diberikan dalam Gambar 9.1.

y

ty(ti)

ti ti+1

y(ti+1)y(ti) + h·f(ti,y(ti))

prediksi

eksakgalat

h

Gambar 9.1: Ilustrasi dari penurunan metode Euler.

Contoh 9.1 Selesaikan persamaan diferensial

y0 (t) = y (t)� t2 + 1, 0 � t � 2, y (0) = 0:5

menggunakan metode Euler dimana n = 10.

Penyelesaian. Dicari jarak antar titik dalam interval [0; 2] yaitu

h =2� 010

= 0:2,

sehingga dipunyai titik-titik diskrit yang dirumuskan oleh

ti = 0 + i (0:2) = (0:2) i, i = 0; 1; :::; 10;

yaitu

t0 = 0:0; t1 = 0:2; t2 = 0:4; t3 = 0:6; t4 = 0:8; t5 = 1:0;

t6 = 1:2; t7 = 1:4; t8 = 1:6; t9 = 1:8; t10 = 2:0:

Karena diketahui bahwa

f (t; y (t)) = y (t)� t2 + 1 dan y (0) = 0:5,

maka persamaan Euler dapat dinyatakan sebagai

y0 = 0:5;

yi+1 � yi + 0:2�yi � t2i + 1

�= 1:2yi � 0:2t2i + 0:2, i = 0; 1; 2; :::; 9:

Page 71: Penjelasan Metode Numerik Lgkp

Bab 9. Persamaan Diferensial Biasa 65

Penyelesaian pada saat i = 0:

y1 = y (0:2) � 1:2y0 � 0:2t20 + 0:2= 1:2 (0:5)� 0:2

�02�+ 0:2 = 0:8;

pada saat i = 1:

y2 = y (0:4) � 1:2y1 � 0:2t21 + 0:2= 1:2 (0:8)� 0:2

�0:22

�+ 0:2 = 1:152;

pada saat i = 2:

y3 = y (0:6) � 1:2y2 � 0:2t22 + 0:2= 1:2 (1:152)� 0:2

�0:42

�+ 0:2 = 1:5504;

dan seterusnya sampai pada i = 9:

y10 = y (2) � 1:2y9 � 0:2t29 + 0:2= 1:2 (1:5504)� 0:2

�0:82

�+ 0:2 = 4:8658;

Berikut ini dibuat program MatLab pdb_Euler yang menggunakan metode Euler untukmenyelesaikan persamaan diferensial (9.1).

function yt = pdb_Euler(f,t,y0,n)% pdb_Euler Menyelesaikan PDB tingkat satu menggunakan metode Euler, dimana% y�(t) = f(t,y), t = [a,b], y(a) = y0.% Input: f = fungsi turunan pertama dari y, f=inline(�(t,y)�,�t�,�y�)% t = vektor yang memuat ujung-ujung interval dari t% y0 = syarat awal% n = lebar langkah/ banyak subinterval dalam interval t% Output: yt = [t y(t)]

h = (t(2)-t(1))/n;tvek(1) = t(1);yvek(1) = y0;for i = 2:n+1

tvek(i) = tvek(i-1)+h;yvek(i) = yvek(i-1)+h*f(tvek(i-1),yvek(i-1)); % persamaan (9.2)

endyt(:,1) = tvek�; yt(:,2) = yvek�;

Dicatat bahwa metode Euler mempunyai galat yang sebanding dengan h. Terdapatdua modi�kasi sederhana pada metode Euler yang memberikan keakuratan lebih baik.Dua modi�kasi tersebut yaitu metode Heun dan metode titik tengah. Kedua metodeini mempunyai galat yang sebanding dengan h2. Metode Heun dikenal juga sebagaimetode prediktor-korektor.

Page 72: Penjelasan Metode Numerik Lgkp

Bab 9. Persamaan Diferensial Biasa 66

9.2 Metode Heun

Metode Heun memperbaiki taksiran turunan pertama dengan mengambil rata-rata darikedua turunan pada titik-titik ujung subinterval. Turunan di titik awal subinterval[ti; ti+1] yaitu

y0i = f (ti; yi) :

Sementara itu, taksiran untuk yi+1 dihitung menggunakan metode Euler:

yi+1 � yi + hf (ti; yi) (9.3)

yang selanjutnya digunakan untuk menaksir turunan di titik akhir subinterval:

y0i+1 = f (ti+1; yi+1) � f (ti + h; yi + hf (ti; yi)) :

Karena itu, diperoleh rata-rata turunan pertama di t = ti yaitu

y0i �f (ti; yi) + f (ti + h; yi + hf (ti; yi))

2: (9.4)

Jadi, metode Heun diperoleh dengan mengganti f (ti; yi) di persamaan (9.2) denganruas kanan dari persamaan (9.4):

y0 = �

yi+1 � yi +h

2[f (ti; yi) + f (ti + h; yi + hf (ti; yi))]

dengan i = 0; 1; 2; :::; n � 1. Di sini, persamaan (9.3) dinamakan prediktor dan per-samaan (9.4) dinamakan korektor. Pengertian geometris untuk metode Heun diberikandalam Gambar 9.2.

y

tti ti+1h

turunan=f(ti,y(ti))

turunan=f(ti+1,y(ti+1))

y

tti ti+1h

turunan = 0.5(f(ti,y(ti)) + f(ti+1,y(ti+1)))

(a) (b)

Gambar 9.2: Ilustrasi dari penurunan metode Heun.

Strategi dari metode Heun dinyatakan dalam Algoritma 7 dan diimplementasikan dalamfungsi MatLab pdb_Heun().

Contoh 9.2 Selesaikan persamaan diferensial

y0 (t) = y (t)� t2 + 1, 0 � t � 2, y (0) = 0:5

Page 73: Penjelasan Metode Numerik Lgkp

Bab 9. Persamaan Diferensial Biasa 67

Algorithm 7 Algoritma Metode HeunMasukan:

fungsi dari turunan pertama untuk y (t): f (t; y)interval dari t: [t0; tn]syarat awal: y0 = �banyak subinterval: n

Penghitungan Inti:

dihitung lebar langkah: h =b� an

untuk i = 0 : n� 1, dihitungti+1 = t0 + (i+ 1) � h;H1: y0i = f (ti; yi) ;H2: yi+1 = yi + hy0i;H3: y0i+1 = f (ti+1; yi+1) ;

H4: yi+1 = yi +h

2

�y0i + y

0i+1

�;

Hasil akhir: y1; y2; :::; yn

menggunakan metode Heun dengan lebar langkah h = 0:2.

Penyelesaian. Dicatat bahwa

t0 = 0:0; t1 = 0:2; t2 = 0:4; t3 = 0:6; t4 = 0:8; t5 = 1:0;

t6 = 1:2; t7 = 1:4; t8 = 1:6; t9 = 1:8; t10 = 2:0:

Strategi dari metode Heun dinyatakan oleh

y0 = 0:5;

H1 : y0i = yi � t2i + 1H2 : yi+1 � yi + 0:2y0iH3 : y0i+1 � yi+1 � t2i+1 + 1H4 : yi+1 � yi + 0:1

�y0i + y

0i+1

�dengan i = 0; 1; 2; :::; 9. Penyelesaian pada saat i = 0:

H1 : y00 = y0 (0) = y0 � 02 + 1 = 0:5 + 1 = 1:5

H2 : y1 = y (0:2) � y0 + 0:2y00 = 0:5 + 0:2 (1:5) = 0:8H3 : y01 = y0 (0:2) � y1 � 0:22 + 1 = 0:8� 0:04 + 1 = 1:76H4 : y1 = y (0:2) � y0 + 0:1

�y00 + y

01

�= 0:5 + 0:1 (3:26) = 0:8260;

pada saat i = 1:

H1 : y01 = y0 (0:2) = y1 � 0:22 + 1 = 0:8260� 0:04 + 1 = 1:786

H2 : y2 = y (0:4) � y1 + 0:2y01 = 0:8260 + 0:2 (1:786) = 1:1832H3 : y02 = y0 (0:4) � y2 � 0:42 + 1 = 1:1832� 0:16 + 1 = 2:0232H4 : y2 = y (0:4) � y1 + 0:1

�y01 + y

02

�= 0:8260 + 0:1 (3:8092) = 1:2069:

Page 74: Penjelasan Metode Numerik Lgkp

Bab 9. Persamaan Diferensial Biasa 68

pada saat i = 2:

H1 : y02 = y0 (0:4) = y2 � 0:42 + 1 = 1:2069� 0:16 + 1 = 2:0469

H2 : y3 = y (0:6) � y2 + 0:2y02 = 1:2069 + 0:2 (2:0469) = 1:6163H3 : y03 = y0 (0:6) � y3 � 0:62 + 1 = 1:6163� 0:36 + 1 = 2:2563H4 : y3 = y (0:6) � y2 + 0:1

�y02 + y

03

�= 1:2069 + 0:1 (4:3032) = 1:6372;

dan seterusnya sampai pada i = 9 yang diserahkan kepada pembaca sebagai latihan.H

function yt = pdb_Heun(f,t,y0,n)% pdb_Heun Menyelesaikan PDB tingkat satu menggunakan metode Heun% (prediktor-korektor), dimana% y�(t) = f(t,y), t = [a,b], y(a) = y0.% Input: f = fungsi turunan pertama dari y, f=inline(�(t,y)�,�t�,�y�)% t = vektor yang memuat ujung-ujung interval dari t% y0 = syarat awal% n = lebar langkah/ banyak subinterval dalam interval t% Output: yt = [t y(t)]

h = (t(2)-t(1))/n;tvek(1) = t(1);yvek(1) = y0;for i = 2:n+1

tvek(i) = tvek(i-1)+h;fi_1 = f(tvek(i-1),yvek(i-1)); % H1yi = yvek(i-1)+h*f(tvek(i-1),yvek(i-1)); %H2fi = f(tvek(i),yi); % H3yvek(i) = yvek(i-1)+h/2*(fi_1+fi); %H4

endyt(:,1) = tvek�; yt(:,2) = yvek�;

9.3 Metode Titik Tengah

y

tti ti+0.50.5h

turunan=f(ti+0.5,y(ti+0.5))

y

tti ti+1h

(a) (b)

turunan=f(ti+0.5,y(ti+0.5))

Gambar 9.3: Ilustrasi penurunan metode titik tengah.

Metode ini menggunakan metode Euler untuk memprediksi suatu nilai y di titik tengah

Page 75: Penjelasan Metode Numerik Lgkp

Bab 9. Persamaan Diferensial Biasa 69

dari subinterval [ti; ti+1]:

yi+ 12= y (ti) +

h

2f (ti; yi) :

Nilai prediksi tersebut digunakan untuk menghitung turunan di titik tengah:

y0i+ 1

2

= f�ti+ 1

2; yi+ 1

2

�:

Selanjutnya turunan tersebut digunakan untuk mengekstrapolasi secara linear dari tike ti+1:

yi+1 � y (ti) + h y0i+ 12

= yi + hf�ti+ 1

2; yi+ 1

2

�:

Pengertian geometris untuk metode Heun diberikan dalam Gambar 9.3.

Strategi dari metode titik tengah dinyatakan dalam Algoritma 8 dan diimplementasikandalam fungsi MatLab pdb_tengah().

Algorithm 8 Algoritma Metode Titik TengahMasukan:

fungsi dari turunan pertama untuk y (t): f (t; y)interval dari t: [t0; tn]syarat awal: y0 = �banyak subinterval: n

Penghitungan Inti:

dihitung lebar langkah: h =b� an

untuk i = 0 : n� 1, dihitungti+ 1

2= t0 +

�i+ 1

2

�� h;

ti+1 = t0 + (i+ 1) � h;T1: yi+ 1

2= yi +

h

2f (ti; yi) ;

T2: y0i+ 1

2

= f�ti+ 1

2; yi+ 1

2

�;

T3: yi+1 � yi + hy0i+ 12

;

Hasil akhir: y1; y2; :::; yn

Contoh 9.3 Selesaikan persamaan diferensial

y0 (t) = y (t)� t2 + 1, 0 � t � 2, y (0) = 0:5

menggunakan metode titik tengah dengan lebar langkah h = 0:2.

Penyelesaian. Dicatat bahwa

t0 = 0:0; t1 = 0:2; t2 = 0:4; t3 = 0:6; t4 = 0:8; t5 = 1:0;

t6 = 1:2; t7 = 1:4; t8 = 1:6; t9 = 1:8; t10 = 2:0:

Page 76: Penjelasan Metode Numerik Lgkp

Bab 9. Persamaan Diferensial Biasa 70

Strategi dari metode titik tengah dinyatakan oleh

y0 = 0:5;

T1 : yi+ 12= yi + 0:1

�yi � t2i + 1

�= 1:1yi � 0:1t2i + 0:1

T2 : y0i+ 1

2

= yi+ 12� t2

i+ 12

+ 1

T3 : yi+1 � yi + 0:2y0i+ 12

dengan i = 0; 1; 2; :::; 9. Penyelesaian pada saat i = 0:

T1 : y 12= y (0:1) = 1:1y0 � 0:1

�02�+ 0:1 = 1:1(0:5) + 0:1 = 0:65

T2 : y012

= y0 (0:1) = y 12� 0:12 + 1 = 0:65� 0:01 + 1 = 1:64

T3 : y1 = y (0:2) � y0 + 0:2y012

= 0:5 + 0:2 (1:64) = 0:828

pada saat i = 1:

T1 : y 32= y (0:3) = 1:1y1 � 0:1

�0:22

�+ 0:1 = 1:1 (0:828)� 0:096 = 1:0068

T2 : y032

= y0 (0:3) = y 32� 0:32 + 1 = 1:0068� 0:91 = 1:9168

T3 : y2 = y (0:4) � y1 + 0:2y032

= 0:828 + 0:2 (1:9168) = 1:2114;

pada saat i = 2 :

T1 : y 52= y (0:5) = 1:1y2 � 0:1

�0:42

�+ 0:1 = 1:1 (1:2114)� 0:084 = 1:4165

T2 : y052

= y0 (0:5) = y 52� 0:52 + 1 = 1:4165 + 0:75 = 2:1665

T3 : y3 = y (0:6) � y2 + 0:2y052

= 1:2114 + 0:2 (2:1665) 1:6447;

dan seterusnya sampai pada i = 9 yang diserahkan kepada pembaca sebagai latihan.H

function yt = pdb_tengah(f,t,y0,n)% pdb_tengah Menyelesaikan PDB tingkat satu menggunakan metode titik% tengah, dimana% y�(t) = f(t,y), t = [a,b], y(a) = y0.% Input: f = fungsi turunan pertama dari y, f=inline(�(t,y)�,�t�,�y�)% t = vektor yang memuat ujung-ujung interval dari t% y0 = syarat awal% n = lebar langkah/ banyak subinterval dalam interval t% Output: yt = [t y(t)]

h = (t(2)-t(1))/n;tvek(1) = t(1);yvek(1) = y0;for i = 2:n+1

tgh = tvek(i-1)+1/2*h;tvek(i) = tvek(i-1)+h;ymid = yvek(i-1)+h/2*f(tvek(i-1),yvek(i-1)); % T1fmid = f(tgh,ymid); %T2yvek(i) = yvek(i-1)+h*fmid; %T3

end

Page 77: Penjelasan Metode Numerik Lgkp

Bab 9. Persamaan Diferensial Biasa 71

yt(:,1) = tvek�; yt(:,2) = yvek�;

9.4 Metode Runge-Kutta

Metode Euler, Heun, dan titik tengah merupakan versi-versi dari suatu klas besarpendekatan satu langkah yang dinamakan metode Runge-Kutta. Metode Runge-Kuttamencapai keakuratan dari suatu pendekatan Taylor tanpa memerlukan turunan-turunantingkat tinggi. Bentuk umumnya adalah

y0 = �

yi+1 = yi + hF (ti; yi;h)

dengan i = 0; 1; 2; :::. Fungsi F dinamakan fungsi kenaikan yang dapat dituliskan dalambentuk

F = a1k1 + a2k2 + � � �+ amkmdimana m dinamakan orde dari metode Runge-Kutta, ai adalah konstanta dan

k1 = f (ti; yi) ;

k2 = f (ti + p1h; yi + q11k1h) ;

k3 = f (ti + p2h; yi + q21k1h+ q22k2h) ;

...

km = f (ti + pm�1h; yi + qm�1;1k1h+ qm�1;2k2h+ � � �+ qm�1;m�1km�1h) :

Nilai-nilai ai, pi, dan qij untuk suatu ordem dicari dengan cara menyamakan persamaantersebut dengan ekspansi deret Taylor orde m.

Metode Runge-Kutta orde 1 tidak lain adalah metode Euler. Serupa dengan itu, metodeHeun adalah suatu contoh dari metode Runge-Kutta orde 2. Metode Runge-Kutta orde4 adalah satu dari metode yang banyak digunakan untuk menyelesaikan persamaandiferensial. Metode ini mempunyai suatu galat pemotongan yang sebanding denganh4. Algoritmanya digambarkan seperti berikut ini dan diimplementasikan dalam fungsiMatLab pdb_RK4.

yi+1 = yi +h

6(k1 + 2k2 + 2k3 + k4) , i = 0; 1; :::; n� 1

dimana

k1 = f (ti; yi) ;

k2 = f

�ti +

h

2; yi +

h

2k1

�;

k3 = f

�ti +

h

2; yi +

h

2k2

�;

k4 = f (ti + h; yi + hk3) :

Page 78: Penjelasan Metode Numerik Lgkp

Bab 9. Persamaan Diferensial Biasa 72

Contoh 9.4 Selesaikan persamaan diferensial

y0 (t) = y (t)� t2 + 1, 0 � t � 2, y (0) = 0:5

menggunakan metode Runge-Kutta orde 4 dengan lebar langkah h = 0:2.

Penyelesaian. Dinyatakan bahwa

f (t; y (t)) = y (t)� t2 + 1,

dan

t0 = 0:0; t1 = 0:2; t2 = 0:4; t3 = 0:6; t4 = 0:8; t5 = 1:0;

t6 = 1:2; t7 = 1:4; t8 = 1:6; t9 = 1:8; t10 = 2:0:

Untuk menghitung y1 = y (0:2), dimana i = 0, tahap-tahap penghitungannya dimulaidari menghitung k1 sampai k5:

k1 = f (t0; y0) = f (0; 0:5) = 0:5� 02 + 1 = 1:5;k2 = f (t0 + 0:1; y0 + 0:1k1) = f (0:1; 0:65) = 0:65� 0:12 + 1 = 1:64;k3 = f (t0 + 0:1; y0 + 0:1k2) = f (0:1; 0:664) = 0:664� 0:12 + 1 = 1:654;k4 = f (t0 + 0:2; y0 + 0:2k3) = f (0:2; 0:8308) = 0:8308� 0:22 + 1 = 1:7908;

sehingga akhirnya diperoleh

y1 = y (0:2) = y0 +0:2

6(1:5 + 2 � 1:64 + 2 � 1:654 + 1:7908) = 0:8293:

Dengan cara yang sama, y (0:4), :::, y (2) dapat dihitung dan diserahkan kepada pem-baca sebagai latihan. H

Perbandingan hasil dari metode Runge-Kutta orde 4 dengan metode Euler, metodeHeun, dan metode titik tengah untuk contoh di atas diberikan dalam Tabel 9.1. Dicatatbahwa penyelesaian eksak dari persamaan diferensial adalah

y (t) = (t+ 1)2 � 12et

Dari tabel tersebut ditunjukkan bahwa metode Runge-Kutta orde 4 adalah yang ter-baik, sedangkan metode Euler adalah yang paling buruk. Selain itu, dari tabel jugadapat dilihat bahwa metode titik tengah lebih baik daripada metode Heun.

function yt = pdb_RK4(f,t,y0,n)% pdb_RK4 Menyelesaikan PDB tingkat satu menggunakan metode Runge-Kutta% orde 4, dimana% y�(t) = f(t,y), t = [a,b], y(a) = y0.% Input: f = fungsi turunan pertama dari y, f=inline(�(t,y)�,�t�,�y�)% t = vektor yang memuat ujung-ujung interval dari t% y0 = syarat awal% n = lebar langkah/ banyak subinterval dalam interval t% Output: yt = [t y(t)]

h = (t(2)-t(1))/n;

Page 79: Penjelasan Metode Numerik Lgkp

Bab 9. Persamaan Diferensial Biasa 73

Tabel 9.1: Perbandingan hasil dari metode-metode penyelesaian untuk persamaan dife-rensial y0 (t) = y (t)� t2 + 1, 0 � t � 2, y (0) = 0:5.

yiti Euler Heun Titik Runge-Kutta Eksak

Tengah orde 4

0:0 0:5000 0:5000 0:5000 0:5000 0:5000

0:2 0:8000 0:8260 0:8280 0:8293 0:8293

0:4 1:1520 1:2069 1:2114 1:2141 1:2141

0:6 1:5504 1:6372 1:6447 1:6489 1:6489

0:8 1:9885 2:1102 2:1213 2:1272 2:1272

1:0 2:4582 2:6177 2:6332 2:6408 2:6409

1:2 2:9498 3:1496 3:1705 3:1799 3:1799

1:4 3:4518 3:6937 3:7212 3:7323 3:7324

1:6 3:9501 4:2351 4:2706 4:2834 4:2835

1:8 4:4282 4:7556 4:8010 4:8151 4:8152

2:0 4:8658 5:2331 5:2904 5:3054 5:3055

tvek(1) = t(1);yvek(1) = y0;for i=2:n+1

tvek(i) = tvek(i-1)+h;k1 = f(tvek(i-1),yvek(i-1));k2 = f(tvek(i-1)+0.5*h,yvek(i-1)+0.5*k1*h);k3 = f(tvek(i-1)+0.5*h,yvek(i-1)+0.5*k2*h);k4 = f(tvek(i),yvek(i-1)+k3*h);yvek(i) = yvek(i-1)+(k1+2*k2+2*k3+k4)*h/6;

endyt(:,1) = tvek�; yt(:,2) = yvek�;

Page 80: Penjelasan Metode Numerik Lgkp

Bab 10

Integrasi Numerik

Tujuan Pembelajaran:� Mendapatkan rumus hampiran untuk menghitung integral dari suatu fungsi atas interval terbatas.� Mengetahui aturan yang memberikan hasil lebih dekat dengan hasil sebenarnya.

Pada bab ini kita tertarik untuk menghitung integral

I =

Z b

af (x) dx

untuk f (x) 2 R (dan tentu saja x 2 R). Bentuk umum integrasi numerik dari suatufungsi f (x) atas suatu interval [a; b] adalah suatu jumlahan berbobot dari nilai-nilaifungsi di berhingga (n+ 1) titik-titik diskrit, dan dinamakan kuadratur (quadrature):Z b

af (x) dx =

nXi=0

wi � f (xi)

dengan a = x0 < x1 < � � � < xn = b. Dalam kedua subbab berikut ini akan ditu-runkan empat bentuk persamaan integral numerik yang dikenal sebagai rumus eksplisitNewton-Cotes. Rumus ini ini didasarkan pada strategi penggantian fungsi f (x) dengansuatu hampiran fungsi fm (x) yang lebih mudah diintegralkan. Fungsi fm (x) tersebutadalah suatu polinomial derajat m.

10.1 Aturan Trapesium

Aturan ini didasarkan pada interpolasi linear dari fungsi f (x) pada [xi�1; xi] untuksetiap i = 1; 2; :::; n. Jadi, pada setiap subinterval, hampiran untuk

R xixi�1

f (x) dxdiberikan oleh luas bidang datar trapesium, lihat Gambar 10.1:Z xi

xi�1

f (x) dx � 1

2[f (xi) + f (xi�1)] (xi � xi�1) =

h

2[f (xi�1) + f (xi)] : (10.1)

Dicatat bahwa h = xi � xi�1 =b� an. Diaplikasikan (10.1) untuk i = 1 sampai i = n,

dipunyai Z b

af (x) dx � T (n) = h

2

nXi=1

[f (xi�1) + f (xi)] ;

74

Page 81: Penjelasan Metode Numerik Lgkp

Bab 10. Integrasi Numerik 75

dan jika jumlahan diekspansikan maka diperoleh

T (n) =h

2[f (x0) + 2f (x1) + 2f (x2) + � � � 2f (xn�1) + f (xn)]

=h

2

"f (x0) + 2

n�1Xi=1

f (xi) + f (xn)

#: (10.2)

Dicatat bahwa aturan trapesium mempunyai galat pemotongan yang sebanding denganh3.

xx0 xnx1 x2 x3 xn­1xn­2

. . .f(x)

f(x0)f(x1)

f(x2)f(x3) f(xn­2)

f(xn­1)f(xn)

Gambar 10.1: Ilustrasi dari aturan trapesium.

Contoh 10.1 Hitung luas bidang datar yang dibatasi oleh y = 2x3 dan sumbu x untukx 2 [0; 1] dengan menggunakan aturan trapesium dan lebar langkah h = 0:1.

Penyelesaian. Diperoleh tabel

x 0 0:1 0:2 0:3 0:4 0:5 0:6 0:7 0:8 0:9 1

f (x) 0 0:002 0:016 0:054 0:128 0:25 0:432 0:686 1:024 1:458 2

Jadi,

T (10) =

Z 1

02x3 dx

� 0:1

2[0 + 2 (0:002 + 0:016 + � � �+ 1:024 + 1:458) + 2] = 0:505:

Secara kalkulus,

L =

Z 1

02x3 dx =

�1

2x4�10

= 0:5:

Dengan h = 0:1 ternyata terjadi kesalahan e = j0:505� 0:5j = 0:005.

Rumus integrasi menggunakan aturan trapesium diimplementasikan dalam fungsi Mat-Lab trapesium().

function Tn = trapesium(f,x,n)% trapesium Menyelesaikan integral f(x) atas interval [a,b] menggunakan% aturan trapesium dengan n subinterval% Input: f = fungsi yang diintegralkan% x = vektor [a b]% n = lebar langkah/ banyak subinterval dalam interval x% Output: Tn = luas bidang datar yang dibatasi oleh f(x) dan sumbu x dalam

Page 82: Penjelasan Metode Numerik Lgkp

Bab 10. Integrasi Numerik 76

% interval [a,b]h = (x(2)-x(1))/n;xvek = x(1):h:x(2);yvek = f(xvek); % nilai f untuk semua titik diskritTn = h/2*(yvek(1)+sum(yvek(2:n))+yvek(n+1)); % persamaan(10.2)

10.2 Aturan-aturan Simpson

Taksiran yang lebih akurat dari suatu integral diperoleh jika polinomial derajat tinggidigunakan untuk menghubungkan titik-titik diskrit. Rumus-rumus yang dihasilkan de-ngan pengambilan integral dari polinomial tersebut dinamakan aturan-aturan Simpson.

Pertama kali akan digunakan suatu polinomial derajat dua untuk mencocokkan titik-titik (xi�1; f (xi�1)), (xi; f (xi)), dan (xi+1; f (xi+1)). Dide�nisikan polinomial derajatdua

Pi�1 (x) = a (x� xi)2 + b (x� xi) + c: (10.3)

Dicatat bahwa subskrip (i� 1) di sini tidak menyatakan derajat dari polinomial, tetapimenyatakan titik ujung kiri dari interval [xi�1; xi+1] dimana kita mencocokkan polino-mial derajat dua. Untuk kesepakatan diperkenalkan singkatan yi = f (xi). Oleh karenaitu, dari (10.3) kita membentuk tiga persamaan dalam a, b, c:

a (xi�1 � xi)2 + b (xi�1 � xi) + c = yi�1;

a (xi � xi)2 + b (xi � xi) + c = yi;

a (xi+1 � xi)2 + b (xi+1 � xi) + c = yi+1:

Ini adalah suatu sistem persamaan linear, dan kita akan mengasumsikan bahwa h =xi � xi�1 = xi+1 � xi, sehingga

a =yi+1 � 2yi + yi�1

2h2;

b =yi+1 � yi�1

2h;

c = yi:

Diintegralkan polinomial derajat dua (10.3) dari x = xi�1 sampai x = xi+1 dengankoe�sien-koe�sien tersebut menghasilkan hampiranZ xi+1

xi�1

f (x) dx �Z xi+1

xi�1

Pi�1 (x) dx =

Z xi+1

xi�1

ha (x� xi)2 + b (x� xi) + c

idx

=

�1

3a (x� xi)3 +

1

2b (x� xi)2 + cx

�xi+1xi�1

=2

3ah3 + 2ch

=2h

3

�yi+1 � 2yi + yi�1

2+ 3yi

�=h

3(yi�1 + 4yi + yi+1) :

Seperti dalam bagian sebelumnya, kita ingin mengintegralkan f (x) pada [a; b]. Jadi,seperti sebelumnya, a = x0 dan b = xn. Jika n adalah suatu bilangan genap, makabanyaknya subinterval dalam [a; b] adalah suatu bilangan genap, dan karena itu kita

Page 83: Penjelasan Metode Numerik Lgkp

Bab 10. Integrasi Numerik 77

mempunyai hampiran

I =

Z b

af (x) dx

�Z x2

x0

P0 (x) dx+

Z x4

x2

P2 (x) dx+ � � �+Z xn

xn�2

Pn�2 (x) dx

=h

3(y0 + 4y1 + 2y2 + 4y3 + 2y4 + � � �+ 2yn�2 + 4yn�1 + yn)

Dengan menggunakan notasi jumlahan, dari persamaan terakhir kita memperoleh at-uran 1

3 -Simpson:

S3 (n) =h

3

0@y0 + 412nX

i=1

y2i�1 + 2

12n�1Xi=1

y2i + yn

1A : (10.4)

Dicatat bahwa aturan 13 -Simpson mempunyai galat pemotongan yang sebanding dengan

h5.

Rumus integrasi menggunakan aturan 13 -Simpson diimplementasikan dalam fungsi Mat-

Lab Simpson3().

function S3n = Simpson3(f,x,n)% Simpson3 Menyelesaikan integral f(x) atas interval [a,b] menggunakan% aturan 1/3-Simpson dengan n subinterval% Input: f = fungsi yang diintegralkan% x = vektor [a b]% n = lebar langkah/ banyak subinterval dalam interval x% Output: S3n = luas bidang datar yang dibatasi oleh f(x) dan sumbu x dalam% interval [a,b]h = (x(2)-x(1))/n;xvek = x(1):h:x(2);yvek = f(xvek); % nilai f untuk semua titik diskritS3n = h/3*(yvek(1)+4*sum(yvek(2:2:n))+2*sum(yvek(3:2:n-1))+yvek(n+1)); % persamaan(10.4)

Selanjutnya, jika digunakan suatu polinomial derajat tiga untuk mencocokkan titik-titik (xi�1; f (xi�1)), (xi; f (xi)), (xi+1; f (xi+1)), dan (xi+2; f (xi+2)), maka dengancara yang sama seperti sebelumnya akan diperoleh hampiran

I =

Z xi+2

xi�1

f (x) dx � 3h

8(yi�1 + 3yi + 3yi+1 + yi+2) :

Jika n adalah suatu bilangan kelipatan tiga, maka kita mempunyai hampiran

I =

Z b

af (x) dx

�Z x3

x0

P0 (x) dx+

Z x6

x3

P3 (x) dx+ � � �+Z xn

xn�3

Pn�3 (x) dx

=3h

8(y0 + 3y1 + 3y2 + 2y3 + 3y4 + 3y5 + 2y6 + � � �+ 2yn�3 + 3yn�2 + 3yn�1 + yn) :

Page 84: Penjelasan Metode Numerik Lgkp

Bab 10. Integrasi Numerik 78

Dengan menggunakan notasi jumlahan, dari persamaan terakhir kita memperoleh atur-an 3

8 -Simpson:

S4 (n) =3h

8

0@y0 + 313nX

i=1

(y3i�2 + y3i�1) + 2

13n�1Xi=1

y3i + yn

1A : (10.5)

Dicatat bahwa aturan 38 -Simpson juga mempunyai galat pemotongan yang sebanding

dengan h5.

Rumus integrasi menggunakan aturan 38 -Simpson diimplementasikan dalam fungsi Mat-

Lab Simpson4().

function S4n = Simpson4(f,x,n)% Simpson4 Menyelesaikan integral f(x) atas interval [a,b] menggunakan% aturan 3/8-Simpson dengan n subinterval% Input: f = fungsi yang diintegralkan% x = vektor [a b]% n = lebar langkah/ banyak subinterval dalam interval x% Output: S4n = luas bidang datar yang dibatasi oleh f(x) dan sumbu x dalam% interval [a,b]h = (x(2)-x(1))/n;xvek = x(1):h:x(2);yvek = f(xvek); % nilai f untuk semua titik diskritsum1 = sum(yvek(2:3:n-1));sum2 = sum(yvek(3:3:n));sum3 = sum(yvek(4:3:n-2));S4n = 3*h/8*(yvek(1)+3*(sum1+sum2)+2*sum3+yvek(n+1)); % persamaan(10.5)

Terakhir, jika digunakan suatu polinomial derajat empat untuk mencocokkan titik-titik(xi�1; f (xi�1)), (xi; f (xi)), (xi+1; f (xi+1)), (xi+2; f (xi+2)), dan (xi+3; f (xi+3)), makadengan cara yang sama seperti sebelumnya akan diperoleh hampiran

I =

Z xi+3

xi�1

f (x) dx � 2h

45(7yi�1 + 32yi + 12yi+1 + 32yi+2 + 7yi+3) :

Jika n adalah suatu bilangan kelipatan empat, maka kita mempunyai hampiran

I =

Z b

af (x) dx

�Z x4

x0

P0 (x) dx+

Z x8

x4

P4 (x) dx+ � � �+Z xn

xn�4

Pn�4 (x) dx

=2h

45(7y0 + 32y1 + 12y2 + 32y3 + 14y4 + 32y5 + 12y6 + 32y7 + 14y8 + � � �

14yn�4 + 32yn�3 + 12yn�2 + 32yn�1 + 7yn) :

Dengan menggunakan notasi jumlahan, dari persamaan terakhir kita memperoleh atur-an 2

45 -Simpson:

S4 (n) =2h

45

0@7y0 +14nX

i=1

(32y4i�3 + 12y4i�2 + 32y4i�1) + 14

14n�1Xi=1

y4i + 7yn

1A : (10.6)

Page 85: Penjelasan Metode Numerik Lgkp

Bab 10. Integrasi Numerik 79

Dicatat bahwa aturan 245 -Simpson mempunyai galat pemotongan yang sebanding den-

gan h7.

Rumus integrasi menggunakan aturan 245 -Simpson diimplementasikan dalam fungsi

MatLab Simpson5().

function S5n = Simpson5(f,x,n)% Simpson5 Menyelesaikan integral f(x) atas interval [a,b] menggunakan% aturan 2/45-Simpson dengan n subinterval% Input: f = fungsi yang diintegralkan% x = vektor [a b]% n = lebar langkah/ banyak subinterval dalam interval x% Output: S4n = luas bidang datar yang dibatasi oleh f(x) dan sumbu x dalam% interval [a,b]h = (x(2)-x(1))/n;xvek = x(1):h:x(2);yvek = f(xvek); % nilai f untuk semua titik diskritsum1 = sum(yvek(2:4:n-2));sum2 = sum(yvek(3:4:n-1));sum3 = sum(yvek(4:3:n));sum4 = sum(yvek(5:3:n-3));S5n = 2*h/45*(7*yvek(1)+32*sum1+12*sum2+32*sum3+14*sum4+7*yvek(n+1)); % pers.(10.6)

Page 86: Penjelasan Metode Numerik Lgkp

DAFTAR PUSTAKA

[1] Pav, S.E. (2005). Numerical Methods Course Notes. Naskah, Department of Math-ematics, University of California.

[2] Steven, C.C. and Raymond, P.C. (1991). Metode Numerik untuk Teknik: denganPenerapan pada Komputer Pribadi, penerjemah: S. Sardy dan pendamping: Lam-yarni I.S., Universitas Indonesia.

[3] Subakti, I. (2003). Metode Numerik. Naskah, Jurusan Teknik Informatika ITS.

[4] Suparno, S. (2008).Komputasi untuk Sains dan Teknik. Naskah, Departemen Fisika-FMIPA UI.

[5] Yang, W.Y., et al. (2005). Applied Numerical Methods using MATLAB. John Wiley& Sons, Inc.

[6] Zarowski, C.J. (2004). An Introduction to Numerical Analysis for Electrical andComputer Engineers. John Wiley & Sons, Inc.

80