หน้าหลัก
  บทเรียน scilab
  การประยุกต์ใช้งาน
  ดาวน์โหลด
  ฟังก์ชันคณิตศาสตร์
  Symbolic Toolbox
  บริการฝึกอบรม
  เว็บบอร์ด
  เว็บไซต์ที่น่าสนใจ
  สมุดเยี่ยมชม
  บุคลากร
สมัครสมาชิก
ดาวน์โหลดฟรี

Download Scilab
Scilab - LabVIEW
INRIA
Scicos
admin Online ขณะนี้ : 2 คน count
 
การสร้างสเกล่าร์ เวอร์เตอร์และเมทริกซ์


ค่าสเกลาร์ (scalar) สามารถที่จะถูกกำหนดลงในตัวแปรได้ทันที เช่น ถ้าต้องการกำหนดให้ และ
ก็ทำได้ดังนี้

-->a = 2 + 3*%i                             // กำหนดให้
a =

      2. + 3.i

-->b = 5;                                        // กำหนดให้

-->

โดยที่ %i คือค่าคงที่พิเศษ ที่ใช้ในการแสดงตัวเลขเชิงซ้อนโดยจะมีค่าเท่ากับค่าหน่วยจินตภาพ (imaginary unit)
นั่นคือ ส่วนเครื่องหมายเซมิโคลอน “ ; ” ที่ใช้ปิดท้ายคำสั่งที่สองเป็นการบอกให้โปรแกรม
ไม่ต้องแสดงผลลัพธ์ออกทางหน้าต่างคำสั่ง และ เครื่องหมาย double slash “//” หรือ เครื่องหมายคอมเมนต์
(comment) เป็นเครื่องหมายที่จะบอกให้โปรแกรม SCILAB
ไม่ทำการประมวลผลต่อคำสั่งหรือข้อความที่อยู่หลังเครื่องหมาย คอมเมนต์นี้

ในการใช้งานโปรแกรม SCILAB เครื่องหมายขึ้นบรรทัดใหม่ “ ... ” ซึ่งมีลักษณะเป็นจุดที่เรียงต่อกันสามจุด
จะมีประโยชน์มากในการเขียนโปรแกรมโดยเฉพาะอย่างยิ่งเมื่อคำสั่งที่ใช้มีความยาวมาก เครื่องหมายนี้
เอาไว้ใช้ต่อท้ายคำสั่ง เพื่อบอกว่าคำสั่งในบรรทัดนั้นยังไม่สิ้นสุด ดังนั้นถึงแม้ว่าจะกดปุ่ม Enter
หลังเครื่องหมายจุดสามจุดนี้ โปรแกรม SCILAB ก็จะยังไม่นำคำสั่งนั้นไปประมวลผล
แต่จะรอรับข้อมูลส่วนที่เหลือที่จะเขียนต่อไปในบรรทัดใหม่จนกระทั่งหมดคำสั่งแล้วกดปุ่ม Enter อีกครั้ง
จากนั้นโปรแกรม SCILAB จึงจะเอาข้อความทั้งหมดมารวมกันเป็นประโยคคำสั่งเดียวแล้วค่อยนำเอาไปประมวลผล
ตัวอย่างเช่น

-->x = 5;

-->y = 3;

-->z = x + y                                    // หาผลบวกของตัวแปร x กับตัวแปร y

z =                                                 // แล้วนำผลลัพธ์ที่ได้ไปบรรจุไว้ในตัวแปรใหม่ที่ชื่อตัวแปร z

      8.

-->z = x + ...                                 // ยังไม่สิ้นสุดคำสั่ง โปรแกรม SCILAB จะยังไม่นำข้อมูลนี้ไปประมวลผล

-->y                                               // เมื่อกดปุ่ม Enter ก็ถือว่าเป็นการสิ้นสุดคำสั่งที่ป้อนจากบรรทัดก่อนหน้านี้

z =                                                // โปรแกรม SCILAB จะนำคำสั่งทั้งหมดคือ z = x + y ไปประมวลผล

      8.

จะเห็นได้ว่าผลลัพธ์ที่ได้มีค่าเท่ากัน

โปรแกรม SCILAB ได้เตรียมค่าคงที่พิเศษอื่นๆ เพื่อรองรับการคำนวณทางคณิตศาสตร์ เช่น

•  %pi คือค่าอัตราส่วน ระหว่างความยาวเส้นรอบวงกับเส้นผ่านศูนย์กลางของวงกลม ซึ่ง มีค่าเท่ากับ = 3.1415927...

•  %e คือค่าคงที่ตรีโกณมิติ โดยมีค่าเท่ากับ e = 2.7182818...

•  %inf มาจากคำว่า “infinity” คือค่าอนันต์ นั่นคือ %inf =

•  %nan มาจากคำว่า “Not-A-Number” คือค่าที่ไม่สามารถแสดงให้อยู่ในรูปของตัวเลขได้

•  %eps มาจากคำว่า “epsilon” คือค่าหน่วยย่อยขนาดเล็กที่สุดที่โปรแกรม SCILAB สามารถรองรับได้
โดยจะมีค่าเท่ากับ e 2.22*10 -16 ดังนั้นค่าจำนวนจริงที่มีค่าน้อยกว่าค่า %eps โปรแกรม SCILAB
จะถือว่าเป็นค่าศูนย์

•  ans คือตัวแปรชั่วคราวที่โปรแกรม SCILAB ใช้เก็บผลลัพธ์ที่ได้จากการคำนวณของคำสั่ง
แต่ละคำสั่งในหน้าต่างคำสั่ง

เวกเตอร์ (vector) คือเมทริกซ์ (matrix) ขนาดหนึ่งแถว หรือเมทริกซ์ขนาดหนึ่งแนวตั้ง เวกเตอร์แถว
(row vector) สามารถสร้างได้โดยการใช้เครื่องหมายคอมม่า (comma) “ , ” หรือช่องว่าง (space)
เป็นตัวแยกสมาชิกแต่ละสมาชิกในเวกเตอร์แถว ตัวอย่างเช่น

-->v = [1, 2, -3]

v =

      1.     2.     - 3.

-->v = [1 2 -3]

v =

      1.     2.     - 3.

ถ้าต้องการทราบว่าเวกเตอร์ v มีความยาวเท่าใดหรือมีจำนวนสมาชิกทั้งหมดเท่าใด ก็ทำได้
โดยการใช้คำสั่ง length ดังนี้

-->length(v)

ans =

      3.                                         // หมายความว่าเวกเตอร์ v มีสมาชิกสามตัว

ในขณะที่เวกเตอร์แนวตั้ง (column vector) สามารถสร้างได้โดยการทรานส์โพส (transpose)
เวกเตอร์แถวซึ่งจะใช้เครื่องหมาย single quote “ ' ” ตามหลังตัวแปรเวกเตอร์แถว
หรือสามารถสร้างเวกเตอร์แนวตั้งขึ้นมาได้โดยตรงโดยการใช้เครื่องหมายเซมิโคล่อนเป็นตัวแยก
สมาชิกแต่ละสมาชิกในเวกเตอร์แนวตั้ง เช่น

-->v = [1 2 3];                            // สร้างเวกเตอร์แถว v

-->v'                                          // ใช้ทรานส์โพสกับเวกเตอร์แถวเพื่อให้ได้เป็นเวกเตอร์แนวตั้ง

ans =

      1.

      2.

      3.

-->w = [1; 2; -3]                       // สร้างเวกเตอร์แนวตั้งขึ้นมาโดยใช้เครื่องหมายเซมิโคล่อน

w =

      1.

      2.

    - 3.

นอกจากการกำหนดค่าโดยตรงให้กับเวกเตอร์แล้ว
ผู้ใช้ยังสามารถกำหนดค่าของเวกเตอร์ให้มีค่าเพิ่มขึ้นหรือลดลงแบบอัตโนมัติได
้ โดยการใช้เครื่องหมายโคล่อน (colon) “ : ” ช่วยซึ่งมีรูปแบบการใช้งานดังนี้

ชื่อตัวแปร = ค่าเริ่มต้น : ค่าที่เพิ่มขึ้น (หรือค่าที่ลดลง) : ค่าสุดท้าย

ในกรณีที่ไม่มีการกำหนดค่าที่เพิ่มขึ้น (หรือค่าที่ลดลง) โปรแกรม SCILAB จะกำหนดให้เป็น
ค่าที่เพิ่มขึ้นเท่ากับ +1 โดยอัตโนมัติ (ค่าโดยปริยาย) ตัวอย่างเช่น

-->z = 1:2:10                          // เริ่มต้นที่ค่า 1 แล้วเพิ่มขึ้นทีละ +2 จนกระทั่งถึงค่าที่มากที่สุดที่ไม่เกิน 10

z =

      1.          3.           5.          7.           9.

-->z = 10:-2.5:0                      // เริ่มต้นที่ค่า 10 แล้วลดลงทีละ -2.5 จนกระทั่งถึงค่าที่น้อยที่สุดที่ไม่เกิน 0

z =

      10.         7.5          5.          2.5           0.

-->z = 0:5                               // เริ่มต้นที่ค่า 0 แล้วค่าเพิ่มขึ้นทีละ +1 จนกระทั่งถึง 5

z =

      0.      1.      2.       3.       4.       5.

-->z = 5:0                               // ค่าเริ่มต้นที่ 5 ไม่สามารถเพิ่มขึ้นทีละ +1 จนถึง 0 ได้ ดังนั้นผลลัพธ์ที่ได้จึงเป็น

z =                                         // เมทริกซ์ว่าง (empty matrix) นั่นคือมีจำนวนแถวกับจำนวนแนวตั้งเท่ากับศูนย์

      []

เมทริกซ์ขนาด m x n คือเมทริกซ์ที่มีจำนวนจำนวน m แถว และ n แนวตั้ง เช่น ถ้าต้องการ
สร้างเมทริกซ์ขนาด 2 x 3 สามารถสร้างได้ เช่น

-->A = [1 2 3; 4 5 6]

A =

      1.       2.       3.

      4.       5.       6.

และหากต้องการทราบว่าเมทริกซ์ A มีขนาดเท่าใดก็สามารถทำได้โดยใช้คำสั่ง size ดังนี้

-->size(A)

ans =

      2.       3.                                // บอกว่า เมท ริกซ์ A มีขนาด 2 x 3 (หรือ 2 แถว และ 3 แนวตั้ง)

นอกจากนี้ ผู้ใช้ สามารถที่จะอ้างถึงสมาชิกแต่ละตัวในเมทริกซ์ได้โดยตรงตามรูปแบบ
การใช้งานดังนี้
-->b = A(2, 3)

b =

      6.

คำสั่งนี้เป็นการบอกโปรแกรม SCILAB ให้นำค่าของสมาชิกในแถวที่สองและแนวตั้ง
ที่ สามของเมทริกซ์ A ไปบรรจุไว้ในตัวแปร b ในทำนองเดียวกันผู้ใช้ยังสามารถที่จะกำหนด
ค่าให้แก่สมาชิก แต่ละตัวในเมทริกซ์ได้ โดยตรง เช่น

-->A(2, 3) = 10

A =

      1.       2.       3.

      4.       5.       10.

ซึ่งเป็นการกำหนดให้ค่าของสมาชิกในแถวที่สองและแนวตั้งที่สามของเมทริกซ์ A
มีค่าเป็นค่า 10 ดังนั้นเมทริกซ์ A จึงมีผลลัพธ์ตามที่แสดงไว้ข้างต้น

การหาทรานส์โพส ดีเทอร์มิแนนต์ อินเวอร์สการคูณ ของเมทริกซ์

ทรานส์โพสเมทริกซ์ (matrix transpose) เป็นการเปลี่ยนแนวตั้งให้เป็นแถว และเปลี่ยนแถว
ให้เป็นแนวตั้ง โปรแกรม SCILAB สามารถทำการทรานส์โพสเมทริกซ์ได้ 2 รูปแบบ คือ

•  ทรานส์โพสแบบสังยุค (conjugate transpose) จะใช้เครื่องหมาย “ ' ” เป็นตัวดำเนินการ
โดย ทำหน้าที่สร้างทรานส์โพสเมทริกซ์ พร้อมทั้งทำการสังยุคของตัวเลขเชิงซ้อนด้วย

•  ทรานส์โพสแบบธรรมดา (transpose) จะใช้เครื่องหมาย “ .' ” เป็นตัวดำเนินการ โดย
จะสร้างเฉพาะทรานส์โพสเมทริกซ์เท่านั้น

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

-->A = [1 + 2*%i; 3; 2 - %i];

-->A'                                                      // ใช้ทรานส์โพสแบบสังยุค

ans =

      1.  - 2.i            3.          2. + i           // ทำการสังยุคของตัวเลขเชิงซ้อนด้วย

-->A.'                                                    // ใช้ทรานส์โพสแบบธรรมดา

ans =

      1. + 2.i           3.           2. - i

สำหรับค่า ดีเทอร์มิแนนต์ (determinant) และ การหา อินเวอร์สการคูณของเมทริกซ์ A
สามารถทำได้โดยการใช้คำสั่ง det(A) และ inv(A) ตามลำดับ เช่น

-->A = [1 2; 3 4];                                  // สร้างเมทริกซ์ A

-->det(A)                                              // หาดีเทอร์มิแนนต์ ของเมทริกซ์ A

ans =

      - 2.

-->inv(A)                                              // หาอินเวอร์สการคูณของเมทริกซ์ A

ans =

      - 2.              1.

      1.5            - 0.5

 

สงวนลิขสิทธิ์ มหาวิทยาลัยราชภัฏนครปฐม
85 ถนนมาลัยแมน อำเภอเมือง จังหวัดนครปฐม 73000
โทร. 034-261021 โทรสาร .034-261065 E-mail : piya@npru.ac.th