เมทริกซ์พิเศษ
ในการประยุกต์ใช้งานเมทริกซ์ บางครั้งมีความจำเป็นต้องสร้างเมทริกซ์ที่มีค่าเฉพาะหรือมีรูปแบบที่เป็นมาตรฐาน เช่น ต้องการสร้างเมทริกซ์ที่มีค่าเป็นหนึ่งทั้งหมดขนาด m x n โดยที่ m และ n มีค่ามาก ถ้าสร้างเมทริกซ์นี้โดยการพิมพ์ค่าแต่ละค่าเข้าไปอาจจะทำให้เสียเวลามากและอาจเกิดข้อผิดพลาดได้ง่าย ดังนั้นโปรแกรม SCILAB จึงได้เตรียมฟังก์ชันพื้นฐานสำหรับสร้าง
เมทริกซ์พิเศษหลายรูปแบบขึ้นมาไว้ใช้งานตามตารางที่ 6.1 ตัวอย่างเช่น
ตารางที่ 6.1 ตัวอย่าง เมทริกซ์พิเศษในโปรแกรม SCILAB
คำสั่ง |
คำอธิบาย |
eye |
เมทริกซ์เอกลักษณ์ (identity matrix) |
ones |
เมทริกซ์ค่าหนึ่ง (one matrix) |
zeros |
เมทริกซ์ค่าศูนย์ (zero matrix) |
rand |
เมทริกซ์สุ่ม (random matrix) |
diag |
เมทริกซ์ทแยงมุม (diagonal matrix) |
tril |
เมทริกซ์สามเหลี่ยมด้านล่าง (lower triangular matrix) |
triu |
เมทริกซ์สามเหลี่ยมด้านบน (upper triangular matrix) |
toeplitz |
เมทริกซ์ Toeplitz (toeplitz matrix) |
-->A = eye(3,3) // สร้างเมทริกซ์เอกลักษณ์ที่มีขนาด 3 x 3
A =
1. 0. 0.
0. 1. 0.
0. 0. 1.
-->A = ones(2, 3) // สร้างเมทริกซ์ค่าหนึ่งขนาด 2 แถวและ 3 แนวตั้ง
A =
1. 1. 1.
1. 1. 1.
-->diag([1 2 3]) // ค่า 1, 2, และ 3 อยู่ที่เส้นทแยงมุมหลัก
ans =
1. 0. 0.
0. 2. 0.
0. 0. 3.
6.1 เมทริกซ์สุ่ม
เมทริกซ์สุ่ม (random matrix) เป็น เมทริกซ์ ที่มีสมาชิกเป็นจำนวน สุ่ม การสร้างเมทริกซ์สุ่มในโปรแกรม SCILAB สามารถทำได้โดยใช้คำสั่ง rand ซึ่ง มีลักษณะการเรียกใช้งานดังนี้
โดยที่
m1, m2 คือเลขจำนวนเต็มบวกที่ใช้กำหนดขนาดของเมทริกซ์สุ่มที่จะสร้างขึ้นมา เช่น rand(m1, m2) หมายถึง ให้สร้างเมทริกซ์สุ่มขนาด m1 แนวนอน และ m2 แนวตั้ง
key เป็นตัวเลือกที่กำหนดลักษณะการแจกแจง (distribution) ของจำนวนสุ่มที่สร้าง กล่าวคือ ถ้า
key = "uniform" จำนวนสุ่มที่สร้างขึ้นมาจะมีลักษณะการแจกแจงเอกรูปมีค่าอยู่ระหว่าง 0 ถึง 1 (เป็นค่าโดยปริยาย)
key = "normal" จำนวนสุ่ม ที่สร้างขึ้นมาจะมีลักษณะการแจกแจงปรกติ (หรือแบบเกาส์เซียน) ที่มี ค่าเฉลี่ยเท่ากับค่า 0
และมีค่าความแปรปรวน (varaince) เท่ากับค่า 1
ตัวอย่างการใช้งานของคำสั่งนี้ เช่น
-->X = rand(2, 4, 'uniform') // สร้างเมทริกซ์สุ่มขนาด 2 x 4
X =
0.3095371 0.9706916 0.0204748 0.3490364
0.6762972 0.5441797 0.8941365 0.1105365
-->W = rand(1, 100000, 'normal');
-->[mean(W), variance(W)] // ค่าเฉลี่ยและค่าความแปรปรวนสอดคล้องกับลักษณะการแจกแจงปรกติ
ans =
0.0048048 0.9988003
|