This action might not be possible to undo. Are you sure you want to continue?
Lesson 1: Introduction 1) Create the following directory (folder): Scilab_files. 2) Open Scilab, and type: --> pwd ans = /home/kheirha/Documents --> cd /home/kheirha/Scilab_files --> pwd ans = /home/kheirha/Scilab_files 3) Enter the following as shown: --> x=10 x = 10 --> y=4 y= 4 --> z=x-y z= 6 --> save ('test0.dat') --> clear --> x !--error 4 undefined variable : x --> load ('test0.dat') --> x x = 10 --> y y= 4 --> z z= 6
Explanation: you are assigning values to variables (x & y), obtaining results (z to the screen), saving the variables and result to a file (save), clearing memory (clear), loading (load) the previously saved file (test0.dat), getting the values printed to the screen (x, y, z). 4) Try with the following commands: -->% pi %pi = 3.1415927 --> sin (%pi/2) ans = 1 octave:15> cos (%pi/2) ans = 6.1230D-17 octave:16> cos (%pi/3) ans = 0.5 --> sin (%pi/3) ans = 0.8660254 5) Now enter the following commands: --> deg=%pi/180 deg = 0.0174533 --> sin (30*deg) ans = 0.5 --> cos (30*deg) ans = 0.8660254 Explanation: Define a variable deg and makes it equal 3.1416 divided by 180, then try to find sin 30 degrees as shown, the who command will list the names of variables in Scilab workspace, variables that have been created or used, whos lists entire contents of workspace (functions, libraries & constants). 6) Before moving to vectors & matrices, we shall introduce the Scipad (tool that allows automation, through the creation of scripts and user defined function files). Open scilab, then click the button in the top Editor or type scipad in scilab workspace. Enter the following lines: pwd cd /home/user_name/Scilab_files pwd pi = %pi e = %e //natural logarithm base Then save this file (in the directory where scilab opens (in general it is /home/user_name/Documents), it is called in our examples here:sci0.sce. Click Execute then Load into Scilab, you will see the result of this script in the scilab workspace window, the current directory is indicated then changed and confirmed the change, indicated the value of pi and e. Note to get out of any situation (program) to get the prompt click Ctrl-c (very famous use). Assuming the file you have just saved I scipad is sci0.sce, you exited scilab and re-started, you can load this file without scipad by executing the following command: exec('sci0.sce'). Now type the following in scilab workspace: -1-> sin(pi/3) ans = .8660254 -1-> sin(60*pi/180) ans = .8660254 Now get scipad up and running again, open file sci0.sce and add the following line deg=pi/18, save the file and reload it ito scilab (using one of the previous mentioned methods). Now enter the following: -->sin(30*deg)
ans = 0.5 --> sin(60*deg) ans = .8660254 –->sqrt(9) ans = 3 7) In fact, vectors (arrays) are a simple case of a matrix (which is just a two-dimensional grid of numbers). A vector is a matrix with only one row, or only one column. Type the following while you are in Scilab: --> a=[1 2 3] a= 1. 2. 3. --> b=[3,2,1,] b= 3 . 2. 1. --> c=[5 >6 >7 >] c= 5. 6. 7. --> d=[a,4] d= 1. 2. 3. 4. --> x=[2:6] x= 2. 3. 4. 5. 6. --> y=[2:2:6] y= 2. 4. 6. --> a(3) ans = 3. --> y(2) ans = 4. --> x(4) ans = 5. --> x(2:4) ans =
3. 4. 5. --> x*2 ans = 4. 6. 8. 10. 12.
--> b*c ans = 34. --> b.*c !--error 9999 inconsistent element-wise operation --> a.*b ans = 3. 4. 3. --> angles=[0:pi/6:2*pi] angles = Columns 1 through 11 (values shown are rounded up to 5 digits, the ones you get from scilab are rounded up to 7 digits: 0.00000 0.52360 1.04720 1.57080 2.09440 2.61799 3.14159 3.66519 4.18879 4.71239 5.23599 Columns 12 and 13: 5.75959 6.28319 --> y=sin(angles) y= Columns 1 through 11 (numbers shown are rounded to 5 digits, the ones you will gwt will be to 7): 0.00000 0.50000 0.86603 1.00000 0.86603 0.50000 0.00000 -0.50000 -0.86603 -1.00000 -0.86603 Columns 12 and 13: -0.50000 -0.00000 Explanation: line 1 is a vector with 3 elements, line 4 is vector named d and is equal a plus an additional element equal 4, line 5 is a vector having the first element 2 and incremented by 1 (defult) until reaching 6, line 6 is vector starting with value 2 incremented by 2 until reaching 6, extracting an element or elements from the vectors are shown on lines 7, 8, 9 & 10, line 11 shows a vector multiplied by a scalar (2), line 12 shows 2 vectors multiplied by each other (the matrix approach is used), to multiply the corresponding elements within the vector and display such a result you use .* (shown on the second line 13) when 2 vectors that are not compatible multiplied together as shown on line 13, the error message is displayed. Line 14 will calculate and display the vector angles starting at angle 0
radians up to 2 pi in pi/6 increments, line 15 will calculate and display the values of sine of the angles vector. A matrix is a rectangular array of numbers, the size of which is usually described as m × n, meaning that it has m rows and n columns. Type in the folllowing: --> A =[1,2 > 5 6] A= 1. 2. 5. 6. --> A' ans = 1. 5. 2. 6. --> inv(A) ans = -1.5 0.5 1.25 -0.25 --> det(A) ans = -4. --> A*inv(A) ans = 1. 1.110D-16 8.882D-16 1. --> B=[1,2,5 > 7,8,4 > 9,4,7] B= 1. 2. 5. 7. 8. 4. 9. 4. 7. --> B' ans = 1. 7. 9. 2. 8. 4. 5. 4. 7. --> inv(B)
ans = -0.194175 -0.029126 0.155340 0.063107 0.184466 -0.150485 0.213592 -0.067961 0.029126 Note: again the values you will be getting will be rounded up to 7 digits --> det(B) ans = -206 Explanation: entering a 2 by 2 matrix, obtaining the transpose of A matrix, the inversion of the matrix is obtained, calculating the determinant of the matrix and checking - multiplying the matrix by its inversion to get the identity matrix (which has 1s in the diagonal elements and 0s otherwise). The remaining lines do the same calculations for 3 by 3 matrix with exception of the checking one. Lesson 2: Scripts & functions Scripts were introduced on page 2, in this lesson, functions will be introduced, you can use scipad to produce such files or a text editor. The function file can have more than one function and when the file is loaded using scipad or the exec command (from within the scilab workspace), all functions will be available for use from scilab workspace. Now you can open scilab and if you have the scipad facility, open it and type the following into a new file and save it as functions.sci: function [sind] = sind(x) sind = sin(x*pi/180) endfunction function [cosd] = cosd(x) cosd = cos(x*pi/180) endfunction function [tand]=tand(x) if x == 45 then, tand=1; else tand = tan(%pi*x/180); end endfunction function [y1,y2]=root(a,b,c) y1 = (-b+((b^2-4*a*c)^.5))/(2*a) y2 = (-b-((b^2-4*a*c)^.5))/(2*a) endfunction function [square, cube, sqroot, cubicroot] = innum(x) square=x^2 cube=x^3 sqroot=sqrt(x) cubicroot=x^.33333334 Note: if you do not have the Editor (scipad), then you can use gedit, kwrite or any other text editor, enter the above functions and save the file with .sci extension. Afterl loading the file, you can execute the any of the functions saved in such file by calling it, eg for calling sind function to get the sine of 30 degrees is sind(30), to get the roots of an equation [y1,y2]=root(10,20,30), in order to obtain the square-root, cubic-root, squared and cubed for the number inputted you may call the function as follows: [a,b,c,d,]=inum(8).
Lesson 3: Plotting & graphs 1) Open scilab and type exec('sci0.sce'), then aenter the angles function (that will build the vector shown, then produce another vector equal to sine the angles, then you will plot the angle vs. it sine value and finally save the plot in .gif graphics format. -->exec('sci0.sce') ans = /home/kheirha ans = /home/kheirha/Scilab_files pi = 3.1415927 e = 2.7182818 deg = 0.0174533 --> angles=[0:pi/6:2*pi] angles = the values angles vector will be displayed Columns 1 through 13: --> y=sin(angles) y =the values angles vector will be displayed Columns 1 through 13: --> plot2d (angles,y) To save the graph: Click the File button above the graph and select Export, from the dialog box that will appear choose GIF in the Format Selection field, enter the File-name (without extension) and click OK. Then enter the following line: --> plot2d (angles*180/pi,y) To save the plot, follow the process mentioned above. 2) The above commands can be placed in a script and saved with a sce file extension. Every time you want to plot a sine curve you just have to type exec('file_name.sce') where file_name is the name of the script file with the .sce extension. file: plotsine.sce that automates the process of plotting a sine wave (example for a script): angles=[0:pi/6:2*pi] y = sin(angles) plot (angles*180/pi,y) Another script is given hereafter, to plot the cos function. file: plotcosine.sce that automates the process of plotting a cosine wave (example for a script): angles1=[0:pi/6:2*pi] z = cos(angles) plot (angles1*180/pi,z) This example will plot the 2 graphs shown in the above figure. file: plotsinecos.sce that automates the process of plotting a the sine wave above and the cosine wave below in one graph (example for a script): angles=[0:pi/6:2*pi]; y = sin(angles); subplot(2,1,1); plot (angles*180/pi,y); z = cos(angles); subplot(2,1,2); plot (angles*180/pi,z);
3) More plotting examples, using scripts: file: linetestd.sce that automates the process of plotting , the fig. below will appear y=[2,4,9,10] x = [1,2,3,4] plot(x,y)
Still much more to come
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.