สำหรับผู้ที่มีพื้นหลังพีชคณิตเชิงเส้นเล็ก ๆ ความท้าทายนั้นง่ายเหมือนนี้: กำหนดค่าลักษณะเฉพาะและค่าลักษณะเฉพาะของเมทริกซ์ 2x2 ที่ซับซ้อน คุณอาจข้ามไปข้างหน้ารายละเอียด The Challenge for I / O เป็นต้นสำหรับผู้ที่ต้องการทบทวนระบบ eigens ให้อ่านต่อ
พื้นหลัง
สมลักษณะของเมทริกซ์ถูกกำหนดโดย
det| A - λI | = 0
โดยที่λเป็นพารามิเตอร์ที่ซับซ้อน (สเกลาร์) ฉันเป็นเมทริกซ์เอกลักษณ์และเดช | ... | เป็นปัจจัย ด้านซ้ายมือจะประเมินพหุนามในλซึ่งเป็นพหุนามลักษณะซึ่งเป็นกำลังสองในกรณีของเมทริกซ์ 2x2 การแก้สมการลักษณะนี้เป็นลักษณะเฉพาะของซึ่งเราจะแสดงเป็นλ 1และλ 2
ตอนนี้eigenvectors v ฉันของความพึงพอใจ
A vi = λi vi
สำหรับแต่ละλ iนี่จะให้ระบบสมการสองอันในสองสิ่งที่ไม่รู้จัก (ส่วนประกอบของv i ) ซึ่งสามารถแก้ไขได้อย่างง่ายดาย คุณจะสังเกตเห็นว่าระบบไม่ได้รับการระบุในความเป็นจริงและขนาดของ eigenvector ไม่ได้ถูกกำหนดโดยสมการ โดยปกติเราจะต้องการให้ eigenvector ทำการทำให้เป็นมาตรฐานนั่นคือ√ (| x | 2 + | y | 2 ) = 1 , โดยที่xและyเป็นส่วนประกอบเวกเตอร์, | x | 2คือxคูณด้วยคอนจูเกตที่ซับซ้อน
โปรดทราบว่าค่าลักษณะเฉพาะที่อาจจะเลวเช่นλ 1 = λ 2 ในกรณีนี้คุณอาจหรืออาจจะไม่สามารถตอบสนองระบบสมการเดียวที่มี eigenvector อิสระเชิงเส้นสองเส้น
ความท้าทาย
กำหนด 2x2 เมทริกซ์ที่มีองค์ประกอบที่ซับซ้อนกำหนดค่าลักษณะเฉพาะสองค่า (อาจเหมือนกัน) และค่ามาตรฐานเฉพาะสำหรับแต่ละค่าลักษณะเฉพาะ ตัวเลขผลลัพธ์ต้องมีความถูกต้องถึงตัวเลขนัยสำคัญอย่างน้อย 3 (ทศนิยม) คุณอาจจะคิดว่าส่วนจริงและจินตภาพขององค์ประกอบเมทริกซ์ใด ๆ อยู่ในช่วง[-1,1]
คุณสามารถเขียนฟังก์ชั่นหรือโปรแกรมรับอินพุตผ่าน STDIN, อาร์กิวเมนต์บรรทัดคำสั่ง, พรอมต์หรือฟังก์ชันอาร์กิวเมนต์ คุณอาจส่งออกผลลัพธ์ไปยัง STDOUT กล่องโต้ตอบหรือเป็นค่าตอบแทนการทำงาน
คุณสามารถใช้สตริงหรือรูปแบบรายการที่สะดวก (แต่ไม่ชัดเจน) ใด ๆ สำหรับอินพุตและเอาต์พุต นอกจากนี้คุณยังสามารถเลือกระหว่างคู่ของลอยหรือชนิดที่ซับซ้อนเพื่อแสดงตัวเลขแต่ละตัว
คุณต้องไม่ใช้ฟังก์ชั่นในตัวสำหรับการแก้ระบบ eigensystem (เช่น Mathematica Eigenvectors
หรือEigensystem
) หรือตัวแก้สมการ
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ
ตัวอย่าง
แต่ละตัวอย่างคือสามบรรทัด: อินพุตค่าลักษณะเฉพาะและค่าลักษณะเฉพาะที่สอดคล้องกันในลำดับเดียวกัน โปรดทราบว่า eigenvector นั้นจะพิจารณาเฉพาะในช่วงของพวกเขาเท่านั้นและในกรณีของ eigenvalues ที่แย่ลง eigenvector อาจจะมีความสามารถตามอำเภอใจ (ตามตัวอย่างแรก)
[[1.0, 0.0], [0.0, 1.0]]
[1.0, 1.0]
[[1.0, 0.0], [0.0, 1.0]]
[[0.0, 0.4], [-0.1, -0.4]]
[-0.2, -0.2]
[[0.894427, -0.447214], [0.894427, -0.447214]]
[[0.3, 0.1], [0.4, -0.9]]
[-0.932456, 0.332456]
[[-0.0808731, 0.996724], [0.951158, 0.308703]]
[[0.5, -1.0], [0.8, -0.5]]
[0.74162i, - 0.74162i]
[[0.745356, 0.372678 - 0.552771i], [0.745356, 0.372678 + 0.552771i]]
[[-0.0539222 + 0.654836i, -0.016102 + 0.221334i], [0.739514 - 0.17735i, -0.0849216 + 0.77977i]]
[0.238781 + 0.984333i, -0.377625 + 0.450273i]
[[0.313668 + 0.322289i, 0.893164], [-0.236405 - 0.442194i, 0.865204]]
[[-0.703107 - 0.331792i, 0.286719 - 0.587305i], [-0.418476 + 0.396347i, -0.885934 + 0.50534i]]
[-1.13654 - 0.32678i, -0.4525 + 0.500329i]
[[0.833367, -0.248208 - 0.493855i], [-0.441133 - 0.408236i, 0.799215]]
[[-0.156312 + 0.788441i, 0.045056 - 0.579167i], [0.130741 - 0.97017i, 0.049183 - 0.590768i]]
[-0.181759 + 1.11738i, 0.0746298 - 0.919707i]
[[0.86955, -0.493846 + 0.000213145i], [0.318856 - 0.0181135i, 0.94763]]