You are on page 1of 7

Intro to Scilab

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

 (-1+2+3)*5 – 2/3 //The four arithmetic operations
= 19.33

 2^3 // Means 2 to the power 3.
=6

 %pi // The mathematical constant pi
= 3.1415

 exp(sin(%pi/2)) //The usual functions are provided log, log10, cos, tan, asin,…
= 2.7182818

exp – element-wise exponential

Calling sequence:
exp(X)

Parameters
• X : scalar, vector or matrix with real or complex entries.

q1 = x+4. X = 2+3 Y = 4+5 result = x/y .5  sin(%pi/6) //These are familiar trigo functions = 0. . Use comma (. This is enough accuracy for most purposes.) Ex.1415927  22/7 //pi is not the same as 22/7 = 3.  %e //The mathematical constant e Note: Scilab does all calculations correct only to about 16 significant decimal digits. . = 1. Description exp(X) is the (element-wise) exponential of the entries of X.776D-15  cos(%pi/3) //These are familiar trigo functions = 0. Ex. but is must begin with a letter. Usually only 5 significant digits are displayed on the screen.5 Variable – Scilab also uses variables to store intermediate answers.Scilab is a case-sensitive language. suppress unwanted output.  p = 2+3. Ex. ratio1 = p1/q1 q1 = . A variable can have almost any name. Ex.  q= 3+5.  p1 = 2+3 .5555556 >> A number of commands can be placed on the one line.  %pi = 3.  ratio = p/q = 0.echo off.) or a semicolon (.1428571  11*(15/11)-15 //This shows there is round off error when scilab uses fractions.

5 + 2.8]  y=[.4  x=[.1 2.7 1.9 1. Xk . y=1-1*%i x = 2 + 3i y=1–i  z1= x-y.75 1.Scilab handles complex numbers as easily as real numbers .1544991 – 4. z2 = x*y.2 .5 2.1 .5i  abs(x) = 3.5 2.8 Yk .y. Ex.7 . 9 ratio1 = 0.75 1. Ex.the variable %i stands for −1 Ex.  x=2+3*%i.3 1.225D-16i PLOTTING LINES AND DATA .5 .  ratio = (2+3)/(x+4) Complex Numbers .7 .5555556 >>Parentheses can be used to make expressions clearer.4]  plot2d(x.1 .1 2. z3 = x/y z1 = 1 + 4 i z2 = 5 + i z3 = -0.6055513  real(x) =2  imag(x) =3  sin(x) = 9.7 1. style=-1) . This section shows how to produce simple plots of lines and data.9 1.3 1.168907i  exp(%pi * %i ) + 1 = 1.2 .5 .

// given data  a(1.9].3)  b = ones(4. 7.2. 1) // : is used to denote all entries .3. its main power is that it gives a simple way of working with matrices and vectors. 20) linspace syntax: linspace(x1.3)  e = [1:5]  f = [1:3. 4:6.4)  c = diag([ 1 2 3 4])  d = rand(3.  y1 = (2*x1+4).  y2 = (x2 – 2). y1.5.5: 5].1:5]  h = linspace(-10. 7:9]  g = [1:0.8. y2) MATRICES AND VECTORS Although SciLab is a useful calculator. 10. Defining and clearing variables  a = eye(3.Ex. x2 : real or complex scalars n : integer (no of values) default = 100 Displaying matrix data  a = [1.1) =1  a(:. x2.6.  plot (x1. x2.5: 2]. 4. y2)  plot (x1.n] where: x1.  x2 = [3: 0. Y1 = 2X + 4 0 <= x1 <=2 Y2 = x-2 3 <= x2 <=5  x1 = [0: 0. y1)  plot (x2.

/ array division . r2]. subtraction * multiplication / division \ left division ^ power ‘ transpose . [1 2]) //a([r1. [c1. : ) = 4 5 6 7 8 9  a([1 2]. c2]) = 1 2 4 5  a([2 3]. :) = 4 5 6  a([1 2]. = 1 4 7  a(2.[2 3]) = 2 3 5 6 MATRIX MANIPULATION + addition .* array multiply .^ array power Addition of Matrices Subtraction of Matrices A= D=A –B 1 2 3 D= 4 5 6 0 -1 2 7 8 9 3 -2 2 4 3 2 B= 1 3 1 E = B-A 1 7 4 E= 3 5 7 0 1 -2 -3 2 -2 C=A+B -4 -3 -2 C= 2 5 4 5 12 10 10 13 16 .

6354 -0.2604 0. 2 4 6 8. 2 3 1 4] B = [2 4 6 8.2604 0. 2 3 1 4]  C = A*B  C = A.4271 . 4 5 6].7500 0. A = [2 4 6 8.1302 0.3750 0. 1:4.4010 1.6354 Matrix Division I A = [2 4 6 8.8177 -0.7500 0.6354 -0.8542 1.8542 0.8750 0. 1 8 3 9.*B C= C= 7 17 27 37 2 8 18 32 19 44 69 94 4 9 1 16  C = B*A  C = A*B ERROR! Inconsistent multiplication ERROR! Inconsistent multiplication  C = A.8385 -3. 1 3 5 7] B = [1 2 3 4. 1 2 3 4. 1 0 5 9] C = A/B C= 1.*B ERROR! Inconsistent multiplication 6.F = 3*A G = 2*B F = G = 3 6 9 2 6 2 12 15 18 2 14 8 21 24 27 6 10 14 H = A’ I = B’ H = I= 1 4 7 1 1 3 2 5 8 3 7 5 3 6 9 1 4 7 Matrix Multiplication Array Multiplication A= [1 2 3. 5:8] B = [1 5 1 4. 1 7 9 2.

-1 3 4]  B = [2.8542 0.8542 1.x2+ x3 = 6 -x1 + 3x2 + 4x3 = 4  A = [-1 1 2.7500 0.4]’  X = inv(A)*B X= 1 -1 2  A\B X= 1 -1 2 .3750 0.7500 0.6354 -0. 3 -1 1.Inverse of Matrix C = A*inv(B) C= 1.2604 0.4010 1.6354 Left Division Given: -x1+ x2 + 2x3 = 2 3x1.4271 6.2604 0.8750 0. 6.6354 -0.8177 -0.8385 -3.1302 0.