Thursday, July 5, 2012

Laporan Praktikum Metode Numerik


BAB I
PENDAHULUAN
1.1  latar belakang
Matlab adalah singkatan dari Matrix Laboratory, software yang dibuat dengan menggunakan bahasa ini dibuat oleh The Mathworks.inc dan telah memilki berbagai versi, kekuatan matlab terletak pada :
1.  Kemudahan manipulasi struktur matriks.
2.  Jumlah routine-routine powerful yang berlimpah yang terus berkembang.
3.  Kekuatan fasilitas grafik tiga dimensi yang sangat memadai.
4.  Sistem scripting yang memberikan keleluasaan bagi pengguna mengembangkan dan memodifikasi software untuk kebutuhan sendiri.
5.  Kemampuan interface( misal dengan bahasa C, word dan mathematica).
6.  Dilengkapi dengan toolbox, simulink, stateflow dan sebagainya,
serta mulai melimpahnya source code di internet yang dibuat dalam matlab( contoh  toolbox misalnya : signal processing, control system, neural networks dan sebagainya). Semua itu merupakan perangkat yang powerful untuk menyelesaikan permasalahan sains dan teknik  terutama untuk wilayah dimana komputasi numerik harus dibuat.
Salah satu yang cukup menarik dari matlab ini adalah kemudahan dan kejelasannya dalam memahami contoh dan demo serta help yang ada pada matlab. Kita akan berkenalan lebih dekat dengan yang satu ini. Kita bisa lihat dari demo ini ternyata begitu banyak persoalan yang dapat dibangun dengan matlab dengan cara lebih mudah dan lebih singkat, tanpa mengurangi kepahaman kita pada suatu persoalan(bisa dibandingkan dengan bahasa C, pascal, delphi atau visual lainnya). Dengan dilengkapinya matlab  dengan toolbox, simulink dan sebagainya maka semakin menambah kekuatan matlab untuk menyelesaikan permasalahan yang rumit menjadi lebih mudah.




I. 2  TUJUAN PRATIKUM
  a. . Mahasiswa mampu mengoperasikan MATLAB dan memanfaatkannya sebagai perangkat Simulasi untuk praktikum Sinyal dan Sistem
bMahasiswa dapat menyelesaikan pemasalahan dalam metode numerit dengan mengunakan sistem MATLAB.
c.  Mempelajari penggunaan sistem  help untuk mengetahui  commands dan  syntax dasar MATLAB
d.    Dapat menggunakan MATLAB untuk desain filter

1.3  MANFAAT PRAKTIKUM
Adapun maksud dan tujuan dari pembuatan laporan ini adalah :
a.    Mampu melakukan perhitungan matematis dengan menggunakan matlab
b. Mampu membuat program dengan kondisi IF…END,  FOR …END,  WHILE…END dan SWITCH CASE
c. Mampu menggambarkan plot/grafik dari suatu fungsi atau persamaan menggunakan matlab 
d. Mampu menyelesaikan persamaan non linear seperti metode bisection, newton raphson  dan secant dengan matlab.

BAB II
LANDASAN TEORI II. DASAR TEORI
2.1     Metode Numerik
Persoalan yang melibatkan model matematika banyak muncul dalam berbagai disiplin ilmu pengetahuan, seperti dalam bidang fisika, kimia, ekonomi, atau pada persoalan rekayasa (engineering), seperti Teknik Sipil, Teknik Mesin, Elektro, Teknik Informatika dan sebagainya.  Seringkali model matematika tersebut muncul dalam bentuk yang tidak ideal alias rumit. Model matematika yang rumit ini adakalanya tidak dapat diselesaikan dengan metode analitik yang sudah umum untuk mendapatkan solusi sejatinya (exact solution). Yang dimaksud dengan metode analitik adalah metode penyelesaian model matematika dengan rumus-rumus aljabar yang sudah baku (lazim).
Bila metode analitik tidak dapat lagi diterapkan, maka solusi persoalan sebenarnya masih dapat dicari dengan  menggunakan metode numerik. Metode numerik adalah teknik yang digunakan untuk memformulasikan persoalan matematik sehingga dapat dipecahkan dengan operasi perhitungan/aritmetika biasa (tambah, kurang, kali, dan bagi). Metode artinya cara, sedangkan numerik artinya angka. Jadi metode numerik secara harafiah berarti cara berhitung dengan menggunakan angka-angka.
Perbedaan utama antara metode numerik dengan metode analitik terletak pada dua hal.  Pertama, solusi dengan menggunakan metode numerik selalu berbentuk angka. Bandingkan  dengan metode analitik yang biasanya menghasilkan solusi dalam bentuk fungsi  matematik yang selanjutnya fungsi mateamtik tersebut dapat dievaluasi untuk menghasilkan nilai dalam bentuk angka.
       Kedua, dengan metode numerik, kita hanya memperoleh solusi yang menghampiri atau mendekati solusi sejati sehingga solusi numerik dinamakan juga  solusi hampiran (approxomation) atau  solusi pendekatan, namun solusi hampiran dapat dibuat seteliti yang kita inginkan.  Solusi hampiran jelas tidak tepat sama dengan solusi sejati, sehingga ada selisih antara keduanya. Selisih inilah yang disebut dengan galat (error).

 
 2.2 Pengenalan Matlab 
MATLAB adalah sebuah bahasa dengan (high-performance) kinerja tinggi untuk komputasi masalah teknik.  Matlab mengintegrasikan komputasi, visualisasi, dan pemrograman dalam suatu model yang sangat mudah untuk pakai dimana masalah-masalah dan penyelesaiannya diekspresikan dalam notasi matematika yang familiar. Penggunaan Matlab meliputi bidang-bidang:
•  Matematika dan Komputasi 
•  Pembentukan Algorithm 
•  Akusisi Data 
•  Pemodelan, simulasi, dan pembuatan prototipe
•  Analisa data, explorasi, dan visualisasi 
•  Grafik Keilmuan dan bidang Rekayasa 
MATLAB merupakan suatu sistem interaktif yang memiliki elemen data dalam suatu array sehingga tidak lagi kita dipusingkan dengan masalah dimensi. Hal ini memungkinkan kita untuk memecahkan banyak masalah teknis yang terkait dengan komputasi, kususnya yang berhubungan dengan matrix dan formulasi vektor, yang mana masalah tersebut merupakan momok apabila kita harus menyelesaikannya dengan menggunakan bahasa level rendah seperti Pascall, C dan Basic. Nama MATLAB merupakan singkatan dari matrix laboratory. MATLAB pada awalnya ditulis untuk memudahkan akses perangkat lunak matrik yang telah dibentuk oleh LINPACK dan EISPACK. Saat ini perangkat MATLAB telah menggabung dengan LAPACK dan BLAS library, yang merupakan satu kesatuan dari  sebuah seni tersendiri dalam perangkat lunak untuk komputasi matrix.  Dalam lingkungan perguruan tinggi teknik, Matlab merupakan perangkat standar untuk memperkenalkan dan mengembangkan penyajian materi matematika, rekayasa dan kelimuan. Di industri, MATLAB merupakan perangkat pilihan untuk penelitian dengan produktifitas yang tingi,  pengembangan dan analisanya. Fitur-fitur MATLAB sudah banyak dikembangkan, dan lebih kita kenal dengan nama toolbox. Sangat penting bagi seorang pengguna Matlab, toolbox mana yang mandukung untuk learn dan  apply technologi yang sedang dipelajarinya. Toolbox toolbox ini merupakan kumpulan dari fungsi-fungsi MATLAB (M-files) yang telah dikembangkan ke suatu lingkungan kerja MATLAB untuk memecahkan masalah dalam kelas particular. Area-area  yang sudah bisa dipecahkan dengan toolbox saat ini meliputi pengolahan sinyal, system  kontrol, neural networks, fuzzy logic, wavelets, dan lain-lain.

 2.3  bagian dari Sistem MATLAB 
Sebagai sebuah system, MATLAB tersusun dari 5 bagian utama:
1. Development Environment.   Merupakan sekumpulan perangkat dan fasilitas yang  membantuanda untuk menggunakan fungsi-fungsi dan file-file MATLAB. Beberapa  perangkat ini merupakan sebuah graphical user interfaces (GUI). Termasuk didalamnya adalah MATLAB desktop dan Command Window, command history, sebuah editor dan debugger, dan browsers untuk melihat help, workspace, files, dan search path.
2. MATLAB Mathematical Function Library. Merupakan sekumpulan algoritma  komputasi mulai dari fungsi-fungsi  dasar sepertri: sum, sin, cos, dan complex arithmetic, sampai dengan fungsi-fungsi yang lebih kompek seperti  matrix inverse, matrix eigenvalues, Bessel functions, dan fast Fourier transforms. 
3. MATLAB Language.   Merupakan suatu high-level matrix/array language dengan control flow statements, functions, data structures, input/output, dan fitur-fitur object-oriented programming. Ini memungkinkan bagi kita untuk melakukan kedua hal baik  "pemrograman dalam lingkup sederhana " untuk mendapatkan hasil yang cepat, dan "pemrograman dalam lingkup yang lebih besar" untuk memperoleh hasil-hasil dan aplikasi yang komplek. 
4. Graphics.   MATLAB memiliki fasilitas untuk menampilkan vector dan matrices sebagai  suatu grafik. Didalamnya melibatkan high-level functions (fungsi-fungsi level tinggi) untuk  visualisasi data dua dikensi dan data tiga  dimensi, image processing, animation, dan presentation graphics. Ini juga melibatkan fungsi level rendah yang memungkinkan bagi anda untuk membiasakan diri untuk memunculkan grafik mulai dari benutk yang sederhana sampai dengan tingkatan graphical user interfaces pada aplikasi MATLAB anda.
5. MATLAB Application Program Interface (API).   Merupakan suatu library yang  memungkinkan program yang telah anda tulis dalam bahasa C dan Fortran mampu berinterakasi dengan MATLAB. Ini melibatkan fasilitas untuk pemanggilan routines dari MATLAB (dynamic linking), pemanggilan MATLAB sebagai sebuah computational engine, dan untuk membaca dan menuliskan MAT-files.

2. 5  VARIABEL DAN OPERTOR
2.4.1 Variabel
Seperti bahasa pemrograman lainnya, matlab pun memiliki variabel, tetapi dalam penulisannya, variabel di dalam matlab tidak perlu dideklarasikan, karena matlab mampu mengenali tipe data dari variable dari  isi variabel tersebut.  Aturan penulisan variabel pada matlab sama  dengan aturan pada bahasa pemrograman lainnya, yaitu bersifa case sensitive, diawali dengan huruf dan selanjutanya boleh menggunakan gabungan huruf-angka atau tanda garis bawah. Matlab mampu mengenali sampai 31 karakter pertama, selanjutnya diabaikan.
Contoh: 


>> var1=7.1
var1 =
      7.1
>> var_2=[4 6 7]
Var_2 =
       4  6  7

        Semua tipe data di matlab memiliki bentuk yang sama, yaitu array. Array minimal berukuran 0x0 dan dapat bertambah menjadi array n x m dimensi dengan sebarang ukuran. Matlab mempunyai beberapa tipe data dasar (atau class), yaitu: logical, char, numeric, cell, structure, java classes, function handles.

2.5.2 Operator
Di dalam matlab, operator diklasifikasikan menjadi tiga bagian, yaitu: 
a)      Operator Arimatika
  Operator aritmatika digunakan untuk mengerjakan komputasi numeric. 
 

opertor
Arti
+
Penjumlaha
-
Pengurangan
*
Perkalian (aturan matrik)
.*
Perkalian masing-masing ellemen yang bersesauian (aturan array)
/
Pembagian kanan (matrik)
./
Pembagian kana (array)
\
Pembagian kiri (matrik)
.\
Pembagian kiri (array)         
^
Perpangkatan (matrik)
.^
Perpangkatan (array)
:
Langkah




b).  Operator Relasional
 
Operator relasional digunakan untuk membandingkan operand-operand secara kuantitatif .
Operator
Arti
==
Sama dengan
~=
Tidak sama dengan
Kurang dari
Lebih dari
<=
Kurang dari sama dengan
>=
Lebih dari sama dengan

c)  Operator Logika
Operator
arti
%
Akan menghasilkan nilai 1 jika kedua elemen yang bersesuaian memilki nilai true dan 0 untuk lain nya
|
Akan bernilai 1 jika salh satu elemen nya true
~
Komplen dari elemen yang di inputkan
xor
Akan bernilai 1 jika salah satu dari kedua elemen memilki nilai berbeda dan bernilai nol jika sama

Input Data
Terdapat dua cara untuk memasukkan data yaitu:
a.       inisialisasi data, dimana data diberikan secara langsung pada saat pembuatan program
Bentuk umum:
variabel = ekspresi
b.      menggunakan perintah input, dimana data diberikan pada saat program di-running.
Bentuk umum:
variabel = input(‘text’)  numerik dan string
atau variabel = input(‘text’, ‘s’)  string
pada layar akan tampil apa yang tertulis di antara tanda petik (text), menanti masukan data yang diikuti dengan menekan enter melalui keyboard

BAB III
ANALISA DAN HASIL PERCOBAAN

3.1     Operasi-operasi Dasar Pada MATLAB
                                MATLAB dapat melakukan operasi-operasi aritmatika dasar sebagai  berikut :
Operasi
Simbol
Penambahan, a + b
+
Pengurangan a-b
-
Perkalian a x b
*
Pembagian a : b
/ atau \
Pemangkatan ab
^
      
Urutan operasi tersebut yang dikerjakan dalam suatu ekspresi yang mengikuti aturan prioritas yang biasa (hirarki). Aturan tersebut dapat diringkas sebagai berikut :
Ekspresi dikejakan dari kiri ke kanan dengan pemangkatan mempunyai prioritas tertinggi, diikuti dengan perkalian atau pembagian yang mempunyai prioritas yang sama, diikuti dengan penambahan dan pengurangan yang juga memiliki prioritas yang sama. Tanda kurung dapat digunakan untuk merubah urutan pengerjaan yang biasa dimana bagian yang dikerjakan terlebih dahulu adalah bagian yang yang ada di bagian kurung paling dalam kemudian keluar.Seperti contoh berikut :
                >> x = (5*5+7*7+2*2+5*4)/(5+7+2+5)
ans =5.1579
3.2     Tipe Data
Software MATLAB mengenal 3 tipe data yaitu : string, scalar, dan matriks. Array merupakan matriks yang hanya memiliki satu baris. MATLAB juga memiliki banyak fungsi built-in untuk bejkerja memanipulasi tipe data tersebut. Berikut ini beberapa contoh yang menjelaskan ketiga tipe data tersebut di atas.

3.2.1          String
String dalam MATLAB adalah type data yang terdiri atas huruf-huruf dan atau nilai-nilai ASCII yang ditampilkan representasinya. String adalah teks yang diawali dan diakhiri dengan apostrof ‘   ‘.
Contoh :

>> p='haii how are you??'

p =

haii how are you??

>> size (p)

ans =

     1    18

>> whos
  Name      Size                    Bytes  Class


 


ans       1x2                        16  double array
  p         1x18                       36  char array

Grand total is 20 elements using 52 bytes

Setiap karakter dalam suatu string adalah satu elemen dalam array, dengan setiap elemennya sebesar 2 byte.
   Untuk melihat representasi ASCII karakter string dapat dilakukan dengan melakukan operasi aritmetik terhadap string atau mengkonversikannya menggunakan fungsi double.
Contoh :
double(p)
ans =
Columns 1 through 16
  104    97   105   105    32   104   111   119    32    97   114   101    32   121   111   117
Columns 17 through 18
    63    63

>> abs(p)
ans =
    Columns 1 through 16
104    97   105   105    32   104   111   119    32    97   114  101   32   121   111   117
Columns 17 through 18
63    63
selain fungsi-fungsi di atas fungsi-fungsi string lainnya adalah :

1.     Fungsi disp
       Fungsi disp memungkinkan untuk menampilkan string tanpa menampilkan nama variabelnya.
Contoh :
   teks bantuan dalam suatu file script

>>disp('Ini contoh tampilan dari text')
   Ini contoh tampilan dari text

       Syarat digunakannya disp , isi didalamnya harus merupakan strings, jadi jika ingin menampilkan sebuah angka terlebih dahulu dirubah kedalam bentuk strings dengan menggunakan function num2str( ).
Sebagai contoh :
>> nim=090170021;
>> disp(['Nim saya adalah ',num2str(nim)])
Nim saya adalah 90170021

2.     Fungsi input
       Contoh:
   » nama=input('Masukkan nama anda !','s')
         Masukkan nama anda !
   » disp('Nama yang anda masukkan=');
         Nama yang anda masukkan=
   » disp(nama);

3.     fungsi fprintf
Command ini berfungsi untuk menampilkan output di layar atau menyimpan output di suatu external file ( sama halnya dengan command fprint di C/C++). Fungsi ini mempunyai argumen sbb:
   fprintf( ' nama file ' ,' format string ' , list)
dimana list adalah nama variabel yang dipisahkan dengan koma. Untuk format string :
       %P.Qe untuk eksponensial
       %P.Qf untuk fixed point
       /n untuk membuat baris baru
dan lebih detailnya dapat dilihat di help untuk fprintf. Dibawah ini diberikan contoh penggunaannya.
Contoh 1.
>> z='cuma mencoba..';
>> y='semoga sukses';
>> fprintf('%s\n',z,y);
cuma mencoba..
semoga sukses
Contoh 2.
x=1007.46 ; y=2.1278;k=17;
fprintf('x= %8.2f y=%8.2f k=%2.0f',x,y,k)
x= 1007.46 y= 2.13 k=17
Catatan : Teks atau string di Matlab dapat di tampilkan dengan cara menggunakan ( ') di awal dan( ') diakhir contoh: ' ini cara menulis string '.
perintah ini mirip dengan disp, namun lebih memiliki fleksibilitas dalam format output yang diinginkan.



3.2.1          Scalar
Scalar adalah nama lain dari data numeric, Dalam MATLAB data scalar dapat dimanipulasikan dengan menggunakan beberapa fungsi, seperti type string sebelumnya. Berikut ini beberapa contohnya:
» x=0:0.1:1;
» y=[x;tan(x)];
» fid=fopen('c:\backup\tan.txt','w');
» fprintf(fid,'&6.2f %12.8f\n',y);
» fclose(fid);
akan menyimpan tabel berisikan x dan tan(x) di file tan.txt (nama ini sebarang, sesuai dengan keinginan anda) yang disimpan di direktori c:\backup berisikan data berikut :
0.00   0.00000000
0.10   0.10033467
0.20   0.20271004
0.30   0.30933625
0.40   0.42279322
0.50   0.54630249
0.60   0.68413681
0.70   0.84228838
0.80   1.02963856
0.90   1.26015822
1.00   1.55740772

3.2.2          Array
MATLAB menangani array secara intuitif. Untuk membuat array dalam MATLAB, yang perlu dilakukan hanyalah mengetikkan kurung kotak kiri, memasukkan elemen-elemen denagn dipisahkan oleh spasi atau koma, kemudian menutup array dengan kurung kotak kanan. 
Berikut ini akan diberikan beberapa contoh assignment untuk array :

a.     Pengalamatan array
Dalam MATLAB elemen-elemen array diakses menggunkan subcript; misalnya x(1) adalah elemen pertama x, x(2) adalah elemen kedua x, dan seterusnya.
Contoh :
» >> x=[3 4 1 6 4 8 10 4]
x =     3     4     1     6     4     8    10     4
>> x(5)  %elemen keempat x
ans =
     4
>> x([1 3 5])=[0.2 0.5 0.7]

x =
0.2000    4.0000    0.5000    6.0000    0.7000    8.0000   10.0000    4.0000
maka x(1)=0.1, x(3)=0.5, x(5)=0.7 dan x(i) untuk i=2,3,4 bernilai 0.
nilai array dapat juga diisikan sebagai berikut :
x= 3:1:4
x = 3     4
artinya bahwa nilai array yang diisikan dengan angka dari 4 sampai 9 dengan penambahan 1 (default). Penambahan dapat bernilai sebarang, bahkan dapat juga negatif, seperti contoh berikut :
>> z=9:-3:1
z = 9     6     3
Memisahkan elemen dengan titik koma membuat elemen berada dalam baris yang berbeda, seperti contoh berikut :

>> y=[3,6,7,8,4,3]
y =
 3     6     7     8     4     3
b.    Menambahkan elemen array

>> x=[x 2 4] % array sebelumnya
x =
 3     4     2     4
>> x=[x 2 4] %menambahkan 2 elemen dibelakang
x =
3     4     2     4     2   4

c.   Mengakses sebagian elemen array
Dari contoh sebelumnya misalkan hanya diakses elemen ke 2 sampai ke empat
>> y=x(2:4)
y =
 4     2     4

d. Menghapus elemen array
Dapat dilihat contoh berikut :
Menghapus elemen terakhir dari array
» n=[1 3 5 7 9]
n =
     1     3     5     7     9
» n=n(1:length(n)-1)
n =
     1     3     5     7
Menghapus elemen pada index tertentu
Misalkan z =[1 2 3 4 5 ] dan ingin dihapus z pada index ke 2 dan 4 maka:
» z=[1 2 3 4 5]
z =
     1     2     3     4     5
» z([2 4])=[]
z =
     1     3     5




3.2.3          Matrik
Matriks merupakan bentuk utama dari MATLAB, seperti halnya array matriks juga didefenisikan elemen demi elemen. Sebagai contoh jika diketahui matriks berikut ini :
A=
Maka matriks di atas dapat diinputkan ke MATLAB dengan beberapa cara yaitu:
a.     Mengentri satu persatu data matriks A
» A(1,1)=3;A(1,2)=5;A(2,1)=4;A(2,2)=1
A =
     3     5
     4     1
b.    Menggunakan operator titik koma
» A=[3 5;4 1]
A =
     3     5
     4     1
untuk mengetahui ukuran matriks di atas dapat dilakukan dengan menggunakan command size berikut :
» [baris kolom]=size(A)
baris =
     2
kolom =
     2
atau jika hanya ingin mengetahui jumlah baris atau kolom saja maka  digunakan perintah berikut :
» baris=size(A,1)
» kolom=size(A,2)
Sebagai latihan dapat dicoba contoh berikut ini:
>> A = [1 2 3;4 5 6;7 8 9]; 
>> B = [1 1 1;2 2 2;3 3 3];
>> C = [1 2;3 4;5 6];
>> whos
  Name      Size         Bytes  Class
 
  A         3x3             72  double array
  B         3x3             72  double array
  C         3x2             48  double array
Grand total is 24 elements using 192 bytes
>> A+B
ans =
     2     3     4
     6     7     8
    10    11    12
>> A+C
??? Error using ==> +
Matrix dimensions must agree.
Matrix multiplication is also defined:
>> A*C
ans =
    22    28
    49    64
    76   100
>> C*A
??? Error using ==> *
Inner matrix dimensions must agree.
If A is a square matrix and m is a positive integer, then A^m is the product of m factors of A.
However, no notion of multiplication is defined for multi-dimensional arrays with more than 2 dimensions:
>> C = cat(3,[1 2;3 4],[5 6;7 8])
C(:,:,1) =
     1     2
     3     4
C(:,:,2) =
     5     6
     7     8
>> D = [1;2]
D =
     1
     2
>> whos
  Name      Size         Bytes  Class
  C         2x2x2           64  double array
  D         2x1             16  double array
Grand total is 10 elements using 80 bytes
 
>> C*D
??? Error using ==> *
No functional support for matrix inputs.
By the same token, the exponentiation operator ^ is only defined for square 2-dimensional arrays (matrices).
Dan operasi-operasi lainnya seperti :
1. >>x=A/f
2. >>A=A’
3.    >>2*A
4.    >>inv(B)

3.1     Membuat file matlab (M-FILE)
M-file merupakan sederetan perintah matlab yang dituliskan secara berurutan sebagai sebuah file. Nama file yang tersimpan akan memiliki ekstensi .m yang menandakan bahwa file yang dibuat adalah file matlab. M-file dapat ditulis sebagai sebuah script atau dapat pula ditulis sebagai sebuah fungsi yang menerima argument atau masukan yang menghasilkan output.
                Untuk menuliskan skrip M-file, Anda bisa mulai dengan membuka file baru.  Caranya ialah melalui menu di  main window: File>Open atau File>New>M-file; atau dengan mengklik ikon yang ada di jendela utama.
seperti pada contoh di atas, file matlab (m-file) sudah berisi listing program untuk  menghitung rata-rata. Di dalam M-file, setiap  command diakhiri dengan titik-koma supaya hasil perhitungan di tiap baris tidak ditampilkan di command window.  Kecuali pada hasil perhitungan yang ingin
kita tampilkan, tidak diakhiri titik-koma. Variabel yang didefinisikan di dalam M-file akan disimpan oleh MATLAB ketika M-file telah dieksekusi.
Di dalam editor, skrip yang kita tuliskan akan memiliki warna tertentu:
•  hijau untuk komentar
•  hitam untuk variabel dan command
•  biru untuk statement pemrograman.
3.1     Grafik
Salah satu keunggulan MATLAB ialah kemampuannya dalam menampilkan/mengolah grafik dengan  command yang sederhana dan fleksibel.  Pada bagian ini saya akan mengulas sedikit mengenai visualisasi data (plot grafik 2-dimensi dan 3-dimensi).

3.4.1          Plot 2-Dimensi
Contoh Fungsi plot digunakan untuk menggambar grafik 2D dengan skala linear pada kedua sumbunya :
>> x=-10:15;
>> y=x*4;
>> plot(x,y)


3.4.1          Plot 3-Dimensi
Untuk menampilkan grafik 3 dimensi digunakan fungsi plot3. Plot3 memerlukan 3 argumen dengan bentuk plot3(x,y,z), dimana x, y, z merupakan 3 bagian vector yang sama panjang.
t=0:pi/125:12*pi;
 plot3(sin(3*t),cos(3*t),t)


3.4.3          Bar
Fungsi bar digunakan untuk menampilkan data yang berbentuk vector maupun matriks. grafIk  bar digunakan untuk menampilkan sekumpulan data selama kurun waktu terentu dan cocok untuk menampilkan data dalam bentuk diskrit.
Contoh:
>> t=[20 10 17 50; 27 32 10 13; 80, 31, 34, 24; 50 87 35 52];
>> bar(t)
>> grid on
 
Matlab juga menyediakan dalam bentuk 3 dimensi, yaitu bar3. Missal grafik diatas disajikan dalambar3, maka kita ketik perintah berikut:
>>bar3(t)



3.4.3          Pie
Fungsi pie digunakan untuk menampilkan data secara prosentase, dimana setiap lemen data akan dibandingkan dengan penjumlahan seluruh data yang ada. Grafik pie dapat disajikan dalam bentuk 2 dimensi maupun 3 dimensi.
Contoh:
 >> x=[10 30 21 52];
>> pie(x, {'A', 'B', 'C', 'D'}) %pie 2 dimensi
>> pie3(x, {'A', 'B', 'C', 'D'}) %pie 3 dimensi




3.4.3          Stem
Fungsi stem cocok digunakan untuk menampilkan data dalam bentuk diskrit.
Contoh:
>> x=1:10;
>> y=rand(1,10);
>> stem(x,y)



3.1     Persamaan Non Linear
Menyelesaikan persamaan atau mencari akar persamaan f(x)=0 berarti mencari nilai-nilai x sehingga menyebabkan pernyataan f(x)=0 menjadi benar. Dengan kata lain, akar persamaan f(x)=0 adalah absis perpotongan grafik fungsi f(x) dengan sumbu x. Untuk menyelesaikan persamaan ini, ada dua metode, yaitu metode tertutup dan metode terbuka. Dengan metode tertutup, kita memberikan dua nilai misal a dan buntuk inisialisasi proses. Dua nilai ini harus mengapit akar yang sebenarnya. Untuk melihat apakah di antara range (a, b) ada akar atau tidak, kita bisa memanfaatkan teorema berikut: Jika nilai fungsi di a dan b berlawanan, maka ada akar di antara a dan b, namun hal ini tidak berlaku sebaliknya. Sedangkan dengan metode terbuka, kita memberikan satu tebakan awal untuk inisialisasi proses, tebakan awal ini diusahakan sedekat mungkin dengan akar sebenarnya.
Ada 2 kelompok metode dalam penyelesaian persamaan metode numerik, yaitu :
1.    Metode Tertutup
Ciri-ciri dalam metode tertutup :
§  Mencari akar pada range [a,b] tertentu
§  Dalam range [a,b] dipastikan terdapat satu akar
§  Hasil selalu konvergen maka sering disebut juga metode konvergen
Yang termasuk dalam metode tertutup, yaitu :
·      Metode Tabel
·      Metode Biseksi
·      Metode Regulasi Falsi

2.    Metode Terbuka
Ciri-ciri dalam metode terbuka :
§  Diperlukan tebakan awal
§  xn dipakai untuk menghitung xn+1
§  Hasil dapat konvergen atau divergen
Yang termasuk dalam metode terbuka, yaitu :
·      Metode Iterasi Sederhana
·      Metode Newton-Raphson
·      Metode Secant

3.6.1          Metode Bisection
Ide awal metode ini adalah metode table, dimana area dibagi menjadi N bagian. Hanya saja metode biseksi ini membagi range menjadi 2 bagian, dari dua bagian ini dipilih bagian mana yang mengandung akar dan bagian yang tidak mengandung akar dibuang.
Algoritma Metode Biseksi
1.               Definisikan fungsi f(x) yang akan dicari akarnya
2.               Tentukan nilai a dan b
3.               Tentukan toleransi e (error) dan iterasi maksimum N
4.               Hitung f(a) dan f(b)
5.               Jika f(a).f(b)>0 maka proses dihentikan karna tidak ada akar, bila tidak
dilajutkan
6.               Hitung x=a+b/2
7.               Hitung f(x)
8.               Jika f(x).f(a)<0 maka b=x dan f(b)=f(x)
Jika tidak a=x dan f(a)=f(x)
9.              Jika |b-a|<e atau iterasi > iterasi maksimum maka proses dihentikan dan didapatkan akar = x, dan bila tidak ulangi langkah 6.
Implementasi metode Bisection dengan matlab adalah sebagai berikut :
%contoh program mencari akar persamaan dengan metode bisection
%dari fungsi f = log (2-exp(x)-x+alpa

function bisection;
disp('METODE BISECTION')
disp('================')
a = input ('masukkan batas kiri interval :');
b = input ('masukkan batas kanan interval :');
esp = input ('masukkan epsilon / batas ketelitian : ');
itemax = input (' masukkan jumlah iterasi maksimum : ');
alfa = a;
disp('     ');
disp('memulai proses interasi');
disp('=======================');
tic
for i = 1:1:itemax
    t =(a+b)/2;
    if (fn(a,alfa)*fn(t,alfa)<=0)
        b = t;
    else
        a = t;
    end
    disp (['interasi ke',num2str(i),',',' akarnya :',num2str(t)])
    if (abs(a-b))<=eps;
        break
    end
end
waktu =toc;
disp('     ');
disp(['akarnya adalah            :',num2str(t)]);
disp(['jumlah interasi           :',num2str(i)]);
disp(['selang waktu konvergensi  :',num2str(waktu)]);

function f = fn(x,alfa)
f = log (2-exp(-x))-x +alfa;


maka setelah di running dan kita masukkan nilainya maka akan nampak seperti dibawah ini
>> bisection
METODE BISECTION
================
masukkan batas kiri interval :4
masukkan batas kanan interval :5
masukkan epsilon / batas ketelitian : 4
 masukkan jumlah iterasi maksimum : 5
    
memulai proses interasi
=======================
interasi ke1, akarnya :4.5
interasi ke2, akarnya :4.75
interasi ke3, akarnya :4.625
interasi ke4, akarnya :4.6875
interasi ke5, akarnya :4.7188
    
akarnya adalah            :4.7188
jumlah interasi           :5
selang waktu konvergensi  :0.76786

3.6.2          Metode Newton Rapshon

Metode pendekatan yang menggunakan satu titik awal dan mendekatinya dengan memperhatikan slope atau gradien pada titik tersebut.Titik pendekatan ke n+1 dituliskan dengan : Xn+1=xn-F(Xn)/F1(Xn)
Algoritma Metode Newton-Rapshon
1.     Definisikan fungsi f(x) dan f 1(x)
2.     Tentukan toleransi error (e) dan iterasi maksimum (n)
3.     Tentukan nilai pendekatan awal x0
4.     Hitung f(x0) dan f (x0)
5.     Untuk iterasi I = 1 s/d n atau |f(xi)|> e
Hitung f(xi) dan f 1(xi)
Hitung n+1=xn-F(Xn)/F1(Xn)

6.    Akar persamaan adalah nilai xi yang terakhir diperoleh.
Implementasi metode Bisection dengan matlab adalah sebagai berikut :
function newtonrapson;
clc
clear;
disp('programm metode newton rapson');
disp('=============================');
E= 0.0001;
x0 = input ('masukkan x awal :');
i = 0;
m = 9;
xb = 0;
disp('__________________________________________');
disp(' i        xi         f(xi)        epsilon ') ;
disp('__________________________________________');
while(E<m);
    fx = exp(x0)-4*x0;
        gx=exp(x0)- 4;
        xb=x0-(fx/gx);
        m=abs(x0-xb);
        x0=xb;
        i=i+1;
        fprintf('%3.0f %12.6f %12.6f %12.6f\n', 1, xb, fx, m);
end
  disp('-------------------------------------------');
  fprintf('Akarnya adalah = %10.8f\n, xb');
end

maka setelah di running akan nampak seperti dibawah ini
programm metode newton rapson
=============================
masukkan x awal :4
__________________________________________
 i        xi         f(xi)        epsilon
__________________________________________
  1     3.237163    38.598150     0.762837
  1     2.654128    12.512729     0.583035
  1     2.302006     3.596077     0.352122
  1     2.170848     0.786188     0.131158
  1     2.153574     0.082324     0.017274
  1     2.153292     0.001300     0.000282
  1     2.153292     0.000000     0.000000
-------------------------------------------
Akarnya adalah = >> 3

ans =

     3

3.6.3          Metode Secant
Tidak semua fungsi mudah dicari turunannya terutama fungsi yang bentuknya rumit.  Apalagi masalah yang di dapat dalam metode Newton Raphson adalah terkadang sulit mendapatkan turunan pertama, yakni f (x). Turunan fungsi dapat dihilangkan dengan cara menggantinya dengan bentuk lain yang equivalen dengan cara memodifikasi metode Newton Raphson yang dinamakan metode Secant dengan jalan pendekatan :

 

Algoritma Metode Secant
1.     Definisikan fungsi F(x)
2.     Definisikan torelansi error (e) dan iterasi maksimum (n)
3.     Masukkan dua nilai pendekatan awal yang di antaranya terdapat akar yaitu x0 dan x1, sebaiknya gunakan metode tabel atau grafis untuk menjamin titik pendakatannya adalah titik pendekatan yang konvergensinya pada akar persamaan yang diharapkan.
4.     Hitung F(x0) dan F(x1) sebagai y0 dan y1
5.     Untuk iterasi I = 1 s/d n atau |F(xi)|
       hitung yi+1 = F(xi+1)
6.    Akar persamaan adalah nilai x yang terakhir.

Implementasi metode Bisection dengan matlab adalah sebagai berikut :

Metode second
function secant;
clc;
clear;
disp('Program Metode Secant');
disp('=============================');
E=0.0001;
x0=input('Masukkan X0  :');
xb=input('Masukkan X1  :');
i=0;
M=9;
disp('_______________________________________________');
disp(' i           xi          f(xi)     epsilon');
disp('_________________________________________________');
while (E<M)
    fx=exp(x0)-5*x0^2;
    fxb=exp(xb)-5*xb^2;
    d = xb - (fxb*(xb-x0)/(fxb-fx));
    M=abs(x0-xb);
    x0 = xb;
    xb = d;
    i=i+1;
     fprintf('%3.0f %12.6f %12.6f %12.6f\n',i,xb,fx,M);
end;
disp('_______________________________________________');
fprintf('Akarnya Adalah = %10.8f\n',xb);
end

tampilan hasil running dan stelah di masukkan nilai.
Program Metode Secant
=============================
Masukkan X0  :3
Masukkan X1  :2
_______________________________________________
 i           xi          f(xi)     epsilon
_________________________________________________
  1     0.975013   -24.914463     1.000000
  2     0.769989   -12.610944     1.024987
  3     0.642827    -2.102052     0.205024
  4     0.610205    -0.804674     0.127162
  5     0.605439    -0.164283     0.032622
  6     0.605268    -0.020944     0.004766
  7     0.605267    -0.000725     0.000171
  8     0.605267    -0.000003     0.000001
_______________________________________________
Akarnya Adalah = 0.60526712




BAB IV
PENUTUP
4.1   Kesimpulan
Dari pembahasan diatas dapat disimpulkan  bahwa :

v  Program matlab sangat memudahkan kita dalam menghitung perhitungan numeric dan matematika lainnya dari yang sederhana hingga rumit.

v  Dengan matlab dapat dengan mudah menggambarkan kurva dari suatu persamaan atau pun fungsi-fungsi lainnya.

v  Penyelesaian persamaan non linear dapat dengan mudah diselesaikan dengan matlab.


 

4 comments: