Anda di halaman 1dari 14

LAPORAN PRAKTIKUM FISIKA KOMPUTASI

PRAKTIKUM V TRENDLINE DAN DIFERENSIASI NUMERIK


KELAS F

Disusun Oleh:
Nama: Monika Rusdiana Dewi
NIM: 155090301111017
Hari/Tanggal Praktikum: Senin, 20 November 2017

LABORATORIUM KOMPUTASI
JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS BRAWIJAYA
2017
Percobaan 1

Soal
Y=a + bx

1 ln(1) 1 ln(1)
1 ln(2) 1 ln(2)
1 ln(3) 1 ln(3)
1 ln(4) [ln
( )
] = 1 ln(4)
1 ln(5) 1 ln(5)
1 ln(6) 1 ln(6)
[1 ln(7)] [1 ln(7)]
Data
X Y
0,15 4,4964
0,4 5,1284
0,6 5,6031
1,01 6,2884
1,5 7,0989
2,2 7,5507
2,4 7,5106

Metode Analitik
y= a + bx y(x)= ln(y)
y= a bx a=ln a
=ln(y) b= b
=ln(a) + b ln (x) x= ln x

1 ln(1) 1 ln(1)
1 ln(2) 1 ln(2)
1 ln(3) 1 ln(3)
1 ln(4) [ln()] = 1 ln(4)
1 ln(5) 1 ln(5)
1 ln(6) 1 ln(6)
[1 ln(7)] [1 ln(7)]
A x B
1
Selanjutnya yaitu :
Dicari ATA , ATB, dicari invers, ATY, sehingga ditemukan persamaan
untuk mencari nilai a dan b.

2
Metode Numerik

Kode Program

Command Window

Penjelasan
Percobaan pertama ini adalah program yang digunakan untuk
mencari nilai a dan b pada persamaan Y=a + bx yang matriks nya
merupakan fungsi ln. Langkah pertama yang dilakukan yaitu
memasukkan inputnya berupa data yang telah diketahui yaitu nilai untuk
3
x dan y nya. Setelah dimasukkan nilai x dan y nya sesuai data tabel,
kemudian di deklarasikan untuk nilai masing masing variabel. Yaitu :
sumX=0;
sumXY=0;
sumXX=0;
sumY=0;
sumX=log(x);
sumXY=log(x).*log(y);
sumXX=log(x).*log(x);
sumY=log(y);
sumX=0, sumXY=0, sumXX=0, sumY=0, yaitu untuk menafsirkan nilai
awal bahwa variabel variabel tersebut bernilai nol. Kemudian
dimasukkan rumus untuk x=log(x), xy=log(x) log(y), xx=log(x) log(x),
dan y=log(y). Perintah ln dalam perhitungan numerik digantikan oleh log.
Dalam perkalian tersebut ditambahkan tanda titik (.) karena nilai x dan y
nya ada banyak sesuai dengan tabel yaitu ada 7 nilai untuk x dan y nya.
Perintah selanjutnya yaitu for n=1:7 karena datanya ada 7. Selanjutnya
dituliskan rumus
sumX=sumX+x(n);
sumXY=sumXY+(x(n).*y(n));
sumY=sumY+y(n);
sumXX=sumXX+(x(n).^2);
sumX=sumX+x(n); digunakan untuk mencari nilai X dengan
memasukkan nilai x yang bervariasi. sumXY=sumXY+(x(n).*y(n));
digunakan untuk mencari nilai XY dengan memasukkan nilai x dan y
yang bervariasi sebanyak 7. sumY=sumY+y(n); digunakan untuk
mencari nilai Y dengan variasi 7 nilai y, dan sumXX=sumXX+(x(n).^2);
digunakan untuk mencari X kuadrat. Kemudian end untuk mengakhiri
proses perhitungan tersebut. Dan untuk mencari nilai a dan b nya maka
ditulis :
a=(sumXX.*sumY-sumX.*sumXY)/(n).*sumXX-((sumX).^2);
b=(n.*sumXY-sumX.*sumY)/(n.*sumXX+(sumX).^2);
kemudian untuk melihat hasilnya yaitu diketik
disp(sprintf('maka y=%3f-%3fx',a,b)); dan untuk melihat
grafiknya, maka dapat dituliskan fungsinya dan perintah untuk
menggambar grafiknya yaitu:
f=@(x)b*x+a;
plot(x,y,'o',x,y,'-')

4
kemudian file disimpan. Untuk menguji coba pada command window
maka dapat diketik regresi 1. Kemudian akan muncul grafik yang
menggambarkan nilai dari a dan b yang dicari seperti berikut:

dan juga akan muncul nilai dari a dan b yang sudah dalam bentuk
persamaan Y=a + bx seperti pada layar command window diatas. Dan
program selesai.

Percobaan 2

Soal
Dapatkan nilai a, b, dan c pada persamaan y(x)=a+bx+c 2 pada
persamaan matriks
1 1 x1 1
1 2 2 2
1 3 3 [ ] = 3
1 4 4 4

1 5 5 5
[1 6 6] [6]

5
Data
X Y
0 2,1
1 7,7
2 13,6
3 27,2
4 40,9
5 61,1

Jawaban

Metode Analitik
1 1 x1 1
1 2 2 2
1 3 3 [ ] = 3
1 4 4 4

1 5 5 5
[1 6 6] [6]
A x B
Kemudian dicari nilai ATA, ATB, dicari invers, ATY, sehingga
ditemukan persamaan untuk mencari nilai a, b, dan c seperti langkah yang
dilakukan pada nomor 1.

6
Metode Numerik

Kode Program

Command Window

Penjelasan
Untuk percobaan 2 sama dengan percobaan pertama, yaitu
mencari suatu nilai dengan cara regresi matriks. Yang membedakan
adalah percobaan kedua ini menggunakan matriks 3x3. Untuk mencari
nilai a,b, dan c pada persamaan y(x)=a+bx+c2 dilakukan transpose
matriks, dicari determinan, juga invers untuk cara analitiknya. Namun
untuk metode numerik nya langkahnya yaitu pertama dimasukkan dahulu
inputnya berupa nilai x dan nilai y yang telah diketahui pada data soal.
Kemudian di deklarasikan
sumX=0;
sumXY=0;
7
sumXX=0;
sumXXY=0;
sumXXX=0;
sumXXXX=0;
sumY=0;
detA=0;
untuk mengasumsikan nilai awal bahwa X=0, XY=0, X2=0, X2Y=0,
X3=0, X4=0, Y=0, dan determinan sama dengan nol. Kemudian
dimasukkan perintah perulangan for n=1:6 karena nilai x dan y nya yang
dicari sebanyak 6 seperti yang ada dalah data. Kemudian dimasukkan
rumus:
1.sumX=sumX+x(n);
2.sumXY=sumXY+(x(n).*y(n));
3.sumY=sumY+y(n);
4.sumXX=sumXX+(x(n).^2);
5.sumXXY=sumXXY+((x(n).^2)*y(n));
6.sumXXX=sumXXX+(x(n).^3);
7.sumXXXX=sumXXXX+(x(n).^4);
8.detA=detA+(n.*sumX.*sumXXX)+(sumX.*sumXXXX.*sumXX)+
(sumXX.*sumX.*sumXXX)-((sumXX).^3)-n.*((sumXXX).^2)-
((sumXX).^2.*sumXXXX);
9.end
1. digunakan untuk mencari nilai Xn
2. digunakan untuk mencari nilai XnYn
3. digunakan untuk mencari nilai Yn
4. digunakan untuk mencari nilai Xn2
5. digunakan untuk mencari nilai Xn2Yn
6. digunakan untuk mencari nilai Xn3
7. digunakan untuk mencari nilai Xn4
8. digunakan untuk mencari nilai determinan
9. digunakan untuk mengakhiri perintah perulangan
Kemudian dari determinan dapat dicari nilai a,b, dan c dengan
memasukkannya ke dalam rumus matriks seperti biasanya yaitu :
a=(((sumX.*sumXXXX-
(sumXXX).^2)).*sumY)+((sumX.*sumXXXX-
sumXX.*sumXXX).*sumXY)+((sumX.*sumXXX-
(sumXX).^2).*sumXXY)/detA;
b=((sumX.*sumXXXX-sumXXX.*sumXX).*sumY)+((n.*sumXXX-
(sumXX).^2).*sumXY)+((n.*sumXXX-
sumXX.*sumX).*sumXXY)/detA;

8
c=((sumX.*sumXXX-(sumXX).^2).*sumY)+((n.*sumXXX-
sumX*sumXX).*sumXY)+((n.*sumXX-
(sumX).^2).*sumXXY)/detA;
untuk mengetahui hasilnya maka diketik
disp(sprintf('y=%.3f+3fx+%3fx^2',a,b,c));
dan dimasukkan rumus persamaannya yaitu f=@(x)c*x^2+b*x+a;
kemudian agar dapat ditampilkan bentuk grafiknya maka dapat di plot
grafik dengan menambahkan plot(x,y,'o',x,y,'-'). Kemudian
file disimpan dengan nama regresi2. Untuk melihat hasilnya diketik pada
command window regresi2, maka akan muncul nilai a,b,dan c yang dicari
dalam format persamaan y(x)=a+bx+c2, yaitu
y=-4131708.324+3fx+-628374.486132x^2y
=360849.903+3fx
Dan juga akan muncul grafik yang menampilkan titik-titik data yang
dicari seperti berikut:

Percobaan 3

Soal
Buatlah program menggunakan beda maju, beda mundur, dan
beda tengah dalam 1 file dengan data x dan y yang telah diketahui.
9
Jawaban

Metode Analitik

Beda maju
f(xi+1)f(xi) 0,14574425
f(xi)= = = 0,71
0,204082
Beda mundur
f(xi)f(xi1) 11
f(xi)=
= 01 = 0,00
Beda tengah
f(xi+1)f(xi1) 0
f(xi)= 2.
= 20,14574425 = 0,00

Metode Numerik
Kode Program

10
Command Window

Penjelasan
Program ketiga ini digunakan untuk mencari nilai turunan dari
data-data yang telah diketahui, dengan menggunkan metode beda maju,
beda mundur, dan beda tengah (gabungan dari beda maju dan beda
mundur). Caranya dimasukkan dahulu inputnya berupa data x dan data y.
Kemudian dimasukkan n=50, yaitu data yang dicari sebanyak 50 nilai.
Selanjutnya dibuat deklarasi
1.backward=0;
2.forward=0;
3.middle=0;
4.mx=x(n)-x(n-1);
5.f=y;
1. digunakan untuk menyatakan bahwa beda mundur=0
2. digunakan untuk menyatakan bahwa beda maju=0
3. digunakan untuk menyatakan bahwa beda tengah=0
4. digunakan untuk menyatakan rumus delta x yaitu x ke n dikurangi
dengan xn-1.
5. digunakan untuk menyatakan fungsi f sama dengan fungsi y
Kemudian dimasukkan rumus beda mundur, beda maju, dan beda
tengah.
Untuk beda mundur
for i=2:n
11
backward(i)=(f(i)-f(i-1))/mx;
end
Untuk beda maju
for i=1:n-1
forward(i)=(f(i+1)-(i))/mx;
end
untuk beda tengah
for i=2:n-1
middle(i)=(f(i+1)-f(i-1))/(2*mx);
end
Kemudian dinyatakan bahwa x=0, yaitu perhitungan dimulai dari x=0
seperti pada data x. Untuk memunculkan hasilnya maka ditulis disp('x
backward forward middle');
Dan agar hasil beda mundur, beda maju, dan beda tengah nya dapat
muncul secara bersama dalam satu perintah, maka perintahnya yaitu:
for i=1:(n-1)
disp(sprintf('%0.2f %0.2f %0.2f
%0.2f\n',x,backward(i),forward(i),middle(i)));
x=x+mx;
end
disp('done..');
Kemudian file disimpan dengan nama beda. Untuk mengecek hasilnya
pada command window dapat diketik beda, maka hasilnya akan
langsung muncul nilai beda mundur, beda maju, dan beda tengah dalam
satu baris dan sebanyak 50 nilai kebawah yaitu sesuai yang dicari pada
data.

12
Lampiran Command History

13