disusun Oleh
Dedy Farhamsa
Prodi Fisika
Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Tadulako
2015
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
( )
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
( )]
( )
( )
[ ( )
( )]
( )
( )
( )
[ ( )
( )]
( )
)]
[ (
)]
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
perhatikan hasilnya.
Praktikum 2. Differensial
2.1. Teori Differensial Numerik
Secara matematika, differensial berarti rata-rata perubahan variabel tak bebas terhadap
perubahan variabel bebas.
(
Jika
( )
( )
Bentuk turunan kedua adalah turunan dari bentuk turunan pertama, yang mengidentifikasikan
seberapa cepat slope berubah.
(
(
(
)
)
( )
)
( )
( )
( )
)
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
( )
komputasi. Contoh menggunakan metode analitik adalah sebagai berikut :berapakah akar
persamaan dari ( )
jawab :
diselesaikan menggunakan metode analitis, jadi kita akan menggunakan metode komputasi.
Yang harus dilakukan pertama kita harus menebak nilai awal
taksiran akar persamaan
sumbu x
( )
( )
jika nilai
| pasti bernilai
kecil (kurang dari 1%), jika tidak, lakukan ektrapolasi kembali pada
hingga kita
mendapatkan error<<1%
Iterasi ke-0
Iterasi ke-1
Iterasi ke-2
( )
(
( )
( )
|
|
Karena error<1%, maka
nilai x =
adalah nilai
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)]
dan bandingkan
Praktikum 4. Interpolasi
4.1. Teori Polinom Newton
Adaikan kita memiliki tabulasi data dan ingin menaksir nilai-nilai yang terletak diantara titiktitik 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 (x0, f(x0)) dan (x1, f(x1))
dengan x0
( )
)
(
)
( )
dimana
)
(
(
( ) dan
)
)
].
Untuk persamaan polinomial orde dua, tiga dan seterusnya ditulis sebagai berikut :
Polinomial kuadratik :
Polinomial qubik :
( )
( )
(
(
)(
)(
)
)
)(
)(
( )
( )
( )
( )
( )
[
( )
( )
]
( )
( )
[
( )
[
( )
]
( )
]
( )
[
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 :
( )
[
[
)
(
]
]
)
]
)
(
(
[
)
[
= +0.756
( )
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
( )
( )
)
(
dan ( )
dimana
) sebagai
)
N=10,
maka
dan
serta
. Sekarang mari kita demonstrasikan metode Runge-Kutta Orde Empat ini. Untuk
menghitung
(
)
*(
*(
)
)
)
(
)
)
+
)
*(
*(
)
)
[(
)
)
+
+
[(
hasil perhitungannya.
( )
0
1
2
3
4
5
6
7
8
9
10
0,0
0,2
0,4
0,6
0,8
1,0
1,2
1,4
1,6
1,8
2,0
0,5000000
0,8292933
1,2140762
1,6489220
2,1272027
2,6408227
3,1799942
3,7323401
4,2834095
4,8150857
5,3054720
0,5000000
0,8292986
1,2140877
1,6489406
2,1272295
2,6408591
3,1799415
3,7324000
4,2834838
4,8151763
5,3053630
0,0000000
0,0000053
0,0000114
0,0000186
0,0000269
0,0000364
0,0000474
0,0000599
0,0000743
0,0000906
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));
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)