Download - Pengantar Matlab (P.alex)
-
PengantarMATLAB denganAplikasiFisikaOleh: ALEX HARIJANTO
PRODI FISIKA JURUSAN PEND. MIPAFKIP UNIVERSITAS JEMBER2013
-
Alex Harijanto
MODUL 1
OPERASI-OPERASI ARRAY
1. TUJUAN
a. Membuat array sederhana
b. Mengenal pengalamatan array (array addressing)
c. Mengenal kontruksi array (array contruction)
d. Mengenal operasi matematika skalar-array
e. Mengenal operasi matematika array-array
f. Mengenal orientasi array (array orientation)
2. PELAKSANAAN KOMPUTASI
Hal-hal yang perlu diperhatikan dalam melakukan komputasi menggunakan
MATLAB dalam praktikum ini, yaitu:
- tuliskan setiap pernyataan atau perintah MATLAB yang ditulis setelah tanda
>>
- tekan kunci ENTER untuk mengekskusi perintah MATLAB dan memperoleh
hasilnya pada layar monitor (jendela MATLAB)
- bila tidak menginginkan hasil ekskusi pada layar monitor, tuliskan titik-
koma (;) pada setiap akhir perintah yang akan diekskusi
- manfaatkan fasilitas help jika ingin mengetahui perintah-perintah MATLAB,
dan mengembangkan kemampuan dalam menggunakan perintah-perintah
MATLAB lainnya
a. Pembuatan array sederhana:
Cobalah membuat array sederhana dari x memakai MATLAB, dengan cara
sebagai berikut:
>>x=[0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pipi]
-
2kemudian amati hasilnya, lanjutkan mencari nilai y=sin(x) dengan perintah
berikut ini
>>y = sin(x)
amati hasilnya
b. Pengalamatan array
Lanjutkan pekerjaan a. diatas untuk mencari elemen-elemen x dengan
mencoba perintah-perintah berikut ini:
>>x(3)>>x(5)>>x(1:5)>>y(3:-1:1)>>x(2:2:7)>>y([8 2 9 1])
Amatilah apa yang telah dihasilkan MATLAB diatas:
c. Konstruksi array
Tuliskan perintah-perintah MATLAB kemudian lakukan ekskusi untuk
mendapatkan array dari variabel x
>>x=(0:0.1:1)*pi>>x=linspace(0,pi,11)
lanjutkan dengan perintah-perintah berikut
>> logspace(0,2,11)>>a=1:5, b=1:2:9
>>c = [a b]>>d=[a(1:2:5) 1 0 1]
-
3d. Operasi matematika skalar-array
Pada pekerjaan sebelumnya, telah dilakukan operasi perkalian antara array
dari x dengan skalar , dimana masing-masing elemen array dikalikan dengan. Dalam opersi penjumlahan, pengurangan, perkalian dan pembagian arraydengan sebuah skalar dilakukan dengan operasi terhadap semua anggota
array.
Kerjakan operasi berikut (lanjutan dari pekerjaan sebelumnya)
>>a-2
>>2*a-1
e. Operasi matematika array-array
Untuk mendapatkan kembali variabel a dan b dari pekerjaan sebelumnya
lakukan ekskusi berikut
>>a,b
>>a+b
>>ans-b
>>2*a-b
>>a.*b
>>a*b
>>a./b>>a.\b
Operasi berikut ini berbeda dengan operasi pembagian sebelumnya,
>>a/b
memanggil kembali (recall) variabel a dan b sebelumnya
>>a, b
-
4Operasi perpangkatan
>>a.^2
>>2*a.^2
>>b.^a
>>b.^a
>>b.^(a-3)
f. Orientasi array
Pada pekerjaan-pekerjaan sebelumnya, sebuah array memiliki sebuah baris
dan banyak kolom, array semacam ini biasa disebut vektor baris , karena
berorientasi pada baris. Dengan MATLAB, array yang berorientasi kolom dapat
dibuat, array yang berorientasi kolom biasa disebut vektor kolom. Vektor
kolom memiliki banyak baris dan sebuah kolom.
Kerjakan operasi berikut untuk mendapatkan vektor-vektor baris dan kolom:
>>c=[1; 2; 3; 4; 5]>>a=1:5
>>b= a>>c= b>>c= a.>>d=a+i*a
>>e=d>>f=d.
Amati hasil-hasil operasi diatas.
Jika sebuah array memiliki banyak baris dan banyak kolom, maka array
tersebut berupa daftar bilangan-bilangan berbentuk bidang persegi panjang
dan lebih dikenal dengan matriks atau array 2 dimensi.
Berikut adalah operasi pembuatan matriks (array dengan banyak baris dan
banyak kolom)
-
5 g=[1 2 3 4;5 6 7 8] g=[1 2 3 45 6 7 8
9 10 11 12]
h=[1,2,3; 4,5,6; 7,8,9]
Cobalah
k=[1 2 3;4 5 6 7]
untuk mengetahui variabel apa saja yang telah digunakan dalam ruang kerja
MATLAB saat ini lakukan operasi berikut:
>>whos
amatilah apa yang dihasilkan oleh perintah whos
g. Tugas di Lab
1. Jarak dua buah titik dalam bidang x-y masing-masing adalah A(2,3) dan
B(4,1 , 4,5) dapat dihitung dengan MATLAB sebagai berikut:
>>A = [ 2 3 ];>>B = [ 4.1 4.5 ];
jarak antara A dan B dihitung dengan rumus:
22 )5.43()1.42( ABjarak
>>jarak_AB = sqrt(sum(A-B).^2)
2. Sebuah gelombang persegi yang simetrik di t = 0 dapat dijabarkan dengan
deret Fourier berikut
-
6
...7cos715cos
513cos
31
cos4)( ttttAtx
dimana A adalah amplitude gelombang dan adalah frekwensi sudut.Jika A = 1, = 2 maka periode nya T = 2/ = 1, maka komputasiterhadap tiga suku gelombang persegi dapat dilakukan sebagai berikut:
>> t = -2 : 0.05 : 2;
>> omega = 2*pi;
>> x1 = cos(omega*t);>> x2 = -cos(3*omega*t)/3;>> x3 = cos(5*omega*t)/5;>> xt = 4*(x1 + x2 + x3)/pi;>> plot(t, xt), grid % perintah plot dan tampilkan grid>> title(Pendekatan tiga suku gelombang persegi)>> xlabel(t)>> ylabel(x)
3. Momen dan pusat gravitasi
1000
m1 m2 m3 m4
800
580
400
3565
45
75
-
7Gambar diatas menunjukkan sebuah sistem massa kolinear. Massa bersatuan
dalam kg dan jarak dalam satuan mm. Dalam kerja ini akan dihitung pusat
gravitasi dari sistem. Untuk ini perlu didefinisikan vektor-vektor:
>>massa = [ 35 65 45 75 ];>>jarak = [ 400 580 800 1000 ];
Vektor momen-momoen terhadap sumbu referensi ditunjukkandalam gambar
diberikan dengan hasil kali array (array product)
>> momen = massa .* jarak
momen total (momen_t) dihasilkan dengan hasil kali skalar (scalar product)
>> momen_t = massa * jarak
sedangkan massa total dihasilkan dari fungsi sum
>> M = sum(massa)
selanjutnya pusat massa (cg) dari sitem didefinisikan dengan titik yang mana
massa total M terkonsentrasi, sehingga momen sistem sama dengan jumlah
momen yang diberikan oleh seluruh massa:
>> cg = momen_t/M
juga dapat dihitung melalui:
>> cg = massa*jarak / sum(massa)
atau
-
8>> cg = jarak*massa / sum(massa)
4. Peningkatan nilai resistansi listrik dengan temperatur.
Resistansi R dari sebuah penghantar listrik berbanding lurus terhadap
panjangnya L dan berbanding terbalik terhadap luas penampangnya A:
ALR
faktor pembanding disebut resistivitas. Bila resistivitas tembaga pada 200C adalah
= 0,0170....0,0178 mm2/ m. Rsistivitas adalah sebuah fungsitemperatur dan perubahannya dapat di nyatakan dengan
)1(
dimana:
= resistivitas pada 0C
= koefisien temperatur, untuk tembaga = 0,0039 K-1 = beda temperatur diatas 20 0C
Wisseman (1989) memberikan hubungan yang lebih lengkap sebagai :
)1( 2202020 dimana:
20 = 0,0170 mm2/ m20 = 4,3 10-3 K-120 = 0,6 10-6 K-2untuk membandingkan dua hubungan secara grafik, antara 200C dengan
1000C, kita buat plot sebagai berikut:
>> rho = 0.0178; alpha = 0.0039;
>> theta = 20: 0.5 :100;
-
9>> delta = theta 20;
>> rho1 = rho*(1 + alpha*delta);
>> rho_20 = 0.017; alpha_20 = 0.0043; beta_20 = 0.6*10^(-6);
>> rho2 = rho_20*(1 + alpha_20*delta + beta_20*delta.^2);
>> plot(theta, rho1, theta, rho2)
>> xlabel(Temperatur, derajad Celcius)
>> ylabel(Resistivitas, ohm*mm^2/m)
5. Rangkaian diode
Gambar diatas menunjukkan sebuah rangkaian DC berisi sumber tegangan,
resistor dan sebuah diode semikonduktor . Jika tegangan ujung-ujung diode
adalah v, maka arus yang melewati nya dinyatakan
)1( 400 veIidimana I0 adalah arus jenuh balik. Untuk nilai v kecil dan negatif, berlaku i -I0. Persamaan diatas adalah nonlinear, untuk sebuah tegangan negatif yang
besar, akan diperoleh tegangan dadal. Karateristik i v dari diode dapat
dilukiskan sebagai berikut:
>> Io = 1.0e-6;
>> v =-0.05: 0.005: 0.05;
>> i = Io*(exp(40*v) 1);
>> plot(v, i)
>> title(Karakteristik diode semikonduktor)
>> xlabel(Karakteristik Diode Semi Konduktor)
i
v
2k
Vs = 10 V i
-
10
6. Dalam rangkaian penyearah, sumber tegangan Vs berupa sumber
tegangan AC dengan frekwensi 50 Hz, tegangan di hambatan R yaitu
)502sin(4.0 tv untuk membuat plot grafik hasil penyearahan, dilakukansebagai berikut
>> Io = 1.0e-6;
>> t = 0: 0.0001 : 0.05;
>> v = 0.4*sin(2*pi*50*t);
>> i = Io*(exp(40*v) - 1);
>> plot(t, i), grid
>> title(Rangkaian Diode sebagai Penyearah Setengah Gelombang)
>> xlabel(Waktu, s), ylabel(Arus, mA)
TUGAS MANDIRI
Kerjakan soal-soal berikut menggunakan perintah-perintah MATLAB
a. Sebuah rangkaian tertutup DC terdiri dari dua sumber tegangan dan tiga
resistansi. Tentukan besar arus I1 , I2 dan I3
Rivsv
8 412V 6V
I2I1
I3
10
-
11
b. Dua vektor yaitu kjiA 24 dan kjiB 44 tegak lurus satu samalain. Carilah besar sudut antara vektor tersebut.
c. Hitunglah skala temperatur dari 50,-25,...,200 0C ke dalam skala derajad
Fahrenheit
d. Hitunglah dan buatlah plot dari persamaan-persamaan berikut
1. y = 1 3x + 5x2 x3 ; pada -5 x 52. y = 2)1( x
x; pada -5 x 5
3. y = cos x + 2 sin2 x ; pada - x
-
12
MODUL 2
SCRIPT DAN FUCNTION M-FILE
1. TUJUAN
a. Membuat script M-file
b. Membuat function file atau file fungsi
c. Menggunakan For-Loops dalam permograman
d. Menggunakan While-Loops dalam permograman
e. Menggunakan kosntruksi IF-ELSE-END dalam permograman
f. Mengenal operator-operator logika dan relasi
2. PELAKSANAAN KOMPUTASI
a. Function M-file
Tulis dan simpanlah file berikut dengan nama rata2.m dengan MATLAB
editor:
Function y = rata2(x)
% rata2.m
% fungsi untuk menghitung rata-rata
% data masukan x berbentuk vektor baris atau kolom
[m,n] = size(x);
if m==1 & n>=1
y = sum(x)/n;
elseif m>=1 & n==1
y = sum(x)/m;
else
error('masukan harus vektor baris atau kolom')
end
-
13
Kerjakan contoh-contoh berikut ini:
>>p = [65 78 98 76 54 49]
>>nilai_rata2 = rata2(p)
Selanjutnya coba:
>>q = [65; 78; 98; 76; 54; 49]
>>nilai_rata2 = rata2(q)
Evaluasi dengan statemen-statemen berikut
>>h = rand(4,2)
>>nilai_rata2 = rata2(h)
Tulislah dan simpanlah file fungsi berikut dengan nama radian.m dengan
MATLAB editor
Function y = radian(x)
% derajad.m
% untuk mengubah satuan sudut dari derajad ke radian
y = x*(pi/180);
Kerjakan dan ekskusi statemen-statemen berikut:
>> alpha = linspace(0, 180, 18); % dalam derajad
>> alpha = radian(alpha); % dalam satuan radian
b. Script M-file.
Ketikan statemen-statemen dan perintah-perintah berikut pada suatu
MATLAB editor simpan dengan nama file coba_21.m:
-
14
% coba_21.m
% Membandingkan plot resistivitas umum dengan
% resistivitas oleh Wisseman
rho = 0.0178; alpha = 0.0039;
theta = 20: 5 :100;
delta = theta - 20;
rho1 = rho*(1 + alpha*delta);
rho_20 = 0.017; alpha_20 = 0.0043; beta_20 = 0.6*10^(-6);
rho2 = rho_20*(1 + alpha_20*delta + beta_20*delta.^2);
plot(theta, rho1,'k^', theta, rho2,'k+')
title('Resistivitas Tembaga')
xlabel('Temperatur, (derajad Celcius)')
ylabel('Resistivitas, (ohm*mm^2/m)')
legend('\rho umum','\rho Wisseman')
Setelah file coba_21.m tersimpan dalam ruang kerja MATLAB, cobalah
menjalankan program diatas pada MATLAB prompt, dengan mengetik
nama program yaitu coba_21, bila hasil penulisan program diatas benar,
maka akan ditampilkan sebuah jendela (window) gambar dari MATLAB.
Kemudian kerjakan juga untuk file berikut ini, yaitu untuk menggambar
lintasan peluru yang ditembakkan dari bidang datar dalam benntuk
coba_22.m
% coba_22.m
% Program untuk membuat plot kedudukan peluru
% dengan masukan:
% vo = kecepatan awal (m/s), dalam bentuk skalar
% alpha = sudut elevasi (derajad), dalam bentuk skalar
% t = lama waktu (sekon), dalam bentuk vektor
-
15
clear all
g = 9.8; % percepatan gravitasi
vo = input(' kecepatan awal [m/s], misal 20 = ');
alpha = input(' sudut elevasi [derajad], misal 45 = ');
alpha = radian(alpha); % konversi radian ke satuan derajad
disp(' waktu tembak tulis dalam bentuk vektor, misal [0:.1:5]')
t_tembak = input(' waktu tembak [atau tekan Enter saja] = ');
disp(' ---------------------------------------------')
if isempty(t_tembak) == 1
t_datar = (2*vo*sin(alpha))/g; % t sampai di bidang datar
t = [0:.1:t_datar];
disp(' Peluru akan jatuh dibidang datar')
disp(' tekan Enter untuk melihat lintasan peluru')
pause
disp(' ------------------------------')
disp(' Peluru sampai di bidang datar')
else isempty(t_tembak) ~= 1;
t = t_tembak;
disp('
==========================================')
disp(' Belum diketahui lokasi peluru terakhir !!!')
disp(' peluru jatuh dibawah bidang datar')
disp(' tekan Enter untuk melihat lintasan peluru')
pause
end
% kedudukan mendatar peluru
-
16
xt = vo*cos(alpha)*t;
% kedudukan vertikal peluru
yt = (vo*sin(alpha)*t - 0.5*g*t.^2)+eps;
% plot kedudukan peluru
clf
plot(xt,yt)
title('Lintasan Peluru','Fontw','b','Fontsize',12)
xlabel('xt (gerak mendatar), meter')
ylabel('yt (gerak vertikal), meter')
Setelah file coba_22.m tersimpan, coba mengekskusi pada MATLAB prompt
dengan cara mengetik coba_22 dan tekan Enter.
Tulislah file berikut dan simpan dalam coba_23.m, file ini dibuat untuk
meggambarkan beberapa Hampiran Fourier dari gelombang persegi pada
suku ke n (bandingkan hasilnya dengan komputasi pada Modul 1)
% coba_23.m
% clear all
t = -2 : 0.05 : 2;
omega = 2*pi;
n = input('banyaknya suku : ');
nt = length(t);
k=0;
x = zeros(n, nt);
for i = 1:n
-
17
x(i,:) =(4*((-1)^(k))*cos(omega*(2*k+1)*t))/(2*k+1);
k = k + 1;
end
xt = sum(x);
plot(t, xt), grid % perintah plot dan tampilkan grid
title(['Hampiran Fourier Gelombang Persegi, n='num2str(n)])
xlabel('t','Fontw','b','Fontsize',14)
ylabel('x(t)','Fontw','b','Fontsize',14)
Setelah file coba_23.m terbentuk cobalah mengekskusi pada MATLAB
prompt , gantilah n dengan 3 dan seterusnya (misal: n = 100).
Tulislah sebuah file dengan nama coba_24.m untuk statemen-statemen
dalam box berikut ini. File coba_24.m dipakai untuk menghitung nilai eps,
yaitu bilangan positip terkecil pada Program MATLAB:
% coba_24.m
%
num=0; EPS=1;
while (1+EPS)>1
EPS = EPS/2;
num= num+1;
end
eps = 2*EPS;
disp([' eps=' num2str(eps)])
-
18
3. TUGAS LABORATORIUM
Tuliskan program-program dari a sampai c dibawah ini pada kertas
folio bergaris dan kumpulkan sebelum melakukan praktikum. Buatlah
1 copy untuk praktikum (melakukan komputasi di LAB):
a. Buatlah sebuah fungsi MATLAB untuk membuat konversi suhu dari derajad
Celcius menjadi Fahrenheit.
b. Buatlah sebuah script MATLAB untuk menggambar lintasan peluru di bidang
miring. Dalam program ini, besar kecepatan awal (m/s), sudut tembak
alpha (derajad), dan sudut kemiringan bidang beta (derajad), dimasukkan
melalui keyboard.
c. Buatlah sebuah script MATLAB untuk membuat plot sejumlah n-suku dari
hampiran fourier sebuah pulsa persegi dengan persamaan deret Fourier:
0 12
))12cos(()1(4)(n
k
ktkk
tu
, Catatan: k adalah
konstanta
4. TUGAS MANDIRI
Tuliskan program-program soal a sampai d dibawah ini pada kertas folio
bergaris dan kumpulkan saat Praktikum Modul 3
a. Tuliskan sebuah script M-file untuk menggambarkan lintasan gerak peluru
pada bidang datar dan gerak peluru pada bidang miring. Gunakan
pengendali aliran (control flow), operator logika dan operator relasi untuk
mengadakan pilihan-pilihan jenis gerak peluru, misalnya gerak peluru pada
bidang datar atau gerak peluru pada bidang miring. Semua konstanta dan
variabel harus dimasukkan melalui keyboard. Pada program ini, boleh
ditambahkan penghitungan waktu-waktu khusus, misalnya waktu di
-
19
puncak, dan waktu untuk sampai di tanah, tinggi maksimum, jauh
tembakan maksimum. Catatan: gunakan satuan SI untuk semua besaran
dan manfaatkan fungsi MATLAB untuk mengubah satuan sudut dari derajad
ke radian.
b. Tuliskan sebuah fungsi MATLAB untuk menghitung besar pergeseran sinar
yang melewati kaca plan paralel.
c. Tulislah sebuah fungsi untuk menghitung nilai masukan (x) yang
menghasilkan keluaran y dari persamaan berikut
2122 xcey x
jika c = 2.
d. Tulislah fungsi untuk suatu temperatur T pada titik (x,y) dengan persamaan
berikut
222),( yxyxT
-
20
MODUL 3
KURVA FITTING DAN INTERPOLASI
1. TUJUAN KOMPUTASI
a. Mengenal perintah-perintah MATLAB untuk polinom
b. Mengenal integrasi polinom
c. Mempelajari interpolasi satu dan dua dimensi dengan MATLAB
2. PELAKSANAAN KOMPUTASI
a. Mencari akar polinom
Perintah-perintah MATLAB untuk mencari akar suatu polinom adalah roots
Contoh: mencari akar suatu polynom 542 223 xxxyLakukan komputasi berikut pada MATLAB prompt:
>> p = [ 2 1 4 5 ] % p adalah koefisien polinom
>> r = roots(p) % r adalah akar-akar polinom
Bila akar-akar polinom diketahui, untuk mencari koefisien polinom dapat
digunakan perintah poly:
Lakukan komputasi berikut pada MATLAB prompt:
>> poly(r) % mencari akar-akar polinom
Sebuah polinom dapat dievaluasi dengan perintah polyval, contoh untuk
mengevaluasi 1273 234 xxxxy untuk y(2,5)
Lakukan komputasi berikut pada MATLAB prompt:
c = [3, -7, 2, 1, 1]; % kofisien-koefisien suatu polinom
xi = 2.5; % nilai absis untuk menguji polinom y
yi = polyval(c, xi) % mengevaluasi polinom yi pada xi=2.5
-
21
b. Penyesuaian polinom
Untuk melakukan komputasi penyesuaian polinom atau polinomial fitting,
berikut ini ada contoh suatu set data:
x 1,1 2,3 3,9 5,1
y 3,887 4,276 4,651 2,117
Cobalah komputasi berikut pada MATLAB prompt:
x = [1.1 2.3 3.9 5.1];
y = [3.887 4.276 4.651 2.117];
a = polyfit(x,y,length(x)-1)
a =
-0.2015 1.4385 -2.7477 5.4370
dari operasi diatas, diperoleh koefisien-koefisien polinom, argumen ke tiga
dari perintah polyfit yaitu length(x)-1 menyatakan orde dari polinom.
Karena orde polinom sama dengan jumlah data minus satu. Polinom ditulis
sebagai:
4370,57477,24385,12015,0 23 xxxy (1)
untuk mengevaluasi polinom diatas pada sebuah vektor absis xi bisa
dilakukan komputasi berikut:
>> yi = polyval(a, xi)
c. Mencari integral polinom dengan fungsi
Untuk memperoleh integral dari polinom pada persamaan (1), buatlah
sebuah file fungsi poly_itg.m berikut:
-
22
function py = poly_itg(p)n=length(p);py = [p.*[n:-1:1].^(-1),0];
Kemudian lakukan komputasi sebagai berikut:
>> d = poly_itg(a)
(dalam komputasi diatas a adalah variabel dari komputasi b.)
Dari komputasi diatas akan diperoleh sebuah vektor yang merupakan
koefisien dari polinom Y yang secara analitik dinyatakan:
212211
2...
1 nnnnn ccxcxncxncydxY (2)
sehingga berupa
],...,,1
[ 121 ncnc
n
cd
d. Mencari turunan polinom
Selanjutnya untuk mencari turunan dari Y dapat digunakan perintah
polyder dengan komputasi sebagai berikut:
>> b = polyder(a)
(dalam komputasi diatas a adalah variabel dari komputasi b.)
Sehingga b akan berupa vektor
],...,)1(,[ 21 nccnncb untuk nccc ,...,, 21 koefisien-koefisien polinom
-
23
e. Integrasi menggunakan fungsi internal MATLAB
Pada contoh diatas, telah dilkukan integrasi secara analitik menggunakan
fungsi eksternal poly_itg.m. Integrasi juga bisa dilakukan dengan
menggunakan fungsi internal (fungsi yang tersedia dalam MATLAB), yaitu
dengan fungsi quad.m yang berfungsi mengevaluasi integral secara
numerik. Metode integrasi numerik akan dipelajari di kuliah Fisika
Komputasi. Dalam integrasi menggunakan perintah quad ini, identik
dengan integral tertentu.
Lakukanlah komputasi untuk mengevaluasi fungsi sinus pada batas-
batas 0 sampai /4.:
f='sin';
Y = quad(f,0,pi/4)
f. Mencari integral fungsi buatan sendiri
Bila kita mempunyai suatu fungsi, misalnya 123 2 xxy untuk dicari nilaiintegral-nya pada batas bawah 0 x 5, maka perlu dibuatkan fungsinyadalam file fungsi (function) sebagai
Selanjutnya lakukan komputasi berikut
f = 'kwadrat_1'
Y = quad(f,0,5)
function y = kwadrat_1(x)
y = 3*x^2 + 2*x + 1;
-
24
cobalah dengan perintah quad8
f = 'kwadrat_1'
Y = quad8(f,0,5)
Integrasi menggunakan fungsi trapz, contoh: mencari nilai integral
123 2 xxy pada 0 x 5 :
Kerjakan komputasi berikut
x = 0:.2:5;
f = kwadrat_1(x);
Y = trapz(x,f)
g. Interpolasi satu dimensi
Untuk melakukan interpolasi pada suatu titik-titik data, MATLAB
menyediakan perintah interp1, berikut ini terdapat data-data temperatur
dan
tempra = [5 8 9 15 25 29 31 30 22 25 27 24]; % temperatur
jam = 1:12; % jam 1 sampai 12
plot(jam, tempra, jam, tempra,'+')
Jika ingin mengetahui berapa temperatur pada jam 9,3? Maka dapat
dilakukan komputasi sebagai berikut:
t=interp1(jam, tempra, 9.3)% perkiraan temperatur, jam 9.3
untuk mengetahui temperatur pada jam 4,7
t=interp1(jam, tempra, 4.7)% perkiraan temperatur, jam 4.7
Temperatur pada jam-jam : 3,2; 6,5; 7,1; 11,7 diperoleh dengan
Komputasi:
>> t = interp1(jam, tempra, [3.2 6.5 7.1 11.7])
-
25
Cara interpolasi diatas dekenal dengan nama interpolasi linier
Untuk memperoleh kurva penghubung data-data yang lebih halus,
dilakukan komputasi berikut
>> t = interp1(jam, tempra, 9.3, 'spline')
>> t = interp1(jam, tempra, 4.7, 'spline')
>> t = interp1(jam, tempra, [3.2 6.5 7.1 11.7], 'spline')
Cara interpolasi diatas disebut cubic splines, atau disebut splines saja
Pemakaian interpolasi spline yang paling umum adalah untuk memperhalus
data. Berdasarkan data-data diatas dapat dilakukan interpolasi spline untuk
mengevaluasi pada data pada interval yang lebih halus, contoh:
h = 1:0.1:12; % estimasi temperatur tiap 1/10 jam
t = interp1(jam, tempra, h, 'spline') ;
plot(jam, tempra,'--',jam,tempra,'y+',h,t)
title('Temperatur Kota Springflied')
xlabel('Jam')
ylabel('Temperatur')
Jika kita memakai waktu pada hari, contoh dari jam 7:00 pagi sampai jam
6:00 petang, maka dapat dibuat variabel waktu dengan cara:
jam = [7:12 1:6]
h. Interpolasi dua dimensi
Dibawah ini adalah temperatur sebuah pan (alat masak pizza) dengan
sebaran suhu terbagi dalam grid 3 kali 5, untuk mengetahui sebaran
temperatur pada pan
-
26
Buatlah file berikut dan simpan dalam t_dalam.m untuk menganalisa
temperatur pan pada setengah kedalaman di sepanjang lebar pan.
Buatlah file berikut dan simpan dalam t_lebar.m untuk menganalisa
temperatur pan pada setengah kedalaman di sepanjang lebar pan.
% t_dalam.m% menganalisa data uji% irisan pan pada setengah kedalaman
lebar = 1:5; % lebar pandalam = 1:3; % kedalaman pantempra = [82,81,80,82,84;79,63,61,65,81;84,84,82,85,86];
li=1:0.2:5; % memilih resolusi lebard=2; % pusat pan;
zl=interp2(lebar,dalam,tempra,li,d); % interpolasi linierzc=interp2(lebar,dalam,tempra,li,d,'cubic'); % interpolasi cubic
plot(li, zl, '--',li,zc) % plot linier dan cubicxlabel('Lebar Pan')ylabel('Derajad Celcius')title('Temperatur Pan di Kedalaman = 2')
-
27
Buatlah file berikut dan simpan dalam s_pan.m untuk melihat temperatur
pan keseluruhan
3. TUGAS LABORATORIUM
Tuliskan script file dari a sampai e dibawah ini pada kertas folio bergaris dan
kumpulkan sebelum melakukan praktikum. Buatlah 1 copy untuk praktikum
(melakukan komputasi di LAB):
a. Dua sifat bahan dari gas karbon monoksida diberikan pada tabel berikut ini
T Beta Alpha
300
400
500
600
3.33e3
2.50e3
2.00e3
1.67e3
0.2128e4
0.3605e4
0.5324e4
0.7190e4
T temperatur dalam Kelvin, Beta adalah Koefisien ekspansi thermal dalam
1/Kelvin dan Alpha adalah diffusifitas thermal dalam (m2/s). Tulislah sebuah
script untuk mencari Beta dan Alpha pada T=321,440 dan 571.
% t_lebar.m% Menganalisa data uji .% Irisan pan pada setengah lebar dan% melihat pada sepanjang kedalaman
lebar = 1:5; % lebar pandalam = 1:3; % kedalaman pantempra = [82,81,80,82,84;79,63,61,65,81;84,84,82,85,86];
di=1:0.2:3; % memilih resolusi kedalamanl=3; % pusat pan;
zl=interp2(lebar,dalam,tempra,l,di); % interpolasi linierzc=interp2(lebar,dalam,tempra,l,di,'cubic'); % interpolasi cubic
plot(di, zl, '--',di,zc) % plot linier dan cubicxlabel('Kedalaman Pan')ylabel('Derajad Celcius')title('Temperatur pada lebar = 3')
-
28
b. Sebuah relasi fungsi y=y(x) disajikan dalam tabel berikut
x y
0
0.25
0.50
0.75
1.00
0.9162
0.8109
0.6931
0.5596
0.4055
Tulis sebuah script file untuk mencari nilai x yang memenuhiy = 0.9, 0.7,
0.6 dan 0.5.
c. Satu set empat titik-titik data
x = [1.1, 2.3, 3.9, 5.1]
y = [3.887, 4.276, 4.651, 2.117]
Tulis sebuah script untuk mencari koefisien-koefisien polinom interpolasi
yang cocok dengan data. Kemudian tentukan nilai y pada x=2.101 dan
4.234. Buatlah plot polinom yang diperoleh pada titik-titik data yang
tersedia.
d. Ubahlah polynom berikut deret pangkat menggunakan polyfit:
)105)(2.75)(1.65)(45)(5.25)(15()10)(2.7)(1.6)(4)(5.2)(1()(
xxxxxxxv
e. Tulislah sebuah program untuk mengevaluasi interpolasi Lagrange untuk y
= x cos(x) dalam 0 x 2 dengan 6 titik grid berjarak sama dengan h =0.4
-
29
4. TUGAS MANDIRI
Tabel dibawah ini menyajikan data phase air laut pada muka bumi, X = garis
lintang, Y = garis bujur, dan P =phase air semua dalam satuan derajad. Tulislah
sebuah file untuk membuat Plot 3 dimensi dan contour phase air data berikut
dengan memanfaatkan perintah interpolasi 2 dimensi.
X Y P
26.0000 119.500 352.87463126322
26.0000 120.000 85.342163854390
26.0000 120.500 80.489212407950
26.0000 121.000 73.377370139292
26.0000 121.500 55.761503163701
26.0000 122.000 19.666336954414
26.0000 122.500 350.48685956113
26.0000 123.000 334.62278496753
26.0000 123.500 325.14340492545
26.0000 124.000 317.93898063464
26.0000 124.500 312.34154311331
26.0000 125.000 309.55553073664
26.0000 125.500 307.79123718835
-
30
MODUL 4
PLOT 2-DIMENSI DAN 3 DIMENSI
1. PENGANTAR
Pada praktikum sebelumnya, telah digunakan perintah plot untuk membuat
grafik dua dimensi, yaitu melukiskan dua buah array yang ukurannya sama. Untuk
menggambar grafik tiga dimensi, MATLAB menyediakan beberapa perintah untuk
membuat grafik dua dimensi. Untuk membuat grafik tiga dimensi, diperlukan tiga
buah array dua dimensi atau matriks.
Perintah-perintah tambahan dalam grafik 2 dan 3 dimensi, yaitu perintah
untuk membuat beberapa gambar (sub-sub gambar) dalam satu jendela gambar,
gambar seperti sering diperlukan jika kita ingin membandikan dua buah grafik,
misalnya grafik fungsi sinus dengan grafik fungsi cosinus. Untuk mengetahui atau
mengenali suatu plot fungsi dalam satu jendela gambar yang terdiri beberapa plot
fungsi, maka diperlukan teks untuk memberi nama, untuk ini MATLAB
menyediakan.
2. TUJUAN
a. Mengenal plot dua dimensi
b. Mengenal plot tiga dimensi
3. KOMPUTASI
a. Plot dua dimensi
Tulis dan simpan statemen-statemen berikut pada MATLAB editor dengan
nama file coba_31.m. Kemudian ekskusi pada MATLAB prompt untuk
melihat hasilnya, jika penulias benar maka akan ditampilkan 4 buah grafik
dalam sebuah jendela gambar:
-
31
% coba_31.m
clf
x = linspace(0, 2*pi, 50);
y = sin(x);
z = cos(x);
a = 2*sin(x).*cos(x);
b = sin(x)./cos(x)+eps;
subplot(2, 2, 1)
plot(x,y), axis([0 2*pi -1 1]), title('sin(x)')
subplot(2, 2, 2)
plot(x,z), axis([0 2*pi -1 1]), title('cos(x)')
subplot(2, 2, 3)
plot(x,a), axis([0 2*pi -1 1]), title('2sin(x)cos(x)')
subplot(2, 2, 4)
plot(x,b), axis([0 2*pi -30 30]), title('sin(x)/cos(x)')
Tulislah dan simpan statemen-statemen pada kotak berikut dalam file
coba_32.m kemudian ekskusi coba_32 untuk melihat hasilnya.
File berikut memanfaatkan operator relasi untuk mengubah nilai variabel.
% coba_32.m
x = linspace(0, 10, 100); % membuat data
y = sin(x); % menghitung sinus
z = (y>=0).*y; % mengatur nilai-nilai negatif sinus menjadi nol
z = z + 0.5*(y
-
32
b. Plot tiga dimensi
Pada perkenalakan perintah mesh, dimana MATLAB mendefinisikan sebuah
permukaan jaring (mesh surface) dengan koordinat z dari titik-titik diatas
kisi atau grid persegi panjang dalam bidang x-y.
Kerjakan perintah berikut pada MATLAB prompt:
x=-7.5:.5:7.5;
y=x;
[X,Y]=meshgrid(x,y);
R=sqrt(X.^2 + Y.^2)+eps;
Z=sin(R)./R;
mesh(X,Y,Z)
Tulis dan simpan statemen-statemen berikut pada MATLAB editor dengan
nama file coba_33.m. Kemudian ekskusi pada MATLAB prompt untuk
melihat hasilnya, jika penulias benar maka akan ditampilkan 4 buah grafik
dalam sebuah jendela gambar:
% coba_33.m%clfx = linspace(0, 2*pi, 50);y = sin(x);z = cos(x);a = 2*sin(x).*cos(x);b = sin(x)./cos(x)+eps;subplot(2, 2, 1)plot(x,y), axis([0 2*pi -1 1]), title('sin(x)')subplot(2, 2, 2)plot(x,z), axis([0 2*pi -1 1]), title('cos(x)')subplot(2, 2, 3)plot(x,a), axis([0 2*pi -1 1]), title('2sin(x)cos(x)')subplot(2, 2, 4)plot(x,b), axis([0 2*pi -30 30]), title('sin(x)/cos(x)')
Tulislah dan simpan statemen-statemen pada kotak berikut dalam file
coba_32.m kemudian ekskusi coba_32 untuk melihat hasilnya.
-
33
File berikut memanfaatkan operator relasi untuk mengubah nilai variabel.
% coba_32.m
x = linspace(0, 10, 100); % membuat data
y = sin(x); % menghitung sinus
z = (y>=0).*y; % mengatur nilai-nilai negatif sinus menjadi nol
z = z + 0.5*(y