Académique Documents
Professionnel Documents
Culture Documents
ERIKA FAHMI G
122406135
KOM C2
D3 TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
BAB 1
1.3 Tujuan
Pembuatan makalah ini sebagai tugas mata kuliah Metode Numerik untuk lebih
memahami metode eliminasi Gauss dan Gauss-Jordan dan membantu pembaca
lainnya yang ingin menyelesaikan sistem persamaan linier.
Manfaat dari makalah yang dibuat kelompok antara lain :
a.
Membantu memahami apa yang dimaksud metode eliminasi Gauss dan Gauss-Jordan.
b.
setiap
tugas
terstruktur
yang
diberikan
pada
setiap
akhir
BAB 2
MATLAB
2.3 Tujuan
Pembuatan makalah ini sebagai tugas mata kuliah Metode Numerik untuk lebih
memahami metode eliminasi Gauss dan Gauss-Jordan dan membantu pembaca
lainnya yang ingin menyelesaikan sistem persamaan linier.
Manfaat dari makalah yang dibuat kelompok antara lain :
a.
Membantu memahami apa yang dimaksud metode eliminasi Gauss dan GaussJordan.
b.
setiap
tugas
terstruktur
yang
diberikan
pada
setiap
akhir
7
Apabila kita menginginkan output perhitungan tidak ditampilkan, namun hanya
disimpan dalam memory, maka tambahkan tanda semicolon di akhir perintah.
>> 3 + 4;
fasilitas
HELP.
Bagaimana cara
menampilkan HELP terkait dengan topik tertentu? Caranya cukup mudah, yaitu
tinggal tulislah HELP dan dilanjutkan dengan topik yang diinginkan. Misalnya
1. help ops
Perintah di atas akan menampilkan penjelasan tentang operator-operator yang ada di
MATLAB
2. help elfun
Sedangkan perintah di atas akan menampilkan nama-nama perintah untuk perhitungan
matematis.
Untuk menampilkan daftar topik yang ada, ketikkan perintah
3. help
Kita juga dapat meminta penjelasan terhadap sintaks suatu perintah, yaitu dengan
menuliskan HELP dan dilanjutkan dengan nama perintah. Misalnya
4. help abs
Perintah di atas akan menampilkan penjelasan tentang perintah abs(), cara
penulisannya atau sintaks, termasuk juga contoh penggunaannya.
10
who
Perintah lain, selain who, untuk melihat daftar nama-nama variabel yang telah
digunakan adalah dengan
b. whos
Perbedaannya adalah, bahwa dengan whos, tidak hanya nama variabel yang
ditampilkan, namun juga tipe datanya.
Mungkin ada pertanyaan, bagaimana caranya menghapus nama-nama variabel
tersebut dalam memori? caranya adalah dengan mengetikkan perintah
c. clear
Satu lagi yang penting terkait dengan variabel, bahwa nama variabel dalam MATLAB
bersifat case sensitive, artinya besar kecilnya huruf dalam nama variabel akan
berpengaruh. Sebagai contoh, misalkan ada variabel Nilai dengan nilai, keduanya
adalah variabel yang beda.
11
Langkah kita yang pertama adalah dengan menentukan variable scalar dengan cara
melakukan pengetikan seperti berikut:
x = 2 (selanjutnya tekan Enter)
x=
2
y=3
y=
3
z=x+y
z=
5
Tidak terlalu menjadi masalah bagi anda? Saya percaya anda tidak mengalami
kesulitan, sebab anda adalah orang yang sangat cerdas. Nah bagaimana dengan yang
satu berikutnya ini? Disini kita mulai dengan mendefinisikan dua buah vector, yaitu
vector x dan vector y:
x = [1 2 3]
x=
123
y = [4 5 6]
y=
456
Selajutnya ketik:
>> y(1)
ans =
12
4
dan ulangi untuk y(2) and y(3).
Matlab menggunakan integer positif untuk index array. Elemen pertama adalah y(1),
elemen kedua adalah y(2), dan seterusnya. Nol atau bilangan negatif tidak
diperbolehkan untuk indek array. Sekarang kita jumlahkan keduanya:
x+y
ans =
579
dan sekarang hitung inner product:
x*y'
ans =
32
Jawabannya adalah 1*4 + 2*5 + 3*6 = 32! Catat, bahwa y' adalah transpose pada y
dan merupakan suatu vector kolom. Untuk memeriksanya, ketikkan perintah berikut:
>> y'
ans =
4
5
6
Cara lain pada pengkombinasian dua vector adalah diakukan melalui perkalian
elementdemi- element:
>> x.*y
ans =
4 10 18
13
Catat periode sebelum perkalian simbol. Sekarang kita dapat mendefinisikan suatu
matrix:
A = [1 2 3
456
7 8 9];
Catat bahwa matrik tidak diulang kalau kita menggunakan semi colon. Kita sekarang
kalikan
A dengan transpose dari x:
A*x'
ans =
14
32
50
Sekarang kita harus mentranspose x untuk memenuhi perkalian suatu matrik dan suatu
vector kolom. Matrik-matrik ini dapat juga dikalikan satu sama lain diantara mereka:
B = [1 2 3 4
5678
7 6 5 4];
A*B
ans =
32 32 32 32
71 74 77 80
110 116 122 128
14
15
Kesederhanaan dalam proses assignment variabel terhadap nilai bertipe array atau
matriks ini disebabkan tidak diperlukannya pendefinisian ukuran (size) array atau
matriks pada variabel tersebut. Secara otomatis, size atau dimensi dari variabel bertipe
array ini akan menyesuaikan dengan array yang diassign atau dengan kata lain size
untuk variabel bertipe array ini bersifat dinamis. Dengan demikian, kita tidak perlu
pusing memikirkan size variabel yang diperlukan untuk suatu proses perhitungan.
Bagaimana caranya melakukan proses assignment variabel dengan nilai bertipe
array atau matriks? Mudah sekali yaitu hanya dengan mengapit elemen-elemen
array dengan tanda kurung siku. Contoh:
>> arrayKu = [1 2 3 4 5]
Maksud perintah di atas adalah mengassign arrayKu dengan nilai bertipe data array
dengan size 1 x 5, dengan elemennya {1, 2, 3, 4, 5}. Kita bisa melihat outputnya di
command window seperti di bawah ini:
arrayKu =
1
Dimensi array dapat juga diubah menjadi bentuk kolom 5 x 1, dengan cara:
>> arrayKu = [1; 2; 3; 4; 5]
Outputnya:
arrayKu =
1
2
3
4
5
Bagaimana dengan array berdimensi 3 x 4? berikut ini contohnya:
16
10
11
12
Mungkin ada yang bertanya misalkan diketahui suatu array, katakanlah arrayKu
seperti di atas, bagaimana caranya mengambil atau menampilkan elemen yang bernilai
7? untuk melakukan hal ini, kita harus tahu posisi elemen 7 ini, yaitu pada baris ke
2 kolom ke 3. Lalu tuliskan saja perintah ini:
>> arrayKu(2, 3)
Outputnya:
ans =
7
Berikutnya, misalkan kita ingin mengganti elemen arrayKu pada baris ke 3 kolom ke
4 dengan nilai 100. Bagaimana caranya?
>> arrayKu(3, 4) = 100
Outputnya:
arrayKu =
17
10
11 100
Ada pertanyaan lagi, bagaimana caranya mengambil semua elemen pada kolom
pertama dari arrayKu? Ini dia perintahnya
>> arrayKu(:, 1)
Outputnya:
ans =
1
5
9
Bagaimana dengan mengambil semua elemen pada salah satu barisnya? misalkan
baris ke 2? >> arrayKu
Outputnya:
ans =
5
Kita juga dapat memanipulasi semua elemen dalam satu kolom atau baris sekaligus
melalui suatu perhitungan. Misalkan baris kedua dari arrayKu diubah menjadi 2 kali
mula-mula.
>> arrayKu(2, = 2*arrayKu(2,
Outputnya:
arrayKu =
1
10
12
14
16
10
11
12
18
2.6.4 Matriks
Masukkan matriks ke dalam Matlab seperti vector, kecuali penggunaan (,).
B = [1 2 3 4;5 6 7 8;9 10 11 12]
B=
1
10 11 12
B=[1 2 3 4
5 6 7 8
9 10 11 12]
B=
1
10 11 12
Matriks di Matlab dapat dimanipulasi dengan banyak cara. Misalkan dengan membuat
transpos:
C = B'
C=
19
10
11
12
70
110
70
174
278
110
278
446
D=C*B
D=
107
122
137
152
122
140
158
176
137
158
179
200
152
176
200
224
20
E=
1
F=
2
G=
2
12
20
If you have a square matrix, like E, you can also multiply it by itself as many times as
you like by raising it to a given power.
E^3
ans =
37
54
81
118
Jika anda ingin membuat pangkat dari tiap elemen matriks, gunakan fungsi berikut .^
E.^3
ans =
1
27
64
21
X=
-2.0000
1.5000
1.0000
-0.5000
-2.0000
Ingat eigenvalues sebuah matrix adalah sama seperti akar polynomial karakteristik :
roots(p)
ans =
5.3723
-0.3723
22
melijhat bentuk sinyal dalam domain waktu anda cukup mengikuti langkah berikut.
Sekarang ketikkan:
>> time = [0:0.001:0.099];
>> x = cos(0.1*pi*(0:99));
>> plot(time,x)
>> xlabel('time (msec)')
>> ylabel('x(t)')
ini akan menghasilkan gambar seperti berikut:
Sedangkan cara untuk menampilkan sederetan nilai fungsi waktu diskrit adalah
dengan menggunakan perintah "stem". Dari contoh deretan perintah coba anda rubah
beberapa bagian dengan perintah berikut
>> stem(time,x)
>> xlabel('time (msec)')
>> ylabel('x(t)')
Apakah hasilnya seperti berikut ini?
23
Cobalah untuk membuat program seperti berikut ini pada Matlab editor, dan
jangan lupa anda simpan dengan nama coba_2
x(1:52) = [0 0 1:1:50];
x(53:102) = [50:-1:1];
h = [1 2];
for n = 3:101,
y(n) = 0;
for m = 1:2,
y(n) = y(n) + h(m)*x(n-m);
end
end
plot(y)
Hasil apa yang anda dapatkan ?
Dalam hal ini anda harus memahami arti setiap perintah yang anda tuliskan
dalam Matlab, tidak ada salahnya anda bertanya kepada instruktur apa arti perintahperintah tersebut. Satu contoh lain program untuk for adalah pembangkitan gambar
seperti berikut.
%File Name:coba_3.m
n=201;
24
delx=10/(n-1);
for k=1:n
x(k)=(k-1)*delx;
y(k)=sin(x(k))*exp(-0.4*x(k));
end
%plot(x,y)
plot(x,y,'linewidth',4)
title('Grafik yang pertama')
xlabel('x');ylabel('y');
Bagiamana hasilnya?
25
-2
12
-3
-4
Seperti dalam teori, bahwa target dari operasi baris elementer untuk menyelesaikan
SPL adalah mendapatkan matriks segitiga atas dari matriks yang diperbesar tersebut.
Apabila kita gunakan metode Gauss Jordan, maka bentuk augmented matrix ini
haruslah
1
= A(1, - A(2,
Outputnya:
A=
1
-1
-5
-3
-4
26
B2 <- B2 B1 (baris ke-2 yang baru, diperoleh dari baris ke-2 dikurangi baris ke-1)
>> A(2, = A(2, - A(1,
Outputnya:
A=
1
-1
-5
-3
-4
B3 <- B3 + 3 B1 (baris ke-3 yang baru, diperoleh dari baris ke-3 ditambah 3 kali baris
ke-1)
>> A(3, = A(3, + 3*A(1,
Outputnya:
A=
1
-1
-5
-2 -12
B3 <- B3 + B2/3 (baris ke-3 yang baru, diperoleh dari baris ke-3 ditambah 1/3 kali
baris ke-2)
>> A(3, = A(3, + A(2, /3
Outputnya:
A=
1.0000 -1.0000 -5.0000
4.0000
6.0000
8.0000
4.0000
-9.3333
9.3333
-3.6667
4.6667
6.0000
8.0000
4.0000
-9.3333
9.3333
B2 <- B2/6 (baris ke-2 yang baru, diperoleh dari 1/6 kali baris ke-2 )
27
-3.6667
4.6667
1.0000 1.3333
0.6667
9.3333
-9.3333
B3 <- B3/(-9.3333) (baris ke-3 yang baru, diperoleh dari -1/9.3333 kali baris ke-3)
>> A(3, = A(3, /(-9.3333)
Outputnya:
A=
1.0000
-3.6667
4.6667
1.0000
1.3333
0.6667
1.0000 -1.0000
B1 <- B1 + 3.6667 B3 (baris ke-1 yang baru, diperoleh dari baris ke-1 ditambah
3.6667 kali baris ke-3)
>> A(1, = A(1, + 3.6667 * A(3,
Outputnya:
A=
1.0000
0.0000
1.0000
1.0000 1.3333
0.6667
1.0000 -1.0000
B2 <- B2 1.3333 B3 (baris ke-2 yang baru, diperoleh dari baris ke-2 dikurangi
1.3333 kali baris ke-3)
>> A(2, = A(2, - 1.3333 * A(3,
Outputnya:
A=
1.0000
0.0000
1.0000
1.0000
0.0000
2.0000
1.0000 -1.0000
Karena matriks hasil operasi baris elementer ini sudah sesuai target, maka solusi dari
SPL di atas adalah x = 1, y = 2, dan z = -1.
28
DAFTAR PUSTAKA
29