Cubic Spline & Least Square
Cubic Spline & Least Square
Cubic Spline & Least Square
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
1<br />
สรุปวิธีการหา <strong>Spline</strong> ก าลังสามขอบยึด<br />
ขั้นตอนที่ 1 : แบ่งฟังก์ชัน S ออกเป็นฟังก์ชันย่อยๆ ที่นิยามในแต่ละช่วงย่อย<br />
นั่นคือ S S0 S2<br />
...<br />
Sn<br />
1<br />
เมื่อ S(x)<br />
S i(x),<br />
x[xi,xi1]<br />
2<br />
3<br />
สมมติให้ Sj x a j b j(x<br />
x j)<br />
c j(x<br />
x j)<br />
d j(x<br />
x j)<br />
------***<br />
ส าหรับทุก j 0,1, ,n 1<br />
ขั้นตอนที่ 2 : หา a<br />
j จาก a<br />
j f (x<br />
j)<br />
, j 0,1, ,<br />
n<br />
และให้ h<br />
j<br />
x<br />
j 1<br />
x<br />
j<br />
(j 0,1,...,n 1)<br />
ขั้นตอนที่ 3 : หา b<br />
0<br />
และ b n<br />
จากเงื่อนไขขอบยึดที่โจทย์ก าหนดนั่นคือ<br />
b<br />
x<br />
f <br />
<br />
และ b Sx<br />
fx<br />
<br />
0<br />
S<br />
0<br />
x0<br />
n<br />
n<br />
1<br />
j<br />
ใช้สมการที่ 4.6 คือ b a<br />
a <br />
2c<br />
c ส าหรับ j 0,1,...,n 1<br />
j<br />
h<br />
j<br />
j1<br />
j<br />
พร้อมทั้งแทนค่าที่หาก่อนหน้าลงไปจะได้ระบบสมการเชิงเส้น (1)<br />
ใช้สมการที่ 4.5 คือ b<br />
j1<br />
b<br />
j<br />
h<br />
jc<br />
j<br />
c<br />
j1<br />
ส าหรับ j 0,1,...,n 1<br />
พร้อมทั้ง<br />
แทนค่าที่หาก่อนหน้าลงไปจะได้ระบบสมการเชิงเส้น (2)<br />
ขั้นตอนที่ 4 : หา b1,...,<br />
b n<br />
โดยการแทนค่ากลับในระบบสมการที่ (1) หรือ (2)<br />
1<br />
รวมกับเงื่อนไขขอบยึด f '(x )<br />
b 0 0<br />
h<br />
3<br />
n<br />
j<br />
j1<br />
ขั้นตอนที่ 5 : หา d0,<br />
d1,<br />
..., dn 1<br />
จากสมการที่ 4.3 คือ<br />
เตรียมค่าที่ทราบให้กับตัวแปร<br />
ต่างๆ ในสมการ<br />
รวมระบบสมการเชิงเส้น (1) และ (2) เข้าด้วยกัน โดยก าจัดตัวแปร b<br />
j<br />
จะเหลือเพียงตัวแปร c จากนั้นแก้ระบบสมการเชิงเส้นหาค่า<br />
j<br />
c<br />
j<br />
d<br />
c<br />
j 1<br />
j<br />
<br />
3h<br />
c<br />
j<br />
j<br />
1
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
2<br />
ตัวอย่าง (Sheet) จงหา <strong>Spline</strong> ก าลังสามขอบยึดที่ใช้ประมาณฟังก์ชัน<br />
f<br />
x<br />
x 2x<br />
3xe e ที่จุด x 1. 03<br />
วิธีท า สร้างชุดข้อมูลดังตาราง<br />
x 1.0 1.02 1.04 1.06<br />
f x<br />
0.76578939 0.79536678 0.8226817 0.8475226<br />
f 1.5315787 1.1754977<br />
x<br />
วิธีท า ในที่นี้ n 3<br />
ขั้นตอนที่ 1 : ให้ S S0 S1<br />
S2<br />
S<br />
j<br />
เมื่อ<br />
2<br />
x a b x<br />
x <br />
c x<br />
x d x<br />
x 3<br />
โดยที่ x 0<br />
1. 0, 1. 02 1.<br />
ขั้นตอนที่ 2 : h x x 0. 02<br />
a f<br />
0<br />
j<br />
j<br />
j<br />
x 1 , x 2 04, x 3<br />
1. 06<br />
j<br />
( j 0, 1<br />
x<br />
0. 7657894<br />
0<br />
<br />
a f 1<br />
x<br />
0. 7953668<br />
1 <br />
a f 2<br />
x<br />
0. 8226882<br />
2 <br />
a f 3<br />
x<br />
0. 8475226<br />
3 <br />
j<br />
1<br />
j<br />
j<br />
j<br />
j<br />
) และ<br />
จากเงื่อนไขขอบยึด ที่ว่า S x<br />
f และ S x<br />
f เราให้<br />
0 f (x<br />
) 1.5315787<br />
b 0<br />
3 f(x<br />
) 1.1754977<br />
b 3<br />
0<br />
x 0<br />
n x n<br />
j<br />
2
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
3<br />
1<br />
j<br />
จากสมการ 4.6 b a<br />
a <br />
2c<br />
c เมื่อ j 0,1, 2<br />
j<br />
h<br />
j<br />
j1<br />
แทนค่า a<br />
0,a1,a2,<br />
a3<br />
และ , b 0 3<br />
j<br />
h<br />
3<br />
j<br />
j1<br />
b ได้ระบบสมการ (1) คือ<br />
0.0133333c<br />
0<br />
0.0066667<br />
1<br />
1.5315787<br />
b<br />
<br />
b<br />
b<br />
0<br />
1.47887<br />
c<br />
1 1.36607 0.0133333c 1 0.0066667 c2<br />
2<br />
1.241722 0.0133333c<br />
2<br />
0.0066667 c3<br />
จากสมการ 4.5 คือError! Reference source not found. b b h c<br />
c ส าหรับ<br />
j 0,1,2<br />
และแทนค่า b , b ได้ระบบสมการ (2) 0 3<br />
1<br />
j1<br />
j<br />
j<br />
j<br />
ระบบสมการเชิงเส้น 1<br />
j1<br />
b<br />
b<br />
1<br />
1.5315787 0.02c0<br />
0.02c<br />
2 b1<br />
0.02c1<br />
0.02c2<br />
1.1754977<br />
b<br />
<br />
3<br />
b2<br />
0.02c2<br />
0.02c3<br />
แก้ระบบสมการ (1) และ (2) จะได้ระบบสมการ (3) ที่มีแต่ตัวแปร c<br />
jคือ<br />
c 0.5c1<br />
0<br />
<br />
4.2687857<br />
c 0.33333c1<br />
0.33333c2<br />
0<br />
<br />
c c3<br />
2<br />
<br />
c 2c c<br />
2 3<br />
0<br />
<br />
9.9305985<br />
17.80405<br />
8.275435<br />
แก้ระบบสมการที่ (3) ได้ 46. 109654<br />
ระบบสมการเชิงเส้น 2<br />
c 0<br />
, c 1 100. 75688<br />
c 2 12.745401 , c 3<br />
2. 814803<br />
ขั้นตอนที่ 4 : แทนค่ากลับในระบบสมการ (2) รวมกับเงื่อนไขขอบยึด เราได้<br />
b 0<br />
1.5315787 , b 1 2. 6245232 ได้ค่า จากการแทนค่ากลับ<br />
3
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
4<br />
b 2 0.8642936, b 3<br />
1. 1754977<br />
ขั้นตอนที่ 5 : จากสมการที่ 4.3 คือ<br />
d<br />
c<br />
j 1<br />
j<br />
<br />
3h<br />
c<br />
d 0<br />
2447.7756 , d 1 1891. 7047 , d 2 165. 50997<br />
ดังนั้น S S S<br />
S<br />
0 1 2<br />
โดยที่<br />
S<br />
เมื่อ1<br />
x 1.<br />
02<br />
x 0.7657894 1.5315787 x 1 46.409654 x 1 2 2447.7756 x<br />
3<br />
0 1<br />
x 0.7953668 2.6245232 x<br />
1.02 100.75688 x<br />
1.02 2 1891.704x<br />
1.<br />
3<br />
S1 02<br />
j<br />
j<br />
เมื่อ1.02<br />
x 1. 04<br />
x 0.8226882 0.8642936 x<br />
1.04 12.745401x<br />
1.04 2 165.50997 x<br />
1.<br />
3<br />
S2 04<br />
ดังนั้น (1.03) S (1.03)<br />
S 1<br />
0.7953668<br />
2.6245232 1.03 <br />
เมื่อ1.04<br />
x 1. 06<br />
1.02<br />
1.02 2 1891.7041.03<br />
1. 02 3<br />
100.75688 1.03<br />
<br />
0.8134281<br />
เมื่อเปรียบเทียบกับค่าจริงคือ f(1.03)<br />
0. 8093236<br />
จะได้ค่าคลาดเคลื่อนจากการประมาณคือ f (1.03) S(1.03) 0. 0041045<br />
นั่นคือค่าประมาณที่ได้มีความถูกต้อง 2 D.P จะได้ค าตอบคือ . 81<br />
0 #<br />
4
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
5<br />
การประมาณก าลังสองน้อยสุดเต็มหน่วย<br />
พิจารณาปัญหาการประมาณค่าฟังก์ชัน ที่มีข้อมูลจากการทดลองเป็นดังตาราง<br />
x 1 2 3 4 5 6 7 8 9 10<br />
i<br />
y 1.3 3.5 4.2 5.0 7.0 8.8 10.1 12.5 13.0 15.6<br />
i<br />
พล็อตจุดต่างๆลงในระนาบ xy แล้วพบว่าความสัมพันธ์ระหว่าง x และ y<br />
เป็นแบบเชิงเส้น หรือ เส้นตรง<br />
แต่ไม่สามารถสร้างเส้นตรงที่ผ่านทุกจุดของข้อมูลได้ ซึ่งอาจจะเกิดจาก<br />
ความคลาดเคลื่อนในการเก็บข้อมูล หรือ การวัดค่า ดังนั้นการพยายามท าให้<br />
ฟังก์ชัน ณ จุดของข้อมูล มีค่าเท่ากับข้อมูลที่วัดได้ จึงไม่สมเหตุสมผล<br />
กลยุทธ์ที่ดีกว่าคือการหาเส้นตรงที่ประมาณได้ดีที่สุด (ในบางลักษณะ)<br />
โดยไม่จ าเป็นจะต้องผ่านจุดข้อมูลทุกจุด<br />
16<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
0<br />
1 2 3 4 5 6 7 8 9 10<br />
5
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
6<br />
ให้ ax i b เป็นค่าที่ i ของเส้นตรงที่ใช้ประมาณ และ y i เป็นค่าจริงของ<br />
ฟังก์ชันที่ถูกประมาณ<br />
ปัญหาว่าด้วยการหาสมการแบบเชิงเส้นที่ดีที่สุดในเชิงค่าสัมบูรณ์ที่จะเป็น<br />
ตัวแทนฟังก์ชัน y ก็คือ การหาค่า a และ b ที่ท าให้<br />
E<br />
a,b maxyi<br />
axi<br />
b<br />
; i 1, ,10<br />
มีค่าต่ าสุด<br />
‣ เรียกปัญหาประเภทนี้ว่า ปัญหามินิแมกซ์ (Minimax)<br />
ซึ่งแก้ปัญหาไม่ได้ด้วยวิธีพื้นฐาน<br />
อีกกลยุทธ์หนึ่งในการประมาณเชิงเส้นที่ดีที่สุดคือการหาค่า a และ b ที่ท า<br />
ให้ค่าเบี่ยงเบนสัมบูรณ์ (Absolute derivation)<br />
E a,b y ax<br />
b<br />
มีค่าต่ าสุด<br />
l<br />
<br />
10 i1<br />
i<br />
i<br />
‣ การหาค่าต่ าสุดของฟังก์ชันสองตัวแปรจะต้องหาอนุพันธ์ย่อยของ<br />
ฟังก์ชัน ซึ่งในกรณีค่าเบี่ยงเบนสัมบูรณ์ ความยากล าบากเกิดจากการหา<br />
อนุพันธ์ของฟังก์ชันค่าสัมบูรณ์<br />
วิธีที่เหมาะกว่าคือใช้กลยุทธ์ก าลังสองน้อยสุด (<strong>Least</strong> square Method)โดยการ<br />
หาเส้นตรงที่ใช้ประมาณดีที่สุดโดยหาค่า a และ b โดยท าให้ความผิดพลาด<br />
ก าลังสองน้อยสุดรวม (Total <strong>Square</strong> Error)<br />
10 2<br />
E 2 a, b yi<br />
axi<br />
b<br />
มีค่าต่ าสุด<br />
i1<br />
6
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
7<br />
‣ นั่นคือต้องแก้สมการ<br />
m<br />
m<br />
0 i i i i <br />
a<br />
i1<br />
i1<br />
m<br />
m<br />
2<br />
0 yi<br />
axi<br />
b 2<br />
yi<br />
axi<br />
b 1<br />
b<br />
และ <br />
และ<br />
i1<br />
2<br />
y<br />
ax<br />
b 2 y<br />
ax b x <br />
<br />
‣ ลดทอนรูปสมการข้างต้นเป็น<br />
a<br />
a<br />
m<br />
<br />
i1<br />
m<br />
<br />
i1<br />
x<br />
x<br />
2<br />
i<br />
i<br />
b<br />
m<br />
<br />
i1<br />
x<br />
bm <br />
i<br />
<br />
m<br />
<br />
i1<br />
m<br />
<br />
i1<br />
y<br />
i<br />
x<br />
i<br />
y<br />
i<br />
i1<br />
‣ แก้สมการข้างต้นจะได้ค่า a และ b คือ<br />
a <br />
b <br />
m<br />
m<br />
<br />
i<br />
1<br />
x<br />
i<br />
m<br />
y<br />
i1<br />
i<br />
<br />
m<br />
2<br />
m<br />
xi<br />
i1<br />
m m<br />
2<br />
xi<br />
yi<br />
i<br />
1 i1<br />
m<br />
<br />
x<br />
<br />
<br />
<br />
2<br />
i<br />
m<br />
<br />
i1<br />
<br />
m<br />
<br />
x<br />
i1<br />
m<br />
<br />
i<br />
m<br />
i i<br />
i1<br />
2<br />
x<br />
i1<br />
<br />
<br />
<br />
x<br />
m<br />
<br />
i1<br />
<br />
<br />
<br />
<br />
i<br />
x<br />
y<br />
i<br />
y<br />
m<br />
i<br />
i1<br />
2<br />
<br />
<br />
<br />
<br />
x<br />
i<br />
และผลเฉลยของระเบียบวิธีก าลังสองน้อยสุดเชิงเส้น ส าหรับข้อมูล x i,<br />
y i เมื่อ<br />
i 1, ,<br />
m คือ<br />
y ax b<br />
i<br />
7
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
8<br />
ตัวอย่าง (Sheet) จงหาเส้นตรงก าลังสองน้อยสุดที่ประมาณข้อมูลที่ก าหนดให้<br />
x 1 2 3 4 5 6 7 8 9 10<br />
i<br />
y 1.3 3.5 4.2 5.0 7.0 8.8 10.1 12.5 13.0 15.6<br />
i<br />
สร้างตารางเพื่อค านวณได้ดังนี้<br />
x i<br />
y i<br />
2<br />
x i<br />
x Px<br />
1.538x 0. 360<br />
1 1.3 1 1.3 1.18<br />
2 3.5 4 7.0 2.72<br />
3 4.2 9 12.6 4.25<br />
4 5.0 16 20.0 5.79<br />
5 7.0 25 35.5 7.33<br />
6 8.8 36 52.8 8.87<br />
7 10.1 49 70.7 10.41<br />
8 12.5 64 100.0 11.94<br />
9 13.0 81 117.0 13.48<br />
10 15.6 100 156.0 15.02<br />
iyi<br />
x i 55 y i 81 xi 2 385 x y 572. 4<br />
i<br />
i<br />
E<br />
i<br />
y<br />
P<br />
<br />
10 i1<br />
i<br />
i x i<br />
2.34<br />
2<br />
8
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
9<br />
จะได้ว่า<br />
10<br />
a <br />
10<br />
385 81<br />
b <br />
572.4 5581<br />
2<br />
385 55<br />
<br />
55572.4<br />
2<br />
10385<br />
55<br />
1.538<br />
0.360<br />
จะได้เส้นตรงที่เป็นตัวแทนของการประมาณค่าแบบเชิงเส้นก าลังสองน้อยสุด<br />
เทียบกับค่าของข้อมูล ดังกราฟต่อไปนี้<br />
16<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
0<br />
-2<br />
0 1 2 3 4 5 6 7 8 9 10<br />
9
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
10<br />
‣ จากข้างต้นเราประมาณชุดข้อมูลด้วยเส้นตรงหรือพหุนามดีกรี 1 ใน<br />
ท านองเดียวกันเราสามารถประมาณชุดข้อมูลด้วยพหุนามดีกรีสูงกว่า 1 ได้<br />
เช่นกัน<br />
‣ สมมติชุดข้อมูลคือ <br />
x , y ;i<br />
1, ,m<br />
ต้องการสร้างพหุนาม<br />
P<br />
n<br />
i<br />
x<br />
i<br />
<br />
n k0<br />
a<br />
k<br />
ที่มีดีกรี n m 1<br />
ด้วยระเบียบวิธีก าลังสองน้อยสุด<br />
‣ วิธีการคือหา a , , เพื่อท าให้ค่าผิดพลาดก าลังสองน้อยสุดรวม<br />
0 an<br />
m 2<br />
E yi<br />
Pn<br />
xi<br />
<br />
มีค่าต่ าสุด<br />
i1<br />
x<br />
k<br />
E<br />
a<br />
ในกรณีนี้จ าเป็นต้องได้ว่า 0 ส าหรับ<br />
ซึ่งได้ระบบสมการ n 1 สมการใน a j<br />
j<br />
i 0,1,2,..., n<br />
m m m<br />
m m<br />
0 1 2<br />
n 0<br />
0 xi<br />
a 1 x i a 2 xi<br />
a n xi<br />
yixi<br />
i1<br />
i1<br />
i1<br />
i1<br />
i1<br />
m m m<br />
m m<br />
1 2 3<br />
n1<br />
1<br />
0 x i a1<br />
xi<br />
a 2 xi<br />
a n xi<br />
y i x i<br />
i1<br />
i1<br />
i1<br />
i1<br />
i1<br />
a <br />
a ---- (**)<br />
<br />
m m<br />
m<br />
m m<br />
n n1<br />
n2<br />
2n n<br />
0 xi<br />
a1<br />
xi<br />
a 2 xi<br />
a n xi<br />
yixi<br />
i1<br />
i1<br />
i1<br />
i1<br />
i1<br />
a <br />
แก้ระบบสมการข้างต้น(ซึ่งมีผลเฉลยเพียงหนึ่งเดียวตราบเท่าที่ x i<br />
แตกต่างกัน) a , ,<br />
จะได้ค่า ตามต้องการ<br />
0 an<br />
10
Interpolation<br />
<strong>Cubic</strong> <strong>Spline</strong> & <strong>Least</strong> <strong>Square</strong><br />
11<br />
ตัวอย่าง (Sheet) จากข้อมูลในตารางที่ก าหนดให้ จงประมาณค่าฟังก์ชันด้วยพหุ<br />
นามดีกรีสอง ด้วยระเบียบวิธีก าลังสองน้อยสุดเต็มหน่วย<br />
x 0 0.25 0.50 0.75 1.00<br />
i<br />
y 1.0000 1.2840 1.6487 2.1170 2.7183<br />
i<br />
วิธีท า ในที่นี้ต้องการสร้างพหุนามดีกรี 2 ดังนั้น n 2<br />
และโจทย์ก าหนดชุดข้อมูลมา 5 จุดดังนั้น m 5<br />
2<br />
ให้ P2 (x) a0<br />
a1x<br />
a 2x<br />
จากสูตร (**) จะได้ระบบสมการ<br />
a<br />
a<br />
a<br />
แทนค่าต่างๆไปจะได้<br />
5 5 5 5<br />
0 1 2 0<br />
0 xi<br />
a 1 x<br />
i a2<br />
xi<br />
yixi<br />
i1<br />
i1<br />
i1<br />
i1<br />
5 5 5 5<br />
1 2 3 1<br />
0 x<br />
i a1xi<br />
a2<br />
xi<br />
y<br />
i x i<br />
i1<br />
i1<br />
i1<br />
i1<br />
5 5 5 5<br />
2 3 4 2<br />
0 xi<br />
a1xi<br />
a2<br />
xi<br />
yixi<br />
i1<br />
i1<br />
i1<br />
i1<br />
5a<br />
2.5a1<br />
1.875a<br />
2<br />
0 <br />
2.5a<br />
1.875a 1 1.5625a<br />
2<br />
8.7680<br />
0 <br />
1.875a<br />
1.5625a 1 1.3828a<br />
2<br />
0 <br />
5.4514<br />
4.4015<br />
แก้ระบบสมการจะได้ a 0 1. 0052 , 0. 8641 a 3 <br />
2<br />
พหุนามที่ได้คือ P x 1.0052 0.8641x 0.8437<br />
a 1 , 0. 8437<br />
#<br />
2 x<br />
11