16.03.2015 Views

Cubic Spline & Least Square

Cubic Spline & Least Square

Cubic Spline & Least Square

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!