วันศุกร์ที่ 6 มีนาคม พ.ศ. 2558

ไซแลบสำหรับผู้เริ่มต้น

Table of content

Introduction
About this document 4
Install Scilab 4
Mailing list 4
Complementary resources 4

Chapter 1 – Become familiar with Scilab The general environment and the console 5
Simple numerical calculations 6
The menu bar 7
The editor 8
The graphics window 9
Windows management and workspace customization 11

Chapter 2 - Programming Variables, assignment and display 12
Loops 16
Tests 17
2 and 3D plots 18
Supplements on matrices and vectors 23
Calculation accuracy 29
Solving differential equations 30

Chapter 3 – Useful Scilab functions In analysis 32
In probability and statistics 32
To display and plot 33
Utilities 33

About this document
จุดประสงค์ของเอกสารนี้เพื่อแนะนำไปที่ละขั้นๆในการสำรวจลักษณะพื้นฐานของไซแลบสำหรับผู้ใช้ที่ไม่เคยใช้ซอพท์แวร์ในการคำนวณมาก่อน  การนำเสนอในเอกสารโดยมีจำกัดที่จงใจในเนื้อหาแก่นหลักที่ทำให้ง่ายต่อการใช้ดำเนินการไซแลบ  การคำนวณ การเขียนและการแสดงกราฟ โดยใช้ไซแลบเวอร์ชั้น 6.02    เราสามารถใช้คำสังทั้งหมดเหล่านั้นจากเวอร์ชันนี้.

Install Scilab Scilab
การติดตั้งซอพท์แวร์การคำนวณไซแลบที่ทุกคนสามารถดาวน์โหลดมาใช้ได้ภายใต้ระบบปฏิบัติการวินโดว์ ลินุกซ์ และ แมค  OS X, ไซแลบสามารถดาวโหลดได้ที่แอดเดรส  http://www.scilab.org/  เราสามารถที่จะรู้ได้ถึงซอพท์แวร์ไซแลบที่ปล่อยออกมารุ่นใหม่ โดยสามารถซับสไคร์บ ตามช่องทางที่ให้ไว้ตามแอดเดรสต่อไปนี้: http://lists.scilab.org/mailman/listinfo/release

Mailing list
รายการแจ้งข่าวทางเมลที่อำนวยความสะดวกระหว่างผู่ใช้ไซแลบ มีรายละเอียดในรายการเรื่องต่างๆ ของเมล(รายการในภาษาฝรั่งเศษสำหรับโลกการศึกษา รายการเมลสากลเป็นภาษาอังกฤษ).  หลักการที่ง่าย ผู้ที่ลงทะเบียนไว้จะสื่อสารกันและกันโดยอีเมลได้( คำถาม  คำตอบ แบ่งปันแลกเปลี่ยนเอกสาร การแสดงความเห็นย้อนกลับ..).  เพื่อที่จะกวาดหารายการเมลและการซับสไคร์บ ให้ไปที่แอดเดรสต่อไปนี้: http://www.scilab.org/communities/user_zone/mailing_list

Complementary resources 
ถ้าสามารถเชื่อมต่ออินเตอร์เน็ตได้ จะได้รับเชิญฐให้เข้าเยี่ยมเว็บไซต์ไซแลบ เป็นที่จะหาเซ็กชันที่เกี่ยวข้องกับการใช้ไซแลบ(http://www.scilab.org/support/documentation), ด้วยลิงค์แอดเดรสนี้และเอกสารที่เกี่ยวข้องสามารถที่จะดาวโหลดและพิมพ์ออกมาใช้ได้ฟรี


Chapter 1 – Become familiar with Scilab
ประโยชน์ของพื้นที่ทำงานในไซแลบประกอบด้วยหน้าต่างทำงานหลายอย่าง
 • The console for making calculations,
 • The editor for writing programs,
 • The graphics windows for displaying graphics,
 • The embedded help.

The general environment and the console
หลักจากดับเบิลคลิกที่ไอคอนโปรแกรมไซแลบเข้าสู่การใช้งาน สิงแวดล้อมของไซแลบโดยดีฟอลท์ประกอบด้วยหน้าต่างที่ให้มาต่อไปนี้  – หน้าต่างคอนโซล, หน้าต่างเบล้าเซอร์ไฟล์และตัวแปร, หน้าต่างประวัติการใช้คำสั่ง  (ให้ดูที่ “Windows management and workspace customization”, page 11):


ในคอนโซลนี้หลังเครื่องหมายเตรียมพร้อม “ --> “, เพียงแต่พิมพ์คำสั่งแล้วกดคีย์ Enter  (Windows and Linux) หรือคีย์ Return (Mac OS X) บนคีย์บอร์ดเพื่อให้ใด้ผลลัพธ์แสดงผลการทำงานตามคำสั่ง

 --> 57/4
ans =
         14.25

--> (2+9)^5
ans =
          161051.

ยังสามารถกลับมาที่จุดหนึ่งจุดใดโดยใช้ลูกศรบนคีย์บอร์ด ← ↑ → ↓ หรือโดยการใช้การเคลื่อนเม้าซ์  คีย์ลูกศรทางซ้ายและขวาใช้ในการเปลี่ยนคำสั่ง และคีย์ลูกศรชี้ขึ้นและลงใช้ในการกลับมาสู่คำสั่งที่ดำเนินการไปแล้วเพื่อแก้ไขให้ทำงานใหม่ได้

Simple numerical calculations
การคำนวณทุกอย่างในไซแลบกับจำนวณตัวเลข ไซแลบดำเนินการคำนวณด้วยเมตริกซ์(see chapter 2, page 23). เครื่องหมายดำเนินการเขียนด้วย“ + “ สำหรับการบวก, “ – “ สำหรับการลบ, “ * “ สำหรับการคูณ, “ / “ สำหรับการหาร, “ ^ “ สำหรับยกกำลัง ตัวอย่างเช่น
 -->2+3.4
       ans =
               5.4
ตัวพิมพ์เล็กใหญ่ให้ผลแตกต่างกัน  ดังนั้นจึงต้องคำนึงถึงการพิมพ์ด้วยพิมพ์เล็กและพิมพ์ใหญ่ที่ต่างกันในการคำนวณที่เหมาะสม  ตัวอย่างเช่น การใช้คำสั่ง sqrt(ซึ่งคำนวณหารากที่สอง หรือสแควรูท

 -->sqrt(9)                                  ขณะที่                       -->SQRT(9)
       ans = 3.                                                                                    !--error 4

                                                                                       Undefined variable : SQRT

จำนวนเฉพาะ (Particular numbers)
%e และ %pi แทนค่า e และ π  ตามลำดับ
 --> %e                                                                        --> %pi
       %e =                                                                           %pi =
               2.7182818                                                                    3.1415927

 %i แทนค่า i ของจำนวนเชิงซ้อนในอินพุตและแสดงค่า i ในเอ้าพุท
 --> 2+3*%i
       ans =
                2. + 3.i

การที่ไม่ให้แสดงผลลัพธ์ โดยการเพิ่มเซมิโคลอน “ ; “  ที่ตอนปลายของบรรทัดคำสั่ง  คำสั่งทำให้มีการคำนวณแต่ไม่แสดงผลลัพธ์ให้เห็น

-->(1+sqrt(5))/2;     ไม่แสดงผลลัพธ์

 --> (1+sqrt(5))/2     แสดงผลลัพธ์
       ans =
                1.618034

To remind the name of a function
ชื่อของฟังก์ชันที่ใช้กันทั่วไปสรุปไว้ในบทที่ 3 ในเอกสารนี้ (หน้า32)  ตัวอย่างเช่น

 --> exp(10)/factorial(10)
       ans =
               0.0060699

คีย์แท็บ  →│ บนคีย์บอร์ดสามารถให้แสดงชื่อของฟังก์ชันหรือตัวแปรหนึ่งๆ ทั้งหมดโดยกำหนดสองสามตัวอักษรแรกก็ใช้ได้ตัวอย่างเช่น . หลังจากพิมพ์คำสั่งในคอนโซลดังนี้ :

 -->fact

และหลังจากนั้นกดคีย์แท็บ แล้ววินโดว์แสดงฟังก์ชันและชื่อตัวแปรทั้งหมด ที่ขี้นต้นด้วย fact fact, ดังเช่น factorial และ factor.  จากนั้นเพียงแต่ดับเบิลคลิกที่ฟังก์ชันที่ต้องการ หรือเลือกด้วยการเคลื่อนเมาซ์ หรือ คีย์ลูกศร ↑ ↓  แล้วกด Enter (Windows and Linux) หรือ Return (Mac OS X)  เพื่อใส่เข้าไปในบรรทัดคำสั่ง

The menu bar 
เมนูได้แสดงรายการข้างล่างนี้มีประโยชน์เป็นการเฉพาะ
Applications
   • ประวัติคำสั่ง (The command history) ยอมให้ค้นคำสั่งการทำงานที่แล้วมาไปจนถึงคำสั่งการทำงานล่าสุด
   • เบล้าเซอร์ตัวแปร(The variables browser) ยอมให้ค้นหาตัวแปรทั้งหมดที่ใช้มาก่อนระหว่าการทำงานตามคำสั่งล่าสุด

Edit 
Preferences (ในเมนูไซแลบภายใต้ Mac OS X)  อนุญาตให้เซ็ตตั้งค่าสี ฟ้อน และ ขนาดฟ้อนในคอนโซล และในเอดิเตอร์ ซึ่งมีประโยชน์มากสำหรับการโปรเจคชันของจอ(screen projection)
การคลิก Clear Console  ทำการเคลียร์เนื้อหาทั้งหมดในคอนโซล  ในกรณีนี้ ประวัติคำสั่งยังคงมีอยู่ และการคำนวณที่ดำเนินการระหว่างเซสชั่นยังคงมีอยู่ในหน่วยความจำ  คำสั่งที่ได้ลบออกไปยังคงมีให้ใช้ได้ผ่านทางลูกศรของคีย์บอร์ด

Control
เพื่อที่จะขัดจังหวะการทำงานของโปรแกรมสามารถทำได้คือ
    • โดยการพิมพ์ pause ในโปรแกรมหรือคลิก  Control> Interrupt ในเมนูบาร์  (Ctrl X ภายใต้ Windows และ Linux หรือ Command X ภายใต้ Mac OS X), ถ้าโปรแกรมกำลังรันอยู่เรียบร้อยแล้ว ในทุกกรณีเครื่องหมายเตรียมพร้อม “ --> “ จะเปลี่ยนไปเป็น “ -1-> “, แล้วเปลี่ยนไปเป็น“ -2-> “…, ถ้าการดำเนินการซ้ำ
   • เพื่อกลับเข้าสู่เวลาก่อนที่โปรแกรมจะถูกขัดจัดหวะ ให้พิมพ์ resume ในคอนโซลหรือคลิก Control > Resume.
   • เพื่อที่จะเลิกหยุดเพื่อการคำนวณที่ดีปราศจากทางเป็นไปได้ที่จะกลับมาอีก ให้พิมพ์ abort ในคอนโซลหรือคลิกที่ Control > Abort ในเมนูบาร์

The editor 
การพิมพ์เข้าไปในคอนโซลโดยตรง มีข้อด้อยอยู่สองประการ นั่นคือเป็นไปไม่ได้ที่จะบรรทึกคำสั่ง และค่อนข้างยุ่งยากในการแก้ไขหลายๆบรรทัดคำสั่ง เอดิเตอร์จึงเป็นเครื่องมือที่เหมาะสมในการใช้รันคำสั่งมากหลายคำสั่ง

การเปิดใช้เอดิเตอร์ (Opening the editor) 

การเปิดเอดิเตอร์จากคอนโซล ให้คลิกที่ไอคอนแรกในทูลบาร์หรือที่  Applications > SciNotes เมนูบาร์ เอดิเตอร์เปิดขึ้นมาด้วยชื่อไฟล์ดีฟอลท์ “ Untitled 1 “.

การเขียนในเอดิเตอร์ (writing in editor)  
พิมพ์ในเอดิเตอร์คล้ายคลึงกับการพิมพ์ในเวิร์ดโปรเซสเซอร์.
ในเท็กเอดิเตอร์ การเปิดและปิดวงเล็บ ปิดลูป(end loop)  ฟังก์ชัน และ ทดสอบคำสั่งถูกเพิ่มเข้ามาโดยอัตโนมัติ อย่างไรก็ตาม ลักษณะเหล่านี้อาจใช้ไม่ได้ใน  Options > Auto-completion บนเมนู ในการคลิกบนการนำเข้าข้างล่างสองแบบสามารถเป็นได้โดยดีฟอลท์

      • (,[,…
      • if,function,…

ขณะที่โดยหลักการแต่ละคำสั่งควรจะนำเข้าบนบรรทัดแยกกัน  แต่ก็เป็นไปได้ที่จะพิมพ์หลายประโยคคำสั่งบนบรรทัดเดียวกันโดยแยกแต่ละประโยคคำสั่งด้วยเซมีโคลอน “ ; “.  ช่องว่างหนึ่งที่เริ่มต้นบรรทัดคำสั่งเรียกว่าการย่อหน้า(indentation)จะเป็นไปโดยอัตโนมัติเมื่อเป็นลูปหนึ่งหรือการทดสอบเริ่มต้น ในตัวอย่างต่อไปนี้ ทำการคำนวณ 10 เทอม ของ ลำดับ(sequence ) (Un!) ที่กำหนดโดย


















Mention
 -การเขียนคอมเมนต์ นำหน้าคอมเมนต์ด้วย “ // “ ส่วนนี้จะไม่นำไปเกี่ยวข้องในการคำนวณ
 -การเปลี่ยนฟ้อน ให้คลิกที่ Options > Preferences.
 - เมื่อเขียนโปรแกรม ย่อหน้าจะเป็นไปโดยอัตโนมัติ ถ้าไม่เป็นไปตามที่กล่าวให้คลิกที่  Format > Correct indentation  เพื่อให้กลับโหมดอัตโนมัติ (Ctrl I ภายใต้ Windows และ Linux หรือ Command I ภายใต้ Mac OS X)

Saving 
ไฟสามรถที่จะบันทึกโดยการคลิกที่  File > Save as.
นามสกุลไฟล์“ .sce “ ที่ตอนท้ายของชื่อไฟล์ไซแลบจะใส่ให้โดยอัตโนมัติเมื่อเปิดไฟล์ (นอกจากภายใต้ Linux และ Mac OS X). การสำเนามายังคอนโซล  สั่งให้ปฏิบัติงานตามโปรแกรม โดยการคลิกที่ Execute  ในเมนูบาร์ แล้วจะมีให้ 3 ทางเลือก

    • Execute “ …ไฟล์โดยไม่มี echo “ (Ctrl Shift E ภายใต้ Windows และ Linux, Cmd Shift E ภายใต้ Mac OS X): ไฟล์ถูกสั่งให้ปฏิบัติโดยไม่เขียนโปรแกรมลงในคอนโซล(saving the file first is mandatory).
    • Execute “ … ไฟล์โดยมี echo “ (Ctrl L ภายใต้ Windows และ Linux, Cmd L ภายใต้ Mac OS X): ทำการเขียนไฟล์ลงในคอนโซลด้วยและปฏิบัติตามคำสั่งในไฟล์
    • Execute “ …จนปรากฏ caret, โดยมี echo “ (Ctrl E ภายใต้ Windows และ Linux, Cmd E ภายใต้ Mac OS X): โดยเขียนส่วนที่เลือกด้วยเม้าซ์เข้าไปในคอนโซล และถูกสั่งให้ปฏิบัติตามคำสั่ง หรือ ปฏิบัติตามข้อมูลไฟ
ล์ (execute the file data) จนถึงตำแหน่ง caret ที่กำหนดโดยผู้ใช้

 copy/paste มาตรฐาน สามารถนำมาใช้ได้.

การเปิดวินโดว์กราฟิกส์  วินโดว์กราฟิกส์จะเปิดขึ้นโดยอัตโนมัติเมื่อสร้างการพล็อตกราฟใดๆ  เป็นไปได้ที่จะพล็อตเคิร์ฟ เคิร์ฟผิวหน้า(surface) ลำดับของจุด(sequennces of points) (see chapter 2, page 18).  เพื่อให้เห็นตัวอย่างของเคิร์ฟที่พล็อต ให้พิมพ์ในคอนโซลคือ
    -->plot



Mention
-  เพื่อที่จะลบการพล็อตที่แล้วมา ให้พิมพ์ clf (“ clear figure “).
-  เพื่อเปิดวินโดว์กราฟิกส์อื่น ให้พิมพ์ scf; (“ set current figure “).  ถ้าหลายวินโดว์กราฟิกส์ถูกเปิดขึ้นผู้ใช้สามารถเลือก ให้การพล็อตใดวาดปรากฏให้เห็นโดยการพิมพ์  scf(n);  n คือจำนวนวินโดว์กราฟิกส์(mentioned on the top left).






Modifying a plot
แว่นขยาย(magnifying glass)ยอมให้มีการซูม  การซูมใน 2 ไดเมนชัน ให้คลิกที่เครื่องมือ (tool) และโดยการใช้เมาซ์สร้างสี่เหลี่ยมที่ขยายโตขึ้นกว่าเดิมในการมอง  การซูมในสามมิติ ให้คลิกที่เครื่องมือแล้วสร้าง parallelepiped  ซึ่งจะเป็นการสร้างการมองภาพที่โตขึ้น  และเป็นไปได้ที่จะซูมโดยหมุนล้อบนเมาซ์   เพื่อกลับเข้าสู่หน้าจอเดิม ให้คลิกที่แว่นขยายอื่น  ไอคอนนั้นยอมให้มีการรูปร่างกราฟ (มีประโยชน์โดยเฉพาะในสามมิติ) ด้วยการคลิกปุ่มเมาซ์ทางขวาซึ่งถูกแนะแนวทางโดยข้อความในตอนล่างของหน้าต่างกราฟิกส์ สำหรับการขยายที่ให้รายละเอียด ให้คลิกที่ Edit > Figure properties  หรือ Axes properties  และผู้ใช้ทำตามที่แนะแนวทาง(ในทางเลือกนี้ยังไม่มีใช้ภายใต้ Mac OS X).

Online help
เพื่อที่จะข้อความช่วยเหลือออนไลน์ ให้คลิก  ? > Scilab Help  ในเมนูบาร์ หรือพิมพ์ในคอนโซล:
-->help   เพื่อที่จะรับความช่วยเหลือจากชนิดฟังก์ชันใดๆ  ให้พิมพ์  help ในคอนโซลตามด้วยชื่อฟังก์ชันที่ต้องการความช่วยเหลือ ตัวอย่างเช่น :
-->help sin            ก็จะแสดงการช่วยเหลือสำหรับฟังก์ชัน sin (sine)



Mention
ตัวอย่างการใช้สามารถรันสั่งให้ทำงานในไซแลบ และแก้ไขใน SciNotes  ในการใช้เกี่ยวข้องปุ่มกดต่างๆ ตามกรอบตัวอย่าง










การจัดการหน้าต่าง และการปรับพื้นที่ทำงาน 
(Windows management and workspace customization)
    ตามดีฟอลท์สิ่งแวดล้อมของไซแลบ ที่ซึ่งคอนโซล ไฟล์ และ ตัวแปร  เบล้าเซอร์ และประวัติคำสั่ง  ซึ่งทั้งหมดนั้นปรากฏอยู่ในหน้าต่างวินโดว์   หน้าต่างวินโดว์อื่นๆ ในไซแลบสามารถสามารถจัดวางให้อยู่ในตำแหน่งใหม่ได้สามารถกำหนดให้อยู่ในวินโดว์อื่นที่ใหญ่กว่าได้ ตัวอย่างเช่น ผู้ใช้สามารถเลือกที่วางตำแหน่งของเอดิเตอร์เป็นดีฟอลท์ในสิ่งแวดล้อมไซแลบ
    เพื่อที่จัดวางวินโดว์ที่ต้องการในวินโดว์อื่น  สิ่งแรกมองหาบาร์สีฟ้าตามแนวนอนภายใต้วินโดว์ หรือสีดำภายใต้ Mac OS X และลีนุกซ์  ที่ด้านบนของวินโดว์ในทูลบาร์(toolbar) ที่มีเครื่องหมายคำถาม ? ทางขวา

     • ภายใต้วินโดว์และลีนุกซ์ ให้คลิกที่บาร์นี้ด้วยปุ่มซ้ายของเม้าซ์ และ ขณะที่ยังคงกดแช่ไว้ ให้เคลื่อนตัวชี้เม้าซ์ไปยังหน้าต่างที่ต้องการ
     • ภายใต้ Mac OS X, ให้คลิกที่บาร์นี้ ขณะที่ทำการคลิกให้เคลื่อนไปยังวินโดว์ที่ต้องการ  เกิดสี่เหลี่ยมพื้นผ้าประกฏขึ้นมาบ่งชี้ให้เห็นถึงตำแหน่งวินโดว์ในอนาคต เมื่อได้ตำแหน่งหนึ่งที่ต้องการ ให้คลายปุ่มเมาซ์  เพื่อทีจะยกเลิก และปล่อยวินโดว์ออกมา ให้คลิกที่ลูกศรเล็ก ทางขวาของบาร์เดียวกัน.

     การปรากฏสี่เหลี่ยมผืนผ้าบ่งให้ทราบถึงต่ำแหน่งใสอนาคตของหน้าต่าง (window)  เมื่อตำแหน่งนั้นเป็นตำแหน่งที่ต้องการหนึ่ง  ให้ปล่อยปุ่มเมาซ์ที่กดแช่ไว้  ในการยกเลิกและนำหน้าต่างออกมาแสดง ให้คลิกที่ลูกศรเล็กทางขวาของบาร์เดียวกัน




Chapter 2  การเขียนโปรแกรมในไซแลบ

Chapter 2 - Programming Variables, assignment and display 12
Loops 16
Tests 17
2 and 3D plots 18
Supplements on matrices and vectors 23
Calculation accuracy 29
Solving differential equations 30


     ในตัวอย่างที่ให้มาในเอกสารนี้ แต่ละบรรทัดจะนำหน้าด้วย “ --> “ คือคำสั่ง บรรทัดอื่นคือส่วนที่ได้จากคำสั่ง (ผลการคำนวณ, รายงานข้อผิดพลาด)  ไม่ต้องเขียน “ --> “ ในเอดิเตอร์ . ที่จะเริ่มต้นตอนนี้ที่ชี้ให้เห็นถึงความแตกต่างระหว่างบรรทัดคำสั่งและผลการคำนวณตามที่แสดงให้เห็นในคอนโซลหลังจากสำเนาและนำไปวาง เมื่อนำเสนอในรูปตารางหนึ่ง (โดยปราศยาก “ --> “ และไม่แสดงผลการคำนวณ)  คำสั่งถูกกำหนดชัดเจน เหมือนที่ควรจะพิมพ์ไว้ในเอดิเตอร์  ตัวแปร การกำหนดค่า และการแสดงตัวแปรไซแลบไม่ใช่ระบบพีชคณิตคอมพิวเตอร์  การคำนวณเฉพาะกับจำนวณตัวเลข  การคำนวณทั้งหมดสำเร็จลงได้ด้วยเมทริกซ์  แม้ว่าการดำเนินการนี้ไม่อาจสังเกตได้  แม้ว่ามโนทัศนฺ์ของเมทริกซ์ไม่เป็นที่รู้จัก เวคเตอร์ และ แถวลำดับ (sequences) ของจำนวนสามารถจะอธิบายได้ตามที่เป็น  จริงแล้วเมทริกซ์ของ 1xn มิติ หรือ nx1 และจำนวนหนึ่งๆโดยตัวเองเป็นเมตริกซ์มิติ  1 × 1.  ตัวแปรไม่จำเป็นต้องประกาศไว้ก่อนล่วงหน้า แต่ตัวแปรใดๆต้องมีค่าค่าหนึ่ง  ตัวอย่างเช่น การให้ได้มาค่าของตัวแปรหนึ่ง ซ่ึ่งยังไม่ได้กำหนดค่ามาก่อนก่อให้เกิดข้อผิดพลาด
 -->a !--error 4 Undefined variable : a
ถ้ามีค่าหนึ่งถูกกำหนดให้ตัวแปรหนึ่ง ก็จะไม่มีข้อผิดพลาดอีกต่อไป
 --> a=%pi/4
          a = 0.7853982
--> a
       a = 0.7853982
ตัวแปรอาจเป็นชื่อใดชื่อหนึ่งได้ที่ไม่ได้กำหนดไว้ก่อนโดยระบบ
--> Piby2=%pi/2
           Piby2 = 1.5707963
กล่าวถึงคล้ายกับฟังก์ชันไซแลบ  ชื่อตัวแปรหนึ่งๆจะต้องมีตัวอักขระหรืออักขระพิเศษ

ผลการคำนวณที่ไม่ได้กำหนดให้ตัวแปร จะกำหนดให้ตัวแปรที่เรียกว่า ans: โดยอัตโนมัติ
-->3*(4-2)
   ans = 6.
-->ans
    ans = 6.

     ฟังก์ชัน(Functions)
ฟังก์ชันเป็นแนวทางที่เป็นธรรมชาติง่ายที่สุดที่จะคำนวณจากตัวแปร และให้ได้ผลลัพธ์จากตัวแปร.
นิยามของฟังก์ชันหนึ่งเริ่มต้นด้วย function และจบด้วย endfunction ตัวอย่างเช่นในการแปลง euros(e) ให้ได้คำตอบเป็นดอลล่าdollars (d) ด้วยอัตราการแลกเปลี่ยน exchange rate (t),   โดยกำหนดdollars function  ตัวแปรที่มีคือ e และ t  และ image  คือ d
 -->function d=dollars(e,t);
       d=e*t; endfunction
-->dollars(200,1.4) ans = 280.

ตามปกติแล้วฟังก์ชันเชิงจำนวนหรือตัวเลข เป็นฟังก์ชันของตัวแปรจริงหนึ่ง ตัวอย่างเช่น ฟังก์ชัน f และ ฟังก์ชัน g ถูกกำหนดโดยใช้คำสั่งต่อไปนี้

-->function y=f(x); y=36/(8+exp(-x)); endfunction
-->function y=g(x); y=4*x/9+4; endfunction

การกำหนดฟังก์ชันแล้วสามารถใช้เพื่อคำนวณหาค่าดังนี้
--> f(10) ans = 4.4999745
--> g(12.5) ans = 9.5555556

การกำหนดค่าให้ตัวตัวแปรหนึ่ง (requesting the assignment of a variable)
การกำหนดค่าให้ตัวแปรทำใด้ง่ายโดยการใช้เครื่องหมายกระทำ “ = “

Display 
Writing 
เพียงแต่พิมพ์ชื่อของตัวแปรหนึ่งๆ ก็จะแสดงผลค่าของตัวแปรนั้น นอกจากว่ามีเครื่องหมายเซมิโคลอน  “ ; “ อยู่ตอนท้ายของบรรทัดคำสั่ง
Brackets
เมทริกซ์ถูกกำหนดขึ้นโดยใช้วงเล็บเหลี่ยม (square brackets).  ตามที่กล่าวถึงมาก่อนแล้ว การคำนวณเมทริกซ์ เป็นรากฐานของการคำนวณในไซแลบ  ช่่องว่าง หรือ คอมม่าใช้ในการแยกคอร์ลัมน์ และเซมิโคลอนใช้ในการแยกแถว  เพื่อที่จะกำหนดเวคเตอร์คอร์ลัม  และให้ผลการแสดงเป็นคอร์ลัมดังนี:

-->v=[3;-2;5]
  v =
        3.
     - 2.
        5.

เพื่อกำหนดเวคเตอร์แถว และให้แสดงผลแถวของเมทริกซ์ดังนี้

-->v=[3,-2,5]
  v =
      3. - 2.  5.

หมายเหตุ  คำสั่งนี้สามารถพิมพ์ออกมาภายใต้รูปแบบ  v=[3 -2 5] เพียงเว้นช่องว่างระหว่างสมาชิกในวงเล็บ

เพื่อที่จะกำหนดเมทริกซ์และให้แสดงผลแบบในแนวตั้ง หรือ แท่ง (tabular display)

-->m=[1 2 3;4 5 6;7 8 9]
     m =
          1.  2.  3.
          4.  5.  6.
          7.  8.  9.

หมายเหตุ คำสั่งนี้สามารถพิมพ์ออกมาภายใต้รูปแบบ m=[1,2,3;4,5,6;7,8,9]

ฟังก์ชัน disp
disp ต้องใช้ร่วมกับวงเล็บเสมอ   กับเวคเตอร์ v ที่กำหนดไว้ก่อนหน้านี้

 -->v(2)
   ans =
        - 2. -->
disp(v(2)) - 2.

เพื่อแสดงผลสตริง(มักอยู่ในรูปประโยค) ให้นำข้อความหรือสตริงที่ต้องการแสดงอยู่ในเครื่องหมายคำพูด
-->disp("Bob won")
          Bob won
เพื่อแสดงผลการควบรวมของคำและค่าต่างโดยใช้คำสั่งสตริง  ซึ่งแปลงค่าไปเป็นสตริงตัวอักขระ โดยการใช้เครื่องหมายบวก “ + “ ระหว่างส่วนที่แตกต่างกัน

-->d=500;
 -->disp("Bob won "+string(d)+" dollars")
          Bob won 500 dollars

ถ้าประโยคประกอบด้วยเครื่องหมายคำพูดเดี่ยว (single quote)  การแสดงแบบแรกจำต้องใช้การซ้ำสองในสตริงที่ต้องการแสดงให้ถูกตำแหน่ง

-->disp("It''s fair")
     It's fair

 การเพิ่มที่ละสเต็บในลูป (Loops Incrementation)
ตัวกระทำโคลอน “ : “ ใช้ในการกำหนดเวคเตอร์ของจำนวน ที่ซึ่งประสานลำดับแบบเลขคณิต  โดยให้เครื่องหมาย << สำหรับค่าเริ่มต้น : สเต็ป : ค่าปลายด้วยเครื่องหมาย>> (beginning value<<: step: ending value>>.  เป็นไปได้ที่ไม่เข้าสู่ค่าปลายหรือท้าย  ถ้าไม่ระบุสเต็บที่เพิ่มหรือลด โดยมีค่าปริยายคือ 1

ตัวอย่างเช่น เพื่อกำหนดเวคเตอร์แถวของเลขจำนวนเต็ม ซึ่งการเพิ่มขึ้นสเต็บละ 1 จาก 3 และ 10
-->3:10
  ans =
         3.  4.  5.  6.  7.  8. 9. 10. or

ซึ่งการเพิ่มขึ้นสเต็ปละ 2 จาก 1 ถึง 10  ดังนี้
 -->1:2:10
  ans =
         1.  3.  5.  7.  9.

หรือเป็นไปในทางที่ลดลงทีละสเต็ปของ 4 จาก 20 to 2:
 -->u=20:-4:2
  u = 20. 16. 12. 8. 4.

for
สำหรับโครงสร้างลูปที่ง่ายที่สุดสำหรับจำนวนที่ตายตัวของการทำงานซ้ำ เขียนได้เป็น  for … end.
ตัวอย่าง:  ให้คำนวณ 20 เทอมของลำดับที่กำหนดโดยการเกิดซ้ำตามความสัมพันธ์คือ
{u1 = 4}
{un+1 = un + 2n +3}

 Algorithm                                                           Scilab Editor
Put 4 in u(1)                                                         u(1)=4
For n from 1 to 20                                                for n=1 :20
u(n+1) takes the value u(n)+2n+3                       u(n+1)= u(n)+2*n+3;
and u(n)                                                                display ([n,u(n)])
display n and u(n)                                                 end
End for                                                     

 While
เพื่อหยุดลูปเมื่อกำหนดเป้าหมายที่จะไปถึง,  โดยใช้ while … end 

ฉันได้ปลูกต้นคริสมาสในปี 2005วัดได้สูง 1.20 m.  ต้นไม้เติบโตขึ้นปีละ 30 ซม. ฉันตัดสินใจที่จะตัดต้นไม้นี้เมื่อมันสูงเกินกว่า 7 เมตร ในปีใดที่ฉันจะต้องตัดต้นไม้นี้

Algorithm                                                          Scilab Editor
Put 1.2 in h (h = tree height)                                 h=1.2;
Put 2005 in y (y = year)                                        y=2005;
While h<7                                                             while h<7
      h takes the value h+0.3 (the tree grows)          h=h+0.3;
      y takes the value y+1 (one year passes)           y=y+1;
 End while                                                               end
  Display y (the final year)                                     disp("I will cut the.. tree in "+string(y))
 

หมายเหตุ เมื่อคำสั่งหนึ่งยาวเกินกว่าที่จะเขียนในบรรทัดเดียว เอดิเตอร์จะรวมบรรทัด  สามารถทำได้โดยใช้สองจุด“ .. “ (two dots) ก่อนที่จะไปยังบรรทัดต่อไป


Tests
Comparison operators
การทดสอบที่มีประโยชน์รวมทั้งการเปรียบเทียบจำนวนหรือหาว่าประโยคคำสั่งใดเป็นจริงหรือเป็นเท็จ ข้างล่างนี้คำสั่งที่สอดคล้องกัน

 Equal     Different      Less      Greater      Less or equal      Greater or equal
   ==         <>               <                >              <=                         >=

True         False          And           Or                No
  %T          %F              &              |                  ~

หมายเหตุ  จงระมัดระวังกับค่าความถูกต้องในการคำนวณ   การคำนวณเป็นแนวทางเข้าสู่ และ “ == “ บางครั้งจะให้ผลลัพธ์ที่ผิดพลาด (ดูค่าความละเอียดใหนการคำนวณหน้า 30)

เพื่อเปรียบเทียบเวคเตอร์ 2 เวคเตอร์หรือ 2 เมทริกซ์ การทดสอบ “ == “ และ “ <> “ จะเปรียบเทียบเทอมต่อเทอม ตัวอย่างเช่น:
-->X=[1,2,5]; Y=[5,3,5];
-->X==Y
  ans =
         F  F  T

เพื่อทดสอบ 2 เวคเตอร์เท่ากันหรือไม่  ใช้ isequal  และใช้ ~isequal  ถ้า แตกต่างกัน
-->isequal(X,Y)
  ans =
        F
-->~isequal(X,Y)
  ans =
        T

If…then
ประโยคคำสั่งเงื่อนไขพื้นฐานดังต่อไปนี้
 • if … then … else … end,
 • if … then … elseif … then … else … end.

if … then  ต้องเขียนอยู่บนบรรทัดเดียวกัน และเช่นเดียวกับ elseif … then.

ตัวอย่าง  อลิษทอยลูกเต๋า 3 ลูก
    • If she gets three 6’s she wins $20,
    • If she gets three identical numbers different from 6 she wins $10,
    • If she gets two identical numbers she wins $5,
    • Otherwise she wins nothing.

ให้จำลองแบบการทดลองทอยลูกเต๋า และคำนวณการชนะรางวัลของอลิษโดยใช้ฟังก์ชัน
    • grand (see page 22),
    • unique(D)which keeps only once the values that appears several times in D,
    • length(unique(D)) which returns the size of the obtained vector, that is to say 1 if three dice are           equal, and 2 if two dice are equal.

Algorithm                                                                 Scilab Editor

Put the three values in D                                          D=grand(1,3,"uin",1,6);
If Alice gets three 6, then Alice wins 20 dollars      if D==[6,6,6] then W=20;
Else if she receives three identical values,               elseif length(unique(D))==1                                    then    Alice wins 10 dollars                                      hen W=10;
Else, if she receives two identical values,                 elseif length (unique(D))==2
then Alice wins 5 dollars                                           then W=5;
Otherwise                                                                   else
 Alice wins nothing                                                     W=0;
End if                                                                          end                                                                   
Display Alice's winnings                                            disp("Alice wins "+.. string(W)+ " dollars")

 2-D and 3-D plots 
คำสั่ง พล็อตใช้ในการพล็อตกราฟในระนาบ สีและการปรากฏให้เห็นสามารถระบุโดยการใช้ตัวบ่งชี้สีและรูปแบบจุดพล็อตภายในเครื่องหมายคำพูด
   • Colors "b" = blue (by default), "k" = black, "r" = red, "g" = green, "c" = cyan, "m" = magenta, "y" = yellow, "w" = white.
   • Point styles Joined (by default), or ".", "+", "o", "x", "*". Other options are available with: "s", "d", "v", "<", and ">".

การพล็อตกราฟพื้นฐาน (Basic plots)
การพล็อตจุดกราฟ
ให้พล็อตจุด A(1 ; 2) ด้วยจุดสีแดง

Scilab Editor                                                         Graphics Window

plot(1,2.".r")
                                                        

พล็อตเซ็กเมนต์(To plot a segment)
ให้พล็อตเซ็กเมนต์[AB] ด้วยสีฟ้า(่โดยปริยาย) ด้วย A(1 ; 2) และ B(3 ; 5).

Scilab Editor                                                         Graphics Window

plot([1,3],[2,5])                                           
                                                                                                                                                      
การพล็อตเคิร์ฟแนวราบโดยฟังก์ชัน y=f(x) (plot of plane curves by function y=f(x))
สำหรับฟังก์ชัน x → f(x)  ค่าของ x ระบุไว้โดยใช้ คำสั่ง linspace  โดยเขียนคำสั่งดังนี้ x=linspace(a,b,n); ซึ่ง a เป็นค่าน้อยที่สุดของตัวแปร x, b เป็นค่าสูงสุดของ x, และ  n  จำนวนค่าที่คำนวณระหว่างค่า a และ b   อย่าลืมว่าสัญลักษณ์ “ ; “  นอกจากนี้แล้วทุกค่า n ของ x จะถูกนำออกมาแสดง

ตัวอย่างเช่น   พิจารณาฟังก์ชัน 2 ฟังก์ชัน f  และ g  กำหนดอยู่ในช่วง [-2 ; 5] โดยที่:
                    f(x) = (x^2 + 2x)e^-x , และ and g(x) = sin x/2

ด้วยโปรแกรมข้างล่างนี้ ได้พล็อตเคิร์ฟกำหนดโดย f , สีฟ้าโดยปริยาย

Scilab Editor                                                         Graphics Window

function y=f(x)                                             
   y=(x^2+2*x)*exp(-x)
endfunction
x=linspace(-2,5,50);
plot(x,f)                                   
                                                                      

โดยการเพิ่มโปรแกรมข้างล่าง จะได้การพล็อตของเส้นเคิร์ฟ 2 เส้น ที่เป็นของ f สีแดง และของ g สีเขียว
การพล็อตที่ผ่านมาล้างออกไปโดยใช้คำสั่ง clf(“ clear figure “).

Scilab Editor                                                 Graphics Window

function y=g(x)
    y=sin(x/2)
endfunction
x=linspace(-2,5,50);
clf
plot(x,f,"r",x,g,"g")                                 
                                                                                                                       
พล็อตชุดของจุด(Plots of sequences of points)
Terms of a sequence
ในกรณีทั่วไปเกือบทั้งหมดจะพล็อตไปตามลำดับของจุด M(n,u(n)) หลังจากการคำนวณของพิกัดฉาก u(n) ของเวคเตอร์u. plot(u,"*r") บ่งถึงสไตล์และสีของจุดในเครื่องหมายคำพูด  สีแดงและรูดดาวที่ไม่เชื่อมต่อ  โดยปริยายแล้วจุดต่างๆ ถูกพล็อตด้วยสีฟ้า และ เชื่อมต่อกัน

Scilab Editor                                                        Graphics Window

for n=1:50
   u(n)=(-0.8)^n;
end clf;
plot(u,"*r")                                              
              


ข้อมูลสถิติ 2 ตัวแปร (Bivariate statistical data)
 ข้อมูลสถิติ 2 ตัวแปรถูกกำหนดขึ้นในรูปของเวคเตอร์ 2 เวคเตอร์  เรียกว่า X และ ํBivariate statistical data are given in the form of two vectors: let’s call them X and Y.
plot(X,Y,"<")  พล็อตสแกตเตอร์กราฟของ M(Xi;Yi) (scatter plot of M(Xi;Yi) แสดงจุดพล็อตด้วยสามเหลี่ยมสีฟ้า

Scilab Editor                                                         Graphics Window

X=[1,3,3,7,7,9,10];
Y=[8,7,5,5,4,2,2];
   clf; plot(X,Y,"<")                                   
                                                     
                   

การพล็อตกราฟ 3 มิติ (Plots in 3 dimensions) 
ไซแลบสามารถใช้ในการพล็อตพื้นผิว เคิร์ฟในสเปสซ์ ด้วยออพชันมากมายสำหรับจัดการผิวด้านที่ซ่อนบังไว้  สีของผิวหน้า, จุดในการมอง ฯลฯ ตัวอย่างต่อไปนี้แสดงการพล็อตกราฟ 3-D 

ฟังก์ชัน surf สามารถใช้ในการพล็อตพื้นผิว  ฟังก์ชันนี้มีตัวแปรนำเข้า 3 ตัวแปร x, y และ z.   x และ y เป็นเว็คเตอร์ขนาดare respectively vectors of size m and n ตามลำดับ สอดคล้องกับจุดบนแกน(0x) และ(0y).   z คือ เมทริกซ์ขนาดมิติ m×n ด้วยองค์ประกอบ zij  สอดรับกับความสูงของจุดตามพิกัดX xi  และพิกัดaY yi 

เพื่อที่จะพล็อตพื้นผิวโดยฟังก์ชันในรูป z = f(x,y)   ซึ่งต้องทำดังต่อไปนี้
    • กำหนดฟังก์ชัน f
    • คำนวณ z=feval(x,y,f)'
feval(x,y,f) คืนค่าเป็นreturns the m×n matrix  ซึ่งองค์ประกอบ ij คือ f(xi,yi) ซึ่งจะถูกทรานสโพสโดยใช้เครื่องหมายคำพูดเดี่ยว“ ' “
    • Execute surf(x,y,z).

เพื่อจะพล็อตพื้นผิว z = 2x^2 + y^2 (elliptic paraboloid):

Scilab Editor                                                      Graphics Window function
z=f(x,y)
  z=2*x^2+y^2;
endfunction
  x=linspace(-1,1,100);
  y=linspace(-2,2,200);
  z=feval(x,y,f)';
clf
surf(x,y,z)
                                                 
                

เคิร์ฟในสเปสซ์อาจพล็อตโดยใช้ ฟังก์ชัน param3d  โดยที่ param3d มี 3 อาร์กูเมนต์ x, y และ z,  แต่ละเวคเตอร์มีมิติเดียวกัน และสอดคล้องกับจุด(xi,yi,zi) บนเคิร์ฟ

เพื่อพล็อต helix กำหนดโดยdefined by (x = cos t , y = sin t , z = t):

Scilab Editor                                                           Graphics Window
t=linspace(0,4*%pi,100);
param3d(cos(t),sin(t),t)
                                                             
                            
การจำลองแบบและสถิติ (Simulations and statistics)
มีหลายฟังก์ชันที่นำมาใช้ได้ในไซแลบเพื่อใช้ในการจำลองแบบได้เร็วและมีประสิทธิภาพ

ลำดับการสุ่ม (Random  Sequences)       
   • grand(1,p,"uin",m,n) คืนกลับเป็นเวคเตอร์หนึ่ง ของ ลำดับการสุ่มจำนวนเต็ม p (p random integer sequences) ระหว่าง m และ n ด้วยจำนวนเต็มบวก p , m และ n เป็นจำนวนเต็มและ m ≤ n.

-->t = grand(1,4,"uin",1,6)
     t =
          3.   1.   3.   6.

     • grand(1,p,"unf",a,b) คืนกลับค่าเป็นเว็คเตอร์หนึ่งของลำดับการสุ่มจำนวนจริงp (p random real sequences) ระหว่าง a และ b ด้วยจำนวนเต็มบวก , a และ b เป็นจำนวนจริง และ  a ≤ b.

-->tr = grand(1,2,"unf",-1,1)
     tr =
         - 0.7460264    0.9377355

สถิติ (Statistics) 

ฟังก์ชันมาตรฐานทางสถิติทั้งหมดแสดงรายการไว้ในหน้า 32
    คิดไว้ในใจเป็นการเฉพาะกล่าวคือ
    • ฟังก์ชัน  bar(x,n,color) ซึ่งวาดกราฟแท่ง(bar graphs):

Scilab Editor                                                     Graphics Window 
x=[1:10];
n=[8,6,13,10,6,4,16,7,8,5];
clf; bar(x,n)
                                                       

      • สำหรับกราฟแท่งที่แทน 2 ชุดด้านต่อด้าน(two sets side by side): พิจารณาชุดของค่า X และ 2 ชุดลำดับของจำนวน n1 และ n2.  สำหรับการพล็อต n1 และ n2 ต้องเป็นเว็คเตอร์คอร์ลัมน์ นั่นคือทำไมจึงนำทรานสโพสมาใช้ในตัวอย่างข้างล่าง

 Scilab Editor                                                Graphics Window
X=[1,2,5];n1=[5,10,5];n2=[6,8,7];
bar(X,[n1',n2'])
                                                           

อาร์กูเมนต์ทางเลือกสีกำหนดสีตามฟังก์ชันการพล็อต


ข่าวสารเพิ่มเติมของเมทริกซ์และเวคเตอร์ (Additional information on matrices and vectors)
การจัดการองค์ประกอบเว็คเตอร์
 วงเล็บเหลี่ยมถูกนำมาใช้เพื่อกำหนดเมทริกซ์  สเปสซ์หนึ่งหรือคอร์ลัมน์หนึ่งๆถูกใช้เพื่อสลับจากคอร์ลัมน์หนึ่งไปเป็นอีกคอร์ลัมน์ และเซมิโคลอนถูกใช้เพื่อสลับจากบรรทัด(line)ไปเป็นอีกบรรทัด ดังนี้

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

วงเล็บใช้เพื่อจัดการองค์ประกอบของเมทริกซ์หรือปรับเปลี่ยนองค์ประกอบ

หมายเหตุ คำสั่งนี้สามารถพิมพ์ภายใต้รูปแบบ m=[1,2,3;4,5,6]

-->m(2,3)
    ans =
           6.
-->m(2,3)=23
     m =
         1.    2.    3.
         4.    5.    23.

โอเปอร์เรเตอร์ “ : “ ถูกนำมาใช้เพื่อจัดวางแถวทั้งหมดหรือคอร์ลัมน์ทั้งหมดของเมทริกซ์หนึ่งๆ  เพื่อมองหาแถวที่ 2 ของเมทริกซ์ m  พิมพ์ดังนี้

-->m(2,:)
      ans =
            4.   5.   23.

และคอร์ลัมน์ที่ 3 ดังนี้
-->m(:,3)
    ans =
          3.
         23.

เพื่อให้ได้มาของการทรานซโพสของเมทริกซ์หนึ่งหรือเว็คเตอร์หนึ่ง ให้ใช้สัญลักษณ์เครื่องหมายคำพูดเดี่ยว “ ' “:
-->m'
    ans = 1.    4.
              2.    5.
              3.    23.

ตัวกระทำ (Operations)
การกระทำ “ * “, “ / “ เป็นการกระทำของเมทริกซ์  เพื่อทำให้ทำให้การกระทำไปตามองค์ประกอบ (element wise operations) เราจำต้องใส่จุดก่อนเครื่องหมายกระทำ: “ .* “, “ ./ “.

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

-->B=[1;1;2]
        B =
           1.
           1.
           2.

-->A*B
     ans =                                                               การคูณเมทริกซ์ (Matrix multiplication)
            9.
           21.


-->A*A !--error 10                                           
Inconsistent multiplication.                                 Dimensions are not consistent


-->A.*A
     ans = 1.    4.     9.                                             Element wise multiplication
              16.   25.   36.

-->2*(A+2)
     ans =
            6.     8.    10.                                             The operation is performed on each element
           12.   14.   16.                                              because 2 is a number

-->A/A                                                               กำหนดให้เมทริกซ์ X ที่ซึ่ง X*A = A
     ans =                                                           
             1.                   1.518D-16                      ผลลัพธ์จริงๆคือ 1.   0
             3.795D-15     1.                                                            0    1
                                                                          สำหรับเหตุผลความถูกต้องในการคำนวณ ผลลัพธ์อาจ
                                                                          แตกต่างกันเล็กน้อยดขึ้นอยู่กับรุ่นของไซแลบและระบบ
                                                                          ปฏฺิบัติ การที่ใช้ (ให้ดูความละเอียดในการคำนวณ หนา 29).
-->A./A
    ans =
          1.   1.   1.
          1.   1.   1.

กำหนดให้เมทริกซ์หารตามองค์ประกอบ (divided element wise) ในกรณีของเว็คเตอร์
-->C = 1:4
     C = 1. 2. 3. 4.

-->C*C !--error 10                                         Dimensions are not consistent
Inconsistent multiplication.   

-->C.*C
         ans =
                1.  4.  9.  16.

เป็นไปได้ด้วยว่าที่จะเขียน C^2 เพราะว่า สำหรับเว็คเตอร์  การยกกำลัง(exponents) ถูกตีความเป็นเหมือนกับการดำเนินการตามองค์ประกอบ   นี่ไม่ใช่กรณีเกี่ยวเนื่องกับเมทริกซ์

-->1/C
          ans = 0.0333333 0.0666667 0.1 0.1333333

ในกรณีพิเศษนี้กับเว็คเตอร์ เราพบว่าเว็คเตอร์ X  ที่ซึ่ง C*X = 1
-->(1)./C
     ans =
            1. 0.5 0.3333333 0.25

ตามองค์ประกอบที่กลับกันกับที่แล้วมา C^(-1) เป็นไปได้  วงเล็บล้อม 1 เป็นสิ่งจำเป็น ดังนั้นที่จุดนั้นไม่พิจารณเป็นคอมม่าหนึ่ง ตามที่เป็นส่วนของจำนวน 1.  ซึ่งเป็นไปได้ด้วยที่เขียนเป็น 1 ./C  โดยเว้นช่องว่างระหว่าง
1 และ  “ . “

การแก้ปัญหาระบบเชิงเส้น
 เพื่อแก้ปัญหาระบบเชิงเส้น AX = Y,  ที่ซึ่ง A คือสแคว์เมทริกซ์ ให้ใช้เบ็กสแลซ์ “ \ “   X = A \ Y.  ให้ระมัดระวัง ตัวกระทำ Y / A จะให้ (ให้เฉพาะเมื่อมิติเมทริกซ์ถูกต้อง)ผลลัพธ์อีกแบบหนึ่ง นั่นคือกล่าวได้ว่าเมทริกซ์  Z  ที่ซึ่ง Z A = Y.
เพื่อแก้ปัญหาระบบ ( 1  2  3  )  x  X       =  ( 1)
                             ( 4  5  6  )                    ( 1)
                                                             
-->A=[1 2 3;4 5 6];
-->Y=[1;1];

-->X=A\Y
X =
    - 0.5
       0.
       0.5
-->A*X
    ans =
          1.
          1.


ฟังก์ชันที่มีประโยชน์บางฟังก์ชัน
 Sort
ฟังก์ชัน gsort นำมาใช้ในการเรียงลำดับองค์ประกอบของเว็คเตอร์ตามลำดับจากน้อยไปหามากหรือจาลำดับจากมากไปหาน้อย
-->v=[2,6,9,6,-4,0,2]
v = 2.  6.  9.  6.  - 4.  0.  2.
--> gsort(v,"g","i")
   ans =
         - 4. 0. 2. 2. 6. 6. 9.
--> gsort(v)
   ans = 9. 6. 6. 2. 2. 0. - 4.

Length
ฟังก์ชัน length คืนกลับค่าจำนวนของคอออดิเนทสำหรับเว็คเตอร์หนึ่ง  ขนาดของฟังก์ชันคืนค่ามิติของเมทริกซ์หนึ่ง(rows, columns)
-->U=[1:10]
    U = 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
-->length(U)
ans =
     10.
-->m=[1 2 3;4 5 6];
-->size(U)
   ans =
         2. 3.

Sum and product 
ฟังก์ชัน sum และ prod คำนวณผลรวมและผลคูณ(product)ขององค์ประกอบอาร์กูเมนตามลำดับ
-->U=[1:10];
-->sum(U)
   ans =
          55.
-->prod(U)
     ans = 3628800.

Unique
ฟังก์ชัน nique เก็บองค์ประกอบของเว็คเตอร์หนึ่งเพียงครั้งเดียว(แท้ว่าจะมีการทำซ้ำหลายครั้ง) และเรียงลำดับจากน้อยไปหามาก
-->v=[2,6,9,6,-4,0,2]
v = 2. 6. 9. 6. - 4. 0. 2.
-->unique(v)
   ans = - 4. 0. 2. 6. 9.

Find 
ฟังก์ชัน find ค้นหาองค์ประกอบในเวคเตอร์หนึ่งหรือเมทริกซ์หนึ่ง แล้วคืนกลับค่าเป็นเว็คเตอร์หนึ่งที่ประกอบด้วยดัชนที่ตรงกัน (indices).  เพื่อจะหาองค์ประกอบของเว็คเตอร์ w ที่เล็กกว้่า 5
 -->w=[1,5,3,8,14,7,3,2,12,6];
find(w<5)
    ans =
          1. 3. 7. 8.
ผลลัพธ์เป็นเว็คเตอร์ (1,3,7,8) บ่งชี้ว่าองค์ประกอบ w1, w3, w7, w8 มีค่าเล็กกว่า 5.

เพื่อที่จะหาองค์ประกอบทั้งหมดของเว็คเตอร์ w ที่เท่ากับ 3
-->w=[1,5,3,8,14,7,3,2,12,6];
find(w==3)
   ans =
         3. 7.
ผลลัพธ์เว็คเตอร์(3,7) บ่งชี้ว่าองค์ประกอบ w3 และ w7 มีค่าเท่ากับ 3.

ความละเอียดในการคำนวณ Accuracy computation
จำนวนที่คำนวณมีค่าสมบูรณ์(absolute value) อยู่ระหว่างประมาณ 2.2×10-308 และ 1.8×10+308. จำนวณ %eps เท่ากับ to 2.220446049D-16 ให้ค่าความละเอียดสัมพัทธ์น้อยที่สุด ที่สามารถได้จากการคำนวณ นั่นคือให้ความละเอียดทศนิจาม 16 ตำแหน่ง
 Example 1:  การคำนวณหา sin(π)
-->sin(%pi)
   ans =
         1.225D-16
The value of sin(π) ที่กำลังสู่งกว่านี้ไม่ใช่ 0, แต่พิจารณาให้เป็นศูนย์  จริงแล้วเมื่อเปรียบเทียบกับค่าสูงสุดของฟังก์ชัน sin(นั่นคือ 1)  จะมีค่าเท่ากับ  0 ด้วยค่าน้อยกว่า %eps.

Example 2: ทดสอบสามเหลี่ยมที่มีด้าน ✓3, 1 et 2 เป็นสามเหลี่ยมมุมฉากหนึ่งหรือไม่
-->a=sqrt(3)
   a = 1.7320508
-->b=1
     b = 1.
-->c=2
     c = 2.
-->a^2+b^2==c^2
  ans =
         F                                          โปรแกรมคำนวณไม่จริง (false) เพราะว่าค่า a^2 + b ^ 2 คือค่าประมาณ

-->abs(a^2+b^2-c^2)<%eps           
   ans = F                                      โปรแกรมให้ผล ไม่จริง เพราะว่าความละเอียดสมบูรณ์(absolute                                                                        precision) นำมาอ้างอิง

-->abs(a^2+b^2-c^2)/c^2<%eps
  ans =
        T                                           โปรแกรมการคำนวณตอบสนองให้ค่าเป็นจริงเพราะว่าค่าความละเอียด                                                             สัมพันธ์ใช้อ้างอิง

การแสดงผล (display)
ผลลัพธ์ถูกนำออกมาแสดงผลโดยปริยายเป็นจำนวน 10 อักขระ รวมทั้งจุดทศนิยมและเครื่องหมายกำกับ
ฟังก์ชัน format นำมาใช้เพื่อให้แสดงผลจำนวนหลักมากขึ้น  เพื่อให้แสดงผล 20 หลัก ให้พิมพ format(20)
พิจารณา a = ✓3 อีกครั้ง
-->a^2
     ans =
            3.
ตอนนี้มีทศนิยม 7 ตำแหน่ง และเราไม่เห็นถึงข้อผิดพลาด
-->format(20)
-->a^2 ans = 2.99999999999999956

ตอนนี้มีทศนิยม17 ตำแหน่ง และเราสามารถเห็นถึงข้อผิดพลาด

การแก้ปัญหาสมการอนุพันธ์ Solving Differential Equations
ในการแก้ปัญหาสมการอนุพันธ์เพื่อหาคำตอบของระบบสมการอนุพันธ์ที่ชัดเจน  โดยง่ายๆ ลดระดับสมการอนุพันธ์ เป็นอนุพันธ์ลำดับ 1 (order)
{y'(t) = f(t,y(t) }             
{y(t0) = y0  }                  ที่ซึ่ง t และ t0 แทนเวลา  และ y และ  y0 แทนเวคเตอร์

จากนั้นประยุกต์ใช้ฟังก์ชัน ode y=ode(y0,t0,t,f),  โดย
   • y0: เงื่อนไขเริ่มต้น , เวคเตอร์ n มิติ
   • t0: เวลาเริ่มต้น
   • t: เวคเตอร์ T มิติสอดคล้องกับเวลาซึ่ง คำตอบคำนวณออกมา  เว็คเตอร์นี้ต้องเริ่มต้นด้วย t0.
   • f:  ฟังก์ชันกำหนดระบบภายใต้รูปแบบ
function yprim=f(t,y)
    yprim(1)=...
    yprim(2)=... .
                  ...     

   yprim(n)=...
 endfunction

คำตอบ y คือเมทริกซ์หนึ่ง มี มิติ n x T : 
                                             
ตัวอย่าง การแก้สมการอนุพันธ์     y'' = -4y
                                                 y(0) = 3y'(0) = 0

สมการนี้เป็นสมการออเดอร์2 ที่ลดรูปเป็นระบบ 2 สมการ ซึ่งเป็นสมาการออเดอร์1 ตามที่กำหนดโดย: 


 Comment                                                               Scilab Editor
เรากำหนดฟังก์ชันคืนกลับค่าเอ้าพุตเว็คเตอร์y'        function yprim=f(t,y) yprim(1)=y(2);
จากตัวแปรอินพุต t และ y (y เป็นเว็คเตอร์หนึ่ง)           yprim(2)=-4*y(1) ;
เรากำหนดค่าของ t เพื่อการพล็อตกราฟ                  endfunction t0=0;
(ผู้แก้ปัญหาเลือกตัวเองเป็นค่าที่ดีของ t เพื่อ              tmax=5; t=t0:0.05:tmax; 
การคำนวณภายในของคำตอบ).                                   y0=3; yprim0=0;
เรากำหนดเงื่อนไขเริ่มต้น เราสังปฏิบัติ                      y=ode([y0;yprim0],t0,t,f);
เราพล็อตเคิร์ฟอินทีกรัลของ y เทียบกับ t.                   clf; plot(t,y(1,:))

Chapter 3 –
ฟังก์ชันไซแลบที่มีประโยชน์Analysis
     • sqrt(x)  คืนค่าสแควรูทของ x  with � real positive or zero, and the complex root of real positive part otherwise. • log(x) returns the natural logarithm of x with x real or complex number. • exp(x) returns the exponential of � with � real or complex number. • abs(x) returns the absolute value of � real (or the module if � is complex). • int(x) returns the truncation of � real (the integer before the decimal). • floor(x) returns the integer part of � real (the integer � for which � ≤ � < � + 1). • ceil(x) for � real returns the integer � for which � − 1 < � ≤ �. Probability and statistics • factorial(n) returns the factorial of n with n positive or zero integer. • grand(1,p,"uin",m,n) returns a vector of p random integer sequences taken between m and n with p positive integer, m and n integers and � ≤ �. • grand(1,p,"unf",a,b) returns a vector of p random real sequences taken between a and b with p positive integer, a and b real and � ≤ �. • sum(n) returns the sum of the values of vector � (used to calculate a total). • cumsum(n) returns the vector of increasing cumulative values of vector � (used to calculate the increasing cumulative numbers). • length(v) returns the number of coordinates of vector �. • gsort(v) returns the vector of numbers or strings � sorted in descending order. • gsort(v,"g","i") returns the vector of numbers or strings � sorted in ascending order. • mean(v) returns the average of the vector of numbers �. • stdev(v) returns the standard deviation of numbers � vector. • bar(v,n,couleur) draws the bar graph with � as X-coordinate, � as Y-coordinate, � and � being same size line vectors. By default, bar(n) draws the bar graph of � in blue with 1,2,3… as X-coordinates. • bar(v,[n1’,n2’]) draws a double bar graph with � as X-coordinate, n1 as Ycoordinate in blue and n2 as Y-coordinate in green, with �, n1 and n2 being same size line vectors. • rand(n,p) with � and � positive integers, returns a matrix �×� of numbers randomly taken between 0 and 1. • rand() returns a real number randomly taken between 0 and 1. • floor(x) returns the integer part of � real number. In particular, if � is real between 0 and 1, floor(rand()+p) will be 1 with � probability and 0 with 1 − � probability. Scilab for very beginners - 33/33 Display and plot • clf means “ clear figure “ and clears the current figure on the graphics window. • plot allows to draw curves and scatter plots in 2 dimensions. • linspace(a,b,n), with � and � real and � integer, defines a vector of � values regularly spaced between � and �. • scf allows to open or to select other graphics windows than the current one. • surf allows 3-D surface plots. • bar(X,Y) in which X and Y are vectors, draws the bar graph of the series of values for X which has for numbers the values of Y. • plot(X,Y,"*") draws the scatter plot of coordinates (X(i),Y(i)) as stars. The color can be specified. • plot(Y,"+") draws the scatter plot of coordinates (i,Y(i)) as cross. • disp("Sentence") displays what is written in double quotes. • disp(A) in which A is a matrix of numbers, displays the table of the values of A. • disp("Sentence"+string(x)) displays the sentence and the value of number �. • xclick returns the coordinates of the point clicked in a graphics window. Utilities • unique(v) returns the vector � with a unique occurrence of its repeated components. • sum(v) returns the sum of all the elements of the vector or the matrix �. • prod(v) returns the product of all the elements of the vector or the matrix �. • find() returns the indices of the elements of vector � satisfying the test. • disp(x,y,…) displays the values of its arguments in the console. • string(x) converts number � to a string. • format(n) in which � is an integer greater than or equal to 2, sets the display to � characters, including the sign and the decimal dot. • zeros(n,p) defines a �×� matrix that only contains zeros. • feval(x,y,f) in which � and � are respectively vectors of size � and �, defines the matrix �×� whose element (�,�) is �(� � , � � ). • help function opens the help browser on the right function page. • tic starts a clock. • toc stops the clock