Daskommodul7matlab22007

56
Home

Transcript of Daskommodul7matlab22007

Home

2

Daftar Isi1. Strategi Penulisan Program2. Script dan M-File3. Membuat M-File4. Memanggil M-File5. Simulasi dengan M-File6. Prioritas Pengerjaan di MATLAB7. Echo On dan Echo Off8. Kegunaan Komentar dalam M-File9. Fungsi-fungsi yang Berguna pada M-File10. Contoh Penggunaan Fungsi11. Perintah Input12. Fungsi Input dan Fungsi Lain13. Efek Perintah Echo pada M-File

3

Strategi Penulisan Program

• Jika masalah yang dihadapi sederhana, mengetikkan beberapa perintah langsung di jendela Command memang cukup cepat dan efektif

• Jika • jumlah perintahnya sangat banyak, atau • ingin mengubah nilai beberapa variabel dan kemudian

mengulang kembali perhitungannya, cara di atas membosankan• Ada sarana untuk

• mengetikkan deretan perintah dalam suatu teks file • kemudian memerintahkan MATLAB untuk membuka file tersebut • menjalankannya seolah-olah diketikkan langsung di jendela

Command• File seperti itu dinamakan file script atau M-file

4

Script dan M-File

• Kata “script” berarti bahwa MATLAB hanya membaca dari “script” yang ditemukan dalam file

• Kata “M-file” berasal dari aturan bahwa nama file script harus diakhiri dengan ekstensi ‘.m’, misalnya contoh1.m

5

Membuat M-File

• Pilih New dari menu File dan pilih M-file• Cara lain: klik ikon New M-file pada toolbar• Suatu jendela editor teks ditampilkan

6

Memanggil M-File

• Untuk memanggil M-file yang sudah dibuat, tinggal ketikkan nama M-file itu di jendela Commad, maka MATLAB akan mengeksekusi semua perhitungan yang sudah ditulis di M-file

• Eksekusi (running) juga bisa dilakukan dengan mengklik ikon (Run) pada toolbar

7

>> asam

n =

59

Simulasi dengan M-File

• Dengan M-file kita bisa melakukan simulasi suatu perhitungan

• Jika suatu variabel diubah harganya, apa yang terjadi?

• Dengan melakukan eksekusi, jawaban atas pertanyaan tersebut akan terjawab langsung

• Dengan M-file, perintah-perintah akan disimpan dalam disk untuk sesi MATLAB berikutnya

8

Prioritas Pengerjaan di MATLAB

• MATLAB memprioritaskan variabel-variabel aktif dan perintah-perintah MATLAB standar sebelum nama M-file

• Jika asam bukan nama suatu variabel aktif atau suatu perintah standar MATLAB, MATLAB membuka file asam.m (jika ada) dan mengerjakan perintah-perintah yang ditemukan dalam file tersebut

• Perintah-perintah yang ada di M-file dapat mengakses semua variabel yang ada di ruang kerja MATLAB dan semua variabel yang dibuat oleh perintah dalam M-file menjadi bagian dari ruang kerja MATLAB

• Biasanya perintah yang dibaca dari M-file tidak ditampilkan jika sedang dievaluasi

9

Echo On dan Echo Off

• Perintah echo on membuat perintah-perintah yang ditemui dalam M-file ditampilkan lagi saat dikerjakan

• Sebaliknya jika ada perintah echo off

10

Kegunaan Komentar dalam M-File

• Kegunaan komentar menjadi jelas dalam penggunaan M-file

• Komentar memungkinkan kita untuk mendokumentasikan perintah-perintah yang terdapat dalam script sehingga dapat mengingat yang dikerjakan perintah-perintah tersebut jika pada suatu saat membuka kembali script tersebut

• Penggunaan titik koma pada akhir perintah mengatur penampilan dari hasil suatu perintah sehingga hasil-hasil yang penting yang ditampilkan

11

Fungsi-fungsi yang Berguna pada M-File

disp(ans)disp(ans) Menampilkan hasil tanpa menampilkan nama variabelMenampilkan hasil tanpa menampilkan nama variabel

echoecho Mengatur jendela command dalam penampilan Mengatur jendela command dalam penampilan kembali perintah yang sedang dikerjakankembali perintah yang sedang dikerjakan

inputinput Meminta pemakai untuk memberikan inputMeminta pemakai untuk memberikan input

keyboardkeyboard Memberikan kontrol pada keyboard sementara waktu. Memberikan kontrol pada keyboard sementara waktu. Ketikkan Ketikkan EnterEnter untuk kembali untuk kembali

pausepause Berhenti sampai pemakai menekan kembali Berhenti sampai pemakai menekan kembali sembarang tombolsembarang tombol

pause(n)pause(n) Berhenti selama n detikBerhenti selama n detik

waitforbuttonpresswaitforbuttonpress Berhenti sampai ada penekanan tombol mouse atau Berhenti sampai ada penekanan tombol mouse atau tombol keyboardtombol keyboard

12

Contoh Penggunaan Fungsi

13

>> kons_awal % cara biasa untuk menampilkan hasil

kons_awal =

90

>> disp(kons_awal) % menampilkan hasil tanpa menampilkan nama variabel 90

Perintah Input

14

% contoh1.m script file untuk masalah konsentrasi asamKons_awal=90; Kons_min=50; lost=input('Masukkan konsentrasi asam yang hilang setiap pencelupan = ')/100n=floor(log(Kons_awal/Kons_min)/log(1+lost))

Kalau M-file ini dijalankan, maka hasilnya:

Masukkan konsentrasi asam yang hilang setiap pencelupan = 1

lost =

0.0100

n =

59

Fungsi Input dan Fungsi Lain

15

>> contoh1Masukkan konsentrasi asam yang hilang setiap pencelupan = round(sqrt(13))+3

lost =

0.0700

n =

8

Efek Perintah Echo pada M-File

16

echo on% contoh1.m script file untuk masalah konsentrasi asamKons_awal=90; Kons_min=50; lost=input('Masukkan konsentrasi asam yang hilang setiap pencelupan = ')/100n=floor(log(Kons_awal/Kons_min)/log(1+lost))echo off

17

>> contoh1b

% contoh1.m script file untuk masalah konsentrasi asam

Kons_awal=90;

Kons_min=50;

lost=input('Masukkan konsentrasi asam yang hilang setiap pencelupan = ')/100

Masukkan konsentrasi asam yang hilang setiap pencelupan = 25

lost =

0.2500

n=floor(log(Kons_awal/Kons_min)/log(1+lost))

n =

2

echo off

18

Daftar Isi

1. Fungsi Sistem File2. Contoh Fungsi Sistem File3. Alamat Pencarian MATLAB4. MATLAB dalam Kondisi Awal

19

Fungsi Sistem File

• MATLAB menyediakan sejumlah fungsi sistem file dan perintah-perintah yang memungkinkan: • Menampilkan daftar nama file• Menghapus dan melihat isi M-file• Melihat atau mengubah direktori atau folder aktif

• Dapat juga melihat dan memodifikasi Alamat Pencarian MATLAB yang dinamakan matlabpath

• Fungsi-fungsi MATLAB sesungguhnya adalah M-file yang tersimpan dalam disk

• Jika yakin keberadaan suatu fungsi namun MATLAB tidak menemukannya, kemungkinan besar fungsi tersebut tidak berada di matlabpath 20

Contoh Fungsi Sistem File

Addpath dir1Addpath dir1 Menambahkan direktori dir1 pada awal matlabpathMenambahkan direktori dir1 pada awal matlabpath

cdcd Menampilkan direktori atau folder aktif saat iniMenampilkan direktori atau folder aktif saat ini

P=cdP=cd Menyimpan data direktori atau folder aktif dalam Menyimpan data direktori atau folder aktif dalam variabel Pvariabel P

cd pathcd path Mengubah direktori atau folder ke direktori atau folder Mengubah direktori atau folder ke direktori atau folder yang diberikan oleh pathyang diberikan oleh path

delete test.mdelete test.m Menghapus M-file bernama test.mMenghapus M-file bernama test.m

exist(‘cow’, ‘file’)exist(‘cow’, ‘file’) Mengecek ada atau tidaknya file ‘cow.m’ pada Mengecek ada atau tidaknya file ‘cow.m’ pada matlabpathmatlabpath

lsls Sama dengan dirSama dengan dir

tempdirtempdir Nama direktori sementaraNama direktori sementara 21

Alamat Pencarian MATLAB

• Umumnya jika mengetikkan >>cow, inilah yang dikerjakan oleh MATLAB:• Mengecek apakah cow suatu variabel dalam ruang kerja MATLAB; jika tidak…

• Mengecek apakah cow suatu fungsi standar MATLAB; jika tidak...

• Mengecek apakah suatu M-file yang bernama cow.m ada dalam direktori yang sedang aktif; jika tidak…

• Mengecek apakah cow,m ada di suatu tempat dalam alamat pencarian MATLAB, dengan mencari pada path sesuai urutan yang ada

22

MATLAB Dalam Kondisi Awal

• Saat MATLAB mulai dijalankan, MATLAB mengeksekusi dua file script, matlabrc.m dan startup.m

• File matlabrc.m dibuat sendiri oleh MATLAB dan sebaiknya jangan dimodifikasi

• Perintah-perintah dalam M-file ini mengatur ukuran window, penempatannya, dan sejumlah fasilitas lainnya

• File startup.m biasanya berisi perintah-perintah untuk menambahkan berbagai fasilitas yang dirancang sendiri oleh pemakai

23

24

Daftar Isi1. Pendahuluan2. Array Sederhana3. Berbagai Cara Penulisan4. Pengalamatan Array5. Orientasi Array6. Matematika Array-Skalar7. Matematika Array-Array8. Array dengan Elemen Bilangan Satu atau Bilangan Nol9. Memanipulasi Array10. Pencarian Sub-Array11. Pembandingan Array12. Ukuran Array13. Array Multidimensi14. Contoh 1: Peluruhan Radioaktif Menggunakan Array15. Contoh 2: Perhitungan Konsentrasi dengan Matematika Array16. Contoh 3: Mencari Suatu Penyelesaian Menggunakan Vektor

25

Pendahuluan

• Semua komputasi yang dikerjakan sejauh ini hanya melibatkan bilangan tunggal yang disebut skalar

• Operasi skalar merupakan dasar matematika

• Jika ingin melakukan operasi yang sama pada beberapa bilangan, perulangan operasi skalar akan menghabiskan waktu dan tidak praktis

• Untuk mengatasi masalah ini MATLAB menyediakan operasi array (larik) data 26

Array Sederhana

• Y = sin(x); 0 ≤ x ≤ π• Harus dibuat x secara inkremental, misal dengan

kenaikan 0.1π: x = 0, 0.1π, 0.2π, …, π

• Dengan MATLAB:

x=[0 0.1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]y = sin(x)

27

Pembentukan Arrayx=[2 2*pi sqrt(2) 2-3]x=[2 2*pi sqrt(2) 2-3] menciptakan vektor baris x yang memuatmenciptakan vektor baris x yang memuat

elemen elemen elemen yang diberikan elemen yang diberikan x=awal: akhir x=awal: akhir membuat vektor baris x dimulai dari awal,membuat vektor baris x dimulai dari awal,

kenaikan satu diakhiri pada atau sebelum akhir kenaikan satu diakhiri pada atau sebelum akhir x=awal:kenaikan:akhirx=awal:kenaikan:akhir membuat vektor baris x diawali dengan awalmembuat vektor baris x diawali dengan awal

kenaikan sebesar kenaikan diakhiri pada ataukenaikan sebesar kenaikan diakhiri pada atausebelum akhir sebelum akhir

x=linspace(awal,akhir,n) x=linspace(awal,akhir,n) menciptakan vektor baris x diawali dengan awal,menciptakan vektor baris x diawali dengan awal,berakhir dengan akhir mempunyai n elemen berakhir dengan akhir mempunyai n elemen

x=logspace(awal,akhir,n)x=logspace(awal,akhir,n) menciptakan vektor kolom dengan elemen elemenmenciptakan vektor kolom dengan elemen elemenberjarak logaritmis dimulai dengan 10 diakhiriberjarak logaritmis dimulai dengan 10 diakhiridengan 10 mempunyai n elemendengan 10 mempunyai n elemen

28

Berbagai Cara Penulisan

• x=[0 0.1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]

• x=[0 0.1 .2 .3 .4 .5 .6 .7 .8 .9 1]*pi• x=[0:0.1:1]*pi• x=linspace(0,1,11)*pi

29

Pengalamatan Array• x(1,6) = ? 1.5708

>> sin(x(1,6))

ans =

1

>> sin(x(1,9))

ans =

0.587830

Orientasi Array

>> x2=x' %transpose dari x

x2 =

0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416

31

>> y=sin(x2)>> y=sin(x2)

y =y =

00 0.30900.3090 0.58780.5878 0.80900.8090 0.95110.9511 1.00001.0000 0.95110.9511 0.80900.8090 0.58780.5878 0.30900.3090 0.00000.0000

Operator Titik Transpose

• Sebagai tambahan, pada MATLAB disediakan operator titik transpose dengan diawali titik.

• Operator titik transpse ini diinterprestasikan sebagai transpose konjugasi non-kompleks.

• Jika suatu array merupakan array kompleks, transpose (‘) memberikan transpose konjugasi kompleks, yaitu tanda dari bagian imajiner yang berubah sebagai akibat operasi transpose.

• Tetapi titik transpose melakukan transpose pada array namun tidak melakukan konjugat pada dirinya.

32

Contoh Operasi Titik Transpose

>> A=[3 2i 3;1 2 i;4i 1 1]

A =

3.0000 0 + 2.0000i 3.0000

1.0000 2.0000 0 + 1.0000i

0 + 4.0000i 1.0000 1.0000

>> B=A'

B =

3.0000 1.0000 0 - 4.0000i

0 - 2.0000i 2.0000 1.0000

3.0000 0 - 1.0000i 1.0000

33

>> C=A.'

C =

3.0000 1.0000 0 + 4.0000i 0 + 2.0000i 2.0000 1.0000 3.0000 0 + 1.0000i 1.0000

Matematika Array-Skalar>> m1=[1 2 3 4 5;6 7 8 9 10]

m1 =

1 2 3 4 5 6 7 8 9 10

>> m2=[11 12 13 14 15;16 17 18 19 20]

m2 =

11 12 13 14 15 16 17 18 19 20

34

>> m3=m1*3-4

m3 =

-1 2 5 8 11 14 17 20 23 26

Matematika Array-Array (1)

• Jika operasi array dilakukan pada dimensi yang tidak sama susah untuk didefenisikan.

• Jika dua vektor mempunyai dimensi yang sama, penambahan, pengurangan, perkalian, dan pembagian berlaku pada elemen ke elemen.

• Perkalian bisa menggunakan *, pembagian menggunakan garis miring kiri atau kanan, pemangkatan array dengan simbol ^

35

Matematika Array-Array (2)

Data ilustrasi : a=[a1 a2 …an], b=[b1 b2 ..bn], c=<a skalar> Data ilustrasi : a=[a1 a2 …an], b=[b1 b2 ..bn], c=<a skalar>

Penambahan skalar Penambahan skalar a+c=[a1+c a2+c … an+c] a+c=[a1+c a2+c … an+c]

Perkalian skalar Perkalian skalar a*c=[a1*c a2*c … an*c] a*c=[a1*c a2*c … an*c]

Penambahan array Penambahan array a+b=[a1+b1 a2+b2 … an+bn] a+b=[a1+b1 a2+b2 … an+bn]

Perkalian array Perkalian array a.*b=[a1*b1 a2*b2 … an*bn] a.*b=[a1*b1 a2*b2 … an*bn]

Pembagian kanan array Pembagian kanan array a./b=[a1/b1 a2/b2 … an/bn] a./b=[a1/b1 a2/b2 … an/bn]

Pembagian kiri array Pembagian kiri array a.\b=[a1\b1 a2\b2 … an\bn] a.\b=[a1\b1 a2\b2 … an\bn]

Pemangkatan array Pemangkatan array c.^a=[c^a1 c^a2 … c^an]c.^a=[c^a1 c^a2 … c^an]a.^c=[a1^c a2^c … an^c]a.^c=[a1^c a2^c … an^c]a.^b=[a1^b1 a2^b2 … an^bn] a.^b=[a1^b1 a2^b2 … an^bn]

36

Matematika Array-Array (3)>> m5=m1*m2??? Error using ==> *Inner matrix dimensions must agree.

>> m5=m1.*m2

m5 =

11 24 39 56 75 96 119 144 171 200

>> m5=m1./m2

m5 =

0.0909 0.1667 0.2308 0.2857 0.3333 0.3750 0.4118 0.4444 0.4737 0.5000

37

Array dengan Elemen Bilangan

Satu atau Bilangan Nol>> ones(5)

ans =

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

>> ones(2,5)

ans =

1 1 1 1 1

1 1 1 1 1

38

>> zeros(3,4)

ans =

0 0 0 0 0 0 0 0 0 0 0 0

Memanipulasi Array (1)

• MATLAB menyediakan cara mudah untuk menyisipkan, mengambil dan mengatur kembali sebagian dari matriks dengan mendefenisikan subscript yang berkaitan.

• Saat mengakses sesuatu menjadi matriks kosong [], sesuatu itu akan terhapus, mengakibatkan matriks berkurang menjadi apa yang tertinggal.

• Penggunaan indeks tungggal pada matriks lebih mudah. • Jika indeks tunggal digunakan, indeks dihitung setiap

kolom ke bawah dimulai dengan kolom pertama.• Selain menggunakan subcript untuk mengamati matriks,

dapat juga digunakan array logika, jika ukuran array logika sama dengan yang di amati.

• Array logika adalah suatu array khusus dengan presisi ganda dalam MATLAB

39

Memanipulasi Array (2)

A(r,c)A(r,c) mengamatai subarray dalam A dengan indeks baris yang diingini mengamatai subarray dalam A dengan indeks baris yang diingini dalam r dan kolom yang diingini dalam c dalam r dan kolom yang diingini dalam c

A(r,:) A(r,:) mengamati subarray dalam A dengan indeks baris yang diamati mengamati subarray dalam A dengan indeks baris yang diamati dalam r dan semua kolom diambil dalam r dan semua kolom diambil

A(:,r) A(:,r) mengamati subarray dalam A dengan semua baris diambil dan mengamati subarray dalam A dengan semua baris diambil dan indeks kolom yang diingini dalam r indeks kolom yang diingini dalam r

A(: ) A(: ) mengamati semua elemen dalam A sebagai vektor kolom diambil mengamati semua elemen dalam A sebagai vektor kolom diambil kolom perkolomkolom perkolom

A( i ) A( i ) mengamati subarray dalam A dengan indeks tunggal i dianggap A mengamati subarray dalam A dengan indeks tunggal i dianggap A

merupakan vektor kolom a(: )merupakan vektor kolom a(: ) A(x) A(x) mengamati subarray dalam A dengan array logika x; x harus mengamati subarray dalam A dengan array logika x; x harus

mempunyai ukuran sama dengan A mempunyai ukuran sama dengan A

40

Memanipulasi Array (3)

>> m6=ones(3)

m6 =

1 1 1 1 1 1 1 1 1

>> m6(2,3)=0

m6 =

1 1 1 1 1 0 1 1 1

41

>> m6(2,3)=7

m6 =

1 1 1 1 1 7 1 1 1

Pencarian Sub-Array (1)

• Seringkali perlu mengetahui indeks elemen sustu array yang memenuhi suatu ekspresi relasi.

• Dalam MATLAB masalah ini diselesaikan dengan fungsi find yang menghasilkan indeks elemen-elemen yang padanya nilai ekspresirelasi benar

• Jika suatu fungsi MATLAB menghasilkan dua atau lebih variabel, variabel-variabel itu akandisusun dalam tanda kurung kotak disisi kiri tanda sama dengan.

42

Pencarian Sub-Array (2)

>> k=find(abs(m3)>5)

k =

2 4 6 7 8 9 10

43

Pembandingan Array (1)

• Suatu saat didalam matrriks diperlukan perbandingan dua array.

• Fungsi isequal menghasilkan nilai logika Benar(1) jika dua array mempunyai dimensi sama dengan elemen- elemennya identik, jika tidak isequal akan menghasilkan nilai logika Salah(0).

• Fungsi ismember mengenali elemen-elemen identik dari dua array.

• Ismember menghasilkan nilai logoka benar untuk indeks-indeks yang ada dalam argumen kedua.Kedua argumen tidak harus mempunyai nilai yang sama.

44

Pembandingan Array (2)

isequal(A,B) isequal(A,B) benar (Benar) jika A dan B identikbenar (Benar) jika A dan B identik

ismember (A,B) ismember (A,B) benar (Benar ) jika suatu elemen benar (Benar ) jika suatu elemen A adalah juga elemen B A adalah juga elemen B

intersect (A,B)intersect (A,B) nilai-nilai interaksi A dengan Bnilai-nilai interaksi A dengan B

setdiff(A,B)setdiff(A,B) nilai-nilai A yang tidak terdapat nilai-nilai A yang tidak terdapat dalam Bdalam B

setxor (A,B) setxor (A,B) nilai-nilai ekslusif OR A dengan B nilai-nilai ekslusif OR A dengan B

union (A,B) union (A,B) nilai-nilai hasil penggabungan A nilai-nilai hasil penggabungan A dengan B dengan B 45

Pembandingan Array (3)

A=[1 2 3;4 5 6;7 8 9]B=A.*(-1)C=1:9isequal(A,C)isequal(A,B)isequal(A,A)isequal(C,C')ismember(A,B)ismember(A,C)

46

>> A = 1 2 3 4 5 6 7 8 9B = -1 -2 -3 -4 -5 -6 -7 -8 -9C = Columns 1 through 6 1 2 3 4 5 6 Columns 7 through 9 7 8 9ans = 0ans = 0ans = 1ans = 0ans = 0 0 0 0 0 0 0 0 0ans = 1 1 1 1 1 1 1 1 1

Ukuran Array (1)whoswhos Menampilkan variabel yang ada dala ruang Menampilkan variabel yang ada dala ruang

kerja MATLAB kerja MATLAB beserta ukurannya beserta ukurannya s=size(A) s=size(A) Menghasilkan vekror baris s, dengan elemen Menghasilkan vekror baris s, dengan elemen

pertama adalah jumlah baris, dan elemen kedua pertama adalah jumlah baris, dan elemen kedua adalah jumlah kolom A adalah jumlah kolom A

[r,c]=size(A) [r,c]=size(A) menghasilkan dua skalar r dan c yang memuat menghasilkan dua skalar r dan c yang memuat jumlah baris dan kolom A jumlah baris dan kolom A

r=size (A,1)r=size (A,1) menghasilkan jumlah baris A dalam variabel rmenghasilkan jumlah baris A dalam variabel r

c=size (A,2) c=size (A,2) menghasilkan jumlah kolom A dalam variabel cmenghasilkan jumlah kolom A dalam variabel c

n=length(A)n=length(A) menghasilkan max(sixe(A)) dalam variabel n jika menghasilkan max(sixe(A)) dalam variabel n jika A bukan matriks kosongA bukan matriks kosong 47

Ukuran Array (2)

>> a = size(A)

a =

3 3

48

Array Multidimensi (1)s=size(A) s=size(A) untuk A n dimensi, menghasilkan vektor baris untuk A n dimensi, menghasilkan vektor baris

n elemen dengan elemen ke I adalah ukuran n elemen dengan elemen ke I adalah ukuran dimensi ke I dari A dimensi ke I dari A

ndims ndims jumlah dimensi A yaitu length(size(A)) jumlah dimensi A yaitu length(size(A))

permute(A,order) permute(A,order) ekuivalen dari dot transpose untuk n dimensi ekuivalen dari dot transpose untuk n dimensi

ipermute(A,order) ipermute(A,order) balikan dari permute(A,order)balikan dari permute(A,order)

shiftdim(A,n) shiftdim(A,n) menaikkan imensi A sejumlah bilangan bulat nmenaikkan imensi A sejumlah bilangan bulat n

squeeze (A)squeeze (A) menghapus dimensi singleton, menghapus menghapus dimensi singleton, menghapus dimensi-dimensi yang lebih dari tigadimensi-dimensi yang lebih dari tiga 49

Array Multidimensi (2)

>> a1=[1 0;0 1]

a1 =

1 0 0 1

>> b1=[2 2;2 2]

b1 =

2 2 2 2

>> c=[16 1;1 16]

c =

16 1 1 16

>> d=cat(3,a1,b1,c)

d(:,:,1) =

1 0 0 1

d(:,:,2) =

2 2 2 2

d(:,:,3) =

16 1 1 16

>> size(d)

ans =

2 2 3 50

Contoh 1: Peluruhan Radioaktif Menggunakan Array

• Elemen radioaktif polonium mempunyai waktu paruh 140 hari, yang berarti bahwa, karena radioaktif meluruh, jumlah polonium yang tertinggal setelah 140 hari adalah setengah dari jumlah semula. Jika dimiliki 10 gram polonium hari ini, berapa banyak yang tersisa pada akhir setiap minggu selama 10 minggu?

• Menggunakan solusi pada Bab 2:

Jumlah_tertinggal=semula*0.5^(waktu/waktu_paruh)

51

MATLAB Contoh 1: radioaktif.m

52

% Peluruhan Radioaktifsemula=10; waktu_paruh=140; waktu=7:7:70 % akhir dari sepuluh minggu pertamaJumlah_tertinggal=semula*0.5.^(waktu/waktu_paruh) % titik tidak boleh lupaplot(waktu/7,Jumlah_tertinggal)xlabel('Jumlah Minggu'), ylabel('Jumlah Polonium Tersisa')

Contoh 2: Perhitungan Konsentrasi dengan Matematika Array• Sebagai bagian dari suatu proses pembuatan

suku cadang di suatu pabrik otomatis, suku cadang tersebut dicelupkan kedalam air agar dingin, kemudian dicelup di bak air asam untuk membersihkannya. Setelah beberapa lama maka konsentrasi larutan asam akan menurun karena penambahan air saat pencelupan dan larutan yang terbuang saat suku cadang tadi diambil dari bak. Untuk memelihara kualitas, keasaman larutan asam tidak boleh kurang dari suatu batas minimum. Dimulai dengan konsentrasi asam 90% maka jika konsentrasi minimum 50%, air yang ditambahkan ke dalam bak asam adalah 1% dari volume bak dan 1% dari larutan terbuang saat suku cadang dikeluarkan. Berapa banyak suku cadang dapat dicelupkan ke bak air asam sebelum keasaman larutan dalam bak ada di bawah batas minimum?

• Solusi sama dengan Bab 2

53

MATLAB Contoh 2: asam.m

54

% Penentuan Konsentrasi AsamKons_awal=90; Kons_min=50; lost=1:10 % 1% sampai 10% dengan kenaikan 1%n=floor(log(Kons_awal/Kons_min)./log(1+lost/100)) % ingat titiknyastem(lost,n)xlabel('persentase yang hilang setiap kali pencelupan')ylabel('jumlah pencelupan')title('Contoh Pencelupan Bak Air-Asam')

Contoh 3: Mencari Suatu Penyelesaian Menggunakan Vektor• “Soal minggu ini” di suatu sekolah

adalah menemukan semua bilangan lebih kecil dari 1000 yang habis dibagi 7, tetapi punya sisa pembagian 1 jika dibagi dengan 2, 3, 4, 5 dan 6

• Tidak terdapat penyelesaian analitis untuk masalah ini. Jadi semua bilangan tersebut harus ditemukan lewat pencarian. Jika Anda memulainya dengan semua kelipatan 7 yang kurang dari 1000, semua bilangan yang tidak memenuhi syarat berikutnya dapat dibuang, sehingga menghasilkan solusi yang diinginkan 55

MATLAB Contoh 3: lipat7.m

56

% Kelipatan 7 kurang dari 1000 habis dibagi 7,% sisa 1 jika dibagi 2, 3, 4, 5 dan 6

n=7:7:1000; % semua kelipatan 7 yang kurang dari 1000number=length(n) % jumlah penyelesaian yang mungkin

n(rem(n,2)~=1)=[]; % membuang yang bukan solusinumber=length(n)n(rem(n,3)~=1)=[]; % mengesetnya sama dengan matriks kosongnumber=length(n)n(rem(n,4)~=1)=[]; % fungsi rem menghitung sisa hasil baginumber=length(n)n(rem(n,5)~=1)=[];number=length(n)n(rem(n,6)~=1)=[];number=length(n)n

>> number = 142number = 71number = 24number = 12number = 2number = 2n =

301 721