Scilab Lecture NOtes
Scilab Lecture NOtes
Developed at INRIA, SCILAB has been developed for system control and signal processing applications. It is freely distributed in source code format. High level scientific computing environments such as Matlab, RLab, Octave and Scilab are an enjoyable way to solve problems numerically. It is particularly easy to generate some results, draw graphs to look at the interesting features, explore the problem further and manipulate matrices. Scilab is made of 3 distinct parts An interpreter Libraries of functions Libraries of Fortran and C routines
- scilab prompt Up arrow key to display // - comment %pi = 3.1415 //constant pi clc = clear the screen clear = clear memory clear varname = clear specific variable xbasc() = erase the previous plot Differences between Matlab and Scilab
exp(sin(%pi/2)) //The usual functions are provided log, log10, cos, tan, asin,
= 2.7182818
Page 1 of 7
Page 2 of 7
p1 = 2+3 ; q1 = x+4, ratio1 = p1/q1 q1 = 9 ratio1 = 0.5555556 >>Parentheses can be used to make expressions clearer. Ex. ratio = (2+3)/(x+4) Complex Numbers - Scilab handles complex numbers as easily as real numbers - the variable %i stands for 1 Ex. x=2+3*%i, y=1-1*%i x = 2 + 3i y=1i z1= x-y, z2 = x*y, z3 = x/y z1 = 1 + 4 i z2 = 5 + i z3 = -0.5 + 2.5i abs(x) = 3.6055513 real(x) =2 imag(x) =3 sin(x) = 9.1544991 4.168907i exp(%pi * %i ) + 1 = 1.225D-16i
Ex. Xk Yk
This section shows how to produce simple plots of lines and data. .5 .1 .7 .2 .9 .75 1.3 1.5 1.7 2.1 1.8 2.4
x=[.5 .7 .9 1.3 1.7 1.8] y=[.1 .2 .75 1.5 2.1 2.4] plot2d(x,y, style=-1) Ex. Y1 = 2X + 4 Y2 = x-2 x1 = [0: 0.5: 2]; x2 = [3: 0.5: 5]; y1 = (2*x1+4); y2 = (x2 2); plot (x1, y1) plot (x2, y2) plot (x1, y1, x2, y2) 0 <= x1 <=2 3 <= x2 <=5
linspace syntax: linspace(x1, x2,n] where: x1, x2 : real or complex scalars n : integer (no of values) default = 100
Page 4 of 7
Displaying matrix data a = [1,2,3; 4,5,6; 7,8,9]; // given data a(1,1) =1 a(:, 1) // : is used to denote all entries = 1 4 7 a(2, :) = 4 5 6 a([1 2], [1 2]) = 1 2 4 5 a([2 3], : ) = 4 5 7 8 a([1 2],[2 3]) = 2 3 5 6 MATRIX MANIPULATION + * / \ ^ .* ./ .^ addition subtraction multiplication division left division power transpose array multiply array division array power Subtraction of Matrices D=A D= 0 3 4 B -1 -2 3 2 2 2 6 9 //a([r1, r2], [c1, c2])
Addition of Matrices A= 1 4 7 2 5 8 3 6 9
B= 1 3 1 E = B-A
Page 5 of 7
1 3
7 5
4 7
C=A+B C= 2 5 5 12 10 13 F = 3*A F = 3 6 12 15 21 24 H = A H = 1 2 3
E= 0 -3 -4
1 2 -3
-2 -2 -2
4 10 16 G = 2*B G = 2 6 2 14 6 10 I = B I= 1 3 1
9 18 27
2 8 14
4 5 6
7 8 9
1 7 4
3 5 7
17 44
27 69
37 94
18 1
32 16
Matrix Division I
Page 6 of 7
Inverse of Matrix C = A*inv(B) C= 1.6354 -0.7500 1.6354 -0.7500 0.8177 -0.3750 6.8385 -3.8750 Left Division Given: -x1+ x2 + 2x3 = 2 3x1- x2+ x3 = 6 -x1 + 3x2 + 4x3 = 4 A = [-1 1 2; 3 -1 1; -1 3 4] B = [2; 6;4] X = inv(A)*B X= 1 -1 2 A\B X= 1 -1 2
Page 7 of 7