01204472/การทดลองเกี่ยวกับเมตริกซ์

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
หน้านี้เป็นส่วนหนึ่งของวิชา 01204472

เราจะทดลองเกี่ยวกับเมตริกซ์ และการใช้งานโครงสร้างข้อมูล matrix ของ numpy

ตัวอย่างการใช้งาน

>>> a = matrix([[1,2,3],[4,5,6]])
>>> a
matrix([[1, 2, 3],
        [4, 5, 6]])
>>> a.T
matrix([[1, 4],
        [2, 5],
        [3, 6]])
>>> norm(a,2)                              # หา matrix norm
9.5080320006957209
>>> b = matrix([[7,8],[9,10],[11,12]])
>>> b
matrix([[ 7,  8],
        [ 9, 10],
        [11, 12]])

>>> a*b
matrix([[ 58,  64],
        [139, 154]])

Orthogonal matrices

เราจะทดลองสร้าง orthogonal matrices โดยการหาเวกเตอร์ที่ตั้งฉากกัน กระบวนการดังกล่าวเรียกว่า Gram-Schmidt process

สุ่มเวกเตอร์

ใน pylab เราสามารถสุ่มเวกเตอร์ได้โดยใช้คำสั่ง rand [1] ซึ่งจะสามารถสร้าง array ตามมิติที่เราระบุได้ เช่น

>>> rand(5)
array([ 0.46074869,  0.45697852,  0.72675971,  0.87655621,  0.59247653])

เราสามารถสร้างเมตริกซ์จาก array ดังกล่าวได้โดยสั่ง matrix แต่เมตริกซ์ที่ได้จะเป็นเมตริกซ์ที่มี 1 แถว ไม่ใช่คอลัมน์เวกเตอร์ที่เราต้องการ แต่เราสามารถ transpose ได้โดยเรียก attribute T ของผลลัพธ์ดังกล่าว เช่น

>>> matrix(rand(5)).T
matrix([[ 0.50004005],
        [ 0.41567827],
        [ 0.56018141],
        [ 0.37370744],
        [ 0.29102686]])

จงเขียนฟังก์ชัน runit(n) ที่สุ่มเวกเตอร์ที่มีขนาด 1 หน่วยที่มีขนาด n

เวกเตอร์ที่ตั้งฉากกัน

ในส่วนนี้ เราจะสนใจกรณีของเวกเตอร์ขนาด 5 เท่านั้น ใช้ฟังก์ชัน runit() สุ่มเวกเตอร์ v1 จากนั้นสุ่มเวกเตอร์ u2 ให้ทดสอบว่าเวกเตอร์ u2 นั้นขนานกับ v1 หรือไม่ (มีโอกาสน้อยมากที่จะเกิดขึ้น) จากนั้นให้คำนวณหา

  • เวกเตอร์ u2a และ u2b ที่ u2 = u2a + u2b และ u2a นั้นตั้งฉากกับ v1
  • ให้เวกเตอร์ v2 เท่ากับเวกเตอร์ที่มีทิศทางเดียวกับ u2a แต่มีขนาด 1 หน่วย
    • ทดลองได้ว่า v2.T * v1 เท่ากับ 0 หรือไม่

จากขั้นตอนดังกล่าว เราจะสามารถสุ่มเวกเตอร์ v3 ที่ตั้งฉากกับทั้ง v1 และ v2 ได้

ให้เขียนฟังก์ชัน randorth(vlist,n) ที่รับรายการของเวกเตอร์ vlist ที่ประกอบไปด้วยเวกเตอร์ขนาด n ที่ตั้งฉากกันทั้งหมด และคืน unit vector ที่ตั้งฉากกับเวกเตอร์ทุกเวกเตอร์ในรายการ

ให้ใช้ฟังก์ชันดังกล่าว หาเวกเตอร์ v3, v4, และ v5 ที่เป็น unit vector ที่ตั้งฉากกันทั้งหมด

หมายเหตุ: ทดลองหา vector v6 ที่ตั้งฉากกับทุก ๆ เวกเตอร์

เมื่อเราได้เวกเตอร์ที่มีคุณสมบัติดังกล่าวแล้ว เราสามารถสร้างเมตริกซ์ Q ที่เป็น orthogonal matrix ได้ไม่ยาก ทดลองสร้างและตรวจสอบว่า Q เป็น orthogonal matrix จริงหรือไม่

Matrix norm

ใน pylab มีฟังก์ชัน norm (จาก numpy) สำหรับหา norm ของเมตริกซ์ อ่าน reference โดยในการหา operator norm ของเมตริกซ์ M เราจะสั่ง norm(M,2) นอกจากนี้ยังมี norm ประเภทอื่น เช่น ถ้าเราสั่ง norm(M) จะเป็นการหา Frobenius norm

เราจะหา norm ของเมตริกซ์ โดยใช้อัลกอริทึมสำหรับคำนวณหา eigenvalue ที่เรียกว่า Power method ทั้งนี้เนื่องจาก Operator norm นั้น มีค่าเท่ากับรากที่สองของ eigenvalue ที่มากที่สุดของ (ทำไม?)

เราจะหาค่าดังกล่าว ให้เมตริกซ์ เราจะสุ่มเวกเตอร์ จากนั้นเราจะนำเมตริกซ์ ไปคูณกับเวกเตอร์ ซ้ำไปเรื่อย ๆ (พร้อมกับสเกลเวกเตอร์ให้มีขนาด 1) นั่นคือ ในแต่ละรอบเราจะปรับค่า

ทำไปสักระยะ เวกเตอร์ จะเริ่มไม่เปลี่ยนแปลง (จะลู่เข้าสู่ค่า eigenvector ที่สอดคล� ... \n

Reuse of Wastewater May Improve Drinking Water Supply

With recent advances in technology and design, treating municipal wastewater and reusing it for drinking water, irrigation, industry, and other applications could significantly increase the nations total available water resources, particularly in coastal areas facing water shortages, says a new report from the National Research Council.

[Reuse of Wastewater May Improve Drinking Water Supply]

[GoodvilleNews.com - good, positive news, inspirational stories, articles]

Nintendo Unveils Wii U Console

Nintendo Co. on Tuesday unveiled details of its Wii U videogame console to be launched late this year, featuring a tablet computer-like controller with touch-sensitive panel.

[Nintendo Unveils Wii U Console]

[GoodvilleNews.com - good, positive news, inspirational stories, articles]

13 Things You Should Do To Live Life Without Regrets

A study that was performed on elderly individuals a few years back, has shown that during old age, there are many people who regret the things they didnt have the courage to do as opposed to only a few who had regrets about the things theyve done.

[13 Things You Should Do To Live Life Without Regrets]

[GoodvilleNews.com - good, positive news, inspirational stories, articles]

The Importance of Learned Optimism

What 25 years of research reveal about the cognitive skills of happiness and finding lifes greater purpose.The illiterate of the 21st century, Alvin Toffler famously said, will not be those who cannot read and write, but those who cannot learn, unlearn, and relearn. Our outlook on the world and our daily choices of disposition and behavior are in many ways learned patterns to which Tofflers insight applies with all the greater urgency

[The Importance of Learned Optimism]

[GoodvilleNews.com - good, positive news, inspirational stories, articles]

Use Your Talents Give More Receive More

When I stand before God at the end of my life, I would hope that I would not have a single bit of talent left, and could say, I used everything you gave me.Erma Bombeck

[Use Your Talents Give More Receive More]

[GoodvilleNews.com - good, positive news, inspirational stories, articles]