MODUL PRAKTIKUM PIK 4410 PENERAPAN KOMPUTER PADA ILMU KELAUTAN Matlab Tutorial
Oleh: Onward Dimar K Nugraha
Prodi Ilmu Kelautan Fakultas Perikanan dan Ilmu Kelautan Universitas Brawijaya 2011
Kata Pengantar
Kata computer tidak tidak terlepas dari kata asalnya “to compute”, sehingga dengan demikian matematika sebagai ilmu dasar tidak dapat dipisahkan dengan penerapan komputer, khususnya di bidang ilmu kelautan. Ilmu Kelautan adalah sebuah cabang ilmu yang berkaitan secara menyeluruh (holistic) dari berbagai bidang ilmu-ilmu lainnya. Pengetahuan bidang keilmuan lain, seperti: kimia, fisika, biologi, matematika, teknik, manajemen, statistik, rekayasa teknologi, meteorologi dan klimatologi, oceanografi, remote sensing, pesisir dan pantai adalah merupakan syarat yang tidak bisa dihindari dalam rangka memahami bidang kelautan yang komprehensif. Modul
praktikum
ini
disusun
sebagai
dasar
acuan
praktikum
mahasiswa Ilmu Kelautan di Universitas Brawijaya, yang merupakan suatu modal usaha pembelajaran perhitungan matematika dengan menggunakan komputer. Kemampuan dasar ini diharapkan dapat menunjang mata kuliah lain, seperti: fisika dan kimia oceanografi, pemetaan dan penginderaan jarak jauh, pengolahan data statistik, geologi laut, proses-proses pantai dan tugas akhir. Selamat belajar dan semoga bermanfaat.
Onward Dimar K Nugraha
i
Kata Pengantar
Kata computer tidak tidak terlepas dari kata asalnya “to compute”, sehingga dengan demikian matematika sebagai ilmu dasar tidak dapat dipisahkan dengan penerapan komputer, khususnya di bidang ilmu kelautan. Ilmu Kelautan adalah sebuah cabang ilmu yang berkaitan secara menyeluruh (holistic) dari berbagai bidang ilmu-ilmu lainnya. Pengetahuan bidang keilmuan lain, seperti: kimia, fisika, biologi, matematika, teknik, manajemen, statistik, rekayasa teknologi, meteorologi dan klimatologi, oceanografi, remote sensing, pesisir dan pantai adalah merupakan syarat yang tidak bisa dihindari dalam rangka memahami bidang kelautan yang komprehensif. Modul
praktikum
ini
disusun
sebagai
dasar
acuan
praktikum
mahasiswa Ilmu Kelautan di Universitas Brawijaya, yang merupakan suatu modal usaha pembelajaran perhitungan matematika dengan menggunakan komputer. Kemampuan dasar ini diharapkan dapat menunjang mata kuliah lain, seperti: fisika dan kimia oceanografi, pemetaan dan penginderaan jarak jauh, pengolahan data statistik, geologi laut, proses-proses pantai dan tugas akhir. Selamat belajar dan semoga bermanfaat.
Onward Dimar K Nugraha
i
Daftar Isi
Kata Pengantar ................................................................................................. i Daftar Isi .......................................................................................................... ii Matlab Dasar ................................................................................................... 1 1.1. Notasi di Matlab ......................... ............ .......................... .......................... .......................... ......................... ..................... ......... 1 1.2. Fungsi Trigonometri .............................................................................. 2 1.3. Konstanta khusus ........................ ........... .......................... .......................... .......................... ......................... ................... ....... 3 1.4.Operasi matriks ...................................................................................... 4 1.4.1. Operasi perkalian matriks ............................................................... 5 1.4.2. Matrik identitas (I) ........................................................................... 5 Grafik/Figure .................................................................................................... 6 2.1. Plotting grafik ......................................................................................... 6 2.2. Membuat Subplot .................................................................................. 9 2.3. Membuat plotting 3D ............................................................................. 9 Persamaan Linear dan Polinomial ........................ ........... .......................... .......................... .......................... ............... .. 12 3.1. Menyelesaikan Persamaan Matematika ........................ ............ ......................... ...................... ......... 12 3.1.1. Persamaan Linear (Orde derajat 1) ................................... ...................... ........................ ........... 12 3.1.2. Persamaan Kuadrat (Orde derajat 2) ......................... ............ ......................... ................... ....... 12 3.1.3. Persamaan Orde Derajat Tinggi ......................... ............ .......................... .......................... ............. 14 3.2. Menyelesaikan persamaan linear dengan solve method..................... ............ ......... 14 3.3. Fungsi Polinomial ................................................................................ 15 3.3.1. Fungsi polyval ......................... ............. ......................... .......................... .......................... .......................... ............... .. 15 3.3.2. Fungsi Polyfit ................................................................................ 16 3.3.3. Fungsi polyder .............................................................................. 18 3.3.4. Fungsi roots .................................................................................. 19 3.3.4. Fungsi poly ................................................................................... 19 3.3.5. Fungsi conv .................................................................................. 20 3.3.6. Fungsi deconv .............................................................................. 20 Persamaan Differensial........................ ........... .......................... .......................... .......................... ......................... ................... ....... 22 4.1. Menggunakan ode23 .......................... ............. ......................... ......................... .......................... ........................ ........... 22 4.2. Menggunakan ode45 .......................... ............. ......................... ......................... .......................... ........................ ........... 22 4.3. Studi kasus dalam menggunakan sebuah persamaan differensial ...... 23 Matriks ........................................................................................................... 25 5.1. Determinan Matriks ............................................................................. 25 5.2. Menyelesaikan persamaan linear dengan matriks ............................ ............... ............... .. 25 5.2.1. Cara 1 dengan determinan ......................... ............ ......................... ......................... ...................... ......... 25 5.2.2. Cara 2 dengan matriks m atriks diperbesar / Augmented matrix ................ ........... ..... 25 5.2.3. Cara 3 dgn matriks invers ........................ ............ ......................... .......................... ........................ ........... 26 Statistik .......................................................................................................... 28 6.1. Pengolahan Data Statistik ................................................................... 28 6.2. Membuat persamaan matematika dari sampling data ......................... ............ ............. 30 Soal-Soal Tugas ............................................................................................ 35
ii
Matlab Dasar 1.1. Notasi di Matlab
Notasi
Freemat/Matlab
Matematika AxB
A*B
A
A/B
B
Ab A
A^b SQRT(A)
Log a
Log (a)
π
Pi
B
A\B
A
Perintah (syntax) di matlab ;
=sesudah baris persamaan artinya hasil hitungan tidak segera ditampilkan di layar
clear = membersihkan / reset dari awal
Matlab tidak memerlukan deklarasi variabel atau pernyataan dimensi pada setiap variabel yang akan digunakan dalam sebuah program komputer. Variabel dalam Matlab secara otomatis akan dibuat dan disimpan setiap kali Matlab menemukan nama variabel baru. Disamping itu, hal yang sangat penting untuk diingat bahwa variabel Matlab bersifat case sensitif, artinya antara huruf besar dengan huruf kecil dibedakan. Dibawah ini diberikan beberapa aturan penulisan variabel dalam Matlab: 1. Variable tidak boleh diawali dengan angka, misalnya 2abc, 45y, 3ok43 2. Variabel dapat merupakan kombinasi antara huruf dan angka, misalnya ok45, ok45ok, abc432 dsb 3. Variabel tidak boleh menggunakan karakter khusus Matlab, misalnya %, #, -, +, = , dsb. Misalnya %ok, net-cost, %x, @sign dsb.
1
4. Hindari memberikan nama variabel dengan nama-nama khusus yang ada di Matlab, misalnya hindari memberikan nama variabel dengan nama pi, eps, i, j. Karena pi=22/7, eps= 2 − 54 , i dan j memiliki harga − 1. 5. Disarankan
pembuatan
variabel
singkat
tetapi
penuh
makna
(informatif). Hal ini untuk menghindari kesalahan penulisan variabel yang berulang-ulang.
Perintah tambahan yang berguna untuk pemrograman a) clc: menghapus layar di command window b) close all: menghapus semua gambar yang tampil sebelumnya. c) clear: perintah untuk menghapus data di memori Matlab d) cd: perintah untuk mengubah direktori e) pwd: perintah untuk mengetahui kita berada di direktori mana pada saat ini. f) dir: perintah untuk mengetahui file apa saja yang ada di current directory g) mkdir: perintah untuk membuat direktori dibawah current direktori h) delete: perintah untuk menghapus file i) who: menampilkan semua variabel saat ini. j) whos: menampilkan semua variabel saat ini bersama dengan informasi tentang ukuran, bytes, class dll k) what: menampilkan semua file dengan ekstensi .M (M-File)
1.2. Fungsi Trigonometri Ada beberapa fungsi trigonometri yang kita kenal dalam matematika. Fungsifungsi tersebut masuk ke dalam fungsi bawaan Matlab. Fungsi-fungsi trigonometri tersebut antara lain: sin(), cos(), tan(), sinh(), cosh(), tanh(), asin(), acos(), atan(), asinh(), acosh()dan atanh(). Disamping fungsi trigonometri, fungsi-fungsi dasar juga penting. Beberapa fungsi dasar tersebut antara abs(), sqrt(), exp(), log(), log10(), log2(). Untuk lebih jelasnya, lihat tabel dibawah ini:
2
No
Nama variabel
Keterangan
1
abs()
Menyatakan harga mutlak, misal ∣ x ∣
2
sqrt()
Menyatakan akar pangkat dua , misal √x
3
exp()
Menyatakan harga eksponensial, misal ex
4
log()
Menyatakan harga ln, misal ln(x)
5
log10()
Menyatakan harga logaritma basis 10, misal log(x)
6
log2()
Menyatakan harga logaritma basis 2, misal 2 log x
1.3. Konstanta khusus Di Matlab ada beberapa konstanta khusus yang mana sebaiknya dihindari untuk didefinisikan kembali sebagai konstanta. Beberapa konstanta khusus tersebut antara lain:
No Nama variabel
Keterangan
1
pi
3.14159265...
2
i
Unit imajiner, √-1
3
j
Sama dengan i
4
eps
Ketelitian relatif floating-point
5
realmin
Bilangan floating-point terkecil
6
realmax
Bilangan floating-point terbesar
7
inf
Bilangan tak hingga
Contoh 1:
Hitung volume bola V =
4 3
r 3 , dimana r = 2 m
π
>> r = 2;
3
>>V = (4/3)*pi*r^3
Membuat interval baris bilangan >> x = [0:2:10] >> x = [0:0.1:1]
Membuat matriks >> A = [2;1;4]
matrik
kolom
>> B = [2 0 4]
matrik
baris
>> C = [1,1,9]
matrik
baris
1.4.Operasi matriks Contoh 1:
>> A = [-1,6;7,11] >> B = [2,0,1;-1,7,4;3,0,1] >> C =2*A
Contoh 2:
>> A = [5 1;0 9]; >> B = [2 -2;1 1]; >> A + B >> A – B >> A’
transpose
matrik A (AT)
Contoh 3: >> A = [2;1;4];
>> W = [ 3,0,3];
>> Y = a’
>> X = [2,1,1];
>> K = [1;4;5];
>> Y = W - X
>> L = [2;3;3]; >> M = K + L
4
1.4.1. Operasi perkalian matriks >> A = [ 2 1;1 2]; >> B = [3 4;5 6]; >> A * B
perkalian
>> A .* B
matriks
bukan perkalian matriks, hy perkalian bilangan dlm
matriks
1.4.2. Matrik identitas (I) Untuk membuat matrik identitas, dengan cara: >> eye(4)
matriks
identitas dimensi 4 x 4
Latihan: 1. Hitunglah dengan menggunakan Matlab: a. 5 b. 5
11 4 8 3
+
3
7
c. 91.25
2. Carilah volume silinder V = π r 2 h , dimana tinggi=12 cm dan diameter=14cm
5
Grafik/Figure 2.1. Plotting grafik Freemat dan Matlab juga menyediakan fasilitas untuk membuat grafik dari suatu persamaan. Membuat grafik fungsi y = cos (x) untuk 0 ≤ x ≤ 10 >> x = [0:0.1:10];
artinya
nilai x dari 0 s/d 10 dgn interval 0.1
>> y = cos(x); >> plot(x,y)
Membuat label >> x = [0:0.01:10]; >> y = cos(x); >> plot(x,y), xlabel(‘x’), ylabel(‘cos(x)’)
Membuat grid >> x = [-6:0.01:6]; >> y = tanh(x); >> plot(x,y), grid on
Menggabungkan beberapa fungsi dalam satu plot misal fungsi f(t)= e-t dan g(t)= e-2t >> t = [0:0.01:5]; >> f = exp(-t); >> g = exp(-2*t); >> plot(t,f,t,g,’--‘)
Keterangan: Untuk bentuk garis: Solid line ‘-‘ Dashed line ‘--‘ Dashed dot line ‘-.’
6
Dotted line ‘:’
Jadi jika ingin membuat garis yang berbeda, maka: >> plot(t,f,’:’,t,g,’--‘) Membuat legenda >> x = [0:0.01:2]; >> y = sinh(x); >> z = cosh(x); >> plot(x,y,x,z,’-.’),xlabel(‘x’),ylabel(‘potential’), legend(‘sinh(x)’,’cosh(x)’)
Mensetting warna: >> x = [-5:0.01:5]; >> y = sinh(x); >> z = cosh(x); >> plot(x,y,’r’,x,z,’b’)
atau
>> plot(x,y,’r’,x,z,’b--‘)
Keterangan: Warna
Variabel
White
w
Black
b
Red
r
Cyan
c
Green
g
7
Magenta
m
Yellow
y
Setting skala sumbu axis Axis([xmin xmax ymin ymax]) Contoh 1: Y = sin(2x+3) utk 0≤ x ≤5 , -1 ≤ y ≤ 1 >> x = [0:0.01:5]; >> y = sin(2*x+3); >> plot(x,y),axis([0 5 -1 1] )
Contoh 2: Y = e-1.5x sin(5x+3) untuk 0 ≤ x ≤ 5, -1 ≤ y ≤ 1 >> x = [0:0.01:5]; >> y = exp(-1.5*x .* sin(5*x+3);
.*
digunakan utk perkalian 2 fungsi
>> plot(x,y),axis([0 5 -1 11]) Ingat!! Untuk mengoperasikan dua fungsi, gunakan: .* utk perkalian .^ utk pangkat Misal:
8
Y = sin2(5x) jadi >> y = sin(5*x).^2;
2.2. Membuat Subplot Membuat beberapa grafik dalam satu plot Contoh: Y = e-1.2xsin(20x) Y = e-2x-sin(20x) >> x = [0:0.01:5]; >> y = exp(-1.2*x).*sin(20*x); >> subplot(1,2,1) membuat
2 pane dlm 1 row
>> plot(x,y),xlabel(‘x’),ylabel(‘exp(-1.2x)*sin(20)’),axis([0 5 -1 11]) >> y = exp(-2*x).*sin(20*x); >> subplot(1,2,2) >> plot(x,y),xlabel(‘x’),ylabel(‘exp(-2x)*sin(20x)’),axis([0 5 -1 11])
2.3. Membuat plotting 3D Contoh 1: Z = cos(x)sin(y) utk -2π ≤ x, y ≤ 2π >> [x,y] = meshgrid(-2*pi:0.1:2*pi);
9
>> z = cos(x).*sin(y); >> mesh(x,y,z),xlabel(‘x’),ylabel(‘y’),zlabel(‘z’) Contoh 2:
z = ye
2 2 − x + y
>> [x,y]=meshgrid(-2:0.1:2); >> z = y.*exp(-x.^2-y.^2); Perintah mesh: >> mesh(x,y,z),xlabel(‘x’),ylabel(‘y’),zlabel(‘z’)
Jika ingin membuat surface plot, gunakan: >> surf(x,y,z),xlabel(‘x’),ylabel(‘y’),zlabel(‘z’)
Pilihan lain, gunakan surfl: >> surfl(x,y,z),xlabel(‘x’),ylabel(‘y’),zlabel(‘z’)
Contoh 3: Contoh berikut hanya dapat dilakukan di Matlab, menggunakan cylindrical plot >> t = [0:pi/10:2*pi]; >> [x,y,z] = cylinder(1+sin(t); >> surf(x,y,z) >> axis square
10
Contoh 4: >> t = [0:pi/10:2*pi]; >> [x,y,z] = cylinder(1+cos(t); >> surf(x,y,z) >> axis square shading faceted Pelajari perintah-perintah 3D lainnya di matlab dengan menu help atau ketik help “nama_fungsi”. Syntax-syntax tersebut antara lain adalah: ezplot3, ezsurf, ezsurfc, ezmesh, emeshc, ezcontour dan ezcontourf. Contoh 5: Menggambar fungsi (x,y,z)= (sin(2πt), cos(2πt),t) dimana t ≥ 0 >> ezplot3 (‘cos(2*pi*t)’,’sin(2*pi*t)’,’t’,[0.5]) Contoh 6: Menggambar grafik 3D dari suatu fungsi
>> ezsurf ((‘x*y*exp((-x^2+y^2))’) LATIHAN: Buatlah plot grafik x-y (2D) dari persamaan berikut: x=sin(t), y1=sin(t+0.25), y1=cos(t-0.25) untuk 0 ≤ t ≤ 2π.
11
Persamaan Linear dan Polinomial
3.1. Menyelesaikan Persamaan Matematika Penyelesaian dengan menggunakan solve method : 3.1.1. Persamaan Linear (Orde derajat 1) Contoh 1: Selesaikan persamaan x+3=0, x+8=0 >> x = solve(‘x+3=0’)
cara
1
>> x = solve(‘x+8’)
cara
2
Contoh 2: Selesaikan persamaan ax+5=0 >> x = solve(‘ax+5’)
Contoh 3: Menggunakan solve(equation, variable) >> x = solve(‘ax+5’,’a’)
3.1.2. Persamaan Kuadrat (Orde derajat 2) Contoh 1: Selesaikan x2-6x-12=0
12
>> s = solve(‘x^2=6*x-12=0’)
Contoh 2: >> d = ‘x^2-6*x-12’; >> solve(d) >> ezplot(d)
cara
mudah membuat plot grafik
Contoh 3: Membuat grafik persamaan linear >> ezplot(‘x+3’)
Contoh 4: Cari akar-akar dari persamaan x2+x-√2=0 >> y = ‘x^2+x-sqrt(2) atau y = ‘x^2+x-2^1/2’; >> s = solve(y) Hasil yang keluar susah dimengerti, oleh karena itu dapat dikonversi menjadi bilangan desimal, dengan cara: >> x = double(s(1)) >> y = double(s(2)) Kemudian buat plotnya >> ezplot(y)
13
3.1.3. Persamaan Orde Derajat Tinggi Contoh 1: Selesaikan persamaan berikut 4x4-5x3+4x2-5x+6=0 untuk -10≤x≤10 Solusinya: >> y = ‘x^4-5*x^3+4*x^2-5*x+6’; >> s = solve(y); >> a = double(s(1))
akar
ke-1
>> b = double(s(2))
akar
ke-2
>> c = double(s(3))
akar
ke-3
>> d = double(s(4))
akar
ke-4
>> ezplot(5,[-10 10]), grid on
Contoh 2: Carilah akar-akar persamaan dari: X3+3x2-2x-6=0 untuk -8≤x≤8, -8≤y≤8 Solusinya: >> f = ‘x^3+3*x^2-2*x-6’; >> s = solve(f) >> ezplot(f,[-8,8,-8,8]), grid on
Latihan: Carilah akar-akar persamaan dari 2t3-t2+4t-6=0
3.2. Menyelesaikan persamaan linear dengan solve method Contoh 1: Carilah nilai x dan y dari persamaan berikut: 5x+4y=3 x-6y=2
14
Solusinya: >> s = solve(‘5x+4y=3’,’x-6y=2’); >> x = s.x >> y = s.y
menggunakan
notasi (.) / dot
Contoh 2: Selesaikan persamaan berikut: w+x+4y+3z=5 2w+3x+y-2z=1 w+2x-5y+4z=3 w-3z=9
Solusinya: >> s1=’w+x+4y+3z=5’; >> s2=’2w+3x+y-2z=1’; >> s3=’w+2x-5y+4z=3’; >> s4=’w-3z=9’; >> s=solve(S1,S2,S3,S4); >> w=s.w >> x=s.x >> y=s.y >> z=s.z
3.3. Fungsi Polinomial 3.3.1. Fungsi polyval Fungsi polyval digunakan untuk menentukan nilai sebuah polinomial dalam bentuk p (x)=a 0 + a 1 x 1 + a 2 x 2 + a 3 x 3 + a 4 x 4 +...+a n-1 x n-1 + a n x n Matlab memiliki cara sederhana untuk menyatakan polinomial seperti dia tas dengan cara p =[ a n a n 1 ... a 3 a 2 a 1 a 0 ]
15
Contoh Diketahui sebuah polinomial berbentuk p (x)=x 4+ 3x 2 + 4x + 5 akan dievaluasi pada x =2, 3 dan 4. Jawab Pertama,
kita nyatakan polinomial yang akan dievaluasi berbentuk p=[1 0 3
4 5]. Kedua,
kita nyatakan titik evaluasi yaitu x=[2,-3,4]
Ketiga,
mengevaluai polinomial pada x, yaitu polyval(p,x)
Jika ditulis dalam command window >> p=[1 0 3 4 5]; >> x=[2,-3,4]; >> polyval(p,x)
3.3.2. Fungsi Polyfit Jika kita telah memperoleh hasil dari sebuah eksperimen, maka kadang kita perlu mencocokan dengan bentuk fungsi apa data yang telah diperoleh. Mungkin saja cocok dengan fungsi yang berbentuk linier, kuadratis, polinomial tiga atau polinomial lainnya. Dengan menggunakan fungsi ini, kita dapat mencocokan data kita. Bentuk umum fungsi ini adalah:
p = polyfit(x,y,n)
dengan n adalah polinomial orde n, yaitu polinomial yang digunakan untuk mencocokan data.
Contoh:
X
1
2
3
4
5
6
7
8
9
10
y
1.3
3.2
11.3
15.1
25.5
38.2
47.1
68.2
81.3
98.2
16
Dari data eksperimen yang diperoleh, kita akan melakukan pencocokan ke bentuk polinomial tertentu. Tetapi, kalau kita lihat dari trend data y, kita bias menduga bahwa data kita mendekati polinomial orde 2 (kuadratis).
>> x=[1:10]; >> y=[1.3,3.2,11.3,15.1,25.5,38.2,47.1,68.2,81.3,98.2]; >> p=polyfit(x,y,2) Akhirnya diperoleh p berbentuk p= 0.9284 0.7693 -1.0350 yang merupakan koefisien polinomial p. Sekarang kita memiliki polynomial hasil pencocokan berbentuk p =0.9284 x 2 + 0.7693 x −1.0350 Untuk melihat seberapa bagus hasil pencocokan yang kita lakukan, marilah kita lakukan evaluasi pada titik-titik data yang kita miliki. >> f=polyval(p,x); >> tabel=[x' y' f' (y-f)'] >> tabel = 1.0000 1.3000 0.6627 0.6373 2.0000 3.2000 4.2173 -1.0173 3.0000 11.3000 9.6286 1.6714 4.0000 15.1000 16.8968 -1.7968 5.0000 25.5000 26.0218 -0.5218 6.0000 38.2000 37.0036 1.1964 7.0000 47.1000 49.8423 -2.7423 8.0000 68.2000 64.5377 3.6623 9.0000 81.3000 81.0900 0.2100 10.0000 98.2000 99.4991 -1.2991 Sekarang, marilah kita tampilkan selengkapnya dalam bentuk grafik dengan menuliskan code melalui jendela editor.
17
3.3.3. Fungsi polyder Fungsi polyder digunakan untuk menurunkan polinomial yang kita miliki. Bentuk umum penggunaan fungsi polyder adalah k = polyder(p) atau k = polyder(a,b)
Contoh Turunkan polinomial di bawah ini P (x )=4x 4 + 3x 2 + 4x + 5 Jawab >> p=[4 0 3 4 5]; >> polyder(p) >> ans = 16 0 6 4
Hasilnya jika dituliskan dalam bentuk ungkapan matematis 16 x 3 + 6 x + 4
Contoh Turunkan polinomial di bawah ini P ( x )= (x 4 + 3 x 2 + 4x + 5) (2x 3 + x 2 + 3 x +1)
18
Jawab a=[4 0 3 4 5]; b=[2 1 3 1]; p=polyder(a,b) p= 56 24 90 60 69 40 19 atau p (x )=56 x 6 + 24 x 5 + 90 x 4 + 60x 3 + 69x 2 + 40 x + 19
3.3.4. Fungsi roots Fungsi roots digunakan untuk memperoleh akar dari sebuah polynomial orde n. Bentuk umum dari fungsi ini adalah: r = roots(c) Contoh Diketahui sebuah polinomial p (x )=4x 4 + 3x 2 + 4x + 5 . Dapatkan akarakar polinomial tersebut dengan menggunakan fungsi roots. Jawab Polinomial p( x )=4x 4 + 3x 2 + 4x + 5 dapat dituliskan dalam Matlab berbentuk >> p=[ 4 0 3 4 5] Akar polinomial tersebut adalah >>roots(p) >> ans = 0.6364 + 1.0830i 0.6364 - 1.0830i -0.6364 + 0.6222i -0.6364 - 0.6222i 3.3.4. Fungsi poly Fungsi poly digunakan untuk menentukan bentuk polinomial setelah akar akar polinomial tersebut diketahui. Bentuk umum fungsi poly adalah p = poly(r) Contoh Diketahui akar polinomial p adalah 1,2,3,4 dan 5. Tentukan bentuk polinomialnya. Jawab >> r=[1 2 3 4 5]; >> poly(r) ans = 1 -15 85 -225 274 -120 19
atau p (x )=x 5−15 x 4 + 85 x 3−225 x 2 + 274 x −120 3.3.5. Fungsi conv Fungsi conv digunakan untuk mengalikan polinomial. Bentuk umumnya adalah w = conv(u,v) Contoh Diketahui dua buah polinomial u ( x )=x 2 + 3x + 2 dan v (x )=x 3 + 2x 2 + 3x +1 . Tentukan hasil perkalian dua polinomial tersebut. Jawab >> u=[1 3 2]; >> v=[1 2 3 1]; >> conv(u,v) ans = 1 5 11 14 9 2 atau x 5 + 5 x 4 + 11 x 3 + 14 x 2 + 9x + 2 3.3.6. Fungsi deconv Fungsi deconv berkebalikan dengan conv. Fungsi ini akan melakukan pembagian dua buah polinomial. Bentuk umumnya adalah [q,r] = deconv(v,u) dengan q dan r masing-masing adalah hasil bagi dan residu. Contoh Diketahui dua buah polinomial yaitu p 1 (x )=2x 4 + 3x 3 + x 2 + 4x + 5 dan p 2 (x ) =x 2 + 3x + 4 , maka carilah hasil bagi antara p 1 dengan p 2 beserta residunya. Jawab Dengan menggunakan fungsi deconv, maka kita dapat memperoleh hasil bagi dan residunya. >> p1=[2 3 1 4 5]; >> p2=[1 3 4]; >> [q r]=deconv(p1,p2) q= 2 -3 2 r= 0 0 0 10 -3 atau jika dinyatakan dalam bentuk matematis q =2x 2−3x + 2 dan r =10 x −3
20
Latihan: 1. Selesaikan persamaan berikut: x-3y-2z=6 2x-4y-3z=8 -3x+6y+8z=-5 2. Carilah akar-akar persamaan 1 0. Gambarkanlah kurva fungsi tersebut untuk mengkonfirmasikan hasilnya.
21
Persamaan Differensial 4.1. Menggunakan ode23
��� Buat function file satu.m function ydot = eq1(t,y) ydot = cos(t);
gunakan syntax seperti ini: [t,y] = ode23(‘nama_fungsi’,[start_time, end_time], y(0))
>> [t,y] = ode23('eq1',[0 2*pi],2);
Coba kita cocokkan hasilnya dengan membandingkan hasilnya dengan menaikkan sebuah turunan y'=cos(t) → y = sin(t)+C
>> f = 2 + sin(t); >> plot(t,y,'o',t,f),xlabel('t'),ylabel('y(t)'),axis([0 2*pi 0 4])
Cek error >> err = zeros(size(y)); >> for i = 1:1:size(y) err(i) = abs((f(i)–y(i))/f(i)); end
Hasilnya: >> err >> emax=max(err)
→ maksimum error
4.2. Menggunakan ode45 >> [t,w] = ode45('eq1',[0 2*pi],2);
22
>> f = 2 + sin(t); >> plot(t,w,'o',t,f),xlabel('t'),ylabel('y(t)'),axis([0 2*pi 0 4])
Cek error >> err = zeros(size(w)); >> for i = 1:1:size(w) err(i) = abs((f(i)–w(i))/f(i)); end >> wmax = max(err) 4.3. Studi kasus dalam menggunakan sebuah persamaan differensial Seorang tentara dengan bobot 80kg terjun dengan menggunakan parasut dari ketinggian 600m. Tentara tersebut tentunya kecepatan terjun dipercepat dengan percepatan gravitasi (9.81 m/s 2) dan diperlambat dengan tahanan dari parasut. Dinyatakan dalam persamaan differensial, sebagai berikut:
4 15 Buat function file terjun.m function rk=f(t,y) mass= 9.81; g=9.81; rk=-g+4/15*y^2/mass;
>> clear all >> timerange=[0 30];
% seconds
>> initialvelocity=0;
%m/s
>> [t,y]=ode45(@f,timerange, initialvelocity) >> plot(t,y), ylabel('velocity (m/s)'), xlabel ('time (s)')
Latihan: 1. Selesaikan persamaan differensial berikut ini:
, 1,
23
2. Gunakan ode45 untuk menghitung persamaan differensial berikut:
, 0 1
24
Matriks
5.1. Determinan Matriks D
=
a11 a12 a 21 a 22 = a11 xa 22 − a12 xa 21
Contoh 1: >> A = [1 3;4 5]; >> det(A)
5.2. Menyelesaikan persamaan linear dengan matriks 5.2.1. Cara 1 dengan determinan
5x + 2y - 9z = 44 -9x -2y + 2z = 11 6x + 7y + 3z = 44
5 A = − 9 6
44 x − 2 − 2 , b = 11 , c = y 44 z 7 3 2
− 9
>> A = [5 2 -9;-9 -2 2;6 7 3]; >> b = [44;11;44]; >> c = det(A) >> d = A \ b
5.2.2. Cara 2 dengan matriks diperbesar / Augmented matrix Untuk
menyelesaikan
persamaan
linear
dengan
matriks
diperbesar,
diperlukan uji tes rank dari matrik sebuah ukuran jumlah independen linear baris / kolom. Jika nilai rank matrik A = matrik [A b], dengan catatan nilai rank < n (jumlah variabel persamaan), maka ada solusi persamaan linear tersebut. x – 2y + z = 12
25
3x – 4y + 5y = 20 -2x + y + 7z = 11
1 A = 3 − 2
1
12 5 , b = 20 11 7
−2
4 1
Augmented matriks
1 [A b] = 3 − 2
−2
1
12
4
5
20
1
7 11
>> A = [1 -2 1;3 4 5;-2 1 7]; >> b = [12 20 11]; >> c = [A b] >> rank(A) >> rank(c)
jika
rank A dan rank C sama, maka
>> c = A\b
5.2.3. Cara 3 dgn matriks invers A A-1 = A-1A = 1 Ax=b x = A-1 b di dalam Matlab untuk mencari matriks invers: A-1 = inv(A) Contoh 1:
1 4 A = 0 0
0 −
2
2 0
−1
2
−3
1
− 1 1 9 8
>> A = [1 0 -1 2;4 -2 -3 1;0 2 -1 1;0 0 9 8]; >> det(A)
jika
det ≠ 0, maka ada inversnya
>> B = inv(A) >> C = A * B
hasilnya
matriks identitas
26
Contoh 2: 3x – 2y = 5 6x – 2y = 2 >> A = [3,-2;6,-2]; >> b = [5;2]; >> det(A); >> c = inv(A)*b
Latihan: 1.
x + 2y + 3z = 12 -4x + y + 2z = 13 9y – 8y = -1
3.
2.
x – 2y + 3z = 1 x + 4y + 3z = 2 2x + 8y +z = 3
3x + 2y - 9z = -65 -9x + 5y +2z = 16 6x + 7y + 3z = 5
27
Statistik 6.1. Pengolahan Data Statistik Pengolahan data statistik menggunakan Matlab Contoh 1: Dari 36 siswa didapat nilai matematika sebagai berikut: Jumlah
Nilai
Jumlah
Nilai
1
100
7
78
2
96
4
75
4
90
6
70
2
88
1
69
3
85
2
63
1
84
1
55
2
82
>> X = [55,63,69,70,75,78,82,84,85,88,90,96,100]; >> Y = [1,2,1,6,4,7,2,1,3,2,4,2,1]; >> bar(x,y)
Contoh 2: Nilai
Jumlah
50 – 59
1
60 – 69
3
28
70 – 79
17
80 – 89
8
90 - 110
7
Terlebih dulu kita cari nilai tengah dari range data tersebut. >> a = [54.5,64.5,74.5,84.5,94.5]; >> b = [1,3,17,8,7]; >> bar(a,b),xlabel(‘score’),ylabel(‘jumlah siswa’),title(‘Nilai Matematika’) Untuk menampilkan grafik horisontal, gunakan barh: >> barh(a,b),xlabel(‘score’),ylabel(‘jumlah siswa’),title(‘Nilai Matematika’) Jika ingin menampilkan bentuk 3D: >> bar3(a,b),xlabel(‘score’),ylabel(‘jumlah siswa’),title(‘Nilai Matematika’)
Contoh 3: Nilai UTS matematika di FPIK Nilai
PSPK
MSP
SEPK
91 – 100
10
5
8
81 – 90
13
10
17
71 – 80
18
20
15
61 – 70
3
5
2
51 – 60
0
3
1
Cari nilai tengahnya terlebih dulu:
29
>> x = [54.5,64.5,74.5,84.5,94.5]; kelompokkan dalam 3 kolom vektor: >> pspk = [0;3;18;13;10]; >> msp = [3;5;20;10;5]; >> sepk = [1;2;15;17;8]; kemudian buat persamaan: >> y = [pspk msp sepk]; >> bar(x,y),xlabel(‘nilai’),ylabel(‘jumlahsiswa’),legend(‘pspk’,’msp’,’sepk’] Contoh 4: >> A = [11,11,12,12,12,,14,14,14,15,16,16,23,24,28,29,30]; >> mean(A) >> median(A) >> std(A) Latihan: Frequency
2
1
3
6
1
3
1
1
3
4
3
2
1
Weight (pounds)
130
138
145
150
152
155
160
164
165
167
170
172
175
Carilah nilai mean, median dan standar deviasi. 6.2. Membuat persamaan matematika dari sampling data Contoh 1: Carilah persamaan matematika dan buat grafik kurva dari data permainan golf berikut: Handicap
6
8
10
12
14
16
18
20
22
24
Score
3.94
3.8
4.1
3.87
4.45
4.33
4.12
4.43
4.6
4.5
>> handicap = [6:2:24];
30
>> score = [3.94,3.8,4.1,3.87,4.45,4.33,4.12,4.43,4.6,4.5];
mencari persamaan dengan polyfit orde 1 >> p = polyfit(handicap,score,1);
Bentuk persamaan orde/derajat 1 adalah: Y = mx + b Maka dicari nilai m dan b: >> m = p(1) >> b = p(2) kemudian buat plotnya: >> x = [6:2:24]; >> y = m*x+b; >> subplot(2,1,2); >> plot(handicap,score,’o’,x,y),xlabel(‘handicap’),ylabel(‘score’) untuk mengetahui nilai fungsi y pada tiap nilai x: >> w=m*handicap+b Tes error dng uji r2 R2 = 1- A/S Dimana: A
= kuadrat jumlah selisih data yang dihitung dengan data nilai yang dikumpulkan
S
= kuadrat jumlah selisih data yang dikumpulkan dengan nilai ratarata(mean)
Jadi: >> ave=mean(score) >> A = sum((w-score).^2 >> S = sum((score-ave).^2 >> R2=1-A/S jika
nilai mendekati 1, artinya persamaan tsb cocok dng error yg kecil
Contoh 2: Berikut adalah data harga rumah (dlm jutaan) di Malang:
31
Luasan 1200 1500 1750 2000 2250 2500 2750 3000 3500 4000 Harga
135
142
156
165
170
220
225
275
300
450
>> luas=[1200,1500,1750,2000,2250,2500,2750,3000,3500,4000]; >> harga=[135,142,156,165,170,220,225,275,300,450]; >> plot(luas,harga,'o'),xlabel('Rumah m2'),ylabel('Harga'), Title('Harga Rumah di Malang'),axis([1200 4000 135 450]) >> p=polyfit(luas,harga,1); >> m=p(1) >> b=p(2) >> x=[1200:10:4000]; >> y=mx+b >> subplot(2,1,2); >> plot(x,y,luas,harga,'o'),xlabel('Rumahm2'),... ylabel('Harga'),title('Harga Rumah di Malang'),axis([1200 4000 135 450])
Uji RMS (Root Mean Square) dari persamaan yg didapat: Y=(0.1032)x-28.4909 Dengan memasukkan nilai-nilai diatas didapat: >> w=m*luas+b
Luasan 1200 1500 1750 2000 2250 2500 2750 3000 3500 4000 Harga
135
142
156
165
170
220
225
275
300
450
Y
95
126
152
178
204
230
255
281
333
384
(Ti − Aj ) = ∑ N j 0 N
RMS error
2
1
2
=
Dimana: T = nilai yang dikumpulkan A = nilai prediksi dari persamaan y N = jumlah data
32
>> d=(harga-w).^2; >> N=10;
jumlah
data=10
>> RMS=sqrt((1/N*sum(d)) nilai
RMS mendekati 1
Kita ulangi proses dari awal dengan menaikkan orde/derajat persamaan. >> p=polyfit(luas,harga,2);
orde
2
>> a=p(1) >> b=p(2) >> c=p(3) >> x=[1200:10:4000]; >> y=a*x.^2+b*x+c; >> plot(x,y,luas,harga,'o'),xlabel('Rumahm2'),... ylabel('Harga'),title('Harga Rumah di Malang'),axis([1200 4000 135 450]) >> w = a*luas.^2 + b*luas + c; >> d2=(harga-w).^2; >> N=10; >> RMS2=sqrt((1/N)*sum(d2)) Kemudian kita uji R2 >> m1=mean(harga) >> S=((harga-m1).^2) >> A=sum((w-harga).^2) >> R2=1-A/S
Hasilnya mendekati 1, jadi model persamaan ini dapat dipakai, yaitu: Y = ax2+bx+c, isikan nilai a, b dan c maka: Y = (3.75 x 10-5)x2 – 0.09x + 194.1715
Latihan: Carilah fungsi persamaan dari data yang dikumpulkan atlit angkat berat, sebagai berikut:
33
Usia
15
17
18
19
24
30
35
37
Beban
330
370
405
420
550
580
600
580
34
Soal-Soal Tugas
Tugas I Dasar-dasar penggunaan Matlab Terjemahkan pernyataan-pernyataan berikut ini dalam Matlab
Tugas II Plotting grafik/figure 1. Buatlah plot grafik dari persamaan 2. Gambarlah grafik fungsi
2 . untuk 0 10
�� untuk -5
5
Tugas III Persamaan Linear dan Polinomial 1. Hitunglah dengan Matlab persamaan ini:
, x=5
2. Tentukan harga p pada titik x= 1, -4, 10 dan 3 dari polynomial ini:
3. Carilah akar-akar persamaan 3 4 tersebut untuk mengkonfirmasikan hasilnya
0. Gambarkanlah kurva fungsi
Tugas IV Persamaan Differensial Selesaikan persamaan differensial dan plot hasilnya dari permasalahan ini: Sebuah
model
penyebaran
penyakit
pada
suatu
populasi
binatang
diformulasikan ke dalam persamaan differensial biasa sebagai berikut:
du dt
=
ku (t )(1 − u (t )), t ≥ 0
35