analisa numerik_matlab
TRANSCRIPT
-
8/13/2019 Analisa Numerik_Matlab
1/30
Panduan Praktikum Metode Numerik dengan Matlab
1
BAB I
PENDAHULUAN
Pengenalan Program Matlab 1
Matlab merupakan bahasa pemrograman komputer berbasis windows denganorientasi dasarnya adalah matrik, namun pada program ini tidak menutup kemungkinanuntuk pengerjaan permasalahan non matrik. Selain itu matlab juga merupakan bahasapemrograman yang berbasis pada objek (OOP), namun disisi lain karena matlab bukalahtype compiler, maka program yang dihasilkan pada matlab tidak dapat berdiri sendiri, agarhasil program dapat berdiri sendiri maka harus dilakukan transfer pada bahasapemrograman yang lain, misal C++. Pada matlab terdapat tiga windows yang digunakandalam operasinya yaitu Command Windows ( layar per in tah) dan f igure w indows ( layarGambar), serta NotePad (sebagai tempat editor prog ram).
Windows Pada MatlabMenu Command windows
Command windows (layar perintah) digunakan untuk menjalankan perintah/programyang dibuat pada layar editor matlab. Pada windows / layar ini anda dapat mengaksesperintah maupun komponen pendukung ( Help file dll ) yang ada pada matlab secaralangsung. Salah satu ciri dari Command windows ditandai dengan tanda prompt (>>). LayarMenu Command windows terlihat dalam gambar dibawah ini.
1. File
Menu file merupakan item untuk menangani set-up statement yang berhubungan denganfile.
Menu pull
down Tittle
Klik untuk
kecilkan window
Klik untuk
besarkan window
Menggeser
layar window
Untuk menggeser layar arah
horisontal
Layar perintah
-
8/13/2019 Analisa Numerik_Matlab
2/30
Panduan Praktikum Metode Numerik dengan Matlab
2
newMenu New merupakan sub menu:
M-FileMembuka editor dengan laya kosong sehingga anda siap untuk membuat M-File baru (lihatmenu yang ada pada editor yang dipakai).
FigureFigure membuat sebuah figur window (layar gambar baru).
ModelMembuat layar mode simulink (jika program matlab menyediakan fasilitas simulink).
Open M-FileMenampilkan dialog box untuk membuka sebuah M-file yang dipilih sesuai dengan pilihan pada
dialog box ke dalam editor.
Nama file
yang dibuka
Kotak dialog
Menutup window
Type ekstensi
file
Directory yang aktif
Klik jikapilihan
sesuai
Batalkanerintah
-
8/13/2019 Analisa Numerik_Matlab
3/30
Panduan Praktikum Metode Numerik dengan Matlab
3
Save workspace AsMenampilkan dialog box penyimpanan data dalam format ASCII
Pada menu ini anda diperintahkan untuk memilih letak drive, directory dan masukkan namafile dengan extensi mat (*.mat) untuk menyimpan workspace (lembar kerja pada matlab).
Set pathPada bagian ini digunakan untuk melakukan setting path / lintasan yang akan dikenalioleh program pada saat ekskusi file yang telah dibuat.
PrintMencetak semua text yang berada pada command window. Jika yang dicetak tidakingin semuanya maka cetak bagian (variabel) yang ingin dicetak.
Exit matlabPerintah untuk keluar dari pelayanan matlab.
2. EditMenu edit adalah bagian dari matlab yang memangani fasilitas editing.Menu edit terlihat seperti gambar
CutMenghilangkan text yang diblok dari command window dan text tersebut disimpan padacliboard.
CopyMeng Copy (duplikat) text yang diblok dari command window ke cliboard.
PasteMenulis text yang ada pada clipboard ke command window.
Clear Command windowsMembersihkan lembar kerja.
Menutup
window
Directory yang
aktifKotak dialog
Nama file
yang akan di
save
Type ekstensi
file
Klik jika
sudah sesuai
Batalkan
perintah
-
8/13/2019 Analisa Numerik_Matlab
4/30
Panduan Praktikum Metode Numerik dengan Matlab
4
3. PreferenceMenu option adalah bagian dari preference yang menangani setting windows matlab. Salahsatu fungsi dari bagian ini adalah sebagia berikut :
Format numeric yang dipakai:
FORMAT Contoh Keterangan
ShortLongHexBankPlusRational
35.8333335.83333333333333344041eaaaaaaaaab35.83+215/6
Fixpoint dengan format 5 digitFixpoint dengan format 16 digitHexadesimalFormat dalam dolar dan sen (2 desimal digit)Pemberian simbol +,- atau nolFungsi point dituliskan dalam bilangan pecahan
LooseTampilan numeric dengan baris baru sebelum dan sesudah matrik.
CompactTampilan numeric tanpa baris baru sebelum dan sesudah matrik.
Turn Echo onTurn Echo dapat diset dalam dua kondisi yaitu: Turn Echo on dan Turn Echo Off.
Turn Echo on pada saat M-File dieksekusi maka baris-baris yang dieksekusi tidakditampilkan pada layar (command window).
Enabel Bacground ProcessPerintah ini merupakan togle yaitu dapat diset on atau off.
FontMenampilkan dialog box yang dapat digunakan untuk men-set spesifikasi font (huruf)dan warna bacground pada command window yang digunakan.
4. HelpMenu help menyediakan fasilitas untuk mengakses program help dari matlab, dimana padamenu tersebut mempunyai sub menu sbb:
Table of ContentsIndexHelp Selected
About
Table of ContentMenampilkan daftar area help dari matlab yang disediakan.
IndexMenampilkan daftar alpahabet dari fungsi-fungsi pada matlab yang disediakan.
Help SelectedMencari topik dari help pada item yang disorot dan ditampilkan pada command window.
AboutManampilkan About Box Matlab
-
8/13/2019 Analisa Numerik_Matlab
5/30
Panduan Praktikum Metode Numerik dengan Matlab
5
BAB IIPENGENALAN PEMROGRAMAN
Matlab adalah paket program pemrograman matematika berbasis matrik. Pada program
matlab ada dua cara palayanan program, yaitu:1. Secara interatif (secara langsung ), jika anda pernah menggunakan program Q-basic,
terletak pada View Immediate.2. Dengan pemprograman, yakni program dibuat pada tempat terpisah baru dilakukan tes
pada matlab.
Pelayanan secara interaktif dilakukan dengan cara mengetikkan perintah-perintah yangdiinginkan langsung pada prompt dari matlab yang berbentuk lambang >>. Pelayanandengan pemprograman dilakukan dengan cara membuat / menyusun program denganeditor dan disimpan dengan ektensi m(*.m)Lakukan perintah dibawah ini sebagai latihan pada commnad windows sebagai pelayananinteratif.
Membentuk matriks
>> A = [4 3 2; 4 4 3; 3 2 2] Perintah mencari invers
>> B = inv (A) >> C = det (A)
Mengambil bagian matriks>> a = A(1,:);
>> a
>> c = A(:,2);>> c
>> D = A(1,2,:);
>> D
Untuk menampilkan variabel yang aktif dalam memory komputer
>> who Menyimpan lembar kerja
>> save temp
Menghapus lembar kerja>> clc
Menghapus semua variabel pada lembar kerja (buffer memory)>> load temp
>> who
Mencari ukuran dari matriks>> [n, m] = size (A)
Untuk lebih mendalami, lakukan dan jawab pertanyaan dibawah ini:
0.54.52.31.2
0.52.40.50.5
1.59.08.25.7
2.00.10.58.2
0.52.31.50.6
G
[m,n] =size [g]
-
8/13/2019 Analisa Numerik_Matlab
6/30
Panduan Praktikum Metode Numerik dengan Matlab
6
A = det [G]
B = inv [G]
C = GT
D = (:,2)
E = G(1:3,2:4)
Matriks - matriks yang disediakan oleh matlab adalah:
Eye(n) : membuat matriks identitas dengan ukuran n x n
Zeros(n) : membuat matriks nol dengan ukuran n x n
Ones(n) : membuat matriks satuan dengan ukuran n x n
Trill(n) : membuat matriks segitiga bawah dari matriks x
Triu(n) : membuat matriks segitiga atas dari matriks x
APLIKASI GRAFIKLATIHAN 2AGrafik 2D sebagai contoh sbb:
Membuat grafik sinus dan cosinus
x=0:0.001:2*piy=sin(x)
z=cos(x)
plot (x,y,'r-',x,z,'g--');
grid;
title('grafik fungsi sinus (x) dan cosinus(x)');
xlabel('nilai x');
ylabel('cos (x)atau sin (x)');
shg
LATIHAN 2B
Grafik 3 Dimensix=-8:0.05:8;
y=x;
[x,y]=meshgrid(x,y);
R=sqrt(x.^2+y.^2)+eps;
z=sin(R)./R;
mesh (z) ;
title('grafik sin (R)/R');
shg
TUGAS 11 Untuk dapat mendalami lebih materi kali ini selesaikan soal dibawah ini untuk mencarigrafik korelasi waktu dan tempatur pada data dibawah ini.
Waktu (detik) Suhu (oF)
01
23456789
10
54.258.5
63.864.267.371.588.390.190.689.590.4
-
8/13/2019 Analisa Numerik_Matlab
7/30
Panduan Praktikum Metode Numerik dengan Matlab
7
2. buatlah grafik 3 dimensi dari data matriks dibawah ini:
11111111
11555511
115105511
11555511
11111111
11111111
G
dengan perintah mesh(G)
mesh (G)
title (Grafik 3 dimensi);
xlabel (Harga X)
ylabel (Harga Y)
zlabel (Harga Z)pause
pcolor (G)
axis off
shading flat
Setelah menyelesaikan program diatas fahami dan buat diagram alir untuk lebih mamahamilogikanya.
Tipe garis, tanda, dan warna
Dalam penggambaran grafik pada matlab dapat digunakan karakter - karakter khusussebagai simol garis, tanda serta warna dari symbol yang digunakan.Symbol serta wana yang digunakan antara lain adalah :
Symbol Warna Symbol Tipe Garis
YMCRGBWK
KuningMagentaCyanMerahHijauBiruPutihHitam
OX+*
:
Titik ()Lingkaran (o)Tanda (x)Tanda (+)Tanda (*)Garis penuh ()Tanda (:)Garis titik ( )Garis putus-putus ( )
Perintah:plot : membuat grafik 2 dimensi
mesh : membuat grafik 3 dimensi
xlabel : memberi nama sumbu X
ylabel : memberi nama sumbu Y
zlabel : memberi nama sumbu Z
title : memberi judul grafik
-
8/13/2019 Analisa Numerik_Matlab
8/30
Panduan Praktikum Metode Numerik dengan Matlab
8
OPERASI MATEMATIK
Operator Matematik :
Symbol Keterangan Contoh
+ jumlah (plus) C=A+B- kurang (minus) D=A-B
* Perkalian E=A*B
/ Pembagian F=A/B
^ Pangkat K=A^2
Operator ini dapat digunakan pada skalar, vector maupun matrik ( pada operasi tertentusaja ). Jika dikenakan pada skalar maka berlaku seperti aljabar biasa.Coba lakukan perintah dibawah ini dan perhatikan hasil operasioperasi :
a = [ 1 2 3 4 5 ];
b = [ 6 7 2 5 3 ];
c = 2;
A = a + b
B = a + c
C = a^c
D = a.*b
E = b a
F = a./b
G = a.\b
H = b.^a
Sedangkan untuk operasi dibawah ini tidak dapat dilakukan.Coba terangkan:
a*b
a/b
a\b
b^a
TUGAS 2
1. A = [2 -1 5 0] B = [3 2 -1 4]1. A B2. B + A 33. 2 * A + A.^b4. B./A
5. B.\A6. A.^B7. (2).^B + A8. 2*B/3.0*A
2.
64
32
34
75DC
1. C * D
2. C + D3. C/D4. C\D
5. D C
6. C.*D7. C./D8. C.\D
-
8/13/2019 Analisa Numerik_Matlab
9/30
Panduan Praktikum Metode Numerik dengan Matlab
9
BAB IIIOPERASI RELASI
Operator< Lebih kecil
Lebih besar>= Lebih besar atau sama dengan== Sama dengan~= Tidak sama dengan
Operasi relasi ini sangat penting untuk aliran program yang menggunakan statementWHILE dan IF.
Kontrol Aliran Program:Dalam Matlab. Control aliran program itu terdiri dari FOR LOOPS, WHILE LOOPS, dan IF-ELSE-END.
FOR LOOPS
format penulisan secara umum statement ini adalah sebagai berikut :
for Var= Nilai Awal : Pertambahan :Ni lai Akhir
perintah / baris yang akan diulangend
Contoh:for n = 1 : 10
x(n) = sin (n/10);
end
x (lihat hasil nilai x)
Selain itu juga dapat digunakan perintah FOR LOOPS dalam FOR LOOPS
Contoh:for n = 1 : 5
for m = 5 : -1 :1
A(n,m) = n^2 + m^2
end;
end;
WHILE LOOPSPerintah pengulangan tetapi diketahui jumlah pengulangannya, sehingga diperlukan syaratbatas (syarat yang harus dipenuhi).
whileKondis i
perintahend
Contoh:>> num = 0; eps = 1;
while (1+eps) > 1
num = num + 1
end
>> num
>> eps
-
8/13/2019 Analisa Numerik_Matlab
10/30
Panduan Praktikum Metode Numerik dengan Matlab
10
IFELSEEND
Melakukan perintah dengan syarat batas :a. If dengan satu alternatif
if ekspresi
perintahend
Keterngan :
Baris perintah akan dikerjakan jika ekspresi bernilai benar, namun jika tidak makabaris perintah akan dilewatkan.
b. IF dengan banyak pilihan
if ekspresi 1perintah 1elseif ekspresi 2
perintah 2elseif ekspresi 2
perintah 2end;
end;end.
Keterangan
Baris perintah 1, akan dikerjakan jika ekspresi 1, bernilai benar, namun jika ekspresi1, salah maka program akan melakukan pengecekan pada ekspresi berkutnya, halini dilakukan sampai ditemukan salah satu ekspresi yang bernilai benar, atau tidaksama sekali dan program akan keluar dari perputaran IF, yang telah dibuat
Cobalah contoh dibawah ini untuk IF dengan 1 alternatif pilihan :>> a = [2, 5, 6, 7, 8]
>> n = max (size (a))>> if n > 0
rata = a / nend.
Setelah anda selesai mencoba contoh tersebut, buatlah program Untuk IF dengan lebih dari4 pilihan
LATIHAN 3A
Mencari akar:Dalam kesempatan ini anda akan diperkenalkan :
- Penggunaan editor- Membuka dan menutup Matlab
Program berikut ini adalah untuk menghitung akar kuadrat dari bilangan file akar m denganmemasukkan program ini (program dibuat dalam editor).
x = a;eror = 1;k = 1;while eror > 0.000001
y = 0.5 * (x + a/x);sbx (k) = x;
-
8/13/2019 Analisa Numerik_Matlab
11/30
Panduan Praktikum Metode Numerik dengan Matlab
11
sby (k) = y;eror = abs (xy);x = y;k = k + 1;
end
xplot (sbx, sby);
Sesudah program diatas disimpan (dilakukan dalam editor), kemudian kembali ke Matlabdan lakukan :
1. >> jalankan file program yang sudah dibuat, dengan menuliskan nama file yangtelah disimpan.
2. >>a = 10;3. >>akar
Pelajarilah hasil dan makna dari tiap baris dalam program ini. Catatlah semua hasil yangperlu dalam buku catatan praktikum anda.
LATIHAN 3B (METODE NEWTON RAPHSON)Mencari akar polinominal menggunakan metode NEWTON, dimana pada metode ini harusdiberikan turunan dari polinominal tersebut. Untuk lebih memahami metode ini perhatikangrafik berikut ini :
Dari grafik diatas, nilai Xiadalah nilai Xpada perkiraan awal sedangkan Xi+ 1,merupakannilai pendekatan Xberikutnya, dengan menggunakan konsep segitiga maka kita dapatkannilai dari Xi+ 1dengan persamaan sebagai berikut :
)('
)(1
i
i
iixf
xfXX
Dalam program dibawah ini diperkenalkan penggunaan Prosedur Function dalam Matlabguna menyelesaikan metode NEWTON pada pembahasan diatas .
Buat program dibawah ini pada matlab editor atau notepad pada Microsoft windows:
% nama file zfungsi.m
% program untuk menghitung f(x) dan f(x) dengan x diketahui
% program in disertakan prosedur function
function [f,ff] = zfungsi(x)
XiXi+1
f(xi)-0
f(xi)
f(xi)
X
f(x)
-
8/13/2019 Analisa Numerik_Matlab
12/30
Panduan Praktikum Metode Numerik dengan Matlab
12
f = x^5 2*x^4 + 3*x*3 -4*x^2 + 5*x 6
ff= 4*x^4 - 8*x*3 + 9*x^2 - 8*x 5
Simpan program tersebut dengan nama file zfungsi.m.Setelah itu siapkan file baru lagi dan simpan dengan nama file znewton.mdibawah ini:
% nama file znewton.m
% sebagai program induk untuk memanggil program zfungsi.m
% untuk mencari akar dari f(x) dengan metode Newton
% nilai tafsiran awal x dimasukkan dulu
k = l
[f,ff] = zfungsi(x)
while abs(f) > 0.0001
y = x f/ff
sbx(k) = x;
sby(k) = y;
k = k + 1;
x = y;
[f,ff] = zfungsi(x);end;
x;
plot(sbx,sby)
Pelajarilah hasil dan makna dari tiap baris dalam program ini. Catatlah semua logika yangada dan buat diagram alirnya. Untuk lebih memahami contoh diatas, kerjakan contoh soaldibawah ini
TUGAS 3
1. Sebuah batang Uniform diberi beban seperti gambar:Persamaan lendutan yang terjadi pada batang
xLxLxEL
Wy 43250 2
120
L = 180 inch, E = 2,9x107I = 723 inch4W0= 12 kips/ftDengan menggunakan metode Newton tentukan posisi x dimana y mencapai max(tentukan x dimana dy/dx = 0)
2. Persamaan Gas Ideal dari persamaan Vander Wals sbb:
RTbvv
ap
2
Dimana:
v =n
V
V = molal volume
y
x
W0
-
8/13/2019 Analisa Numerik_Matlab
13/30
Panduan Praktikum Metode Numerik dengan Matlab
13
n = bilangan dari mol (bilangan Avogadro)a & b adalah konstanta (diperoleh secara empiris)R = 0.082054 (atm/molK)
Untuk karbondioksida:
a = 3,592b = 0,09267
Untuk oksigen:a = 1,36b = 0,031383
Jika tekanan yang digunakan 1, 10, 100 atm untuk kombinasi suhu 300, 500, dan 700K,tentukan volume molal untuk gas oksigen dan gas karbondioksida.
LATIHAN 3C (Metode Bisection)Mencari akar persamaan dengan metode BISECTION / BAGI DUA, pada metode ini
nilai yang akan dicari diapit oleh dua nilai X yang diambil dari perkiraan / aproksimasidimana nilai tersebut adalah X
lsebagai batas bawah, X
usebagai batas atas dan X
rsebagai
nilai tengan dari X, secara sepintas metode ini dapat dijelaskan dengan langkah sebagaiberikut :1. Buat Nilai perkiraan untuk nilai Xl dan Xu dengan asumsi X yang dicari berada
diantaranya2. Cek nilai dari f(xl).f(xu)
-
8/13/2019 Analisa Numerik_Matlab
14/30
Panduan Praktikum Metode Numerik dengan Matlab
14
Function[Fl]=fungsi2l(tl)Y=0.3;% M= Massa BendaM=1200000;% K= Konstanta dari pegas yang digunakan
K=125000000;% C= Koefisien hambatan UdaraC=14000000W=sqrt(k/m)N=c/(2*m)F1=y*exp(-n*tl)*(cos(w*tl)+n*sin(w*tl)/w);
Simpan program diatas dengan nama fungsi2l.m
Buat program untuk menghitung batas atas yang sudah diketahui kita masukkan pada
Function[Fu]=fungsi2u(tu)Y=0.3;% M= Massa BendaM=1200000;% K= Konstanta dari pegas yang digunakanK=125000000;% C= Koefisien hambatan UdaraC=14000000W=sqrt(k/m)N=c/(2*m)Fu=y*exp(-n*tl)*(cos(w*tl)+n*sin(w*tl)/w);
Simpan program diatas dengan nama fungsi2u.mSekarang buat program untuk menghitung nilai F untuk menghitung nilai rata-rata, yangdidapat dari batas atas (fungsi2u.m) dan batas bawah (fungsi2l.m)
Function[Fu]=fungsi2u(tu)Y=0.3;% M= Massa BendaM=1200000;% K= Konstanta dari pegas yang digunakanK=125000000;% C= Koefisien hambatan UdaraC=14000000W=sqrt(k/m)N=c/(2*m)F=y*exp(-n*tl)*(cos(w*tl)+n*sin(w*tl)/w);
Simpan program diatas dengan nama fungsi2.m
Satelah file pendukung diatas selesai maka siapkan file yang berfungsi untuk melakukanbagi dua.
ClcTl=input( Batas bawah :);Tu=input( Batas atas:);K=0;Eror=1;[Fl]=fungsi2l(tl)[Fu]=fungsi2u(tu)
-
8/13/2019 Analisa Numerik_Matlab
15/30
Panduan Praktikum Metode Numerik dengan Matlab
15
while eror>0.001;tr=(tl+tu)/2;k=k+1t=tr;[F]=fungsi2(t);
eror=abs((tu-tl)/(tu+tl));sbx(k)=t;sby(k)=F;test=F*Fu;if test
-
8/13/2019 Analisa Numerik_Matlab
16/30
Panduan Praktikum Metode Numerik dengan Matlab
16
Simpan program diatas dengan nama fungsi2l.m% Untuk rata-rata ( Fr)
Function[Fr]=fungsi3r(tl)Y=0.3;% M= Massa Benda
M=1200000;% K= Konstanta dari pegas yang digunakanK=125000000;% C= Koefisien hambatan UdaraC=14000000W=sqrt(k/m)N=c/(2*m)Fr=y*exp(-n*tl)*(cos(w*tl)+n*sin(w*tl)/w);
Satelah file pendukung diatas selesai maka siapkan file yang berfungsi untuk melakukanperhitungan secara keseluruhan .
ClcTl=input( Batas bawah :);Tu=input( Batas atas:);K=0;Eror=1;[Fl]=fungsi3l(tl)[Fu]=fungsi3u(tu)while eror>0.001;
tr=(tu-(Fu*(tl-tu)/(Fl-Fu));eror=abs((tr-t)/tr)endt=tr;[Fr]=fungsi3l(t);k=k+1;sbx(k)=t;
sby(k)=Fr;if Fr*Futr;end
[Fl]=fungsi3l(tl);[Fu]=fungsi3u(tu);endplot(sbx,sby)t
%Akhir Program
Latihan 3E (Metode Secant)Metode ini hampir sama dengan metode Newton Raphson, namun pada metode ini kitaharus membuat dua batas sebagai nilai awal dan nilai akhir seperti pada metode bisection,secara gafis dapat dilihat pada gambar berikut :
Dengan metode interpolasi kita dapatkan :)()(
)(
afbf
bfbc
Karena
-
8/13/2019 Analisa Numerik_Matlab
17/30
Panduan Praktikum Metode Numerik dengan Matlab
17
ac
af
cb
bf
)()(
Dalam Metode ini, nilai c adalah nilai perkiraan baru berdasarkan perkiraan dari nilai a dan bsebelumnya. Sehingga untuk nilai Xi+1sebagai nilai perkiraan berikutnya adalah :
).()()(
)(1
1
1
iiii
iii xx
xfxf
xfXX
f(x)
xb
f(b)
ca
f(a)
-
8/13/2019 Analisa Numerik_Matlab
18/30
-
8/13/2019 Analisa Numerik_Matlab
19/30
Panduan Praktikum Metode Numerik dengan Matlab
19
LATIHAN 4AUntuk mempermudah pemahaman lakukanlah petunjuk dibawah ini untuk menyelesaikansistem persamaan linier berikut ini :
3x1 + 2x2 x3 = 10-x1 + 3x22x3 = 5
x1+ x2 x3 = 1Persamaan tersebut dapat ditulis dalam bentuk :[A] * [X] = [B]
lebih detailnya adalah :
Penyelesaian secarac program pada matlab adalah:A = [3, 2, -1; -1, 3, 2; 1, -1, -1];
B = [10, 5, 1];
C = inv (A); % C adalah invers dari AX = C * B
Note:Bandingkan jika anda menyelesaikannya, dengan program lain semisal Qbasic atau Turbo Pascal
Invers dengan menggunakan metode SWS ( Sherman Morrison Woodbury)
Metode SMW pada dasarnya adalah mencari selisih matriks tersebut denganmatriks lain yang sudah diketahui inversnya. Maka yang paling mudah, matriks yang
digunakan sebagai acuan adalah matriks [I].Relasi matriks SMW adalah :
BUAV ** 1 atau UAVB ** 1
LATIHAN 4B
Program mencari invers dengan metode SMWfor k = 1 : n:
z = 1 + 1 + a (k,:) * c(:, k);
function [A] = invers SMW [A}
%Mencari invers dengan metode SMW
%Matriks yang dicari dimasukkan
[m, n] = size(a);
c = a eye (n, n);
a = eye (n, n)
a = a a * c(:, k) * a (k, :)/z;end;
Sesudah disimpan siapkan file lain seperti dibawah ini, untuk menyelesaikan persamaandiatas :
A = [3, 2, -1; -1, 3, 2; 1, -1, -1];
B = [10, 5, 1];
X = C * B
3 2 1[A] = -1 3 2
1 1 1
X1, [X] = X2
X3
10, [B] = 5
1
-
8/13/2019 Analisa Numerik_Matlab
20/30
Panduan Praktikum Metode Numerik dengan Matlab
20
Apakah yang anda dapatkan dari kajian diatas ?Untuk mengetahui beban komputasi dari program diatas gunakan flop. Pada akhir tugas ini,diharapkan saudara dapat atau mampu memetik makna komputasi dalam soalpenyelesaian matriks dengan basis matriks.
Perlu diingat !Jangan mengerjakan tugas selanjutnya apabila saudara belum paham benar tentang program ini
TUGAS 4Untuk lebih memahami selesaikanlah persamaan dibawah ini dengan program diatas :
1) -2x1 + x2 = -3 5. ) 3x1 + 2x2x3 = -3x1 + x2 = 3 -x1 + 3x22x3 = 5
x1+ x2x3 = -1
2) -2x1 + x2 = -3 6) -3x1 + 2x2x3 = 1-2x1 + x2 = 1 -x1 + 3x2 + 2x3 = 1
x1+ x2x3 = 1
3) -2x1 + x2 = -3 7) 10x1 + 7x2 = 7-6x1 + x2 = 9 -3x1 + 2x26x3 = 4
5x1+ x2+ 5x3 = 6
4) -2x1 + x2 = -3 8) 2x1 + 7x2+ x3 - 2x4 = 16-2x1 + x2 = -3,0001 x1 + 4x2 x3 2x4 = 5
3x1- 10x22x3+ 5x4= -15
Metode Eliminasi GaussSelain metode Invers matrik kita dapat menggunakan metode Eliminasi Gauss dalammenyelesaikan sistem persamaan linier Pada pembahasan kita kali ini, metode EliminasiGauss didekati dengan menggunakan sifat khusus dari matrik gauss.
Untuk lebih jelasnya perhatikan ilistrasi matematis dibawah ini :
a11x1 + a12x2 + a13x3 + + a1nxn = c1 .. pers :G.1a21x1 + a22x2 + a23x3 + + a2nxn = c2 .. pers :G.2
=
=
=
an1x1 + an2x2 + an3x3 + + annxn = cn .. pers :G.3
dimana :a11, a12, a13, an1 danan2, an3, an4, ann, sedangkan x1, x2, x3, , xn adalah variabel yangnilainya belum diketahui. Sistem persamaan aljabar linier dapat ditulis dalam bentuk matrik :
[A] * [X] = [C]
dengan [A] =
a11 a12 a13 a1na21 a22 a23 a2n
an1 an2 an3 ann
-
8/13/2019 Analisa Numerik_Matlab
21/30
Panduan Praktikum Metode Numerik dengan Matlab
21
Matrik [A], disebut sebagai matrik koefisienPada bagian ini akan dibahas beberapa penyelesaian sistem dari persamaan tersebutsecara simultan sehingga nilai dari beberapa variabel tersebut dapat diketahi.
Langkah 1Kita lakukan eliminasi maju yang bertujuan untuk membentuk matrik segitiga atas(UperMatrik) dari matrik yang diperlebar untuk untuk system persamaan yang akan diselesaikan.Langkah awal yang kita lakukan adalah mengeliminasi variabel x1dari persamaan kedua,kemudian ketiga hingga persamaan ke n. Kalikan persamaan baris pertama dasi contoh
diatas dengan )(11
21aa sehingga anda dapatkan persamaan:
12
11
211
11
21212
11
21121 ....... c
a
axa
a
axa
a
axa nn .. pers G.4
kurangkan persamaan G.4 dari persamaan G.2 agar diperoleh persamaan baru :
1
11
21212
11
212212
11
2122 ....... c
a
acxa
a
aaxa
a
aa nn
kita sederhanakan persamaan diatas, diperoleh :
22222 '.'.....' cxaxa nn tanda aksen pada persamaan ini menandakan bahwa nilainya telah mengalami perubahan.Langkah langkah ini kita ulangi untuk persamaan ketiga keempat dan seterusnya. Misalkanpersamaan G.1 dikalikan dengan a31/a11dan hasilnya dikurangkan dari persamaan ketigasehingga menghasilkan system persamaan berikut :
a11x1 + a12x2 + a13x3 + + a1nxn = c1 .... pers :G.4.aa22x2+ a23x3+ + a2nxn = c2 ..pers :G.4.ba32x2+ a33x3+ + a3nxn = c3 ..pers :G.4.c
=
=
=
an2x2 + an3x3 + + annxn = cn .. pers :G.4.d
untuk langkah selanjutnya, persamaan G.1 disebut sebagai persamaan poros(pivot), dana11 sebagai koefisien poros. Proses pembagian seperti a12/a11 atau a31/a11 disebutnormalisasi. Pada proses normalisasi tersebut dapat saja terjadi pembagian dengannol(tidak terdefinisi), sehingga metode ini disebut dengan Eliminasi gauss NaifSekarang kita lanjutkan untuk mengeliminasi x2dari persamaan G.4b, maka persamaan inikita jadikan sebagai persamaan poros (pivot) sebagaimana pada langkah sebelumnya(langkah saat eliminasi x1) Yaitu dengan mengalikan persamaan G.4b dengan a32/a22 danmengurangkan hasilnya dengan dari persamaan G.4.c. Kemudian lakukan eliminasi yang
x1 c1
x2 c2[X] = ,[C] =
xn cn
-
8/13/2019 Analisa Numerik_Matlab
22/30
Panduan Praktikum Metode Numerik dengan Matlab
22
sama untuk persamaan keempat, kelima dan seterunya sehingga dihasilkan persamaansebagai berikut :
a11x1 + a12x2 + a13x3 + + a1nxn = c1a22x2 + a23x3 + + a2nxn = c2
a33x3+ + a3nxn = c3 = an3x3 + + annxn = cn
Langkah eliminasi dapat diteruskan menggunakan persamaan lain dibawahnya sebagaipersamaan poros. langkah ini berakhir sampai pada persamaan ke(n-1), untukmengeliminasi variabel Xn-1dari persamaan ke-n. setelah hal ini selesai anda lakukan makaakan terbentuk suatu system persamaan matrik segitiga atas :
a11x1 + a12x2 + a13x3 + + a1nxn = c1 G.5aa22x2 + a23x3 + + a2nxn = c2 G.5b
a33x3+ + a3nxn = c3 G.5c =
)1()1( nnnn
nn cxa G.5d
Setelah kita dapatkan matrik segitiga atas, maka kita dapat lakukan eliminasi mau untukmendapatkan nilai-nilai x1,x2 serta x3. Dari persamaan G.5d dengan mudah kita bisadapatkan nilai dari xn
)1(
)1(
n
nn
n
n
na
cx
hasil ini kita subtitusikan ke persamaan ke (n-1) untuk memperoleh nilai x(n-1). Langkahsubtitusi ini dilanjutkan terus sampai persamaan ke-1 untuk memperoleh nilai x1. Secaraumum langkah subtitusi ini dapat dituliskan sebagai berikut :
)1(
1
)1()1(
1
1
iii
n
ij
j
i
ij
i
a
xac
X
Jika anda masih sulit memahami, perhatikan sekali lagi ilustrasi berikut ini :Misalkan kita mempunyai system persamaan dengan dimensi matrik adalah (3,3)
3
2
1
3
2
1
333231
232221
131211
c
c
c
x
x
x
aaa
aaa
aaa
Jika matrik ini kita perlebar maka kita dapatkan matrik baru :
3
2
1
333231
232221
131211
c
c
c
aaa
aaa
aaa
setelah kita lakukan langkah eliminasi maju akan dihasilkan matrik segitiga atas sebagaiberikut :
3
2
1
33
2322
131211
"
'
"00
''0
c
c
c
a
aa
aaa
-
8/13/2019 Analisa Numerik_Matlab
23/30
Panduan Praktikum Metode Numerik dengan Matlab
23
Langkah 2Kemudian kita lakukan subtitusi balik untuk mendapatkan nilai :
"
33
"
3
3a
cx
22
323
"
2
2'
.'
a
xacx
11
3132121
3a
xaxacx
Untuk menyelesaikan permasalahan eliminasi gauss, secara komputasi coba anda kerjakanprogram latihan 4c, pada dasarnya program ini belum sempurna untuk itu lakukanpembenahan pada program sehingga masil matematis dan program terdapat kesamaan.
LATIHAN 4C
%Program Eliminasi Gauss dengan pertukaran baris%Matriks a ukuran [n, n] dimasukkan
%Matriks b ukuran [1, n] dimasukkan
[m, n] = size(a);
for i = 1 : 1 : (n 1)
g = eye (n, n);
j = i
while a(i, j) == 0
c = a(j, :);
d = b(j);
a(j, :) = a(j+1, :);
b(j) = b(j+1);
a(j+1, :) = c;
b(j+1) = d;end;
for k = 1 :1 : n
if i == k
g(k, i) = a(k, i) / a(i, i);
else
g(k, i) = -a(k, i) / a(i, i);
end;
a = g * a;
b = g * b;
end;
%Untuk melihat hasil akhir Eliminasi Gauss
a %matriks segitiga atasb
%Mencari solusi X1, X2, , Xn
x = zeros (n, 1);
for i = n : -1 : 1
c = 0;
for j = 1 : 1 :n
if i ~= j
c = c + ( a(i, j) * x (j));
-
8/13/2019 Analisa Numerik_Matlab
24/30
Panduan Praktikum Metode Numerik dengan Matlab
24
end;
end;
x(i, 1) = (b(i) c) / a (i, i);
end;
%Menampilkan hasilnya
x
Jika sudah selesai simpan dengan nama file GAUSS.M. Setelah itu kerjakan pada promptMatlab :
a = [ 1, 4, -1, 1; 2, 7, 1, -2; 1, 4, -1, 2; 3, -10, -2, 5]b = [2, 16, 1, -15]gauss
Nilai x adalah solusi dari persamaan diatas
TUGAS 5
Pada tugas ini anda diharapkan lebih memahami penyelesaian persoalan numerik denganmetode matriks (terutama memahami logika numerik ke dalam logika pemrograman). Untuklebih memahami logika pemrograman di atas selesaikan permasalahan di bawah ini.
1. Analisa Struktur
Tentukan besarnya : F1, F2, F3, H2, V2, V3
2. Elektronika Dasar
Tentukan besarnya : i1, i2, i3
V2
H2
V3
F2
F3
F2
1000 lb
300
900
600
1
23
R1=1
R2=1
R5=1
R3=1
R4=1
V2=5V
V1=5V
+ +
i1 i3i2- -
-
8/13/2019 Analisa Numerik_Matlab
25/30
Panduan Praktikum Metode Numerik dengan Matlab
25
Regresi Linier Dengn Metode Least Square
Regresi ini sangat diperlukan untuk mencari kurva g(x) yang dapat memiliki titik dari hasil
percobaan. Perhatikan gambar berikut :
Dengan Metode Leaast Square Regresi Linier (orde 1) diperoleh :
xbybxn
yn
a ii 11
dan
22
ii
iiii
xxn
yxyxnb
dimana :
n = jumlah data percobaan
Sehingga diperoleh persamaan linierisasi :
g(x) = a + bx
Agar lebih mudah untuk mengembangkan logika kita ke regresi yang lebih besar hal
tersebut dapat dibentuk dalam matrik :
ixn
2
i
i
x
x
2
1
a
a=
ii
i
yx
y
dimana:
a1= a
a2= b
Untuk menentukan a1dan a2, setelah ketemu bentuk matrik, dapat digunakan bentuk
metode invers atau metode matriks Gauss
f x
x
g(x)
-
8/13/2019 Analisa Numerik_Matlab
26/30
Panduan Praktikum Metode Numerik dengan Matlab
26
LATIHAN 4D
Program
% Masukkan data pada matriks [dat] dengan ukuran [n, 2]% dat1 sebagai harga x dan dat2 sebagai harga x dan dat2 sebagai harga y
[n,m] = size (data)
x = sum (dat(:,1)); % x = x
y = sum (dat(:,2)); % y = y x2 = dat (:,1) *. dat (:,1); % x2 = [x12]
sx2 = sum (x2);
xy = data (:,1) *. dat (:,2);
sxy = sum (xy);
a = [n,x ; x, sx2];
b = [y,sxy];gauss
a = x(1)
b = x(2)
k = zeros (n,1);
for i = 1 : 1 : n
h(i) = a + (b* dat (I,1))
end;
% Untuk menggambar
hor = dat (:,1)';
ver = dat (:,2)';
hasil = h';
plot (hor, ver, '0',hor, hasil);
Sebagai data gunakan data percobaan berikut :
x 0 1 2 3 4 5
y 0 20 60 68 77 110
Regrasi Orde 2
Untuk Regresi Orde 2 matriks yang digunakan dibentuk sebagai berikut :
2
i
i
x
x
n
3
2
i
i
i
x
x
i
ii
i
yx
yx
y
2
1
g(x) = a0+ a1 x + a2 x2
-
8/13/2019 Analisa Numerik_Matlab
27/30
Panduan Praktikum Metode Numerik dengan Matlab
27
LATIHAN 4E
% Program Regresi Polinomial orde 2
% Masukkan data pada matriks [dat}
[n,m] = size (dat); % n jumlah data
x = zeros (n,4); % 4 asalnya dari 2* orde regresi
y = zeros (n,4);
A = zeros (1,5); % 5 asalnya dari (2*orde reg) + 1
B = zeros (1,3); % 3 asalnya dari orde regresi + 1
a = zeros (3,3);
% Membuat matriks Xi, Xi2,Xi3,Xi4pada matriks X
% Matriks matriks Yi, XiYi, Xi2Yi pada matris Y
for i = 1 : 1 : n
for j = 1:1:4
X (i,j) = dat (i,1)^j;
end;
for j = 0 : 1 : 2
A(1,i+1) = (dat (i,1)^j)* dat (I,2)
end;
end;
% membuat matriks A = 432 ,,, XiXiXiXin % membuat matriks B = YiXiXiYiYi 2,,
A(1,1) = n;
for i=1:1:4
A(1,i+1) = sum(X(:,i);
end;
for i=1:1:3
B(1,i) = sum(Y(:I));
end;
% membentuk matriks untuk penyelesaian garis
for =1:1:3
a(i,:) = (1,i:1:(i+2));
end;
b = B';
n = bar;
gauss;
-
8/13/2019 Analisa Numerik_Matlab
28/30
Panduan Praktikum Metode Numerik dengan Matlab
28
% menggambar grafik data dan hasil regresi orde 2
% koefisien hasil regresi ada pada matriks X
[m,n] = size(X);
Y = zeros (3,1);
Z = zeros (1,bar);
% mencari data untuk plot dari hasil regresi yang disimpan
% pada matriks z
for i=1:1:bar
for j = 0:1:2
Y(j+1,1) = X(j+1,1) * (dat(i,1)^j);
end;
z(1,i) = sum (Y(:,1));
end;
% membuat grafik antara data sebenarnya dengan data hasil
% regresi
hor = dat(:,1)';
ver = dat(:,2)';
plot (hor,ver,'0',hor,Z);
grid;
Modifikasi program diatas sehingga program yang anda buat merupakan program yang
fleksibel (orde) regresi dapat ditentukan oleh programer tanpa mengubah program. Sebagaipetunjuk orde regresi tentukan sebagai masukan. Dimensi masing-masing matriks sesuai
dengan orde regresi, begitu juga perintah/statement forend.
Bandingkan program yang anda buat dengan program di bawah ini:
X = []
Y = []
koef = polyfit (X,Y,1)
f = polyval (polyfit (X,Y,1),X);
plot(X,Y,'r0',X,f,'b-');
-
8/13/2019 Analisa Numerik_Matlab
29/30
Panduan Praktikum Metode Numerik dengan Matlab
29
BAB VMetode Runge-Kutta
Metode yang paling populer untuk integrasi sebuah persamaan differensial adalah Runge-Kutta. Metode Runge-Kutta menggunakan pendekatan deret Taylor. Di dalam Matlab
tersedia fungsi Runge-Kutta menggunakan perintah orde 2,3,4, dan 5. Yaitu orde 2,3 danorde 4,5. Sebuah massa pegas:
02
2
kxdt
dxb
dt
xdm
m
kxx
m
bx
kxxbxm
0
Persamaan diatas dapat diubah :
12
211
xx
xm
kx
m
bx
Dengan
21
21
2
xx
xx
xx
LATIHAN 5A
23),('
y
exyxgy
x
LATIHAN 5BProgram:
function xdot = maspeg(t,x)m = 0,5; b = 0,5:k = 3xdot = zeros(2,1);
xdot (1) = );2(*)1(* xm
k
xm
b
xdot (2) = x(1);
Untuk interval 0 20t dengan orde 23
to= 0; tf= 20;xo= [0 0,25];
m
Pegas(k)
Massa (m)beban
-
8/13/2019 Analisa Numerik_Matlab
30/30