CURVE FITTING
Risanuri Hidayat,
Jurusan Teknik Elektro dan Teknologi Informasi FT UGM,
1.1 INTERPOLASI LINEAR
Fungsi linear dinyatakan persamaan sebagai berikut,
𝑓𝑓(𝑥𝑥) = 𝐴𝐴𝑥𝑥 + 𝐵𝐵 (1)
Ketika data-data sumbu x dan fungsinya telah diketahui untuk sejumlah N titik, {(𝑥𝑥𝑘𝑘, 𝑦𝑦𝑘𝑘)}𝑘𝑘=1𝑁𝑁 , data tersebut biasanya dapat dinyatakan dalam bentuk tabel atau grafik. Sebagai contoh,
x1 y1
x2 y2
⁞ ⁞
xN yN
Pasangan data tersebut akan berusaha di-selisih-kan dengan fungsi linear sebagaimana (1). Selisih antara keduanya disimbolkan dengan dk adalah,
𝑑𝑑𝑘𝑘 = 𝑓𝑓𝑘𝑘(𝑥𝑥) − 𝑦𝑦𝑘𝑘
𝑑𝑑𝑘𝑘 = (𝐴𝐴𝑥𝑥𝑘𝑘 + 𝐵𝐵) − 𝑦𝑦𝑘𝑘 (2)
Pengkuadratan ke dua sisi menghasilkan,
(𝑑𝑑𝑘𝑘)2 = (𝐴𝐴𝑥𝑥𝑘𝑘 + 𝐵𝐵 − 𝑦𝑦𝑘𝑘)2 (3)
Jika semua data dimasukkan, maka dihasilkan penjumlahan selisih yang dapat dinyatakan dengan persamaan berikut,
Persamaan (4) merupakan nilai Ekspetasi yang merupakan fungsi A dan B, dan dinyatakan dengan E(A,B). Sehingga dapat dituliskan,
𝐸𝐸(𝐴𝐴, 𝐵𝐵) = ∑𝑁𝑁𝑘𝑘=1(𝐴𝐴𝑥𝑥𝑘𝑘 + 𝐵𝐵 − 𝑦𝑦𝑘𝑘)2 (5)
Nilai minimum E(A,B) dapat dicari ketika differensial parsial ∂ E/∂A dan ∂ E/∂B diset sama dengan nol, dan kemudian dicari nilai A dan B. Harap diingat bahwa sekarang xk dan yk adalah data yang telah ada nilainya, sedangkan justru A dan B merupakan variabel
yang dicari. Ketika nilai B dibuat konstan, differensial parsial terhadap A, ∂E/∂A, adalah
𝜕𝜕𝐸𝐸(𝐴𝐴,𝐵𝐵)
𝜕𝜕𝐴𝐴 = ∑𝑁𝑁𝑘𝑘=12(𝐴𝐴𝑥𝑥𝑘𝑘 + 𝐵𝐵 − 𝑦𝑦𝑘𝑘)𝑥𝑥𝑘𝑘 = 2 ∑𝑁𝑁𝑘𝑘=1(𝐴𝐴𝑥𝑥𝑘𝑘2 + 𝐵𝐵𝑥𝑥𝑘𝑘 − 𝑥𝑥𝑘𝑘𝑦𝑦𝑘𝑘) (6) Dan ketika nilai A dibuat konstan,
𝜕𝜕𝐸𝐸(𝐴𝐴,𝐵𝐵)
𝜕𝜕𝐵𝐵 = ∑𝑁𝑁𝑘𝑘=12(𝐴𝐴𝑥𝑥𝑘𝑘 + 𝐵𝐵 − 𝑦𝑦𝑘𝑘)= 2 ∑𝑘𝑘=1𝑁𝑁 (𝐴𝐴𝑥𝑥𝑘𝑘 + 𝐵𝐵 − 𝑦𝑦𝑘𝑘) (7) Dengan men-set (6) dan (7) sama dengan nol, maka didapatkan
𝐴𝐴 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2+𝐵𝐵 ∑𝑘𝑘=1𝑁𝑁 𝑥𝑥𝑘𝑘 = ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑦𝑦𝑘𝑘 (8) 𝐴𝐴 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 + 𝑁𝑁𝐵𝐵 = ∑𝑁𝑁𝑘𝑘=1𝑦𝑦𝑘𝑘
Dengan model matriks dapat dituliskan,
�∑∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 𝑥𝑥𝑘𝑘 𝑁𝑁 𝑘𝑘=1 𝑁𝑁 � � 𝐴𝐴 𝐵𝐵� = � ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑦𝑦𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑦𝑦𝑘𝑘 � (9)
Dari persamaan (9) di atas nilai A dan B dapat diperoleh dengan persamaan berikut ini,
� 𝐴𝐴 𝐵𝐵� = � ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 𝑁𝑁 � −1 �∑∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑦𝑦𝑘𝑘 𝑦𝑦𝑘𝑘 𝑁𝑁 𝑘𝑘=1 � (10) Contoh:
xk yk 0.0000 1.0714 0.1000 1.2124 0.3000 1.2358 0.4000 1.3254 0.5000 1.0906 0.8000 1.3600 0.9000 1.5190 1.0000 1.5816 Program MATLAB, function leastsquare_line02; close all; clear all; clc; fy = [ ... 0 1.0714;... 0.1000 1.2124;... 0.3000 1.2358;... 0.4000 1.3254;... 0.5000 1.0906;... 0.8000 1.3600;... 0.9000 1.5190;... 1.0000 1.5816 ]; x = fy(:,1); y = fy(:,2); N = length(x); sumx2 = x'*x; sumx = sum(x); sumxy = y'*x; sumy = sum(y);
matA = [sumx2 sumx; sumx N]; A = inv(matA)*[sumxy sumy]'; xx = 0:0.1:1;
yy = A(1)*xx + A(2);
plot(x,y,'-wo','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor',[.49 1 .63],'MarkerSize',12); hold on; plot(xx,yy,'-bs','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor',[.1 .1 .5],'MarkerSize',6); grid on; end
matA = 2.9600 4.0000 4.0000 8.0000 A = 0.4230 1.0880 >> 1.2 INTERPOLASI KUADRATIS
Fungsi kuadrat dinyatakan persamaan sebagai berikut,
𝑓𝑓(𝑥𝑥) = 𝐴𝐴𝑥𝑥2 + 𝐵𝐵𝑥𝑥 + 𝐶𝐶 (11)
Ketika data-data sumbu x dan fungsinya telah diketahui untuk sejumlah N titik, {(𝑥𝑥𝑘𝑘, 𝑦𝑦𝑘𝑘)}𝑘𝑘=1𝑁𝑁 , data tersebut dapat dinyatakan dalam bentuk tabel atau grafik, sebagai berikut,
x1 y1
x2 y2
⁞ ⁞
xN yN
Selisih antara 𝑓𝑓𝑘𝑘(𝑥𝑥) dan 𝑦𝑦𝑘𝑘 yang disimbolkan dengan dk adalah, 𝑑𝑑𝑘𝑘 = 𝑓𝑓𝑘𝑘(𝑥𝑥) − 𝑦𝑦𝑘𝑘
𝑑𝑑𝑘𝑘 = (𝐴𝐴𝑥𝑥𝑘𝑘2+ 𝐵𝐵𝑥𝑥𝑘𝑘 + 𝐶𝐶) − 𝑦𝑦𝑘𝑘 (12)
Pengkuadratan ke dua sisi menghasilkan,
(𝑑𝑑𝑘𝑘)2 = (𝐴𝐴𝑥𝑥𝑘𝑘2+ 𝐵𝐵𝑥𝑥𝑘𝑘 + 𝐶𝐶 − 𝑦𝑦𝑘𝑘)2 (13)
Jika semua data dimasukkan, maka dihasilkan penjumlahan selisih yang dapat dinyatakan dengan persamaan berikut,
∑𝑁𝑁𝑘𝑘=1(𝑑𝑑𝑘𝑘)2 = ∑𝑁𝑁𝑘𝑘=1(𝐴𝐴𝑥𝑥𝑘𝑘2 + 𝐵𝐵𝑥𝑥𝑘𝑘 + 𝐶𝐶 − 𝑦𝑦𝑘𝑘)2 (14)
Sebagaimana (4), persamaan (14) merupakan nilai Ekspetasi yang merupakan fungsi A, B dan C, yang dinyatakan dengan E(A,B,C),
𝐸𝐸(𝐴𝐴, 𝐵𝐵, 𝐶𝐶) = ∑𝑁𝑁𝑘𝑘=1(𝐴𝐴𝑥𝑥𝑘𝑘2 + 𝐵𝐵𝑥𝑥𝑘𝑘+ 𝐶𝐶 − 𝑦𝑦𝑘𝑘)2 (15)
Nilai xk dan yk adalah data yang telah ada nilainya, sedangkan nilai A dan B merupakan variabel yang dicari. Nilai minimum E(A,B) dapat dicari ketika differensial parsial ∂ E/∂A dan ∂ E/∂B diset sama dengan nol, Ketika nilai B dan C dibuat konstan, differensial parsial ∂E/∂A, adalah
𝜕𝜕𝐸𝐸(𝐴𝐴,𝐵𝐵,𝐶𝐶)
𝜕𝜕𝐴𝐴 = ∑𝑁𝑁𝑘𝑘=12(𝐴𝐴𝑥𝑥𝑘𝑘2+ 𝐵𝐵𝑥𝑥𝑘𝑘 + 𝐶𝐶 − 𝑦𝑦𝑘𝑘)𝑥𝑥𝑘𝑘2
= 2 ∑𝑁𝑁𝑘𝑘=1(𝐴𝐴𝑥𝑥𝑘𝑘4+ 𝐵𝐵𝑥𝑥𝑘𝑘3 + 𝐶𝐶𝑥𝑥𝑘𝑘2− 𝑥𝑥𝑘𝑘2𝑦𝑦𝑘𝑘) (16) Ketika nilai A dan B berturut-turut dibuat konstan,
𝜕𝜕𝐸𝐸(𝐴𝐴,𝐵𝐵,𝐶𝐶) 𝜕𝜕𝐵𝐵 = ∑𝑁𝑁𝑘𝑘=12(𝐴𝐴𝑥𝑥𝑘𝑘2+ 𝐵𝐵𝑥𝑥𝑘𝑘 + 𝐶𝐶 − 𝑦𝑦𝑘𝑘)𝑥𝑥𝑘𝑘 = 2 ∑𝑁𝑁𝑘𝑘=1(𝐴𝐴𝑥𝑥𝑘𝑘3+ 𝐵𝐵𝑥𝑥𝑘𝑘2 + 𝐶𝐶𝑥𝑥𝑘𝑘 − 𝑥𝑥𝑘𝑘𝑦𝑦𝑘𝑘) (17) 𝜕𝜕𝐸𝐸(𝐴𝐴,𝐵𝐵,𝐶𝐶) 𝜕𝜕𝐶𝐶 = ∑𝑁𝑁𝑘𝑘=12(𝐴𝐴𝑥𝑥𝑘𝑘2+ 𝐵𝐵𝑥𝑥𝑘𝑘 + 𝐶𝐶 − 𝑦𝑦𝑘𝑘) = 2 ∑𝑁𝑁𝑘𝑘=1(𝐴𝐴𝑥𝑥𝑘𝑘2+ 𝐵𝐵𝑥𝑥𝑘𝑘 + 𝐶𝐶 − 𝑦𝑦𝑘𝑘) (18)
Dengan men-set (16)-(18) sama dengan nol, maka didapatkan
𝐴𝐴 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘4+ 𝐵𝐵 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘3+𝐶𝐶 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2 = ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑦𝑦𝑘𝑘 (19) 𝐴𝐴 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘3+ 𝐵𝐵 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2+𝐶𝐶 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 = ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 𝑦𝑦𝑘𝑘
𝐴𝐴 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2+ 𝐵𝐵 ∑𝑘𝑘=1𝑁𝑁 𝑥𝑥𝑘𝑘 +𝑁𝑁𝐶𝐶 = ∑𝑁𝑁𝑘𝑘=1 𝑦𝑦𝑘𝑘
Dengan model matriks dapat dituliskan,
� ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘4 ∑𝑘𝑘=1𝑁𝑁 𝑥𝑥𝑘𝑘3 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘3 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 𝑁𝑁 � �𝐴𝐴𝐵𝐵 𝐶𝐶� = � ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑦𝑦𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑦𝑦𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑦𝑦𝑘𝑘 � (20)
Dari persamaan di atas nilai A dan B dapat diperoleh dengan persamaan berikut ini,
�𝐴𝐴𝐵𝐵 𝐶𝐶� = � ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘4 ∑𝑘𝑘=1𝑁𝑁 𝑥𝑥𝑘𝑘3 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘3 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 𝑁𝑁 � −1 � ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑦𝑦𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘 𝑦𝑦𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑦𝑦𝑘𝑘 � (21) Contoh: xk yk 2.00 0.500 4.00 0.250 5.00 0.200 8.00 0.125
Program MATLAB, function leastsquare_parabol01; close all; clear all; clc; fy = [ ... 2.00 0.500; ... 4.00 0.250; ... 5.00 0.200; ... 8.00 0.125 ... ]; x = fy(:,1); y = fy(:,2); N = length(x); sumx4 = sum((x.*x).*(x.*x)); sumx3 = sum((x.*x).*x); sumx2 = sum(x.*x); sumx = sum(x); sumx2y = sum((x.*x).*y); sumxy = sum(x.*y); sumy = sum(y);
matA = [sumx4 sumx3 sumx2; sumx3 sumx2 sumx; sumx2 sumx N] A = inv(matA)*[sumx2y sumxy sumy]'
xx = 0:0.2:10;
yy = A(1)*(xx.*xx) + A(2)*xx + A(3);
plot(x,y,'-wo', 'LineWidth',2, 'MarkerEdgeColor','k', 'MarkerFaceColor',[.49 1 .63],'MarkerSize',12); hold on; plot(xx,yy,'-bs','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor',[.1 .1 .5],'MarkerSize',6); grid on; end Hasil, matA = 4993 709 109 709 109 19 109 19 4
A = 0.0138 -0.1993 0.8405 >> 1.3 INTERPOLASI POLINOMIAL
Fungsi polinomial pangkat n dinyatakan persamaan sebagai berikut,
𝑓𝑓(𝑥𝑥) = 𝑎𝑎0+ 𝑎𝑎1𝑥𝑥 + 𝑎𝑎2𝑥𝑥2+ ⋯ + 𝑎𝑎𝑛𝑛𝑥𝑥𝑛𝑛 (22)
𝑓𝑓(𝑥𝑥) = ∑𝑛𝑛𝑖𝑖=0𝑎𝑎𝑖𝑖𝑥𝑥𝑖𝑖
Ketika data-data sumbu x dan fungsinya telah diketahui untuk sejumlah N titik, {(𝑥𝑥𝑘𝑘, 𝑦𝑦𝑘𝑘)}𝑘𝑘=1𝑁𝑁 , data tersebut dapat dinyatakan dalam bentuk tabel atau grafik, sebagai berikut,
x1 y1
x2 y2
⁞ ⁞
Selisih antara 𝑓𝑓𝑘𝑘(𝑥𝑥) dan 𝑦𝑦𝑘𝑘 yang disimbolkan dengan dk adalah, 𝑑𝑑𝑘𝑘 = 𝑓𝑓𝑘𝑘(𝑥𝑥) − 𝑦𝑦𝑘𝑘
𝑑𝑑𝑘𝑘 = (𝑎𝑎0+ 𝑎𝑎1𝑥𝑥 + 𝑎𝑎2𝑥𝑥2+ ⋯ + 𝑎𝑎𝑛𝑛𝑥𝑥𝑛𝑛) − 𝑦𝑦𝑘𝑘 (23) Pengkuadratan ke dua sisi menghasilkan,
(𝑑𝑑𝑘𝑘)2 = (𝑎𝑎0+ 𝑎𝑎1𝑥𝑥𝑘𝑘+ 𝑎𝑎2𝑥𝑥𝑘𝑘2+ ⋯ + 𝑎𝑎𝑛𝑛𝑥𝑥𝑘𝑘𝑛𝑛 − 𝑦𝑦𝑘𝑘)2 (24)
Jika semua data dimasukkan, maka dihasilkan penjumlahan selisih yang dapat dinyatakan dengan persamaan berikut,
∑𝑁𝑁𝑘𝑘=1(𝑑𝑑𝑘𝑘)2 = ∑𝑘𝑘=1𝑁𝑁 (𝑎𝑎0+ 𝑎𝑎1𝑥𝑥𝑘𝑘+ 𝑎𝑎2𝑥𝑥𝑘𝑘2+ ⋯ + 𝑎𝑎𝑛𝑛𝑥𝑥𝑘𝑘𝑛𝑛 − 𝑦𝑦𝑘𝑘)2 (25)
Persamaan (25) merupakan nilai Ekspetasi yang merupakan fungsi a0, a1 ... an, dan dinyatakan dengan E(a0, a1 ... an),
𝐸𝐸(𝑎𝑎0, 𝑎𝑎1, … 𝑎𝑎𝑛𝑛) = ∑𝑘𝑘=1𝑁𝑁 (𝑎𝑎0+ 𝑎𝑎1𝑥𝑥𝑘𝑘 + 𝑎𝑎2𝑥𝑥𝑘𝑘2+ ⋯ + 𝑎𝑎𝑛𝑛𝑥𝑥𝑘𝑘𝑛𝑛 − 𝑦𝑦𝑘𝑘)2 (26)
Nilai xk dan yk adalah data yang telah ada nilainya, sedangkan nilai a0, a1 ... an, merupakan variabel yang dicari. Nilai minimum E(a0, a1 ... an) dapat dicari ketika differensial parsial ∂E/∂a0, ∂E/∂a1 ... ∂E/∂an diset sama dengan nol. Ketika nilai ai dengan
i≠0 dibuat konstan, differensial parsial ∂E/∂a0 adalah
𝜕𝜕𝐸𝐸(𝑎𝑎0,𝑎𝑎1,…𝑎𝑎𝑛𝑛) 𝜕𝜕𝑎𝑎0 = ∑ 2(𝑎𝑎0+ 𝑎𝑎1𝑥𝑥𝑘𝑘 + 𝑎𝑎2𝑥𝑥𝑘𝑘 2+ ⋯ + 𝑎𝑎 𝑛𝑛𝑥𝑥𝑘𝑘𝑛𝑛 − 𝑦𝑦𝑘𝑘) 𝑁𝑁 𝑘𝑘=1 = 2 ∑𝑁𝑁𝑘𝑘=1(𝑎𝑎0+ 𝑎𝑎1𝑥𝑥𝑘𝑘 + 𝑎𝑎2𝑥𝑥𝑘𝑘2 + ⋯ + 𝑎𝑎𝑛𝑛𝑥𝑥𝑘𝑘𝑛𝑛 − 𝑦𝑦𝑘𝑘) (27)
Demikian juga ketika nilai ai dengan i≠j dibuat konstan, differensial parsial ∂E/∂aj adalah
𝜕𝜕𝐸𝐸(𝐴𝐴,𝐵𝐵,𝐶𝐶) 𝜕𝜕𝑎𝑎𝑗𝑗 = 2 ∑ (𝑎𝑎0+ 𝑎𝑎1𝑥𝑥𝑘𝑘 + 𝑎𝑎2𝑥𝑥𝑘𝑘 2+ ⋯ + 𝑎𝑎 𝑛𝑛𝑥𝑥𝑘𝑘𝑛𝑛 − 𝑦𝑦𝑘𝑘)𝑥𝑥𝑘𝑘𝑗𝑗 𝑁𝑁 𝑘𝑘=1 (28)
𝑎𝑎𝑛𝑛∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛 + 𝑎𝑎𝑛𝑛−1∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−1+… 𝑎𝑎0∑𝑘𝑘=1𝑁𝑁 𝑥𝑥𝑘𝑘𝑛𝑛 = ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛𝑦𝑦𝑘𝑘 𝑎𝑎𝑛𝑛∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−1 + 𝑎𝑎𝑛𝑛−1∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−2+… 𝑎𝑎0∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−1 = ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−1𝑦𝑦𝑘𝑘 ⁞
𝑎𝑎𝑛𝑛∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛 + 𝑎𝑎𝑛𝑛−1∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−1 + ⋯ 𝑎𝑎0𝑁𝑁 = ∑𝑁𝑁𝑘𝑘=1𝑦𝑦𝑘𝑘
Dengan model matriks dapat dituliskan,
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛 ∑𝑘𝑘=1𝑁𝑁 𝑥𝑥𝑘𝑘2𝑛𝑛−1 … ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−1 ∑𝑘𝑘=1𝑁𝑁 𝑥𝑥𝑘𝑘2𝑛𝑛−2 … ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−1 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−2 ⋮ ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−3 ⋮ ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−1 … ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−2 ⋮ 𝑁𝑁 ⎦⎥ ⎥ ⎥ ⎥ ⎤ ⎣ ⎢ ⎢ ⎢ ⎡𝑎𝑎𝑎𝑎𝑛𝑛−1𝑛𝑛 𝑎𝑎𝑛𝑛−1 ⋮ 𝑎𝑎0 ⎦ ⎥ ⎥ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛𝑦𝑦𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−1𝑦𝑦𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−2𝑦𝑦𝑘𝑘 ⋮ ∑𝑁𝑁𝑘𝑘=1𝑦𝑦𝑘𝑘 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ (29)
Nilai-nilai a0, a1 ... an dapat dihitung dari persamaan berikut ini,
⎣ ⎢ ⎢ ⎢ ⎡𝑎𝑎𝑎𝑎𝑛𝑛−1𝑛𝑛 𝑎𝑎𝑛𝑛−1 ⋮ 𝑎𝑎0 ⎦ ⎥ ⎥ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛 ∑𝑘𝑘=1𝑁𝑁 𝑥𝑥𝑘𝑘2𝑛𝑛−1 … ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−1 ∑𝑘𝑘=1𝑁𝑁 𝑥𝑥𝑘𝑘2𝑛𝑛−2 … ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−1 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−2 ⋮ ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−3 ⋮ ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−1 … ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘2𝑛𝑛−2 ⋮ 𝑁𝑁 ⎦⎥ ⎥ ⎥ ⎥ ⎤−1 ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛𝑦𝑦𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−1𝑦𝑦𝑘𝑘 ∑𝑁𝑁𝑘𝑘=1𝑥𝑥𝑘𝑘𝑛𝑛−2𝑦𝑦𝑘𝑘 ⋮ ∑𝑁𝑁𝑘𝑘=1𝑦𝑦𝑘𝑘 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ (30) Contoh: xk yk 2.00 0.500 4.00 0.250 5.00 0.200 8.00 0.125 Program MATLAB, function leastsquare_poli01; close all; clear all; clc;
fy = [ ... 2.00 0.500; ... 4.00 0.250; ... 5.00 0.200; ... 8.00 0.125 ... ]; x = fy(:,1); y = fy(:,2); N = length(x); M = 3; % pangkat 3
% mendapatkan matriks A (matA)
matA = sumsum(x,y,M)
% mendapatkan koefisien an..a0
A = inv(matA(2:end,:))*matA(1,:)' % cek persamaan xx = 0:0.2:10; yy = zeros(1,length(xx)); for (i=1:M+1) yy = yy + A(i).*(xx.^(M+1-i)); end;
function matA = sumsum(x,y,M) sem = ones(M+2,M+1); for (i=1:M+1) for (j=1:M+1) sem(i,j)=sum(x.^(i+j-2)); end; end sem1 = []; for (i=1:M+1)
sem1 = [sem1 sum((x.^(i-1)).*y)]; end
matA = sem(end:-1:1,end:-1:1); matA(1,:) = sem1(end:-1:1); end;
plot(x,y,'-wo', 'LineWidth',2, 'MarkerEdgeColor','k', 'MarkerFaceColor',[.49 1 .63],'MarkerSize',12); hold on; plot(xx,yy,'-bs','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor',[.1 .1 .5],'MarkerSize',6); grid on;
end
Hasil,
matA =
0.0011 0.0002 0.0000 0.0000 2.8193 0.3695 0.0499 0.0071 0.3695 0.0499 0.0071 0.0011 0.0499 0.0071 0.0011 0.0002 0.0071 0.0011 0.0002 0.0000 A = -0.0031 0.0594 -0.3937 1.0750 >> DAFTAR PUSTAKA