Laporan Prak m. Numerik
description
Transcript of Laporan Prak m. Numerik
2
BAB I
PENDAHULUAN
1.1. Latar Belakang
Dalam permasalahan non-linier, terutama permasalahan yang mempunyai
hubungan fungsi eksponensial dalam pembentukan polanya dapat dianalisis secara
eksperimental maupun teoritis. Salah satu bagian dari analisa teoritis adalah dengan
melakukan komputasi dengan metode numerik. Metode numerik dalam komputasi akan
sangat membatu dalam menyelesaikan permasalahan-permasalahan yang rumit
diselesaikan secara aritmatika. Metode numerik akan sangat membantu setiap
penyelesaian permasalahan apabila secara matematis dapat dibentuk suatu pola
hubungan antar variabel/parameter. Hal ini akan menjadi lebih baik jika pola hubungan
yang terbentuk dapat dijabarkan dalam bentuk fungsi. Ada sejumlah metode numerik
yang dapat digunakan untuk menyelesaikan persamaan non-linear.
Metode numerik digunakan untuk menyelesaikan persoalan dimana perhitungan
secara analitik tidak dapat digunakan. Metode numerik ini berangkat dari pemikiran
bahwa permasalahan dapat diselesaikan dengan menggunakan pendekatan-pendekatan
yang dapat dipertanggung-jawabkan secara analitik. Metode numerik ini disajikan
dalam bentuk algoritma-algoritma yang dapat dihitung secara cepat dan mudah.
Pendekatan yang digunakan dalam metode numerik merupakan pendekatan analisis
matematis. Sehingga dasar pemikirannya tidak keluar jauh dari dasar pemikiran analitis,
hanya saja pemakaian grafis dan teknik perhitungan yang mudah merupakan
pertimbangan dalam pemakaian metode numerik.
Sedangkan Matlab adalah sebuah bahasa high-performance untuk komputasi
teknis. MATLAB merupakan singkatan dari MATrix LABoratory. MATLAB
mengintegrasikan perhitungan, visualisasi dan pemrograman dalam suatu lingkungan
yang mudah digunakan dimana, permasalahan dan solusi dinyatakan dalam notasi
secara matematis yang dikenal umum. Pertama MATLAB dapat digunakan sebagai
kalkulator ilmiah. Berikutnya MATLAB memungkinkan Anda untuk memvisualisasi
data dalam berbagai cara, melakukan aljabar matriks, bekerja dengan polinomial dan
fungsi integrasi. Seperti dalam sebuah kalkulator yang dapat diprogram, Anda dapat
2
menciptakan, mengeksekusi, dan menyimpan urutan perintah sehingga memungkinkan
komputasi dilakukan secara otomatis. MATLAB dapat diperlakukan sebagai sebuah
bahasa pemrograman yang akrab pengguna, yang memungkinkan untuk menangani
kalkulasi matematis dalam suatu cara yang mudah.
1.2. Tujuan Praktikum
Pembuatan laporan ini walau awalnya sebagai tugas mata kuliah Praktik Metode
Numerik sebenarnya juga sangat membantu penulis dan untuk memahami metode
Bisection, Newton Raphson, dan Secant
.
1.3. Manfaat Praktikum
Manfaat dari laporan Praktikum antara lain :
1. Membantu pengguna yang ingin menyelesaikan sistem persamaan linier.
2. Membantu mempelajari langkah-langkah yang dilakukan untuk menyelesaikan
sistem persamaan linier.
3. Melatih mahasiswa untuk menggunakan program matlab dan mengetahui
fungsi-fungsinya.
4. Memberikan pelatihan kepada mahasiswa agar dapat menerapkan materi-materi
pada mata kuliah Metode Numerik ke dalam applikasi matlab.
2
BAB II
LANDASAN TEORI
2.1. Pengenalan Matlab
MATLAB adalah sebuah lingkungan komputasi numerikal dan bahasa
pemrograman komputer generasi keempat. Dikembangkan oleh The MathWorks,
MATLAB memungkinkan manipulasi matriks, pem-plot-an fungsi dan data,
implementasi algoritma, pembuatan antarmuka pengguna, dan peng-antarmuka-an
dengan program dalam bahasa lainnya. Meskipun hanya bernuansa numerik, sebuah
kotak kakas (toolbox) yang menggunakan mesin simbolik MuPAD, memungkinkan
akses terhadap kemampuan aljabar komputer. Sebuah paket tambahan, Simulink,
menambahkan simulasi grafis multiranah dan Desain Berdasar-Model untuk sistem
terlekat dan dinamik.
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
2
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 (Mfiles) 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.2. Matriks
Matlab menggunakan matiks sebagai dasar komputasinya, maka pengetahuan
tentang matriks sangatlah diperlukan bagi pengguna matlab.
Matiks khusus
Matriks yang telah didefinisikan oleh matlab.
a. Matriks nol
Matriks yang elemeng bilangannya nol
Bentuk umum:
>> zeros(n,m)
Contoh:
b. Matriks Satu
Matriks yang elemeng bilangannya nol
Bentuk umum:
>> ones(n,m)
>> zeros(2,3)Ans =
0 0 00 0 0
2
Contoh:
c. Matriks identitas
Bentuk umum:
>> eye(n)
Contoh:
d. Matriks bujur sangkar ajaib
Matriks yang memiliki jumlahan yang sama pada tiap baris, kolom maupun
diagonalnya.
Bentuk umum:
>> magic(n)
Contoh:
e. Matriks acak
Matriks isinya bernilai acak berdasarkan distribusi statistik.
Bentuk umum:
>> rand (n,m)
Contoh:
>> ones(2,3)Ans =
1 1 11 1 1
>> eye(3)Ans =
1 0 00 1 00 0 1
>> magic(4)Ans =
16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
>> rand(4,4)Ans =
0.61543 0.17627 0.41027 0.813170.79194 0.40571 0.89365 0.00986130.92181 0.93547 0.057891 0.138890.73821 0.9169 0.35287 0.20277
2
Matriks yang didefinisikan
Matlab menyediakan bentuk matriks yang didefinisikan oleh pengguna, yaitu
menggunakan tanda kurung siku ( [ ] ).
Contoh:
Tanda semicolon ‘;’ digunakan untuk memisahkan baris satu dengan yang lainnya.
2.3. Grafik
Plot
Fungsi plot digunkan untuk menggambar grafik 2D dengan skala linier pada
kedua sumbunya.
Contoh:
Plot3
Plot3 digunakan untuk menampilkan grafik 3 dimensi. Plot3 memerlukan 3
argument dengan bentuk plot3(x,y,z), dimana x,y,z merupakan 3 bagian vector yang
sama panjang.
Contoh:
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 :
>> A=[ 1 2 3; 3 4 5]A =
1 2 33 4 5
>> x=-10:10;>> y=x.^2;Plot(x,y)
>> t=0:pi/100:10*pi;>> plot3(sin(2*t),cos(2*t),t)
>> t=[10 30 21 52; 34 67 12 23; 90 23 45 26; 58 94 30 20];>> bar(t)>> bar3(t)
2
2.3. Metode Bisection
Misalkan suatu fungsi f (x) kontinu dalam interval tertutup [a,b], f (a) ∗ f (b) < 0
dan c = 1/2( a + b ) , dimana c ∈[a,b] . Interval baru yang dipilih selalu [a,c] atau
[c,b]. Interval yang diambil untuk iterasi berikutnya adalah subsinterval yang di
dalamnya dimungkinkan terdapat akar, namun hal ini bergantung pada apakah f (a)
∗ f (c) < 0 atau f (c) ∗ f (b) < 0. Perhatikanlah proses penentuan interval baru di
bawah ini,
Interval baru dibagi dua lagi dengan cara yang sama. Begitu seterusnya sampai
ukuran interval yang baru sudah sangat kecil dan hal ini tentu saja sesuai dengan
toleransi kesalahan yang diberikan. Kriteria berhentinya iterasi dapat dipilih dari salah
satu tiga kriteria di bawah ini :
Lebar interval baru: − < ε r r a b , yang dalam hal ini ε adalah nilai toleransi lebar
interval yang mengapit akar eksak.
Nilai fungsi di akar hampiran: f (c) ≈ 0
Galat relatif hampiran akar : dalam hal ini δ adalah galat relatif
hampiran yang diinginkan.
Algoritma Metode Bisection
2
Asumsi awal yang harus diambil adalah: ‘menebak’ interval awal [a,b] dimana
f(x) adalah kontinu padanya, demikian pula harus terletak ‘mengapit’ (secara
intuitif) nilai akar a, sedemikian rupa sehingga:
f (a) × f (b) £ 0
Algoritma Bisection (f,a,b,akar,e,iter,itmax,flag)
1. Tebak harga interval [a,b]; tentukan e; dan itmax
2. Set f0 = f(a); iter = 0; flag = 0;
3. Tentukan atau hitung akar = c := (a + b)/2; iter = iter + 1;
4. Jika f(a)·f(c) £ 0 maka b = c jika tidak a = c dan f0 = f(a);
5. Jika (b – a) £ e maka flag = 1 jika iter > itmax maka flag = 2;
6. Jika flag = 0 ulangi ke nomor 3;
7. Akar persamaan adalah: akar = (a + b)/2, sebagai akar terbaru;
8. Selesai.
2.2. Metode Newton Raphson
Metode Newton Raphson adalah metode pendekatan yang menggunakan satu titik dan
mendekatinya dengan memperhatikan slope atau gradien pada titik tersebut. Titik
pendekatan ke n+1 dituliskan dengan :
Algoritma Metode Newton Raphson
1. Definisikan fungsi f(x) dan fB1B(x)
2. Tentukan toleransi error (e) dan iterasi maksimum (n)
3. Tentukan nilai pendekatan awal xB0B
4. Hitung f(xB0B) dan fB1B(xB0B)
5. Untuk iterasi I = 1 s/d n atau |f(xi)| e ≥ Hitung f(xBiB) dan fB1B(xBiB)
6. Akar persamaan adalah nilai xi yang terakhir diperoleh.
2.3. Metode Secant
Masalah yang di dapat dalam metode Newton Raphson adalah terkadang sulit
mendapatkan turunan pertama, yakni f’(x). sehingga dengan jalan pendekatan :
2
Didapat :
Persamaan di atas memang memerlukan 2 nilai taksiranawal x, tetapi karena f(x) tidak
membutuhkan perubahan tanda diantara taksiran maka secand bukan metode akolade.
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
2
BAB III
HASIL PRAKTIKUM
3.1. Praktikum Pengenalan Matlab
Penjumlahan Matrik
Analisa Program : pertama-tama dimasukkan nilai A, lalu nilai B, digunakan
titik koma untuk memisahkan nilai perbaris. kemudian dicari hasil A+B, syarat
penjumalahn matrik adalah kolom dan baris kedua variabel yaitu A dan B harus
sama.
Perkalian Matrik
2
Analisa Program : perkalian matrik syaratnya jumlah baris divariabel pertama
harus sama dengan jumlah kolom divariabel kedua.
Transfus dan Invers
Analisa Program : perintah B’ atau B transfus berfungsi untuk membalikkan
atau mengganti kolom menjadi baris
Mencari Sisa
2
Analisa Program : jumlah sisa dicari dengan memasukkan rumus jumlah awal
dikali 0.5 dan dipangkatkan waktu per waktu paruh.
For
2
Analisa Program : pertama dimasukkan nilai n yaitu 1:4 for digunakan untuk
melakukan perulangan dan perintahnya n dipangkatkan 3, pertama 1
dipangkatkan 3 sampai 4 dipangkat 3.
While
Analisa Program : pertama dimasukkan nilai n=1, lalu nilai x=0, kemudian x
dibatasi sampai kurang dari 15, setiap perulangan nilai n yang dilakukan
dipangkatkan 2 dan terus berjalan sampai 4 pangkat 2. Perintah stem(x)
digunakan untuk menampilkan kurva.
2
If Else
harga=input('harga 1 toples kue=');
cacah_kue=input('berapa toples kue yang di beli????=');
if cacah_kue>=4
bayar=((cacah_kue*harga)-(cacah_kue*harga*0.1))
else
bayar=(cacah_kue*harga)
end
Analisa Program : jika pembelian melebihi atau 4 toples akan mendapatkan
diskon sebesar 10%, jika tidak maka akan dihitung sesuai dengan harga yang
ditetapkan.
ujian1 = input ('masukkan nilai ujian pertama skala 100, ujian 1=')ujian2 = input ('masukkan nilai ujian pertama skala 100, ujian 2=')ujian3 = input ('masukkan nilai ujian pertama skala 100, ujian 3=')ujian4 = input ('masukkan nilai ujian pertama skala 100, ujian 4=') nilai = (ujian1+ujian2+ujian3+ujian4)/4if nilai>=80 ket='A'else if 70<=nilai & nilai <80 ket='B'else if 60<=nilai & nilai<70 ket='C'else if 50<=nilai &nilai<60 ket='D' else ket='E' end end end
2
end
Hasil ketika di running :
Analisa Program : untuk mencari nilai akhir maka nilai pertama sampai nilai keempat dijumlahkan lalu dibagi keempat. Setelah mendapatkan nilai akhir maka dicocokan dengan kategori yang tersedia.
Switch Case
disp('1. harta')disp('2. nyawa')disp('3. kehormatan') n = input('mau pilih enak apa gak???(masukkan nomor saja) = ');switch n case(1), disp('harta') case(2), disp('nyawa') case(3), disp('kehormatan') otherwise disp('tentukan pilihanmu??')end
Hasil ketika di running :
2
Analisa Program : dipakai untuk menampilkan beberapa pilihan.
Plot
Grafiknya
2
Grafiknya
2
Grafiknya
x=0:0.1:20;y=exp(-x/10).*sin(10*x);plot(x,y)xlabel('Sumbu X')ylabel('Sumbu Y')
Grafiknya
2
Analisa Program : Fungsi plot digunakan untuk menggambar grafik 2D dengan skala linier
pada kedua sumbunya.
3.2. Metode Bisection
function bisection ; disp('METODE BISECTION'); disp('================'); a = input ('masukkan batas kiri internal :'); b = input ('masukkan batas kanan internal :'); eps = input ('masukkan epsilon / batas ketelitian :'); itemax = input ('masukkan jumlah iterasi maksimum :'); alfa = a; disp(' '); disp('memulai proses iterasi'); 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 (['iterasi ke',num2str(i),',',' akarnya :',num2str(t)]) if (abs(a-b))<=eps break end endwaktu = toc;disp(' ');disp(['akarnya adalah : ',num2str(t)]);disp(['jumlah iterasi : ',num2str(i)]);disp(['selang waktu konvergensi : ',num2str(waktu)]);function f = fn(x,alfa) f = log (2-exp(-x))-x + alfa;
Analisa Program
function bisection : untuk membuat fungsi sendiri (fungsi bisection) di matlab
disp : menampilkan output program (apa yang ada diantara tanda petik) ke layer
2
input : meminta masukkan ketika program dijalankan dan menyimpannya ke dalam variabel a, b, eps dan itemax untuk menentukan batas atas, batas bawah, epsilon dan iterasi maksimum.
Disp : menampilkan output program (apa yang ada diantara tanda petik) ke layer
for : melakukan iterasi dari satu hingga batas yang ditentukan dengan kenaikan sebanyak 1
else : alternatif pilihan dari if
break: menghentikan eksekusi dari pengulangan for
toc: mengakhiri fungsi stopwatch dan memasukkan nilainya ke dalam variabel waktu
num2str : mengkonversikan nilai angka pada variabel ke dalam string agar dapat ditampilkan ke layer
Hasil ketika di running :
3.3. Metode Newton Raphson
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);
2
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
Analisa Program
function newtonraphson : untuk membuat fungsi sendiri (fungsi newtonraphson) di matlab
Clc : membersihkan command windows
Clear : menghapus item (variabel) dari layer dan membersihkan sistem memori
Disp : menampilkan output program (apa yang ada diantara tanda petik) ke layer
E=0.0001 : memasukkan nilai 0.0001 ke dalam variabel E(sebagai batas ketelitian)
fx= exp(x0)-4*x0;
gx=exp(x0)- 4;
m=abs(x0-xb); memasukkan nilai ke dalam variabel
x0=xb;
i=i+1;
fprintf : menampilkan data (apa yang ada diantara tanda petik) ke layer dalam format tertentu
end : akhir dari functionHasil ketika di running :
2
3.4. Metode Secant
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; end; disp('_______________________________________________'); fprintf('Akarnya Adalah = %10.8f\n',xb); end
2
Analisa program :
function secant : untuk membuat fungsi sendiri (fungsi secant) di matlab
Clc : membersihkan command windows
Clear : menghapus item (variabel) dari layer dan membersihkan sistem memori
Disp : menampilkan output program (apa yang ada diantara tanda petik) ke layer
fx=exp(x0)-5*x0^2;
fxb=exp(xb)-5*xb^2; menghitung nilai untuk variabel
d=xb-(fxb*(xb-x0)/(fxb-fx));
M=abs(x0-xb);
x0=xb;
xb = d; memasukkan nilai dari variabel
i=i+1;
fprintf : menampilkan data (apa yang ada diantara tanda petik) ke layer dalam format tertentu
end : akhir dari function
Hasil ketika di running :
BAB IVPENUTUP
2
4.1. Kesimpulan
Prinsip-Prinsip Metode Numerik
-> Digunakan jika metode analitik tidak dapat digunakan lagi
-> Metode Numerik merupakan pendekatan untuk mendapatkan pemecahan masalah
yang dapat dipertanggung jawabkan secara analitik
-> Pendekatannya merupakan analisis matematis
-> Metode Numerik terdiri atas algoritma-algoritma yang dapat dihitung secara cepat
dan mudah
-> Karena berasal dari alogaritma pendekatan, maka Metode Numerik ini akan
memakai iterasi (pengulangan)
-> Nilai kesalahan merupakan hal paling utama untuk mengetahui seberapa baik
metode yang digunakan.
Pemakaian Metode Numerik
Pemakaian Metode Numerik biasanya dilakukan untuk menyelesaikan persoalan
matematis yang penyelesaiannya sulit didapatkan dengan menggunakan metode
analitik, yaitu :
1. Menyelesaikan persamaan non linier
2. Menyelesaikan persamaan simultan
3. Menyelesaikan differensial dan integral
4. Interpolasi dan Regresi
5. Menyelesaikan persamaan differensial
6. Masalah multi variable untuk menentukan nilai optimal yang tak bersyarat
DAFTAR PUSTAKA
2
http://jejakjari007.blogspot.com/2010/03/metode-numerik.html
http://saranabuku.com/produk-240-.html
http://id.wikipedia.org/wiki/Matlab
http://singiters.blogspot.com/2010/03/pengenalan-matlab-71.html