1 / 17

An Introduction to Scilab

An Introduction to Scilab. Tsing Nam Kiu 丁南僑 Department of Mathematics The University of Hong Kong 2009 January 7. What is a Scilab?. Scilab is a mathematical software Similar software: Matlab, Mathematica, Octave, Euler Math Toolbox, Maxima, …

heidi
Download Presentation

An Introduction to Scilab

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. An Introduction to Scilab Tsing Nam Kiu 丁南僑 Department of Mathematics The University of Hong Kong 2009 January 7

  2. What is a Scilab? • Scilab is a mathematical software • Similar software: Matlab, Mathematica, Octave, Euler Math Toolbox, Maxima, … • What is special about Scilab: free, highly supported, powerful, many users, … • Home page of Scilab: www.scilab.org • A short introduction of Scilab: http://hkumath.hku.hk~nkt/Scilab/IntroToScilab.html

  3. Using Scilab as a calculator • +, – , * (multiplication), / (division), ^ (power) Examples: • > (12.34 + 0.03) / (2.8 – 1.2 * 3) • > 2^3 or 2*2*2 • > 2^– 3 • > 2^100 • > ans^(1/100)

  4. Using Scilab as a calculator (2) • Commonly used functions: cos, sin, tan, acos, asin, atan, sqrt, exp, log, log10 • Solving quadratic equation x^2 – x+1=0: > a = 1, b = – 1, c = 1 > (– a + sqrt(b^2 – 4*a*c))/(2*a) > (– a – sqrt(b^2 – 4*a*c))/(2*a) • A smarter way to find roots of polynomials: > p = poly([1 –1 1],"x","coeff") > roots(p)

  5. Using Scilab as a calculator (3) • special constants: %i, %pi, %e > tan(%pi / 4) > %e ( = exp(1) ) > (1+%i)*(1--%i) • Learning how to use Scilab and getting help: Click on “?” on menu > help command See documentation on Scilab website

  6. Vectors and matrices in Scilab • Data types: (real or complex) numbers, vectors, matrices, polynomials, strings, functions, … • Vectors in Scilab: > x = [0 1 2 – 3] > y = [2; 4; 6; 8] > z = [1 2 3 4] ’ • ’ is conjugate transpose of a matrix > 3*x, y+z, y–z > x+y, x+1

  7. Vectors and matrices in Scilab (2) • Matrices in Scilab: > A = [0 1 0 1; 2 3 –4 0] > B = A ’ > A * y, x * B, A * B, B * A, (B*A)^2 • Special matrices (and vectors): > ones(2,3), zeros(1,2), eye(3,3) > rand, rand(3,2) • Empty vector or matrix: > a = [ ] • Building matrix by blocks: > C = [A 2*A], x = [9 x 7], a = [a 1]

  8. Solving linear equations • 3 x1 + 2 x2 – x3 = 1 x1 + x3 = 2 2 x1 – 2 x2 + x3 = – 1 • To solve the above system of linear equations: > A = [3 2 – 1 ; 1 0 1; 2 – 2 1] > b = [1 2 – 1]’ > x = inv(A)*b (inv is inverse of a matrix) > x = A \ b • Important remark: theoretically it does not make sense to divide something by a matrix!

  9. The colon “:” operator • > 1:10, 1:100, xx = 1:100; • Using “;” to suppress answer output • > sum(xx) • > 1:2:10, –3:3:11, 4:–1:1, 2:1:0, • > t = 0: 0.1: 2*%pi > y = sin(t) > plot(t,y), plot(t,sin(t),t,cos(t)) • Task 1: plot the straight lines y = x +1 and y = exp(x) on the same graph, from x = – 2 to x = 2

  10. Elements of vectors and matrices • Example > v = rand(4,1) > v(1), v(3), v([2 4]), v(4:-1:1), v($) • “$” means the last entry • Example > A = [1 2 3 4 5; 6 7 8 9 10] > A(2,3), A(1,:), A(:, 2), A(:, [4 2])

  11. Exercises • Task 2: simulate tossing of a coin: 0 = head, 1 = tail. functions to use: rand, round, … • Task 3: simulate tossing of 100 coins

  12. Exercises (2) • Task 4: simulate throwing 3 dices, each dice has outcome from 1 to 6 with equal probabilities; functions to use: rand, floor, ceil, … • Task 5 (challenging!): simulate tossing a coin 100 times and find the longest run of consecutive H’s or T’s in the resulting sequence; functions to use: diff, find, max,

  13. Programming in Scilab • Click on menu bar to open Scipad; then write your scilab function file. • Format of a function: function [out1, out2, ...] = name(in1, in2, ...) (body of function definition; may have many lines) endfunction • One file may contain more than one function. • To use the functions, you must load the function file by choosing File -> Execute the file from the menu.

  14. Programming in Scilab (2) • A simple function to find the n-th term of the Fibonnaci sequence 0, 1, 1, 2, 3, 5, 8, 13, 21, … • function k = fibo(n) if n == 1, k = 0; elseif n==2, k = 1; else k = fibo(n-1) + fibo(n-2); end endfunction • Save the file as fibo.sci (or any other file name). • Execute it from Scilab menu bar • Try, say: > fibo(5), fibo(2), fibo(10), fibo(100)

  15. Programming in Scilab (3) • An improved programme: function K = fibonacci(n) //function K = fibonacci(n) //Gives the n-th term of the Fibonacci sequence ,1,1,2,3,5,8,13,... if n==1, K = 0; elseif n==2, K = 1; elseif n>2 & int(n)==n // check if n is an integer greater than 2 K = fibonacci(n-1) + fibonacci(n-2); else disp('error! -- input is not a positive integer'); end endfunction

  16. Programming in Scilab (4) • Programming Task (challenging!): write a programme to automate Task 5, which is to perform the following experiment m times. The experiment is to simulate tossing a coin n times and find the longest run (k) of consecutive H’s or T’s in the resulting sequence. • For each time you do the experiment, you’ll get a number k. Therefore you should get m numbers k1, k2, …, km at the end. • Inputs of the function are m, n; output is a vector k = [ k1 k2 … km].

  17. Recap We have discussed and learned the following: • What Scilab is • Basic usage of Scilab (as a calculator) • Vectors and Matrices in Scilab • Solving linear equations • Simulation of some random events • Basic Scilab programming

More Related