Modul Praktikum Metode Numerik
Modul Praktikum Metode Numerik
Metode Numerik
DAFTAR ISI
Daftar
Isi ............................................................................................
................2
Pengenalan
Matlab......................................................................................
...
3
Pemrograman Sederhana dengan
Matlab................................
6
Chapter 1. Error Perhitungan
Numerik.................................................. 19
Chapter 2. Penyelesaian Persamaan Non
Linear ...............................
24
Metode Grafik dan
Tabulasi ........................................................... 24
Metode
Biseksi ....................................................................................
31
Metode Newton
Rhapson ............................................................... 38
Metode
Secant ....................................................................................
40
Metode Regula
Falsi .........................................................................44
Chapter 3. Penyelesaian Persamaan Differensial
Biasa ..................
50
Metode
Euler .......................................................................................
50
Metode Runge
Kutta ........................................................................
53
71
71
66
Pengenalan Matlab
SEKILAS MATLAB
Fasilitas-fasilitas pada MATLAB :
1. Current Directory
Path Browser memungkinkan Anda melihat dan mengubah alamat Pencarian
MATLAB (alamat tempat MATLAB mencari file-file yang diperlukan )
3. M-File editor/Debuger
Digunakan untuk menuliskan program berupa fungsi-fungsi dan disimpan
sesuai dengan nama fungsinya dan dapat dilakukan eksekusi program. M-File
dapat diaktifkan dengan mengklik File New M-File .
4. Command Windows
Command windows dapat digunakan seperti kalkulator dan juga dapat untuk
menuliskan operasi-operasi matematika, seperti operasi-operasi matriks,
polinomial, dan yang berhubungan dengan image prosessing.
Matematika Sederhana
Seperti sebuah kalkulator, MATLAB mengerjakan matematika sederhana.
Contoh : 5 + 4 = 9
Pi = 3.14
4 x 25 + 6 x 52 + 2 x 99 = 610
Apabila dikerjakan dengan Matlab :
Simbol
+
Contoh
5+3
23 12
Perkalian, a x b
3.14 * 5
Pembagian, a : b
/ atau \
6/3 = 3\6
Pemangkatan, ab
5^2
Variabel
MATLAB mempunyai aturan penamaan variabel yaitu :
semuanya
Nama
dengan
variabel
variabel
harus
diawali
berbeda
huruf,
diikuti
dengan
adalah
tanda
baca
tidak
diperbolehkan.
dan
ITEMS
yang
PENDAHULUAN
Variabel
Nama yang diberikan untuk mewakili suatu data, baik berupa masukan data
atau merupakan hasil perhitungan aturan penulisan variabel:
1. harus diawali dengan huruf
2. tidak boleh mengandung spasi dan tanda baca (karakter khusus)
3. tidak boleh menggunakan key words
4. dibedakan antara huruf besar dan huruf kecil, misalnya: Nama, NAMA,
NamA, NaMa, dsb. merupakan variabel yang berbeda.
Input Data
Terdapat dua cara untuk memasukkan data yaitu:
a. inisialisasi data, dimana data diberikan secara langsung pada saat
pembuatan program
Bentuk umum:
variabel = ekspresi
b. menggunakan perintah input, dimana data diberikan pada saat program dirunning.
Bentuk umum:
variabel = input(text) numerik dan string
atau
variabel = input(text, s) string
pada layar akan tampil apa yang tertulis di antara tanda petik (text),menanti
masukan data yang diikuti dengan menekan enter melalui keyboard.
Contoh berikut ini menampilkan program perhitungan sederhana
dimanalangkah memasukkan data dilakukan dengan menggunakan kedua
cara: tersebut. Kedua contoh tersebut dijalankan pada layar utama Matlab
yang
disebut command window.
Contoh : Perhitungan luas segitiga L = 0.5 x a x t dengan cara inisialisasi
data
Contoh Perhitungan luas Segi Tiga A = 0.5 x a x t dengan cara input data.
Bila ingin menampilkan nilai dari suatu variable disp(A) dimana A adalah
variabel; hasil yang ditampilkan adalah nilai yang tersimpan dalam variabel A
tersebut.
Contoh :
>> A = 30
A =
30
>> disp(A)
30
Bila ingin menampilkan teks atau string4hasil yang ditampilkan adalah apa
yang tertulis di antara tanda petik.
Contoh :
>> x = 45
x =
45
>> disp ([ 'Nilai sudut salah satu segitiga adalah =',num2str(x)
,'disebut segitiga siku-siku'])
Nilai sudut salah satu segitiga adalah = 45 disebut segitiga
siku-siku
Contoh : Input data x, y, dan z pada contoh di atas yang ditulis dalam 3 baris
program dapat digabungkan menjadi 1 baris program dengan salah satu cara
berikut:
>> x = 1, y = 2, z = 3
x =
1
y =
2
z =
3
>> x = 1; y = 2; z = 3
z =
3
>> x = 1; y = 2; z = 3;
>>
Pemberian Komentar
Pemberian komentar diawali dengan tanda persen % merupakan
pernyataan atau komentar atau keterangan atau catatan.
Tujuannya adalah untuk memberi keterangan agar lebih mudah memahami
maksud suatu bagian program.
Sejauh ini, semua pekerjaan dilakukan melalui sebuah layar yang disebut
command window dimana perintah dapat dieksekusi secara langsung satu
per satu. Ada pula layar lain yang dapat menyimpan semua perintah yang
dibuat untuk kemudian dieksekusi secara keseluruhan. Layar tersebut adalah
layar M-File.
Contoh :
Perhitungan Luas persegi panjang :
L = p x l, L = Luas persegi panjang, l = lebar , p = panjang
Fungsi di atas diketik dalam layer m.file, harus disimpan sesuai nama
fungsinya yaitu luassegitigasiku dalam direktori.
Bila akan menjalankan fungsi tersebut m.file buka nama fungsi
luassegitigasiku kemudian klik menu debug > run, kemudian dalam
command windows kita masukkan nilai alas dan tingginya. Misalnya palas a
= 10 dan tinggi t = 20, maka penulisan & hasil dalam command windows
adalah :
>> luassegitigasiku(10,20)
ans =
100
1. Skalar
Di dalam Matlab, skalar adalah sebuah data dengan satu baris dan
satu
kolom. Variabel-variabel yang memuat data skalar tersebut dapat mengalami
operasi penjumlahan, pengurangan, perkalian, dan pembagian.
2. Vektor
Di dalam Matlab, vektor adalah sekumpulan data yang membentuk
hanya satu baris atau satu kolom.
Penulisan elemen dilakukan di dalam kurung siku [ ] yang diantarai dengan
spasi atau titik koma. Pengecualian berlaku hanya untuk penulisan data yang
berbentuk deret dengan pola tertentu.
Vektor dapat mengalami operasi dengan skalar atau dengan vektor lain
asalkan mempunyai dimensi yang sama.
Contoh : Vektor dan Operasinya
(i) Bentuk deret sederhana
Bentuk umum penulisan data dengan pola tertentu atau deret yang
sederhana:
11
>> a = 1:5
a =
1
2
>> a = [1:5]
a =
1
2
ans =
1
10
>> 1:2:10
ans =
1
>> 0:2:10
ans =
0
10
12
baris
3. Matriks
13
5
3
6
5
>> D=A-B
D =
-2
0
-1
-1
0
1
ans =
18 12
18 12
4. Pengalamatan
14
27
27
x =
x =
64
15
>> x = [1 2 3];
y = [4 5 6];
sum = 0;
for i = 1:3
sum = sum + x(i)*y(i)
end
sum =
4
sum =
14
sum =
32
2. Loop while
Bentuk umum:
while while_expression
perintah-perintah
end
Operator relasi yang didefinisikan sebagai berikut:
> lebih besar >= lebih besar atau sama dengan
< lebih kecil <= lebih kecil atau sama dengan
== sama -= tidak sama
contoh :
n = 1;
x = 0;
while x <15
x(n) = n^2;
n = n+1;
end
>> x
x =
16
16
3. If-Statement
Bentuk umum:
if if_ekspresi
perintah-perintah
end
Contoh :
Di sebuah toko kue, harga kue per toples adalah Rp. 25.000
Apabila membeli minimal 4 toples akan mendapatkan potongan 10%
Harga = input('Harga 1 toples kue =');
Cacah_Kue = input('Berapa toples kue yang dibeli??? =');
if Cacah_Kue >= 4
bayar = ((Cacah_Kue*Harga)-(Cacah_Kue*Harga*0.01))
else
bayar =Cacah_Kue*Harga
end
Program ditulis dalam m.file, disimpan dengan nama kue.m
Apabila di_run hasilnya adalah:
Harga 1 toples kue =25000
Berapa toples kue yang dibeli??? =3
bayar =
75000
Harga 1 toples kue =25000
Berapa toples kue yang dibeli??? =4
bayar =
99000
Jika terdapat 3 atau lebih pilihan, konstruksi if-else-end mengambil bentuk:
if if_ekspresi1
perintah dikerjakan jika if_ekspresi1 benar
elseif if_ekspresi2
perintah dikerjakan jika if_ekspresi2 benar
elseif if_ekspresi3
perintah dikerjakan jika if_ekspresi3 benar
17
elseif if_ekspresi4
perintah dikerjakan jika if_ekspresi4 benar
elseif
else
perintah dikerjakan jika tidak ada if_ekspresi yang benar
end
Contoh:
Untuk menentukan nilai akhir mahasiswa, untuk setiap mata kuliah diadakan
ujian
kompetensi
dasar
(KD)
sebanyak
4
kali.
KD1 KD2 K 3 D 4
4
, Jika Nilai akhir >80 memperoleh A, jika
70 Nilai _ Akhir 80 , nilai B, Jika 60 Nilai _ Akhir 70 nilai C, jika
Nilai _ Akhir
=
=
=
=
input('Masukkan
input('Masukkan
input('Masukkan
input('Masukkan
nilai
nilai
nilai
nilai
KD
KD
KD
KD
1
2
3
4
sekala
sekala
sekala
sekala
100,
100,
100,
100,
KD
KD
KD
KD
1
2
3
4
=');
=');
=');
=');
NA = (KD1+KD2+KD3+KD4)/4
if NA >= 80
ket = 'A'
else if 70 <= NA & NA < 80
ket = 'B'
else if 60 <= NA & NA < 70
ket = 'C'
else if 50 <= NA & NA < 60
ket = 'D'
else
ket = 'E'
end
end
end
end
end
Masukkan nilai KD 1 sekala 100, KD 1 =80
Masukkan nilai KD 2 sekala 100, KD 2 =78
Masukkan
nilai
KD 3 sekala
100, KD
3 =79
Program
di atas
disimpan
dalam format
m.file
dengan nama nilai.m. apabila
Masukkan nilai KD 4 sekala 100, KD 4 =79
di run hasilnya adalah:
NA =
79
ket =
B
18
4. Switch-case-otherwise
Bentuk umum:
switch ekspresi
case ekspresi1
perintah-perintah
case ekspresi2
perintah-perintah
case
.
.
otherwise
perintah-perintah
end
disp('1. Newton')
disp('2. Regula Falsi')
disp('3. Newton Raphson')
n = input('Metoda yang dipilih (masukkan nomor urutnya saja) =
');
switch n
case (1), disp('Metode Newton')
case (2), disp('Metode Regula Falsi')
case (3), disp('Metode Newton Raphson')
otherwise
disp('Metode tersebut belum dimasukkan dalam daftar')
end
Program tersebut ditulis dalam m.file dan diberi nama pilihan.m, apabila di
run hasilnya adalah :
>> 1. Newton
2. Regula Falsi
3. Newton Raphson
Metoda yang dipilih (masukkan nomor urutnya saja) = 2
Metode Regula Falsi
19
20
Chapter 1
ERROR PERHITUNGAN NUMERIK
A. Tujuan
a. Memahami galat dan hampiran
b. Mampu menghitung galat dan hampiran
c. Mampu membuat program untuk menyelesaikan perhitungan galat dan
hampiran dengan Matlab
B. Perangkat dan Materi
a. Software Matlab
b. Materi Galat dan Hampiran
C. Dasar Teori
(Hampiran)
Contoh : Hitunglah
Penyelesaian :
Mennggunakan
algoritma
untuk
menghitung
dengan
x1 1 ,
1
2
x n x n 1
2
x n 1
, untuk n = 2,3,4,...
x2
3
2,
x3
17
12 ,
x4
1 17 24
577
2 12 17
408 ,
x5
1 577 816
665857
2 408 577
470832 ,
x5 1.4142136
21
2 adalah x5 1.4142
kesalahan
yang
ditimbulkan
karena
proses
pengukuran
atau
ini
merupakan
sumber
galat
(error)
pada
suatu
hampiran
22
x y x e x y e y ( x y ) (e x e y )
Jadi
galat
penjumlahan
sama
dengan
jumlah
galat
suku-suku
yang
ex y e x e y
Galat relatif penjumlahan adalah :
rx y
ex y
xy
ex e y
xy
Untuk pengurangan
x y x e x y e y ( x y ) (e x e y )
Jadi, analog dengan penjumlahan, galat pengurangan sama dengan selisih
galat, atau dapat dituliskan :
ex y ex e y
Galat relatif pengurangan adalah :
rx y
ex y
xy
ex e y
xy
x y maka galat
Misalkan
x i E X i xi E ,
untuk i 1,2,...., n
23
i 1
i 1
i 1
xi nE X i xi nE
n
X x
i 1
Atau
i 1
nE
Jadi, galat jumlah n nilai hampiran tersebut adalah jumlah maksimum galat
masing-masing hampiran.
Contoh Kasus :
Hitunglah
jumlah
1 2 ... 100
dengan
menggunakan
pembulatan
sampai dua angka desimal (di belakang koma). Berapakah maksimum galat
penjumlahan tersebut? Berapakah galat yang sesungguhnya?
Penyelesaian :
Kita dapat menggunakan Matlab untuk menghitung jumlahan tersebut.
Dalam
menggunakan
Matlab
perhitungan
(menggunakan
16
angka
24
Oleh karena setiap akar dihitung sampai dua angka desimal, maka galat
2
25
Chapter 2
PENYELESAIAN
PERSAMAAN NON LINEAR
METODE GRAFIK DAN TABULASI
A. Tujuan
d. Memahami Metode Grafik dan Tabulasi
e. Mampu Menentukan nilai akar persamaan dengan Metode Grafik dan
Tabulasi
f.
26
c. Persamaan campuran
Contoh: (i) x3 sin(x) + x = 0 (ii) x2 + log(x) = 0
Untuk polinomial derajat dua, persamaan dapat diselesaikan dengan rumus
akar persamaan kuadrat. Misalkan bentuk persamaan kuadrat adalah: ax2 +
bx + c = 0 dapat dicari akar-akarnya secara analitis dengan rumus berikut.
x12 =
Untuk polinomial derajat tiga atau empat, rumus-rumus yang ada sangat
kompleks dan jarang digunakan. Sedangkan untuk menyelesaikan polinomial
dengan derajat yang lebih tinggi atau persamaan tak linear selain polinomial,
tidak ada rumus yang dapat digunakan untuk menyelesaikannya. Metode
Numerik memberikan cara-cara untuk menyelesaikan bentuk tersebut, yaitu
metode hampiran. Penyelesaian numerik dilakukan dengan hampiran yang
berurutan (metode iterasi), sedemikian sehingga setiap hasil adalah lebih
teliti dari perkiraan sebelumnya. Dengan melakukan sejumlah proisedur
iterasi
mendekati hasil eksak (hasil yang benar) dengan toleransi kesalahan yang
diijinkan.Metode iterasi mempunyai keuntungan bahwa umumnya tidak
sangat terpengaruh oleh merambatnya error pembulatan.
a. LOKALISASI AKAR
Lokasi akar persamaan tak linear diselidiki untuk memperoleh tebakan awal,
yaitu:
(a) Cara grafik
Cara grafik ini dibedakan menjadi dua macam yaitu:
(i) Cara grafik tunggal
Misalkan f(x) = exp(-x) x
27
Gambar-1
Gambar-1 bisa dibuat dengan Matlab sbb.
x=-0.1:0.01:0.67;
f=exp(-x) - x;
x1=-0.2:0.01:1.5;
y1=0.*x1;
y2=-0.2:0.01:1.5;x2=0.*y2;
plot(x,f,x1,y1,'r',x2,y2,'r');
axis([-0.2 1.5 -0.2 1.5]);
gtext('f(x)=exp(-x)-x');
gtext('akar');
Dari Gambar-1, terlihat bahwa fungsi f(x) = exp(-x) x memotong sumbu-x,
yaitu (x0,0). Titik perpotongan tersebut, absisnya (nilai x0) merupakan akar
dari f(x0) = exp(-x0) x0 = 0.
28
Gambar-2
Gambar-2 bisa dibuat dengan Matlab sbb.
x=-0.1:0.01:2.5;
f1=exp(-x);
f2=x;
x1=-0.2:0.01:2.5;
y1=0.*x1;
y2=-0.2:0.01:1.5;x2=0.*y2;
plot(x,f1,x,f2,x1,y1,'r',x2,y2,'r');
axis([-0.2 2.5 -0.2 1.5]);
29
gtext('f1(x)=exp(-x)');
gtext('f2(x)=x');
gtext('akar');
Dari Gambar-2, terlihat bahwa fungsi f1 dan f2 saling berpotongan, yaitu (x0,
y0). Titik perpotongan tersebut, absisnya (nilai x0) merupakan akar dari
f(x0) = exp(-x0) x0 = 0.
(b) Cara tabulasi
Nilai-nilai fungsi pada interval yang diminati dihitung dengan membagi
interval tersebut menjadi sub interval sub interval, dan nilai-nilai tersebut
ditulis dalam bentuk tabulasi. Jika pada suatu interval nilai fungsi berubah
tanda, maka pada interval tersebut ada akar.
Misalkan f(x) = exp(-x) x, kemudian dibuat tabulasi dengan bantuan Matlab,
yaitu:
fprintf(' x f(x) tanda\n');
fprintf('------------------\n');
i=1;beda=0.1;
for x=0:beda:1;
f=exp(-x) - x;
fprintf('%3.1f %6.3f',x,f);
if sign(f)< 0
tanda(i)='-';
fprintf(' %s\n',tanda(i));
else
if sign(f)> 0
tanda(i)='+';
fprintf(' %s\n',tanda(i));
else
30
tanda(i)='0';
fprintf(' %s\n',tanda(i));
end;
end;
i=i+1;
end;
i=1;
for x=0:0.1:1;
if tanda(i)=='0'
fprintf('Akarnya adalah = %6.4f\n',x);
else
if i >1
if tanda(i)~= tanda(i-1)
a=x-beda;
b=x;
fprintf('Akar ada di interval [%3.1f, %3.1f]\n', a,b);
end;
end;
end;
i=i+1;
end;
maka hasil tabulasinya adalah sbb.
x f(x) tanda
------------------
31
0.0 1.000 +
0.1 0.805 +
0.2 0.619 +
0.3 0.441 +
0.4 0.270 +
0.5 0.107 +
0.6 -0.051 0.7 0.203 0.8 -0.351 0.9 -0.493 1.0 -0.632 Akar ada di interval [0.5, 0.6]
Latihan.
Cari akar persamaan tak linier dengan metode garfik dan tabulasi :
3
1. f ( x ) 2 x
2. f ( x) ( 2 x 1)
coba dikembangkan dengan mencari sendiri persamaan tak linier yang
dapatdiselesaikan dengan metode grafik dan tabulasi.
3
32
METODE BISEKSI
A. Tujuan
a. Memahami Metode Biseksi
b. Mampu Menentukan nilai akar persamaan dengan Metode Biseksi
c. Mampu membuat program untuk menentukan nilai akar dengan
Metode Biseksi dengan Matlab
B. Perangkat dan Materi
d. Software Matlab
e. Metode Biseksi
C. Dasar Teori
Metode Bisection (Setengah Interval)
Landasan utama dari metode ini adalah menentukan suatu interval
dalam suatu fungsi dimananilai fungsi dari ujung-ujungnya(batas bawah dan
batas atas) harus berbeda tanda untuk menunjukkan bahwa fungsi tersebut
memotong sumbu horisontal, kemudian interval tersebut dipecah menjadi
dua bagian yang sama untuk mendekati titik potong dengan sumbu
horisontal.
Di dalam aplikasinya, langkah awal yang dilakukan adalah menetapkan
nilai sembarang a dan b sebagai batas bawah dan batas atas interval nilai
fungsi yang dicari. Titik a dan b memberikan harga bagi fungsi f(x) untuk x =
a dan x = b.
Selanjutnya adalah memeriksa apakah f(a).f(b)<0, jika demikian maka
terdapat akar fungsi dalam interval yang ditinjau. Jika tidak, maka nilai a dan
b ditetapkan lagi sedemikian rupa sehingga terpenuhi ketentuan perkalian
f(a).f(b)<0, yaitu nilai f(a) dan f(b) mempunyai tanda yang berbeda.
Langkah selanjutnya adalah mencari nilai tengah interval a dan b
dengan rumus m=(a+b)/2, lalu diperiksa apakah nilai mutlak f(m)<
6
toleransi(misal 10 ).
Jika benar, nilai x = m adalah solusi yang dicari (akar dari persamaan
tersebut).
33
nilai b=m apabila f(a).f(m)<0, dan mengganti a=m bila f(a).f(m)>0 seperti
terlihat pada Gambar 3.1 Proses menemukan mbaru dilakukan seperti
prosedur yang telah dijelaskan.
Langkah 2:
karena f(a).f(m)= (-1)(4.8821) < 0, maka b=m, sehingga:
a=2 _ f(2)=22-5= -1
b=2.5 _ f(2.5)=(2.5)2.5-5=4.8821
m=(2+2.5)/2=2.25
f(2.25)=(2.25)2.25-5=|1.2003|> 0.000001
Langkah 3:
34
35
f ( x ) x x 5 dalam
36
x=
2.12927246093750
37
Software Matlab
38
f ' ( xi )
f ( xi ) 0
xi xi 1
f ' ( xi )
atau
f ( xi )
xi xi 1
Sehingga
xi 1 xi
f ( xi )
f ' ( xi )
dimana i = 0, 1,2,....
xi 1 xi
( x 3 3x 20)
x 5
( x 2 3)
Perkiraan Awal 0
Langkah 1:
f (5) 5 3 3(5) 20 90
f ' (5) 3(5) 2 3 72
90
x1 5
3.75
72
Langkah 2:
21.4844
3.201754
39.1875
Dan seterusnya
Algoritma program untuk metode Newton-Raphson
1. Tentukan fungsi, x0, toleransi, dan jumlah iterasi maksimum.
2. Hitung xbaru = x f(x0)/f(x0).
3. Jika nilai mutlak fxbaru < toleransi, diperoleh xbaru sebagai hasil
perhitungan;
4. jika tidak, lanjutkan ke langkah berikutnya.
5. Jika jumlah iterasi > iterasi maksimum, akhiri program.
39
function x = MetodeNewton(f,x0,n,tol)
int i;
Implementasi
dengan MATLAB
f0=inline(char(f));
% menyelesaikan persoalan f(x) = 0
dengan Metode Newton
g=inline(char(diff(f))); % dengan g sebagai fungsi
turunannya.
x = x0;
i=0; % perkiraan awal x dengan nilai x0
fa=f0(x);
while abs(fa) > tol % lakukan sampai toleransi tercapai
fa=f0(x);
fb=g(x);
if fa == 0 or i=n
return % program berhenti jika f(x) = 0
end
x = x - fa./fb; % rumus
40 Newton
disp([i x fa]) % fa = f(x);
i=i+1;
end
0.4444 -22.0000
0.2637 -22.5450
4.6785 -18.6037
11.0000
3.5875 68.3674
12.0000
3.1548 15.4078
13.0000
3.0828
1.9339
14.0000
3.0809
0.0487
15.0000
3.0809
0.0000
16.0000
3.0809
0.0000
x=
3.0809
41
42
METODE SECANT
A. Tujuan
j.
Metode Secant
C. Dasar Teori
Metode Secant
Merupakan perbaikan dari kekurangan yang dimiliki oleh metode
newton, yaitu nilai turunan f(x) didekati dengan beda hingga ( ).
f ' ( xi )
f ( xi ) f ( xi 1 )
f ( xi )
f ' ( xi )
xi
xi xi 1
'
xi 1 xi f ( xi )
xi xi 1
f ( xi ) f ( xi 1 )
43
Contoh :
f ( x ) x 3 3 x 20
x1 6 f (6) 178
Untuk perkiraan awal
x 2 2 f (2) 18
44
function x = MetodeSecant(f,x0,x1,n,tol)
int i; % menyelesaikan persoalan f(x) = 0 dengan Metode
Secant
fa=f(x0); % f=fungsi yang akan dicari akarnya, x0=nilai
awal,x1=nilai akhir
fb=f(x1); % n=jumlah iterasi, tol=nilai toleransi
i=0;
while abs(x0-x1) > tol % lakukan sampai toleransi
tercapai
fa=f(x0);
fb=f(x1);
if fa == 0 or i=n
return % stops the program if f(x) = 0
end
x = x1 - fb.*(x1-x0)./(fb-fa); % rumus Newton
disp([i x fa]) % menampilkan hasil hitungan
x0=x1;
x1=x;
i=i+1;
end
Simpan fungsi di atas dengan naman MetodeSecant.
Apabila di run lewat command windows hasilnya adalah :
>> f=x^3-3*x-20
f=
x^3-3*x-20
>> f=inline(char(f)) (membuat fungsi x)
f=
Inline function:
f(x) = x^3-3*x-20
>> x=MetodeSecant(f,6,2,15,0.000001)
0
2.3673 178.0000
1.0000
3.5874 -18.0000
2.0000
2.9446 -13.8346
3.0000
3.0581 15.4070
4.0000
3.0820 -3.3024
5.0000
3.0808 -0.5761
6.0000
3.0809
7.0000
3.0809 -0.0002
0.0299
45
x=
3.0809
Soal Tugas di rumah :
Dikumpulkan (Buat LAPORAN PRAKTIKUM)
3
2
x 1 dan
1. f ( x) x x 3 x 3 0 Carilah akar x dengan tebakan awal 0
b. Secant
Praktikum 3
LAPORAN SEMENTARA
Hari/Tanggal
Nama
Nim
Kelas
TTD Dosen/Asisten
:
:
:
:
:
46
C. Dasar Teori
Metode Regula Falsi atau Interpolasi Linier
Metode ini sangat mirip dengan metode bisection, perbedaannya hanya
dalam menentukan nilai m-nya.
mb
f (b)(b a )
f (b ) f ( a )
47
3. Periksa apakah f(a).f(b)> 0; jika ya, keluar dari progam karena pada
interval yang
diberikan tidak terdapat akar persamaan.
4. Hitung nilai
mb
f (b)(b a )
f (b ) f ( a )
5. Jika nilai mutlak f(m) < toleransi, tuliskan m sebagai hasil perhitungan, dan
akhiri
program; jika tidak, lanjutkan ke langkah berikutnya.
6. Jika jumlah iterasi > iterasi maksimum, akhiri program.
7. Jika f(a).f(m)<0, maka b = m, jika tidak, a = m.
8. Kembali ke langkah (2).
3
2
6
Contoh : cari akar persamaan f ( x) x x 1 dengan toleransi: 10
Langkah 1:
Nilai awal: batas bawah a=0, batas atas b=2, sehingga:
f (0) 0 3 0 2 1 1
f ( 2) 2 3 2 2 1 3
m 2
3( 2 0)
0.5
3 (1)
3(2 0.5)
0.909091
3 (1.125)
m 2
3( 2 0.909091)
1.196903
3 ( 1.07513141)
Langkah 4:
karena f(a).f(m)= (-1.07513141)(-0.717921332) > 0, maka a=m, sehingga:
a=1.196903, b=2
3(2 1.196903)
1.351979027
3 (0.717921332)
Langkah 5:
karena f(a).f(m)= (-0.717921332)( -0.35663608) > 0, maka a=m, sehingga:
a=1.351979, b=2
3(2 1.351979)
1.420829976
3 (0.35663608)
49
50
51
1.46551929414272
1.46573926880956
1.46557428780943
1.46553304255940
1.46554335387191
1.46555108735629
1.46555688746957
1.46556123755454
-0.00018242496629
0.00059033482427
0.00001073416219
-0.00013413711025
-0.00009792037557
-0.00007075735056
-0.00005038481518
-0.00003510526367
x=
1.46556123755454
Soal Tugas di rumah:
Dikumpulkan (Buat LAPORAN PRAKTIKUM)
x
1. f ( x) e 4 x dengan titik awal a = 0 dan b = 1, carilah nilai x dengan
program Matlab dengan Metode :
a. Biseksi
b. Regula Falsi
Praktikum 2
LAPORAN SEMENTARA
Hari/Tanggal :
Nama:
Nim:
Kelas:
TTD Dosen/Asisten:
Latihan di kelas :
x
1. f ( x) e x dengan titik awal a = 0 dan b = 1, carilah nilai x dengan
program Matlab dengan Metode :
a. Biseksi
b. Regula Falsi
52
Chapter 3
PENYELESAIAN
PERSAMAAN DIFFERENSIAL
BIASA
Metode Euler
Metode Euler adalah Metode hampiran paling sederhana untuk
menyelesaikan masalah nilai awal:
..(1)
Biasanya diasumsikan bahwa penyelesaian y(t) dicari pada interval terbatas
yang diketahui
.
Kita tidak akan secara eksplisit menari fungsi dapat dideferensialkan
(diturunkan) yang memenuhi persamaan (1) melainkan menghitung sejumlah
pasangan nilai
sebagai pendekatan fungsi penyelesaian
tersebut yakni
.
Pada metode ini interval yang deberikan dibagi menjadi n interval, masingmasing sepanjang h.
Misalkan kita hendak mencari penyelesaian numeric untuk persamaan (1)
pada interval [a,b].
Misalkan
adalah suatu posisi pada [a,b] sedemikian sehingga :
untuk k = 1,2, , n
Misalkan
. Apabila
diketahui, maka kita dapat
menghitung nilai
.
Persamaan garis ini adalah
. Garis
ini merupakan garis singgung kurva penyelesaian pada
.
Selanjutnya, tentukan titik pada garis ini yang memiliki absis
. Ordinat ini
adalah
.
Sekarang
merupakan hampiran penyelesaian
.
Algoritma (Metode Euler)
53
CONTOH :
Misalkan akn menghitung hampiran penyelesaian masalah nilai awal :
function [t,y]=euler4pdb(f,n,a,b,y0)
%fungsi euler4pdb.m (metode euler);
%menghitung hampiran penyelesaian masalah niai awal
%y'=f(t,y), y(0) = y0 pada [a,b]
%menggunakan n langkah dengan lebar langkah (b-a)/n
h = (b-a)/n;
t = [a]; y = [y0];
for k = 2:n+1,
t = [t;a+(k-1)*h];
y = [y;y(k-1)+h*f(t(k-1),y(k-1))];
end
Dalam command windows kita coba running
f=inline('(t-y)/2') % fungsi ditulis di command windows dulu
f=
Inline function:
f(t,y) = (t-y)/2
>> [t1,y1]=euler4pdb(f,10,0,3,1);
>> ye1=3*exp(-t1/2)-2+t1;
>> [t2,y2]=euler4pdb(f,20,0,3,1);
>> ye2=3*exp(-t2/2)-2+t2;
>> [t3,y3]=euler4pdb(f,50,0,3,1);
>> ye3=3*exp(-t3/3)-2+t3;
>> plot(t1,y1,'o',t2,y2,'+',t3,y3,'*',t3,ye3)
Hasil Running program di atas dapat diperoleh grafik berikut :
54
55
rumus :
y k 1 y k hf (t k , y k )
Metode ini disebut metode satu langkah karena informasi dari satu
langkah sebelumnya digunakan untuk menghitung hampiran sekarang.
Oleh karena itu galat di dalam metode Euler adalah O(h), kita perlu
memilih lebar langkah yang sangat kecil untuk mendapatkan keakuratan
yang diinginkan. Galat di dalam metode Runge Kutta jauh lebih kecil
daripada galat Metode Euler.
Ide belakang Metode Runge - Kutta adalah menghitung nilai f (t , y ) pada
beberapa titik di dekat kurva penyelesaian yang dipilih dengan metode
tertentu di dalam interval
y k 1 .
56
y (t 0 ) y 0 pada [t 0 , b] .
t 0 , b, y 0 , h, dan fungsi f
(t , y ), k 1,2,......., n
Output : k k
Input :
Langkah-langkah :
n (b t ) / h
0
1. hitung
2. for k = 1,2,3,.., n
Hitung
Hitung
Hitung
t k t k 1 h
S1 f (t k 1 , y k 1 ),
S 2 f (t k , y k 1 h * S1 ),
h
y k y k 1 ( S1 S 2 )
2
Hitung
3. Selesai .
Pada metode ini
sebagai berikut:
S1 f (t k , y k )
(1)
S 2 f (t k h, y k hS1 )
y k 1 y k h
(2)
( S1 S 2 )
2
(3)
untuk k = 0, 1, 2, ., dengan
(t 0 , y 0 ) diktehui.
(t k , y k ) ,
tk
f (t , y (t )) dt
t k 1
tk
y ' (t )dt y (t k 1 ) y (t k )
atau
y (t k 1 ) y (t k )
t k 1
tk
y ' (t )dt
h t k 1 t k
57
h
f (t k , y k ) f (t k 1 , y k 1 )
2
y
suku kedua pada ruas kanan memuat nilai ruas kiri , k 1 .
y (t k 1 ) y (t k )
y (t k 1 ) y (t k )
y k 1 pada ruas
h
f (t k , y k ) f (t k 1 , y k hf (t k , y k ))
2
Galat pada setiap langkah dalam Metode Heun (Atau Metode RK2) sama
dengan galat aturan trapezium, yakni
y n ( k )
h3
12
oleh karena itu, galat setelah n langkah pada Metode Heun menjadi :
n
y
k 1
( k )
h 3 t n t0 n
y ( )h 3 O(h 2 )
12
12h
Dengan demikian kita peroleh bahwa galat pada setiap langkah (iterasi)
Contoh :
Gunakan Metode Heun (RK2) untuk menyelesaikan masalah nilai awal :
1 1
1
h 1, , , dan
2 4
8
Penyelesaian :
Rumus Iterasi Heun untuk hampiran solusi PD tersebut adalah :
h t y k t k 1 y k h(t k y k ) / 2
3
y k 1 y k k
, k 0,1,2,........., dengan
2
2
2
h
t 0 0, y 0 1
y e t / 2 t 2 .
Kode Matlab berikut ini akan menghasilkan nilai- nilai
langkah yang ditentukan :
58
y k untuk lebar-lebar
Chapter 4
PENYELESAIAN SISTEM
PERSAMAAN LINEAR
A. Latar Belakang
Persoalan yang melibatkan model matematika banyak muncul dalam
berbagai disiplin ilmu pengetahuan, seperti dalam bidang fisika, kimia,
ekonomi, atau pada persoalan rekayasa. Seringkali model matematika
tersebut muncul dalam bentuk yang rumit yang terkadang tidak dapat
diselesaikan dengan rumus-rumus aljabar yang sudah baku.
Solusi SPL secara numeris umumnya selalu (harus) lebih efisien dan
cepat dibandingkan dengan metode-metode analitis, seperti metode Cramer.
Namun demikian, solusi numerik ini secara teknis adakalanya juga
berkendala, karena:
(1) ada beberapa persamaan yang mendekati kombinasi linier, akibat adanya
round off error dari mesin penghitung pada,
(2) suatu tahap perhitungan adanya akumulasi round off error pada proses
komputasi akan berakibat domain bilangan nyata (fixed point) dalam
perhitungan akan terlampaui (overflow), biasanya akibat dari jumlah
persamaan yang terlalu besar.
Metode-metode solusi numerik yang banyak dipakai, dapat diklasifikasikan
sebagai:
1. Metode Langsung
a.
Metode Langsung Eliminasi Gauss (EGAUSS), prinsipnya:
merupakan operasi eliminasi dan substitusi variabel-variabelnya
sedemikian rupa sehingga dapat terbentuk matriks segitiga atas, dan
akhirnya solusinya diselesaikan menggunakan teknik substitusi balik
(backsubstitution),
b.
Metode Eliminasi Gauss ini. Eliminasi Gauss-Jordan (EGJ),
prinsipnya: mirip sekali dengan metode EG, namun dalam metode ini
jumlah operasi numerik yang dilakukan jauh lebih besar, karena matriks
A mengalami inversi terlebih dahulu untuk mendapatkan matriks
identitas (I). Karena kendala tersebut, maka metode ini sangat jarang
dipakai, namun sangat bermanfaat untuk menginversikan matriks,
c.
Dekomposisi LU (DECOLU), prinsipnya: melakukan dekomposisi
matriks A terlebih dahulu sehingga dapat terbentuk matriks-matrik
segitiga atas dan bawah, kemudian secara mudah dapat melakukan
substitusi balik (backsubstitution) untuk berbagai vektor VRK (vektor
ruas kanan).
59
d.
60
E. Manfaat
Dapat diambil manfaatnya sebagia berikut.
1. Dapat digunakan sebagai solusi dalam memperoleh urutan persamaan
di dalam suatu SPL berukuran besar dengan menggunakan metode
iterasi Jacobi.
2. Memberi kemudahan dalam menyelesaikan Sistem Persamaan Linear
(SPL) berukuran besar dengan metode iterasi Jacobi dengan
pemrograman MATLAB 7 for Windows.
PEMBAHASAN
A. Iterasi Jacobi
Metode ini merupakan suatu teknik penyelesaian SPL berukuran n x n, AX
= b, secara iteratif. Proses penyelesaian dimulai dengan suatu hampiran awal
terhadap penyelesaian, X0, kemudian membentuk suatu serangkaian vector
X1, X2, yang konvergen ke X.
Teknik iteratif jarang digunakan untuk menyelesaikan SPL berukuran kecil
karena metode-metode langsung seperti metode eliminasi Gauss lebih
efisien dari pada metode iteratif. Akan tetapi, untuk SPL berukuran besar
dengan persentase elemen nol pada matriks koefisien besar, teknik iteratif
lebih efisien daripada metode langsung dalam hal penggunaan memori
komputer maupun waktu komputasi. Metode iterasi Jacobi, prinsipnya:
merupakan metode iteratif yang melakuakn perbaharuan nilai x yang
diperoleh tiap iterasi (mirip metode substitusi berurutan, successive
substitution).
B. Algoritma Iterasi Jacobi
Untuk menyelesaikan system persamaan linier AX = b dengan A adalah
matriks koefisien n x n, b vector konstan n x 1, dan X vektor n x 1 yang perlu
dicari.
61
xi
bi j i aij y j
aii
X Y
(c) IF
< T THEN STOP
(d) Tambahan penghitung iterasi, k = k + 1
(e) FOR i = 1, 2, 3, ..., n, Set yi = xi
(f) set Y = (y1 y2 y3 ..yn)T
3.
STOP
AX = b
Input A, b, X0, T, N
xi
bi j i a ij y j
a ii
xi = ( x1 x2 x3 xn)
STOP
62
xi
(k )
1
a ii
bi aij x j ( k 1)
j i
, i = 1, 2, 3, ..., n ; k = 1, 2, 3, ..
x 2 x3 3
10 5 5
x x 3x
25
x2 1 3 4
11 11 11 11
x1 x 2 x 4 11
x3
5
10 10 10
3x 2 x3 15
x4
8
8 8
x1
3
0.6
5
=1
25
x2
2.2727
11
=2
11
x3
1.1
10
= -1
x1
63
x4
15
1.8750
8
=2
Menyelesaikan contoh
metode iterasi Jacobi.
2x1 x2 + 10x3 = -11
3x2 x3 + 8x4 = -11
10x1 x2 + 2x3 =6
-x1 + 11x2 x3+ 3x4 = 25
SPL
berikut
ini
dengan
64
menggunakan
65
T=
1.0000e-005
>> N=25
N=
25
>> [X,g,H]=jacobi(A,b,X0,T,N)
X=
1.0e+017*
-4.1950
0.5698
2.1380
0.0451
g=
1.0e+017*
3.7699
0.5442
1.2965
0.1535
H=
1.0e+017*
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
0 . 0000
-0 . 0007
0 . 0000
0 . 0013 -0 . 0002
-0 . 0066
0 . 0009
0 . 0036
0 . 0000
-0 . 0173
0 . 0011
0 . 0333 -0 . 0042
-0 . 1661
0 . 0224
0 . 0873
0 . 0013
-0 . 4251
0 . 0256
0 . 8415 -0 . 1085
-4 . 0000
0 . 5698
2 . 1380
0 . 0451
Dari hasil diatas, metode Jacobi belum konvergen setelah
melakukan iterasi. Untuk mengetahui penyelesaian SPL kita,
selanjutnya gunakan metode langsung dengan menggunakan invers
matriks A. MATLAB memberikan penyelesaian sebagai berikut.
>> X=inv(A)*b
66
X=
1.1039
2.9965
-1.0211
-2.6263
Apakah metode jacobi tidak dapat menghasilkan penyelesaian
tersebut? Dengan mengubah susunan SPL, yakni persamaan pertama
dan kedua dipindah menjadi persamaan ketiga dan keempat, metode
Jacobi ternyata berhasil memberikan penyelesaian tersebut,
sebagaimana terlihat pada hasil keluaran MATLAB berikut.
>> A=[10 -1 2 0;-1 11 -1 3;2 -1
A=
10 -1
2
0
-1 11 -1
3
2 -1 10
0
0
3 -1
8
>> b=[6;25;-11;-11]
b=
6
25
-11
-11
>> X0=[-2;1;3;-1]
X0 =
-2
1
3
-1
>> [X,g,H]=jacobi(A,b,X0,T,N)
X=
1.1039
2.9965
-1.0211
-2.6263
g=
0.0795
0.2004
0.0797
0.1511
H=
-2 . 0000 1 . 0000
3 . 0000
1 . 1000 2 . 6364 -1 . 6000
1 . 9836 2 . 6023 -1 . 8564
1 . 0315 2 . 9494
-1 . 0365
1 . 1022 2 . 9426
-1 . 0114
1 . 1065 2 . 9930
-1 . 0262
1 . 1045 2 . 9895
-1 . 0200
1 . 1030 2 . 9965
-1 . 0220
10 0;0 3 -1 8]
-1 . 0000
-2 . 3750
-2 . 4386
-2 . 4579
-2 . 6106
-2 . 6049
-2 . 6256
-2 . 6236
67
1
1
1
1
1
1
.
.
.
.
.
.
1040 2 . 9856
-1 . 0209 -2 . 6264
1037 2 . 9966
-1 . 0212 -2 . 6260
1039 2 . 9964
-1 . 0211 -2 . 6264
1039 2 . 9965
-1 . 0211 -2 . 6263
1039 2 . 9965
-1 . 0211 -2 . 6263
1039 2 . 9965
-1 . 0211 -2 . 6263
Iterasi Jacobi konvergen (dengan menggunakan batas toleransi
0.0001) setelah iterasi ke-13. Penyelesaian yang diberikan persis sama
dengan yang dihasilkan dengan metode langsung. Hampiran
penyelesaian SPL kita adalah X = (1.1039
2.9965
-1.0211
-2.6263)T.
Layar MATLAB 7 (command window)
A. Simpulan
68
untuk i = 1, 2, 3, ..., n.
69
70
Berikut pemakaian fungsi MATLAB seidel untuk penyelesaian soal di atas dan
keluaran yang diperoleh :
>> A=[10 -1 2 0;-1 11 -1 3;2 -1 10 -1;0 3 -1 8]
A=
10
-1
71
-1
11
-1
-1
10
-1
-1
>> b=[6;25;-11;15]
b=
6
25
-11
15
>> X0=[0;0;0;0]
X0 =
0
0
0
0
>> T=0.0001;N=25;
>> [X,g,H]=seidel(A,b,X0,T,N)
X=
1.0000
2.0000
-1.0000
1.0000
g=
72
1.0e-004 *
0.8292
0.2017
0.2840
0.1111
H=
Columns 1 through 6
0
0.6000
2.3273
Columns 7 through 12
-0.9873
0.8789
1.0302
2.0369 -1.0145
0.9843
0.9984
2.0003
Columns 13 through 18
1.0066
2.0036 -1.0025
1.0009
Columns 19 through 24
-1.0003
0.9998
1.0001
2.0000 -1.0000
1.0000
Columns 25 through 28
1.0000
2.0000 -1.0000
1.0000
73
Latihan di kelas :
Carilah akar-akar persamaan berikut dengan Metode Gauss-Seidel dengan
Matlab:
x y 2z 9
2 x 4 y 3z 1
3x 6 y 5z 0
Praktikum 1
LAPORAN SEMENTARA
Hari/Tanggal
Nama
Nim
Kelas
TTD Dosen/Asisten
:
:
:
:
:
74
Chapter 5
PENDEKATAN FUNGSI
DEVIDE DIFFERENCE (SELISIH TERBAGI)
A. Tujuan
a. Memahami Polinomial Newton (Selisih Terbagi)
b. Mampu menentukan koefisien-koefisien Polinomial Newton
c. Mampu menentukan koefisien-koefisien Polinomial Newton dengan
Matlab
B. Perangkat dan Materi
a. Software Matlab
b. Metode Selisih Terbagi
C. Dasar Teori
Misalkan akan mencari pollinomial interpolasi
P n (x ) untuk menghampiri
suatu fungsi
Pn ( x) a1 a 2 ( x x1 ) a3 ( x x1 )( x x 2 ) ...... a n 1 ( x x1 )( x x 2 ).....( x x n )
(1)
dan kit a ingin mencari nilai-nilai koefisien
Perhatikan bahwa di sini berlaku :
a1 , a 2 ,........, a n , a n 1 .
Pn ( x k ) f ( x k ) untuk 1 k (n 1)
f ( x1 ) Pn ( x1 ) a1
(2)
75
f ( x 2 ) Pn ( x 2 ) a1 a 2 ( x 2 x1 )
atau
a2
Jika
(3)
f ( x 2 ) a1
f ( x 2 ) f ( x1 )
x 2 x1
x 2 x1
(4)
sehingga diperoleh :
f ( x3 ) a1 a 2 ( x3 x1 )
( x3 x1 )( x3 x 2 )
f ( x 2 ) f ( x1 )
f ( x3 ) f ( x1 ) (
)( x3 x1 )
x 2 x1
( x3 x1 )( x3 x 2 )
=
a3
f ( x3 ) f ( x1 ) f ( x 2 ) f ( x1 )
x3 x1
x 2 x1
( x3 x 2 )
a3
6
penyebut
( x3 x 2 )( x3 x1 )( x3 x1 ) , sehingga
f ( x3 ) f ( x1 ) f ( x 2 f ( x1 )
x3 x1
x 2 x1
( x3 x1 )
(6)
xk
f | x k | f ( x k )
k 1,2,3,....(n 1)
x k dan x k 1
76
(7)
f x k , x k 1
f x k 1 f x k
x k 1 x k
k 1,2,3,....n
f x k , x k 1 , x k 2
(8)
x k , x k 1 dan x k 2
f x k 1 , x k 2 f x k , x k 1
xk 2 xk
k 1,2,3,....( n 1)
(9)
4. ..
5. Selisih terbagi ke-j terhadap
rekursif.
f x k , x k 1 ,......, x k j
untuk
x k , x k 1 x k j didefinisikan secara
f x k 1 , x k 2 ,....., x k j f x k , x k 1 ,......, x k j 1
xk j xk
k 1,2,3,...., n 1 j;
j 1,2,3,...., n
(10)
fungsi
f (x)
terdefinisi
pada
interval
[a,
b],
dan
misalkan
f ( x k ) Pn ( x k )
untuk k = 1, 2, 3,
, (n+1)
Pn ( x ) a1 a 2 ( x x1 ) a3 ( x x1 )( x x 2 ) ... a n 1 ( x x1 )( x x 2 ).....( x x n )
(11)
dengan
a k f [ x1 , x 2 ,....., x k ]
Koefisien polynomial
dihampiri.
untuk k 1,2,3,....., (n 1)
Newton
merupakan
77
selisih
terbagi
fungsi
yang
f ( x) Pn ( x) E n ( x)
(12)
Jika f mempunyai turunan ke (n+1) pada interval [a,b], maka untuk setiap
Cara
menghitung
menggunakan tabel:
( n 1)
(c )
(13)
selisih-selisih
terbagi
Newton
dengan
x n 1
xn
x n 1
f [ x3 ]
f [ x n 1 ]
f [ xn ]
f [ x n 1 ]
f [ x3 , x 4 ]
f [ x n 1 , x n ]
f [ x n , x n 1 ]
x1
x2
x3
f [ x1 ]
f [ x2 ]
f [ x1 , x 2 ]
f [ x 2 , x3 ]
f [ x1 , x 2 , x3 ]
f [ x 2 , x3 , x 4 ] f [ x 3 , x 4 , x5 ]
f [ x1 , x 2 ,....., x n 1 ]
f [ x n 1 , x n , x n 1 ]
D( j , k ) f [ x k , x k 1 ,..., ( x k j ],
(14)
untuk 1 j (n 1) dan 1 k [( n 1) j 1]
dengan demikian
a j D ( j ,1)
j = 1,2, , (n+1)
(( x1 , f ( x1 )), ( x 2 , f ( x 2 )),..., ( x n 1 , f ( x n 1 ))
78
a , a , a ,...., a
n 1
OUTPUT
: 1 2 3
LANGKAH-LANGKAH :
1. for k = 1,2,., (n+1)
D(1,k) =
f ( xk )
2. a1 D (1,1)
3. For j = 1, 2, , (n+1)
a. For k = 1, 2, , ((n+1) j + 1)
D ( j , k ) ( D ( j 1, k 1) D ( j 1, k )) /( x k j 1 x k )
b.
4. STOP
a j D ( j ,1)
function D=selisihN(x,y)
n=length(x);
D(1,1:n)=y;
for j=2:n,
for k=1:n-j+1,
D(j,k)=(D(j-1,k+1)-D(j-1,k))/(x(k+j-1)-x(k));
end
end
Contoh 1:
Hitunglah selisih-selisih terbagi fungsi f sampai tingkat tiga, jika diketahui
data titik-titik sebagai berikut:
Selanjutnya, tentukan polynomial Newton yang menginterpolasikan titik-titik
tersebut.
Tabel contoh 1:
xk
f ( xk )
Penyelesaian :
Dari data pada tabel contoh 1 dapat disusun tabel selisih terbagi Newton
untuk fungsi f sebagai berikut. Nilai-nilai selisih terbagi Newton membentuk
transpose matriks segitiga atas. Dari hasil perhitungan tersebut, elemenelemen pada kolom pertama matriks D merupakan koefisien-koefisien
polynomial Newton yang menginterpolasikan data tersebut.
xk
79
f ( xk )
D(1,
D(2,
D(3,
D(4,
k)
k)
k)
k)
1
0
1/2
-1/12
1
1
1/6
0
2
3/2
0
0
5
0
0
0
P3 ( x ) 1
1
1
x( x 1) x( x 1)( x 2)
2
12
D(2,1)
Misal untuk D(2,1), berarti j = 2 , k =1
D(2,2)
Misal untuk D(2,2), berarti j = 2 , k = 2
dst
D(1,2) D (1,1) 1 1
0
x 2 x1
1 0
D(1,3) D(1,2) 2 1
1
x3 x 2
20
>> y=[1 1 2 5]
y=
1
>> D=selisihN(x,y)
D=
1.0000 1.0000 2.0000 5.0000
0 1.0000 1.5000
0
0.5000 0.1667
0
0
-0.0833
0
0
0
yang angka (hijau adalah koefisien-koefisien Newton)
Contoh 2:
80
3
Misalkan f ( x) x 4 x . Buatlah tabel selisih terbagi untuk fungsi f tersebut
x1 1, x 2 2,.x3 3, x 4 4, x5 5, x6 6
x4
Penyelesaian:
Tabel contoh 2
xk
x1 1
x2 2
x3 3
x4 4
x5 5
x6 6
f ( xk )
-3
15
48
105
192
D(1,k)
D(2,k)
D(3,k)
D(4,k)
D(5,k)
D(6,k)
-3
3
6
1
0
0
0
15
9
1
0
0
15
33
12
1
0
0
48
57
15
0
0
0
105
87
0
0
0
0
192
0
0
0
0
0
15
48 105 192
>> D=selisihN(x,y)
D=
-3
3
6
1
0
0
0 15
15 33
9 12
1
1
0
0
0
0
48
57
15
0
0
0
105 192
87
0
0
0
0
0
0
0
0
0
81
TUGAS:
x1 0, x 2 1, x3 2, x 4 3, x 4 4, x5 5 . Tentukan
P (x ) , untuk k= 1,2,3,4.
Polinomial Newton k
menggunakan 5 titik
82