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
Chapter 4. Penyelesaian Sistem Persamaan
Linear ...
56
Metode Iterasi
Jacobi ... 58
Metode Gauss
Seidel ...
66
Chapter 5. Pendekatan
Fungsi ...
71
Metode Devide
Pengenalan Matlab
SEKILAS MATLAB
Fasilitas-fasilitas pada MATLAB : 1. Current Directory
Path Browser memungkinkan Anda melihat dan mengubah alamat Pencarian MATLAB (alamat tempat MATLAB mencari file-file yang diperlukan )
2. Workspace (Pencari tempat kerja)
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
Pi = 3.14
4 x 25 + 6 x 52 + 2 x 99 = 610 Apabila dikerjakan dengan Matlab :
Operasi-operasi Aritmetik Dasar :
Operasi Simbol Contoh
Penambahan, a + b Pengurangan, a – b Perkalian, a x b Pembagian, a : b Pemangkatan, ab
+ – *
/ atau \ ^
5 + 3 23 – 12 3.14 * 5 6/3 = 3\6 5^2
Variabel
MATLAB mempunyai aturan penamaan variabel yaitu : Aturan Penamaan Variabel Catatan & Contoh
Nama variabel dibedakan antara huruf kecil dan huruf kapital
Nama variabel harus diawali dengan huruf, diikuti dengan bilangan,huruf atau garis bawah. Karakter tanda baca tidak diperbolehkan.
Items, items, itEms, dan ITEMS semuanya adalah variabel yang berbeda
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 di-running.
Bentuk umum:
variabel = input(‘text’) numerik dan string atau
variabel = input(‘text’, ‘s’) string
pada layar akan tampil apa yang tertulis di antara tanda petik (text),menanti masukan data yang diikuti dengan menekan enter melalui keyboard.
Contoh berikut ini menampilkan program perhitungan sederhana dimanalangkah memasukkan data dilakukan dengan menggunakan kedua cara: tersebut. Kedua contoh tersebut dijalankan pada layar utama Matlab yang
disebut command window.
Contoh Perhitungan luas Segi Tiga A = 0.5 x a x t dengan cara input data. >> topik='segi tiga'
topik =
segi tiga
>> alas = 5
alas =
5
>> tinggi=10
tinggi =
10
>> luas_segitiga = 0.5 * alas * tinggi
luas_segitiga =
25
>> topik = input('masukkan bangun geometri yang akan dicari
luasnya: ')
masukkan bangun geometri yang akan dicari luasnya: 'segi tiga'
topik =
segi tiga
>> alas = input(' masukkan alas segi tiga: ')
masukkan alas segi tiga: 5
alas =
5
>> tinggi = input('masukkan tinggi segi tiga : ')
masukkan tinggi segi tiga : 10
tinggi =
10
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 :
Bila ingin menampilkan teks atau string4hasil yang ditampilkan adalah apa yang tertulis di antara tanda petik.
Contoh :
Bila ingin menampilkan gabungan teks dan nilai dari suatu variabel, gunakan tanda kurung siku dimana nilai numerik harus dikonversi ke bentuk string terlebih dahulu dengan menggunakan fungsi num2str (number to string).
Contoh :
Penggabungan Input Data
Beberapa data yang dimasukkan yang ditulis dalam beberapa baris program dapat digabungkan dengan memberikan tanda koma (,) atau titik koma (;) sebagai pemisah, tanda ; membuat data menjadi tersembunyi.
>> A = 30
A =
30
>> disp(A)
30
>> disp('angkatan 45')
angkatan 45
>> x = 45
x =
45
>> disp ([ 'Nilai sudut salah satu segitiga adalah =',num2str(x)
,'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:
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
10
>> 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;
>>
% menghitung luas segi tiga siku-siku
% masukkan a = alas dan t = tinggi
% Luas = L = 0.5 * a * t
Fungsi di atas diketik dalam layer m.file, harus disimpan sesuai nama fungsinya yaitu “luassegitigasiku” dalam direktori.
Bila akan menjalankan fungsi tersebut m.file buka nama fungsi “luassegitigasiku” kemudian klik menu debug > run, kemudian dalam command windows kita masukkan nilai alas dan tingginya. Misalnya palas a = 10 dan tinggi t = 20, maka penulisan & hasil dalam command windows adalah :
VEKTOR DAN MATRIKS VEKTOR MATRIKS
Vektor dan matriks merupakan konsep dasar perhitungan dalam Matlab. Berbagai perhitungan dapat diselesaikan dengan lebih mudah, ringkas, dan cepat bila bentuknya dikonversi ke dalam bentuk vektor/matriks. Untuk itu, harus dipahami benar dasar operasi dengan menggunakan vektor/matriks.
1. Skalar
Di dalam Matlab, skalar adalah sebuah data dengan satu baris dan satu
kolom. Variabel-variabel yang memuat data skalar tersebut dapat mengalami operasi penjumlahan, pengurangan, perkalian, dan pembagian.
2. Vektor
Di dalam Matlab, vektor adalah sekumpulan data yang membentuk hanya satu baris atau satu kolom.
Penulisan elemen dilakukan di dalam kurung siku [ ] yang diantarai dengan spasi atau titik koma. Pengecualian berlaku hanya untuk penulisan data yang berbentuk deret dengan pola tertentu.
Vektor dapat mengalami operasi dengan skalar atau dengan vektor lain asalkan mempunyai dimensi yang sama.
Contoh : Vektor dan Operasinya
(i) Bentuk deret sederhana
Bentuk umum penulisan data dengan pola tertentu atau deret yang sederhana:
>> luassegitigasiku(10,20)
ans =
variabel = n : m dimana n = nilai awal, m = nilai akhir
(ii) Penggunaan increment
Bentuk umum penulisan data dengan pola tertentu atau deret:
variabel = n : i : m dimana n = nilai awal, m = nilai akhir, dan i = increment/langkah; bila I tidak didefinisikan, maka Matlab akan
menggunakan default-nya yaitu 1.
Vektor dapat mengalami operasi penjumlahan, pengurangan, perkalian, dan pembagian. Operasi penjumlahan dan pengurangan dapat dilakukan bila vektor-vektor yang akan dijumlahkan atau dikurangkan mempunyai orde (dimensi) yang sama. Perkalian 2 buah vektor x dan y mempunyai bentuk: Σxi * yi dimana kedua vektor juga harus berde sama, tetapi 1 vektor kolom dan yang lainnya vektor baris.
>> a = 1:5
a =
1 2 3 4 5
>> a = [1:5]
a =
1 2 3 4 5
>> a = [1 2 3 4 5]
a =
1 2 3 4 5
>>
1:10
ans =
1 2 3 4 5 6 7 8 9 10
>> 1:2:10
ans =
1 3 5 7 9
>> 0:2:10
ans =
3. Matriks
>> a = [1 2 3] % vector baris a
a =
1 2 3
>> b = [2 1 0] % vector baris b
b =
2 1 0
>> a + b % penjumlahan vector baris a dan vector baris b
ans =
3 3 3
>> a – b % pengurangan vector baris a dengan vector baris
b
ans =
-1 1 3
>> a * b % perkalian vector baris dengan vector baris tidak
bisa
??? Error using ==> *
Inner matrix dimensions must agree.
>> b=[2; 1; 0] % vector kolom b
b =
2
1
0
>> a * b % perkalian vector baris a denga vector kolom b
ans =
Matriks merupakan himpunan data yang membentuk beberapa baris dan kolom. Aturan operasi penjumlahan dan pengurangan yang berlaku pada vektor juga berlaku untuk matriks apabila matriks mempunyai dimensi yang sama.
Perkalian antara 2 buah matriks misalkan matriks A dan matriks B. Perkalian matriks A x B, harus memenuhi aturan bahwabanyaknya kolom pada matriks A harus sama dengan benyaknya baris pada matriks B.
Contoh : Matriks dan Operasinya
4. Pengalamatan
>> A=[1 2 3;2 1 3] % Operasi penambahan dan pengurangan matriks. Dimensi matriks harus sama A =
>> E=A*B % perkalian matriks ukuran baris matriks A tidak sama dengan ukuran kolom matriks B jadi error...
??? Error using ==> *
Inner matrix dimensions must agree. >> B'
ans =
3 2 3 2 3 2
>> A*B' %perkalian dapat dilakukan
Merupakan cara penulisan yang digunakan untuk menampilkan atau mendefinisikan ulang suatu data atau sekumpulan data pada vector atau matriks, ditulis dalam bentuk umum: variabel(i,j), dimana i menunjukkan baris dan j menunjukkan kolom Vektor dan Matriks
Contoh : Pengalamatan Vektor atau Matriks x(2) menunjukkan elemen kedua vektor x z(3) menunjukkan elemen ketiga vektor z12
r(2,1) menunjukkan elemen matriks r pada baris kedua kolom pertama
t(3,2) menunjukkan elemen matriks t pada baris ketiga kolom kedua s(:,2) menunjukkan semua elemen matriks s pada kolom kedua u(1,:) menunjukkan semua elemen matriks u pada baris pertama
PENGATURAN ALUR PROGRAM
Pengaturan alur program memungkinkan pengguna untuk mengulangi perhitungan secara berulang-ulang ataupun memilih serta memutuskan kondisi-kondisi yang sesuai/diinginkan. Matlab menyediakan empat bentuk pengaturan alur program yang akan dibahas berikut ini.
1. Loop for
Loop for memungkinkan sekelompok perintah diulang sebanyak suatu jumlah yang tetap. Bentuk umum:
for loopvariable = loopexpression perintah-perintah
end
Loopvariable merpakan nama variabel yang diberikan, sedangkan loopexpression biasanya memiliki bentuk n:m atau n:i:m.
Perintah perintah di antara baris for dan end dikerjakan berulang-ulang dari nilai awal n sampai nilai akhir m, dengan increment (langkah) sebesar i.
Contoh : Perhitungan pangkat 3 dari himpunan bilangan bulatdari 1 sampai 4
Contoh : Operasi perkalian 2 buah vector
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 :
>> 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
n = 1; x = 0; while x <15 x(n) = n^2; n = n+1; end >> x
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%
Program ditulis dalam m.file, disimpan dengan nama kue.m Apabila di_run hasilnya adalah:
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
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
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 =
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.
Nilai
Akhir=
KD
1
+
KD
2
+
K
3
+
D
4
4
, Jika Nilai akhir >80 memperoleh A, jika70
≤
Nilai
Akhir<
80
, nilai B, Jika60
≤
Nilai
Akhir<
70
nilai C, jika Nilai_Akhir < 60 nilai DContoh Program adalah :
Program di atas disimpan dalam format m.file dengan nama nilai.m. apabila di run hasilnya adalah:
18
KD1 = input('Masukkan nilai KD 1 sekala 100, KD 1 ='); KD2 = input('Masukkan nilai KD 2 sekala 100, KD 2 ='); KD3 = input('Masukkan nilai KD 3 sekala 100, KD 3 ='); KD4 = input('Masukkan nilai KD 4 sekala 100, KD 4 =');
NA = (KD1+KD2+KD3+KD4)/4
Masukkan nilai KD 1 sekala 100, KD 1 =80 Masukkan nilai KD 2 sekala 100, KD 2 =78 Masukkan nilai KD 3 sekala 100, KD 3 =79 Masukkan nilai KD 4 sekala 100, KD 4 =79
NA =
79
4. Switch-case-otherwise Bentuk umum:
switch ekspresi case ekspresi1 perintah-perintah case ekspresi2 perintah-perintah case ……
. .
otherwise
perintah-perintah end
Program tersebut ditulis dalam m.file dan diberi nama pilihan.m, apabila di run hasilnya adalah :
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
>> 1. Newton 2. Regula Falsi 3. Newton Raphson
Chapter 1
ERROR PERHITUNGAN NUMERIK
A. Tujuan
a. Memahami galat dan hampiran
b. Mampu menghitung galat dan hampiran
c. Mampu membuat program untuk menyelesaikan perhitungan galat dan hampiran dengan Matlab
B. Perangkat dan Materi a. Software Matlab
b. Materi Galat dan Hampiran
C. Dasar Teori (Hampiran)
Contoh : Hitunglah
√
2
sampai empat angka desimal. Penyelesaian :Mennggunakan algoritma untuk menghitung
√
2
dengan menggunakan operasi perkalian, pembagian, dan penjumlahan sebagai berikut :Dengan menggunakan algoritma di atas, diperoleh, untuk n = 2,3,4,...
x
2=
3
Atau dalam bentuk pecahan desimal :
Jadi, hampiran sampai empat angka desimal untuk
√
2
adalahx
5=1 .4142
Implementasi dengan Matlab
Berikut ini langkah-langkah percobaan untuk menyelesaikan persoalan di atas:
a. Buka program Matlab
b. Buat programnya di Command Windows >> x=1;
>> e=1;
>> while e > 0.00001, y=x;
x=(y+2/y)/2 e=abs(x-y); end
x =
1.5000 x =
1.4167 x =
1.4142 x =
1.4142
>> fprintf('%5.7f',x); 1.4142136
c. Anda dapat mengubah batas nilai e untuk mendapatkan tingkat keakuratan yang diinginkan.
Definisi Kesalahan (Galat)
Yaitu kesalahan yang ditimbulkan karena proses pengukuran atau penggunaan hampiran (aproksimasi).
numerik (Volkof,1990:8, dalam buku Komputasi Numerik dengan Matlab, 2005 oleh Sahid :3) adalah :
1. Model matematika untuk suatu fenomena alam 2. Galat bawaan dari masukan (parameter masukan) 3. Metode Penyelesaian
4. Adanya pembulatan dalam melakukan operasi-operasi aritmetika. Contoh : Galat Penjumlahan dan Pengurangan
Teori :
Dari hubungan nilai eksak diperoleh :
x
+
y
=¯
x
+
e
¯x+¯
y
+
e
¯y=(
x
+
y
)+(
e
¯x+
e
¯y)
Jadi galat penjumlahan sama dengan jumlah galat suku-suku yang dijumlahkan, atau dapat ditulis :
e
¯x+¯y=
e
¯x+
e
¯yGalat relatif penjumlahan adalah :
r
¯x+ ¯y=
e
¯x+ ¯y¯
x
+ ¯
y
=
e
¯x+
e
¯y¯
x
+¯
y
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 :
e
¯x−¯y=
e
¯x−
e
¯yGalat relatif pengurangan adalah :
r
¯x−¯y=
e
¯x−¯y¯
x
−¯
y
=
e
¯x−
e
¯y¯
x
−¯
y
Dari persamaan terakhir dapat dipahami bahwa, apabila
¯
x
≈¯
y
maka galat relatif pengurangan kedua hampiran akan semakin besar.x
i−
E
≤
X
i≤
x
i+
E
, untuki
=
1,2,....
,n
Dengan menjumlahkan nilai-nilai tersebut diperoleh :∑
Jadi, galat jumlah n nilai hampiran tersebut adalah jumlah maksimum galat masing-masing hampiran.
Contoh Kasus :
Hitunglah jumlah
√
1
+
√
2
+
...
+
√
100
dengan menggunakan pembulatan sampai dua angka desimal (di belakang koma). Berapakah maksimum galat penjumlahan tersebut? Berapakah galat yang sesungguhnya?Penyelesaian :
Kita dapat menggunakan Matlab untuk menghitung jumlahan tersebut. Dalam menggunakan Matlab perhitungan (menggunakan 16 angka signifikan). Untuk menghitung sampai dua angka desimal, masing-masing akar dikalikan 100 dan dibulatkan. Hasilnya sama dengan 100 kali jumlah tersebut.
Implementasi dengan Matlab: a. Bukalah program Matlab
c. Jadi, perhitungan menggunakan dua angka desimal menghasilkan jumlah 671.48.
Oleh karena setiap akar dihitung sampai dua angka desimal, maka galat
maksium masing-masig suku adalah
0.5
×
10
−2.
Oleh karena itu, maksimumgalat hampiran jumlah tersebut adalah
100
×
0.5
×
10
−2=
0.5
.d. Nilai yang sebenarnya dapat dihitung dengan menggunakan Matlab berikut, tulis program pada command windows :
>> s=0;
for k=1:100, s=s+sqrt(k); end;s=s s =
671.4629 >> s=fprintf('%5.16f',s);
671.4629471031477100
Jadi, galat yang sesungguhnya adalah sekitar 0.071, lebih kecil daripada maksimum galatnya.
Apabila dikerjakan dengan Matlab tanpa adalanya looping adalah sebagai berikut :
>> format long g
barisan=1:100;
>> s1=sum(round(100*sqrt(barisan))/100); >> s2=sum(sqrt(barisan));
>> s1=s1 s1 =
671.48 >> s2=s2
s2 =
Chapter 2
PENYELESAIAN
PERSAMAAN NON LINEAR
METODE GRAFIK DAN TABULASI
A. Tujuand. Memahami Metode Grafik dan Tabulasi
e. Mampu Menentukan nilai akar persamaan dengan Metode Grafik dan Tabulasi
f. Mampu membuat program untuk menentukan nilai akar dengan Metode Grafik dan Tabulasi dengan Matlab
B. Perangkat dan Materi c. Software Matlab d. Metode Grafik
C. Dasar Teori
Fungsi f di sini adalah fungsi atau persamaan tak linear. Nilai x = x0 yang memenuhi (1) disebut akar persamaan atau fungsi tersebut. Sehingga x0 di sini menggambarkan fungsi tersebut memotong sumbu-x di x = x0.
Persamaan atau fungsi f dapat berbentuk sebagai berikut:
a. Persamaan aljabar atau polinomial
f(x) = pn(x) = anxn + an-1xn-1 + … + a1x + a0
b. Persamaan transenden
Yaitu persamaan yang mengandung fungsi antara lain trigonometri, logaritma, atau eksponen
c. Persamaan campuran
Contoh: (i) x3 sin(x) + x = 0 (ii) x2 + log(x) = 0
Untuk polinomial derajat dua, persamaan dapat diselesaikan dengan rumus akar persamaan kuadrat. Misalkan bentuk persamaan kuadrat adalah: ax2 +
bx + c = 0 dapat dicari akar-akarnya secara analitis dengan rumus berikut.
x12 =
Untuk polinomial derajat tiga atau empat, rumus-rumus yang ada sangat kompleks dan jarang digunakan. Sedangkan untuk menyelesaikan polinomial dengan derajat yang lebih tinggi atau persamaan tak linear selain polinomial, tidak ada rumus yang dapat digunakan untuk menyelesaikannya. Metode Numerik memberikan cara-cara untuk menyelesaikan bentuk tersebut, yaitu
metode hampiran. Penyelesaian numerik dilakukan dengan hampiran yang berurutan (metode iterasi), sedemikian sehingga setiap hasil adalah lebih teliti dari perkiraan sebelumnya. Dengan melakukan sejumlah proisedur iterasi yang dianggap cukup, akhirnya didapat hasil perkiraan yang mendekati hasil eksak (hasil yang benar) dengan toleransi kesalahan yang diijinkan.Metode iterasi mempunyai keuntungan bahwa umumnya tidak sangat terpengaruh oleh merambatnya error pembulatan.
a. LOKALISASI AKAR
Lokasi akar persamaan tak linear diselidiki untuk memperoleh tebakan awal, yaitu:
(a) Cara grafik
Cara grafik ini dibedakan menjadi dua macam yaitu:
(i) Cara grafik tunggal
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');
(ii) Cara grafik ganda
Misalkan f(x) = exp(-x) – x dan f1(x) = exp(x), f2(x) = x,
maka f(x) = f1(x) - f2(x)
Gambar-2
Gambar-2 bisa dibuat dengan Matlab sbb.
x=-0.1:0.01:2.5;
f1=exp(-x);
f2=x;
x1=-0.2:0.01:2.5;
y1=0.*x1;
y2=-0.2:0.01:1.5;x2=0.*y2;
plot(x,f1,x,f2,x1,y1,'r',x2,y2,'r');
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));
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
---0.0 1.000 +
0.1 0.805 +
0.2 0.619 +
0.3 0.441 +
0.4 0.270 +
0.5 0.107 +
0.6 0.051
0.7 0.203
0.8 0.351
0.9 0.493
1.0 0.632
-Akar ada di interval [0.5, 0.6]
Latihan.
Cari akar persamaan tak linier dengan metode garfik dan tabulasi : 1.
f
(
x
)=2
x
32.
f
(
x
)=(2
x
+
1
)
3METODE 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)<
toleransi(misal
10
−6 ).nilai b=m apabila f(a).f(m)<0, dan mengganti a=m bila f(a).f(m)>0 seperti terlihat pada Gambar 3.1 Proses menemukan mbaru dilakukan seperti prosedur yang telah dijelaskan.
Secara sederhana dari langkah-langkah yang dijelaskan di atas dapat disusun suatu algoritma program sebagai berikut:
1. Tentukan fungsi f(x), batas bawah a, batas atas b, toleransi, dan jumlah iterasi maksimum.
2. Hitung f(a) dan f(b).
3. Periksa apakah f(a).f(b)> 0; jika ya, keluar dari progam karena pada interval yang diberikan tidak terdapat akar persamaan.
4. Hitung nilai m = (a+b)/2.
5. Jika nilai mutlak f(m) < toleransi, tuliskan m sebagai hasil perhitungan, dan akhiri program; jika tidak, lanjutkan ke langkah berikutnya.
6. Jika jumlah iterasi > iterasi maksimum, akhiri program. 7. Jika f(a).f(m)<0, maka b=m, jika tidak, a = m.
8. Kembali ke langkah (2).
Contoh:
Persamaan,
f
(
x
)=
x
x−5
. cari akarnya! Langkah 1:Nilai awal: batas bawah a=2, batas atas b=3, sehingga: f(2)=22-5= -1
f(3)=33-5=22 m=(2+3)/2=2.5
f(2.5)=(2.5)2.5-5=|4.8821| > 0.000001
Langkah 2:
karena f(a).f(m)= (-1)(4.8821) < 0, maka b=m, sehingga: a=2 _ f(2)=22-5= -1
b=2.5 _ f(2.5)=(2.5)2.5-5=4.8821 m=(2+2.5)/2=2.25
karena f(a).f(m)= (-1)(1.2003) < 0, maka b=m, sehingga: a=2 _ f(2)=22-5= -1
b=2.25 _ f(2.25)=(2.25)2.25-5=1.2003 m=(2+2.25)/2=2.125
f(2.125)=(2.125)2.125-5=|-0.0382|> 0.000001
Langkah 4:
karena f(a).f(m)= (-1)(-0.0382) > 0, maka a=m, sehingga: a=2.125 _ f(2.125)=22.125-5= -0.0382
b=2.25 _ f(2.25)=(2.25)2.25-5=1.2003 m=(2.125+2.25)/2=2.1875
f(2.1875)=(2.1875)2.1875-5=|0.5416|> 0.000001
Langkah 5:
karena f(a).f(m)= (-0.0382)(0.5416) < 0, maka b=m,sehingga: a=2.125 _ f(2.125)=22.125-5= -0.0382
b=2.1875 _ f(2.1875)=(2.1875)2.1875-5=0.5416 m=(2.125+2.1875)/2=2.1563
f(2.1563)=(2.1563)2.1563-5=|0.2430|> 0.000001
Seterusnya sampai didapatkan f(m)<toleransi yang disyaratkan. Langkah-langkah tersebut disusun
Dengan toleransi sebesar 10-6, pada langkah ke 23 iterasi berhenti dengan hasil
Implementasi dengan MATLAB:
Cara menggunakan program di atas untuk menyelesaikan persoalan
f
(
x
)=
x
x−5
dalamfunction m= TengahInterval(f,a,b,n)
% f=fungsi,a=nilai awal,b=nilai akhir,n=jumlah iterasi
format long % format angka yang dipakai 15 digit di belakang koma fa = f(a);
fb = f(b);
if fa*fb > 0.0 % jika nilai f(a) dan f(b) sama tanda error('pesan kesalahan:sama tanda')
end
for i=1:n
m=(a+b)/2; y=f(m);
disp([m y]) % menampilkan m dan f(m) ke layar
if abs(y) <= 0.000001 % toleransi dipenuhi (akar persamaan ditemukan)
break % menghentikan iterasi end
if fa*y < 0 b=m; else
a=m; end
MATLAB, di command window ketikkan perintah:
>>f=inline(‘x^x-5’) % mendefinisikan fungsi
f
(
x
)=
x
x−5
>>x=TengahInterval(f,-1,3,15) % memanggil file tengahint.m a=-1,b=3, iterasi=15
dari dua perintah di atas MATLAB akan memberikan jawaban: m y
1 -4 2 -1
2.50000000000000 4.88211768802618 2.25000000000000 1.20027091141992 2.12500000000000 -0.03821735673994 2.18750000000000 0.54161544380854 2.15625000000000 0.24250328354650 2.14062500000000 0.09992110005946 2.13281250000000 0.03030574169645 2.12890625000000 -0.00409119118124 2.13085937500000 0.01307328653945 2.12988281250000 0.00448256839976 2.12939453125000 0.00019357102259 2.12915039062500 -0.00194933919712 2.12927246093750 -0.00087801640156
x =
Metode Newton Raphson
A. Tujuan
g. Memahami Metode Newton Raphson
h. Mampu Menentukan nilai akar persamaan dengan Metode Newton Raphson
i. Mampu membuat program untuk menentukan nilai akar dengan Metode Newton Raphson dengan Matlab
B. Perangkat dan Materi f. Software Matlab
g. Metode Newton Raphson
C. Dasar Teori
Metode Newton Raphson
Metode yang lebih baik dalam memilih g’(x) adalah dengan membuat garis singgung dari f(x) untuk nilai x yang dipilih, dan dengan menggunakan besaran x dari perpotongan garis singgung terhadap absis sehingga diperoleh nilai xbaru. Metode ini diperlihatkan pada gambar berikut.
f
'(
x
i)=
f
(
x
i)−
0
Metode ini dikenal dengan Metode Newton-Raphson dan merupakan salah satu cara yang paling dikenal dalam metode penyelesaian fungsi f(x)=0. Keuntungan cara ini adalah sifat konvergensi kuadratik dalam proses iterasi.
Contoh:
Carilah akar dari fungsi
f
(
x
)=
x
3−3
x
−20
makaf
'(
x
)=3
x
2−3
Dengan demikian rumus untuk menentukan akarnya adalah :x
i+1=
x
i−
(
x
f
(3.75)=3.75
3−3
(3.75)−20=21.84844
f
'(3.75)=3(3.75
)
2−3=39.1875
x
2=3.75−
21.4844
39.1875
=3.201754
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.
6. x = xbaru, dan kembali ke langkah (2).
Flow Chart Metode Newton Raphson
Implementasi dengan MATLAB
40
function x = MetodeNewton(f,x0,n,tol)
int i;
f0=inline(char(f)); % menyelesaikan persoalan f(x) = 0
dengan Metode Newton
g=inline(char(diff(f))); % dengan g sebagai fungsi
turunannya
.
x = x0;
i=0; % perkiraan awal x dengan nilai x0
fa=f0(x);
while abs(fa) > tol % lakukan sampai toleransi tercapai
fa=f0(x);
fb=g(x);
if fa == 0 or i=n
return % program berhenti jika f(x) = 0
end
Apabila di run dengan Command Window :
f =‘x^3-3*x-20’ >> f0=inline(char(f)) f0 =
Inline function: f0(x) = x^3-3*x-20 >> g=inline(char(diff(f))) g =
Inline function:h g(x) = 3*x^2-3
>> x=MetodeNewton(f,-2,20,0.000001) 0 0.4444 -22.0000
1.0000 -8.3806 -21.2455 2.0000 -5.5715 -583.4706 3.0000 -3.6161 -176.2331 4.0000 -2.0583 -56.4347 5.0000 0.2637 -22.5450 6.0000 -7.1781 -20.7728 7.0000 -4.7482 -368.3180 8.0000 -3.0029 -112.8032 9.0000 -1.4202 -38.0705 10.0000 4.6785 -18.6037 11.0000 3.5875 68.3674 12.0000 3.1548 15.4078 13.0000 3.0828 1.9339 14.0000 3.0809 0.0487 15.0000 3.0809 0.0000 16.0000 3.0809 0.0000 x =
METODE SECANT
A. Tujuan
j. Memahami Metode Newton Raphson
k. Mampu Menentukan nilai akar persamaan dengan Metode Secant l. Mampu membuat program untuk menentukan nilai akar dengan
Metode Secant dengan Matlab B. Perangkat dan Materi
h. Software Matlab i. Metode Secant C. Dasar Teori
Metode Secant
Merupakan perbaikan dari kekurangan yang dimiliki oleh metode
newton, yaitu nilai turunan f’(x) didekati dengan beda hingga ( Δ ).
Penentuan nilai turunan fungsi dengan metode Secant.
Dimana :
f
'(
x
i)=
Δf
'(
x
i)
Δx
i→
f
'
(
x
i)=
f
(
x
i)−
f
(
x
i−1)
x
i−
x
i−1Sehingga bila dimasukkan ke dalam persamaan Newton-Raphson :
x
i+1=
x
i−
f
(
x
i)
x
i−
x
i−1Contoh :
f
(
x
)=
x
3−3
x
−20
Untuk perkiraan awal
x
1=
6
→
f
(
6
)=
178
x
2=
2
→
f
(
2
)=
18
Algoritma program untuk metode Secant adalah sebagai berikut: 1. Tentukan x0, x1 , toleransi, dan jumlah iterasi maksimum. 2. Hitung xbaru = x1 – f(x1)( x 1- x0)/f(x1) –f(x0).
3. Jika nilai mutlak (xbaru – x1) < toleransi, diperoleh tulisan xbaru sebagai hasil perhitungan;
4. jika tidak, lanjutkan ke langkah berikutnya.
5. Jika jumlah iterasi > iterasi maksimum, akhiri program. 6. x = xbaru, dan kembali ke langkah (2).
Impementasi Metode Secant dengan MATLAB :
Simpan fungsi di atas dengan naman MetodeSecant. Apabila di run lewat command windows hasilnya adalah : >> f=’x^3-3*x-20’ (diketikkan dahulu fungsinya) f =
x^3-3*x-20
>> f=inline(char(f)) (membuat fungsi x) f =
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
x = x1 - fb.*(x1-x0)./(fb-fa); % rumus Newton
disp([i x fa]) % menampilkan hasil hitungan
x0=x1;
x = 3.0809
Soal Tugas di rumah :
Dikumpulkan (Buat LAPORAN PRAKTIKUM)
1.
f
(
x
)=
x
3+
x
2−3
x
−3=0
Carilah akar x dengan tebakan awalx
0=
1
dan
x
1=
2
dengan program Melab dengan Metode : a. Newton Raphsonb. Secant
Latihan di kelas :
1.
f
(
x
)=
e
−x−
x
dengan titik awal X0/ a = 0 dan x1/b = 1, carilah nilai x dengan program Matlab dengan Metode :a. Newton Raphson b. Secant
Praktikum 3
LAPORAN SEMENTARA
Hari/Tanggal
:
Nama
:
Nim
:
Kelas
:
METODE REGULA FALSI
A. Tujuan
a. Memahami Metode Regula Falsi
b. Mampu Menentukan nilai akar persamaan dengan Metode Regula Falsi c. Mampu membuat program untuk menentukan nilai akar dengan Metode
Regula Falsi dengan Matlab B. Perangkat dan Materi
d. Software Matlab
j. Metode Regula Falsi
C. Dasar Teori
Metode Regula Falsi atau Interpolasi Linier
Metode ini sangat mirip dengan metode bisection, perbedaannya hanya dalam menentukan nilai m-nya.
m
=
b
−
f
(
b
)(
b
−
a
)
f
(
b
)−
f
(
a
)
Penentuan nilai m dari perpotongan garis lurus melalui dua titik.
Proses dengan cara ini memberikan perhitungan yang lebih cepat dibandingkan dengan metode bisection. Algoritma untuk metode ini sama dengan metode bisection, hanya pada bagian menentukan nilai m disesuaikan dengan rumus yang ada.Algoritma tersebut adalah:
1. Tentukan fungsi f(x), batas bawah a, batas atas b, toleransi, dan jumlah iterasi
maksimum.
3. Periksa apakah f(a).f(b)> 0; jika ya, keluar dari progam karena pada interval yang
diberikan tidak terdapat akar persamaan. 4. Hitung nilai
m
=
b
−
f
(
b
)(
b
−
a
)
f
(
b
)−
f
(
a
)
5. Jika nilai mutlak f(m) < toleransi, tuliskan m sebagai hasil perhitungan, dan akhiri
program; jika tidak, lanjutkan ke langkah berikutnya. 6. Jika jumlah iterasi > iterasi maksimum, akhiri program. 7. Jika f(a).f(m)<0, maka b = m, jika tidak, a = m.
8. Kembali ke langkah (2).
Contoh : cari akar persamaan
f
(
x
)=
x
3−
x
2−1
dengan toleransi:10
−6Langkah 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
)
3
−(−
1
)
=
0 .5
f
(
0.5
)=
0.5
3−
0.5
2−
1
=|−
1.1250000
|>
0.000001
Langkah 2:
karena f(a).f(m)= (-1)( -1.1250000) > 0, maka a = m, sehingga: a=0.5, b=2
f
(0.5
)=0.5
3−0.5
2−1=−1 .1250000
f
(
2)=2
3−2
2−1=3
m
=
2
−
3
(
2
−
0 .5
)
3
−(−
1. 125
)
=
0. 909091
f
(
0.909091
)=(
0.909091
)
3−(
0.909091
)
2−
1
=|−
1.07513141
|>
0.000001
Langkah 3:
karena f(a).f(m)= (-1.1250000)( -1.07513141) > 0, maka a=m, sehingga: a=0.909091, b=2
f
(0. 909091
)=(
0.909091)
3−(
0.909091
)
2−1=−1.07513141
m
=
2
−
3
(
2
−
0 .909091
)
3
−(−
1.07513141
)
=
1 .196903
f
(
1.196903
)=(
1.196903
)
3−(
1.196903
)
2−
1
=|−
0.717921331
|>
0.000001
Langkah 4:
karena f(a).f(m)= (-1.07513141)(-0.717921332) > 0, maka a=m, sehingga: a=1.196903, b=2
f
(1.196903)=(
1. 196903)
3−(1.196903)
2−1=−0.717921332
f
(
2)=2
3−2
2−1=3
m
=
2
−
3
(
2
−
1. 196903
)
3
−(−
0 .717921332
)
=
1.351979027
f
(
1.351979
)=(
1.351979
)
3−(
1.351979
)
2−
1
=|−
0.35663608
|>
0.000001
Langkah 5:
karena f(a).f(m)= (-0.717921332)( -0.35663608) > 0, maka a=m, sehingga: a=1.351979, b=2
f
(1.351979)=(
1. 351979
)
3−(
1.351979)
2−1=−0 .35663608
f
(
2)=2
3−2
2−1=3
m
=
2
−
3
(
2
−
1 .351979
)
3
−(−
0 .35663608
)
=
1. 420829976
f
(
1.420829976
)=(
1.420829976
)
3−(
1.420829976
)
2−
1
=|−
0.1.5044619
|>
0.000001
Seterusnya sampai toleransi yang disyaratkan tercapai.
Perhitungan dapat dilihat dalam tabel berikut :
Langkah-langkah penyelesaian persamaan
f
(
x
)=
x
3−
x
2−1
dengan metode regula falsiImplementasi dalam MATLAB
Berikut ini, kode dalam MATLAB untuk menyelesaikan persamaan non linier dengan metode regula falsi.
Cara mengunakan program di atas untuk menyelesaikan persoalan
f
(
x
)=
x
3−
x
2−1
dalam command window MATLAB, ketikkan perintah:>>f=inline(‘x^3-x^2-1’) % mendefinisikan fungsi f(x)=x3-x2 -1
>>m=regfalsi(f,1,2,20) % memanggil file regfalsi.m a=1,b=2, iterasi=20 m y
format long % format angka yang dipakai 15 digit di
belakang koma
Praktikum 2
LAPORAN SEMENTARA
Hari/Tanggal :
Nama:
Nim:
Kelas:
TTD Dosen/Asisten:
1.46551929414272 -0.000182424966291.46573926880956 0.00059033482427 1.46557428780943 0.00001073416219 1.46553304255940 -0.00013413711025 1.46554335387191 -0.00009792037557 1.46555108735629 -0.00007075735056 1.46555688746957 -0.00005038481518 1.46556123755454 -0.00003510526367
x =
1.46556123755454
Soal Tugas di rumah:
Dikumpulkan (Buat LAPORAN PRAKTIKUM)
1.
f
(
x
)=
e
x−
4
x
dengan titik awal a = 0 dan b = 1, carilah nilai x dengan program Matlab dengan Metode :a. Biseksi b. Regula Falsi
Latihan di kelas :
1.
f
(
x
)=
e
−x−
x
dengan titik awal a = 0 dan b = 1, carilah nilai x dengan program Matlab dengan Metode :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, masing-masing 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 .
CONTOH :
Misalkan akn menghitung hampiran penyelesaian masalah nilai awal :
Masalah nilai awal ini mempunyai penyelesaian eksak
Berikut perintah-perintah dalam matlab dengan metode euler.
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 :
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];
Gambar 1 : solusi ekasakdan 3 hampiran penyelesaian PD
.
Berikut ini adalah perintah untuk menampilkan tabel perbandingan ketiga hampiran. Kolom pertama adalah nilai kolom kedua nilai hampiran
dengan lebar langkah h = 0.3, kolom ketiga nilai hampiran dengan lebar langkah 0.15, kolom keempat nilai hampiran dengan lebar langkah h = 0.06, dan kolom terakhir adalah nilai eksaknya.
tabel=[t1 y1 y2(1:2:21) y3(1:5:51),ye3(1:5:51)] tabel =
0 1.0000 1.0000 1.0000 4.0000 0.3000 0.8500 0.8669 0.8762 3.5821 0.6000 0.7675 0.7963 0.8123 3.2225 0.9000 0.7424 0.7792 0.7998 2.9129 1.2000 0.7660 0.8079 0.8314 2.6464 1.5000 0.8311 0.8757 0.9009 2.4171 1.8000 0.9314 0.9771 1.0030 2.2197 2.1000 1.0617 1.1072 1.1331 2.0498 2.4000 1.2175 1.2618 1.2871 1.9036 2.7000 1.3949 1.4373 1.4618 1.7777 3.0000 1.5906 1.6309 1.6542 1.6694
Tugas :
Dengan lebar langkah h = 0.05.
2. Gunakan metode Euler untuk mendapatkan hampiran penyelesaian masalah nilai awal di bawah ini di sepuluh titk dengan lebar langkah (a). h = 0.1, (b). h = 0.01, (c). h = 0.001
Jelaskan bahwa solusi eksak PD adalah :
Gambar grafik solusi eksak tersebut bersama titik-titik hampiran yang Anda peroleh di a,b, dan c.
Metode Runge – Kutta
Pada Metode Euler nilai
y
k+1 dihitung dengan menggunakany
k memakai rumus :y
k+1=
y
k+
hf
(
t
k, y
k)
Metode ini disebut metode satu langkah karena informasi dari satu langkah sebelumnya digunakan untuk menghitung hampiran sekarang. Oleh karena itu galat di dalam metode Euler adalah O(h), kita perlu memilih lebar langkah yang sangat kecil untuk mendapatkan keakuratan yang diinginkan. Galat di dalam metode Runge – Kutta jauh lebih kecil daripada galat Metode Euler.
Ide belakang Metode Runge - Kutta adalah menghitung nilai
f
(
t , y
)
pada beberapa titik di dekat kurva penyelesaian yang dipilih denganmetode tertentu di dalam interval
(
t
k, t
k+
h
)
dan mengombinasikan nilai-nlai ini sedemikian sehingga diperoleh keakuratan yang baik padahampiran berikutnya,
y
k+1 .Menghitung hampiran penyelesaian masalah nilai awal
y'
=
f
(
t , y
)
Pada metode ini
y
k+1 dihitung dengan menggunakan langkah – langkahsebagai berikut:
S
2 digunakan untuk menghitung hampiran selanjutnyay
k+1 .Aturan di atas diperoleh sebagai berikut:
Misalkan kita akan menyelesaikan masalah nilai awal :
y'
(
t
)=
f
(
t , y
(
t
))
pada[
a ,b
]
dengany
(
t
0)=
y
0h
=
t
k+1−
t
k untuk menghitung hampiran suku integral, diperoleh hampiran :y
(
t
k+1)≈
y
(
t
k)+
h
2
[
f
(
t
k, y
k)+
f
(
t
k+1, y
k+1)
]
suku kedua pada ruas kanan memuat nilai ruas kiri ,
y
k+1 .Kita dapat menggunakan Metode Euler untuk menaksir
y
k+1 pada ruaskanan, sehingga diperoleh Metode Heun :
y
(
t
k+1)=
y
(
t
k)+
h
2
[
f
(
t
k, y
k)+
f
(
t
k+1, y
k+
hf
(
t
k, y
k))
]
Galat pada setiap langkah dalam Metode Heun (Atau Metode RK2) sama dengan galat aturan trapezium, yakni
y
n(
ε
k)
h
3
12
oleh karena itu, galat setelah n langkah pada Metode Heun menjadi :
∑
Dengan demikian kita peroleh bahwa galat pada setiap langkah (iterasi) dalam Metode Heun (RK2) adalah
O
(
h
3)
. Sedangakan galat yang terakumulasi pada akhir setiap lankah adalahO
(
h
2)
.Contoh :
Gunakan Metode Heun (RK2) untuk menyelesaikan masalah nilai awal :
y'
=(
t
−
y
)/
2
pada [0, 3] dengan y(0) = 1, dengan menggunakan lebarRumus Iterasi Heun untuk hampiran solusi PD tersebut adalah :
y
k+1=
y
k+
h
Penyelesaian eksak masalah nilai awal di atas adalah :y
=
e
−t/2+
t
−
2
.Chapter 4
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
d. Solusi sistem TRIDIAGONAL (S3DIAG), prinsipnya merupakan solusi SPL dengan bentuk matrik pita (satu diagonal bawah, satu diagonal utama, dan satu diagonal atas) pada matriks A.
2. MetodeTak-Langsung (Metode Iteratif)
a. Metode Jacobi, prinsipnya: merupakan metode iteratif yang melakuakn perbaharuan nilai x yang diperoleh tiap iterasi (mirip metode substitusi berurutan, successive substitution),
b. Metode Gauss-Seidel, prinsipnya: mirip metode Jacobi, namun efisien dan ‘time consuming’ (memerlukan CPU- time) yang jauh lebih besar dari metode langsung.
Metode Eliminasi Gauss, metode Dekomposisi LU dan Metode Iterasi Jacobi merupakan metode yang dapat dijadikan sebagai alternatif untuk menyelesaikan model matematika. Metode Eliminasi Gauss mereduksi matriks koefisien A ke dalam bentuk matriks segitiga, dan nilai-nilai variabel diperoleh dengan teknik substitusi. Pada metode Dekomposisi LU, matriks A difaktorkan menjadi matriks L dan matriks U, dimana dimensi atau ukuran matriks L dan U harus sama dengan dimensi matriks A.
Pada metode iterasi Jacobi, penyelesaian dilakukan secara iterasi, dimana proses iterasi dilakukan sampai dicapai suatu nilai yang konvergen dengan toleransi yang diberikan. Dari hasil pengujian dapat diketahui bahwa metode Iterasi Jacobi memiliki hasil ketelitian yang lebih baik dan waktu komputasi yang lebih cepat dari metode Eliminasi Gauss dan metode Dekomposisi LU.
Penggunaan pendekatan dengan pemrograman MATLAB, salah satu software komputer yang dapat digunakan untuk memberikan solusi komputasi numerik. Karena metode – metode numerik dengan bahasa pemrograman yang sederhana, namun dapat menyelesaikan permasalahan yang dihadapi oleh mereka yang bergerak dalam bidang matematika maupun aplikasi matematika.
B. Rumusan Masalah
Dari uraian di atas, dapat dirumuskan permasalahannya.
1. Apakah urutan persamaan di dalam suatu SPL berpengaruh terhadap penampilan metode iterasi Jacobi?
2. Apakah program MATLAB 7 dapat digunakan sebagai solusi pemrograman dalam metode numerik khususnya metode
iterasiJacobi?
Dalam makalah ini akan membahas tentang penggunaan metode
iterasi Jacobi dalam penyelesaian Sistem Persamaan Linear (SPL) berukuran
besar dengan persentase elemen nol pada matriks koefisien besar dengan pemrograman MATLAB 7 for Windows.
D. Tujuan
Tujuan penulisan makalah sebagai berikut.
1. Memberikan solusi dalam memperoleh urutan persamaan di dalam suatu SPL dengan menggunakan metode iterasi Jacobi.
2. Penggunaan MATLAB 7 untuk membantu menyelesaikan pemrograman dalam penyelesaian Sistem Persamaan Linear (SPL) dengan metode iterasi Jacobi.
E. Manfaat
Dapat diambil manfaatnya sebagia berikut.
1. Dapat digunakan sebagai solusi dalam memperoleh urutan persamaan di dalam suatu SPL berukuran besar dengan menggunakan metode
iterasi Jacobi.
2. Memberi kemudahan dalam menyelesaikan Sistem Persamaan Linear (SPL) berukuran besar dengan metode iterasi Jacobi dengan pemrograman MATLAB 7 for Windows.
PEMBAHASAN
A. Iterasi Jacobi
Metode ini merupakan suatu teknik penyelesaian SPL berukuran n x n, AX
= b, secara iteratif. Proses penyelesaian dimulai dengan suatu hampiran awal terhadap penyelesaian, X0, kemudian membentuk suatu serangkaian vector
X1, X2, … yang konvergen ke X.
Teknik iteratif jarang digunakan untuk menyelesaikan SPL berukuran kecil karena metode-metode langsung seperti metode eliminasi Gauss lebih efisien dari pada metode iteratif. Akan tetapi, untuk SPL berukuran besar dengan persentase elemen nol pada matriks koefisien besar, teknik iteratif lebih efisien daripada metode langsung dalam hal penggunaan memori
START
STOP
AX = b
ii i
j ij j i
i
a
y
a
b
x
Input A, b, X0, T, N
xi = ( x1 x2 x3 …xn) [X, g, H]= jacobi(A,b,X0,T,N)
INPUT : n, A, b, dan Himpunan awal Y = (y1 y2 y3…yn)T, batas toleransi T, dan maksimum iterasi N.
OUTPUT: X = (x1 x2 x3 ..xn)T, atau pesan “ gagal “.
LANGKAH – LANGKAH :
1. set penghitung iterasi ke =1 2. WHILE k ≤ n DO
(a) FOR i = 1, 2, 3, ..., n, hitung
x
i=
b
i−
∑
j≠ia
ijy
ja
ii(b) Set X = (x1 x2 x3 ..xn)T
(c) IF
‖
X
−
Y
‖
< T THEN STOP(d) Tambahan penghitung iterasi, k = k + 1 (e) FOR i = 1, 2, 3, ..., n, Set yi = xi
(f) set Y = (y1 y2 y3 ..yn)T 3. STOP
D. Iterasi Jacobi dengan Menggunaan Matlab 7
Dalam bentuk matriks, rumus iterasi dapat dinyatakan sebagai X(k) = D-1(b-(L+U)X(k-1)),
Dengan A = L + D + U ( L matriks segitiga bawah, D matriks diagonal, U Matriks segitiga atas).
Berikut adalah gambaran bagaimana penggunaan metode iterasi Jacobi dengan sebuah contoh. Misalkan kita ingin menyelesaikan SPL.
10x1 – x2 +2 x3 = 6
1. Nyatakan x1 dari persamaan (P1) dalam x2, x3, dan x4, 2. Nyatakan x2 dari persamaan (P2) dalam x1, x3, dan x4, 3. Nyatakan x3 dari persamaan (P3) dalam x1, x3, dan x4, 4. Nyatakan x4 dari persamaan (P4) dalam x1, x2, dan x3.
Hasilnya adalah SPL hampiran pertama terhadap penyelesaian SPL tersebut adalah
x
4=
15
8
=
1.8750
= 2Sekarang dengan menggunakan nilai – nilai ini pada ruas kanan persamaan (P5) – (P8), kita dapat menghitung hampiran kedua. Proses ini dapat diulang-ulang sampai keakuratan hampiran yang diinginkan tercapai. Berikut adalah hasil proses iterasi dengan menggunakan
Setelah iterasi ke-8 diperoleh hampiran penyelesaian
x = (1.00063 1.99867 -0.999036 0.998888)T
bandingkan dengan penyelesaian eksaknya, yakni x = (1 2 -1 1)T.
Menyelesaikan contoh SPL berikut ini dengan menggunakan
E. Penulisan Logaritma dalam Layar Editor MATLAB 7
relerr = err/(norm(X1)+ eps); X0 = X1;
H = [H;X0'];
if (err<T)|(relerr<T),break,end end
Layar Editor MATLAB 7
F. Hasil Output fungsi MATLAB 7
Berikut adalah contoh pemakaian fungsi MATLAB 7 jacobi dan hasil keluaran dari yang diperoleh:
>> A=[2 -1 10 0;0 3 -1 8;10 -1 2 0;-1 11 -1 3] A =
2 -1 10 0 0 3 -1 8 10 -1 2 0 -1 11 -1 3 >> b=[-11;-11;6;25] b =
-11 -11 6 25
>> X0=[0;0;0;0] X0 =
0 0 0 0
T = matriks A. MATLAB memberikan penyelesaian sebagai berikut.
X = 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.