Modul Praktikum Komputasi II

14
 Modul Praktikum Matakuliah Metode Komputasi II disusun Oleh Dedy Farhamsa Prodi Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Tadulako 2015

description

metkom

Transcript of Modul Praktikum Komputasi II

Page 1: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 1/14

 

Modul Praktikum

Matakuliah Metode Komputasi II

disusun Oleh

Dedy Farhamsa

Prodi Fisika

Fakultas Matematika dan Ilmu Pengetahuan Alam

Universitas Tadulako

2015

Page 2: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 2/14

 

Daftar Isi

Praktikum 1. Menghitung Integral ............................................................................................................................ 3 

1.1. Teori Simson 1/3 ................................................................................................................................................. 3 

1.2. Program ................................................................................................................................................................... 4 

1.3. Tugas ........................................................................................................................................................................ 4 

Praktikum 2. Differensial .............................................................................................................................................. 5 

2.1. Teori Differensial Numerik ............................................................................................................................. 5 

2.2. Program ................................................................................................................................................................... 6 

2.3. Tugas ........................................................................................................................................................................ 6 

Praktikum 3. Mencari Akar Persamaan ................................................................................................................... 7 

3.1. Teori Metode Newton Rapson ....................................................................................................................... 7 

3.2. Program ................................................................................................................................................................... 8 

3.3. Tugas ........................................................................................................................................................................ 8 

Praktikum 4. Interpolasi ................................................................................................................................................ 9 

4.1. Teori Polinom Newton ...................................................................................................................................... 9 

4.2. Program ................................................................................................................................................................ 11 

4.3. Tugas ..................................................................................................................................................................... 11 

Praktikum 5. Persamaan Differensial ................................................................................................................... 12 

5.1. Teori Runga Kutta ............................................................................................................................................ 12 

5.2. Program ................................................................................................................................................................ 13 

5.3. Tugas ..................................................................................................................................................................... 14 

Page 3: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 3/14

Praktikum 1. Menghitung Integral

1.1. Teori Simson 1/3

Bentuk umum integral yang digunakan adalah

 

Yang merupakan nilai luas dari suatu curva dari batas titik a

hingga titik b. Untuk mempermudah perhitungan, aturan

trapesium diperkenalkan oleh Newton-Cotes berdasarkan

polinomial orde pertama. Hasil integrasi merupakan luas trapesium antara

  dan

  

[  ] 

Salah satu cara untuk meningkatkan akurasi perhitungan aturan trapesium adalah membagi

interval lintasan integrasi antara a ke b menjadi beberapa segmen dan menerapkan aturan ini

kesetiap segmen. Luas area setiap segmen dapat dijumlahkan untuk menghasilkan area seluruh

interval. Metode ini disebut multi integral.

 

 

[  ] [  ] [  ] [  ] 

[  ] 

dimana  

Page 4: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 4/14

1.2. Program

public class Integral {

public double integral(double a, double b, int n) {

double I = 0;

double dx = (b-a)/n;for(int i=0; i<=n; i++) {

if(i==0 || i==n)

I = I + getFx(a+i*dx);

else

I = I + 2*getFx(a+i*dx);

}

I = dx*I/2;

return I;

}

public double getFx(double x) {

double f = //(tugas 1)

return f;}

public static void main(String[] args) {

Integral in = new Integral();

double a =

double b =

int N =

double I = in.integral(a, b, N);

System.out.println(I);

}

}

1.3. Tugas

1. Isi method fungsi() dengan fungsi   [double f = 3*Math.pow(x,2)-5]

2. Kerjakan integral fungsi diatas secara manual dengan batas a=0 dan b=5;

3. Dalam metode integral trapesium, hasil integral akan mendekati nilai sebenarnya (manual)

jika jumlah cacahan trapesium (N) lebih banyak, coba running program untuk N=4 dan

N=100, bandingkan hasilnya dengan hasil perhitungan manual.

4. (Seperti no.1) Rubah fungsi dengan     [double f = x*Math.tan(x)], running dan

perhatikan hasilnya.

Page 5: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 5/14

Praktikum 2. Differensial

2.1. Teori Differensial Numerik

Secara matematika, differensial berarti rata-rata perubahan variabel tak bebas terhadap

perubahan variabel bebas.

   

Jika  sangat kecil mendekati nol maka differensial menjadi turunan (derivative)

   

Bentuk turunan kedua adalah turunan dari bentuk turunan pertama, yang mengidentifikasikan

seberapa cepat slope berubah.

()

   

   

 

 

 

   

Page 6: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 6/14

2.2. Program

public class Differensial {

/*methode untuk menghitung differensial orde 1*/

public double diffOrde1(double x, double dx) {

double hasil = 0;

hasil = (getFx(x+dx) - getFx(x))/dx;return hasil;

}

/*methode untuk menghitung differensial orde 2*/

public double diffOrde2(double x, double dx) {

double hasil = 0;

hasil = (getFx(x+2*dx) - 2*getFx(x+dx) + getFx(x))/Math.pow(dx,2);

return hasil;

}

/*methode untuk mengisi fungsi(x)*/

public double getFx(double x) {

double f = //(tugas 1)

return f;}

public static void main(String[] args) {

Differensial diff = new Differensial();

double x = //(tugas 3);

doubel deltaX = //(tugas 3);

double hasil1 = diff.diffOrde1(x, deltaX);

double hasil2 = diff.diffOrde2(x, deltaX);

System.out.println(hasil+" "+hasil2);

}

}

2.3. Tugas

1. Isi method fungsi() dengan fungsi   

2. Kerjakan integral fungsi diatas secara manual untuk dan

  dititik x=2;

3. Dalam metode differensial numerik, hasil differensial akan mendekati nilai sebenarnya

(manual) jika nilai deltaX mendekati 0, coba running program untuk deltaX=0.1 dan

N=0.0001, isi x=2 dan bandingkan hasilnya dengan hasil perhitungan manual.

4. (Seperti no.1) Rubah fungsi dengan

 

, running dan perhatikan hasilnya.

Page 7: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 7/14

Praktikum 3. Mencari Akar Persamaan

3.1. Teori Metode Newton Rapson

Akar-akar suatu persamaan dari suatu fungsi x sebenarnya adalah harga x yang membuat fungsi

  . Menyelesaikan suatu akar persamaan dapat dikerjakan dengan metode analitis dan

komputasi. Contoh menggunakan metode analitik adalah sebagai berikut :berapakah akar

persamaan dari   ?

jawab :      

Contoh lain : berapakah akar persamaan dari     ?. Fungsi ini sangat sulit untuk

diselesaikan menggunakan metode analitis, jadi kita akan menggunakan metode komputasi.

Yang harus dilakukan pertama kita harus menebak nilai awal   , kemudian sebuah nilai

taksiran akar persamaan   akan dihitung dari ekstrapolasi garis singgung f(x) dibawah

sumbu x

 

jika nilai  benar adalah akar persamaan yang dicari, maka error  pasti bernilai

kecil (kurang dari 1%), jika tidak, lakukan ektrapolasi kembali pada   hingga kita

mendapatkan error<<1%

Iterasi ke-0

 (nilai tebakan awal)

   

   

   

    

 

Karena error masih tinggi lakukan

ektrapolasi kembali

Iterasi ke-1

 

   

   

 

 

 

 

Karena error masih tinggi

lakukan ektrapolasi kembali

Iterasi ke-2

 

   

   

 

 

 

 

 

Karena error<1%, maka

nilai x =  adalah nilai

akar persamaan yg dicari.

Page 8: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 8/14

3.2. Program

public class NewtonRaphson {

double e = 0.001; //nilai error 1%

public double getRootSquare(double xi) {

double xn = 0;

Differensial diff = new Differensial();double fx, dfx;

for(int i=0; i<100; i++) { //dicoba iterasi sampai 100 kali

fx = diff.getFx(xi);

dfx = diff.diffOrde1(xi, 0.0001);

xn = xi - fx/dfx;

if(Math.abs((xn-xi)/xn)<e) break; //jika error<1% hentikan iterasi

else xi = xn;

}

return xn;

}

public static void main(String[] args) {

NewtonRaphson nr = new NewtonRaphson();System.out.println(nr.getRootSquare(1.5));

}

}

3.3. Tugas

1. Buka kembali program Differensial pada praktikum 2.

2. Pada class Differensial, isi method fungsi()   [Math.exp(x)-2-Math.pow(x, 2)]

3. Gunakan class NewtonRapshon untuk mencari akar persamaannya.

4. Kerjakan secara manual mencari akar persamaan fungsi   dan bandingkan

hasilnya secara komputasi.

Page 9: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 9/14

Praktikum 4. Interpolasi

4.1. Teori Polinom Newton

Adaikan kita memiliki tabulasi data dan ingin menaksir nilai-nilai yang terletak diantara titik-

titik data tersebut, metode yang digunakan untuk tujuan tersebut adalah interpolasi. Secara

umum interpolasi digunakan untuk mengkonstruksi suatu fungsi dari himpunan titik yang telah

diketahui, kemudian kita bisa memperkirakan nilai titik lain yang belum diketahui

menggunakan fungsi tersebut. Misal diberikan dua pasangan titik yaitu (x 0, f(x0)) dan (x1, f(x1))

dengan x0  x1. Maka dengan menggunakan persamaan garis antara 2 titik (P1(x))

 

disebut polinomial linier, persamaan diatas bisa juga ditulis dengan

 

dimana   dan

[ ].

Untuk persamaan polinomial orde dua, tiga dan seterusnya ditulis sebagai berikut :

Polinomial kuadratik :  

Polinomial qubik :  

dan seterusnya, dimana

  [ ] 

     [ ] [ ]

[ ] 

   

    [ ] 

dan seterusnya. Algoritma untuk mencari nilai

 mengikuti tabel dibawah ini

Contoh : Konstruksikan fungsi f(x) = cos x dari titik-titik x0 = 0.2, x1 = 0.3 dan x2 = 0.4

menggunakan Interpolasi Newton, kemudian taksir nilai cos(0.25)

Penyelesaian :

Page 10: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 10/14

 

[ ]  

 [ ]

 

[ ] [][]

= +0.756

   

= 0.98 – 0.247x + 0.756x2

inilah fungsi polinomial yang dihasilkan, untuk taksiran nilai fungsi dititik x=0.2

 

bandingkan dengan hasil cos(0.25)= 0.96891.

Page 11: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 11/14

4.2. Program

public class Interpolasi {

double xn[] = {0.2, 0.3, 0.4};

int orde = xn.length;

double an[][] = new double[xn.length][xn.length];

double getFx(double x) { //setting fungsi

double f = Math.cos(x);

return f;

}

void getFPolinomial() {

//membuat an

for(int j=0; j<orde; j++) {

for(int i=0; i<(orde-j); i++) {

if(j==0) an[i][j] = getFx(xn[i]);

else an[i][j] = (an[i+1][j-1]-an[i][j-1])/(xn[i+1]-xn[0]);

}

}//menampilkan pers polinomial

System.out.print("f(x) = ");

for(int j=0; j<orde; j++) {

if(j==0) System.out.print(an[0][j]);

else System.out.print(" + "+ an[0][j] +"x^"+j);

}

System.out.println();

}

double getValue(double x) { //mencari nilai fungsi f dititik x

double P = 0;

for(int j=0; j<orde; j++)

P = P + an[0][j]*Math.pow(x, j);

return P;

}

public static void main(String args[]) {

Interpolasi inter = new Interpolasi();

inter.getFPolinomial();

System.out.println(inter.getFx(2));

}

}

4.3. Tugas

1. Buatlah program diatas untuk membandingkan perhitungan manual dan komputasi.

2. Kontruksi persamaan polinomial orde 3 dari fungsi ln(x) untuk titik [1, 4, 5, 6], kemudian

tentukan nilai log(2) secara komputasi.

Catatan : fungsi ln(x) pada program java ditulis Math.log(x), merujuk logaritma natural

 

Page 12: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 12/14

Praktikum 5. Persamaan Differensial

5.1. Teori Runga Kutta

Metode Runga Kutta digunakan untuk menyelesaikan persamaan differensial. Metode ini

menawarkan truncation error yang lebih kecil dibandingkan metode lain seperti metode Euler.

Persamaan-persamaan yang menyusun metode Runge-Kutta Orde Empat adalah sebagai

 berikut :

 

 

 

 

 

 

Contoh : Diketahui persamaan diferensial  dimana dan .

Jawab : dengan mengganti y menjadi , kita bisa nyatakan   sebagai

   

Jika N=10, maka

  dan   serta

. Sekarang mari kita demonstrasikan metode Runge-Kutta Orde Empat ini. Untuk

menghitung , tahap-tahap perhitungannya dimulai dari menghitung ,     

(

) * ( ) ( ) +

*(

) (

) + 

Page 13: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 13/14

(

) * ( ) ( ) +

*( ) (

) + 

[ ] [ ]  

dan akhirnya diperoleh

 

dengan cara yang sama,

  dan seterusnya dapat dihitung. Tabel berikut menunjukan

hasil perhitungannya.

        | | 0 0,0 0,5000000 0,5000000 0,0000000

1 0,2 0,8292933 0,8292986 0,0000053

2 0,4 1,2140762 1,2140877 0,0000114

3 0,6 1,6489220 1,6489406 0,0000186

4 0,8 2,1272027 2,1272295 0,0000269

5 1,0 2,6408227 2,6408591 0,0000364

6 1,2 3,1799942 3,1799415 0,0000474

7 1,4 3,7323401 3,7324000 0,0000599

8 1,6 4,2834095 4,2834838 0,0000743

9 1,8 4,8150857 4,8151763 0,0000906

10 2,0 5,3054720 5,3053630 0,0001089

5.2. Program

public class RungeKutta {

double a = 0.0, b = 2.0; //batas nilai t : a < t < b

int N = 10;

double h = (b-a)/N;

double w0=0.5; //wi=y(0)

double getFx(double ti, double wi) { //setting fungsi y'=f(ti,wi)

double f = wi - Math.pow(ti,2) + 1;

return f;

}

void run() {

double k1, k2, k3, k4;

double wi = w0;

for(double ti=a; ti<=b; ti+=h) {

System.out.println(ti+"\t"+wi);

k1 = h*getFx(ti,wi);

k2 = h*getFx((ti+h/2),(wi+k1/2));k3 = h*getFx((ti+h/2),(wi+k2/2));

Page 14: Modul Praktikum Komputasi II

7/21/2019 Modul Praktikum Komputasi II

http://slidepdf.com/reader/full/modul-praktikum-komputasi-ii 14/14

  k4 = h*getFx((ti+h),(wi+k3));

wi = wi + (k1 + 2*k2 + 2*k3 + k4)/6;

}

}

public static void main(String args[]) {

RungeKutta rk = new RungeKutta();

rk.run();

}

}

5.3. Tugas

Sebuah kapasitor yang tidak bermuatan dihubungkan secara seri dengan sebuah

resistor dan baterry. Diketahui = 12 volt, C = 5,00 μF dan R = 8,00 ×105Ω. Saat saklar

dihubungkan (t=0) muatannya tidak ada (q=0)

 

Tentukan muatan q dari selang waktu 0.0<t<1.0 detik.

Petunjuk  : deklarasikan double e=12, C=0.000005, R = 800000;

kemudian ganti fungsi menjadi f = e/R – wi/R8C. Tidak ada variable ti difungsi ini.