Nama
: Lina Marlina
NIM
: 109017000039
Kelas
: PMTK – 6B1
Tugas Pemrograman Komputer 2
REGRESI LINIER PADA MATLAB A. Pengertian Regresi adalah sebuah teknik untuk memperoleh persamaan kurva pendekatan dari titik-titik data. Regresi linier merupakan suatu metode yang digunakan untuk menentukan fungsi linier (garis lurus) yang paling sesuai dengan kumpulan titik data *( )
+ yang diketahui. Pernyataan matematis untuk fungsi linear tersebut yaitu :
dengan dinamakan galat atau sisa. Sisa adalah selisih antara pengamatan dengan garis:
Gambar Sebaran data dengan kurva linier
Dalam regresi linier ini yang dicari adalah nilai dan dari fungsi linier
, dengan:
∑ (∑ )(∑ ) ∑ (∑ )
1
(∑ )
(∑ )
̅
B. Algoritma Regresi Linier 1) Tentukan N titik data yang diketahui dalam ( ) untuk i=1,2,3,…,N 2) Hitung nilai m dan c dengan menggunakan formulasi dari regresi linier di atas 3) Tampilkan fungsi linier 4) Hitung fungsi linier tersebut dalam range dan step tertentu 5) Tampilkan hasil tabel ( ) dari hasil fungsi linier tersebut. C. Contoh Program Regresi Linier pada MATLAB Diberikan data sebagai berikut :
1
2
3
4
5
6
7
8
9
1,5
1,8
2,4
3,0
3,5
3,9
4,4
4,8
5,0
4,8
5,7
7,0
8,3
10,9
12,4
13,1
13,6
15,3
Programnya : clc clear all x=[1.5 1.8 2.4 3.0 3.5 3.9 4.4 4.8 5.0]; y=[4.8 5.7 7.0 8.3 10.9 12.4 13.1 13.6 15.3]; n=9; sx=sum(x); sy=sum(y); x2=x*x'; xy=x*y'; m=(n*xy-sx*sy)/(n*x2-sx.^2); c=(sy-m*sx)/n; disp('LINA disp('LINA MARLINA (109017000039)') (109017000039)') disp('____________________' disp('____________________'); ); disp(' disp(' Regresi Linear '); disp('____________________' disp('____________________'); ); disp(' disp(' x y '); disp('____________________' disp('____________________'); ); for xx=1:0.5:n yy=m*xx+c; disp(sprintf(' disp(sprintf(' %4.1f %10.7f ', xx, yy)) end disp('____________________' disp('____________________'); ); disp(sprintf('m disp(sprintf('m =%10.6f',m)) =%10.6f',m)) disp(sprintf('c disp(sprintf('c =%10.6f',c)) =%10.6f',c)) disp(sprintf('Jadi, disp(sprintf('Jadi, persamaannya, y = %10.7fx +%10.7f',m,c)); +%10.7f',m,c)); xx=0:25; yy=m*xx+c; plot(x,y,'*' plot(x,y,'*',xx,yy) ,xx,yy) axis([0 5 0 15]) title('data title('data pengamatan') pengamatan') xlabel('x' xlabel('x') ) ylabel('y' ylabel('y') ) grid on 2
Output pada Command Window :
Grafiknya:
3