Friday, September 09, 2005

Discrete: ผลคูณภายใน และ การถ่วงน้ำหนัก

ขอเบนประเด็นมานิดนึงนะ แต่หัวข้อใหญ่อันเดิม ใครที่อ่านสองตอนที่แล้วไม่รู้เรื่อง ช่างมันไปก่อนก็ได้ ครั้งนี้ง่ายมาก ๆ นะ (เน้นแต่เรื่องการตีความกับการใช้งาน)

มาลองดูสิ่งที่เราเรียกว่า "ผลคูณภายใน" (Inner Product หรือ Dot Product น่ะนะ) ของเวกเตอร์สองตัวกัน

สมมติว่า u และ v เป็นเวกเตอร์ที่มีโดเมนเป็น {1, 2, 3, ..., n} (เรียกง่าย ๆ ว่า เวกเตอร์ n มิติ :D) ผลคูณภายในของ u กับ v ก็คือ

uv = u1v1 + u2v2 + u3v3 + ... + unvn

หรือเขียนในรูป Σ ได้เป็น

Σ1≤x≤n (uxvx)

แล้ว ... ผลคูณภายในมันเอาไปใช้ทำอะไรหละ? ลองดูนี่นะ
"สมมติว่า เปิดก๊อกน้ำด้วยอัตรา 1 ลิตรต่อนาที นาน 4 นาที จากนั้นเปลี่ยนอัตราการไหลเป็น 5 ลิตรต่อนาที ทิ้งไว้ 6 นาที แล้วก็หมุนก๊อกเป็น 10 ลิตรต่อนาที ทิ้งไว้อีก 3 นาที จะได้น้ำกี่ลิตร?"
วิธีคิดก็ง่าย ๆ คือ

น้ำทั้งหมด = 1⋅4 + 5⋅6 + 10⋅3 = 64

แต่ ลองสังเกตดูนิดนึง ก็จะเห็นว่า

1⋅4 + 5⋅6 + 10⋅3 = (1, 5, 10)⋅(4, 6, 3)

แล้วถ้าถามต่อว่า
"อัตราการไหลเฉลี่ยเป็นเท่าไหร่?"
จะคิดยังไง?

ก็หารด้วยเวลาทั้งหมดใช่มะ ... ใช่สิ แล้วมันคือเท่าไหร่หละ?

4 + 6 + 3 = 13

สังเกตแบบเดิมอีกที...

4 + 6 + 3 = 1⋅4 + 1⋅6 + 1⋅3 = (1, 1, 1)⋅(4, 6, 3)

โอ้ว ... ขอหยุดเรื่องค่าเฉลี่ยแป๊บนะ ... เราได้ข้อสรุปอะไรบางอย่างละ

ถ้าให้ v เป็นเวกเตอร์ n มิติ โดยที่ vi = อัตราการไหลในช่วงเวลาที่ i
และ u เป็นเวกเตอร์ n มิติ โดยที่ ui = ความยาวของช่วงเวลาที่ i

จะรู้ว่า

uv = ปริมาณน้ำทั้งหมด
(1, 1, 1, ..., 1)⋅v = เวลาทั้งหมด
อัตราการไหลเฉลี่ย = uv/(1, 1, 1, ..., 1)⋅v

ได้ค่าเฉลี่ยละ :D ... คราวนี้ สมมติว่าเราไม่รู้จัก v เลยนะ สมมติว่ารู้จักแต่ u (ก็คือ รู้แต่ว่ามีอัตราการไหลเท่าไหร่บ้าง)

u⋅(1, 1, 1, ..., 1) = อัตราการไหลรวม
(ก็คือ ปริมาณรวมเมื่อหมุนก๊อกเปลี่ยนทุก 1 นาที)

อันนี้ มันก็คือผลรวมของ ui น่ะแหละ ส่วนอัตราการไหลเฉลี่ยก็คือ ค่าเฉลี่ยของ ui ซึ่งเท่ากับ

u⋅(1, 1, 1, ..., 1)/n

ซึ่ง ... สังเกตอีกแล้ว จะเห็นว่า

n = 1⋅1 + 1⋅1 + 1⋅1 + ... + 1⋅1 จำนวน n ตัว

สรุปละนะ!!! สำหรับเวกเตอร์ตัวเดียว

u เป็นเวกเตอร์ ซึ่ง ui = ค่าของข้อมูลตัวที่ i
และ (1, 1, 1, ..., 1) = α

จะได้ว่า
αα = จำนวนข้อมูล
uα = ผลรวมค่าของข้อมูลทั้งหมด
ค่าเฉลี่ย (เลขคณิต) = uα / αα

แล้วถ้ามีเวกเตอร์สองตัว

u เป็นเวกเตอร์ ซึ่ง ui = ค่าของข้อมูล 1 ตัวในกลุ่มที่ i
v เป็นเวกเตอร์ ซึ่ง vi = จำนวนข้อมูลที่อยู่ในกลุ่มที่ i
และ (1, 1, 1, ..., 1) = α

จะสรุปได้ว่า
αv = จำนวนข้อมูล
uv = ผลรวมค่าของข้อมูลทั้งหมด
ค่าเฉลี่ย = uv / αv

เราเรียก v ว่าเป็น เวกเตอร์ถ่วงน้ำหนัก หรือ ฟังก์ชันถ่วงน้ำหนัก

คราวนี้ ... อะไรคือ "เวกเตอร์ตั้งฉากกัน"?

จากนิยามที่เราน่าจะคุ้น ๆ กันมาก่อน...

"uv ก็ต่อเมื่อ u ตั้งฉากกับ v"

จริง ๆ ใน 2 มิติกับ 3 มิติ เราก็เห็นภาพว่ามันเป็นยังไงนะ แต่ใน n มิติหละ? ... ก็เอามาจากข้อสรุปเมื่อกี๊ไง
ผลรวมค่าของข้อมูลทั้งหมด = 0

2 Comments:

At 5/24/2006 12:10 PM, Anonymous Anonymous said...

ดีจังครับ มีความรู้แบ่งปันกันด้วย ขอบคุณมาก

 
At 5/24/2006 12:11 PM, Anonymous Anonymous said...

เออ...ผมรออ่านบทความกึ่งวิชาการคุณอยู่ดีมากๆเลย

 

Post a Comment

<< Home