modul praktikum komputasi ii
DESCRIPTION
metkomTRANSCRIPT
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
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
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
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.
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.
()
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.
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.
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.
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 :
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.
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
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 ,
(
) * ( ) ( ) +
*(
) (
) +
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));
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.