TUTORIAL OCTAVE
[email protected]
MATLAB Bahasa pemrograman proprietary yang dikembangkan oleh MathWorks Awalnya dikhususkan untuk komputasi numerik, sebagai pengembangan dari LINPACK dan EISPACK Saat ini telah berkembang dan mendukung bidang bioinformatics, neural network, image processing, signal processing, dll Matlab merupakan software komersial, yang harganya ditentukan berdasarkan jumlah modul yang digunakan
GNU OCTAVE Octave merupakan software opensource yang kompatibel dengan MATLAB Sebagai bagian dari project GNU, Octave dapat didownload secara gratis di https://www.gnu.org/software/octave/do wnload.html
Octave Interface FILE BROWSER
WORKSPACE
COMMAND HISTORY
COMMAND WINDOW
Octave Interface FILE BROWSER
WORKSPACE
COMMAND HISTORY
SCRIPT EDITOR
VARIABEL Berbeda dengan Java, variabel pada octave tidak perlu didefinisikan terlebih dahulu Variabel dapat digunakan ulang untuk tipe data yang berbeda >> a=4 a = 4 >> b=5 b = 5 >> a='FILKOM’ a = FILKOM >>
VARIABEL Hasil perhitungan yang tidak di assign pada suatu variabel, akan disimpan pada variabel bernama ans >> b*2 ans = >> ans ans = >> ans ans =
10 10 + 7 17
VARIABEL Beberapa variabel sudah memiliki nilai default pada octave >> pi ans = 3.1416 >> i ans = 0 + 1i >> j ans = 0 + 1i >> eps ans = 2.2204e-16 >> realmax ans = 1.7977e+308 >> realmin ans = 2.2251e-308
BUILT-IN FUNCTIONS Octave memiliki fungsi-fungsi bawaan, diantaranya : Nama fungsi
Kegunaan
cos
Cosinus dari suatu sudut (dalam satuan radian)
sin
Sinus dari suatu sudut (dalam satuan radian)
exp
Fungsi eksponensial
log
Logaritma natural
log10
Logaritma basis 10
abs
Nilai mutlak
round
Pembulatan bilangan
mod
Modulo dari dua bilangan
or Operasi binary OR Daftar lengkap fungsi dasar octave : http://octave.sourceforge.net/octave/overview.html
BUILT-IN FUNCTIONS >> rem(20,3) ans = 2 >> ne(20,17) ans = 1 >> or(1,0) ans = 1 >> floor(9.82) ans = 9 >> abs(-123) ans = 123
VEKTOR Vektor pada octave merupakan sekumpulan angka, sama dengan struktur data array pada Java. Vektor dapat berbentuk vektor kolom maupun vektor baris >> v1=[1 7 5 3.14e3] v1 = 1 7 5 3140 >> v2 = [2;4;6;8] v2 = 2 4 6 8 >> v3 = [v1 10:15] v3 = 1 7 5 3140 10 11 12 >> v3(3) %mengakses elemen ke 3 ans = 5
v1 merupakan vektor baris
v2 merupakan vektor kolom
13
14
15
OPERASI VEKTOR >> v4 = v1 * 3 v4 = 3 21 15 9420 >> v5 = v2‘ v5 = 2 4 6 8 >> v1 * v5 error: operator *: nonconformant arguments (op1 is 1x4, op2 is 1x4) >> v1 .* v5 ans = 2 28 30 25120 >> dot(v1,v5) ans = 25180
MATRIKS >> m1 = [1, 6, 3; 2, 7, 4] m1 = 1 6 3 2 7 4 >> m2 = [2 7;8 3; 5 9] m2 = 2 7 8 3 5 9 >> m1(2,3) ans = 4 >> m2(2,:) ans = 8 3 >> m1([1,2],[2]) ans = 6 7
OPERASI MATRIKS >> m1 + m2‘ %penjumlahan per elemen ans = 3 14 8 9 10 13 >> m1 * 3 %perkalian matriks dengan skalar ans = 3 18 9 6 21 12 >> m1 * m2‘ error: operator *: nonconformant arguments (op1 is 2x3, op2 is 2x3) >> m1 .* m2‘ %perkalian per elemen ans = 2 48 15 14 21 36
OPERASI MATRIKS >> m1 * m2 %perkalian 2 buah matriks ans = 65 52 80 71 >> size(m1) %ukuran matriks (jumlah baris dan kolom) ans = 2 3 >> inv(m2([1,2],[1,2])) ans = -0.060000 0.140000 0.160000 -0.040000
FUNGSI DASAR MATRIKS Nama Fungsi
Kegunaan
contoh
eye
Membuat matriks identitas
eye(3,2)
zeros
Membuat matriks dengan semua elemen berisi angka 0
zeros(5,3)
ones
Membuat matriks dengan semua elemen berisi angka 1
ones(2,4)
rand
Membuat matriks dengan semua elemen berisi angka acak rand(4,3)
inv
Nilai inverse dari sebuah matriks
inv(m1)
det
Nilai deterinan dari sebuah matriks
det(m2)
trace
Menghitung jumlah diagonal dari suatu matriks
trace(m1)
eig
Menghitung nilai eigenvector dan eigenvalue dari suatu matriks
eig(m1)
svd
Menghitung nilai SVD dari suatu matriks
svd(m1)
rank
Menghitung ranking dari matriks
rank(m1)
SELEKSI Seleksi percabangan pada octave dapat dilakukan menggunakan if…else... atau switch If…else...
if expression statements elseif expression statements else statements endif
switch
switch x case x1 statements case x2 statements otherwise statements endswitch
SELEKSI > nilai = 67; >> if nilai > 80 nilaiHuruf = 'A'; elseif nilai > 75 nilaiHuruf = 'B+'; elseif nilai > 69 nilaiHuruf = 'B'; elseif nilai > 60 nilaiHuruf = 'C+'; elseif nilai > 55; nilaiHuruf = 'C‘; else nilaiHuruf ='D+'; endif >> nilaiHuruf nilaiHuruf = C+
SELEKSI >> x = input('Masukkan angka : '); Masukkan angka : 2.5 >> switch x case -1 disp('Minus satu'); case 1 disp('Satu'); case 0 disp('Nol'); otherwise disp('Angka lainnya'); endswitch Angka lainnya
PERULANGAN Perulangan pada octave dapat dilakukan menggunakan for atau while atau do…until
for
while
for index = values while expression statements statements endfor endwhile
Variabel values pada for loop bertipe vektor
do…until
do statements until (condition)
FOR loop >> x = [1.2, 6.3, 7.8, 3.6]; >> sum=0; >> for value = x sum = sum + value; endfor >> sum sum = 18.900 >> meanValue = sum/length(x) meanValue = 4.7250
FOR loop %jumlah bilangan bulat antara 0 sampai 10 >> for x = 0:2:10 sum=sum+x; endfor >> sum sum = 30
WHILE loop >> x=1; >> while x < 1000 disp(x); x = x*2; endwhile
do...until >> x=1; >> do disp(x); x = x*2; until (x>1000)
FUNGSI POLYNOMIAL Octave mampu menyelesaikan permasalahan-permasalahan yang melibatkan persamaan polinomial. Permasalahan yang dapat diselesaikan diantaranya adalah : 1.
Mencari akar-akar persamaan
2.
Evaluasi nilai persamaan
3.
Turunan (derivative) dari persamaan
4.
Integral persamaan
NOTASI FUNGSI POLYNOMIAL Pada octave, suatu persamaan polynomial ditulis dalam bentuk vektor yang berisi koefisienkoefisien dari persamaan tersebut. Koefisien dari persamaan polynomial disusun menurun berdasarkan pangkatnya Contoh :
1.
𝑥 $ − 2𝑥 ' − 𝑥 + 2 dinotasikan dalam vektor [1,-2,-1,2]
2.
4𝑥 * − 3𝑥 ' + 2𝑥 + 33 dinotasikan dalam vektor [4,0,0,-3,2,33] >> p1 = [1,-2,-1,2]; >> p2 = [4,0,0,-3,2,33]; >> polyout(p1, 'x') %polyout digunakan untuk menampilkan notasi matematika 1*x^3 - 2*x^2 - 1*x^1 + 2
EVALUASI FUNGSI POLYNOMIAL 1.
Berapakah nilai 𝑓 𝑥 = 𝑥 $ − 2𝑥 ' − 𝑥 + 2 untuk x=5 ?
2.
Berapakah nilai f x = 4𝑥 * − 3𝑥 ' + 2𝑥 + 33 untuk x=7, x=3, dan x=15 ? >> y1 = polyval(p1,5) y1 = 72 >> y2 = polyval(p2,x) y2 = 67128 984
3036888
AKAR FUNGSIPOLYNOMIAL Akar dari fungsi polynomial f(x) adalah nilai x yang memenuhi f(x) = 0 Suatu fungsi polynomial dapat memiliki satu atau lebih akar Contoh : 1.
Berapakah akar persamaan 𝑓 𝑥 = 𝑥 $ − 2𝑥 ' − 𝑥 + 2 ?
2.
Berapakah akar persamaan 𝑓 𝑥 = 𝑥 $ − 3𝑥 ' − 2𝑥 + 6 ? >> roots(p1) ans = -1.00000 2.00000 1.00000
TURUNAN DAN INTEGRAL FUNGSI 1.
Berapakah turunan dan integral dari fungsi 𝑓 𝑥 = 𝑥 $ − 2𝑥 ' − 𝑥 + 2 ?
2.
Berapakah turunan dan integral dari fungsi 𝑓 𝑥 = 𝑥 $ − 3𝑥 ' − 2𝑥 + 6 ? >> polyder(p1) ans = 3 -4 -1 >> polyint(p1) ans = 0.25000 -0.66667
-0.50000
2.00000
0.00000
Turuan dari 𝑓 𝑥 = 𝑥 $ − 2𝑥 ' − 𝑥 + 2 adalah 3𝑥 ' − 4𝑥 − 1 dan integralnya 0.25𝑥 4 − 0.66667𝑥 $ − 0.5𝑥 ' + 2𝑥
PLOT Octave memiliki fasilitas visualisasi 2D dan 3D, yang disediakan oleh library GNUPLOT Fungsi dasar untuk membuat grafik adalah plot(x,y), dimana x dan y adalah koordinat yang akan digambar Jika x dan y adalah skalar, hasil plot berupa titik Jika x dan y adalah vektor (dengan jumlah elemen yang sama), maka plot yang dihasilkan berupa garis yang menghubungkan titik-titik pada vektor >> x=[0,1,2,3]; >> y=[3,4,-1,2]; >> plot(x,y)
PLOT Misal plot 𝑦 = 𝑥 ' akan dibuat dengan nilai x di antara interval 0 dan 1. Langkah-langkah : 1.
Buat vektor x yang berisi nilai-nilai x. Vektor x dapat dibuat dengan fungsi linspace(batasBawah,batasAtas,n) >> x = linspace(0,1,11);
2.
Tentukan nilai 𝑦 = 𝑥 ' >> y = x .^ 2;
3.
Plot nilai x dan y >> plot(x,y);
PLOT Judul, label sumbu x, dan label sumbu y dapat diatur menggunakan perintah berikut : ◦ title(‘Judul plot’); ◦ xlabel(‘Label sumbu x’); ◦ ylabel(‘Label sumbu y’); >> title('Kurva y=x^2'); >> xlabel('Nilai x'); >> ylabel('Nilai y');
PLOT Warna dan style plot dapat diubah menggunakan opsi berikut kode
warna
w
putih
m
magenta
c
cyan
r
merah
g
hijau
b
biru
y
kuning
k
hitam
kode
style
kode
style
.
titik
h
Hexagram
o
lingkaran
-
Garis
x
silang
:
Titik rapat
+
plus
-.
Garis dan titik
*
bintang
--
Garis putus
s
kotak
d
diamond
v
Segitiga bawah
p
Pentagram
PLOT >> plot(x,y,'ro')
PLOT Satu figure pada octave mampu menampung beberapa kurva Fungsi hold on dan hold off digunakan untuk menambahkan kurva Untuk menggambarkan fungsi 𝑦 = 𝑥 ' dan 𝑦 = 𝑥 $ pada satu figure, perintah yang digunakan adalah : >> x = linspace(0,1,11); >> y1 = x .^ 2; >> y2 = x .^ 3; >> plot(x,y1,'r-'); >> hold on >> plot(x,y2,'g-'); >> hold off >> legend('x^2','x^3')
PLOT Plot yang dihasilkan melalui octave dapat disimpan dengan berbagai format Syntax yang digunakan adalah : print(‘namafile.ekstansi’,’-d[format]’) Contoh : print('graph1.png','-dpng') Contoh format penyimpanan ps
eps
jpeg
gif
cdr
png
jpg
svg
pdf