Anda di halaman 1dari 23

TUGAS 2

SK 5001 ANALISIS NUMERIK LANJUT

Oleh:
Nama: Vania Mene Risriani
NIM: 20119016

PROGRAM STUDI MAGISTER MATEAMTIKA


FAKULTAS MATEMATIKA DAN IMU PENGETAHUAN ALAM
INSTITUT TEKNOLOGI BANDUNG
2020
PENDAHULUAN

I. Least Square
Saat memiliki sekumpulan data, sering kali dibutuhkan untuk melihat hubungan antar variabel dalam
bentuk persamaan. Metode representasi yang paling umum adalah polinomial derajat 𝑘 yang berupa:
𝑦 = 𝑎𝑘 𝑥 𝑘 + 𝑎𝑘−1 𝑥 𝑘−1 + ⋯ + 𝑎1 𝑥 + 𝑎0 + 𝑒

Misalkan,
𝑃𝑘 (𝑥) = 𝑎𝑘 𝑥 𝑘 + 𝑎𝑘−1 𝑥 𝑘−1 + ⋯ + 𝑎1 𝑥 + 𝑎0

Maka konstanta 𝑎𝑖 , 𝑖 ∈ [0, 𝑘] harus ditemukan yang meminimalkan kesalahan kuadrat terkecil:
𝑛

𝐸2 (𝑎0 , 𝑎1 ) = ∑[𝑦𝑖 − 𝑃𝑘 (𝑥𝑖 )]2 , 𝑛 ∈ ℕ


𝑖=1

Metode kuadrat terkecil bertujuan untuk meminimalkan varians antara nilai yang diperkirakan dari
polinomial dan nilai yang diharapkan dari kumpulan data. Koefisien 𝑎𝑖 , 𝑖 ∈ [1, 𝑘] dan konstanta 𝑎0
dapat ditentukan dengan menyelesaikan system persamaan linier berikut.
𝑀𝑎 = 𝐵
𝑁 𝑁 𝑁

𝑁 ∑ 𝑥𝑖 ⋯ ∑ 𝑥𝑖𝑘 ∑ 𝑦𝑖
𝑖=1 𝑖=1 𝑖=1
𝑁 𝑁 𝑁 𝑎0 𝑁

∑ 𝑥𝑖 ∑ 𝑥𝑖2 ⋯ ∑ 𝑥𝑖𝑘+1 𝑎1 ∑ 𝑥𝑖 𝑦𝑖
[ ⋮ ]=
𝑖=1 𝑖=1 𝑖=1 𝑖=1
⋮ ⋮ ⋱ ⋮ 𝑎𝑘 ⋮
𝑁 𝑁 𝑁 𝑁

∑ 𝑥𝑖𝑘 ∑ 𝑥𝑖𝑘+1 ⋯ ∑ 𝑥𝑖2𝑘 ∑ 𝑥𝑖𝑘 𝑦𝑖


[ 𝑖=1 𝑖=1 𝑖=1 ] [ 𝑖=1 ]

Sehingga untuk mencari vector dengan 𝑎 = 𝑀−1 𝐵.

II. Interpolasi Polinomial Lagrange


Interpolasi bertujuan mencari nilai-nilai antara yang tidak dimiliki pada data. Interpolasi dapat juga
berfungsi untuk menghaluskan kurva. Pencarian nilai tersebut dengan menggunakan fungsi
pendekatan polinomial. Interpolasi lagrange menggunakan jumlah titik yang fleksibel tergantung
pada orde yang dibutuhkan. Pada interpolasi Lagrange pada orde n, nilai y pada sebuah nilai x
diperoleh dengan:
𝑛

𝑦 = ∑ 𝐿𝑖 𝑦𝑖
𝑖=0
𝑥−𝑥
Dimana 𝐿𝑖 = ∏𝑛𝑗=0;𝑗≠𝑖 𝑥 −𝑥𝑖
𝑖 𝑗

2
SOAL

1. Buatlah program dan jawab tugas berikut. Tulis kesimpulan analisis pwrbandingan hasil
dari model-model ini.
Diberikan data sebagai berikut:
𝑥𝑖 4 4.2 4.2 4.7 5.1 5.5 5.9 6.3 6.8 7.1
𝑦𝑖 102.56 113.18 130.11 142.05 167.53 195.14 224.87 256.73 299.50 326.72

a. Konstruksikan least square polinomial dengan derajat 1 dan hitung errornya.


b. Konstruksikan least square polinomial dengan derajat 2 dan hitung errornya.
c. Konstruksikan least square polinomial dengan derajat 3 dan hitung errornya.
d. Konstruksikan aproksimasi least square dengan bentuk 𝑏𝑒 𝑎𝑥 dan hitung errornya.
e. Konstruksikan aproksimasi least square dengan bentuk 𝑏𝑒 𝑎𝑥 dan hitung errornya.

2. Diberikan 𝑃3 (𝑥) menjadi polynomial interpolasi dengan data (0,0), (0.5, 𝑦), (1,3), dan
(2,2). Koefisien 𝑥 3 pada 𝑃3 (𝑥) adalah 6. Tentukan nilai 𝑦.
3. Diberikan 𝑓(𝑥) = √𝑥 − 𝑥 2 dan 𝑃2 (𝑥) adalah olinomial interpolasi di 𝑥0 = 0, 𝑥1 , & 𝑥2 =
1. Tentukan nilai 𝑥1 terbesar diantara (0,1) dengan 𝑓(0.5) − +𝑃2 (0.5) = −0.25.

3
PEMBAHASAN

1. Pada soal diberikan data:

𝑥𝑖 4 4.2 4.2 4.7 5.1 5.5 5.9 6.3 6.8 7.1


𝑦𝑖 102.56 113.18 130.11 142.05 167.53 195.14 224.87 256.73 299.50 326.72

Maka banyaknya data 𝑁 = 10.


Pada soal ini akan dilakukan simulasi dengan menggunakan software Matlab untuk mencari
koefisien 𝑎𝑖 , 𝑖 = [0,1,2,3].

a. Pada bagian ini akan dicari nilai koefisien 𝑎1 dan konstanta 𝑎0 dengan menggunakan
2
metode Least Squares berderajat 1. Maka akan dicari nilai ∑10 10 10
𝑖=1 𝑥𝑖 , ∑𝑖=1 𝑥𝑖 , ∑𝑖=1 𝑦𝑖 dan

∑10
𝑖=1 𝑥𝑖 𝑦𝑖 sehingga diperoleh

10 54 𝑎0 1958
[ ] [𝑎 ] = [ ]
54 303 1 11367
Dari matriks tersebut didapatkan 𝑎0 = −194.138241 dan 𝑎1 = 72.084518.
Maka persamaan 𝑃1 (𝑥) = 72.084518 𝑥 − 194.138241 adalah fungsi aproksimasi
terbaik yang diperoleh dari metode ini. Berikut adalah nilai aproksimasi 𝑦 dengan nilai 𝑥
yang sudah diketahui pada soal.
𝑃1 (𝑥) 94.19 108.62 130.24 144.66 173.49 202.33 231.16 259.99 296.04 317.66
Sehingga diperoleh hasil simulasi dengan metode Least Squares berderajat 1 sebagai
berikut:

Gambar 1. Hasil software Matlab untuk polynomial dengan derajat 1


4
Untuk menghitung galat dengan menggunakan rumus berikut:
10

𝐸𝑟𝑟𝑜𝑟 = ∑(𝑦𝑖 − 𝑃1 (𝑥𝑖 ))2 = 329.0132


𝑖=1

Setelah mendapatkan nilai 𝑃1 (𝑥) maka akan dibandingkan dengan nilai 𝑦 yang sudah
diketahui, hasil plot Matlab dapat dilihat pada Gambar 2. Pada Gambar 2 tersebut terlihat
bahwa hasil aproksimasi ( 𝑃1 (𝑥)) tidak tepat melewati beberapa titik data (𝑦).

Gambar 2. Hasil plot software Matlab untuk polynomial dengan derajat 1

b. Untuk bagian ini akan dicari koefisien 𝑎2 , 𝑎1 , & 𝑎0 dengan menggunakan metode Least
2 3 4
Squares berderajat 2. Sehingga akan dicari ∑10 10 10 10 10
𝑖=1 𝑥𝑖 , ∑𝑖=1 𝑥𝑖 , ∑𝑖=1 𝑥𝑖 , ∑𝑖=1 𝑥𝑖 , ∑𝑖=1 𝑦𝑖 ,
∑10 10 2
𝑖=1 𝑥𝑖 𝑦𝑖 dan ∑𝑖=1 𝑥𝑖 𝑦𝑖 sehingga diperoleh
10 54 303 𝑎0 1958
[ 54 303 1760 ] [𝑎1 ] = [11367]
303 1760 10523 𝑎2 68007
Sehingga diperoleh nilai 𝑎2 = 6.618, 𝑎1 = −1.144, & 𝑎0 = 1.236.
Maka dari nilai 𝑎2 , 𝑎1 , & 𝑎0 dapat dibuat menjadi persamaan berikut:
𝑃2 (𝑥) = 6.618 𝑥 2 − 1.144 𝑥 + 1.236
Berikut adalah nilai aproksimasi 𝑦 dengan nilai 𝑥 yang sudah diketahui pada soal.

𝑃2 (𝑥) 102.55 113.18 130.11 142.06 167.54 195.15 224.87 256.71 299.49 326.74

5
Sehingga diperoleh hasil simulasi dengan metode Least Squares berderajat 2 sebagai
berikut:

Gambar 3. Hasil software Matlab untuk polynomial dengan derajat 2

Untuk menghitung galat dengan menggunakan rumus berikut:


10

𝐸𝑟𝑟𝑜𝑟 = ∑(𝑦𝑖 − 𝑃2 (𝑥))2 = 0.00144


𝑖=1

Setelah mendapatkan nilai 𝑃2 (𝑥) maka akan dibandingkan dengan nilai 𝑦 yang sudah
diketahui, hasil plot Matlab dapat dilihat pada Gambar 4. Pada Gambar 4 tersebut terlihat
bahwa hasil aproksimasi (𝑃2 (𝑥)) tepat melewati beberapa titik data (𝑦).

Gambar 4. Hasil plot software Matlab untuk polynomial dengan derajat 2

6
c. Pada bagian ini akan menggunakan metode Least Squares berderajat 3, untuk
2
mendapatkan nilai 𝑎3 , 𝑎2 , 𝑎1 , & 𝑎0. Sehingga akan dicari ∑10 𝑖=1 𝑥𝑖 , ∑10
𝑖=1 𝑥𝑖 ,
3 4 5 6
∑10 10 10 10 10 10 10 2 10 3
𝑖=1 𝑥𝑖 , ∑𝑖=1 𝑥𝑖 , , ∑𝑖=1 𝑥𝑖 , , ∑𝑖=1 𝑥𝑖 , ∑𝑖=1 𝑦𝑖 , ∑𝑖=1 𝑥𝑖 𝑦𝑖 , ∑𝑖=1 𝑥𝑖 𝑦𝑖 dan ∑𝑖=1 𝑥𝑖 𝑦𝑖 sehingga
diperoleh
10 54 303 1760 𝑎0 1958
𝑎
1760 10523 ] [ 1 ] = [ 11367 ]
[ 54 303
303 1760 10523 64608 𝑎2 68007
1760 10523 64608 405617 𝑎3 417730

Sehingga diperoleh nilai 𝑎3 = −0.014, 𝑎2 = 6.846, 𝑎1 = −2.379, & 𝑎0 = 3.429.


Maka dari nilai 𝑎3 , 𝑎2 , 𝑎1 , & 𝑎0 dapat dibuat menjadi persamaan berikut:
𝑃3 (𝑥) = −0.014𝑥 3 + 6.846𝑥 2 − 2.379 𝑥 + 3.439
Berikut adalah nilai aproksimasi 𝑦 dengan mensubstitusikan nilai 𝑥 yang sudah diketahui
pada soal.
𝑃3 (𝑥) 102.57 113.18 130.10 142.04 167.53 195.15 224.88 256.72 299.49 326.73
Sehingga diperoleh hasil simulasi dengan metode Least Squares berderajat 2 sebagai
berikut:

Gambar 5. Hasil software Matlab untuk polynomial dengan derajat 3

Untuk menghitung galat dengan menggunakan rumus berikut:


10

𝐸𝑟𝑟𝑜𝑟 = ∑(𝑦𝑖 − 𝑃3 (𝑥))2 = 0.000527


𝑖=1

7
Setelah mendapatkan nilai 𝑃3 (𝑥) maka akan dibandingkan dengan nilai 𝑦 yang sudah
diketahui, hasil plot Matlab dapat dilihat pada Gambar 6. Pada Gambar 6 tersebut terlihat
bahwa hasil aproksimasi (𝑃3 (𝑥)) tepat melewati beberapa titik data (𝑦), hasil tersebut
hampir sama dengan metode Least Squares dengan derajat 2, karena selisih dari kedua hasil
sangat kecil.

Gambar 6. Hasil plot software Matlab untuk polynomial dengan derajat 3

d. Pada soal berikut akan dibentuk 𝑦 = 𝑏𝑒 𝑎𝑥 lalu ubah bentuk tersebut menjadi persamaan
linier, sehingga dapat dikerjakan dengan menggunakan metode Least Squares berderajat
1. Bentuk tersebut dapat ditransformasi menjadi sebagai berikut:
𝑦 = 𝑏𝑒 𝑎𝑥
ln(𝑦) = ln(𝑏𝑒 𝑎𝑥 )
ln(𝑦) = ln(𝑏) + ln(𝑒 𝑎𝑥 )
ln(𝑦) = ln(𝑏) + 𝑎𝑥
Sehingga ubah nilai 𝑦 → ln (𝑦), diperoleh sebagai berikut:
𝑙𝑛(𝑦𝑖 ) 4,6 4,7 4,9 5,0 5,1 5,3 5,4 5,5 5,7 5,8
Selanjutnya untuk mencari 𝑎1 𝑑𝑎𝑛 𝑎0 dengan menggunakan metode Least Squares
berderajat 1, lalu diperoleh matriks sebagai berikut:
10 54 𝑎0 52
[ ] [𝑎 ] = [ ]
54 303 1 285
Dari matriks tersebut dapat diketahui nilai 𝑎1 = 𝑎 = 0.3723 𝑑𝑎𝑛 𝑎0 = 3.1888, karena
ln(𝑏) = 3.1888, maka nilai 𝑏 = 24.259. Sehingga didapatkan persamaanya sebagai
berikut:

8
𝑦 ∗ = (24.259)𝑒 0.3723𝑥

Berikut adalah nilai aproksimasi 𝑦 ∗ dengan mensubstitusikan nilai 𝑥 yang sudah


diketahui pada soal.
𝑦𝑖∗ 107.588 115.906 129.605 139.627 162.053 188.082 218.291 253.353 305.202 341.275
Sehingga diperoleh hasil simulasi dengan metode Least Squares berderajat 1 sebagai
berikut:

Gambar 7. Hasil software Matlab untuk polynomial dengan derajat 1

Untuk menghitung galat dengan menggunakan rumus berikut:


10

𝐸𝑟𝑟𝑜𝑟 = ∑(𝑦𝑖 − 𝑦𝑖∗ )2 = 417.691


𝑖=1

Setelah mendapatkan nilai 𝑦 ∗ maka akan dibandingkan dengan nilai 𝑦 yang sudah
diketahui, hasil plot Matlab dapat dilihat pada Gambar 8. Pada Gambar 8 tersebut terlihat
bahwa hasil aproksimasi (𝑦 ∗ ) tidak tepat melewati beberapa titik data (𝑦) dan hasil galat
tersebut memiliki nilai yang cukup besar, sehingga metode Least Squares dengan derajat 1
untuk bentuk 𝑦 = 𝑏𝑒 𝑎𝑥 kurang cocok dengan data yang dimiliki.

9
Gambar 8. Hasil plot software Matlab untuk polynomial dengan derajat 1

e. Pada bagian ini pun akan dibentuk ke dalam fungsi 𝑦 = 𝑏𝑥 𝑎 , maka ubah fungsi tersebut
menjadi fungsi linier agar dapat diselesaikan dengan menggunakan metode Least Squares
berderajat 1. Sehingga diperoleh bentuk seperti berikut:
ln(𝑦) = ln(𝑏) + 𝑎 ln(𝑥)
Maka ubah data 𝑦 menjadi ln(𝑦), didapatkan hasilnya seperti berikut:
𝑙𝑛(𝑦𝑖 ) 4,6 4,7 4,9 5,0 5,1 5,3 5,4 5,5 5,7 5,8
Selanjutnya untuk mencari 𝑎1 𝑑𝑎𝑛 𝑎0 dengan menggunakan metode Least Squares
berderajat 1, lalu diperoleh matriks sebagai berikut:
10 54 𝑎0 52
[ ] [𝑎 ] = [ ]
54 303 1 285
Dari matriks tersebut dapat diketahui nilai 𝑎1 = 𝑎 = 2.0195 𝑑𝑎𝑛 𝑎0 = 1.8308, karena
ln(𝑏) = 1.8308, maka nilai 𝑏 = 6.239. Sehingga didapatkan persamaanya sebagai
berikut:
𝑦 ∗ = (6.239)𝑥 2.0195

Berikut adalah nilai aproksimasi 𝑦 dengan mensubstitusikan nilai 𝑥 yang sudah diketahui
pada soal.
𝑦𝑖∗ 102.566 113.186 130.109 142.052 167.527 195.124 224.846 256.695 299.504 326.790

Sehingga diperoleh hasil simulasi dengan metode Least Squares berderajat 1 sebagai
berikut:

10
Gambar 9. Hasil software Matlab untuk polynomial dengan derajat 1

Untuk menghitung galat dengan menggunakan rumus berikut:


10

𝐸𝑟𝑟𝑜𝑟 = ∑(𝑦𝑖 − 𝑦𝑖∗ )2 = 0.00702


𝑖=1

Setelah mendapatkan nilai 𝑦 ∗ maka akan dibandingkan dengan nilai 𝑦 yang sudah
diketahui, hasil plot Matlab dapat dilihat Gambar 10. Pada Gambar 10 tersebut terlihat
bahwa hasil aproksimasi (𝑦 ∗ ) tepat melewati titik data (𝑦) dan hasil galat tersebut memiliki
nilai yang cukup kecil, sehingga metode Least Squares dengan derajat 1 untuk bentuk 𝑦 =
𝑏𝑥 𝑎 cocok dengan data yang dimiliki.

11
Gambar 10. Hasil plot software Matlab untuk polynomial dengan derajat 1

2. Diberikan 𝑃3 (𝑥) menjadi interpolasi polinom dengan data (0,0), (0.5, 𝑦), (1,3), dan (2,2).
Koefisien 𝑥 3 pada 𝑃3 (𝑥) adalah 6. Akan dicari nilai 𝑦.
Metode interpolasi polinom untuk 𝑃3 (𝑥) sebagai berikut:
𝑃3 (𝑥) = L3 (𝑥)𝑓(𝑥3 ) + L2 (𝑥)𝑓(𝑥2 ) + L1 (𝑥)𝑓(𝑥1 ) + L0 (𝑥)𝑓(𝑥0 )
Sehingga untuk mencari nilai 𝐿0 (𝑥), 𝐿1 (𝑥), 𝐿2 (𝑥), dan 𝐿3 (𝑥) seperti berikut:
(𝑥 − 𝑥1 )(𝑥 − 𝑥2 )(𝑥 − 𝑥3 ) (𝑥 − 0.5)(𝑥 − 1)(𝑥 − 2)
𝐿0 (𝑥) = =
(𝑥0 − 𝑥1 )(𝑥0 − 𝑥2 )(𝑥0 − 𝑥3 ) (0 − 0.5)(0 − 1)(0 − 2)
= −(𝑥 − 0.5)(𝑥 − 1)(𝑥 − 2)
7 11
= −𝑥 3 + 𝑥 2 − 𝑥+1
2 2

(𝑥 − 𝑥0 )(𝑥 − 𝑥2 )(𝑥 − 𝑥3 ) (𝑥 − 0)(𝑥 − 1)(𝑥 − 2)


𝐿1 (𝑥) = =
(𝑥1 − 𝑥0 )(𝑥1 − 𝑥2 )(𝑥1 − 𝑥3 ) (0.5 − 0)(0.5 − 1)(0.5 − 2)
(𝑥 − 0)(𝑥 − 1)(𝑥 − 2)
=
(0.5 − 0)(0.5 − 1)(0.5 − 2)
8𝑥(𝑥 2 − 3𝑥 + 2) 8𝑥 3 − 24𝑥 2 + 16𝑥
= =
3 3
(𝑥 − 𝑥0 )(𝑥 − 𝑥1 )(𝑥 − 𝑥3 ) (𝑥 − 0)(𝑥 − 0.5)(𝑥 − 2)
𝐿2 (𝑥) = = = −2𝑥 3 − 5𝑥 2 + 2𝑥
(𝑥2 − 𝑥0 )(𝑥2 − 𝑥1 )(𝑥2 − 𝑥3 ) (1 − 0)(1 − 0.5)(1 − 2)

12
(𝑥 − 𝑥0 )(𝑥 − 𝑥1 )(𝑥 − 𝑥2 ) (𝑥 − 0)(𝑥 − 0.5)(𝑥 − 1)
𝐿3 (𝑥) = =
(𝑥3 − 𝑥0 )(𝑥3 − 𝑥1 )(𝑥3 − 𝑥2 ) (2 − 0)(2 − 0.5)(2 − 1)
𝑥(𝑥 2 − 1.5𝑥 + 0.5)
=
3
𝑥 3 − 1.5𝑥 2 + 0.5𝑥
=
3
Sehingga didapatkan nilai
7 11 8𝑥3 − 24𝑥2 + 16𝑥
𝑃3 (𝑥) = (−𝑥3 + 𝑥2 − 𝑥 + 1) (0) + ( ) 𝑦 + (−2𝑥3 − 5𝑥2 + 2𝑥)3
2 2 3
𝑥 3 − 1.5𝑥 2 + 0.5𝑥
+( )2
3
8𝑦𝑥 3 − 24𝑦𝑥 2 + 16𝑦𝑥 3 2
2𝑥 3 − 3𝑥 2 + 𝑥
𝑃3 (𝑥) = + (−6𝑥 − 15𝑥 + 6𝑥) + ( )
3 3
8𝑦 2 16𝑦 1
𝑃3 (𝑥) = 𝑥 3 ( − 6 + ) + 𝑥 2 (−8𝑦 − 15 − 1) + 𝑥 ( +6+ )
3 3 3 3

Karena diketahui bahwa koefisien dari 𝑥 3 adalah 6, maka dapat ditentukan nilai 𝑦-nya.

8𝑦 2
−6+ =6
3 3
8𝑦 34
=
3 3
8𝑦 = 34
𝑦 = 4.25
Sehingga diperoleh nilai 𝑦 = 4.25. ∎

3. Diketahui bahwa 𝑓(𝑥) = √𝑥 − 𝑥 2 .


𝑃2 (𝑥) adalah olinomial interpolasi di 𝑥0 = 0, 𝑥1 , & 𝑥2 = 1.
Akan ditentukan nilai 𝑥1 terbesar diantara (0,1) dengan 𝑓(0.5) − 𝑃2 (0.5) = −0.25.

Akan dicari 𝑃2 (𝑥):


𝑃2 (𝑥) = L2 (𝑥)𝑓(𝑥2 ) + L1 (𝑥)𝑓(𝑥1 ) + L0 (𝑥)𝑓(𝑥0 )
Maka akan dicari nilai 𝐿2 (𝑥), 𝐿1 (𝑥), & 𝐿0 (𝑥).
(𝑥 − 𝑥1 )(𝑥 − 𝑥2 ) (𝑥 − 𝑥1 )(𝑥 − 1) 𝑥 2 − (1 + 𝑥1 )𝑥 + 𝑥1
𝐿0 (𝑥) = = =
(𝑥0 − 𝑥1 )(𝑥0 − 𝑥2 ) (0 − 𝑥1 )(0 − 1) 𝑥1
(𝑥 − 𝑥0 )(𝑥 − 𝑥2 ) (𝑥 − 0)(𝑥 − 1) 𝑥2 − 𝑥
𝐿1 (𝑥) = = =
(𝑥1 − 𝑥0 )(𝑥1 − 𝑥2 ) (𝑥1 − 0)(𝑥1 − 1) 𝑥12 − 𝑥1
(𝑥 − 𝑥0 )(𝑥 − 𝑥1 ) (𝑥 − 0)(𝑥 − 𝑥1 ) 𝑥2 − 𝑥1 𝑥
𝐿2 (𝑥) = = =
(𝑥2 − 𝑥0 )(𝑥2 − 𝑥1 ) (1 − 0)(1 − 𝑥1 ) 1 − 𝑥1
Setelah didapatkan 𝐿0 (𝑥), 𝐿1 (𝑥), dan 𝐿2 (𝑥), maka substitusikan pada 𝑃2 (𝑥)

13
𝑥2 − 𝑥1 𝑥 √ 2 𝑥2 − 𝑥 𝑥2 − 𝑥1 𝑥
𝑃2 (𝑥) = ( 0−0 )+ 2 (√𝑥1 − 𝑥21 ) + (√1 − 1)
1 − 𝑥1 𝑥1 − 𝑥1 1 − 𝑥1

𝑥2 − 𝑥1 𝑥 𝑥2 − 𝑥 𝑥2 − 𝑥1 𝑥
𝑃2 (𝑥) = (0) + 2 (√𝑥1 − 𝑥21 ) + (0)
1 − 𝑥1 𝑥1 − 𝑥1 1 − 𝑥1

𝑥2 − 𝑥
𝑃2 (𝑥) = (√𝑥1 − 𝑥21 )
𝑥21 − 𝑥1
Substitusikan nilai 𝑥 = 0.5 ke persamaan 𝑃2 (𝑥):

0.52 − 0.5 0.25


𝑃2 (0.5) = 2 (√𝑥1 − 𝑥21 ) = − 2 √𝑥1 − 𝑥21
𝑥1 − 𝑥1 𝑥1 − 𝑥1
Substitusikan juga 𝑥 = 0.5 ke persamaan 𝑓(𝑥):

𝑓(0.5) = √0.5 − 0.52 = 0.5


Sehingga untuk mendapatkan nilai 𝑦 dengan menggunakan cara berikut:

𝑓(0.5) − 𝑃2 (0.5) = −0.25


0.25
0.5 − √𝑥 − 𝑥12 = −0.25
𝑥12 − 𝑥1 1
0.25
√𝑥1 − 𝑥12 = 0.75
𝑥12
− 𝑥1
0.25
√𝑥 − 𝑥12 = 0.75
−(𝑥1 − 𝑥12 ) 1
0.25
√𝑥1 − 𝑥12 = 0.75
−(√𝑥1 − 𝑥12 )(√𝑥1 − 𝑥12 )
0.25
= 0.75
−(√𝑥1 − 𝑥12 )
1
= − (√𝑥1 − 𝑥12 )
3
1 1
= 𝑥1 − 𝑥12 → 𝑥12 − 𝑥1 + = 0
9 9
Sehingga didapatkan akar-akar 𝑥1 :

1 5
1 ± √1 − 4 (9) 1 ± √9 1 ± 1 √5 1 1
𝑥1;(1,2) = = = 3 = ± √5
2 2 2 2 6

14
1 1
𝑥1;1 = + √5 = 0.87267
2 6
1 1
𝑥1;2 = − √5 = 0.12732
2 6
Karena yang dicari adalah nilai 𝑥1 terbesar diantara (0,1), sehingga diambil nilai 𝑥1 =
0.87267 ∎

15
KESIMPULAN

Pada nomor 1 dapat akan ditunjukkan hasil simulasi pada Matlab yang diperoleh:
HASIL SIMULASI
KETENTUAN
𝑎0 𝑎1 𝑎2 𝑎3 Galat
Derajat 1 −194.138241 72.084518 - - 329.0132
Derajat 2 1.236 −1.144 6.618 - 0.00144
Derajat 3 3.429094 −2.379221 6.845578 −0.013675 0.000527
𝑦 = 𝑏𝑒 𝑎𝑥 24.258760 0.372382 - - 417.690995
𝑦 = 𝑏𝑥 𝑎 6.239029 2.019541 - - 0.007023

Dapat dilihat bahwa nilai 𝑎0 , 𝑎1 , 𝑎2 , & 𝑎3 pada tiap soal yang diberikan menghasilkan nilai yang
berbeda, karena ketentuan yang diminta berbeda-beda. Dalam menganalisis hasil tersebut dapat
dilihat dari hasil plot atau galat yang diperoleh. Jika membandingkan galatnya, dengan
menggunakan metode Least Squares untuk derajat 3 menghasilkan nilai galat yang paling kecil,
sehingga kecocokan data 𝑦 dengan hasil aproksimasi ( 𝑃3 (𝑥) ) hampir sesuai. Dari gambar yang
diperoleh pun Gambar 6 memberikan hasil yang baik. Sehingga dapat dikatakan untuk soal berikut
dengan menggunakan metode Least Squares dengan derajat yang besar menghasilkan fungsi 𝑃𝑛 (𝑥)
yang mendekati nilai 𝑦. Untuk syarat manipulasi 𝑦 = 𝑏𝑒 𝑎𝑥 dan 𝑦 = 𝑏𝑥 𝑎 diperoleh nilai 𝑎0 & 𝑎1
yang sesuai dengan ketentuan tersebut, dengan melihat hasil galatnya maka manipulasi 𝑦 = 𝑏𝑥 𝑎
cocok untuk data pada soal 1.
Pada nomor 2 dan 3, telah dibahas pada bagian sebelumnya. Dari pembahasan tersebut, untuk
nomor 2 di peroleh nilai 𝑦 = 4.25 dan untuk soal nomor 3 didapatkan nilai 𝑥1 terbesar diantara
(0,1), sehingga diambil nilai 𝑥1 = 0.87267.

16
DAFTAR PUSTAKA

[1] https://neutrium.net/mathematics/least-squares-fitting-of-a-polynomial/ diakses pada tanggal


13 September 2020

17
LAMPIRAN

%------------------------------------------------------------------%
% Program Least Squares
%------------------------------------------------------------------%
% Name : Vania Mene Risriani
% NIM : 20119016
% Created : 09/09/2020
%------------------------------------------------------------------%

clear;clc;close;

x=[4.0;4.2;4.5;4.7;5.1;5.5;5.9;6.3;6.8;7.1];
y=[102.56;113.18;130.11;142.05;167.53;195.14;224.87;256.73;299.50;326.72];
ln_x =log(x);
ln_y = log(y);
m = length(x);

%% Main Code

fprintf('Nama = Vania Mene Risriani\n');


fprintf('NIM = 20119016\n\n');

disp('=======================================================================
=========================================')
disp(' Program Least Square
')
disp('=======================================================================
=========================================')

fprintf('\nSoal no 1. penyelesaian Least Squares polinomial dengan derajat


1');
fprintf('\nSoal no 2. penyelesaian Least Squares polinomial dengan derajat
2');
fprintf('\nSoal no 3. penyelesaian Least Squares polinomial dengan derajat
3');
fprintf('\nSoal no 4. penyelesaian Least Squares dengan aproksimasi
b*exp(ax)');
fprintf('\nSoal no 5. penyelesaian Least Squares dengan aproksimasi
b*x^(a)');
soal=input('\nNomor soal yang mau diselesaikan? (1/2/3/4/5) ');

if soal == 1

fprintf('\nDiketahui bahwa:');
fprintf('\n- Data x adalah ');
fprintf('%f \t',x);
fprintf('\n- Data y adalah ');
fprintf('%f \t',y);
fprintf('\n\nHasil Simulasi:');
fprintf('\nDengan menggunakan metode Least Square akan diperoleh nilai
koefisien dan konstantanya.');
n = 1;
a = polycurvefit(x,y,n);

18
y_ls = 0;

for i=1:n+1
y_ls=y_ls+a(i)*x.^(i-1);
end

gal = sum((y-(a(2)*x+a(1))).^2); %1 order


% gal = sum(sqrt((y-(a(2)*x+a(1))).^2/m)); %1 order

fprintf('\nSehingga didapatkan nilai a(0) = %f dan a(1) = %f


\n',a(1),a(2));
fprintf('Maka diperoleh pula nilai y hasil dari aproksimasi tersebut
yaitu \n');
fprintf('==============\n');
fprintf('\tP_%d(x) \n',n);
fprintf('==============\n');
fprintf(' %f \n',y_ls);
fprintf('==============\n');
fprintf('Dengan nilai galat = %f\n',gal);

plot(x,y,'rdiamond',x,y_ls,'-b');
xlabel('x','FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
ylabel('y','FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
judul = sprintf('Least Square Polynomial of %d-degree',n);
title(judul,'FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
legend('data','Least Square');

elseif soal == 2

fprintf('\nDiketahui bahwa:');
fprintf('\n- Data x adalah ');
fprintf('%f \t',x);
fprintf('\n- Data y adalah ');
fprintf('%f \t',y);
fprintf('\n\nHasil Simulasi:');
fprintf('\nDengan menggunakan metode Least Square akan diperoleh nilai
koefisien dan konstantanya.');
n = 2;
a = polycurvefit(x,y,n);
y_ls = 0;

for i=1:n+1
y_ls=y_ls+a(i)*x.^(i-1);
end

gal = sum((y-(a(3)*x.^2+a(2)*x+a(1))).^2);
% gal = sum(sqrt((y-(a(3)*x.^2+a(2)*x+a(1))).^2/m));

fprintf('\nSehingga didapatkan nilai a(0) = %f, a(1) = %f, dan a(2) = %f


\n',a(1),a(2),a(3));
fprintf('Maka diperoleh pula nilai y hasil dari aproksimasi tersebut
yaitu \n');

19
fprintf('==============\n');
fprintf('\tP_%d(x) \n',n);
fprintf('==============\n');
fprintf(' %f \n',y_ls);
fprintf('==============\n');
fprintf('Dengan nilai galat = %f\n',gal);

plot(x,y,'rdiamond',x,y_ls,'-b');
xlabel('x','FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
ylabel('y','FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
judul = sprintf('Least Square Polynomial of %d-degree',n);
title(judul,'FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
legend('data','Least Square');

elseif soal == 3

fprintf('\nDiketahui bahwa:');
fprintf('\n- Data x adalah ');
fprintf('%f \t',x);
fprintf('\n- Data y adalah ');
fprintf('%f \t',y);
fprintf('\n\nHasil Simulasi:');
fprintf('\nDengan menggunakan metode Least Square akan diperoleh nilai
koefisien dan konstantanya.');
n = 3;
a = polycurvefit(x,y,n);
y_ls = 0;

for i=1:n+1
y_ls=y_ls+a(i)*x.^(i-1);
end

gal = sum((y-(a(4)*x.^3+a(3)*x.^2+a(2)*x+a(1))).^2);
% gal = sum(sqrt((y-(a(4)*x.^3+a(3)*x.^2+a(2)*x+a(1))).^2/m));

fprintf('\nSehingga didapatkan nilai a(0) = %f, a(1) = %f, a(2) = %f, dan
a(3) = %f\n',a(1),a(2),a(3),a(4));
fprintf('Maka diperoleh pula nilai y hasil dari aproksimasi tersebut
yaitu \n');
fprintf('==============\n');
fprintf('\tP_%d(x) \n',n);
fprintf('==============\n');
fprintf(' %f \n',y_ls);
fprintf('==============\n');
fprintf('Dengan nilai galat = %f\n',gal);

plot(x,y,'rdiamond',x,y_ls,'-b');
xlabel('x','FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
ylabel('y','FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
judul = sprintf('Least Square Polynomial of %d-degree',n);

20
title(judul,'FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
legend('data','Least Square');

elseif soal == 4

fprintf('\nDiketahui bahwa:');
fprintf('\n- Data x adalah ');
fprintf('%f \t',x);
fprintf('\n- Data y adalah ');
fprintf('%f \t',y);
fprintf('\n\nHasil Simulasi:');
fprintf('\nDengan menggunakan metode Least Square akan diperoleh nilai
koefisien dan konstantanya.');
n = 1;
a = polycurvefit(x,ln_y,n);

a0 = exp(a(1));
a1 = a(2);

y_ls = a0*exp(a1*x);

gal = sum((y-a0*exp(a1*x)).^2); %1 order


% gal = sum(sqrt((y-a0*exp(a1*x)).^2/m)); %1 order

fprintf('\nSehingga didapatkan nilai a(0) = %f dan a(1) = %f


\n',a0,a(2));
fprintf('Maka diperoleh pula nilai y hasil dari aproksimasi tersebut
yaitu \n');
fprintf('==============\n');
fprintf('\ty* \n');
fprintf('==============\n');
fprintf(' %f \n',y_ls);
fprintf('==============\n');
fprintf('Dengan nilai galat = %f\n',gal);

plot(x,y,'rdiamond',x,y_ls,'-b');
xlabel('x','FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
ylabel('y','FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
judul = sprintf('Least Square Polynomial of %d-degree',n);
title(judul,'FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
legend('data','Least Square');
grid on

elseif soal == 5

fprintf('\nDiketahui bahwa:');
fprintf('\n- Data x adalah ');
fprintf('%f \t',x);
fprintf('\n- Data y adalah ');
fprintf('%f \t',y);
fprintf('\n\nHasil Simulasi:');

21
fprintf('\nDengan menggunakan metode Least Square akan diperoleh nilai
koefisien dan konstantanya.');
n = 1;
a = polycurvefit(ln_x,ln_y,n);
a0=exp(a(1));
a1=a(2);
y_ls=a0.*(x.^(a1));

gal = sum((y-(a0.*(x.^(a1)))).^2); %1 order


% gal = sum(sqrt((y-(a0.*(x.^(a1)))).^2/m)); %1 order

fprintf('\nSehingga didapatkan nilai a(0) = %f dan a(1) = %f \n',a0,a1);


fprintf('Maka diperoleh pula nilai y hasil dari aproksimasi tersebut
yaitu \n');
fprintf('==============\n');
fprintf('\ty*) \n');
fprintf('==============\n');
fprintf(' %f \n',y_ls);
fprintf('==============\n');
fprintf('Dengan nilai galat = %f\n',gal);

plot(x,y,'rdiamond',x,y_ls,'-b');
xlabel('x','FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
ylabel('y','FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
judul = sprintf('Least Square Polynomial of %d-degree',n);
title(judul,'FontName','Times New
Roman','FontSize',16,'FontWeight','bold');
legend('data','Least Square');

else

fprintf('\nPilihan yang anda inginkan tidak tersedia');

end

%% Function
function a = polycurvefit(x,y,n)
m = length(x);
A = zeros(n+1, n+1);
B = zeros(n+1, 1);
a = zeros(n+1, 1);

for row = 1 : n+1


for col = 1 : n+1
if row == 1 && col == 1
A(row,col) = m;
continue
end
A(row,col) = sum(x.^(row+col-2));
end
B(row) = sum(x.^(row-1).*y);
end

22
a = A\B;
end

23

Anda mungkin juga menyukai