Oleh :
JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMUPENGETAHUAN ALAM
UNIVERSITAS NEGERI PADANG
2015
MODUL I PRAKTIKUM FISIKA KOMPUTASI
PENGENALAN MATLAB
A. Tujuan
Diharapkan setelah praktikum ini mahasiswa sebagai praktikan dapat :
1. Mengenal MATLAB dan tools yang disediakan
2. Mengetahui dan mampu memahami beberapa fungsi dasar MATLAB.
3. Mampu melakukan perhitungan matematis dalam bilangan riil maupun bilangan kompleks
dengan bantuan MATLAB.
4. Mengetahui beberapa array dan matriks dasar
5. Mengetahui lebih banyak tentang kegunaan matriks dan array
6. Mampu melakukan manipulasi matriks dengan cara yang lebih kompleks
7. Mengetahui cara penanganan masukan dan keluaran pada program
8. Mampu membuat program sederhana dengan MATLAB
9. Mengetahui kegunaan pencabangan bersyarat sebagai kendali aliran program.
10. Mampu membuat program dengan pencabangan bersyarat.
B. Dasar Teori
MATLAB adalah kependekan dari matrix laboratory, dimana MATLAB merupakan
perangkat lunak untuk komputasi teknis dan saintifik. MATLAB merupakan integrasi
komputasi, visualisasi, dan pemrograman yang mudah digunakan. Sehingga MATLAB dapat
bertindak sebagai :
• Kalkulator
Ketika bertindak sebagai kalkulator, MATLAB memberikan hasil seketika setelah perintah
operasi diberikan.
• Bahasa pemrograman
Perintah – perintah operasi dengan urutan dan logika tertentu, serta digunakan berulang –
berulang dapat dibuat sebagai suatu program yang akan dijelaskan pada unit selanjutnya.
Adapun macam – macam operasi yang dapat dilakukan oleh MATLAB adalah :
a. Skalar : berupa bilangan real atau kompleks.
b. Matriks dan vektor : dengan elemen bilangan real atau kompleks.
c. Teks : pengolahan kata.
1
1. Desktop Tools MATLAB
Ketika MATLAB dijalankan pertama kali, desktop MATLAB tampil yang berisikan tools
(graphical user interfaces) untuk mengatur file, variables, dan aplikasi MATLAB. Pertama kali
MATLAB dijalankan akan tampil desktop dengan ilustrasi sebagai berikut
2
i. Figure adalah jendela untuk menampilkan gambar grafik seperti perintah plot dan sejenisnya.
Gambar pada jendela figure ini dapat disimpan ke dalam sebuah file yang sewaktu-waktu
dapat dipanggil kembali.
j. Help digunakan untuk membantu pengguna melihat dan mempelajari semua perintah
MATLAB yang akan menemui dalam pemograman. Kita dapat menemukan perintah-
perintah itu karena MATLAB telah menyediakan bantuan dalam bentuk help online. Bantuan
yang tersedia juga meliputi perintah MATLAB untuk memperoleh keterangan cepat pada
command window atau pada help browser.
2. Operator komputasi.
Operator komputasi mempunyai prioritas dengan urutan tertentu. Untuk menentukan
prioritas, digunakan tanda kurung ‘( )’. Adapun beberapa operator komputasi dalam MATLAB
adalah :
Simbol Operasi dan contoh
+ Penambahan, a + b
- Pengurangan, a – b
* Perkalian, a x b
/ atau \ Pembagian, a : b
^ Pemangkatan, ab
3. Bilangan kompleks
Bilangan kompleks adalah bilangan yang terdiri dari bagian imaginer dan bagian riil.
Bagian imaginer ditandai dengan simbol imaginer “i“ atau ”j”. Operasi bilangan kompleks juga
menggunakan operator komputasi di atas. Bilangan kompleks selain dapat dinyatakan dalam
koordinat kartesian, juga dinyatakan dalam koordinat polar dan diagram fasor yang berupa
magnitude dan sudut fase. Beberapa fungsi dasar yang berhubungan dengan bilangan kompleks
adalah:
Perintah Keterangan
Real Bagian riil dalam koordinat kartesian.
Imag Bagian imaginer dalam koordinat kartesian.
Abs Nilai absolute atau magnitude dalam koordinat polar.
Angle Sudut fase dalam koordinat polar ( dalam satuan radian )
3
4. Fungsi matematis
Sebagai kalkulator, MATLAB mempunyai berbagai fungsi umum yang penting untuk
matematika, teknik, dan ilmu pengetahuan. Sebagai tambahan atas fungsi-fungsi tersebut,
MATLAB juga menyediakan ratusan fungsi yang berguna untuk menyelesaikan permasalahan
tertentu. Beberapa fungsi matematis yang tersedia antara lain fungsi trigonometri, fungsi
eksponensial dan fungsi pembulatan.
Fungsi Matematika Keterangan
abs(x) Nilai mutlak atau magnitudo bilangan kompleks
acos(x) Invers cosinus
acosh(x) Invers cosinus hiperbolik
asin(x) Invers sinus
atan(x) Invers tangen
ceil(x) Pembulatan ke arah plus tak hingga
cos(x) Cosinus
exp(x) Eksponensial : ex
fix(x) Pembulatan ke arah nol
floor(x) Pembulatan ke arah minus tak hingga
imag(x) Bagian imajiner bilangan kompleks
log(x) Logaritma natural
log10(x) Logaritma dengan basis 10
real(x) Bagian riil suatu bilangan kompleks
rem(x,y) Sisa pembagian x/y
round(x) Pembulatan ke bilangan bulat terdekat
sin(x) Sinus
qrt(x) Akar kuadrat
tan(x) Tangen
5. Variabel
Data dan variabel yang dibuat dalam command window tersimpan dalam workspace
MATLAB. Ada beberapa aturan dalam penamaan variabel :
- nama variabel harus terdiri atas satu kata tanpa spasi.
- nama variabel dibedakan antara huruf besar dan huruf kecil (case sensitive).
- panjang maksimum nama variabel adalah 31 karakter, karakter setelahnya akan diabaikan.
- nama variabel harus diawali dengan huruf, diikuti dengan sembarang bilangan, huruf atau
garis bawah (under line).
- karakter tanda baca tidak diperbolehkan karena banyak diantaranya mempunyai arti
tersendiri dalam MATLAB. MATLAB mempunyai beberapa variabel spesial yaitu :
4
Variabel Nilai khusus yang dihasilkan
ans Nama variabel standar untuk menampilkan hasil
pi Perbandingan antara keliling lingkaran dengan diameternya
inf Tak berhingga, misalnya 1/0
NaN Bukan sebuah bilangan, misalnya 0/0
i dan j i=j=√-1
nargin Banyaknya argument input yang digunakan pada suatu fungsi
nargout Banyaknya argument output yang digunakan pada suatu fungsi
realmin Bilangan real positif terkecil yang dapat digunakan
realmax Bilangan real positif terbesar yang dapat digunakan
5
MATLAB menyediakan cara yang baik menyisipkan, mengekstrak, dan mengatur kembali
bagian-bagiannya indeks data. Pengetahuan mengenai ini merupakan kunci memanfaatkan
MATLAB secara efisien. Teknik-teknik pengalamatan array disajikan dalam tabel berikut.
Pembentukan array Keterangan
A(r,c) Pengalamatan elemen array di A ditentukan dengan vektor indeks baris
di r dan vektor indeks kolom di c
A(r,:) Pengalamatan subarray di A ditentukan dengan vektor indeks baris r
dan semua kolom
A(:,c) Pengalamatan subarray di A ditentukan dengan semua baris dan vector
indeks kolom c
A(:) Pengalamatan semua elemen A sebagai vektor kolom diambil kolom per
kolom
A(i) Pengalamatan subarray di A ditentukan oleh vektor indeks tunggal dari
elemen tersebut di I, seolah A adalah vektor kolom A(:)
A(x) Pengalamatan subarray di A ditentukan oleh array logika x. x harus berisi
nilai 0 dan 1 dan harus berukuran sama dengan A
Fungsi dan perintah matematika lainnya dapat saudara dalam kembangkan dari bahan referensi
yang telah dianjurkan pada silabus perkuliahan.
6
MATLAB, atau m-file dapat berupa fungsi yang menerima argumen input dan menghasilkan
output. M-file dibuat dengan menggunakan teks editor. Perbedaan antara script dan fungsi
disajikan dalam tabel berikut.
Script Fungsi
Tidak menerima argumen input maupun Menerima argumen input dan menghasilkan
menghasilkan argumen output argumen output
Beroperasi dengan data di workspace Variabel internal bersifat lokal untukfungsi itu
sendiri
Berguna untuk mengotomatisasi barisan perintah Berguna untuk memperluas bahasa matlab pada
yang perlu dijalankan beberapa Kali aplikasi anda
Pembuatan program pada MATLAB . Di editor inilah suatu program di tulis
dilakukan di editor tersendiri yaitu MATLAB kemudian di simpan sebagai file-m.
Editor/ Debugger
a. File-m
Program MATLAB dikenal dengan sebutan file-m, karena file ini berekstension m. File-m
yang dihasilkan oleh MATLAB adalah suatu program tak-terkompilasi, sehingga selalu
membutuhkan program interprenter, yaitu MATLAB itu sendiri. Artinya untuk dapat
menjalankan program yang telah dibuat dipanggil melalui MATLAB Command Window.
Pemanggilan file-m dilakukan dengan menuliskan nama file tersebut tanpa menyebutkan
ekstensionnya.
File-m tidak mempunyai struktur tertentu, berbeda dengan bahasa pemrograman C, Pascal
atau Basic. File-m tidak harus diawali atau diakhiri dengan kata kunci tertentu. File ini cukup
disusun dari pernyataan, fungsi atau perintah seperti halnya pada MATLAB Command Window,
untuk membangun logika tertentu.
7
Tidak bertanda maksudnya adalah tipe data yang tidak menerima bilangan negatif. Stuktur
data yang digunakan oleh MATLAB adalah:
Multidimensional arrays
Cell arrays
Characters and text
Structure
Pada MATLAB, multidimensional arrays adalah array dengan tiga atau lebih subscript. Dapat
dibentuk dengan memanggil zeros, ones, rand, atau randn dengan argument lebih dari dua. Cell
array merupakan multidimensional arrays yang elemen-elemennya dikopi (disalin) dari array
yang lain. Cell array kosong dapat dibentuk dengan fungsi cell. Tetapi biasanya cell array
dibentuk dengan melingkupi kumpulan suatu data dengan kurung kurawal ‘{ } ‘. Kurung kurawal
juga digunakan untuk mengakses isi dari berbagai sel. Karakter string adalah teks yang diawali
dan diakhiri dengan apostrof (‘). Setiap karakter dalam suatu string adalah satu elemen array,
dengan setiap elemennya sebesar 2 byte. String merupakan array numerik dengan atribut khusus,
oleh karena itu string dapat dimanipulasi dengan menggunakan semua metode manipulasi array
yang tersedia di MATLAB.
c. Struktur Fungsi
Deklarasi file-m sebagai fungsi adalah function yang terletak pada awal program dengan
sintaks.
function parameter_keluaran = nama_fungsi (parameter_masukan)
Parameter keluaran dapat lebih dari satu buah, cara penulisannya (sintaks) adalah:
[parameter_keluaran1, parameter_keluaran2,...]
Parameter masukan juga dapat lebih dari satu. Maka penulisannya (sintaks) adalah
(parameter_masukan1, parameter_masukan2,...)
Pada fungsi dengan beberapa parameter masukan, apabila cacah parameter saat pemanggilan
tidak sama dengan cacah parameter saat definisi, maka biasanya fungsi akan gagal dijalankan.
MATLAB mempunyai kemampuan untuk menghitung cacah parameter masukan dan cacah
8
parameter keluaran. Cacah parameter keluaran dinyatakan dengan fungsi nargin, sedangkan
cacah parameter keluaran dinyatakan dengan fungsi nargout.
Menampilkan hasil, nilai variabel atau keterangan pada saat program dijalankan dapat
menggunakan salah satu dari fungsi dibawah ini.
disp menampilkan nilai variabel atau string secara sederhana
fprintf menampilkan nilai variabel menggunakan string format
Pada tampilan bilangan pecahan %f, %e dan %E, presisi dapat diatur dengan menyisipkan
format presisi bilangan. Format presisi adalah .p, dengan p berupa nilai yang menyatakan
banyaknya angka dibelakang koma.
9
Suatu perintah MATLAB yang akan ditulis terpisah tidak dalam baris yang sama harus
ditandai dengan tiga titik berurutan. Posisi tanda tiga titik tersebut harus berada di antara nama
variabel dan operator. Jadi nama variabel tidak dapat dipecah.
8. Pencabangan Bersyarat
Program – program yang dihasilkan pada unit 3 merupakan program yang tidak mempunyai
kendali logika. Pada program tersebut, pernyataan demi pernyataan dieksekusi dari baris pertama
hingga baris terakhir. Pada program yang lebih kompleks, logika program tidak mengalir
sesederhana itu. Terdapat kasus – kasus yang mengharuskan logika program mengalir dengan
syarat tertentu. Secara umum, di semua bahasa pemrograman termasuk matlab, terdapat dua
macam kendali aliran, yaitu percabangan bersyarat dan perulangan.
a. Aliran Logika
Aliran logika pada kendali pencabangan bersyarat digambarkan dengan flowchart berikut :
Pelaksanaan eksekusi pada pernyataan X atau Y tergantung pada hasil pengujian syarat.
Jika syarat terpenuhi maka eksekusi berikutnya adalah pernyataan X, tetapi jika syarat tidak
terpenuhi maka eksekusi selanjutnya adalah pernyataan Y. Kadang – kadang pernyataan Y tidak
diperlukan, yang berarti pengujian syarat dilakukan untuk menentukan apakah pernyataan X
perlu dieksekusi atau tidak.
10
dinyatakan dengan nilai 1 dan sebaliknya nilai salah dinyatakan dengan nilai 0. Hasil operasi 0
atau 1 dapat digunakan sebagai syarat pemilihan. Sebaliknya, hasil perbandingan dapat pula
digunakan dalam operasi matematis. Operator logika menyediakan cara untuk mengevaluasi
ekspresi logika. Untuk memastikan urutan operasi maka tiap syarat ditulis dengan menggunakan
tanda kurung “( ) “. Hal ini terutama apabila syarat tebentuk dari beberapa syarat yang dievaluasi
menggunakan operator logika.Berikut ini beberapa operator relasi dan operator adalah:
Operator relasi /Operator Keterangan
< Kurang dari
<= Kurang dari atau sama dengan
> Lebih dari
>= Lebih dari atau sama dengan
== Sama dengan
~= Tidak sama dengan
& AND
| OR
~ NOT
Pernyataan Z pada kasus ketiga berguna apabila tidak ada syarat pada pernyataan lain.
d. Pernyataan switch….case
Sering kali pengujian syarat bukan nilai benar ( yang berarti syarat tidak terpenuhi ) atau
salah ( yang berarti syarat tidak terpenuhi ). Jika syarat berupa operasi matematis, maka yang
dievaluasi sebagai syarat adalah kesamaan hasil dengan konstanta yang telah didefinisikan
11
sebelumnya. Pada kasus ini, penggunaan pernyataan if …else…end kurang efektif. Untuk
itu telah tersedia pernyataan switch…case…otherwise sebagai berikut :
switch syarat
case konstanta 1
pernyataan 1
case konstanta 2
pernyataan 2
...
otherwise
pernyataan N
end;
C. Langkah Percobaan
Ikutilah langkah – langkah berikut untuk memulai MATLAB :
1. Jalankan MATLAB dengan mengklik double pada ikon MATLAB
2. Amati jendela desktop MATLAB, menu-menu yang tersedia serta jendela-jendela yang
tergabung disana (desktop tools)
4. Bilangan kompleks.
a = 4+3i
real(a)
imag(a)
abs(a)
angle(a)
conj(a)
5. Variabel.
Panjang = 10
lebar = 5
Luas_persegi_panjang = Panjang * lebar
6. Buat program berikut di MATLAB Editor/Debugger. Jangan akhiri masing – masing baris
dengan tanda titik-koma ( ; ) agar nilai variabel muncul di layar.
Y = 23/47
y_double = double (23/ 47)
y_single = single (23/ 47)
z_int = int8 (-93)
z_int8 = int8 (-130)
12
z_uint8 = uint8 (-93)
Setelah disimpan , panggil di Command Window, amati dan analisa hasilnya Structure adalah
multidimensional array dengan elemen-elemennya diakses dengan field designators. Pada
Editor/ Debugger ketikan :
S.nama = ‘Ed Plum’;
S.score = 83;
S.gradae = ‘B+’
13
9. Buat fungsi berikut. Simpan sebagai file xpolar.m
function x = xpolar (r, p);
p_rad = p* pi / 180;
x = r * cos (p_rad); % x adalah parameter keluaran
Kemudian pada Command Window, panggil fungsi tersebut dengan mengetikkan perintah
berikut :
xpolar (5, 60)
SumbuX = xpolar (5,30)
Fungsi dipanggil dengan cacah parameter masukan kurang dari cacah parameter masukan saat
definisi, apa yang terjadi?
10. Ketiklah Program Masukan dan Keluaran (Input dan Output) berikut untuk menguji masukan
dan keluaran. Setiap baris diakhiri dengan tanda titik koma ( ; ).
bilangan = input(‘Masukan Bilangan = ‘);
disp (‘Bilangan Tersebut = ‘);
disp (bilangan)
matriks = input (‘Masukan matriks = ‘);
disp (‘Matriks tersebut = ‘);
disp (matriks)
Simpan dan jalankan program. Apa yang muncul dilayar? Uji untuk masukan berupa bilangan
bulat dan bilangan pecahan.
14
fprintf (‘%.3e dibagi %.3e sama dengan %.3e \n’, a, b, c);
Simpan dan jalankan program tersebut. Apa yang muncul di layar?, Jalankan program sebanyak
3 kali dengan masukan yang berbeda-beda. Apa fungsi penyisipan .3 pada format tampilan
bilangan?
Simpan dan jalankan program. Apa yang muncul dilayar? Jalankan program sebanyak 3 kali
dengan masukan yang berbeda.
13. Buat program – program berikut dan amati hasilnya.
% program membuat sinyal sinus masukan / input
amp_sinyal = input (' Masukan amplitudo sinyal = ');
frek = input (' Masukan Frekuensi sinyal = ');
t_max = input (' Masukan maksimal waktu pengukuran (detik) = ');
t_int = input (' Masukan interval waktu pengukuran (detik) = ');
% pembuatan vektor waktu
t = (0 : t_int : t_max);
% Pembuatan Sinyal
frek_x = 2 ;
frek_rad = frek * frek_x * pi;
frekuensi = cos(frek_rad * t);
Sinyal = amp_sinyal * frekuensi ;
% keluaran
fprintf ('\t %f dikali %f dikali %f sama dengan %.3d \n', frek,
frek_x , pi, frek_rad);
fprintf ('\t %f dikali %f sama dengan %.3d \n', amp_sinyal,
frekuensi, Sinyal);
plot (t, Sinyal);
Selanjutnya buat program berikut, lalu jalankan di command window dan amati hasilnya !
14. Buat program – program berikut, simpan sebagai m-file,kemudian jalankan. Catat dan amati
hasilnya. Program berikut hanya mempunyai satu pilihan, vektor x akan ditampilkan bila
masukan, yaitu variablel
jawab = 1
x = round(rand(1,10)*20)-10;
jawab = input('apakah x akan ditampilkan [0=tidak,1=ya]?');
if(jawab==1)
disp(x);
end;
15
15. Pada beberapa kasus diperlukan masukan berupa jawaban ya atau tidak. MATLAB mampu
menerima karakter y atau t, tetapi harus dimasukkan sebagai ‘y’ atau ‘t’ ( dalam tanda petik
tunggal ). Hal ini kurang efektif, sehingga lebih mudah Jika dipakai 0 untuk tidak dan 1 untuk
ya. Program berikut untuk menguji nilai positif atau negatif dari masukan. Program mempunyai
dua pilihan.
a=input('masukan=');
if(abs(a)==a)
disp('bilangan positif');
else
disp('bilangan negatif');
end;
Uji untuk bilangan positif dan negatif. Bagaimana dengan bilangan 0, positif atau negatif ?
16. Program berikut untuk menguji nilai tegangan dalam suatu system digital.
Program terdiri dari tiga pilihan.
bb0 = 0; ba0 = 0.8; %batas bawah dan atas untuk logika 0
bb1 = 4.2;ba1= 5; %batas bawah dan atas untuk logika 1
s=input('tegangan = ');
if (s > bb1) & (s <= ba1)
disp('logika 1');
elseif (s>=bb0) & (s<ba0)
disp('logika 0');
else
disp('tak terdefinisi');
fprintf('tegangan harus antara %.1f - %.1f',bb0,ba0);
fprintf('atau %.1f - %.1f\n',bb1,ba1);
end;
17. Apakah if dengan else if dapat diterapkan tanpa menggunakan else? Buat program untuk
mengujinya! Program berikut menampilkan sisa bagi.
m = input('m=');
n = mod(m,5);
if(n==0)%konstanta 0
disp('tak bersisa');
elseif (n==1)%konstanta 1
disp('sisa satu');
elseif (n==2)%konstanta 2
disp('sisa dua');
elseif (n==3)%konstanta 3
disp('sisa tiga');
elseif (n==4)%konstanta 4
16
disp('sisa empat');
else
fprintf('m bilangan pecahan,sisa %f\n',n);
end;
18. Bandingkan program diatas dengan program berikut. Manakah yang dirasa lebih efektif, dari sisi
pembacaan dan penulisan program.
m=input('m=');
n=mod(m,5);
switch n
case 0
disp('tak bersisa');
case 1
disp('sisa satu');
case 2
disp('sisa dua');
case 3
disp('sisa tiga');
case 4
disp('sisa empat');
otherwise
fprintf('m bilangan pecahan,sisa %f\n',n);
end;
Apakah konstanta case dapat berupa bilangan pecahan ? Buat program untuk mengujinya.
17
MODUL II PRAKTIKUM FISIKA KOMPUTASI
PEMOGRAMAN DENGAN FILE-M
A. Tujuan
Setelah mengikuti unit praktikum ini maka praktikan diharapkan dapat :
1. Mengetahui beberapa array dan matriks dasar
2. Mengetahui lebih banyak tentang kegunaan matriks dan array
3. Mampu melakukan manipulasi matriks dengan cara yang lebih kompleks
4. Mengetahui kegunaan perulangan sebagai kendali aliran program.
5. Mampu membuat program dengan perulangan.
6. Mampu menampilkan data dalam bentuk grafik,
7. Mengetahui berbagai macam cara menampilkan grafik
B. Teori
1. Matematika Array
Operasi matematis antara skalar dan array, meliputi penjumlahan, pengurangan,
perkalian dan pembagian, beroperasi pada semua elemen array. Sedangkan operasi
matematis antara array dengan array tidak sesederhana itu. Akan tetapi untuk array yang
berukuran sama, operasi penjumlahan, pengurangan, perkalian, dan pembagian dengan
MATLAB, berlaku elemen per elemen. Operasi matematis pada array dirangkum dalam
tabel berikut.
2. Matriks
Awalnya MATLAB digunakan untuk menyederhanakan perhitungan matriks dan
aljabar linier yang muncul pada berbagai aplikasi. Permasalahan yang paling umum pada
aljabar linier adalah mencari solusi persamaan linier, yang dapat diselesaikan dengan
menggunakan persamaan matriks. Fungsi-fungsi matriks yang disediakan oleh MATLAB
ditunjukkan dalam tabel berikut.
18
Fungsi Matriks Keterangan
balance(A) Penyekalaan untuk memperbaiki akurasi nilai
eigen
cdf2rdf(A) Bentuk diagonal kompleks ke bentuk diagonal
blok real
chol(A) faktorisasi Cholesky
cond(A) matriks bilangan kondisi
condest(A) estimasi matriks bilangan kondisi l-norm
d=eig(A) dan [V,D]=eig(A) nilai eigen dan vektor eigen
det(A) determinan
expm(A) matriks eksponensial
expm1(A) implementasi M-file dari expm
expm2(A) Matriks eksponensial menggunakan deret
Taylor
expm3(A) Matriks eksponensial menggunakan nilai eigen
dan eigen
funm(A,’fun’) menghitung fungsi matriks umum
hess(A) bentuk hessenberg
inv(A) invers matriks
logm(A) logaritma matriks
lscov(A,b,V) kuadrat terkecil dengan kovarians yang
diketahui
lu(A) faktor dari eliminasi gaussian
nnls(A,b) kuadrat terkecil nonnegative
3. Pengendalian Perulangan
Perulangan atau iterasi adalah bentuk kendali aliran untuk melakukan pekerjaan
berulang kali menggunakan suatu nilai yang berfungsi sebagai pencacah atau counter. Nilai
pencacah dinaikkan atau diturunkan setiap kali satu pekerjaan dilakukan. Pada operasi yang
melibatkan vektor atau matriks, pencacah biasanya juga berfungsi sebagai indeks, yang
menunjukkan posisi elemen vektor atau matriks yang dioperasikan. Terdapat dua macam
perulangan yaitu perulangan berbatas (for) dan perulangan bersyarat (while).
Perulangan akan dilakukan mulai dari pencacah sama dengan nilai awal. Setelah
satu operasi selesai dilakukan, nilai pencacah diubah sebesar nilai perubahan. Jika nilai
pencacah hasil pengubahan telah melebihi nilai akhir, maka perulangan dihentikan.
Nilai perubahan dapat positif (naik) aau negatif (turun). Pada perubahan positif, akhir
harus lebih besar dari awal, sedangkan pada perubahan negatif, nilai akhir harus lebih
19
kecil dari nilai awal. Nilai perubahan bisa tidak dinyatakan, yang berarti perulangan
adalah perulangan positif dengan kenaikan 1, sehingga pernyataan menjadi :
Contoh 3.1: Perhitungan bilangan kuadrat dari himpunan bilangan bulat dari 1 sampai
5
>> for n = 1:5
x(n) = n^2
end
Bagaimana hasil keluaran yang terbentuk bila tanda ditambahkan tanda (;) pada
perintah di antara for-end. Bandingkan bila penulisan perintah perhitungan x(n) = n^2
ditulis x = n^2.
>> x = [1 2 3];
>> y = [4 5 6];
>> sum = 0;
>> for i = 1:3
sum = sum + x(i)*y(i)
end
Inisialisasi
While syarat_perulangan
Pernyataan operasi;
End;
20
pencabangan bersyarat ( unit 4 ). Padanya berlaku pula operator relasi dan logika. Aliran
logika prulangan sebagai berikut :
Pada pernyataan for nilai pencacah diubah secara otomatis. Berbeda dari hal
tersebut pada pernyataan while, nilai pengubahan pencacah harus ditangani sendiri
dalam pernyataan operasi. Syarat pengulangan merupakan bentuk hubungan e1.e2
dimana e1 dan e2 merupakan ekspresi aritmatika biasa dan . merupakan operator relasi
yang didefinisikan sebagai berikut:
Perintah-perintah di antara baris while dan end dikerjakan berulang kali selama
hubungan e1.e2 dalam ekspresi terpenuhi. Contoh :
>> n = 1;
>> x = 0;
>> while x < 20
x(n) = n^2;
n = n+1;
end
4. Tampilan Grafik
Suatu runtun data yang banyak, sulit untuk diperiksa hanya dengan mengamati angka
- angka yang ditampilkan. Penampilan data dalam bentuk grafik dapat memudahkan analisis.
Pada MATLAB grafik dibedakan menjadi dua macam , yaitu :
• Grafik kontinyu, baik linier ataupun logaritmis,
• Grafik diskrit.
21
a. Grafik Kontinyu Linier
Untuk menggambar grafik dua dimensi dapat menggunakan perintah plot.
Terdapat tiga bentuk penulisan fungsi ini, yaitu :
plot(x,y), menampilkan vektor y (sumbu vertikal) terhAdap vektor x (sumbu
horizontal).
plot(y) menampilkan vektor y terhAdap indeksnya.
plot(x,y,s), menampilkan vektor y terhadap vektor x, dengan format menurut string
s.
String s menyatakan warna, bentuk penanda dan bentuk garis antarnilai. Berikut
adalah beberapa nilai yang dapat digunakan pada string s . Simbol Warna Simbol
Penandaan Simbol Style garis (Baca pada beberapa referensi Matlab yang lain)
Jika anda tidak memilih warna dan anda menggunakan skema standar,
MATLAB akan memulainya dengan warna biru dan berputar berurutan ke tujuh warna
pertama dalam tabel untuk setiap penambahan garis. Standar style garis adalah garis
lurus kecuali jika anda memberikan style garis yang lain.
Fungsi Keterangan
box off Menghilangkan kotak pada grafik
box on Menampilkan kotak pada grafik
box Men-toggle kotak pada grafik
xlabel(string) Menambahkan teks di samping sumbu x pada grafik
yang aktif
ylabel(string) Menambahkan teks di samping sumbu y pada grafik
yang aktif
title(string) Menambahkan teks pada bagian atas grafik yang aktif
grid on Menambahkan grid pada grafik
grid off Menghilangkan grid pada grafik
grid Men-toggle kotak pada grafik
text(x,y,string) Menambahkan teks pada lokasi (x,y) di grafik yang aktif
gtext(string) Menempatkan teks dengan mouse
legend(string,string,…) Menambahkan keterangan pada grafik dengan string
sebagai label
legend off Menghilangkan keterangan dari grafik yang aktif
Legend(...,pos) Memberikan keterangan dan meletakannya pada posisi
tetentu sesuai pos :
0 : diletakan pada posisi terbaik
1 : kanan atas (default)
2 : kiri atas
3 : kiri bawah
4 : kanan bawah
1 : kanan atas di luar grafik
22
c. Figure dan Subplot
Figure adalah jendela untuk menampilkan gambar grafik yang anda buat seperti
perintah plot dan sejenisnya. Gambar pada jendela figure ini dapat disimpan ke dalam
sebuah file yang sewaktu-waktu dapat dipanggil kembali. Suatu figure dapat terdiri
lebih dari satu grafik. Penempatan grafik dinyatakan dengan subplot(m, n, nomor)
diikuti fungsi penggambaran grafik, dengan
m cacah grafik dalam satu baris
n cacah grafik dalam satu kolom
nomor nomor grafik, mulai dari baris pertama kolom pertama.
Misal, dalam figure terdapat 6 grafik, yang tersusun sebagai 2 baris dan 3 kolom.
sublot (2, 3, 1) sublot (2, 3, 2) sublot (2, 3, 3)
sublot (2, 3, 4) sublot (2, 3, 5) sublot (2, 3, 6)
C. KEGIATAN PRAKTIKUM
1. Pembentukan array
Cobalah perintah-perintah dibawah ini pada command window!!! Lalu amati hasilnya!
Simpanlah dengan nama : praktikum 2a.m
X=(0:0.1:1)*pi
X=linspace(0,pi,11)
M=logspace(0,2,11)
x=[2 2*pi sqrt(2) 2-3j]
X = [0 2 4 6 8 10 12 14 16 18 20];
Y = [1 3 5 7 9 11 13 15 17 19 21];
X(7)
Y(4)
Y(10:-1:2)
X(2:6)
Y(1:2:8)
X(1:3:10)
3. Matematika array
Cobalah perintah-perintah dibawah ini pada command window!!! Lalu amati hasilnya!
Simpanlah dengan nama : praktikum 2c.m
23
a = [2 4 3 5 7]
b = [1 2 3 4 5]'
c = a+5
d = a+b
e = b-2
f = b*3
g = b/2
h = a./b
k = a.\b
x = a*b
y = b*a
z = a.*b
4. Buatlah program – program berikut, simpan sebagai m-file dengan nama : praktikum
2d.m, kemudian jalankan. Catat dan amati hasilnya.
Contoh :
Penentuan kelulusan seorang siswa berdasarkan dua buah ujian yang diikutinya.
Ditetapkan bahwa siswa yang lulus harus memiliki nilai rata-rata minimal 60.
clc
nama = input('Nama Siswa = ', 's');
N1 = input('Nilai Ujian 1 = ');
N2 = input('Nilai Ujian 2 = ');
NR = (N1+N2)/2;
if NR > 60
ket = 'lulus';
else
ket = 'gagal';
end
disp(' ')
disp(['Nama = ', nama])
disp(['Nilai rata-rata = ', num2str(NR)])
disp(['Hasil akhir = ', ket])
for i=1:10
fprintf('%d\n',i);
end;
for i = 20 : -2 : 0
fprintf ('%d \n', i);
end;
24
Apa yang terjadi jika nilai akhir lebih besar dari nilai awal, tetapi perubahan negatif
(perulangan turun )?
% beban
r_beban = input ('beban (ohm) = '); % gelombang sinusoidal
amplitude = input ('amplitude(volt) = ');
frek = input ( 'frekuansi (hz) = ');
frek_radian = 2 * pi * frek;
t = (0 : 0.01 : 1);
v = amplitude * cos(frek_radian * t); %rangkaian penyearah setengah
gelombang
for i = 1 : length (v)
if (v(i) > 0)
ir(i) = v(i) / r_beban;
else
ir(i) = 0;
end;
end;
plot (t, [v; ir]); % grafik
legend ('tegangan', 'arus');
Simpanlah dengan nama : praktikum 2e.m. Uji program dengan masukan beban ,
amplitude, frekuensi adalah 10 Ohm, 12 Volt dan 4 Hz. Cobalah untuk variasi nilai
masukan yang lain.
% buat matriks
p = input('cacah baris = ');
q = input('cacah kolom = ');
a = 10 * rand (p, q); %tampilan elemen matriks
for i = 1 : p
for j = 1 : q
fprintf ('[%d,%d] = %.3f \n', i, j, a(i, j));
end;
end;
Simpanlah dengan nama : praktikum 2f.m. Buat program untuk melakukan operasi
transpose matrik. Lakukan seperti program diatas, bukan menggunakan operator!
Kemudian Simpanlah dengan nama : praktikum 2g.m
25
9. Program perulangan bersyarat untuk menampilkan bilangan 1 hingga 10.
i = 1 % inisialisasi
while ( i <= 10) % syarat perulangan
fprintf ('%d \n', i);
i = i+1; %pertambahan positif
end;
Pada program di atas, syarat terhadap pencacah berlaku sebagaimana batas akhir pada
pernyataan for.
10. Program berikut hendak meniru watak rangkaian komparator tersebut, dengan masukan
berupa tegangan sinusoidal.
11. Interpolasi, Pendekatan yang dilakukan pada interpolasi adalah mencocokkan sebuah
atau sederetan kurva secara langsung melalui masing-masing titik data. Interpolasi Linier
merupakan bentuk yang paling sederhana untuk menaksir nilai di antara nilai-nilai yang
diketahui dengan baik. Interpolasi linier menghubungkan 2 titik data [(x1, f(x1)) dan x2,
f(x2))] dengan garis lurus, lalu dengan penghampiran menentukan nilai fungsi f(x) dari
suatu titik (x) yang terletak diantaranya. Persamaan umum interpolasi linier:
26
Contoh :
Diketahui data: x ln(x)
10
4 1,3863
6 1,7917
Taksirlah harga logaritma natural dari 2 atau ln(2).
Penyelesaian dalam bahasa Matlab:
% data x
x = [1 4 6]; % data ln x
lnX = [0 1.3863 1.7917];
cari = 2;
ln2 = lnX(1) + (lnX(2) - lnX(1)) / (x(2)-x(1)) * (cari - x(1))
12. Interpolasi dapat dilakukan dengan beberapa metoda diantaranya linier, kubik, dan spline.
Bila metoda yang akan digunakan tidak dispesifikasi, maka Matlab akan menggunakan
metoda linier sebagai default. Perintah yang digunakan menjadi: YI =
interp1(X,Y,XI,’method’). Contoh :
clc
% data x
x = [1 4 6]; % data ln x
lnX = [0 1.3863 1.7917];
hasil = interp1(x, lnX, 2)
hasil1 = interp1(x, lnX, 2, 'linear')
hasil2 = interp1(x, lnX, 2, 'cubic')
hasil3 = interp1(x, lnX, 2, 'spline')
hasil4 = interp1(x, lnX, 2, 'nearest')
hasil5 = interp1(x, lnX, [2, 5])
13. Berikut adalah penampilan sinyal acak y bernilai antara 0 hingga 10. Diasumsikan bahwa
sinyal mulai dari t = 0 detik hingga t = 1 detik, dengan 20 cuplikan pengukuran.
14. Ketikan contoh hasil frekuensi pengukuran minimal adalah 2 x 10 Hz dan 20 Hz. Berarti
periode pengukuran minimal adalah 1/ 20 = 0.05 detik.
27
amplitudo = 5;
frek_radian = 2 * pi * 10;
y = amplitudo * cos( frek_radian * t);
plot (t, y)
plot (t, y)
plot (y)
15. Ketikan program berikut, amati perubahan yang terjadi pada grafik. Simpanlah dengan
nama : praktikum 2m.m
x = linspace(0,2*pi,30);
z = cos(x)
y = sin(x);
plot(x,y,x,z)
box off
xlabel(‘Variabel bebas x’)
ylabel(‘Variabel tak bebas y dan z’)
title(‘Kurva sinus dan cosinus’)
grid on, box on
text(2.5,0.7,’Sin(x)’)
gtext(‘Cos(x)’)
legend(‘Sin(x)’,’Cos(x)’)
legend off
16. Berikut menampilkan tiga grafik yang berbeda dalam satu figure.
t_deg = (0 : 10 : 360);
t_rad = t_deg * pi / 180;
subplot (3, 1, 1); plot (t_deg, sin (t_rad));
subplot (3, 1, 2); plot (t_deg, cos (t_rad));
subplot (3, 1, 3); plot (t_deg, cos (t_rad).* sin (t_rad));
subplot (3, 1, 1); title (‘sin’);
28
MODUL PRAKTIKUM III
FISIKA KOMPUTASI
A. Topik : Deret Taylor dan Kesalahan Komputasi
C. Teori
Deret Taylor merupakan suatu perangkat matematika yang sangat penting dalam
permasalahan numerik, karena dengan deret nilai suatu fungsi f(x) dapat dicari bila harga x
pada titik asal (xo) yang berdekatan diketahui. Bila nilai fungsi f(x) dititik xo adalah f(xo),
maka dengan deret Taylor dari nilai fungsi di titik x adalah :
( n)
f ( xo )
f ( x) = ∑ ( x − x o ) n dimana (1)
n!
dnf
f ( n)
( xo ) = n
dan f ( o)
( xo ) = f ( xo )
dx x = xo
x2 x4 x6
cos( x ) = 1 − + − + ......
2 ! 4 ! 6!
Diagram alir untuk menghitung deret cos(x) dapat dilihat pada lampiran di bawah.
29
D. TUGAS
30
3. Cek hasil program anda dengan referensi yang ada dan perlihatkan hasilnya kepada
dosen pembimbing atau asisten anda
4. Bila selesai simpanlah program ini dengan nama Praktikum 3a.m
5. Modifikasi program di atas untuk menghitung tugas No.4
6. Bila telah selesai gantilah harga p dan harga x-nya.
7. Simpan program ini dengan nama Praktikum 3b.m
8. Simpan program soal nomor 5 dengan ini dengan nama Praktikum 3c.m dan
Praktikum 3d.m
Referensi:
Sesuai dengan silabus matakuliah:
31
MODUL PRATIKUM IV
FISIKA KOMPUTASI
I. Topik : Mencari nilai suatu fungsi dari sejumlah data (titik pengamatan) yang dapat mem-
bentuk fungsi dengan metoda interpolasi dan ekstrapolasi .
II. Tujuan :
Setelah praktikum dilaksanakan mahasiswa mampu :
1. Membuat tabel beda newton untuk interpolasi linear.
2. Menentukan harga suatu titik dengan bantuan titik sebelumnya dengan menggunakan teknik
interpolasi linear.
3. Menentukan harga suatu titik dengan bantuan titik sebelumnya dengan menggunakan teknik
interpolasi kuadrat.
4. Menentukan harga suatu titik dengan bantuan titik sebelumnya dengan menggunakan teknik
interpolasi beda terbagi Newton.
5. Menentukan harga suatu titik dengan bantuan titik sebelumnya dengan menggunakan teknik
interpolasi Lagrange
III. Teori
Dalam suatu survei atau penelitian, pengukuran tidak mungkin dilakukan dengan jarak
(spasi) yang sangat rapat, karena membutuhkan waktu yang lama dan mahal. Terutama untuk
mengukuran ekplorasi pada daerah yang luas, berbahaya, ataupun mengukuran dengan
menggunakan peralatan yang mahal biaya operasionalnya seperti seimik, geolistrik, gaya berar
pada geofisika, pendektesian sebaran radiasi pada fisika inti dan sebagainya. Biasanya
pengukuran dilakukan dengan spasi tertentu, untuk meramalkan kondisi secara umum daerah
survei dan mengambil keputusan setelah pengukuran dilakukan. Untuk mengatasi hal ini
biasanya digunakan teknik interpolasi atau ekstrapolasi.
32
Bila kita mempunyai n + 1 buah titik data yang berupa pasangan bilangan ( (X o ,f 0 ), ,
(X f ) , (X f ) …….. (X
1, 1 2, 2 n , f n ) dengan x0, x1, x2 ……….xn semuanya berbeda, kemudian kita ingin
mencari suatu harga pada Pn (x ) pada setiap xj yang mempunyai nilai fj dengan fungsi
p o (x o ) = f o , p n (x1 ) = f1 , ………… p n (x n ) = f n
dimana Pn disebut dengan polinom penginterpolasi yang dapat digunakan untuk mendapatkan
nilai-nilai untuk semua harga x yang tidak dilakukan pengukurannya.
Harga pada daerah yang tidak dilakukan pengukuran tersebut dapat diperoleh dengan
interpolasi. Teknik interpolasi yang dapat digunakan antara lain interpolasi linear, kuadrad,
beda terbagi Newton, dan interpolasi Lagrange, bahkan juga dapat dengan teknik eksrapolasi
ataupun interpolasi invers.
Y=f(x)
f(x1)
f(xo) f1(x)
xo x x1
33
f1 (x ) − f (x o ) f (x1 ) − f (x o )
=
x − xo x1 − x o
f1 (x ) − f (x o )
(x − x o )
f1 (x ) = f (x o ) + x1 − x o ..............................(1)
f (x1 ) − f (x o )
b1 =
x − xo ........………………..(3)
f ( x2 ) − f ( x1 ) f ( x1 ) − f ( xo1 )
−
x2 − x1 x2 − x0
b2 = ………………………..(4)
x2 − x0
dan seterusnya.
34
2. Interpolasi Newton
Umpamakan kita mempunyai polinomial :
Dengan menggunakan sejumlah titik data, koefisien polinomial di atas dapat dihitung
dengan :
b o = f (x o )
b1 = f [x1 , x o ]
…………….(6)
b1 = f [x 2 , x1 , x o ]
b n = f [x n , x 2 , x , x o1 ]
dimana
[ ] f (xx −−xx )
f x1 , x j =
1 j
1 j
Persamaan ini disebut persamaan beda terbagi hingga pertama, sedangkan beda terbagi
beda kedua dapat ditulis dengan :
[
f x1 , x j , x k = ] f [x i ] [
− x j − f x j − xk
xi − x k
] …………….(7)
dan seterusnya.
Kesalahan dalam perhitungan interpolasi Newton adalah :
f (n +1) (ξ )
Rn = (x1+1 − x i )n +1 ……………(8)
(n + 1)!
35
Masukan harga:
n, x i , f (x i ), i = 0,1,2,..........., n , Z dan eps (toleransi).
Keluaran : pbagi
Langkah-langkah :
bo = f ( xo )
pbagi = bo
faktor = 1
untuk i=1,2,……..,n lakukan
bi = f ( xi )
untuk j = i − 1, i − 2,........0, dilakukan
b j+1 − b j
bj =
xi − x j
faktor=faktor*(z-xj-1)
suku=bo*faktor
pbagi=pbagi+suku
jika ABS(suku) <=eps, selesai
Kemudian:
Masukan nilai yang harganya akan dicari (yc)
Algoritma ini akan menghasilkan tabel beda terbagi Newton untuk fungsi polinomial dan
harga titik yang akan dicari.
n
1k ( x )
f ( x ) ≈ Lny ( x ) = ∑ fk
k = 0 1k ( xk )
36
dengan
10 ( x ) = ( x − x1 )( x − x2 )......(x − xn )
untuk k=1,2,…., n − 1
1k ( x ) = (x − x0 ).....( x − xk −1 )( x − xk +1 ).....( x − xn )
1n ( x ) = ( x − x0 )( x − x1 ).....( x − xn −1 )
sehingga :
y (x ) =
(x − x1 )(x − x2 )(x − x3 ).....(x − x4 ) y
(x0 − x1 )(x0 − x2 )(x0 − x3 ).....(x0 − xn ) 0
+
(x − x0 )(x − x2 )(x − x3 )......(x − xn ) y
(x − x1 )(x1 − x2 )(x1 − x3 )......(x1 − xn ) 1
+ …………………………….
+
(x − x0 )(x − x1 )(x − x2 ).....(x − xn −1 ) y
(xn − x0 )(xn − x1 )(xn − x2 ).....(xn − xn −1 ) n
y(x ) = nilai yang akan diinterpolasi
y0 , y1 , y 2 .... y n → nilai-nilai
y
f 2 − f 0 − (x2 − x0 ) f [x0 − x1 ]
=
(x2 − x0 )(x2 − x1 )
= f
(x1 , x2 ) − f (x0 , x1 )
(x2 − x0 )
37
IV. TUGAS
A. TUGAS RUMAH
(Buat rangkap 2, satu rangkap dikumpulkan sebelum pratikum dimulai, 1 rangkap untuk sdr.
gunakan sewaktu pratikum)
a. Rancanglah program untuk membuat tabel Interpolasi Beda sama Newton
b. Rancanglah program untuk mencari Interpolasi suatu fungsi dengan menggunakan Beda
sama Newton seperti tabel berikut :
X f(x)
0 2
2 12
4 20
6 36
8 45
10 60
38
39
Interpolasi Lagrange
Mulai
Baca
N
i = 1 ...N
Baca
x[i], fx[i]
Baca
xc
yjw = 0
i = 1 ...N
z=1
j = 1 ...N
i <>j
z= z*(xc-x[j])/(x[i]-x[j])
Tulis
xc, yjw
END
40
MODUL PRAKTIKUM V
FISIKA KOMPUTASI
a o + a1 x + a 2 x 2 + a3 x 3 + ... + a N x N = 0.
dengan ai adalah kontanta. Akar dari sebuah fungsi f(x) adalah harga x yang
membuat atau menjadikan nilai f(x) = 0.
Contoh kasus :
Y F(x)
X
0 X1 X2 Akar II
Akar I
41
Catatan :
• Khusus untuk polinomial berderajat dua, sebagai alternatif pencarian akar polinomial
dapat dilakukan dengan rumus kuadratik
• Jumlah akar dari suatu polinomial adalah sama dengan derajat dari polinomial.
f(x1)
f(x2)
x1
x2
x2 x1
f(x1)
f(x2)
(a) (b)
Sebagai contoh (a) dan (b) di atas memenuhi f(x1) x f(x2) < 0, berarti
• Pada fungsi pertama (Gambar (a)) terdapat satu akar antara interval x1 dan x2
• Pada fungsi pertama (Gambar (b)) terdapat tiga akar antara interval x1 dan x2
2) Jika f(x1) dan f(x2) sama tanda, tentu f(x1) x f(x2) > 0 berarti pada interval antara x1 dan
x2 terdapat akar dengan jumlah genap atau tidak ada akar.
f(x1)
f(x1) f(x2)
f(x2)
x1 x2 x1 x2
(c) (d)
42
Konsep di atas menjadi ide bagi metode numerik akolade untuk memeriksa apakah dalam
interval yang akan diperiksa terdapat akar atau tidak.
(a,f(a))
y = f(x)
a T b
Gambar 1: Penenentuan Titik Tengah dan akar polinom dengan metoda Bagidua
< 0, berarti akar pada (a, T)
f (a ) * f (T)= 0, berarti akar pada T = T
> 0, berarti akar pada (T, b)
Penentuan setengah selang yang mengandung akar dilakukan dengan pengujian tanda
hasil kali dari f(a)f(T) atau f(b)f(T). Apabila dimana a sebagai ujung kiri selang, b
sebagai ujung kanan selang, T titik tengah selang dapat diperoleh dengan persamaan
a+b
T= .
2
Metode Bisection (metode bagi dua) membagi interval (antara x1 = a dan x2 = b)
dimana diperkirakan terdapat sebuah akar, menjadi 2 subinterval yang sama besar. Akar
tersebut dicari dalam salah satu subinterval. Interval tidak boleh terlalu lebar. Mengapa ?.
Jawablah pertanyaan ini dalam laporan praktikum !
43
Algoritma metode Bisection adalah sebagai berikut:
Langkah 1 : Pilih taksiran nilai xl=a sebagai batas bawah interval dan taksiran nilai x2 = b
sebagai batas atas interval. Jika terpenuhi kondisi (syarat batas) berikut
dipenuhi
1. f(a) x f(b) < 0 maka ada akar dalam interval, selanjutnya ke langkah 2.
2. f(a) x f(b) > 0 maka tidak ada akar dalam interval, geser posisi interval.
3. f(a) x f(b) = 0 maka x= a atau x = b , salah satu merupakan akar.
a+b
T=
2
Langkah 3: Evaluasi keberadaan akar, apakah dalam subinterval pertama (antara a dan T)
atau dalam subinterval kedua (antara T dan b).
Jika diperoleh
a) f(a) × f(T) < 0, maka akar berada dalam subinterval pertama maka b = T.
Selanjutnya ke langkah 4.
b) f(a) × f(T) > 0 , maka akar berada dalam subinterval kedua maka xl = T.
Selanjutnya ke langkah 4.
c) f(a) × f(T) = 0, maka T adalah akar fungsi yang diberikan
44
yang dapat diselesaikan
f ( x 2 )( x1 − x 2 )
x' = x 2 −
f ( x1 ) − f ( x 2 )
Metoda posisi salah merupakan pengembangan dari metoda bagi dua. Pada metoda
ini digunakan untuk menghitung hampiran akar. Perbandingan antara f(a) dan f(b) yang
lebih dekat ke nol ikut menentukan posisi akar, apakah lebih dekat ke ujung kiri (a) atau
ujung kanan (b).
Metoda posisi salah memanfaatkan wawasan grafis dengan cara menetapkan
hampiran akar sebagai perpotongan antara garis yang melalui titik-titik (a,f(a)) dan (b.f(b))
dengan sumbu-x. Andaikata titik potong tersebut adalah titik c, maka akar terletak pada
selang [a,c] atau [c,b]. Selanjutnya menentukan selang mana yang mengandung akar
digunakan metoda bagi dua. Lebih jelasnya perhatikan Gambar (2) berikut:
y =f(x)
a akar b b1 bo b
ao
Gambar 2: Penenentuan Titik Tengah dan akar polinom dengan metoda Posisi salah
Secara geometri metoda ini adalah sebagai berikut. Persamaan garis melalui
(a,f(a)) dan (b,f(b)) adalah:
45
b−a
3. c = b − f (b)
f (b) − f (a)
c − ca
4. Jika ≤ eps , maka akar = c dan selesai
c
5. Jika f(a)f(c) < 0, maka b = c, jika tidak a = c.
6. ca = c, dan kembali ke langkah ke-3
C.Ketentuan program komputasi
• Kriteria terminasi dalam metode terbuka menggunakan pendekatan kesalahan
aproksimasi, yang ditentukan dengan memakai penaksiran kesalahan:
xi +1 − xi
εa = × 100 %
xi +1
• Pada akhir komputasi, akar yang diperoleh sebaiknya dimasukkan kembali dalam fungsi
untuk menghitung apakah hasilnya mendekati nol. Pengecekan ini penting untuk
mengantisipasi kejadian konvergensi berosilasi atau kejadian yang menyebabkan harga
ε a kecil padahal penyelesaian masih jauh dari akar.
• Program harus mempunyai input batasan jumlah iterasi sehingga pada kejadian osilasi,
konvergensi perlahan atau penyelesaian divergensi program tetap dapat berhenti
D. Metoda Newton_Raphson
Metoda Newton-Raphson adalah metoda iterasi untuk memecahkan persamaan
f(x) = 0 dengan asumsi f(x) mempunyai turunan kontinu. Metoda ini sangat umum
dipakai kerena sederhana dan konvergensinya cepat. Untuk memudahkan pembahasan
perhatikan Gambar (3) berikut:
f(x)
xi+1 xi x
Gambar 3: Penenentuan Titik Tengah dan akar polinom dengan Newton Raphson
46
Gambar (3) memperlihatkan bahwa jika tebakan awal adalah xi, merupakan sebuah
garis singgung yang dapat diperluas dari titik [xi, f(xi)]. Titik dimana garis singgung ini
memotong sumbu-x yang biasanya menunjukkan sebuah taksiran perbaikan akar. Metoda
Newton-Raphson dapat diturunkan berdasarkan interprestasi geometri. Seperti pada
Gambar (3) turunan pertama pada xi ekivalen terhadap kemiringan fungsi yang diketahui.
f (x i ) − 0 f (x i )
Jadi f ' ( x ) = yang dapat di atur kembali menjadi x i +1 = x i − .. (3)
x i − x i +1 f ' (x i )
Kelemahan metoda Newton-Raphson adalah untuk menyelesaikan fungsi yang
turunannya sulit dihitung terutama fungsi polinom. Untuk kasus-kasus seperti ini turunan
tersebut dapat didekati dengan diferensial bagi hingga yang rumusnya adalah sebagai
beriktut:
f ( x i −1 ) − f ( x i )
f ' (x i ) ≈
x i −1 − x i
dengan demikian persamaan (3) dapat ditulis menjadi:
f ( x i )(x i −1 − x i )
x i +1 = x i − (4)
f ' ( x i −1 ) − f ( x i )
Perhitungan dengan menggunakan persamaan iterasi (4) disebut dengan metoda
SECANT.
Flowchart untuk metoda Newton-Raphson seperti terlampir
Algoritma metode akolade yang disajikan dibawah ini menggunakan kriteria terminasi
dari iterasi perhitungan x’ yang menggunakan estimasi kesalahan.
ALGORITMA Metode_Akolade;
DEKLARASI
x1,x2,xr,xn,akar: real;
AA: real;
ES,EA:real;
i,IM,iterasi : integer;
function FngsPers(x:real): real;
function MtdAkolade(xl,xu:real): real;
DESKRIPSI
read(x1); read(x2); {nilai awal yg mengurung
akar}
read(ES); {estimasi kesalahan}
read(IM); {iterasi maks}
47
if FngsPers(x1)*FngsPers(x2)>0 then
write('Tebakan X1 dan X2 tidak mengurung akar')
else
xr:= MtdAkolade(x1,x2);
for i:=2 to IM do
AA:=FngsPers(x1)*FngsPers(xr);
if AA=0 then
akar:=xr; EA:=0;
iterasi:=i; i:=IM;
if AA<0 then x2:=xr;
if AA>0 then x1:=xr;
xn:= MtdAkolade(x1,x2);
if xn=0 then xr:=xn
else
EA:=abs((xn-xr)/xn)*100;
if EA<ES then
iterasi:=i; i:=IM;
xr:=xn;
akar:=xr;
endfor
write(akar:5:6); {cetak hasil akar}
if iterasi<>IM then
write(iterasi); {cetak jumlah iterasi}
write(EA:5:6); {cetak error aproksimasi}
IV. TUGAS
A. Dirumah (sebelum praktikum)
1. Cari akar persamaan f ( x) = −0,874 x 2 + 1,75 x + 2,627 dengan xl=2,9 dan xu=3,1,
dengan metoda bagi dua dan Newton-Rapson
2. Modifikasi program anda untuk metode posisi salah
3. Cari akar f ( x) = ε − x − x dengan xl=0 dan xu=1, ES=7,1, IM=5 → iterasi 2,
x=0,57219, EA=7,08%, metoda posisi salah dan Secant
4. Buat program untuk menghitung akar persamaan dengan menggunakan metoda bagi
dua berdasarkan diagram alir yang diberikan pada lampiran
5. Modifikasi diagram alir bagi dua tersebut untuk menghitung akar persamaan dengan
menggunakan metoda posisi salah dan buat pula programnya.
6. Buat program untuk menghitung akar persamaan dengan menggunakan metoda
Newton-Raphson berdasarkan diagram alir yang diberikan pada lampiran
7. Modifikasi diagram alir Newton-Raphson tersebut untuk menghitung akar persamaan
dengan menggunakan metoda Secant dan buat programnya.
48
8. Kumpulkan tugas dirumah no. 1 s.d No. 7 di atas sebelum praktikum dimulai, tanpa
tugas ini sdr. tidak diizinkan untuk melakukan praktikum pada jadwal tersebut.
(Sebaiknya tugas ini dibuat rangkap dua 1untuk sdr. dan satu lagi untuk dikumpulkan).
9. Praktikum baru dapat dilakukan apabila tugas di rumah diserahkan kepada dosen atau
asisten yang bertugas pada waktu jadwal praktikum sdr.
B. Sewaktu Praktikum berjalan
1. Edit program No. 4 Tugas Rumah di atas, bila selesai RUN-lah proram tersebut.
3. Chek hasil program sdr. dengan referensi yang ada dan perlihatkan hasilnya kepada
dosen pembimbing atau asisten sdr.
4. Bila selesai simpan program ini dengan nama FISKOM5A
5. Modifikasi program di atas untuk menghitung No.5. Tugas Rumah di atas, Simpan
nama FISKOM5B
6. Edit progran soal no. 6, Tugas Rumah, bila telah simpan dengan nama FISKOM5C
7. Modifikasi program ini untuk soal no. 6 untuk menyelesaikan soal No. 7 Tugas Rumah
di atas dan simpan program ini dengan nama FISKOM5D
8. Chek kebenaran Tugas Rumah yang dibuat secara manual di atas dengan yang sdr.
Hitung menggunakan program computer.
Perhatikan : Untuk setiap program yang telah selesai di edit, ganti fungsi yang akan
dihitung akarnya (ganti fungsi f(x)).
Contoh Soal no.1 menghitung fungsi f(x) = x2-2x-1, ganti fungsi dengan f(x) = x3- 2x -
1 atau f(x) = x2 - ex dan sebagainya. Hitung fungsi yang sama dengan keempat
metoda yang diberikan.
49
METODA BAGI DUA Metode Newton
Raphson
BEGIN
BEGIN
Baca
a, b, del
Baca
y(o)
Tulis
fx= sqr(x) +2x - n=1.15
1
T=(a+b)/2
x=y(n-1)
fa=sgr(a)+2a-1
Fungsi yang dapat fx=fungsi x
fb=sqr(b)+2b-1
ft=sqr(t)+2t-1 diubah
fx=f(x) f'x=fungsi
dx=f'(x)
turunan I
y(n)=x-fx/dx
fa*ft<0 No
b=t
akar=t
Tulis
akar,del END
ja-bj<del
END
50
MODUL PRAKTIKUM VI
FISIKA KOMPUTASI
51
[2] 1 − 11 39 − 45
2 − 18 42
1 −9 21 [−3]
Operasi di atas dapat dilakukan dengan langkah-langkah sebagai berikut:
1. Tuliskan koefisien-koefisien polinom dengan urutan an, an-1 … a0. Bila ada suku
yang tidak ada maka tulis 0 untuk koefesien yang bersangkutan.
2. Nilai x yang dipakai untuk mencari nilai fungsi ditempatkan pada deretan koefisien
yang paling kiri.
3. Selang satu baris di bawah deretan koefisien-koefisien tariklah sebuah garis lurus,
yaitu garis penjumlahan.
4. Turunkan an hingga kebawah garis penjumlahan , sebut sekarang an sebagai bn
5. Kalikan x dengan bn dan hasilnya letakkan di atas garis penjumlahan tepat di bawah
an-1. Jumlahkan an-1 dengan bn dan hasilnya letakkan di atas garis penjumlahan satu
kolom dengan an-2. Sebut hasil ini dengan bn-1.
6. Lakukan proses ini sampai diperoleh b0, dimana b0 adalah nilai dari f(x) yang dicari.
Diagram alir untuk pembagian secara sintentik ini dapat dilihat pada lampiran
dengan judul flowchart SINTETIK. Karena pembagian secara sintetik ini banyak
dipakai, maka buatlah program pembantu (FUNGSI).
Sekarang pembagian sintetik ini digunakan untuk menghitung akar suatu
polinom. Pembagian sintetik ini digunakan untuk menentukan nilai fungsi dan turunan
dari suatu polinom. Diagram alir untuk menentukan akar suatu polinom dengan metoda
Newton-Raphson dengan pembagian sintetik dapat dilihat pada diagram alir pada
lampiran.
Sebagai contoh: Sebuah peluru ditembakkan dengan kecepatan awal 100 ms-1
dengan sudut elevasi 450. Tentukan berapa jauh peluru akan melayang di udara.. Untuk
menyelesaikan permasalahan ini, terlebih dahulu ditentukan persamaan lintasannya.
Persamaan lintasannya adalah:
X = v0t cos(teta); Y = v0t sin (teta) – 0.5 gt2.
Dalam persamaan ini arah keatas diambil bertanda positif. Dengan
mensubsitusikan harga t, maka persamaan di atas dapat modifikasi menjadi:
52
g
y=− 2
x 2 + tan(teta) x yang merupakan polinom orde –2 dengan :
2(v 0 cos(teta))
g
a2 = − dan a1 = tan(teta ) = 1 serta a0 = 0.
2(v 0 cos(teta)) 2
53
IV. TUGAS
A. Dirumah (Tugas Pendahluan)
1. Buatlah algoritma dan program untuk menghitung akar polinom (sebagai contoh akar dari
f(x) = x2-2x-3), dengan metoda iterasi
2. Buat program untuk menentukan akar polinom dengan metoda pembagian sitentik
dengan bantuan diagram alir akar polinom terlampir.
3. Buat program untuk menentukan akar polinom dengan metoda Newton –Raphson orde-n.
dengan bantuan diagram alir akar ganda terlampir.
4. Modifikasi salah satu algoritma dan program di atas, untuk menentukan lama peluru
melayang di udara apabila ditembakkan dengan kecepatan awal vo ms-1 dengan sudut
elevasi α0.
f ( x) =untuk
5. Modifikasi salah satu metoda mencari akar persamaan e x − 5 xmenyelesaikan
2
permasalahan berikut: Persamaan keadaan dari gas real dapat dinyatakan dengan
V/n adalah volume molar yaitu volume (V) dibagi dengan jumlah mol zat (n), R adalah
konstanta gas universal, T adalah suhu a dan b masing-masing adalah konstanta yang
tergantung kepada jenis gas. Aplikasikan konsep ini untuk merancang volume tabung
agar dapat diisi gas sebanyak 1 mole pada tekanan 1 atm dan 300 oK. Bandingkah
hasilnya bila dipakai persamaan gas ideal. PV = nRT. Diketahui R = 0,082054 liter.atm
/(mole.K), a = 1,360 dan b = 0,03183. Keluran yang dikehendaki adalah sebagai tabel
berikut:
Persamaan Van der Waals
Tekanan (atm) Volume tabung (liter)
1 ........
10 ........
100 .........
Persamaan Gas Ideal
Tekanan (atm) Volume tabung
(liter)
1 ..........
54
10 ..........
100 ...........
6. Praktikum baru dapat dilakukan apabila tugas di rumah diserahkan kepada dosen atau
asisten yang bertugas pada waktu jadwal praktikum sdr.
Catatan:
1. (Khusus untuk praktikum No.1, 2 dan 3), untuk setiap program yang telah
selesai di edit ganti-gantilah fungsi yang akan dihitung akarnya (ganti fungsi
f(x)). Contoh Soal no.1 menghitung fungsi f(x) = x4 -2x-1, gantilah fungsi dengan
f(x) = x3- 2x-1 atau f(x) = x2 - ex dan
sebagainya. Hitung fungsi yang sama dengan kedua metoda yang diberikan.
2. Untuksemua praktkum, Uji kebenaran hasil keluaran progam yang sdr. buat
secara manual atau membandingkan hasil yang diperoleh dengan luaran
program yang telah teruji kebenarannya.
55
Draf Diagram alir untuk menghitung Akar polinom dengan Metoda Newton Raphson
56
57
MODUL PRAKTIKUM VII
FISIKA KOMPUTASI
Perhitungan diferensiasi secara numerik atau pendekatan beda digunakan untuk menghitung
turunan dari fungsi dengan menggunakan nilai dari suatu titik. Pendekatan ini sangat penting
dalam penyelesaian persamaan diferensial biasa dan persamaan diferensial parsial. Untuk
menghitung difrensial digunakan pendekatan beda depan, beda belakang dan beda tengah.
Bentuk grafik dari beda depan, beda belakang, dan beda tengah dapat dilihat seperti berikut :
Dengan menggunakan deret Taylor serta memberi nama untuk setiap grid (titik) dengan
notasi sebagai berikut f i ` = f ' ( xi ) , f i = f ( x i ) dan f i +1 = f ( xi +1 ) , maka deret Taylor dapat
ditulis dalam bentuk:
58
h 2 // h 3 /// h 4 iv
f i +1 = f i + hf i '+ fi + fi + f i + ...... (4)
2 6 24
Berdasarkan persamaan (4), maka persamaan (1), (2) dan (3) dapat ditulis menjadi:
f i +1 − f i 1
a. Beda depan dengan persamaan: f i / ≅ ; sisa = O(h) = − hf i //
h 2
− f i + 2 + 4 f i +1 − 3 f i 1
dan orde ke-2 : fi/ ≅ ; sisa = O (h 2 ) = h 2 f i /// (5)
2h 3
f i − f i −1 1
b. Beda belakang dengan persamaan: f i / ≅ ; sisa = O(h) = hf i //
h 2
f i − 2 − 4 f i −1 + 3 f i 1
dan orde ke-2 : fi/ ≅ ; sisa = O(h 2 ) = h 2 f i /// (6)
2h 3
f i +1 − f i −1 1
c. Beda tengah dengan persamaan: f i / ≅ ; sisa = O(h 2 ) = − hf i //
2h 6
− f i + 2 + 8 f i +1 − 8 f i −1 + f i − 2 1
dan orde ke-2: f i / ≅ ; sisa = O(h 4 ) = h 4 f i ( v ) (7)
12h 30
Selanjutnya untuk turunan kedua orde ke-1 dapat dirumuskan dengan:
f i + 2 − 2 f i +1 + f i
a. Beda depan dengan persamaan: f i // ≅ 2
; sisa = O(h) = −hf i ///
h
− f i +3 + 4 f i + 2 − 5 f i +1 − 2 f i 11 2 ////
dan orde ke-2: f i // ≅ 2
; sisa = O(h 2 ) = h f i (8)
h 13
dengan membuat analogi yang dapat dirumuskan sendiri.
3. Rumus-Rumus turunan kedua :
f i + 2 − 2 f i +1 + f i
a. Beda depan orde-1 f i // ≅ 2
; sisa = O(h) = −hf i ///
h
− f i + 3 + 4 f i + 2 − 5 f i +1 − 2 f i 11 2 ////
b. Beda depan orde -2 f i // ≅ 2
; sisa = O(h 2 ) = h fi
h 13
c. Beda belakang orde-1
59
f. Beda pusat orde-2
Untuk lebih silahkan saudara kembangan pendekatan perhitungan turunan orde-4 dan dan orde-n,
dengan cara membaca referensi yang sesuai
Metode Stirling
Rumusan umum interpolasi stirling dalam interval:
[ xi − k ,..., xi − 2 , x0 , xi +1 , xi + 2 ,..., xi + k ]
∆y i −1 + ∆y i u 2 2 u (u 2 − 1) ∆3 y i − 2 ∆3 y i −1 u 2 (u 2 − 1) 4
y = y0 = u + ∆ y i −1 + + ∆ yi−2 +
2 2 3! 2! 4!
u (u − 1)(u − 2 2 ∆5 y i −3 + ∆5 y i − 2 u 2 (u 2 − 12 )(u 2 − 2 2 6
+ ∆ y i −3 + ...
5! 2 6!
x − xi dy dy du
dimana u= , maka turunan fungsi = , bila diuraikan lebih lanjut menjadi
h dx du dx
dy 1 dy
= ,
dx h du
dy 1 ∆yi −1 + ∆yi 3u 2 ∆3 yi − 2 + ∆3 yi −1 4u 3 − 2u 3
= + u∆ yi −1
2
+ ∆ yi − 2 + hapus +
: dx h 2 3! 2 4! turunan kedua
5u 4 − 15u 2 + 4 ∆5 yi − 3 + ∆5 yi − 2 6u 5 − 20u 3 + 8u 6
+ ∆ yi − 3 + ...
5! 2 6!
60
d 2 y d dy d dy du d i du i 1 d 2u
= = = =
dx 2 dx dx dx du dx dx h dx h h 2 dx 2
ALGORITMA PROGRAM
• Menentukan data x[i] dan y[i] untuk jumlah n data
• Menghitung tabel perbedaan sesuai dengan metode yang digunakan
• Menghitung turunan pertama dan kedua untuk rumusan differensial
• Menuliskan hasil
!V. Tugas
A. Tugas Dirumuh
(Buat rangkap 2, 1 rangkap dikumpulkan sebelum praktikum dimulai, 1 rangkap sebagai
pedoman sdr. sewaktu praktikum)
1. Diagram alir yang diberikan pada lampiran adalah diagram alir untuk menghitung turunan
pertama dengan metoda beda tengah dua titik, rancanglah program untuk menghitung
turunan pertama dari suatu fungsi sembarang berdasarkan flowchart tersebut.
2. Modifikasi diagram alir soal No. 1 untuk menghitung turunan pertama dengan metoda
beda tengah menggunakan 3 dan 4 titik, rancanglah program untuk menghitung turunan
pertama dari suatu fungsi sembarang berdasarkan flowchart hasil modifikasi saudara.
3. Modifikasi diagram alir soal No. 1 untuk menghitung turunan pertama dengan metoda
beda depan 2 titik, rancanglah program untuk menghitung turunan pertama dari suatu
fungsi sembarang berdasarkan flowchart hasil modifikasi saudara.
4. Modifikasi diagram alir soal No. 3 untuk menghitung turunan pertama dengan metoda
beda depan dengan 3 dan 4 titik rancanglah program untuk menghitung turunan pertama
dari suatu fungsi sembarang berdasarkan flowchart hasil modifikasi saudara.
5. Modifikasi diagram alir soal No. 3 untuk menghitung turunan pertama dengan metoda
beda belakang 2 titik, rancanglah program untuk menghitung turunan pertama dari suatu
fungsi sembarang berdasarkan flowchart hasil modifikasi saudara.
6. Modifikasi diagram alir soal No. 5 untuk menghitung turunan pertama dengan metoda
beda belakang dengan 3 dan 4 titik rancanglah program untuk menghitung turunan
pertama dari suatu fungsi sembarang berdasarkan flowchart hasil modifikasi saudara.
61
7. Rancanglah program untuk menghitung turunan Kedua dari suatu fungsi sembarang
berdasarkan flowchart di bawah.
8. Berdasarkan algoritma metoda Stirling di atas buatlah diagram alir dan program untuk
menentukan turunan suatu fungsi.
B. Tugas Sewaktu Praktikum
1. Berdasarkan tugas pendahuluan No. 1, buat program untuk menghitung turunan pertama
dari suatu fungsi sembarang , simpan dengan nama Praki7a.
2. Berdasarkan tugas pendahuluan No. 2, buat program untuk menghitung turunan pertama
dari suatu fungsi sembarang , simpan dengan nama Praki7b.
3. Berdasarkan tugas pendahuluan No. 3, buat program untuk menghitung turunan pertama
dari suatu fungsi sembarang , simpan dengan nama Praki7c.
4. Berdasarkan tugas pendahuluan No. 4, buat program untuk menghitung turunan pertama
dari suatu fungsi sembarang , simpan dengan nama Praki7d
5. Berdasarkan tugas pendahuluan No.5, buat program untuk menghitung turunan pertama
dari suatu fungsi sembarang , simpan dengan nama Praki7e
6. Berdasarkan tugas pendahuluan No. 6, buat program untuk menghitung turunan pertama
dari suatu fungsi sembarang , simpan dengan nama Praki7f
7. Berdasarkan tugas pendahuluan No. 7, buat program untuk menghitung turunan pertama
dari suatu fungsi sembarang , simpan dengan nama Praki7g
8. Berdasarkan tugas pendahuluan No.8, buat program untuk menghitung turunan pertama
dari suatu fungsi sembarang , simpan dengan nama Praki7h
9. Coba program yang telah saudara buat untuk menghitung turnanan fungsi, berdasarkan
data seperti pada Tabel berikut:
62
63
BEGIN
FLOW CHART UNTUK MENCARI
TURUNAN I SUATU FUNGSI 1 2
BACA
dx =(z(1)-z(2))/(h)
y
h =1
n=0
zz=0
d=10
d = zz - dx
n=n+1
TULIS
h, dx, d
i = 1..2
zz = dx
h = h/10
B
i=1
S
B
abs(d) <= e
x=y-h x=y+h
S
TULIS
dx
end
z(i) = 'fx'
1 2
64
FLOW CHART UNTUK MENGHITUNG
BEGIN
TURUNAN KEDUA β
BACA
Y
dx=3*z(i)-
4*z(2)+z(3)
h=1; n=0
zz=0
d=10
dx =dx/(2*h)
n=n+1
d=zz-dx
Tulis
h, dx, d
i=1, 3
zz=dx
h=h/10
x=y+(i-1)*h
yes
abs(d)<= e
Buatlah fungsi sesuai
fx dengan bahan
perkuliahan di kelas No
Tulis
dx
z(i)=fx
end
α
β
65
MODUL PRATIKUM VIII
FISIKA KOMPUTASI
I. Topik : Menghitung Harga Integral Suatu Fungsi dengan Metoda Simpson dan
Metoda Trapesium
II. Tujuan :
1. Menghitung harga-harga integral suatu fungsi
2. Menghitung kesalahan komputasi dengan metode pendekatan
III.Teori
Integral berarti menyatukan keseluruhan atau menunjukkan jumlah total suatu
fungsi dari batas tertentu, secara matematis dapat rumuskan dengan persamaan
b
I = ∫ f ( x)dx yang berarti sebagai integrasi fungsi f(x) terhadap x yang dihitung
a
diantara batas bawah x=a hingga batas atas x=b. Untuk fungsi kontiniu sederhana,
seperti polinomial, eksponensial, ataupun fungsi trigonometri hasil integral dapat
dihitung secara eksak dengan menggunakan teknik analitik, seperti dalam kalkulus.
Fungsi kontiniu yang rumit dan harga fungsi f(x) yang diberikan yang diberikan dalam
bentuk tabulasi (titik diskrit) dapat diselesaikan melalui pendekatan (numerik).
Tiga pendekatan dalam merumuskan integrasi numerik. Pendekatan pertama
adalah berdasarkan tafsiran geometri integral Tentu. Daerah integrasi dibagi atas
sejumlah pias (strip) yang berbentuk segiempat. Luas daerah integrasi dihampiri
dengan luas seluruh pias. Rumus, dalam bab ini disebut kaidah, integrasi numerik
yang diturunkan dengan pendekatan ini digolongkan ke dalam metode pias.
Pendekatan kedua adalah berdasarkan polinom interpolasi. Di sini
fungsi integrand f(x) dihampiri dengan polinom interpolasi pn(x). Selanjutnya,
integrasi dilakukan terhadap pn(x) karena polinom lebih mudah diintegralkan
ketimbang mengintegralkan f(x). Rumus integrasi numerik yang diturunkan
dengan pendekatan ini digolongkan ke dalam metode Newton-Cotes, yaitu metode
yang umum untuk menurunkan rumus integarsi numerik. Pendekatan ketiga sama
66
sekali tidak menggunakan titik -titik diskrit sebagaimana pada kedua pendekatan di
atas. Nilai integral diperoleh dengan mengevaluasi nilai fungsi pada sejumlah
titik tertentu di dalam selang [-1,1], mengalikannya dengan suatu konstanta,
kemudian menjumlahkan keseluruhan perhitungan.
Pada umumnya, metode perhitungan integral secara numerik bekerja
dengan sejumlah titik diskrit , karena data yang ditabulasikan sudah berbentuk
demikian, maka secara alami sesuai dengan kebanyakan metode integrasi numerik.
Untuk fungsi menerus, titik-titik diskrit itu diperoleh dengan menggunakan
persamaan fungsi yang diberikan untuk menghasilkan tabel nilai. Dihubungkan
dengan tafsiran geometri inttegral tentu, titik-titik pada tabel sama dengan membagi
selang integrasi [a, b] menjadi n buah pias (strip) atau segmen (Gambar 1). Lebar
b−a
tiap pias adalah h = . Titik absis pias dinyatakan sebagai xr = a + rh, r = 0,
n
1, 2, ..., n dan nilai fungsi pada titik absis pias adalah fr = f(xr). Luas daerah
integrasi [a, b] dihampiri sebagai luas n buah pias. Metode integrasi numerik yang
berbasis pias ini disebut metode pias. Ada juga buku yang enyebutnya
metode kuadratur.
r xr fr
0 x0 f0 y fn-1 fn
1 x1 f1 f2 y =f(x)
2 x2 f2 f1
3 x3 f3
f0
4 x4 f4
... ... ...
n-2 xn-2 fn-2
h h h
n-1 xn-1 fn-1
n xn fn x
a = x0 x1 x2 n-1 xn=b
67
Kaidah integrasi numerik yang dapat diturunkan dengan metode ias adalah:
1. Kaidah segiempat (rectangle rule)
2. Kaidah trapesium (trapezoidal rule)
3. Kaidah titik tengah (midpoint rule)
A. Kaidah Segiempat
Pandang sebuah pias berbentuk empat persegi panjang dari x = x0 sampai x = x1
berikut (Gambar 2).
y
y = f(x)
x0 x1 x
x1
Luas satu pihas adalah (tinggi pias = f(x0) ), maka ∫ f ( x)dx ≈ hf ( x )
xo
0
x1
atau (tinggi pias = f(x1)), maka ∫ f ( x)dx ≈ hf ( x )
xo
1
x1 x2 x1
Jadi ∫ f ( x)dx ≈ hf ( xo ) + ∫ f ( x)dx ≈ hf ( x1 ) = 2 ∫ f ( x)dx ≈ h[ f ( x0 ) + ( f ( x1 )]
x0 x1 x0
Bagi setiap ruas persamaan hasil penjumlahan di atas dengan 2, untuk menghasilkan
x1
h
∫xo f ( x)dx ≈ 2 [ f ( x0 ) + f ( x1 )] (1)
Persamaan (1) disebut kaidah segiempat. Kaidah segiempat untuk satu pias dapat kita perluas
b
untuk menghitung I = ∫ f ( x)dx yang dalam hal ini, I sama dengan luas daerah integrasi dalam
a
selang [a, b]. Luas daerah tersebut diperoleh dengan membagi selang [a, b] menjadi n buah
pias segiempat dengan lebar h, yaitu pias dengan absis [x0 , x1], [x1 , x2], [x2 , x3], ... , dan
pias [xn-1 , xn]. Jumlah luas seluruh pias segiempat itu adalah hampiran luas I (Gambar 3) dan
diperoleh adalah kaidah segiempat gabungan (composite rectangle's rule):
68
y
y = f(x)
...
a = x0 x 1 x 2 x3 ...................... xn -2 xn -1xn = b x
( f 0 + 2 f1 + 2 f 2 ............... + 2 f n−1 + f n ) = h f 0 + 2∑ f i + f n
b n −1
h
∫
a
f ( x)dx ≈
2 2 i =1
B. Metoda Trapesium
b
Integrasi fungsi I = ∫ f ( x)dx diekspansi (diuraikan) menjadi fungsi polinomial
a
b
I = ∫ f n ( x)dx , dimana f n ( x ) = a0 + a1 x + ................ + an −1 x n −1 + an x n
a
b
untuk orde pertamanya adalah: I = ∫ f i ( x)dx
a
Berdasarkan metoda interpolasi linier, sebuah garis lurus dapat dinyatakan dengan
f (b) − f (a)
f ( x) = f (a ) + ( x − a)
b−a
Luas daerah dibawah garis lurus merupakan taksiran integral dari f(x) antara batas a dan b,
sehingga diperoleh:
f (b) − f (a)
b
I ≈ ∫ f (a) + ( x − a)dx,
a b−a
69
f (b) − f (a )
dengan hasil integrasi adalah: I ≈ f (a ) + ( x − a ) , bentuk ini disebut sebagai aturan
b−a
Trapesium.
Kesalahan perhitungan integral dengan metoda trapesium adalah:
Err = −
1 ''
12
f x,()
dimana x =a+b/2. Untuk memperbaiki akurasi dari perhitungan integral dengan metoda
trapesium dapat dilakukan dengan membagi interval (grid) menjadi segmen-segmen kecil.
Kemudian segmen ini dijumlahkan untuk memperoleh integrasi keseluruhan interval. Bila
interval a dan b dibagi dengan n segmen, maka antara a dan b terdapat n+1 titik basis yang
berspasi sama (x0, (x0,x1,x2……………xn), dengan lebar segmen adalah
b−a
h=
n
Jadi persamaan umum untuk menghitung integral dengan aturan trapesium adalah :
n −1
f ( x0 ) + 2∑ f ( xi + f ( xn )
I ≈ (b − a ) i =1
,
2n
b−a
dengan mengambil h = , maka persamaan ini dapat dirubah menjadi :
n
h
I= ( f 0 + 2 f1 + 2 f 2 .................. + 2 f N −1 + f N ) + Err
2
dengan f0=f(a), f1=f(a+h), fi=f(a+ih). Kesalahan perhitungan adalah :
Err ≅ −
1 (b − a)3 N ''
12 N 3 i =1
∑f x ()
C. Metoda Simpson
Jika terdapat sebuah titik di antara f(a) dan f(b), titik tengahnya adalah titik ketiga kataklah
c, f(a), f(c) dan f(c) dapat dihubungkan dengan sebuah parabola. Jika terdapat dua titik antara
f(a) dan f(b), maka keempat titik ini dapat dihubungkan dengan sebuah polinom orde ketiga.
Rumusan yang akan dihasilkan dari pemakaian integral dengan polinomial ini disebut aturan
Simpson (metoda Simpson). Pemakaian metoda simpson terdapat dua aturan, yaitu aturan
simpson 1/3 dan aturan simpson 3/8.
70
1. Aturan Simpson 1/3
Aturan Simpson 1/3 dihasilkan dari pendekatan polinomial orde-2, sehingga diperoleh :
b b
I= ∫
a
f ( x)dx ≅ ∫ f ( x)dx
a
2
Err ≅ −
h5 iv
90
()
f x
Kemudian bila antara titik f(a) dan f(b) dibagi menjadi N segmen, maka rumusan Simpson 1/3
ini dapat ditulis menjadi:
b
I= ∫ f ( x)dx
a
h
= [ f0 + 4 f1 + 2 f 2 + 4 f3 + 2 f 4 + .............. + 2 f n − 2 + 4 f N −1 + f N ] + Err
3
N h5 w iv
()
N
dengan kesalahan : Err ≅ − f , dimana &f&iv = ∑ &f&iv xi / N
2 90 i =1
3
= h[ f 0 + 3 f1 + 3 fx2 + 4 f 3 ] + Err
8
Metoda simpson 3/8 ini lebih teliti dibandingkan dengan metoda simpson 1/3. Metoda
Simpson 1/3 dan 3/8 di atas digunakan untuk menghitung integral dengan mengambil jarak yang
sama. Sedangkan untuk menghitung integral yang fungsinya beraturan bentuk kurvanya (ada
bagian yang landai dan ada bagian yang curam). Untuk kasus ini sebaiknya digunakan
pembagian daerah dengan jarak yang tidak sama. Untuk daerah yang landai digunakan segmen
yang besar dan untuk daerah curam sebaiknya digunakan segmen kecil.
71
Untuk menyelesaikan permasalahan ini biasanya digunakan kombinasi metoda simpson
1/3 dengan simpson 3/8 (Algoritma dapat dilihat pada Stevan C. Capra dan Rayman P. Canale),
Metoda Numerik untuk Teknik Hal.509).
IV. TUGAS
A. SEBELUM PRAKTIKUM
1. Pelajari flowchart untuk menyelesaiakan integral dengan menggunakan metoda Trapesium
dan Metoda Simson 1/3 di lampiran.
2. Hitung volume benda putar yang dihasilkan dari pemutaran kurva :
2
x
y = 1+
2
dimana 0 ≤ x ≤ 2. Gunakan metoda trapezium dengan jumlah segmen N = 2, 4, 8, dan 16
serta hitung kesalahan untuk setiap pemilihan segmen tersebut. Fungsi benda putar dari
persamaan di atas adalah :
2
x
f ( x) = ( 1 + )2
2
3. Sebuah balok bermassa 100 gram, mula-mula berada dalam keadaan diam di atas bidang
datar yang licin. Pada balok tersebut bekerja gaya mendatar sebesar F = 104+3.103t,
dimana F = m(dv/dt). Tentukan laju balok pada saat 5 detik bergerak.
4. Laju seorang penerjun payung selama melayang di udara setelah payungnya dikembangkan
gm
dapat dinyatakan dengan persamaan v (t ) = [1 − e − ct / m ] (Soegeng ;1993:121),dimana g
c
= 9,8 m/dt2 adalah percepatan gravitasi, m = 70 kg adalah massa penerjun, c = 12,5 kg/dt
adalah hambatan udara. Dengan menggunakan pendekatan metoda Romberg hitunglah
jarak yang ditempuh penerjun 15 detik setelah payung terkembang.
5. Contoh fungsi dalam bentuk tabel adalah pengukuran fluks panas matahari yang
diberikan oleh tabel berikut:
B.
72
Waktu, jam Fluks panas q, kalori/cm/jam
0 0.1
1 1.62
2 5.32
3 6.29
4 7.8
5 8.81
6 8.00
7 8.57
8 8.03
9 7.04
10 6.27
11 5.56
12 3.54
13 1.0
Data yang ditabulasikan pada tabel ini memberikan pengukuran fluks panas q setiap jam
pada permukaan sebuah kolektor sinar matahari. Berapa panas total yang diserap
oleh panel kolektor seluas 150.000 cm2 selama waktu 13 jam. Apabila panel
mempunyai kemangkusan penyerapan (absorption), eab sebesar 45%. Panas total yang
t
diserap diberikan oleh persamaan H = eab ∫ qAdt
0
C. SEWAKTU PRAKTIKUM
1. Buatlah program untuk menghitung permasalahan 2, 3 dan 4 di atas, luaran ditampilkan dalam
table (misalnya seperti berikut):
Jumlah Pita (N) Lebar Pita (h) Luas Daerah Kesalahan
2
4
8
16
32
64
128
2. Simpan program metoda trapezium dengan nama PRKom8a
3. Simpan program metoda Simpson dengan nama PR_Kom8b
4. Simpan program soal no. 4 dengan PR_Kom8c
5. Ganti fungsi soal No.4 dengan dengan fungsi soal No. 2 dan 3 bandingkan hasilnya, banyak
iterasi yang dilakukan
6. Simpan program soal no. 5 dengan PR_Kom8d
73
Diagram alir menghitung Integral dengan Metoda Trapesium
74
75
MODUL PRAKTIKUM IX
FISIKA KOMPUTASI
y = d(x) j=4
j=3
j=2
j =1
y = c(x) j =0
x= a x= b
Volume benda yang ditutupi oleh bidang di atas dapat dihitung dengan mengunakan
integral bidang (integral lipat dua) atau dapat ditulis dengan
b
d ( x )
I = ∫ ∫ f ( x, y )dy dx
a c( x)
Untuk menyelesaikan integral di atas secara numerik dapat digunakan metoda trapesiun
yaitu:
d ( x) d(x )
Misal G ( x) = ∫ f ( xy)dy
c( x)
, G ( xi ) = ∫ f ( x , y)dy
c ( xi )
i
b
I = ∫ G ( x ) dx
a
76
h
I= [ y0 + 2( y1 + y2 ............................. + yn −1 ) + yn ]
2
h
= [ f 0 + 2( f1 + f 2 ............................. + f n −1 ) + f n ]
2
hx d ( x ) d ( x1 ) d ( x2 ) d ( xn )
= ∫ f ( x0 , y ) dy + 2 ∫ f ( x1 , y ) dy + 2 ∫ f ( x2 , y ) dy + ............................. + ∫ f ( xn , y )dy
2 c ( x0 ) c ( x1) c ( x2 ) c ( xn )
G( x i ) = ∫ f ( x , y)dy
i
c( x i )
hy
= [ f (x , y
i i ,0 ) + 2[ f (xi , yi ,1 ) + f (xi , yi , 2 )....................... f (xi , yi , N −1 )] + f (xi , yi , N )]
2
hx
I ≅ [G ( x o ) + 2 G ( x 1 ) + 2 G ( x 2 ) + ........ G ( x N ) ]
2
d ( xi )
dimana : G ( xi ) = ∫ f ( xi , y )dy
c ( xi )
1 (b − a )
dengan hy = [d ( xi ) − c( xi )] dan hx = .
N N
IV. TUGAS
A. Dirumah (sebelum praktikum)
π sin( x )
I =∫ ∫ exp(− x − y )dydx
2 2
0 0
77
5. Modifikasi diagram alir yang agar dapat digunakan untuk menentukan luas daerah
setengah bola x2 + y2 + z2 = 1 yang di atasnya dipotong oleh selinder bola x2 + y2 – y =
0 . (Baca dan pelajari Mary L. Boas Hal 230, gambar 5.2).
6. Modifikasi diagram alir yang diberikan pada lampiran ( Simpson 1/3) menjadi digram alir
untuk menghitung integral dengan menggunakan Simpson 3/8
7. Tugas ini diserah sebelum praktikum dimulai.
dengan metoda Simpson 1/3. Berdasarkan diagram tersebut buatlah program dengan
Matlab untuk mendapatkan solusinya.
3. Cheklah hasil program sdr. dengan referensi yang ada dan perlihatkan hasilnya kepada
dosen pembimbing atau asisten sdr.
4. Hitunglah kedua nilai integral no. 4 dan 5 (tugas pendahuluan) atas dengan menggunakan
metoda Simpson 1/3. Diharapkan keluaran dari kedua program di atas adalah:
78
79
MODUL PRAKTIKUM X
FISIKA KOMPUTASI
1. Penyelesaian Persamaan Diferensial Biasa
Untuk menyelesaikan persamaan diferensial biasa dapat dilakukan dengan metoda
Euler, metoda Runge-Kutta dan metoda Prediksi-Koreksi.
a. Metoda Euler.
Metoda ini merupakan metoda perhitungan persamaan diferensial biasa yang yang
sederhana. Metoda ini terdiri dari metoda Euler kedepan, belakang.
Umpamakan suatu persamaan diferensial biasa y’ = f(y,t) dapat diselesaikan dengan metoda
Euler ke depan dengan pendekatan.
y n+1 = y n + hf ( y n , t n ) dimana f ( y n , t n ) = y n/ (9).
t n +1
1
∫ f ( y, t )dt ≅ 2 h[ f ( y
tn
n , t n ) + f ( y n +1 , t n +1 )] (13)
80
dalam ini yn+1 tidak diketahui, dengan demikian suku kedua didekati dengan f ( y n +1 , t n +1 )
dimana y n+1 merupakan perkiraan untuk yn+1.
Dengan demikian skema untuk penyelesaian persamaan diferensial dengan metoda Runge-
Kutta untuk orde ke-2 adalah sebagai berikut:
y n+1 = y n + hf ( y n , t n )
h
y n +1 = y n + [ f ( y n , t n ) + f ( y n+1 , t n +1 )]
2
dalam bentuk yang lebih umum biasanya digunakan :
1
y n +1 = y n + [k1 + k 2 ] dengan k1 = hf ( y n , t n ) dan k 2 = hf ( y n + k1 , t n+1 )
2
Pemakaian metoda metoda Runge-Kutta untuk persamaan diferensial orde yang lebih
tinggi dapat dilakukan dengan mudah. Upamakan persamaan diferensial :
y’’(t) + ay’(t) + by(t) = q(t), y(0) = 1; y’(0) = 0 (14)
dimana a dan b adalah koefesien dan q(t) fungsi yang diketahui dengan syarat awal yang
diberikan. Bila didefenisikan z(t) = y’(t)
maka persamaan (14) dapat direduksi menjadi sepasang persamaan diferensial:
y’ = f(y,z,t) ≡ z ; y(0) = 1
z’ = g(y,,z,t) ≡ -az-by+q, z(0) = 0. (15)
dengan demikian persamaan diferensial orde-2 dengan metoda Runge-Kutta dapat ditulis
menjadi.
k1 = hf ( y n , z n , t n ) = hz n
l1 = hg ( y n , z n , t n ) = h(−az n − by n + q n )
k 2 = hf ( y n + k1 , z n + l1 , t n +1 ) = h( z n + l1 )
l 2 = hg ( y n + k1 , z n + l1 , t n +1 ) = h(−a ( z n + l1 ) − b( y n + k1 ) + q n +1 )
1
dengan: y n +1 = y n + [k1 + k 2 ] dan z n +1 = z n + 1 [l1 + l 2 ]
2 2
Selanjutnya untuk metoda Runge-Kutta orde-4 dapat dihitung dengan menggunakan teknik
integrasi metoda Simpson 1/3. yang dapat ditulis sebagai berikut:
1
y n +1 = y n + [k1 + 2k 2 + 2k 3 + k 4 ] , dimana
6
k1 h
k1 = hf ( y n , t n ); k 2 = hf ( y n + , tn + )
3 3
k h
k 3 = hf y n + 2 , t n + ; k 4 = hf ( y n + k1 − k 2 + k 3 , t1 + h)
2 2
81
1. TUGAS DIRUMAH
(Buat rangkap 2 dan 1 kumpulkan sebelum praktikum dimulai, 1 rangkap untuk sdr. gunakan
sewaktu praktikum)
a. Rancanglah diagram alir dan program untuk menentukan penyelesaian diferensial biasa
suatu fungsi berdasarkan algoritma metoda Euler.
b. Rancanglah diagram alir dan program untuk menentukan penyelesaian diferensial biasa
suatu fungsi berdasarkan algoritma metoda Runge-Kutta Orde-2
c. Rancanglah diagram alir dan program untuk menentukan penyelesaian diferensial biasa
suatu fungsi berdasarkan algoritma metoda Runge-Kutta Orde-3 dengan metoda simpson
1/3
82
FLOW CHART UNTUK MENGHITUNG PDB DENGAN
METODA EULER
BEGIN
β
α
BACA
x1,x2, y1
n =1 benar
Tidak
n=0
d=10 d = y -y2 Tulis
p,y
Tulis
n = n+1 p,y, d
p = 2^n
dx = (x2-x1)/p Benar
x = x1
y = y1
y2 = y
y = y + fx *dx
x = x + dx
Tulis
x2, y
x < x2
end
α
β
83
FLOW CHART METODA RUNGE-KUTTA ORDE 2 FLOW CHART METODA RUNGE-KUTTA ORDE-4
Mulai
MULAI
n = 1..jp
kount = 1..50 TL = TB
TB = TB + H
step = step + 1
Tt = TL + HH
t = h * step i = 1..jp
ya[i] = y[i]
k1 = h * z f(tl ,h,ya,k1)
l1 = -h* (bm*z + km * y
k2 = h * (z + l1) i = 1..jp
l2 = -h*(bm*(z+l1) + km*(y+k1)
ya[i] = y[i]+k1[i]/2
f(tt,h,ya,k2)
y = y + (k1 + k2)/2
z = z + (l1 + l2)/2
i = 1..jp
ya[i] = y[i]+k2[i]/2
Cetak
f(tt,h,ya,k3)
y, t
i = 1..jp
ya[i] = y[i]+k3[i]
End
f(tt,h,ya,k4)
i = 1..jp
y[i]=y[i]+(k1[i]+2*k2[i]+2*k3[i]+k4[i])/6
i = 1 ..jp
Cetak
y[i]
tb > tlm
End
84
MODUL PRAKTIKUM XI
FISIKA KOMPUTASI
A. TEORI
1. Baca teori pada hand out yang telah diberikan
2. Metoda Numerik oleh Abdul Munif dan Aries Prastyoko, hal 267 – 307)
2. Metoda Heun (metoda prediktor-korektor) merupakan metoda multi step dengan persamaan
iterasi adalah:
a. Prediktor :
ݕାଵ = ݕିଵ + ݂(ݔ , ݕ )2ℎ
b. Korektor :
ିଵ
݂(ݔ , ݕ ) + ݂൫ݔାଵ , ݕାଵ ൯
ݕାଵ = ݕ + ℎ
2
Untuk j = 1, 2 ..., m
C. TUGAS DIRUMAH
(Buat rangkap 2 dan 1 kumpulkan sebelum praktikum dimulai, 1 rangkap untuk sdr. gunakan
sewaktu praktikum)
a. Rancanglah diagram alir dan program untuk menentukan penyelesaian diferensial biasa
suatu fungsi berdasarkan algoritma metoda Runge-Kutta Orde-4 dengan metoda simpson
3/8
85
b. Rancanglah diagram alir dan program untuk menentukan penyelesaian diferensial biasa
suatu fungsi menggunakan metoda Korektor-prediktor (Stevan C. Chapra dan Raymond
P. Canale Terjemahan S. Sardy halaman 643 – 657)
c. Rancanglah diagram alir dan program untuk menentukan penyelesaian diferensial biasa
suatu fungsi menggunakan metoda Adam
d. Rancanglah diagram alir dan program untuk menentukan penyelesaian diferensial biasa
suatu fungsi menggunakan metoda Milne
e. Rancanglah diagram alir dan program untuk menentukan penyelesaian diferensial biasa
suatu fungsi menggunakan metoda Adam- Moulton
86
MODUL PRAKTIKUM XII
FISIKA KOMPUTASI
87
a11 a 12 a 13 .. a1n x1 b1
a a 22 a 23 .. a 2 n x 2 b2
21
a 31 a 32 a 33 .. a 3n x 3 = b3 (2-2)
.. .. .. .. .. ... ...
a n1 a n 2 a n 3 .. a nn x n bn
Dalam notasi vektor persamaan (2-2) dapat ditulis menjadi:
[A]{x} = {b) (2-3)
dimana [A] adalah matriks kuadrat (n x n) dengan elemen aij (i = 1... n, j = 1,...n) dan x adalah
vektor variabel yang akan dicari nilainya, b adalah vektor harga konstan sistem persamaan linier.
Dengan mengetahui data tentang nilai aij (harga konstanta setiap variabel) dan nilai bi pada
bentuk persamaan linier simultan, maka harga xi dapat ditentukan dengan beberapa prosedur
eliminasi antara lain eliminasi Gauss dan eleminasi Gauss-Jordan yang akan dijelaskan pada
bagian berikut ini.
1. ELIMINASI GAUSS
Untuk memudahkan dalam menjelaskan metoda eleminasi Gauss ini terlebih dahulu
perhatikanlah tiga persamaan dengan tiga variabel berikut ini:
a11 x1 + a12 x2 + a13 x3 = b1 (2-4a)
a21 x1 + a22 x2 + a23 x3 = b2 (2-4b)
a31 x1 + a32 x2 + a33 x3 = b3 (2-4c)
Dalam hal ini |aii| ≥ | aii + ... + aii-1 + aii+1 + ... + ain |
Untuk mendapatkan menyelesaian sistem persamaan di atas, paling sedikit salah satu dari a11,
a21 dan a31 harus tidak sama dengan nol, bila tidak, hanya ada dua variabel yang muncul pada
ketiga persamaan. Bila a11 adalah nol, maka dapat diatur kembali sistem persamaan tersebut
sehingga x1 dalam persamaan tidak sama dengan nol. Dengan saling memindahkan dua baris
dalam sistem persamaan ini, dimana hal ini tidak akan merubah penyelesaian sistem
persamaan tersebut.
Seterusnya didefenisikan sebuah faktor pengali katakanlah dengan m2 = a21 /a11.
Kemudian dikalikan persamaan (2-4a) dengan m2 dan selanjutnya dikurangkan dengan
persamaan (2-4b), sehingga diperoleh:
(a21 - m2 a11)x1 + (a22 - m2 a12)x2 + (a23 - m2 a13)x3 = b2 - m2b1 (2-5)
a
tetapi dalam hal ini: a 21 − m2 a 11 = a 21 − 21 a 11 = 0 , dimana harga x1 telah dieliminasikan ke
a 11
persamaan kedua. Hasil inilah yang menjadi alasan mengapa dipilih m2. Sekarang bila
didefenisikan:
a’22 = a22 - m2 a12
a’22 = a23 - m2 a13
b’2 = b2 - m2 b1
akibatnya persamaan (2-5) menjadi:
a’22 x2 + a’22 x3 = b’2 (2-6)
88
Kemudian dengan menganti persamaan (2-4b) dengan persamaan (2-6), maka diperoleh solusi
persamaan baru yang terdiri (2-4a), (2-6) dan (2-4c), dimana solusi ini identik dengan solusi
sistem persamaan yang asli.
Selanjutnya dengan cara yang sama, didefenisikan faktor pengali untuk persaman ketiga
dengan m3 = a31 /a11. Kalikan persamaan (2-4a) dengan m3 dan dikurangkan dengan
persamaan (2-4c), sehingga kembali variabel x1 hilang, sehingga diperoleh:
a’32 x2 + a’33 x3 = b’3 (2-7)
dimana:
a’32 = a32 - m3 a12
a’33 = a33 - m3 a13
b’3 = b3 - m3 b1
Dengan subsitusikan persamaan (2-7) untuk mengganti persamaan (2-4c), sehingga diperoleh
persamaan:
a11 x1 + a12 x2 + a13 x3 = b1 (2-8a)
’ ’ ’
a 22 x2 + a 23 x3 = b 2 (2-8b)
a’32 x2 + a’33 x3 = b’3 (2-8c)
Persamaan ini tepat sama dengan persamaan aslinya, dengan tambahan keuntungan
dimana x1 hanya muncul pada persamaan pertama, dimana dua persamaan berikutnya adalah
dua persamaan dengan variabel (x2 dan x3) yang mana hasilnya dapat disubsitusikan ke dalam
persamaan pertama dan didapatkan x1. Kemudian dilanjutkan dengan eliminir x2 ke salah satu
dari kedua persamaan terakhir. Bila a’22 = 0, kita saling menggantikan kedua persamaan
terakhir. Selanjutnya didefenisikan faktor mengali baru m’3 dengan: m’3 = a’32 /a’22. Kalikan
persamaan (2-8b) dengan m’3 dan dikurangkan dengan (2-8c), sehingga diperoleh hasil:
( '
)
a '32 − m'3 a 22 (
x 2 + a 33
'
)
− m3' a 23
'
x 3 = b3' − m'3 b2' dan a '32 − m'3 a 22
'
dan bila: a ''33 = a '33 − m'3 a '23 dan b3'' = b3' − m3' b2' , maka didapatkan pula harga a ''33 x 3 = b3'' .
Dengan mensubsitusikan persamaan ini ke persamaan (2-8), maka diperoleh persamaan baru
yaitu:
a11 x1 + a12 x2 + a13 x3 = b1 (2-9a)
a’22 x2 + a’23 x3 = b’2 (2-9b)
’’ ’
a 33 x3 = b 3 (2-9c)
Persamaan (2-9) disebut dengan persamaan segitiga.
Dengan didapatkannya persamaan segitiga di atas, maka sistem persamaan ini dapat
diselesaikan secara langsung yang bertitik tolak dari persamaan (2-9c) untuk mendapatkan
harga x3, kemudian mensubsitusikan hasilnya kedalam persamaan (2-9b) maka didapatkan
harga x2, seterusnya dengan mensubsitusikan harga x2 dan x3 ke persamaan (2-9a), maka
diperoleh harga variabel x1. Proses ini disebut subsitusi balik, yang dirumuskan dengan:
b3''
x 3 = '' , x 2 =
(b2' − a 23)
'
x3
dan x1 =
(b1 − a12 x 2 − a13 x 3 )
'
a3 a 22 a11
Dari ilustrasi di atas terlihat bahwa Gauss menyelesaikan sistem persamaan linier
simultan melalui proses mengganti secara beruntun terhadap beberapa variabel yang akan
dicari sampai sistem persamaan menjadi satu persamaan dengan satu variabel yang tidak
diketahui. Persamaan yang menyatakan satu variabel yang tidak diketahui dengan lainnya
disebut persamaan pivotal atau persamaan poros (persamaan, 2-4a, 2-8b, 2-9c). Jika telah
diketahui harga satu variabel, maka variabel yang lainnya dapat diperoleh melalui proses
subsitusi balik dengan menggunakan persamaan pivotal tadi.
89
Didalam penyelesaian sistem persamaan linier secara numerik dengan metoda eliminasi
Gauss, selalu ditentukan terlebih dahulu persamaan pivotal; yaitu persamaan yang
mempunyai koefesien terbesar dari persamaan yang akan dieliminasi. Apabila persamaan
yang akan dieliminasi secara berturut-turut dengan harga x1, x2, maka persamaan pivotal yang
pertama diperoleh berdasarkan kepada harga koefesien x1 mutlak terbesar dari sistem
persamaan tersebut. Persamaan ini dipindahkan posisinya pada susunan baris pertama,
sehingga koefesien yang terbesar berada pada lokasi diagonal a11. Persamaan pivotal kedua
x2 dari hasil susunan persamaan pivotal pertama dipilih dari koefesien x2 mutlak terbesar
pula. Demikianlah seterusnya, sehingga tersusunlah sistem persamaan linier simultan segitiga
Seterusnya kita kembangkan, sistem persamaan linier simultan tiga variabel yang tidak
diketahui dengan persamaan di atas, menjadi n variabel tidak diketahui dengan n persamaan
berikut:
a11 x1 + a12 x2 + ... + a1j xj + ... + a1n xn = b1
a21 x1 + a22 x2 + ... + a2j xj + ... + a2n xn = b2
...................................................................
ai1 x1 + ai2 x2 + ... + aij xj + ... + ain xn = bi (2-10)
..................................................................
an1 x1 + an2 x2 + ... + anj xj + ... + ann xn = bn
Dengan menanggap bahwa persamaan sudah tersusun kembali sehingga a11 ≠ 0, maka
a
didefenisikan n-1 buah faktor pengali mi = i 1 , i = 2 ,3,... n dan kurangkan mi kali persamaan
a 11
pertama dengan persamaan ke-i, maka didapatkan:
a’ij = aij - mi a1j ; i = 2,...,n
b’i = bi - mi b1 ; j = 1,..,n
disini terlihat dengan mudah bahwa a’i1 = 0, jika i = 2,...n, dengan demikian persamaan
transformasinya dapat ditulis menjadi:
a11 x1 + a12 x2 + ... + a1j xj + ... + a1n xn = b1
0 + a`22 x2 + ... + a`2j xj + ... + a`2n xn = b`2
..... ..............................................................
0 + a`i2 x2 + ... + a`ij xj + ... + a`in xn = b`i (2-11)
0 + a`n2 x2 + ... + a`nj xj + ... + a`nn xn = b`n
Kemudian untuk penghematan pemakaian memori komputer beri nama kembali a’ij dan b’i
dengan aij dan bi, pada proses iterasi berikutnya. Perlu ditegaskan disini bahwa sistem
persamaan (2-11) mempunyai solusi yang sama dengan solusi (2-10).
Kemudian prosedur di atas dilanjutkan sampai ke tingkat ke-k, dengan dieliminir xk
a
setelah mendefenisikan faktor pengali: mi = ik , i = k + 1,..., n , dalam hal ini
a kk
aij = aij - mi akj ; i = 2,...,n ; i = k+1,...n.
bi = bi - mi bk ; j = 1,..,n ; j = k,..., n.
indeks k (k= 1.... n-1) merupakan bilangan bulat (integer). Pada titik ke k = n-1, dieliminir xn-
1 ke persamaan terakhir, sehingga diperoleh persamaan segitiga berikut:
a11 x1 + a12 x2 + ... + a1,n-1 xn-1 + ... + a1n xn = b1
a22 x2 + ... + a2,n-1 xn-1 + ... + a2n xn = b2
.........................................................................
an-1,n-1 xn-1 + ... + an-1,nxn = bn-1 (2-12)
ann xn = bn
90
Pada persamaan (2-12) ini terlihat bahwa persamaan terakhir hanya mengandung xn, bila ann ≠
b
0, maka diperoleh: x n = n . Kemudian berdasarkan persamaan (2-12) yang kedua terakhir,
a nn
dimana variabel yang tidak diketahuinya xn-1, dimana jika an-1,n -1 ≠ 0, diperoleh subsitusi
balik yaitu:
b − a n −1,n x n
x n −1 = n − 1 . Secara umum, bila xk+1, xk+2, ...,x1, telah dihitung, maka persamaan
a n −1,n −1
ke-k, dapat secara unik diselesaikan untuk setiap nilai xk, dimana bila akk ≠ 0 dengan
persamaan diperoleh nilai:
n
bk − ∑ a kj x j
j = k +1
xk = . Proses menyelesaikan sistem persamaan (2-12) di atas disebut dengan
a kk
subsitusi balik.
Secara umum algoritma untuk subsitusi balik di atas adalah sebagai berikut:
1. Masukan harga atau buat terlebih dahulu matrik A segitiga atas berukuran n x n. Dengan
ketentuan tidak ada elemen diagonal yang nol.
2. Masukan elemen vektor b.
n
bk − ∑ a kj x j
j = k +1
3. Cari variabel yang tidak dikatehui dengan persamaan: x k =
a kk
4. Ulangi perhitungan di atas mulai dari k = n, n-1, ...1.
Dari proses subsitusi balik di atas terlihat bahwa, sesungguhnya yang ditinjau hanya
nilai-nilai pada j = k+1, k+2,..,n, karena terdapat elemen nol di bawah diagonal, maka tidak
diperlukan perhitungan lebih lanjut. Elemen akk yang digunakan untuk menghitung mik
disebut dengan elemen pivot. Pada tahap akhir menghitung determinan dinyatakan sebagai
n
A = ∏ a ii , sehingga jika ada pivot berharga nol, berarti determinan |A| = 0. Hal ini
i −1
menunjukan bahwa invers [A]-1 tidak ada. Hal ini mengindikasikan bahwa tidak ada solusi
yang unik dari sistem persamaan linier yang dicari. Jika pada proses eleminasi nilai akk
bernilai nol, akan tetapi elemen di bawahnya tidak nol, maka perlu dilakukan modifikasi
susunan baris, dengan pertukaran baris dalam matriks untuk mendapatkan pivot yang bukan
bernilai nol. Proses ini disebut dengan proses pivoting.
Bila suatu pivot bernilai kecil sekali, maka sistem persamaan mempunyai nilai
determinan yang kecil, sistem persamaan persamaan linier simultan ini disebut pada keadaan
"rusak" (ill) (ill conditioned) yang berarti solusi yang akan diperoleh tidak memberikan hasil
yang besar.
Berdasarkan uraian di atas, maka dapat dibuat algoritma penyelesaian sistem persamaan
linier simultan dengan metoda Guauss sebagai berikut:
1. Masukan nilai-nilai elemen matriks [A] dan vektor {b} yang membentuk sistem
persamaan linier simultan.
2. Bentuk matriks [G] yang merupakan gabungan matriks [A] dan vektor {b}.
3. Pertukarkan baris, jika diperlukan untuk membuat nilai a11 mempunyai nilai terbesar dari
seluruh koeffesien pada kolom pertama.
91
4. Bentuk harga nol pada baris kedua dari ujung baris ke-n pada kolom pertama dengan
membagi ai1/a11 dan kalikan dengan kolom pertama dari baris ke-i.
5. Ulangi langkah (3) dan (4) untuk bagian ujung baris ke-(n-1), ambil koefesien terbesar
pada diagonal dengan mempertukarkan baris (yang menjadi perhatian hanya baris ke-j
sampai dengan ke-n) dan kemudian bagi aij/ajj kalikan dengan baris ke-j dari baris ke-i,
sehingga membentuk nol pada semua posisi dari kolom ke-j dibawah diagonal. Pada
akhirnya langkah ini, sistem berada dalam bentuk segitiga bagian atas.
6. Selesaikan untuk xn untuk persamaan ke-n dengan: xn = an,n+1 / ann
7. Terakhir hitung harga variabel xn-1, xn-1, ...,x1 dari ujung persamaan pertama dengan
n
bk − ∑ a kj x j
j = k +1
menggunakan subsitusi balik melalui persamaan: x k = .
a kk
92
Dari persamaan (2-14) terlihat bahwa nilai xi, sebagai variabel yang dicari nilainya dapat
langsung diperoleh pada nilai paling kanan dari matriks gabungan yang terbentuk. Solusi ini
pada dasarnya sama dengan metoda Gauss biasa, kesalahan pembulatan tetap akan
menyebabkan ketidaktepatan dengan cara sedikit berbeda dari yang terdapat pada perhitungan
sebelumnya.
Sementara skema eliminasi Gauss-Jordan di atas menampakan langkah yang sama
dilakukan dalam prosedur yang standard. Dari perhitungan operasi aritmatika memperlihatkan
bahwa metoda eliminasi Gauss-Jordan memerlukan 50% lebih banyak operasi. Dengan
demikian metoda ini sangat tidak dianjurkan dipergunakan. Kelemahan lain adalah sering
terjadi untuk mendapatkan penyelesaian set persamaan dengan koefesien matriks yang sama
tetapi dengan terdapat perbedaan pada sisi sebelah kanan.
Algoritma untuk menyelesaikan sistem persamaan linier dengan mengunakan metoda
Gauss-Jordan adalah sebagai berikut:
1. Masukan nilai-nilai matriks [A] dan vektor {b} yang membentuk sistem persamaan linier.
2. Bentuk matriks gabungan [G] dengan cara mengandengkan matriks [A] dan {b}
3. Lakukan eleminasi untuk men-nol-kan bagian segitiga bawah dan segitiga atas matriks.
4. Kemudian lakukan normalisasi sehingga semua elemen diagonal matriks sama dengan 1
(satu)
5. Uji validitas progran untuk meningkat proses belajar,
6. Tuliskan keluaran akhir program.
3. Perbaikan Solusi Metoda Eliminasi.
Seperti yang telah dijelaskan di atas bahwa dalam menyelesaikan sistem persamaan
linier dengan metoda eleminasi kita tidak akan terlepas dari proses pembulatan, apakah itu
karena melakukan perpindahan baris ataupun tidak, kesalahan pembulatan tetap berpengaruh
terhadap hasil yang dicapai. Untuk perlu dilakukan perbaikan, setelah solusi persamaan
didapatkan, agar didapatkan solusi yang cukup masuk akal bila sistem yang mengalami
kondisi sakit "ill-conditioned".
Untuk mempermudah membahas tentang persoalan di atas, ambil x10 , x 20 , x 30 ,..., x n0 yang
merupakan salah satu penyelesaian pendekatan dari sistem persamaan (2-30) yang didapatkan
dengan metoda eliminasi. Bila penyelesaian ini disubsitusikan ke sisi kiri persamaan (2-30)
maka diperoleh:
a11 x1( 0 ) + a12 x 2( 0 ) + ...+ a1n x n( 0 ) = b1( 0 )
a 21 x1( 0 ) + a 22 x 2( 0 ) + ...+ a 2 n x n( 0 ) = b2( 0 )
(2-15)
....................................................
a n1 x1( 0 ) + a n 2 x 2( 0 ) + ...+ a nn x n( 0 ) = bn( 0 )
Bila bi( 0 ) cukup besar perbedaannya dengan bi, berarti bahwa x i( 0 ) bukan merupakan
pendekatan penyelesaian (2-10) yang baik. Disisi lain meskipun bi( 0 ) dan bi hampir sama,
tetapi x i( 0 ) dapat tetap bukan merupakan pendekatan penyelesaian yang baik.
Jika masing-masing suku persamaan (2-15) dikurangkan dengan suku persamaan (2-10)
yang bersuaian dan jika ε (i 0 ) = x i − x i( 0 ) dan β (i 0 ) = bi − bi( 0 ) ; i = 1,...,n, maka diperoleh
persamaan:
93
a11ε 1( 0 ) + a12 ε (20 ) + ...+ a1n ε (n0 ) = β 1( 0 )
a 21ε 1( 0 ) + a 22 ε (20 ) + ...+ a 2 n ε (n0 ) = β (20 )
(2-16
....................................................
a n1ε 1( 0 ) + a n 2 ε 2( 0 ) + ...+ a nn ε (n0 ) = β (n0 )
dimana β (i 0 ) siap untuk dihitung, sehingga ε (i 0 ) dapat dihitung dari persamaan (2-16) dengan
menggunakan metoda eliminasi Gauss. Pendekatan baru dari penyelesaian sistem persamaan
(2-10) adalah x i( i ) = x i( 0 ) − ε i( 0 ) , dimana i = 1,...,n. Dengan demikian x i( 1 ) dapat
disubsitusikan pada sisi kiri persamaan (2-10) dan hasil pada sisi kanan disebut dengan bi( 1 ) .
Koreksi xi dapat diperoleh dengan menyelesaikan persamaan:
a11ε 1( 1 ) + a12 ε 1( 1 ) + ...+ a1n ε 1( 1 ) = β 1( 0 )
a 21ε 1( 1 ) + a 22 ε 1( 1 ) + ...+ a 2 n ε 1( 1 ) = β 2( 0 )
(2-17)
....................................................
a n1ε 1( 1 ) + a n 2 ε 1( 1 ) + ...+ a nn ε 1( 1 ) = β (n0 )
dimana: β (i 1 ) = bi − bi( 1 ) . Pendekatan barunya adalah x i( 2 ) = x i( 1 ) + ε (i 0 ) ; i = 1,...,n. Proses ini
dapat dilanjutkan sampai εi dengan proses iterasi. Proses dapat berhenti bila βi juga mencapai
nilai yang kecil pula.
merupakan matriks identitas. Penyelesaian [A]{x} = {b} dengan penentuan matriks invers ini
dapat ditulis dalam bentuk:
{x} = [A]-1{b} (2-20)
Dengan menggunakan pendekatan eliminasi Gauss-Jordan, dapat dengan mudah didapatkan
matriks identitas [I]. Setelah dilakukan normalisasi akan didapatkan:
[G][I] = [A]-1 (2-21)
-1
Untuk memperoleh matriks invers [A] , elemen matriks [A] digandengkan dengan elemen
matriks identitas [I] dalam bentuk lirik seperti berikut:
a11 a12 a13 ... a1n 1 0 0 .. 0
a a 22 a 23 ... a 2 n 0 1 0 .. 0
21
a 31 a 32 a 33 ... a 3n 0 0 1 .. 0 (2-22
... .. .. .. .. .. .. .. .. ..
a n1 a n 2 a n 3 ... a nn 0 0 0 .. 1
Dengan prosedur eliminasi Gauss-Jordan, elemen matriks ini dirubah menjadi:
94
−1 −1 −1
1 0 0 ... 0 a11 a12 a13 .. a1−n1
−1 −1 −1
0 1 0 ... 0 a 21 a 22 a 23 .. a 2−n1
0 −1
0 1 ... 0 a 31 −1
a 32 −1
a 33 .. a 3−n1
... .. .. .. .. .. .. .. .. ..
0 0 0 ... 1 a n−11 a n−21 a n−31 −1
.. a nn
dimana dalam hal ini elemen matriks
−1 −1 −1
a11 a12 a13 ... a1−n1
−1 −1 −1 −1
a 21 a 22 a 23 ... a 2 n
a 31
−1 −1
a 32 −1
a 33 ... a 3−n1 adalah elemen matriks invers [A]-1.
.. ... ... ... ...
a −1 a −1 a −1 ... a −1
n1 n2 n3 nn
Invers suatu matriks tidak saja dihitung dengan penggunaan metoda eleminasi Gauss-
Jordan, tetapi juga dapat dilakukan dengan metoda eliminasi Gauss. Hal ini dapat dilakukan
dengan suatu pengertian bahwa penambahan suatu matriks ke matriks berorde-N pada
eliminasi Gauss-Jordan dapat dipisahkan kedalam N set sistem persamaan linier dengan
koefesien matriks [A]. Dimana set pertama mempunyai suku yang tidak homogen sama
dengan kolom pertama matriks identitas. Set kedua mempunyai suku yang tidak homogen
sama dengan kolom kedua matriks identitas, dan seterusnya. Penyelesaian set pertama
menjadi kolom pertama dari matriks invers, dan penyelesaian set kedua adalah kolom kedua.
Dalam prakteknya perhitungan ini tidak dilakukan secara terpisah, tetapi dihitung secara
simultan, karena prosedur perhitungan untuk semua set adalah identik.
Algoritma penyelesaian perhitungan invers matriks dengan eleminasi Gauss-Jordan
dengan proses pivoting adalah sebagai berikut:
1. Masukan nilai-nilai koefesien sistem persamaan linier (matriks [A])
2. Bentuk matriks gabungan [G] yang merupakan gabungan matriks [A] dengan matriks [I],
[I] adalah matriks identitas.
3. Lakukan eliminasi untuk me-nol-kan segitiga bagian bawah dan segitiga bagian atas.
Untuk setiap langkah eliminasi terlebih dilakukan proses pivoting untuk mencari
persamaan pivot.
4. Lakukan normalisasi sehingga semua elemen diagonal matriks sama dengan 1 (satu)
5. Tuliskan hasil perhitungan dan akhir program.
95
IV. TUGAS
A. Dirumah (sebelum praktikum)
1. Buatlah sistem persamaan linear dari rangkaian berikut ini :
1 2 3
V1 = 200 Volt
10 Ω 5 Ω
5Ω 10 Ω
15 Ω 20 Ω
V6 = 0 Volt
4 5 6
Tentukanlah :
a. Kuat arus yang melalui masing-masing hambatan
b. Beda tegangan antara titik 1 dan 2, titik 4 dan 5, titik 2 dan 5, titik 1 dan 4
20 kg
50 kg
100 kg
450
Tentukanlah :
a. Tegangan pada masing-masing tali
b. Percepatan masing-masing balok
3. Buatlah diagram alir untuk menyelesaikan soal no.1 di atas
4. Buatlah diagram alir untuk menyelesaikan soal no.2 di atas
5. Berdasarkan diagram alir pada tugas no.3 di atas, buatlah program menyelesaikan kedua
sistem persamaan linier di atas dengan metoda eliminasi Gauss, atau eleminasi Gauss-
Jordan dan metoda matriks invers.
6. Berdasarkan diagram alir pada tugas no.4 di atas, buatlah program menyelesaikan kedua
sistem persamaan linier di atas dengan metoda eliminasi Gauss, atau eleminasi Gauss-
Jordan dan metoda matriks invers.
7. Kumpulkan tugas ini sebelum praktikum dilaksanakan, tanpa tugas ini sdr. Tidak
dibenarkan mengikuti prakatikum untuk hari itu.
96
B. Sewaktu Praktikum berjalan
1. Editlah program No. 4 di atas, bila selesai RUN-lah proram tersebut.
2. Cheklah hasil program sdr. dengan referensi yang ada dan perlihatkan hasilnya kepada
dosen pembimbing atau asisten sdr.
3. Untuk soal no.5 simpanlah pragramnya dengan nama FISKOM12A
4. Modifikasi program di atas untuk menghitung tugas No.6. Simpan nama FISKOM12B
5. Bandingkan hasil yang diperoleh dengan menggunakan metoda Eliminasi Gauss dengan
mertoda matriks invers.
Catatan: Untuk membatu sdr. Meyelesaikan permasalahan di atas gunakan diagram
alir dalam NUMERIK UNTUK FISIKA Karangan R, Soegeng. Penerbit Andi Offeset
Yogyakarta.
97
FLOW CHART INVERS MATRIK
INVERS 1 2 3 4 5
B, X, Z
Gauss
b, b, x, d
i=1, b
(i+j)/2=0 B
j=1, b
t= -1 t=1
n=0
Z(J,I) = T*DY/D
k=1, b
i<>k B
Tulis
Z(J,I)
m=m+1
n=0
l= 1, b
S
END
j<>l B
S n=n+1
y(m,n)=x(k,l)
2 3 4 5
1
98
FLOW CHART DETERMINAN
6
1 2 3 4 5
BACA
MATRIK
X(I,J) ko=x(k,j)
x(k,j)=x(n,j)
x(n,j)=ko
t=1
l= 2, b ko=x(m,k)/x(k,k)
m = l, b n=k, kl
x(k,k)=0 B
d=t
ko=0
n=k-1
m=1, b
n=n+1
ko=x(n,k) B d=d*x(m,m)
ko<>0; n<=b
TULIS D
S
ko<>0 B
END
S t=-t
x(k,k)=1
j=k, kl
t=0
4 5 6
1 2 3
99
PERSAMAAN
LINEAR
begin
α
BACA
b
x(b,b+1) =
x(b,b+1) / x(b, b)
i=1, b
i = b-1 downto
1
z =x(i, b+1)
j=1, b+1
Tulis k = i+1 to b
x(i,j)
z=z-x(i,k)*x(k,b+1)
x(i,b+1)=z/x(i, i)
Determinan
dimulai t=1 dan
seterusnya.
i=1 to b
α
Tulis
x(i, b+1)
END
100