100% menganggap dokumen ini bermanfaat (1 suara)
190 tayangan16 halaman

Modul Metnum Matlab

Modul ini membahas pemrograman dasar MATLAB, meliputi pengenalan MATLAB, variabel, tipe data, konstanta, fungsi dasar, M-file, membentuk dan manipulasi matriks, serta operasi dasar pada matriks seperti transpose, invers, penjumlahan, dan pengurangan.

Diunggah oleh

Gustiyan IZ
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (1 suara)
190 tayangan16 halaman

Modul Metnum Matlab

Modul ini membahas pemrograman dasar MATLAB, meliputi pengenalan MATLAB, variabel, tipe data, konstanta, fungsi dasar, M-file, membentuk dan manipulasi matriks, serta operasi dasar pada matriks seperti transpose, invers, penjumlahan, dan pengurangan.

Diunggah oleh

Gustiyan IZ
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 16

MODUL 1

PEMROGRAMAN DASAR MATLAB


Pengantar
Matlab merupakan bahasa pemrograman yang menyediakan fasilitas-fasilitas untuk
komputasi, visualisasi dan pemrograman. Matlab memiliki beberapa feature berdasarkan
aplikasi tertentu yang dinamakan Toolbox. Program yang ditulis dengan matlab memiliki
ekstensi m (.m) dan dapat dilakukan dengan MATLAB EDITOR.
Bagian Penting Matlab
a. Jendela Perintah (Command Window)
Kita dapat menuliskan sekaligus mengeksekusi perintah yang diperlukan seperti
perhitungan biasa, memanggil fungsi, mencari informasi tentang sebuah fungsi (help),
demo program dan sebagainya.
b. Jendela Ruang Kerja (Workspace)
Jendela ini berisi tentang informasi pemakaian variabel di dalam memori matlab.
Untuk melihat variabel yang sedang aktif, kita dapat menggunakan perintah who
c. Jendela History
Jendela ini merupakan jendela yang berisi informasi tentang perintah yang pernah
dituliskan sebelumnya.
d. Preferences
Preferences merupakan fasilitas yang digunakan untuk mengatur segala sesuatu
tentang matlab, seperti pengaturan jenis, ukuran maupun warna font. Untuk
membukanya, pilih menu file selanjutnya pilih prefernces.
e. Current Directory
Fasilitas ini digunakan untuk menentukan direktori aktif yang digunakan matlab. Jika
akan menjalankan sebuah fungsi, maka pastikan bahwa fungsi berada dalam direktori
aktif.
f. Launch Pad
Fasilitas ini digunakan untuk memudahkan kita dalam mengakses produk-produk
matlab seperti demo dan dokumentasi.
g. Berbagai macam toolbox yang digunakan untuk membantu menyelesaikan
permasalahan sesuai bidangnya masing-masing seperti neural network, statistic,
wavelet, dan sebagainya.

A. VARIABEL
Pada MATLAB variabel digunakan tanpa harus mendeklarasikan lebih dulu.
Apabila suatu variabel telah digunakan sebelumnya maka secara otomatis MATLAB
akan mereplace variabel lama. Nama variabel didahului dengan karakter, bisa diikuti
dengan karakter, angka atau underscore ( _ ). Penamaan variabel bersifat case
sensitive (variabel A berbeda dengan a).
B. TIPE DATA
MATLAB mengenal bilangan dan karakter. Penulisannya dapat dilakukan dengan :

________________________________ 1
Modul Praktikum
Metode Numerik dengan MATLAB
Bilangan
Bilangan real dituliskan seperti biasa. Misal : 3.29 -5.12 8 .358 (=0.358)
Bilangan imajiner ditulis seperti bilangan real ditambah huruf i atau j. Misal : -6i
4.92j
Penulisan 10n dengan notasi en. Misal : 5.31 x 105 ditulis dengan 5.31e5
Karakter
Penulisan karakter atau string diapit dengan tanda . Misal : A Jumlah Nilai

C. KONSTANTA
1. pi = 3.14
2. eps = presisi relatif dari floating point (252)
3. realmin = floating point terkecil (2-1022)
4. realmax = floating point terbesar ((2-eps)21023)
5. NaN = Not a Number, terjadi bila suatu komputasi menghasilkan tidak nol
dibagi nol atau inf - inf
6. inf = infinity, terjadi bila suatu komputasi menghasilkan 0 dibagi 0, atau
overflow, misalkan lebih dari realmax atau kurang dari realmin

D. FUNGSI-FUNGSI DASAR
Ada beberapa fungsi dasar pada MATLAB yang langsung dapat digunakan,
diantaranya:
1. Fungsi Trigonometri
No Fungsi Syntax Keterangan
1 Sinus sin(x) Untuk mencari nilai sinus x, dimana x sudut dalam radian
2 Cosinus cos(x) Untuk mencari nilai cosinus x, dimana x sudut dalam radian
3 Tangen tan(x) Untuk mencari nilai tangen x, dimana x sudut dalam radian

2. Fungsi Exponensial
No Fungsi Syntax Keterangan
1 Eksponensial exp(x) Untuk mencari nilai ex, dengan e bilangan natural
(=2.7182)
2 Logaritma log(x) Untuk mencari nilai logaritma berbasis bilangan e (=elog(x))
3 Log basis 10 log10(x) Untuk mencari nilai logaritma berbasis 10 dari x (=10log(x))
4 akar pangkat 2 sqrt(x) Untuk mencari nilai akar pangkat 2 dari x (= x )

E. M-File
M-file merupakan sederetan perintah matlab yang dituliskan secara berurutan sebagai
sebuah file. Untuk membuka jendela m-file pilih menu File kemudian pilih New | M-
File.
M-file dapat ditulis dalam dua tipe, yaitu:
a. Script
Script adalah m-file yang sederhana karena tidak memerlukan argumen input atau
output.
b. Fungsi

________________________________ 2
Modul Praktikum
Metode Numerik dengan MATLAB
Fungsi adalah m-file yang memerlukan argumen input dan menghasilkan output.
Bagian-bagian fungsi:

function hasil = luas (p,l)

Argument input
Nama fungsi
Argumen output
keyword

F. MEMBENTUK MATRIKS
Ada beberapa cara membentuk matriks, antara lain :
1. Membentuk matriks dengan memasukkan elemen-elemennya secara
langsung
Antara satu elemen dengan elemen lainnya dalam satu kolom dipisahkan
dengan spasi atau koma (,).
Untuk memisahkan baris dengan tanda titik koma (;)
Penulisan elemen terletak dalam tanda kurung siku ([ ])
Contoh : A=[6 3 8; 7 1 6; 1 5 3; 6 9 2]

2. Membentuk matriks dengan built-in functions


No Syntax Keterangan Contoh
1 eye(N) Membentuk matriks identitas ukuran NxN I=eye(5)
2 ones(N,M) Membentuk matriks dengan semua S=ones(2,3)
elemennya bernilai 1, berukuran NxM
3 diag(V) Membentuk matriks diagonal, dengan D=diag([4 2 6 5])
elemen-elemen diagonalnya adalah vektor V
4 magic(N) Membentuk matriks NxN dengan jumlah M=magic(5)
elemen untuk setiap baris, kolom dan
diagonalnya sama
5 rand(N,M) Membentuk matriks NxM, elemen-elemennya R=rand(3,4)
bilangan random berdistribusi uniform(0,1)
6 randn(N,M) Membentuk matriks NxM, elemen-elemennya N=randn(4,5)
bilangan random berdistribusi normal(0,1)

3. Membentuk matriks dengan fungsi m-file yang kita buat sendiri


Misalkan dipunyai file BuatMatriks.m dengan coding sebagai berikut :
clear;
n=5;
k=2;
i=[1:n]';
x=[1:k:n*k]';
y=[n*k:-k:1]';
A=[i x y x+y x-y x.*y x.*x y.*y]

________________________________ 3
Modul Praktikum
Metode Numerik dengan MATLAB
Kita dapat memanggil file tersebut dengan mengetikkan nama filenya yaitu
BuatMatriks

MANIPULASI MATRIKS
Apabila telah dipunyai suatu matriks kita dapat memanipulasi matriks tersebut,
diantaranya disajikan pada tabel berikut :
No Syntax Fungsi
1 reshape(X,N,M) Mengubah ukuran matriks dari matriks X berukuran PxQ
menjadi matriks Y berukuran NxM dimana PxQ=NxM dengan
urutan per kolom.
2 diag(X) Mengambil diagonal matriks X yang berukuran NxN
3 tril(X) atau Membentuk matriks segitiga bawah dari matriks X yang
tril(X,k) berukuran NxN
4 triu(X) atau Membentuk matriks segitiga atas dari matriks X yang berukuran
triu(X,k) NxN
5 x(:,1:2:end) Membentuk matriks dengan elemen tertentu dari matriks X

G. INFORMASI-INFORMASI YANG DIPEROLEH DARI SUATU MATRIKS


No INFORMASI Syntax KETERANGAN
1 Ukuran matriks X size(X) [n m] = size(X)
n = jumlah baris, m = jumlah kolom
2 Panjang vector V length(V)
3 Mean dari mean(X) atau Jika k=1 mean dilakukan thd elemen-elemen
matriks X mean(X,k) dalam satu kolom, jika k=2 dalam satu baris.
Untuk mean total instruksinya
mean(mean(X))
4 Std deviasi std(X) Jika flag=0, std dev ternormalisasi thd (N-1)
matriks X atau jika flag=0, ternormalisasi thd N.
std(X,flag,k)
Jika k=1, std dev dicari thd elemen dlm satu
kolom, jika k=2 dlm satu baris.
Untuk mengetahui std dev total, instruksinya
adalah std(std(X))
5 Variansi matrik X var(X)

H. OPERASI-OPERASI PADA MATRIKS


No Operasi Operator KETERANGAN
1 Transpose X
2 Invers inv(X) Matriks X bisa diinvers jika X matriks bujur sangkar
3 Penjumlahan + Dua matriks bisa dijumlahkan jika berukuran sama
4 Pengurangan - Dua matriks bisa dikurangkankan jk ukuranya sama
5 Perkalian * Matriks A dan B bisa dikalikan jika jumlah kolom A sama
dengan jumlah baris B
6 Perkalian antar .* Dua matriks bisa dikalikan antar elemen jika berukuran
elemen sama
7 Pembagian / Dua matriks bisa dibagikan jika jumlah kolomnya sama
8 Pembagian ./ Dua matriks bisa dibagikan antar elemen jika berukuran
antar elemen sama

________________________________ 4
Modul Praktikum
Metode Numerik dengan MATLAB
I. FLOW KONTROL
No STATEMENT KETERANGAN CONTOH
1 IF Untuk mengeksekusi sekumpulan x=125
instruksi apabila kondisi yang if rem(x,2) == 0
Bilangan = genap
disyaratkan bernilai benar. Statement
else
ini diakhiri dengan end. Jika ada
Bilangan = ganjil
kondisi berlawanan (false) dapat
end;
diikuti dengan else atau elseif
2 SWITCH Untuk mengeksekusi sekumpulan clear;
instruksi didasarkan pada nilai dari X = 120;
sisa = rem(X,8);
suatu ekspresi atau variabel. Untuk
switch sisa,
menunjukkan suatu grup, statement
case 6
switch diikuti dengan case dan
NilaiSisa = A
otherwhise. Statement ini juga case 7
diakhiri dengan end. NilaiSisa = B
otherwhise
NilaiSisa = int2str(sisa)
end;
3 Loop: FOR Digunakan untuk mengulang x = rand(50,1);
sekumpulan instruksi hingga n kali. Xmax = realmin;
for i=1:50,
Statement ini juga diakhiri dengan
if x(i) > Xmax,
end.
Xmax = x(i);
end;
end;
4 Loop: WHILE Digunakan untuk mengulang
sekumpulan instruksi apabila dipenuhi
suatu kondisi tertentu. Statement ini
juga diakhiri dengan end.
5 BREAK Digunakan untuk keluar lebih awal
dari suatu iterasi yang menggunakan
for atau while

J. STRUKTUR LAINNYA
No STRUKTUR KETERANGAN CONTOH
1 Array Array yang terdiri dari 3 subscript atau x=rand(3,4,5)

Multidimensi lebih adalah instruksi untuk


membuat 5 matriks ukuran
3x4
2 Structures Array multidimensi yang elemen- Mhs.NIM=j0345;

elemennya tersimpan dalam Mhs.Nama=Ida;


Mhs.IPK=3.61;
beberapa field

________________________________ 5
Modul Praktikum
Metode Numerik dengan MATLAB
K. MENGGAMBAR GRAFIK
Syntax :
plot(Y) : menggambar grafik Y terhadap indeksnya
plot(X,Y) : menggambar grafik Y terhadap X, panjang X dan Y harus sama
plot(X,Y,S) : menggambar grafik Y terhadap X, S merupakan string karakter
yang menunjukkan warna, tipe titik dan tipe garis.
Contoh : Y = [4 3 8 6 5 9 4 2 7 5];
Plot(Y)
Contoh :
clear;
t=0:pi/100:2*pi;
y1=sin(t)
y2=sin(t+0.5);
y3=sin(t-0.25);
plot(t,y1,b-,t,y2,r:,t,y3,m);
title(Grafik fungsi Sinus,fontsize,16,fontname,arial);
xlabel(Data ke-,fontsize,14,fontname,verdana);
ylabel(Besarnya sinus,fontsize,14,fontname,arial);
grid;
legend(t,t+0.5,t-0.25);

________________________________ 6
Modul Praktikum
Metode Numerik dengan MATLAB
MODUL 2
AKAR PERSAMAAN NON LINIER
Metode bagi dua (bisection) ini didasarkan pada teorema nilai antara fungsi kontinu,
yaitu bahwa suatu selang [a,b] harus mengandung f(x) = 0,bila f(a) dan f(b) berlawanan
tanda misalnya f(a)>0 dan f(b)<0. Proses dilakukan dengan pengulangan membagi selang
[a,b] menjadi dua dalam setiap langkah diambil setengah selang yang memenuhi
persyaratan tersebut. Proses ini didapatkan ketelitian yang sama dengan interval [a,b]
terakhir.
Dalam algoritma digunakan variabel :
a sebagai batas bawah selang
b sebagai batas atas selang
c sebagai titik tengah
Bila f(a)>0 dan f(b)<0 maka perkalian keduanya menghasilkan bilangan yang kecil dari 0
atau f(a)f(b)<0 ini berarti selang [a,b] terdapat paling sedikitnya satu akar. Metode ini
memerlukan dua nilai sebagai tebakan awal, sebut a dan b, a < b, yang harus memenuhi
f(a) f(b) < 0 ; selang (a,b) mengandung satu akar. Mula-mula ditentukan titik tengah
selang (a,b) atau selang (a,b) dibagi dua sama panjang, sebut titik tengahnya c. Dua
selang baru yang diperoleh yakni (a,c) dan (c,b), salah satu diantaranya pasti
mengandung akar. Proses diulangi dengan membagi dua selang tersebut dan
memeriksa setengah selang yang mana yang mengandung akar. Pembagi-duaan selang
ini dilanjutkan sampai lebar selang yang ditinjau cukup kecil.

Sintaks Matlab
a. File bisection.m sebagai fungsi utama untuk mencari akar persamaan
dengan metode bisection
function bisection(fname,xa,xb)
clc;
disp('=============================================================');
disp('= Mencari Akar Persamaan dengan Metode Bisection =');
disp('=============================================================');
fa=feval(fname,xa);
fb=feval(fname,xb);
if (fa*fb<0)
epsilon = 10e-6;
max_iter=input('Iterasi Maksimum=');
iter =0;
fprintf('iter xa xb xc fa fb
abs(fa-fb) \n');
while 1
iter = iter+1;
xc=(xa+xb)/2;
fc=feval(fname,xc);
fprintf('%3d %10.6f %10.6f',iter,xa,xb);

________________________________ 7
Modul Praktikum
Metode Numerik dengan MATLAB
fprintf('%10.6f %10.6f %10.6f',xc,fa,fb);
fprintf('%10.6f \n',abs(fa-fb));
if (abs(fa-fb)<=epsilon)
fprintf('toleransi error terpenuhi\n');break
end
if (iter>max_iter)
fprintf('Maksimum Iterasi\n');break
end
if (fc*fa<0)
xb=xc;
fb=fc;
else
xa=xc;
fa=fc;
end
end
fprintf('Akar Persamaan %10.6f\n',xc);
else
disp('Akar tidak diapit');
end

b. File f.m sebagai fungsi yang akan dicari akar persamaannya


function y=f(x)
y=x^2+3*x-2;

c. Running sintaks
Tuliskan sintaks berikut di Command Window, misalkan akan dicari nilai
akar dari persamaan f dengan pada interval (0,3) dengan iterasi maksimal
100
>> bisection('f',0,3)
=============================================================
= Mencari Akar Persamaan dengan Metode Bisection =
=============================================================
Iterasi Maksimum=100
d. Output
=============================================================
= Mencari Akar Persamaan dengan Metode Bisection =
=============================================================
Iterasi Maksimum=100
iter xa xb xc fa fb abs(fa-fb)
1 0.000000 3.000000 1.500000 -2.000000 16.000000 18.000000
2 0.000000 1.500000 0.750000 -2.000000 4.750000 6.750000
3 0.000000 0.750000 0.375000 -2.000000 0.812500 2.812500
4 0.375000 0.750000 0.562500 -0.734375 0.812500 1.546875
5 0.375000 0.562500 0.468750 -0.734375 0.003906 0.738281
6 0.468750 0.562500 0.515625 -0.374023 0.003906 0.377930
7 0.515625 0.562500 0.539063 -0.187256 0.003906 0.191162
8 0.539063 0.562500 0.550781 -0.092224 0.003906 0.096130
9 0.550781 0.562500 0.556641 -0.044296 0.003906 0.048203
10 0.556641 0.562500 0.559570 -0.020229 0.003906 0.024136
11 0.559570 0.562500 0.561035 -0.008170 0.003906 0.012076
12 0.561035 0.562500 0.561768 -0.002134 0.003906 0.006040
13 0.561035 0.561768 0.561401 -0.002134 0.000886 0.003020
14 0.561401 0.561768 0.561584 -0.000624 0.000886 0.001510
15 0.561401 0.561584 0.561493 -0.000624 0.000131 0.000755
16 0.561493 0.561584 0.561539 -0.000247 0.000131 0.000377
17 0.561539 0.561584 0.561562 -0.000058 0.000131 0.000189
18 0.561539 0.561562 0.561550 -0.000058 0.000036 0.000094
19 0.561550 0.561562 0.561556 -0.000011 0.000036 0.000047
20 0.561550 0.561556 0.561553 -0.000011 0.000013 0.000024
21 0.561550 0.561553 0.561552 -0.000011 0.000001 0.000012
22 0.561552 0.561553 0.561552 -0.000005 0.000001 0.000006
toleransi error terpenuhi
Akar Persamaan 0.561552

________________________________ 8
Modul Praktikum
Metode Numerik dengan MATLAB
MODUL 2
METODE NEWTON RAPHSON
Metode Newton Raphson didasarkan pada aproksimasi linear fungsi dan menggunakan
prinsip kemiringan (Tangen) kurvanya. Kalkulasi dengan metode Newton diawali dengan
x0 yang tidak terlalu jauh dari sebuah akar, bergerak sepanjang garis linear (kemiringan
atau tangen garis) ke perpotongannya di sumbu-x, dan mengambilnya sebagai titik
aproksimasi untuk yang berikutnya. Perlakuan ini diteruskan hingga nilai-nilai x dirasakan
sukses cukup dekat ke fungsi bernilai nol. Skema kalkulasinya mengikuti segitiga yang
dibangun dengan sudut
inklinasi dari kemiringan garis pada kurva di x = x0 yaitu
f ( x0 ) f ( x0 )
tan ( q ) = f ' ( x0 ) = atau x1 = x0 -
x0 - x1 f ' ( x0 )
Aproksimasi berikutnya diteruskan dengan menghitung x2 dengan skema yang sama
dimana nilai x0 digantikan oleh x1 . Secara umum metode Newton dirumuskan oleh
skema berikut ini:
f ( n)
xn +1 = xn -
f ' ( n)

Sintaks Matlab
a. File newton_raphson.m sebagai fungsi utama untuk mencari akar
persamaan dengan metode newton raphson
function newton_raphson(fname,dfname,xa)
clc;
disp('=============================================================');
disp('= Mencari Akar Persamaan dengan Metode Newton Raphson =');
disp('=============================================================');
eps=10e-6;
x(1)=xa;
max_iter=input('Iterasi Maksimum=');
iter = 1;
fprintf('iterasi x \n');
fprintf('%5d %10.6f\n',1,x(1));
while 1
iter = iter + 1;
x(iter) = x(iter-1) - (feval(fname,x(iter-1)))/(feval(dfname,x(iter-
1)));
fprintf('%5d %10.6f\n',iter,x(iter));
if (abs(x(iter)-x(iter-1))<=eps);
fprintf('Toleransi error terpenuhi.\n');break
end
if(iter>max_iter)
fprintf('Maksimum Iterasi\n');break
end
end

________________________________ 9
Modul Praktikum
Metode Numerik dengan MATLAB
fprintf('Akar Persamaannya adalah: %10.6f\n',x(iter));
disp('=============================================================');

b. File f.m sebagai fungsi yang akan dicari akar persamaannya


function y=f(x)
y=x^2+3*x-2;

c. File df.m sebagai turunan fungsi yang akan dicari akar persamaannya
function y=df(x)
y=2*x+3;

d. Running sintaks
Tuliskan sintaks berikut di Command Window, misalkan akan dicari nilai
akar dari persamaan f dengan turunan df, dengan nilai awal akar x=0 dan
iterasi maksimal 100
>> newton_raphson('f','df',0)
=============================================================
= Mencari Akar Persamaan dengan Metode Bisection =
=============================================================
Iterasi Maksimum=100

e. Output
=============================================================
= Mencari Akar Persamaan dengan Metode Newton Raphson =
=============================================================
Iterasi Maksimum=100
iterasi x
1 0.000000
2 0.666667
3 0.564103
4 0.561554
5 0.561553
Toleransi error terpenuhi.
Akar Persamaannya adalah: 0.561553
=============================================================

________________________________ 10
Modul Praktikum
Metode Numerik dengan MATLAB
MODUL IV
SISTEM PERSAMAAN LINIER

A. Pendefinisian Sistem Persamaan Linier


Suatu sistem dari m persamaan linier dan n variabel berbentuk:
a11 x1 + a12 x 2 + + a1n x n = b1
a 21 x1 + a 22 x 2 + + a 2n xn = b2

a m1 x1 + am2 x2 + + a mn x n = bm

dimana x1, x2, ..., xn adalah variabel dan a11, a12, ..., amn adalah koefisien
persamaan sedangkan b1, b2, ... bm adalah konstanta persamaan. Sekumpulan
nilai dari variabel , misalkan x 1 = k1, x2 = k2, ..., xn = kn disebut solusi dari sistem
persamaan linier tersebut. Solusi ini dapat disajikan dalam bentuk vektor yang
disebut dengan vektor solusi.
Bagan solusi sistem persamaan linier:

Sistem Persamaan Linier


AX=B

Homogen Tak Homogen


B=O BO

Selalu Ada Solusi Tak Ada Solusi Ada Solusi


r(A) r(A,B) r(A) = r(A,B)

Solusi Trivial Solusi Nontrivial Solusi Tunggal Solusi Banyak


(Solusi Nol) r=n r<n

Metode yang digunakan dalam penyelesaian sistem persamaaan linier antara


lain:
1. Eliminasi Gauss Jordan
2. Iterasi Gauss Seidel

Sintaks Matlab:
1. Metode Eliminasi Gauss (disimpan dengan nama Gauss_jordan.m)

clear;clc;
disp('=============================================================');
disp('= Mencari Solusi Sistem Persamaan Linier Metode Gauss Jordan=');
disp('=============================================================');
n=input('orde matriks=');

________________________________ 11
Modul Praktikum
Metode Numerik dengan MATLAB
disp('Masukkan komponen matriks koefisien');
for i=1:n
for j=1:n
a(i,j)=input(sprintf('A(%d,%d)=',i,j));
end
end
disp('Masukkan komponen vektor tujuan');
for k=1:n
b(k)=input(sprintf('B(%d)=',k));
end

clc;
disp('=============================================================');
disp('= Mencari Solusi Sistem Persamaan Linier Metode Gauss Jordan=');
disp('=============================================================');
disp('Matriks koefisien');
A = a
disp('Vektor tujuan');
B = b'

disp('======Solusi Sistem Persamaan Gauss Jordan ==================');


fprintf('\n')
[m n]=size(A);
if m~=n
disp(['Baris = ',num2str(m),' ; Kolom = ',num2str(n)])
disp('Bukan Matriks Persegi')
disp('Matrik [A] Tidak Mempunyai Invers..!!!')
return
end
detA=det(A);
if detA==0
disp('A adalah Matriks singular')
disp('Matrik [A] Tidak Mempunyai Invers..!!!')
return
end
disp('Langkah awal : Membuat matriks M = A|B|I')
disp('===================================================================
=')
MATRIX = [A B eye(m)]
for i=1:m
disp(['Eliminasi Kolom ' num2str(i)])
disp('================================================================')
disp(['B' num2str(i) '/a' num2str(i) num2str(i)])
MATRIX(i,:)=MATRIX(i,:)./MATRIX(i,i)
io=i-1; %Baris di atas i
in=m-i; %Baris di bawah i
for ii=1:io
disp(['B' num2str(ii) ' - a' num2str(ii) num2str(i) '*B' num2str(i)])
MATRIX(ii,:)=MATRIX(ii,:)-MATRIX(i,:).*MATRIX(ii,i)
end
for jj=1:in
disp(['B' num2str(i+jj) ' - a' num2str(i+jj) num2str(i) '*B' num2str(i)])
MATRIX(i+jj,:)=MATRIX(i+jj,:)-MATRIX(i,:).*MATRIX(i+jj,i)
end
end
disp('Invers matrik A adalah ...')
Invers=MATRIX(:,m+2:end)
disp('SOLUSI PERSAMAAN SIMULTAN ADALAH ...')
disp(' ')
for i=1:m
disp(['X' num2str(i) ' = ' num2str(MATRIX(i,m+1)) ])
end

________________________________ 12
Modul Praktikum
Metode Numerik dengan MATLAB
2. Metode Iterasi Gauss Seidel (disimpan dengan nama gausseidel.m)

clear;clc;
disp('=============================================================');
disp('= Mencari Solusi Sistem Persamaan Linier Metode Gauss seidel=');
disp('=============================================================');
n=input('orde matriks=');

disp('Masukkan komponen matriks koefisien');


for i=1:n
for j=1:n
a(i,j)=input(sprintf('A(%d,%d)=',i,j));
end
end
disp('Masukkan komponen vektor tujuan');
for k=1:n
b(k)=input(sprintf('B(%d)=',k));
end

disp('Masukkan nilai input awal');


for i=1:n
x(1,i)=input(sprintf('X(1,%d)=',i));
end

iter=input('Iterasi Maksimum=');
clc;
disp('=============================================================');
disp('= Mencari Solusi Sistem Persamaan Linier Metode Gauss seidel=');
disp('=============================================================');
disp('Matriks koefisien');
A = a
disp('Vektor tujuan');
B = b'
disp('Input Awal');
x
disp('=============== Iterasi Gauss Seidel =======================');
fprintf('\n')
fprintf('%10s','iterasi ke-');
fprintf('\n')
for k = 1:iter;
for i=1:n
jum1=0;
jum2=0;
for j=1:n
if j<i
jum1=jum1+a(i,j)*x(k+1,j);
end
if j>i
jum2=jum2+a(i,j)*x(k,j);
end
jum = jum1 +jum2;
end
x(k+1,i)=(b(i)-jum)/a(i,i);
end
z = x(k+1,:);
fprintf('%6d',k);
fprintf('%12.4f',z);
fprintf('\n')
end
disp('=============================================================');

Selesaikan SPL berikut dengan kedua metode diatas!


4x - y + z = 7
4 x - 8 y + z = -21
-2 x + y + 5 z = 15
MODUL V

________________________________ 13
Modul Praktikum
Metode Numerik dengan MATLAB
TURUNAN DAN INTEGRAL NUMERIK
Tujuan Instruksional Umum:
Mahasiswa mampu memahami dan menerapkan dasar-dasar teknik numerik untuk
menyelesaikan permasalahan matematis yang tidak analitis.
Tujuan Instruksional Umum:
a. Mahasiswa mampu melakukan diferensiasi secara numerik
b. Mahasiswa mampu melakukan integrasi secara numerik

A. TURUNAN NUMERIK
1. Rumus-rumus Turunan Pertama

2. Rumus-rumus Turunan Kedua

________________________________ 14
Modul Praktikum
Metode Numerik dengan MATLAB
3. Rumus-rumus Turunan Ketiga

Tugas 5.1:
x 1,3 1,5 1,7 1,9 2,1 2,3 2,5
f(x) 3,669 4,482 5,474 6,686 8,166 9,974 12,182
1. Tentukan nilai turunan pertama dan kedua di titik 1,3 dengan
menggunakan rumus-rumus selisih maju!
2. Tentukan nilai turunan pertama dan kedua di titik 1,9 dengan
menggunakan rumus-rumus selisih pusat!
3. Fungsi tersebut adalah f ( x ) = e , buatlah analisis errornya!
x

B. INTEGRAL NUMERIK
1. Pendekatan kaidah Trapezoidal
n -1
b h
f ( x ) dx f 0 + 2 fi + f n
a 2 i =1
2. Pendekatan kaidah Simpson 1/3
b h
f ( x ) dx 3 (
a
f 0 + 4 f1 + 2 f 2 + 4 f 3 + 2 f 4 + L + 2 f n - 2 + 4 f n -1 + f n )

3. Pendekatan kaidah Simpson 3/8


b 3h
f ( x ) dx 8 (
a
f 0 + 3 f1 + 3 f 2 + 2 f 3 + 3 f 4 + L + 3 f n -2 + 3 f n-1 + f n )
Tugas 5.2:
x 1,3 1,5 1,7 1,9 2,1 2,3 2,5
f(x) 3,669 4,482 5,474 6,686 8,166 9,974 12,182
2.5
1. Tentukan nilai f ( x ) dx
1.3
dengan menggunakan rumus-rumus integrasi

numerik diatas! (gunakan h=0.2 dan h=0.4)


2. Fungsi tersebut adalah f ( x ) = e , buatlah analisis errornya!
x

Sintaks Matlab:

a. Integral Numerik Metode Trapezoidal (disimpan dengan nama


Int_Trapezoidal.m)
clear;clc;
disp('=============================================================');
disp('= Mencari Nilai Integral dengan Metode Trapezoidal=');
disp('=============================================================');
disp('Data Pengamatan {x,f(x)}');
x=[1.3 1.5 1.7 1.9 2.1 2.3 2.5];
f=[3.669 4.482 5.474 6.686 8.166 9.974 12.182];
data=[x; f];

________________________________ 15
Modul Praktikum
Metode Numerik dengan MATLAB
data

h=x(2)-x(1);
fprintf('h: %4.2f\n',h);
% Menghitung Nilai Integral
n= length(x);
int = (h/2)*(f(1)+f(n)+ sum(f(2:(n-1))));
fprintf('Nilai Integral Numerik:%10.6f\n',int);
disp('=============================================================');

b. Integral Numerik Metode Simpson 1/3 (disimpan dengan nama


Int_Simpson1.m)
clear;clc;
disp('=============================================================');
disp('= Mencari Nilai Integral dengan Metode Simpson 1/3=');
disp('=============================================================');
disp('Data Pengamatan {x,f(x)}');
x=[1.3 1.5 1.7 1.9 2.1 2.3 2.5];
f=[3.669 4.482 5.474 6.686 8.166 9.974 12.182];
data=[x; f];
data

h=x(2)-x(1);
fprintf('h: %4.2f\n',h);
% Menghitung Nilai Integral
n= length(x);
int = (h/3)*(f(1)+4*f(2)+2*f(3)+4*f(4)+2*f(5)+4*f(6)+f(7));
fprintf('Nilai Integral Numerik:%10.6f\n',int);
disp('=============================================================');

a. Integral Numerik Metode Simpson 3/8 (disimpan dengan nama


Int_Simpson3.m)
clear;clc;
disp('=============================================================');
disp('= Mencari Nilai Integral dengan Metode Simpson 3/8=');
disp('=============================================================');
disp('Data Pengamatan {x,f(x)}');
x=[1.3 1.5 1.7 1.9 2.1 2.3 2.5];
f=[3.669 4.482 5.474 6.686 8.166 9.974 12.182];
data=[x; f];
data

h=x(2)-x(1);
fprintf('h: %4.2f\n',h);
% Menghitung Nilai Integral
n= length(x);
int = (h/3)*(f(1)+3*f(2)+3*f(3)+2*f(4)+3*f(5)+3*f(6)+f(7));
fprintf('Nilai Integral Numerik:%10.6f\n',int);
disp('=============================================================');

________________________________ 16
Modul Praktikum
Metode Numerik dengan MATLAB

Anda mungkin juga menyukai