Sie sind auf Seite 1von 14

Tugas Permodelan & Identifikasi Sistem

Least-Error Squares Method


Diamond Ravi | 1206237201
Problem 1
Perhitungan dilakukan dengan M-File Pada program MATLAB:
function []= LSProblem1(x_measured, y_measured, type)
fprintf('=======================================================\n');
[r,c] = size(x_measured);
%untuk model y=bx^m
if type == 1
fprintf('Model Power Function: y = b*x^m\n');
x_measured
y_measured
fprintf('Model ini dilinearisasi ke dalam persamaan Y = B+(m*X)\n');
fprintf('dengan Y = log(y), B = log(b), dan X = log(x)\n');
H = [log(x_measured) ones(r,1)]
Y = log(y_measured)
fprintf('menggunakan rumus [B,m]=((inv(H''*H))*H''*Y):' );
x_estimated = ((inv(H'*H))*H'*Y);
m = x_estimated(1,1)
B = x_estimated(2,1)
fprintf('b = exp(B), maka:');
b = exp(B)
fprintf('masukkan b dan m ke persamaan model y = b*x^m:');
y_estimated = b*(x_measured.^m)
end
%untuk model y = (m*x) + b
if type == 2
fprintf('Model Linear Function: y = (m*x) + b\n');
x_measured
y_measured
H = [(x_measured) ones(r,1)]
Y = (y_measured)
fprintf('menggunakan rumus [B,m]=((inv(H''*H))*H''*Y):' );
x_estimated = ((inv(H'*H))*H'*Y);
m = x_estimated(1,1)
b = x_estimated(2,1)
fprintf('masukkan b dan m ke persamaan model y = (m*x) + b:');
y_estimated = b+(x_measured.*m)
end
%untuk model b*exp(m*x)
if type == 3

fprintf('Model Linear Function: y = b*exp(m*x)\n');


x_measured
y_measured
fprintf('Model ini dilinearisasi ke dalam persamaan Y = B+(M*x)\n');
fprintf('dengan Y = log(y), B = log(b), dan M = m*log(e) = m\n');
H = [(x_measured) ones(r,1)]
Y = log(y_measured)
fprintf('menggunakan rumus [B,m]=((inv(H''*H))*H''*Y):' );
x_estimated = ((inv(H'*H))*H'*Y);
m = x_estimated(1,1)
B = x_estimated(2,1)
fprintf('b = exp(B), maka:');
b = exp(B)

end

fprintf('masukkan b dan m ke persamaan model b*exp(m*x):');


y_estimated = b*exp(m*x_measured)

fprintf('sehingga didapat nilai error dan hasil cost function:');


e = y_measured - y_estimated
J = sum(e.^2)
%J = sum(1/2*e'*e)
fprintf('=======================================================\n');

Setelah fungsi LSProblem1 dijalankan, didapatkan hasil sebagai berikut:


Model Power Function: y = b*x^m
x_measured =
1
2
3
4
y_measured =
5.1000
19.5000
46.0000
78.0000
Model ini dilinearisasi ke dalam persamaan Y = B+(m*X)
dengan Y = log(y), B = log(b), dan X = log(x)
H =
0
0.6931
1.0986
1.3863

1.0000
1.0000
1.0000
1.0000

Y =
1.6292
2.9704
3.8286
4.3567
menggunakan rumus [B,m]=((inv(H'*H))*H'*Y):
m =
1.9802
B =
1.6230
b = exp(B), maka:
b =
5.0680
masukkan b dan m ke persamaan model y = b*x^m:
y_estimated =
5.0680
19.9959
44.6310
78.8933
sehingga didapat nilai error dan hasil cost function:
e =
0.0320
-0.4959
1.3690
-0.8933
J =
2.9192
=======================================================
=======================================================
Model Linear Function: y = (m*x) + b
x_measured =
1
2
3
4

y_measured =
5.1000
19.5000
46.0000
78.0000
H =
1
2
3
4

1
1
1
1

Y =
5.1000
19.5000
46.0000
78.0000
menggunakan rumus [B,m]=((inv(H'*H))*H'*Y):
m =
24.5200
b =
-24.1500
masukkan b dan m ke persamaan model y = (m*x) + b:
y_estimated =
0.3700
24.8900
49.4100
73.9300
sehingga didapat nilai error dan hasil cost function:
e =
4.7300
-5.3900
-3.4100
4.0700
J =
79.6180
=======================================================
Model Linear Function: y = b*exp(m*x)

x_measured =
1
2
3
4
y_measured =
5.1000
19.5000
46.0000
78.0000
Model ini dilinearisasi ke dalam persamaan Y = B+(M*x)
dengan Y = log(y), B = log(b), dan M = m*log(e) = m
H =
1
2
3
4

1
1
1
1

Y =
1.6292
2.9704
3.8286
4.3567
menggunakan rumus [B,m]=((inv(H'*H))*H'*Y):
m =
0.9041
B =
0.9361
b = exp(B), maka:
b =
2.5500
masukkan b dan m ke persamaan model b*exp(m*x):
y_estimated =
6.2975
15.5525
38.4087
94.8547

sehingga didapat nilai error dan hasil cost function:


e =
-1.1975
3.9475
7.5913
-16.8547
J =
358.7259
=======================================================

Berikut grafik fungsi model berdasarkan b dan m yang didapatkan serta x


dan y hasil pengukuran:

Didapatkan nilai eror (e) dan J untuk masing-masing model:


Model Power Function: y = b*x^m
e = [0.0320 -0.4959 1.3690 -0.8933]
J = 2.9192
Model Linear Function: y = (m*x) + b
e = [4.7300 -5.3900 -3.4100 4.0700]
J = 79.6180
Model Linear Function: y = b*exp(m*x)
e = [-1.1975 3.9475 7.5913 -16.8547]
J = 358.7259
Rata-rata nilai mutlak eror serta J yang paling kecil dari ketiga model di atas
adalah pada model Power function. Dapat disimpulkan bahwa model Power
function adalah model yang paling cocok untuk sistem yang ditinjau, yaitu:
y=5.068 x 1.9802

Problem 2

Perhitungan dilakukan dengan M-File Pada program MATLAB:


function []= LSProblem2(x_measured, y_measured, N)
J = zeros(N,1);
[r,c] = size(x_measured);
for n = 1:N
n
%atur nilai matrix h sesuai nilai n
H = [ones(r,1)];
for m = 1 : n
H = [H x_measured.^m];
end
H
%estimasi output, error, dan J seperti program sebelumnya
x_estimated = ((inv(H'*H))*H'*y_measured)
y_estimated = H*x_estimated
e = y_measured - y_estimated
J(n,1) = sum(e.^2);
j = J(n,1)
fprintf('=========================================\n');
end
fprintf('nilai J untuk tiap orde: ')
J
plot(1:N,J)
ylabel('J')
xlabel('n')

Karena keterbatasan memori data pada fungsi inverse matlab, perhitungan


pada orde yang lebih dari 4 akan mengalami pembulatan, sehingga hasil
perhitungan menjadi tidak valid.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 9.708310e-27.
> In LSProblem2 at 13

Jadi, percobaan hanya dapat dilakukan hanya sampai orde 4.


Program kemudian dijalankan dengan input N adalah 4, didapatkan nilai J
untuk model orde 1 hingga 4:
n =
1
H =

1
1
1
1
1
1
1
1
1
1

5
10
15
20
25
30
35
40
45
50

x_estimated =
20.6667
0.4958
y_estimated =
23.1455
25.6242
28.1030
30.5818
33.0606
35.5394
38.0182
40.4970
42.9758
45.4545
e =
-7.1455
-0.6242
3.8970
2.4182
4.9394
0.4606
0.9818
-0.4970
-0.9758
-3.4545
j =
111.1879
=========================================

n =
2
H =
1
1
1
1
1
1
1
1
1
1
x_estimated =
12.1667
1.3458
-0.0155
y_estimated =
18.5091
24.0788
28.8758
32.9000
36.1515
38.6303
40.3364
41.2697
41.4303
40.8182
e =
-2.5091
0.9212
3.1242
0.1000
1.8485
-2.6303
-1.3364
-1.2697
0.5697

5
10
15
20
25
30
35
40
45
50

25
100
225
400
625
900
1225
1600
2025
2500

1.1818
j =
32.3697
=========================================
n =
3
H =
1
1
1
1
1
1
1
1
1
1
x_estimated =
5.3000
2.5638
-0.0683
0.0006
y_estimated =
16.4923
24.7510
30.5564
34.3886
36.7277
38.0541
38.8478
39.5890
40.7580
42.8350
e =

5
10
15
20
25
30
35
40
45
50

25
100
225
400
625
900
1225
1600
2025
2500

125
1000
3375
8000
15625
27000
42875
64000
91125
125000

-0.4923
0.2490
1.4436
-1.3886
1.2723
-2.0541
0.1522
0.4110
1.2420
-0.8350
j =
12.5860
=========================================
n =
4
H =
Columns 1 through 4
1
1
1
1
1
1
1
1
1
1
Column 5
625
10000
50625
160000
390625
810000
1500625
2560000
4100625
6250000

5
10
15
20
25
30
35
40
45
50

25
100
225
400
625
900
1225
1600
2025
2500

125
1000
3375
8000
15625
27000
42875
64000
91125
125000

x_estimated =
-0.0000
3.9228
-0.1677
0.0034
-0.0000
y_estimated =
15.8252
25.5664
31.1865
34.2774
36.0606
37.3869
38.7366
40.2191
41.5734
42.1678
e =
0.1748
-0.5664
0.8135
-1.2774
1.9394
-1.3869
0.2634
-0.2191
0.4266
-0.1678
j =
8.6573
=========================================
nilai J untuk tiap orde:
J =
111.1879
32.3697
12.5860
8.6573

Berikut grafik J terhadap n:

Grafik tersebut menunjukkan bahwa semakin besar orde polinomial model


yang digunakan untuk estimasi, eror yang didapatkan cenderung membaik.
Dengan kata lain, model akan semakin mendekati sistem asli dengan
semakin besarnya orde model polinomial.

Das könnte Ihnen auch gefallen