ค้นหาข้อมูลในบล็อก (Search in this blog)

Wednesday, February 9, 2011

แก้สมการ Overdetermined เพียงกระพริบตา (ปี๊บๆ)

Ex: จากตัวอย่างหนังสือเรื่อง GIS & MCDA ของ จาเซ็ค หน้าที่ 211 เราต้องการหาค่าแลมดา (Lamda: L) โดยมีสมการเงื่อนไขดังนี้
L1 = 0.5(L2) + 0.3(L3)
L2 = 0.7(L1) + 0.7(L2)
L1 + L2 + L3 = 1
ปรากฏว่าในหนังสือได้คำตอบคือ L1 = 0.4, L2 = 0.3 และ L3 = 0.3 จะพบว่าค่าที่ได้นั้นใช้ได้ในบางเงื่อนไขเท่านั้น (คำตอบมีได้หลายคำตอบหรือคำตอบนั้นไม่ใช่ Unique solution) ทำให้ผลลัพธ์อาจผิดพลาดได้ ........... แล้วเราจะทำอย่างไีีร
ก่อนอื่นเรามาดูเงื่อนไขหรือข้อมูลที่เรามีก่อนดังนี้ครับ
1. เรามีตัวไม่ทราบค่า (Unknown) 3 ตัวคือค่าแลมดา L1, L2, L3
2. เรามีสมการอย่างน้่อย 3 สมการ (ตามตัวอย่างในหนังสือ)
3. จากการศึกษาพบว่า ในหนังสือนั้นขาดการนำเอาเงื่อนไขบางอย่างมาสร้างสมการคือ L3 = 0.3(L1) + 0.5(L2)
4. เมื่อเรามีสมการเพิ่มขึ้นจะพบว่า เงื่อนไขของระบบสมการนี้จะเข้าสู่เงื่อนไขของ Overdetermined system (จำนวนสมการมากกว่าจำนวนตัวไม่ทราบค่า)
คราวนี้เรามาดูวิธีแก้ระบบสมการเชิงเส้นที่ Overdetermined ด้วยเมทริกซ์ดังตัวอย่างดังนี้

Condition Equation:
L1 = 0.5(L2) + 0.3(L3)
L2 = 0.7(L1) + 0.7(L2)
L3 = 0.3(L1) + 0.5(L2)
L1 + L2 + L3 = 1
A = [-1 .5 .3; .7 -1 .7; .3 .5 -1; 1 1 1]
X = [a; b; c]
L = [0; 0; 0; 1]

V = AX+L
N = transpose (A)*A
U = transpose (A)*L
Normal Equation:
transpose (X)* transpose (N) + transpose (U) = 0
หรือ N*X + U = 0 หรือ N*X = -U
X = - inv(N) * U

ส่วนวิธีการคำนวณด้วย Matlab มีดังนี้
a = [-1 .5 .3; .7 -1 .7; .3 .5 -1; 1 1 1]
l = [0; 0; 0; 1]
x = a\l
คำตอบที่ได้คือ
x = [0.2941; 0.4118; 0.2941] หรือ
L1 = 0.2941
L2 = 0.4118
L3 = 0.2941

No comments:

Post a Comment