MODUL PRAKTIKUM FISIKA KOMPUTASI dengan contoh Bahasa Pemrograman Matlab PDF

Title MODUL PRAKTIKUM FISIKA KOMPUTASI dengan contoh Bahasa Pemrograman Matlab
Author Muhammad Iqbal
Pages 45
File Size 1.1 MB
File Type PDF
Total Downloads 84
Total Views 517

Summary

MODUL PRAKTIKUM FISIKA KOMPUTASI dengan contoh Bahasa Pemrograman Matlab JURUSAN FISIKA FAKULTAS MATEMATIKA DAN ILMU PENG ETAHUAN ALAM UNIVERSITAS BRAWIJAYA MALANG 2013 MODUL PRAKTIKUM FISIKA KOM PUTASI 2 JURUSAN FISIKA UNIVERSITAS BRAWIJAYA MALANG 2010 MODUL PRAKTIKUM FISIKA KOM PUTASI DAFTAR ISI D...


Description

MODUL PRAKTIKUM FISIKA KOMPUTASI dengan contoh Bahasa Pemrograman Matlab

JURUSAN FISIKA FAKULTAS MATEMATIKA DAN ILMU PENG ETAHUAN ALAM

UNIVERSITAS BRAWIJAYA MALANG 2013

MODUL PRAKTIKUM FISIKA KOM PUTASI

2

JURUSAN FISIKA UNIVERSITAS BRAWIJAYA MALANG 2010

MODUL PRAKTIKUM FISIKA KOM PUTASI

DAFTAR ISI DAFTAR ISI ............................................................................................................... 3 PRACTICE I PENDAHULUAN ................................................................................ 5 1.1. Pendahuluan................................................................................................ 5 1.2. Perbedaan Kalkulasi Analitis dan Numerik................................................ 5 1.3. Kode Program Komputer............................................................................ 5 1.4. Requirement................................................................................................ 6 1.5. Perintah-perintah Dasar .............................................................................. 6 1.6. Compiling Kode Program ......................................................................... 11 1.7. Plotting Data ............................................................................................. 12 1.7.1. Plotting GNUPLOT ............................................................................. 12 1.7.2. Plotting Microsoft Excel ...................................................................... 13 PRACTICE II ERROR PENDEKATAN ................................................................. 17 PRACTICE III AKAR-AKAR POLINOMIAL....................................................... 21 PRACTICE IV SOLUSI MATRIKS PERSAMAAN LINIER ............................... 25 PRACTICE V TRENDLINE ................................................................................... 31 PRACTICE VI DIFERENSIASI NUMERIK .......................................................... 34 PRACTICE VII INTEGRASI NUMERIK .............................................................. 37 PRACTICE VIII INTERPOLASI ............................................................................ 41 PUSTAKA ................................................................................................................ 45

JURUSAN FISIKA UNIVERSITAS BRAWIJAYA MALANG 2010

3

MODUL PRAKTIKUM FISIKA KOM PUTASI

4

JURUSAN FISIKA UNIVERSITAS BRAWIJAYA MALANG 2010

MODUL PRAKTIKUM FISIKA KOM PUTASI

PRACTICE I PENDAHULUAN 1.1. Pendahuluan Fisika komputasi pada dasarnya adalah menyelesaikan problem-problem fisika yang tidak dapat diselesaikan secara analitis dengan melakukan pendekatan numerik berdasarkan teori yang sudah ada. Pendekatan numerik tersebut umumnya dilakukan dengan bantuan komputer dan menggunakan bahasa pemrograman tertentu, seperti Pascal, Python, C, C++, Fortran dan lain sebagainya. Hal ini dikarenakan tidak semua problem matematik dapat diselesaikan oleh komputer secara langsung. Problem matematik yang rumit, perlu diubah terlebih dahulu ke bentuk operasi aritmatika ke penambahan, pengurangan, perkalian dan pembagian sederhana agar dapat dikalkulasi oleh komputer. Pengubahan/penurunan tersebut dikenal dengan sebutan pendekatan numerik, di mana hasil perhitungannya identik dengan adanya nilai error. Problem matematis yang perlu penurunan dengan metode numerik oleh komputer antara lain: problem diferensiasi, integrasi, pencarian akar persamaan polinomial orde tinggi, eigenvalue matrik, boundary value dan lain sebagainya. 1.2. Perbedaan Kalkulasi Analitis dan Nume rik Salah satu problem matematik yang oleh komputer diselesaikan dengan kalkulasi numerik adalah problem diferensiasi. Dimisalkan terdapat suatu problem fisika dengan persamaan matematis y(x)=2x2 -3x+1, yang secara analitis untuk x=5, turunan pertamanya dapat diketahui secara secara langsung dengan penurunan y‟(x)=dy(x)/dx=4x-3, sehingga nilai diferensiai orde satu terhadap x adalah:

Sedangkan untuk perhitungan secara numerik, problem diferensiasi dapat diturunkan dengan metode numerik beda maju (forward different) yang bentuk persamaannya: (1) dengan mengambil ∆x=0.1, didapatkan

=17.2 Dari kedua hasil tersebut dapat dibandingkan perbedaan penyelesaian antara numerik dan analitis mempunyai selisih sebesar 0.2, di mana selisih 0.2 ini nantinya akan dikenal sebagai nilai error. 1.3. Kode Program Komputer Salah satu teknik untuk melakukan komputasi numerik adalah dengan mengimplementasikannya ke bentuk kode program dengan bahasa pemrograman komputer tertentu. Dalam praktikum fisika komputasi ini, tidak disarankan untuk mengacu penggunaan pada salah satu bahasa pemrograman tertentu saja, melainkan praktikan dapat menggunakan bahasa pemrograman Pascal, Python, Matlab atau JURUSAN FISIKA UNIVERSITAS BRAWIJAYA MALANG 2010

5

MODUL PRAKTIKUM FISIKA KOM PUTASI

bahasa pemrograman lain, sesuai dengan kemampuan masing- masing. Dengan harapan, praktikan setelah melakukan paraktikum ini dapat menguasai setidaknya salah satu dari macam bahasa pemrograman, sebagai bekal untuk menyelesaikan problem fisika- matematik yang memerlukan penggunaan pendekatan numerik. 1.4. Requirement Agar semua Kode program yang dituliskan dalam Modul ini dapat berjalan dengan baik, perlu diketahui, semua kode program yang terdapat di dalam modul ini, telah di coba di Matlab v7.0.1. Sehingga praktikan dapat mempunyai gambaran penyesuaian untuk menggunakan compiler Matlab versi diantaranya. 1.5. Perintah-perintah Dasar Perintah-perintah dasar dalam Matlab yang akan sering digunakan dalam praktikum ini antara lain: a. Write atau print Perintah ini digunakan untuk menampilkan huruf atau nilai variabel hasil kalkulasi dari running kode program. Contoh source code-nya: Kode program 1. Hello world

Matlab disp(‘Hello World!’);

Untuk menampilkan “Hello World!”, yang merupakan statement standar yang dilakukan bagi pemula untuk mencoba kapabilitas sistem komputer yang digunakan, Matlab menggunakan perintah “disp”, yang juga merupakan perintah dasar ouput, untuk menandai sebuah proses atau mengetahui nilai dari suatu variabel hasil dari suatu perhitungan, sebagaimana ditunjukkan pada Kode program 1.

6

JURUSAN FISIKA UNIVERSITAS BRAWIJAYA MALANG 2010

MODUL PRAKTIKUM FISIKA KOM PUTASI

b. Read atau Input Perintah ini digunakan untuk memasukkan suatu nilai atau karakter ke variabel dalam kode program, Contoh source code-nya seperti: Kode program 2. Input

Matlab i=input('Masukkan bilangan bulat : '); disp('Hasil: '); disp(sprintf('Bilangan Bulat : %d',i)); disp(sprintf('Bilangan Asli : %.7f',i)); input('Press any key..');

Dalam praktikum ini, kebanyakan data yang digunakan sebagai variabel input adalah berupa angka, di mana input angka di atas dapat berupa bilangan bulat (integer) atau asli (real). Kode program Matlab di atas menunjukkan teknik untuk inisialisasi type data yang berbeda. Teknik pada Kode program 2 tersebut adalah untuk membedakan antara metode bilangan bulat dan asli, misalnya jika terdapat angka 2 sebagai inputan bilangan asli, beberapa bahasa pemrograman harus menuliskan dengan menambahkan satu angka nol dibelakang koma (Contoh: 2.0), karena jika tidak, bahasa pemrograman secara otomatis menginisialisasikannya sebagai bilangan bulat. Satu kelebihan Matlab, Matlab merupakan bahasa pemrograman interface. Di mana misalnya ketika bilangan bulat diperlukan menjadi bilangan asli, secara otomatis bilangan tersebut diinisialisasi menjadi bilangan asli oleh Matlab meskipun sebelumnya bertindak sebagai bilangan integer. Sedangkan kode program input pada baris akhir diperlukan agar aplikasi tidak langsung tertutup saat program telah selesai menjalankan perintah-perintah sebelumnya, dan pemberian perintah input ini bersifat optional. c. Looping for atau while Pendekatan numerik sering kali melakukan perulangan dalam perhitungannya. Perintah perulangan yang dapat digunakan adalah perintah for dan while. Perintah for digunakan jika tahap perulangannya berupa bilangan bulat. Sedangkan perintah while digunakan jika tahap perula ngannya berupa bilangan asli. Berikut contoh penggunaan perintah for dan while untuk menghitung xy dan mengetahui angka terkecil yang dapat dihitung oleh prosesor. Perintah for: Kode program 3. Perpangkatan

Matlab x=input('x = '); y=input('y = '); hasil=1; for i=1:y hasil=hasil*x; end disp(sprintf('Hasil = %d',hasil));

JURUSAN FISIKA UNIVERSITAS BRAWIJAYA MALANG 2010

7

MODUL PRAKTIKUM FISIKA KOM PUTASI

Perintah while: Kode program 4. Presisi mesin

Matlab i=1; angka=2; hasil=0; while (hasil~=1) angka=angka/9; hasil=1+angka; disp(sprintf('%3d i=i+1; end;

%.16f',i,hasil));

Kondisi “~=” dalam contoh perulangan while di atas, berfungsi menunjukkan keadaan bahwa selama hasil nilainya tidak sama dengan 1, maka perhitungan nilai “angka” akan dilanjutkan ke nilai berikutnya. Selama ditambahkan dengan nilai “angka”, nilai hasil tidak sama dengan 1, prosesor komputer masih dapat membedakan nilai tersebut sebagai angka yang berbeda dengan selisih yang kecil. Sedangkan ketika nilainya telah dianggap sama, nilai “angka” sebelum perulangan berakhir, nilai “angka” tersebut merupakan hasil pendekatan nilai terkecil yang dapat dihitung oleh prosesor. d. Kondisi if Ekspresi kondisi terdiri dari berbagai macam. Untuk bahasa pemrograman yang berbeda, berbeda pula operator pembanding yang digunakan, meskipun mempunyai fungsi yang sama. Perintah yang memerlukan kondisi ini adalah perintah if. Berikut contoh penggunaan perintah tersebut, yang digunakan untuk mencari akar dari fungsi f(x)=x2 -4*x-5.

8

JURUSAN FISIKA UNIVERSITAS BRAWIJAYA MALANG 2010

MODUL PRAKTIKUM FISIKA KOM PUTASI

Kode program 5. Akar fungsi

Matlab xp=0; x1=15;n=50; p=xp*xp-4*xp-5; disp(sprintf('x y')); for i=0:n x=0.5*(xp+x1); y=x*x-4*x-5; disp(sprintf('%.10f %.10f',x,y)); if (p*y)>0 xp=x; end if (p*y) central difference

Di mana n jumlah data. c. Implementasi Kode Program Dimisalkan terdapat deret data hasil pengamatan gerak bola kasti dalam t, sumbu x dan sumbu y dengan ∆t=0.05 s adalah sebagai berikut: t (s) x (m) y (m)

0.00 0.05 0.00 0.10 0.00 2.51

0.10 0.20 5.00

0.15 0.20 0.30 0.40 7.46 9.90

0.25 0.50 12.32

0.30 0.35 0.60 0.70 14.71 17.07

0.40 0.80 19.41

0.45 0.90 21.73

Gambar 6.1 Ilustrasi gerak bola kasti

Jika diplotkan berdasarkan letak posisi x dan y, akan didapatkan ilustrasi gerakan bola sebagaimana Gambar 6.1. Untuk mengetahui kecepatan setiap t untuk arah y (v y) implementasi kode program untuk pendekatan nilai kecepatan dengan metode beda maju, beda mundur dan beda tengah adalah:

JURUSAN FISIKA UNIVERSITAS BRAWIJAYA MALANG 2010

35

MODUL PRAKTIKUM FISIKA KOM PUTASI

Kode program 13. Pendekatan deferensiasi orde satu dengan beda maju, mundur dan tengah

Matlab fp=fopen('data.txt','w'); n=10;dt=0.05; f=[0 2.49 4.9 7.16 9.2 10.94 12.3 13.21 13.6 13.39]; bd=[];fd=[];cd=[]; %inisialisasi awal bd=f;fd=f;cd=f; %backward difference for i=2:n bd(i)=(f(i)-f(i-1))/dt; end %forward difference for i=1:n-1 fd(i)=(f(i+1)-f(i))/dt; end %central difference for i=2:n-1 cd(i)=(f(i+1)-f(i-1))/(2*dt); end t=0; fprintf(fp,'t BD FD CD\n'); for i=1:n fprintf(fp,'%0.2f %2.7f %2.7f %2.7f\n',t,bd(i),fd(i),cd(i)); t=t+dt; end fclose(fp); disp('Done..');

d. Tugas 1. Jalankan Kode program 13, atau buat kode program sesuai dengan kode program yang anda kuasai berdasarkan Pseudocode 7 untuk mendapatkan data-data seperti yang terdapat pada file “data.txt”! 2. Hitung secara analitik kecepatan arah sumbu y (v y) pada t=0.0, 0.05, 0.10, 0.15,.., 0.90! 3. Plot “data txt” dan bandingkan nilai kecepatan hasil pendekatan metode beda maju, mundur dan tengah, manakah hasilnya yang sesuai dengan perhitungan analitik? 4. Buatlah kode program (atau sesuai bahasa pemrogramanan yang anda kuasai) untuk menghitung percepatan arah y (menggunakan persamaan 16)! Buktikan percepatan tersebut adalah percepatan gravitasi!

36

JURUSAN FISIKA UNIVERSITAS BRAWIJAYA MALANG 2010

MODUL PRAKTIKUM FISIKA KOM PUTASI

PRACTICE VII INTEGRASI NUMERIK Teori Selain bentuk diferensiasi, problem matematik yang sering ditemui dalam fisika adalah problem integrasi. Untuk pendekatan secara numerik terdapat berbagai metode seperti metode kotak, trapesium, Simpson dan Newton-Cotes. Namun di sini akan dipelajari integrasi numerik dengan mengkhususkan pada metode trapesium. Secara umum integrasi dapat merupakan luasan yang berada di bawah fungsi. Oleh karena itu dengan metode trapesium dapat diilustrasikan ide integrasi numeriknya sebagaimana Gambar 7.1.

Gambar 7.1 Metode trapesium

Sehingga solusi persamaan integrasi numeriknya adalah:

, f(x)...


Similar Free PDFs