MODUL 1 PEMROGRAMAN DASAR MATLAB Pengantar Matlab Matlab merupaka merupakan n bahasa bahasa pemrogra pemrograman man yang menyedia menyediakan kan fasilita fasilitas-fasi s-fasilita litas s untuk 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 MATA! "#$T%&. Bagian Penting Matlab a. 'endel 'endela a Perinta Perintah h (omm (ommand and indo indo*) *) +ita dapat dapat menulisk menuliskan an sekalig sekaligus us mengekse mengeksekusi kusi perintah perintah yang diperluk diperlukan an seperti seperti perhitungan perhitungan biasa, memanggil memanggil fungsi, menari informasi tentang sebuah fungsi (help), demo program dan sebagainya. b. 'endel 'endela a &uang &uang +era +era (o (orks rkspa pae) e) 'endela ini berisi tentang informasi pemakaian variabel di dalam memori matlab. ntuk melihat variabel yang sedang aktif, kita dapat menggunakan perintah who . 'end 'endel ela a /ist /istor ory y 'endela ini merupakan endela yang berisi informasi tentang perintah yang pernah dituliskan sebelumnya. d. Prefe refere ren nes es Preferen Preferenes es merupaka merupakan n fasilita fasilitas s yang digunaka digunakan n untuk mengatur mengatur segala segala sesuatu sesuatu tent tentan ang g matl matlab ab,, sepe sepert rtii peng pengat atur uran an eni enis, s, ukur ukuran an maup maupun un *arn *arna a font font.. ntu ntuk k membukanya, membukanya, pilih menu file selanutnya pilih prefernes. e. urr urren entt #ire #ireto tory ry 0asilitas ini digunakan untuk menentukan direktori aktif yang digunakan matlab. 'ika akan menalankan sebuah fungsi, maka pastikan bah*a fungsi berada dalam direktori aktif. f.
aunh Pad 0asilita 0asilitas s ini digunaka digunakan n untuk untuk memudahk memudahkan an kita dalam dalam mengaks mengakses es produk-p produk-produ roduk k matlab seperti demo dan dokumentasi. dokumentasi.
g. !erb !erbag agai ai
maa maam m
tool toolbo box x
yang yang
digu diguna naka kan n
untu untuk k
memb memban antu tu
meny menyel eles esai aika kan n
permasal permasalaha ahan n sesuai sesuai bidangny bidangnya a masing-m masing-masin asing g seperti seperti neural neural net*ork, net*ork, statisti, statisti, *avelet, dan sebagainya.
A. VARIAB IABEL Pada Pada MATA MATA! ! varia variabe bell digun digunaka akan n tanpa tanpa harus harus mende mendekla klaras rasika ikan n lebih lebih dulu. dulu. Apabila suatu variabel telah digunakan sebelumnya sebelumnya maka seara otomatis MATA! MATA! akan mereplae variabel lama. 1ama variabel didahului dengan karakter, bisa diikuti denga dengan n karak karakter ter,, angka angka atau atau under underso sore re ( 2 ). Penam Penamaan aan varia variabe bell bersi bersifat fat sensitive (variabel
case
A berbeda dengan a).
B. TIPE TIPE DAT DATA MATA! mengenal bilangan dan karakter. Penulisannya dapat dilakukan dengan 3
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
1
Bilangan !ilangan real dituliskan seperti biasa. Misal 3 4.56
-7.85
9
.479 (:;.479)
!ilangan imainer ditulis seperti bilangan real ditambah huruf i atau . Misal 3 -
Karakter Penulisan karakter atau string diapit dengan tanda > ?. Misal 3 >A?
>'umlah 1ilai?
C. KONSTANTA 1. pi :
4.8=
. eps
: presisi relatif dari floating point (5 @75)
!. realmin : floating point terkeil (5-8;55) ". realmax : floating point terbesar ((5-eps)58;54) #. 1a1
: 1ot a 1umber, teradi bila suatu komputasi menghasilkan tidak nol dibagi nol atau inf - inf
$. inf :
infinity, teradi bila suatu komputasi menghasilkan ; dibagi ;, atau overflo*, misalkan lebih dari realmax atau kurang dari realmin
D. %UNGSI&%UNGSI DASAR Ada beberapa fungsi dasar pada MATA! yang langsung dapat digunakan, diantaranya3 1. %'ng(i Trig)n)*etri N) 8 5 4
%'ng(i inus osinus Tangen
S+nta, sin(x) cos(x) tan(x)
Keterangan ntuk menari nilai sinus x, dimana x sudut dalam radian ntuk menari nilai osinus x, dimana x sudut dalam radian ntuk menari nilai tangen x, dimana x sudut dalam radian
. %'ng(i E,-)nen(ial N) 8 5 4 =
%'ng(i "ksponensial
S+nta, exp(x)
Keterangan ntuk menari nilai ex, dengan e bilangan natural
(:5.B895) log(x) ogaritma ntuk menari nilai logaritma berbasis bilangan e (: elog(x)) og basis 8; log10(x) ntuk menari nilai logaritma berbasis 8; dari x (: 8;log(x)) akar pangkat 5 sqrt(x) ntuk menari nilai akar pangkat 5 dari x (: x )
E. M&%ile M-file merupakan sederetan perintah matlab yang dituliskan seara berurutan sebagai sebuah file. ntuk membuka endela m-file pilih menu %ile kemudian pilih Ne / M& %ile. M-file dapat ditulis dalam dua tipe, yaitu3 a. ript ript adalah m-file yang sederhana karena tidak memerlukan argumen input atau output. b. 0ungsi ________________________________ Modul Praktikum Metode Numerik dengan MATLAB
2
0ungsi adalah m-file yang memerlukan argumen input dan menghasilkan output. !agian-bagian fungsi3 funtion hasil : luas (p,l) Argument input 1ama fungsi Argumen output key*ord
%. MEMBENTUK MATRIKS Ada beberapa ara membentuk matriks, antara lain 3 1. Me*bent'k
*atrik(
0engan
*e*a('kkan
ele*en&ele*enn+a
(eara
lang('ng
Antara satu elemen dengan elemen lainnya dalam satu kolom dipisahkan dengan spasi atau koma (,).
ntuk memisahkan baris dengan tanda titik koma (C)
Penulisan elemen terletak dalam tanda kurung siku (D E)
ontoh 3 A=[6 3 8; 7 1 6; 1 5 3; 6 !2"
. Membentuk matriks dengan built-in functions N) S+nta, eye(N) 8 5 ones(N,M)
Keterangan Membentuk matriks identitas ukuran 1x1 Membentuk matriks dengan semua
#=e$e(5) %=ones(2&3)
diag(V)
elemennya bernilai 8, berukuran 1xM Membentuk matriks diagonal, dengan
'=iag([ 2 6 5")
= magic(N)
elemen-elemen diagonalnya adalah vektor F Membentuk matriks 1x1 dengan umlah
*=+agic(5)
4
elemen
untuk
setiap
baris,
kolom
C)nt)2
dan
7 rand(N,M)
diagonalnya sama Membentuk matriks 1xM, elemen-elemennya
,=ran(3&)
< randn(N,M)
bilangan random berdistribusi uniform(;,8) Membentuk matriks 1xM, elemen-elemennya
-=rann(&5)
bilangan random berdistribusi normal(;,8) !. Me*bent'k *atrik( 0engan 3'ng(i *&3ile +ang kita b'at (en0iri Misalkan dipunyai file ./at*atris+ dengan oding sebagai berikut 3 clear; n=5; =2; i=[1n"; x=[1n4"; $=[n41"; A=[i x $ x$ x$ x4$ x4x $4$"
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
3
+ita dapat memanggil file tersebut dengan mengetikkan nama filenya yaitu ./at*atris
MANIPULASI MATRIKS
Apabila telah dipunyai suatu matriks kita dapat memanipulasi matriks tersebut, diantaranya disajikan pada tabel berikut : N) 8
S+nta, reshape(&-&*)
%'ng(i Mengubah ukuran matriks dari matriks G berukuran PxH menadi matriks I berukuran 1xM dimana PxH:1xM dengan
5 4
iag() tril()
ata/
urutan per kolom. Mengambil diagonal matriks G yang berukuran 1x1 Membentuk matriks segitiga ba*ah dari matriks G yang
ata/
berukuran 1x1 Membentuk matriks segitiga atas dari matriks G yang berukuran
tril(&)
=
tri/() tri/(&)
7
x(&12en)
1x1 Membentuk matriks dengan elemen tertentu dari matriks G
G. IN%ORMASI&IN%ORMASI 4ANG DIPEROLE5 DARI SUATU MATRIKS N) 8
IN%ORMASI kuran matriks G
S+nta, sie()
KETERANGAN [n +" = sie() n : umlah baris, m : umlah kolom
5 4
Panang vetor F Mean dari matriks G
length(9) +ean() atau
+ean(&)
'ika k:8 mean dilakukan thd elemen-elemen dalam satu kolom, ika k:5 dalam satu baris.
ntuk
mean
total
instruksinya
+ean(+ean())
=
st()
td deviasi
atau
matriks G
st(&:lag&)
'ika flag:;, std dev ternormalisasi thd (1-8) ika flag:;, ternormalisasi thd 1.
'ika k:8, std dev diari thd elemen dlm satu kolom, ika k:5 dlm satu baris.
ntuk mengetahui std dev total, instruksinya adalah st(st())
7
ar()
Fariansi matrik G
5. OPERASI&OPERASI PADA MATRIKS N) 8 5 4 = 7
O-era(i Transpose $nvers Penumlahan Pengurangan Perkalian
O-erat)r
KETERANGAN
< in() 4
Matriks G bisa diinvers ika G matriks buur sangkar #ua matriks bisa diumlahkan ika berukuran sama #ua matriks bisa dikurangkankan k ukuranya sama Matriks A dan ! bisa dikalikan ika umlah kolom A sama dengan umlah baris ! #ua matriks bisa dikalikan antar elemen ika berukuran sama #ua matriks bisa dibagikan ika umlah kolomnya sama #ua matriks bisa dibagikan antar elemen ika berukuran
<
Perkalian antar
4
B 9
elemen Pembagian Pembagian
antar elemen
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
sama
I.
%LO6 KONTROL N) 8
STATEMENT IF
KETERANGAN mengeksekusi sekumpulan
ntuk instruksi
apabila
kondisi
yang
CONTO5 x=125 i: re+(x&2) == 0 .ilangan = >genap<
disyaratkan bernilai benar. tatement ini diakhiri dengan en. 'ika ada kondisi 5
SWITCH
berla*anan
(false)
dapat
else .ilangan = >gan?il< en;
diikuti dengan else atau elsei: ntuk mengeksekusi sekumpulan
clear;
instruksi didasarkan pada nilai dari
= 120;
suatu ekspresi atau variabel. ntuk
sisa = re+(&8);
menunukkan suatu grup, statement s*ith
diikuti
dengan
otherwhise.
case
tatement
ini
dan uga
diakhiri dengan en.
switch sisa& case 6 -ilai%isa = >A< case 7 -ilai%isa = >.< otherwhise -ilai%isa = int2str(sisa)
Loop: FOR
4
mengulang
en; x = ran(50&1);
sekumpulan instruksi hingga n kali.
+ax = real+in;
tatement ini uga diakhiri dengan
:or i=150&
#igunakan
untuk
i: x(i) @ +ax&
en.
+ax = x(i);
en;
en;
=
Loop: WHIL
#igunakan
untuk
mengulang
sekumpulan instruksi apabila dipenuhi suatu kondisi tertentu. tatement ini 7
!R"#
uga diakhiri dengan en. #igunakan untuk keluar lebih a*al dari suatu iterasi yang menggunakan
:or atau while 7. STRUKTUR LAINN4A N) 8
STRUKTUR Arra+ M'lti0i*en(i
KETERANGAN Array yang terdiri dari 4 subsript atau
CONTO5 x=ran(3&&5) aalah
lebih
instr/si
/nt/
+e+/at 5 +atris //ran
5
Str't're(
Array
multidimensi
elemennya beberapa field
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
yang
tersimpan
elemendalam
3x *hs-#*=035<; *hs-a+a=<#a<; *hs#BC=<361<;
5
K. MENGGAMBAR GRA%IK yntax 3 plot(I)
3 menggambar grafik I terhadap indeksnya
plot(G,I)
3 menggambar grafik I terhadap G, panang G dan I harus sama
plot(G,I,)
3 menggambar grafik I terhadap G, merupakan string karakter yang menunukkan *arna, tipe titik dan tipe garis.
ontoh 3
D = [ 3 8 6 5 2 7 5"; Blot(D)
ontoh 3 clear; t=0pi10024pi; $1=sin(t) $2=sin(t05); $3=sin(t025); plot(t&$1&<>&t&$2&
); title(>Fra:i :/ngsi %in/s<&<:ontsie<&16&<:ontna+e<&'ata e>&<:ontsie<&1&<:ontna+e<&<erana<); $lael(>.esarn$a sin/s<&<:ontsie<&1&<:ontna+e<&t<&
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
6
MODUL 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) ! ",bila f(a) dan f(b) berlawanan tanda misalnya f(a)#" dan f(b)$"% &roses dilakukan dengan pengulangan membagi selang [a,b menjadi dua dalam setiap langkah diambil setengah selang yang memenuhi persyaratan tersebut% &roses ini didapatkan ketelitian yang sama dengan inter'al [a,b terakhir% alam algoritma digunakan 'ariabel : a sebagai batas bawah selang b sebagai batas atas selang c sebagai titik tengah ila f(a)#" dan f(b)$" maka perkalian keduanya menghasilkan bilangan yang kecil dari " atau f(a)·f(b)$" 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) $ " * 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% ua selang baru yang diperoleh yakni (a,c) dan (c ,b), salah satu diantaranya pasti mengandung akar% &roses diulangi dengan membagi dua selang tersebut dan memeriksa setengah selang yang mana yang mengandung akar% &embagi-duaan selang ini dilanjutkan sampai lebar selang yang ditinjau cukup kecil%
intaks Matlab a. 0ile bisetion.m sebagai fungsi utama untuk menari akar persamaan dengan metode bisetion :/nction isection(:na+e&xa&x) clc; isp(============================================================= ); isp(= *encari Aar Bersa+aan engan *etoe .isection =); isp(============================================================= ); :a=:eal(:na+e&xa); :=:eal(:na+e&x); i: (:a4:G0) epsilon = 10e6; +axHiter=inp/t(#terasi *asi+/+=); iter =0; :print:(iter xa x xc :a : as(:a:) In); while 1 iter = iter1; xc=(xax)2; :c=:eal(:na+e&xc); :print:(J3 J106: J106:&iter&xa&x);
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
7
:print:(J106: J106: J106:&xc&:a&:); :print:(J106: In&as(:a:)); i: (as(:a:)G=epsilon) :print:(toleransi error terpen/hiIn);rea en i: (iter@+axHiter) :print:(*asi+/+ #terasiIn);rea en i: (:c4:aG0) x=xc; :=:c; else xa=xc; :a=:c; en
en :print:(Aar Bersa+aan J106:In&xc); else isp(Aar tia iapit); en
b. 0ile f.m sebagai fungsi yang akan diari akar persamaannya :/nction $=:(x) $=xK234x2;
. &unning sintaks Tuliskan sintaks berikut di ommand indo*, misalkan akan diari nilai akar dari persamaan f dengan pada interval (;,4) dengan iterasi maksimal 8;;
@@ isection(:&0&3) ============================================================= = *encari Aar Bersa+aan engan *etoe .isection = ============================================================= #terasi *asi+/+=100
d. %utput ============================================================= = *encari Aar Bersa+aan engan *etoe .isection = ============================================================= #terasi *asi+/+=100 iter xa x xc :a : as(:a:) 1 0000000 3000000 1500000 2000000 16000000 18000000 2 0000000 1500000 0750000 2000000 750000 6750000 3 0000000 0750000 0375000 2000000 0812500 2812500 0375000 0750000 0562500 073375 0812500 156875 5 0375000 0562500 068750 073375 000306 0738281 6 068750 0562500 0515625 037023 000306 037730 7 0515625 0562500 053063 0187256 000306 011162 8 053063 0562500 0550781 00222 000306 006130 0550781 0562500 055661 0026 000306 008203 10 055661 0562500 055570 002022 000306 002136 11 055570 0562500 0561035 0008170 000306 0012076 12 0561035 0562500 0561768 000213 000306 000600 13 0561035 0561768 056101 000213 0000886 0003020 1 056101 0561768 056158 000062 0000886 0001510 15 056101 056158 05613 000062 0000131 0000755 16 05613 056158 056153 000027 0000131 0000377 17 056153 056158 0561562 0000058 0000131 000018 18 056153 0561562 0561550 0000058 0000036 00000 1 0561550 0561562 0561556 0000011 0000036 000007 20 0561550 0561556 0561553 0000011 0000013 000002 21 0561550 0561553 0561552 0000011 0000001 0000012 22 0561552 0561553 0561552 0000005 0000001 0000006 toleransi error terpen/hi Aar Bersa+aan 0561552
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
8
MODUL METODE NE6TON RAP5SON Metode +ewton aphson didasarkan pada aproksimasi linear fungsi dan menggunakan prinsip kemiringan (angen) kur'anya% .alkulasi dengan metode +ewton diawali dengan x" 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% &erlakuan ini diteruskan hingga nilai-nilai x dirasakan sukses cukup dekat ke fungsi bernilai nol% /kema kalkulasinya mengikuti segitiga yang dibangun dengan sudut inklinasi dari kemiringan garis pada kur'a di x x" yaitu =
( ) = f 1 ( x )
tan q
"
=
f ( x" ) x" - x0
atau
x0
=
x"
-
f ( x" ) f
1
(x ) "
Aproksimasi berikutnya diteruskan dengan menghitung x2 dengan skema yang sama dimana nilai x" digantikan oleh x0 % /ecara umum metode +ewton dirumuskan oleh skema berikut ini: f ( n ) xn 0 = xn f 1 ( n ) +
intaks Matlab a. 0ile ne*ton2raphson.m sebagai fungsi
utama untuk menari
akar
persamaan dengan metode ne*ton raphson :/nction newtonHraphson(:na+e&:na+e&xa) clc; isp(============================================================= ); isp(= *encari Aar Bersa+aan engan *etoe -ewton ,aphson =); isp(============================================================= ); eps=10e6; x(1)=xa; +axHiter=inp/t(#terasi *asi+/+=); iter = 1; :print:(iterasi x In); :print:(J5 J106:In&1&x(1)); while 1 iter = iter 1; x(iter) = x(iter1) (:eal(:na+e&x(iter1)))(:eal(:na+e&x(iter 1))); :print:(J5 J106:In&iter&x(iter)); i: (as(x(iter)x(iter1))G=eps); :print:(Loleransi error terpen/hiIn);rea en i:(iter@+axHiter) :print:(*asi+/+ #terasiIn);rea en en
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
:print:(Aar Bersa+aann$a aalah J106:In&x(iter)); isp(============================================================= );
b. 0ile f.m sebagai fungsi yang akan diari akar persamaannya :/nction $=:(x) $=xK234x2;
. 0ile df.m sebagai turunan fungsi yang akan diari akar persamaannya :/nction $=:(x) $=24x3;
d. &unning sintaks Tuliskan sintaks berikut di ommand indo*, misalkan akan diari nilai akar dari persamaan f dengan turunan df, dengan nilai a*al akar x:; dan iterasi maksimal 8;;
@@ newtonHraphson(:&:&0) ============================================================= = *encari Aar Bersa+aan engan *etoe .isection = ============================================================= #terasi *asi+/+=100
e. %utput ============================================================= = *encari Aar Bersa+aan engan *etoe -ewton ,aphson = ============================================================= #terasi *asi+/+=100 iterasi x 1 0000000 2 0666667 3 056103 056155 5 0561553 Loleransi error terpen/hi Aar Bersa+aann$a aalah 0561553 =============================================================
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
10
MODUL IV SISTEM PERSAMAAN LINIER A. Pendefinisian Sistem Persamaan Linier Suatu sistem dari m persamaan linier dan n variabel berbentuk: a00 x0
+
a02 x 2
a 20 x0
+
a 22 x 2
a m0 x0
+
a m 2 x 2
+
+ +
+
a0n x n
=
b0
+
a 2 n x n
=
b2
+
a mn x n
=
bm
dimana x1, x2, ..., xn adalah variabel dan a11, a12, ..., a mn adalah koefisien persamaan sedangkan b1, b2, ... b m adalah konstanta persamaan. Sekumpulan nilai dari variabel , misalkan x 1 = k 1, x 2 = k2, ..., xn = kn disebut solusi dari sistem persamaan linier tersebut. Solusi ini dapat disaikan dalam bentuk vektor !ang disebut dengan vektor solusi. "agan solusi sistem persamaan linier: /istem &ersamaan 3inier A4!
5omogen !6
/elalu Ada /olusi
/olusi ri'ial (/olusi +ol)
/olusi +ontri'ial
ak 5omogen 76
ak Ada /olusi r(A) 7 r(A,)
/olusi unggal r!n
Ada /olusi r(A) ! r(A,)
/olusi anyak r$n
#etode !ang digunakan dalam pen!elesaian sistem persamaaan linier antara lain: 1. $liminasi %auss &ordan 2. 'terasi %auss Seidel Sintaks #atlab: 1. #etode $liminasi %auss (disimpan dengan nama %auss)ordan.m* clear;clc; isp(============================================================= ); isp(= *encari %ol/si %iste+ Bersa+aan Minier *etoe Fa/ss Noran= ); isp(============================================================= ); n=inp/t(ore +atris=);
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
11
isp(*as/an o+ponen +atris oe:isien); :or i=1n :or ?=1n a(i&?)=inp/t(sprint:(A(J&J)=&i&?)); en en isp(*as/an o+ponen etor t/?/an); :or =1n ()=inp/t(sprint:(.(J)=&)); en clc; isp(============================================================= ); isp(= *encari %ol/si %iste+ Bersa+aan Minier *etoe Fa/ss Noran= ); isp(============================================================= ); isp(*atris oe:isien); A = a isp(9etor t/?/an); . = isp(======%ol/si %iste+ Bersa+aan Fa/ss Noran ================== ); :print:(In) [+ n"=sie(A); i: +O=n isp([.aris = &n/+2str(+)& ; Colo+ = &n/+2str(n)") isp(./an *atris Bersegi) isp(*atri [A" Lia *e+p/n$ai #nersPPP) ret/rn en etA=et(A); i: etA==0 isp(A aalah *atris sing/lar) isp(*atri [A" Lia *e+p/n$ai #nersPPP) ret/rn en isp(Mangah awal *e+/at +atris * = AQ.Q#) isp(=================================================================== =) *AL,# = [A . e$e(+)" :or i=1+ isp([Rli+inasi Colo+ n/+2str(i)") isp(================================================================ ) isp([. n/+2str(i) a n/+2str(i) n/+2str(i)") *AL,#(i&)=*AL,#(i&)*AL,#(i&i) io=i1; J.aris i atas i in=+i; J.aris i awah i :or ii=1io isp([. n/+2str(ii) a n/+2str(ii) n/+2str(i) 4. n/+2str(i)") *AL,#(ii&)=*AL,#(ii&)*AL,#(i&)4*AL,#(ii&i) en :or ??=1in isp([. n/+2str(i??) a n/+2str(i??) n/+2str(i) 4. n/+2str(i)") *AL,#(i??&)=*AL,#(i??&)*AL,#(i&)4*AL,#(i??&i) en en isp(#ners +atri A aalah ) #ners=*AL,#(&+2en) isp(%SMT%# BR,%A*AA- %#*TMLA- A'AMAU ) isp( ) :or i=1+ isp([ n/+2str(i) = n/+2str(*AL,#(i&+1)) ") en
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
12
2. #etode 'terasi %auss Seidel (disimpan dengan nama gausseidel.m* clear;clc; isp(============================================================= ); isp(= *encari %ol/si %iste+ Bersa+aan Minier *etoe Fa/ss seiel= ); isp(============================================================= ); n=inp/t(ore +atris=); isp(*as/an o+ponen +atris oe:isien); :or i=1n :or ?=1n a(i&?)=inp/t(sprint:(A(J&J)=&i&?)); en en isp(*as/an o+ponen etor t/?/an); :or =1n ()=inp/t(sprint:(.(J)=&)); en isp(*as/an nilai inp/t awal); :or i=1n x(1&i)=inp/t(sprint:((1&J)=&i)); en iter=inp/t(#terasi *asi+/+=); clc; isp(============================================================= ); isp(= *encari %ol/si %iste+ Bersa+aan Minier *etoe Fa/ss seiel= ); isp(============================================================= ); isp(*atris oe:isien); A = a isp(9etor t/?/an); . = isp(#np/t Awal); x isp(=============== #terasi Fa/ss %eiel =======================); :print:(In) :print:(J10s&iterasi e); :print:(In) :or = 1iter; :or i=1n ?/+1=0; ?/+2=0; :or ?=1n i: ?Gi ?/+1=?/+1a(i&?)4x(1&?); en i: ?@i ?/+2=?/+2a(i&?)4x(&?); en ?/+ = ?/+1 ?/+2; en x(1&i)=((i)?/+)a(i&i); en = x(1&); :print:(J6&); :print:(J12:&); :print:(In) en isp(============================================================= );
Selesaikan SPL berikut dengan kedua metode diatas+ 8 x - y + z = 9 8 x - : y
+
z = -20
x + y + ;z = 0;
-2
MODUL V ________________________________ Modul Praktikum Metode Numerik dengan MATLAB
13
TURUNAN DAN INTEGRAL NUMERIK Tujuan Instruksional Umum: #ahasisa mampu memahami dan menerapkan dasar-dasar teknik numerik untuk men!elesaikan permasalahan matematis !ang tidak analitis. Tujuan Instruksional Umum: a. #ahasisa mampu melakukan diferensiasi seara numerik b. #ahasisa mampu melakukan integrasi seara numerik A. TURUNAN NUMERIK 1. /umus-rumus 0urunan Pertama
2. /umus-rumus 0urunan edua
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
1
. /umus-rumus 0urunan etiga
Tuas !.": x 1, 1,3 1,4 1,5 2,1 2, 2,3 f(x* ,665 7,782 3,747 6,686 8,166 5,547 12,182 1. 0entukan nilai turunan pertama dan kedua di titik 1, dengan menggunakan rumus-rumus selisih mau+ 2. 0entukan nilai turunan pertama dan kedua di titik 1,5 dengan menggunakan rumus-rumus selisih pusat+ . 9ungsi tersebut adalah f ( x )
=
e x , buatlah analisis errorn!a+
#. INTEGRAL NUMERIK 1. Pendekatan kaidah 0rapeoidal b
f ( � a
h� x ) dx � �f " 2
�
n -0
+
�f
2
f n
i +
i =0
2. Pendekatan kaidah Simpson 1; b
h
( x ) dx � ( � a f
<
f"
8
+
f0
+
2
f2
+
8
f<
+
2
f8
+
L
+
2
fn
-2
+
8
fn
-0
+
f n )
. Pendekatan kaidah Simpson ;8 b
( x ) dx � ( � a
f"
Tuas !.$: x 1, f(x* ,665
1,3 7,782
f
:
+
< f0
+
< f2
1,4 3,747
+
2
f<
+<
f8
1,5 6,686
+
L
+<
2,1 8,166
fn
-2
+<
2, 5,547
fn
-0
+
f n )
2,3 12,182
2%;
1. 0entukan nilai
� f ( x ) dx
dengan menggunakan rumus-rumus integrasi
0%<
numerik diatas+ (gunakan h=<.2 dan h=<.7* 2. 9ungsi tersebut adalah f ( x )
=
e x , buatlah analisis errorn!a+
Sintaks #atlab: a. 'ntegral umerik 'nt)0rapeoidal.m*
#etode
0rapeoidal
(disimpan
dengan
nama
clear;clc; isp(============================================================= ); isp(= *encari -ilai #ntegral engan *etoe Lrapeoial=); isp(============================================================= ); isp('ata Benga+atan Vx&:(x)W); x=[13 15 17 1 21 23 25"; :=[366 82 57 6686 8166 7 12182"; ata=[x; :"; ________________________________ Modul Praktikum Metode Numerik dengan MATLAB
15
ata h=x(2)x(1); :print:(h J2:In&h); J *enghit/ng -ilai #ntegral n= length(x); int = (h2)4(:(1):(n) s/+(:(2(n1)))); :print:(-ilai #ntegral -/+eriJ106:In&int); isp(============================================================= );
b. 'ntegral umerik 'nt)Simpson1.m*
#etode
Simpson
1;
(disimpan
dengan
nama
clear;clc; isp(============================================================= ); isp(= *encari -ilai #ntegral engan *etoe %i+pson 13=); isp(============================================================= ); isp('ata Benga+atan Vx&:(x)W); x=[13 15 17 1 21 23 25"; :=[366 82 57 6686 8166 7 12182"; ata=[x; :"; ata h=x(2)x(1); :print:(h J2:In&h); J *enghit/ng -ilai #ntegral n= length(x); int = (h3)4(:(1)4:(2)24:(3)4:()24:(5)4:(6):(7)); :print:(-ilai #ntegral -/+eriJ106:In&int); isp(============================================================= );
a. 'ntegral umerik 'nt)Simpson.m*
#etode
Simpson
;8
(disimpan
dengan
nama
clear;clc; isp(============================================================= ); isp(= *encari -ilai #ntegral engan *etoe %i+pson 38=); isp(============================================================= ); isp('ata Benga+atan Vx&:(x)W); x=[13 15 17 1 21 23 25"; :=[366 82 57 6686 8166 7 12182"; ata=[x; :"; ata h=x(2)x(1); :print:(h J2:In&h); J *enghit/ng -ilai #ntegral n= length(x); int = (h3)4(:(1)34:(2)34:(3)24:()34:(5)34:(6):(7)); :print:(-ilai #ntegral -/+eriJ106:In&int); isp(============================================================= );
________________________________ Modul Praktikum Metode Numerik dengan MATLAB
16