Dari sistem persamaan linier diatas, yang akan kita tentukan adalah nilai-nilai dari
variabel-variabel x1, x2, , xn.
Salah satu cara untuk menyelesaikan persoalan tersebut adalah dengan mencari nilai
invers dari A, kita tulis :
X = A-1B
Berikut akan dijelaskan fungsi-fungsi dasar dalam Matlab dan Maple yang dapat
digunakan untuk menyelesaikan permasalahan sistem persamaan linier di atas.
a = [1 2 3 ; 4 5 6 ; 7 8 9]
a =
1 2 3
4 5 6
7 8 9
Rangkaian Matriks
Matriks dapat dibuat dengan gabungan submatriks. Sebagai contoh :
b = [a 2*a ; -a [1 0 0 ; 0 1 0 ; 0 0 1]]
b =
1 2 3 2 4 6
4 5 6 8 10 12
7 8 9 14 16 18
-1 -2 -3 1 0 0
-4 -5 -6 0 1 0
-7 -8 -9 0 0 1
a = [1 2 ; 3 4]
a =
1 2
3 4
repmat(a,2,3)
ans =
1 2 1 2 1 2
3 4 3 4 3 4
1 2 1 2 1 2
3 4 3 4 3 4
dari bentuk fungsi diatas, a adalah matriks yang akan kita replikasikan, 2 adalah
jumlah baris yang akan dibentuk oleh matriks a, dan 3 adalah jumlah kolom yang
akan dibentuk oleh matriks a.
a = zeros(2,4)
a =
0 0 0 0
0 0 0 0
b = ones(2,2)
b =
1 1
1 1
u = rand(1,3)
u =
0.9501 0.2311 0.6068
eye(3,3)
ans =
1 0 0
0 1 0
0 0 1
Mengetahui elemen yang dihitung dari akhir elemen. Misalnya untuk mengetahui
elemen baris terakhir kolom keempat dari kolom terakhir hingga kolom terakhir
v(end,end-3:end)
ans =
2.1832 0.0593 -1.3362 0.8580
Operasi Matriks
Untuk pengoperasian matriks, kita harus mengetahui terlebih dahulu hukum-hukum
operasi matriks. Misalnya pada perkalian matriks A dengan matriks B, A x B. Jumlah
kolom matriks A harus sama dengan jumlah baris matriks B. Sebagai contoh :
A = [2 3 5 ; 1 2 3]
A =
2 3 5
1 2 3
B = [4 6 ; 1 2 ; 6 1]
B =
4 6
1 2
6 1
C = A*B
C =
41 23
24 13
Transpose
Untuk menentukan transpose suatu matriks digunakan simbol .
a = [2 3 4 ; 5 6 7]
a =
2 3 4
5 6 7
Determinan matriks
a = [1 2 ; 3 4]
a =
1 2
3 4
det(a)
ans =
-2
Invers matriks
a = [1 2 ; 3 4]
a =
1 2
3 4
inv(a)
ans =
-2.0000 1.0000
1.5000 -0.5000
2x + 4y + 3z + 2w = 1
3x + 6y + 5z + 2w = 1
2x + 5y + 2z 3w = 0
4x + 5y + 12z + 14 w = 0
Akan kita cari nilai-nilai dari x, y, z, w yang memenuhi susunan persamaan diatas.
2 4 3 2 x 1
3 6 5 2 y 1
=
2 5 2 3 z 0
4 5 14 14 w 0
Disini kita dapat mencari nilai X dengan invers dari A, yaitu X = A-1B.
A = [2 4 3 2 ; 3 6 5 2 ; 2 5 2 -3 ; 4 5 14 14]
A =
2 4 3 2
3 6 5 2
2 5 2 -3
4 5 14 14
inv(A)
ans =
-23.000 29.0000 -12.8000 -3.6000
10.0000 -12.0000 5.2000 1.4000
1.0000 -2.0000 1.2000 0.4000
2.0000 -2.0000 0.6000 0.2000
X = inv(A) * B
X =
6.0000
-2.0000
-1.0000
0.0000
Keterangan parameter :
init = (pilihan) procedure, tabel, array, list, Array, Matrix, himpunan persamaan,
ekspresi aljabar, nilai awal matriks.
Penjelasan :
o Bentuk fungsi Matrix(..) adalah pembentuk struktur data matriks, seperti
matriks, vektor dan skalar. Semua parameter sifatnya optional(pilihan), boleh
digunakan ataupun tidak. Apabila tidak ada parameter, maka dianggap matriks
0x0.
o Bentuk fungsi Matrix(r) untuk membentuk matriks rxr, dimana nilai-nilainya
ditentukan oleh nilai fill dalam parameter f (standarnya adalah 0).
o Bentuk fungsi Matrix(r,c) untuk membentuk matriks rxc, dimana nilai-nilainya
ditentukan oleh nilai fill dalam parameter f (standarnya adalah 0). Jika jumlah
kolom (c) tidak ditentukan, maka ordo matriks mengikuti jumlah baris. Jumlah
kolom tidak dapat ditentukan jika tidak menentukan dulu jumlah barisnya.
o Bentuk fungsi Matrix(init) membentuk sebuah matriks yang bentuk dan nilai-
nilainya ditentukan oleh parameter init.
o Bentuk fungsi Matrix(r,c,init) membentuk sebuah matriks rxc yang nilai-nilai
awalnya ditentukan oleh parameter init (dan parameter f jika semua nilai dalam
matriks tidak ditentukan oleh init. Jika nilai-nilai awal matriks tidak ditentukan,
maka semua nilai elemen matriks dianggap 0 (nol).
> Matrix(2);
0 0
0 0
> Matrix(2,3);
0 0 0
0 0 0
> Matrix(2,3,5);
5 5 5
5 5 5
Matriks 2x3 dengan elemen-elemen yang berbeda
> Matrix(2,3,[[1,2,3],[4,5,6]]);
1 2 3
4 5 6
Array
Bentuk fungsi : array(batas)
Contoh :
> a:=array(1..2);
a := array( 1 .. 2, [ ] )
> a[1]:=x;
a1 := x
> a[2]:=y;
a2 := y
> print(a);
[ x, y ]
> with(linalg);
> b:=Matrix(2,2,[[2,3],[4,1]]);
b :=
2 3
4 1
> det(b);
-10
Invers Matriks
Bentuk fungsi : inverse(matriks)
Matriks yang akan dicari inversnya harus berbentuk matriks bujursangkar. Disini juga
perlu ditambahkan perintah with(linalg).
> with(linalg);
> a:=Matrix(2,2,[[2,4],[6,5]]);
a :=
2 4
6 5
> inverse(a);
-5 2
14 7
3 -1
7 7
2x + y + z = 4
x - y - z = -1
x + y + 2z = 4
2 1 1 x 4
A = 1 1 1 , X = y , B = 1
1 1 2 z 4
Untuk mendapatkan nilai x, y dan z dapat kita cari dengan menentukan invers
matriks A, sehingga persamaan menjadi X = A-1B.
Dengan menggunakan Maple, lakukan langkah-langkah berikut :
> with(linalg);
> A:=Matrix(3,3,[[2,1,1],[1,-1,-1],[1,1,2]]);
2 1 1
A := 1 -1 -1
1 1 2
> B:=Matrix(3,1,[[4],[-1],[4]]);
4
B := -1
4
> C:=inverse(A);
1 1
0
3 3
C := 1 -1 -1
-2 1
1
3
3
> multiply(C,B);
1
1
1
Fungsi memegang peranan penting dalam matematika. Fungsi secara analogi seperti
sebuah mesin yang apabila diberi inputan akan menghasilkan output berupa nilai.
Di Matlab kita dapat mendeklarasikan suatu fungsi dengan perintah inline
Contoh :
g = inline('t^2')
g = inline('sin(2*pi*f + theta)')
g = inline('sin(2*pi*f + theta)', 'f', 'theta')
g = inline('x^P1', 1)
g=inline('t^2')
g =
Inline function:
g(t) = t^2
g(3)
ans =
9
Kita dapat mengetahui nilai keluaran dari suatu fungsi yang telah dideklarasikan. Hal
ini dilakukan cukup dengan memasukkan nilai fungsinya , f(a) dimana f ialah
fungsi yang sudah kita buat, sedang a ialah bilangan yang bertindak sebagai inputan
seperti yang kita lihat pada contoh.
Misalkan kita ingin membuat fungsi dua variabel f(x,y)=xy-sin(xy) kita dapat
mendeklarasikannya dengan syntax :
f=inline('x*y-sin(x*y)')
f =
Note : ingat bahwa expresi selalu diapit dengan tanda petik tunggal contoh cos(t) , log(x) .
Bila input argumen tidak diberikan, maka default fungsi tersebut dinyatakan dalam variabel x.
Perhatikan juga bahwa xy berbeda dengan x*y expressi yang kedua ialah yang benar karena
matlab akan membaca expresi yang pertama sebagai variabel xy sedangkan pada expresi yang
kedua, matlab akan membacanya sebagai variabel terpisah x, y yang dikalikan.
B. Plot Fungsi
Terkadang dalam analisa matematika, kita perlu melakukan analisa grafik. Akan
sangat berguna sekali bila fungsi yang kita telah deklarasikan dapat disajikan dalam
bentuk gambar. Hal ini dapat dilakukan dengan menggunakan perintah ezplot
untuk fungsi 1 variabel. Dan ezcontour, ezmesh, ezmeshc , ezplot, ezplot3,
ezpolar, ezsurf.
f=inline('x^2')
f =
Inline function:
f(x) = x^2
ezplot(f)
Akan menghasilkan
akan menghasilkan
akan menghasilkan
Akan menghasilkan
Dalam matlab terdapat berbagai macam macam fungsi. Selain fungsi buatan seperti di
atas, terdapat juga ber bagai fungsi yang telah disediakan oleh matlab
Trigonometry.
sin - sinus.
sinh - sinus hiperbolik.
asin - invers sinus.
asinh - invers sinus hiperbolik.
cos - cosinus.
cosh - cosinus hiperbolik .
acos - invers cosinus .
acosh - invers cosinus hiperbolik.
tan - tangen.
tanh - tangen hiperbolik.
atan - invers tamgen.
atanh - invers tangen hiperbolik .
sec - secan.
sech - secan hiperbolik .
asec - invers secant.
asech - invers secan hiperbolik.
csc - cosecant.
csch - cosecan hiperbolik.
acsc - invers cosecant.
acsch - invers cosecan hiperbolik.
cot - cotangen.
coth - cotangen hiperbolik.
acoth - invers cotangen hiperbolik.
exponential.
exp - exponensial .
log - logaritma natural.
log10 - logaritma basis 10.
log2 - logaritma basis 2 .
pow2 - 2 berpangkat .
sqrt - penarikan akar .
nextpow2 - 2 berpangkat selanjutnya .
Note : untuk mengetahui syntax lebih lanjut dari fungsi tersebut juga cara penggunaannya,
ketikkan help fungsi yang ingin dicari tanpa menggunakan tanda petik ganda. Contoh :
help pow2
Matlab akan menampilkan petunjuk penggunaannya secara lengkap.
parameter :
f : ekspresi dapat berupa fungsi
i : bilangan bulat positif
keterangan :
Diberikan f, fungsi satu argumen, D(f) menghitung turunan fungsi f.
Contoh : D(sin); menjadi cos.
D(exp + cos^2 + Pi + tan); menjadi exp 2sincos + 1 + tan2
Argumen f harus merupakan ekspresi aljabar sebagai suatu fungsi dapat berupa
konstanta, fungsi yang dikenal (seperti exp, sin), fungsi yang tak dikenal (seperti f, g),
operator panah ( seperti x x^2), dan perhitungan dan operator fungsi.
Sebagai contoh,
f + g, f * g, dan f @ g
catatan :
fungsi komposisi f dan g dinyatakan dengan f @ g bukan f(g).
D(sin(y)) adalah salah, yang benar D(sin @ y).
Untuk menunjukan suatu simbol adalah suatu konstanta bukan suatu fungsi, maka
menganggap (a, konstanta). Kemudian D akan menganggap D(a) adalah 0 dan
D(sin(a) * f) adalah sin(a) * D(f).
parameter :
a : expresi aljabar
keterangan :
diff digunakan untuk turunan parsial ekspresi a berkenaan dengan x1, x2, ..., xn,
berturut-turut. Penggunaan yang paling sering adalah diff(f(x),x), untuk menghitung
turunan fungsi f(x) berkenaan dengan x.
Catatan jika n lebih dari satu, penggunaan diff sama dengan menggunakan diff secara
berulang. Dengan demikian diff(f(x), x, y) adalah sama dengan diff(diff (f(x), x), y).
Diff(tan(x), x); menjadi tan(x)
x
Diff(tan(x), x) = Diff(tan(x), x); menjadi tan(x) =1 + tan( x) 2
x
diff(f(x), x); menjadi f (x )
x
diff(f(x,y), x, y); menjadi f ( x, y )
yx
diff(g(x, y, z), x, z, z) = diff(g(x, y, z), [x, z, z]); menjadi f ( x, y, z )
zx
2
Contoh:
4+1
ans =
5
4*5+3
ans =
23
2^3
ans =
8
B. Variabel
Seperti bahasa komputer lainnya, MATLAB mempunyai aturan penamaan variabel
yaitu sebagai berikut:
Nama variabel dibedakan antara huruf kecil dan huruf besar.
Panjang maksimal nama variabel adalah 31 karakter, dan karakter ke-32 dan
seterusnya diabaikan.
Nama variabeel harus diawali dengan huruf, boleh diikuti dengan sembarang
bilangan, huruf, atau garis bawah.
Variabel tidak boleh memuat tanda baca, karena banyak diantaranya mempunyai
arti tersendiri dalam MATLAB.
data1=20
data1 =
20
Jika anda telah menyimpan suatu nilai pada suatu variabel, untuk mengetahui dan
menghapus variabel apa saja yang telah anda simpan digunakan perintah who, whos,
clear, clear all.
Contoh:
Mengetahui variabel yang sudah disimpan
who
Your variables are:
ans data data1
C. Komentar
Semua teks sesudah tanda % dianggap sebagai statement komentar dan tidak akan
dieksekusi oleh MATLAB
Contoh:
who %digunakan untuk melihat variabel tersimpan
Your variables are:
ans data data1
Contoh:
5>0
ans =
1
4<3
ans =
0
F. Operator Logika
Sama seperti operator relasi, operator logika juga akan menghasilkan nilai 1 jika
pernyataan benar dan 0 jika pernyataan salah. Operator logika di MATLAB terdiri
dari:
Contoh:
(9<4)&(5>1)
ans =
0
(9<4)|(5>1)
ans =
1
A. Loop for
Loop for digunakan untuk melakukan pengulangan perintah sebanyak suatu jumlah
yang tetap. Bentuk umum loop for adalah:
for x= array
perintah-perintah
end
Contoh:
Menghitung nilai dari 3!
h=1
h =
1
for i=1:3
h=h*i
end
while ekspresi
perintah-perintah
end
Contoh:
Menghitung nilai dari 3!
while i<=3
h=h*i
i=i+1
end
C. Konstruksi if-else-end
Konstruksi if-else-end digunakan untuk menjalankan perintah-perintah yang
memenuhi suatu ekspresi tertentu.
o Bentuk if-else-end yang paling sederhana adalah sebagai berikut:
if ekspresi
perintah-perintah
end
if ekspresi
perintah dikerjakan jika benar
else
perintah dikerjakan jika salah
end
Contoh:
Perhitungan diskon pembelian CD:
CD=2000; %harga CD satuan dalam Rp.
beli=50; %jumlah pembelian
Harga=CD*beli; %harga sebelum diskon
if (beli>=75) %perhitungan diskon jika beli minimal 50 CD
diskon=25/100
else %diskon Cuma-cuma untuk pelatihan
diskon=5/100
end
if ekspresi1
perintah dikerjakan jika ekspresi1 benar
elseif ekspresi2
perintah dikerjakan jika ekspresi2 benar
elseif ekspresi3
perintah dikerjakan jika ekspresi3 benar
.
.
.
else
perintah dikerjakan jika tidak ada ekspresi yang benar
end
Contoh:
Menentukan suatu nilai positif/negatif/nol ???
nilai=4;
if nilai>0 %pengujian apakah nilai > 0
('positif')
elseif nilai<0 %pengujian apakah nilai < 0
('negatif')
else %jika nilai tidak lebih ataupun kurang dari 0
('nol')
end
D. Konstruksi switch-case
Jika pengujian ekspresi sangat banyak, maka penggunaan switch-case sangatlah tepat
untuk digunakan. Bentuk konstruksi switch-case adalah sebagai berikut:
switch ekspresi
case test_ekspresi1
deret_perintah1
case test_ekspresi2
deret_perintah2
Contoh:
Mengkonversikan x dari centimeter ke inchi, feet, meter, milimeter, dan centimeter.
x=2.7;
unit='m';
switch unit %konversi x ke meter
case {'inch','in'}
y=x*2.54;
case {'feet','ft'}
y=x*2.54*12;
case {'meter','m'}
y=x/100;
case {'milimeter','mm'}
y=x*10
case {'centimeter','cm'}
y=x;
otherwise
('kode unit salah')
end
Contoh:
P( x ) = 2 x 3 5 x 2 + 7 dituliskan sebagai:
P=[2 -5 0 7]
P =
2 -5 0 7
A. Akar polinomial
Akar polinomial dapat dicari dengan menggunakan fungsi roots(p), contoh:
P=[2 -5 0 7];
roots(P)
ans =
1.7500 + 0.6614i
1.7500 - 0.6614i
-1.0000
B. Perkalian
Perkalian polinomial dikerjakan dengan fungsi conv(A,B), contoh:
A=[2 3 1 4];
B=[2 4 1];
conv(A,B)
ans =
4 14 16 15 17 4
C. Penjumlahan
Penjumlahan dan pengurangan dikerjakan dengan operator penjumlahan (+) dan
pengurangan (-) dengan ketentuan ukuran matriks dari kedua polinomial harus sama,
contoh:
D. Pembagian
Pembagian polinomial dikerjakan dengan menggunakan fungsi deconv(A,B) dengan
ketentuan derajat polinomial yang dibagi harus lebih besar atau sama dengan
polonomial pembaginya dan tidak koefisien terdepan dari polinomial tidak boleh
nol , contoh:
A=[2 3 1 4];
B=[2 4 1];
deconv(A,B)
ans =
1.0000 -0.5000
E. Turunan
MATLAB juga menyediakan fungsi untuk menentukan suatu turunan polinomial,
yaitu dengan menggunakan fungsi polyder(P), contoh:
A=[2 3 1 4];
polyder(A)
ans =
6 6 1
x=linspace(-3,3);
menentukan 100 data point antara -3 sampai 3
v=polyval(A,x);
menentukan nilai polinomial dengan 100 data point tersebut sebagai domainnya