fisika komputasi2013-1

Upload: nyonk-benyalo-al-qoyim

Post on 17-Oct-2015

35 views

Category:

Documents


1 download

TRANSCRIPT

Fisika Komputasi

Fisika KomputasiModul-1 : Pemrograman MATLAB(Command Oriented)SILABUS/AGENDAReferensi1. Suarga, 2007: Fisika Komputasi: Solusi Problem Fisika dengan Matlab(R), Andi Offset, Yogyakarta2. Yan,W.Y., etc, 2005: Applied Numerical Methods using Matlab(R) 7th ed, John Wiley & Sons, Singapore3. Pitzpatrick,R, Computational Physics, Lecture Notes Univ. of Texas at Austin, USA.

MATLABMATLAB singkatan dari MATrix LABoratorySuatu paket aplikasi matematis yang berbasis vektor matriksDiciptakan di Stanford University pada tahun 70-an, dikembangkan oleh Mathworks.Inc hingga ke versi tahun 2007Memiliki modul numerik dan simbolikMemiliki modus command dan modus programMembuka paket MATLAB :Cari icon MATLAB kemudian klik cepat dua kali, jendela kerja MATLAB muncul seperti gambar berikut:Perintah (command) dari MATLAB dituliskan setelah tanda: >>Setelah selesai menggunakan MATLAB maka ketik quit dan [Enter], atau klik File/Exit.

Operasi Aritmetika: Penambahan/penjumlahan: + misalnya: a + bPengurangan : - misalnya: a b Perkalian : * misalnya: a * bPembagian : / misalnya: a / bPerpangkatan : ^ misalnya: a ^ 2contoh:>> a=3;>> b=5;>> (a+b) / 2 * 5^2

Variabel:Variabel pada MATLAB harus diberi nama. Nama variabel harus dimulai dengan huruf, bisa di-ikuti dengan huruf lain atau angka, maksimum 31 karakter. Nama variabel dengan huruf besar (kapital) dianggap beda dengan nama variabel yang ditulis dengan huruf kecil.Contoh variabel : X, Y, Gaya, a, v, F, energi, dsb.

Konstanta / Tetapan :Beberapa tetapan yang berlaku pada MATLAB adalah sebagai berikut:pi nilai = 3.14152eps nilai epsilon, bilangan natural e = inf nilai takberhingga i atau j adalah nilai imaginer -1Nan hasil bagi 0/0, not a numbernargin number of input argumentsnargout number of output argumentsrealmin bilangan riel positif terkecilrealmax bilangan riel positif terbesar

Tanda Baca:% digunakan untuk mengawali komentar (comment) , digunakan untuk memisahkan dua pernyataan dalam sebaris ; digunakan untuk memisahkan dua pernyataan tanpa echo digunakan untuk melanjutkan statement ke baris berikutnya

Bilangan Kompleks:Bilangan kompleks terdiri atas bagian riel dan imaginer, dimana bagian imaginer diberi simbol i atau j. Misalnya: c1=1-2i; c2=3*(2 - sqrt(-1)*3)c2 = 6.0000 - 9.0000i c3=sqrt(-2)c3 = 0 + 1.4142i c4 = (c1+c2)/c3c4 = -7.7782 - 4.9497i

FUNGSI-FUNGSI MATEMATISBeberapa fungsi matematis disediakan oleh MATLAB untuk memudahkan para pengguna dalam melakukan komputasi, antara lain sebagai berikut:abs(x) mengambil nilai absolut dari variabel xacos(x) menghitung arcus cosinus xacosh(x) menghitung nilai arcus cosinus hiperbolikus dari xangle(x) menghitung besarnya sudut yang dibentuk oleh bilangan kompleks x, yaitu sebesar: arctan(I/R)asin(x) menghitung nilai arcus sinus xasinh(x) menghitung nilai arcus sinus hiperbolikus dari xatan(x) menghitung nilai arcus tangens xatanh(x) menghitung nilai arcus tangens hiperbolikus dari xceil(x) membulatkan keatas dari bilangan pecahan, misal ceil(5.3) = 6conj(x) menghitung konjugat bilangan kompleks xcos(x) menghitung nilai cosinus xcosh(x) menghitung nilai cosinus hiperbolikus dari xexp(x) menghitung nilai ex

fix(x) mengambil nilai bulat dari suatu pecahan, fix(5.3) = 5floor(x) pembulatan nilai kebawah, floor(5.6) = 5gcd(x, y) menghitung PPT (persekutuan pembagi terbesar) dari (x, y)imag(x) mengambil bagian imaginer dari bilangan kompleks xlcm(x, y) menghitung persekutuan pengali terkecil dari x dan ylog(x) menghitung logaritma natural (ln) dari xlog10(x) menghitung logaritma dari xreal(x) mengambil bagian riel dari bilangan kompleks xrem(x, y) menghitung sisa pembagian dari x / y, rem(10, 7) = 3round(x) pembulatan pecahan ke bilangan terdekat, round(4.3) = 4sign(x) tanda dari bilangan xsinh(x) menghitung nilai sinus hiperbolikus dari xsqrt(x) menghitung akar dari xtan(x) menghitung nilai tangens x

VEKTOR dan MATRIKSPada hakekatnya MATLAB hanya mengenal satu macam struktur data, yaitu matriks. Skalar adalah matriks 1x1, vektor baris adalah matriks 1xN, dan vektor kolom adalah matriks Nx1, dan matriks adalah larik NxM, N baris dengan M kolom. Variabel tidak perlu didefenisikan (deklarasi) lebih dahulu, bisa langsung diberi nilai. Vektor baris dapat dibentuk dengan instruksi sebagai berikut:>> a = [1 2 3 4 5]Vektor kolom dibentuk dengan cara memberi tanda titik koma dibelakang elemen:>> b = [1; 2; 3; 4; 5]Vektor baris dapat pula dijadikan vektor kolom dengan cara memberi tanda petik tunggal:>> b = aSuatu variabel yang secara otomatis menjadi vektor apabila merupakan hasil operasi dari suatu vektor, sebagai contoh: variabel d menjadi vektor kompleks pada instruksi berikut ini:>> d = a + i * a

a = [1 2 3 4 5] % a adalah vektor barisa = 1 2 3 4 5 b = a' % b adalah vektor kolom dibentuk dari a b = 1 2 3 4 5 d = a + i*a % d adalah vektor kompleks sebaris d = Columns 1 through 4 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i Column 5 5.0000 + 5.0000i

e=d' % e adalah vektor konjugat dari d dengan transposee = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.0000i f = d.' % f adalah vektor satu kolom dibentuk dari d dengan % titik dan tanda kutipf = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5.0000i

Apabila elemen-elemen suatu vektor nilainya beraturan, maka vektor ini dapat dibentuk dengan pemakaian tanda titik-dua, misalnya sebagai berikut; y = (0:0.2:1)*pi % vektor y dibentuk dengan elemen mulai 0 dengan sela sebesar 0.2pi atau 0.6283y = 0 0.6283 1.2566 1.8850 2.5133 3.1416 z = linspace(0,pi,6) % vektor z dibentuk dengan nilai mulai 0 sampai pi dengan sela sama besar sebanyak 6 elemenz = 0 0.6283 1.2566 1.8850 2.5133 3.1416

z1 = logspace(0,2,10) % z1 dibentuk dengan nilai 10 pangkat 0 s/d 2 dengan sela yang sama secara logaritmikz1 = Columns 1 through 7 1.0000 1.6681 2.7826 4.6416 7.7426 12.9155 21.5443 Columns 8 through 10 35.9381 59.9484 100.0000Matriks dapat dibentuk dengan defenisi dimana baris dipisahkan dengan titik dua, misalnya matriks M dengan dimensi 3 x 3, dan E dengan dimensi 3 x 2 berikut ini: M = [4 2 1; 3 6 7; 5 9 8]M = 4 2 1 3 6 7 5 9 8

Beberapa fungsi untuk manipulasi matriks disediakan pula oleh MATLAB, antara lain sebagai berikut:chol(M) faktorisasi matriks M dengan metoda Choleskidet(M) menghitung determinan dari matriks Meig(M) menghitung nilai eigen dari matriks Minv(M) menghitung inverse matriks Mlogm(M) mencari logaritma dari matriks Msqrtm(M) mencari akar dari matriks Mtrace(M) menjumlahkan elemen diagonal dari matriks Meye(3) membentuk matriks diagonal identitas 3 x 3magic(n) membentuk matriks ajaib n x nones(3) matriks 3x3 dengan elemen semua 1zeros(3) matriks 3x3 dengan elemen semua 0pascal(3) matrisk 3x3 dengan elemen segitiga pascalrand(3) matriks 3x3 dengan elemen bilangan acak antara 0-1

ones(3)ans = 1 1 1 1 1 1 1 1 1 magic(4)ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 pascal(3)ans = 1 1 1 1 2 3 1 3 6

rand(3)ans = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 zeros(3)ans = 0 0 0 0 0 0 0 0 0

A = magic(3)A = 8 1 6 3 5 7 4 9 2 det(A)ans = -360 eye(3)ans = 1 0 0 0 1 0 0 0 1 inv(A)ans = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 A * inv(A)ans = 1.0000 0 -0.0000 -0.0000 1.0000 0 0.0000 0 1.0000

A.*inv(A)ans = 1.1778 -0.1444 0.3833 -0.1833 0.1111 0.7389 -0.0778 1.7000 -0.2056 A*Aans = 91 67 67 67 91 67 67 67 91 A.*Aans = 64 1 36 9 25 49 16 81 4

INSTRUKSI GRAFISInstruksi grafis sangat penting dalam fisika, karena dengan demikian wujud fisik dari suatu fungsi dapat disimulasi. MATLAB menyediakan berbagai instruksi grafis, antara lain adalah:plot(x, y) membuat grafik vektor x terhadap yloglog(x, y) membuat grafik vektor x terhadap y dengan skala logaritmiksemilogx(x, y) sumbu-x berskala semilogsemilogy(x, y) sumbu-y berskala semilogpolar(teta, rho) grafik polar dengan sudut teta dan jejari rhocontour(z) grafik kontur dari matriks zmesh(z) grafik 3D dari matriks ztitle(text) memberi judul pada grafikxlabel(text) memberi label pada sb-xylabel(text) memberi label pada sb-y

.Gambar grafik sin(x) dan cos(x) , bila x adalah sudut dari 0 hingga 180 (2*pi).

x=linspace(0, 2*pi, 30); % 30 titik pada x, mulai dari 0 sampai 2*pi y=sin(x); z=cos(x); plot(x,y,x,z) % plot y dan z pada salib sumbu yang sama x=linspace(0,20); y=exp(-x/4).*sin(x); plot(x,y), xlabel('sb-x'), ylabel('sb-y'), title('grafik y=exp(-x/4)*sin(x)')

t=linspace(0, 2*pi); r=sin(2*t).*cos(2*t); polar(t,r), title('Grafik polar sin(2t)*cos(2t)')

x=-7.5:0.5:7.5; % sb-x dari -7.5 s/d +7.5 y=x; % sb-y dari -7.5 s/d +7.5 [X,Y] = meshgrid(x,y); % membuat grid pada bidang XY

R=sqrt(X.^2 + Y.^2) + eps; Z=sin(R)./R; % Z adalah sin(r)/r mesh(X,Y,Z)

Grafik hasil plot bisa diberi warna dan/atau tanda/marker, tabel berikut ini menunjukkan simbol dari warna dan simbol dari marker.Warna Simbol Marker SimbolKuning y .Magenta m o oBiru muda c x xMerah r + +Hijau g * *Biru b sPutih w dHitam k ^ > <

Grafik memakai marker (tanda)plot(x,y1,g+,x,y2,rs); %y1 diplot warna hijau(green/g), bertanda % y2 diplot warna merah(red/r), bertanda kotak>> x1=0:pi/100:2*pi;>> x2=0:pi/10:2*pi;>> plot(x1,sin(x1),'r:',x2,sin(x2),'ko')

Grafik dengan bayangan dan kontur>> [x y z]=peaks; % vektor x,y,z dari data peaks>> pcolor(x,y,z); % beri warna >> shading interp; % beri bayangan >> hold on; % lakukan overlay>> contour(x,y,z,20,'k') % berupa kontur dari x,y,z>> hold off

Grafik dengan subplot>> t=0:pi/10:2*pi;>> [X, Y, Z] = cylinder(4*cos(t)); % vektor X Y Z >> subplot(2,2,1); mesh(X) % subplot(2,2,1), >> %gambar 1 dari 2x2 plot>> subplot(2,2,2); mesh(Y) %gambar 2>> subplot(2,2,3); mesh(Z) %gambar 3>> subplot(2,2,4); mesh(X,Y,Z) %gambar 4

Grafik memakai surface>> surf(X, Y, Z); % mengambil data permukaan dari XYZ>> colormap hsv>> colorbar

Grafik memakai cahaya kamera (camlight)>> surf(X,Y,Z,'FaceColor','red','EdgeColor','blue');>> camlight left; lighting phong