Introduction to Scilab

Similar documents
Introduction to Scilab Use Scilab, not Matlab

Chapter 1 Introduction to MATLAB

Lab of COMP 406. MATLAB: Quick Start. Lab tutor : Gene Yu Zhao Mailbox: or Lab 1: 11th Sep, 2013

MATLAB is a multi-paradigm numerical computing environment fourth-generation programming language. A proprietary programming language developed by

MatLab Just a beginning

Introduction to MATLAB

2.0 MATLAB Fundamentals

Getting Started with MATLAB

Introduction to MATLAB

Introduction to Engineering gii

Introduction to Matlab. Summer School CEA-EDF-INRIA 2011 of Numerical Analysis

Scilab/Scicos: Modeling and Simulation of Hybrid Systems

Introduction to. The Help System. Variable and Memory Management. Matrices Generation. Interactive Calculations. Vectors and Matrices

MATH 3511 Basics of MATLAB

MATH 5520 Basics of MATLAB

Computational Modelling 102 (Scientific Programming) Tutorials

Introduction to MATLAB

An Introduction to MATLAB See Chapter 1 of Gilat

MATLAB Premier. Asst. Prof. Dr. Melik DÖLEN. Middle East Technical University Department of Mechanical Engineering 10/30/04 ME 304 1

Matlab Tutorial, CDS

MATLAB Premier. Middle East Technical University Department of Mechanical Engineering ME 304 1/50

Introduction to GNU-Octave

Constraint-based Metabolic Reconstructions & Analysis H. Scott Hinton. Matlab Tutorial. Lesson: Matlab Tutorial

Welcome to EGR 106 Foundations of Engineering II

Math 2250 MATLAB TUTORIAL Fall 2005

System Design S.CS301

AMTH142 Lecture 10. Scilab Graphs Floating Point Arithmetic

Matlab course at. P. Ciuciu 1,2. 1: CEA/NeuroSpin/LNAO 2: IFR49

Introduction to Scilab

1 Week 1: Basics of scientific programming I

Introduction to MatLab. Introduction to MatLab K. Craig 1

Lecture 1: Introduction to Scilab

Introduction to MATLAB for Numerical Analysis and Mathematical Modeling. Selis Önel, PhD

What is Matlab? The command line Variables Operators Functions

Chapter 3. built in functions help feature elementary math functions data analysis functions random number functions computational limits

Introduction to MATLAB

A/D Converter. Sampling. Figure 1.1: Block Diagram of a DSP System

Introduction to MATLAB

Introduction to MATLAB. Arturo Donate

Introduction to Matlab

Introduction to MATLAB

A General Introduction to Matlab

Part V Appendices c Copyright, Todd Young and Martin Mohlenkamp, Department of Mathematics, Ohio University, 2017

Introduction to MATLAB. Computational Probability and Statistics CIS 2033 Section 003

LAB 2: Linear Equations and Matrix Algebra. Preliminaries

Introduction to MATLAB

Getting started with MATLAB

INTRODUCTION TO MATLAB, SIMULINK, AND THE COMMUNICATION TOOLBOX

3+2 3*2 3/2 3^2 3**2 In matlab, use ^ or ** for exponentiation. In fortran, use only ** not ^ VARIABLES LECTURE 1: ARITHMETIC AND FUNCTIONS

Stokes Modelling Workshop

Introduction to Matlab

Matlab and Octave: Quick Introduction and Examples 1 Basics

University of Alberta

A Brief Introduction to MATLAB Evans Library Research Support Workshops

Scilab4.1.2 PartI:Introduction

MATLAB Project: Getting Started with MATLAB

Mathematics 4330/5344 #1 Matlab and Numerical Approximation

MATLAB Project: Getting Started with MATLAB

Introduction to Computer Programming in Python Dr. William C. Bulko. Data Types

MATLAB INTRODUCTION. Risk analysis lab Ceffer Attila. PhD student BUTE Department Of Networked Systems and Services

Summer 2009 REU: Introduction to Matlab

Matlab Tutorial and Exercises for COMP61021

A Tour of Matlab for Math 496, Section 6

YOGYAKARTA STATE UNIVERSITY MATHEMATICS AND NATURAL SCIENCES FACULTY MATHEMATICS EDUCATION STUDY PROGRAM

OUTLINES. Variable names in MATLAB. Matrices, Vectors and Scalar. Entering a vector Colon operator ( : ) Mathematical operations on vectors.

Getting Started with MATLAB

CS 2750 Machine Learning. Matlab Tutorial

Introduction to MATLAB Programming

MAT 343 Laboratory 1 Matrix and Vector Computations in MATLAB

Consider this m file that creates a file that you can load data into called rain.txt

HERIOT-WATT UNIVERSITY DEPARTMENT OF COMPUTING AND ELECTRICAL ENGINEERING. B35SD2 Matlab tutorial 1 MATLAB BASICS

UNIVERSITI TEKNIKAL MALAYSIA MELAKA FAKULTI KEJURUTERAAN ELEKTRONIK DAN KEJURUTERAAN KOMPUTER

Matlab Tutorial. The value assigned to a variable can be checked by simply typing in the variable name:

ECON 502 INTRODUCTION TO MATLAB Nov 9, 2007 TA: Murat Koyuncu

MATLAB and Numerical Analysis

Dr Richard Greenaway

Introduction to Matlab

Most nonzero floating-point numbers are normalized. This means they can be expressed as. x = ±(1 + f) 2 e. 0 f < 1

Introduction to Matlab. By: Dr. Maher O. EL-Ghossain

Introduction to Computer Programming with MATLAB Matlab Fundamentals. Selis Önel, PhD

MATLAB QUICK START TUTORIAL

MATLAB Lecture 1. Introduction to MATLAB

SECTION 1: INTRODUCTION. ENGR 112 Introduction to Engineering Computing

1.1 ABOUT MATLAB and MATLAB GUI (Graphical User Interface)

A very brief Matlab introduction

A Quick Tutorial on MATLAB. Zeeshan Ali

MATLAB. Miran H. S. Mohammed. Lecture 1

MS6021 Scientific Computing. MatLab and Python for Mathematical Modelling. Aimed at the absolute beginner.

Introduction to PartSim and Matlab

Scilab Programming. The open source platform for numerical computation. Satish Annigeri Ph.D.

LAPACK. Linear Algebra PACKage. Janice Giudice David Knezevic 1

Chapter 2. MATLAB Basis

CITS2401 Computer Analysis & Visualisation

ME 121 MATLAB Lesson 01 Introduction to MATLAB

Introduction to MATLAB

Some elements for Matlab programming

! The MATLAB language

What is MATLAB? What is MATLAB? Programming Environment MATLAB PROGRAMMING. Stands for MATrix LABoratory. A programming environment

MATLAB NOTES. Matlab designed for numerical computing. Strongly oriented towards use of arrays, one and two dimensional.

An Introduction to MATLAB. Lab tutor : Dennis Yang LIU Lab 1: Sept. 11, 2014

Transcription:

Introduction to Scilab Kannan M. Moudgalya IIT Bombay www.moudgalya.org kannan@iitb.ac.in Scilab Workshop Bhaskaracharya Pratishtana 4 July 2009 Kannan Moudgalya Introduction to Scilab 1/52

Outline Software engineering Implication to scientific computations Scilab as a possible solution Scilab - a tutorial introduction Plots Installation Simple arithmetic Matrix operations Vector arithmetic Conditionals Kannan Moudgalya Introduction to Scilab 2/52

Software - Bottleneck In the past 40 years hardware technology advanced more than 1,000 times Software technology about same - people take same time to write programs as before - perhaps twice or thrice faster, with good editors, etc. Productivity: 5 lines/man day at IBM with 1 error/mloc (million lines of code) The above includes testing, debugging and documentation Such a low productivity with sophisticated software tools and that too by experienced programmers Others will produce even less Kannan Moudgalya Introduction to Scilab 3/52

Shortcomings in Science Education Scientists and engineers often have no formal course in programming Perhaps one course mainly Fortran, perhaps some C Objective: to solve engineering problems. Good programming is not a must Computer science departments do not spend much time on numerical programming (e.g. does not teach Fortran) Shortage of computer scientists Scientists and engineers teach programming to their students Many of them would have had no formal course in programming Kannan Moudgalya Introduction to Scilab 4/52

Gap between Computer Scientists and Engineers Numerical software is not of interest to computer scientists Computers scientists do not carry out numerical simulations Their programs work mostly with characters - may be integers This, combined with shortcomings in science education, as mentioned in the last slide, makes scientific computations a difficult problem Kannan Moudgalya Introduction to Scilab 5/52

Idea to Implementation R&D Stage: Evaluation of ideas Need rapid idea testing workbench Come up with idea loop Test it Modify it end loop When idea works, go to production phase: Convert code for repeated use Use code repeatedly Need efficient code Kannan Moudgalya Introduction to Scilab 6/52

College Education = Idea Testing College teaches new things Extensive idea testing phase Need a tool for idea testing Performance of code often does not matter Scilab fits the bill Kannan Moudgalya Introduction to Scilab 7/52

Applied Research Institutions High productivity platform for idea testing Developing efficient code for tested ideas Scilab is one such tool Kannan Moudgalya Introduction to Scilab 8/52

Scilab Environment for numerical computer applications Good mathematical library in compiled C code Interpreted high level language High productivity tool Scilab:C = C:Assembly Can work with Fortran, C: Transition to production phase possible Good graphics capability Large installed base A lot of algorithms implemented in interpreted language as well Free Check out www.scilab.org or www.scilab.in Kannan Moudgalya Introduction to Scilab 9/52

History of Scilab Idea of Cleve Moler, CS Prof. New Mexico State University Was in Linpack, Eispack (robust algorithms) projects NSF sponsored project to develop Matlab in Fortran - Free Many companies started using this idea Matrixx CTRL-C Matlab Scilab Used extensively for linear algebra, simulation, control system design Kannan Moudgalya Introduction to Scilab 10/52

Mathematical Library Special functions Bessel Gamma Error function Elliptic integral Polynomials Characteristic polynomial Roots Multiplication Division Curve fitting Matrix condition Condition number 1,2,F and norms rank Kannan Moudgalya Introduction to Scilab 11/52

Mathematical Library - Continued Matrix functions Exponential Powers Log Square root Decomposition & factorisation LU QR SVD Cholesky Schur Inverse Signal processing FFT, FFT2, IFFT, IFFT2 Convolution Deconvolution Correlation coefficient Kannan Moudgalya Introduction to Scilab 12/52

Scilab s Language C like langugae Control flow if while select break Procedures Scripts Functions Other features Diary Can call C and Fortran programs Kannan Moudgalya Introduction to Scilab 13/52

Features of Scilab Scilab is made up of three distinct parts: An interpreter Libraries of functions (Scilab procedures) Libraries of Fortran and C routines It includes hundreds of mathematical functions with the possibility to interactively add programs from various languages (C, Fortran). It has sophisticated data structures including lists, polynomials, rational functions, linear systems, etc. Kannan Moudgalya Introduction to Scilab 14/52

How to Download Scilab? Scilab can be downloaded from ftp://ftp.iitb.ac.in/misc packages/scilab/ The website of Scilab is www.scilab.org It is distributed in source code format. Binaries for Windows95/NT, Unix/Linux/Mac OS/X are also available. All the binary versions include tk/tcl interface. Kannan Moudgalya Introduction to Scilab 15/52

Usage of Scilab Kannan Moudgalya Introduction to Scilab 16/52

Simple Arithmetic - 1 4+6+12 ans = 22. a = 4, b = 6; c = 12 a = 4. c = 12. a+b+c ans = 22. Kannan Moudgalya Introduction to Scilab 17/52

Useful Commands demos Gives demos on several different things apropos Helps locate commands associated with a word help functional invocation with no arguments Helps draw plots diary Stores all commands and resulting outputs Kannan Moudgalya Introduction to Scilab 18/52

Simple Arithmetic & Display a = 4; b = 6; c = 12; d = a+b+c d = 22. d = a+b+c; d d = 22. Kannan Moudgalya Introduction to Scilab 19/52

Simple Arithmetic format( v,10) e = 1/30 e = 0.0333333 format( v,20) e e = 0.03333333333333333 format( e,20) e e = 3.3333333333333E-02 Kannan Moudgalya Introduction to Scilab 20/52

Simple Arithmetic format( v,10) x = sqrt(2)/2, y = asin(x) x = 0.7071068 y = 0.7853982 y_deg = y * 180 /%pi y_deg = 45. Kannan Moudgalya Introduction to Scilab 21/52

Rounding, Truncation, etc. x = 2.6, y1 = fix(x), y2 = floor(x), y3 = ceil(x),... y4 = round(x) x = 2.6 y1 = 2. y2 = 2. y3 = 3. y4 = Kannan Moudgalya Introduction to Scilab 22/52

Different Ways to Specify a List The following three commands produce identical result: x = [0.1*%pi.2*%pi.3*%pi.4*%pi.5*%pi.6*%pi....7*%pi.8*%pi.9*%pi %pi]; x = (0:0.1:1)*%pi; x = linspace(0,%pi,11); Kannan Moudgalya Introduction to Scilab 23/52

Vector Operation - 1 -->x = (0:0.1:1)*%pi; -->y = sin(x) y = column 1 to 6! 0. 0.3090170.5877853 0.8090170 0.9510565 1.! column 7 to 11! 0.9510565 0.8090170 0.5877853 0.3090170 1.225E-16! -->y(5) ans = 0.9510565 Kannan Moudgalya Introduction to Scilab 24/52

Vector Operation - 2 -->a = 1:5, b = 1:2:9 a =! 1. 2. 3. 4. 5.! b =! 1. 3. 5. 7. 9.! -->c = [b a] c =! 1. 3. 5. 7. 9. 1. 2. 3. 4. 5.! -->d = [b(1:2:5) 1 0 1] d =! 1. 5. 9. 1. 0. 1.! Kannan Moudgalya Introduction to Scilab 25/52

Vector Operation - 3 -->a, b a =! 1. 2. 3. 4. 5.! b =! 1. 3. 5. 7. 9.! -->a - 2 ans =! - 1. 0. 1. 2. 3.! -->2*a-b ans =! 1. 1. 1. 1. 1.! Kannan Moudgalya Introduction to Scilab 26/52

Vector Operation - 5 -->a a =! 1. 2. 3. 4. 5.! -->a.^2 ans =! 1. 4. 9. 16. 25.! -->a.^a ans =! 1. 4. 27. 256. 3125.! Kannan Moudgalya Introduction to Scilab 27/52

Vector Operation - 6 -->a, b a =! 1. 2. 3. 4. 5.! b =! 1. 3. 5. 7. 9.! -->a./b ans =! 1. 0.6666667 0.6 0.5714286 0.5555556! -->b.\a ans =! 1. 0.6666667 0.6 0.5714286 0.5555556! Kannan Moudgalya Introduction to Scilab 28/52

Vector Operation - 7 -->a, b a =! 1. 2. 3. 4. 5.! b =! 1. 3. 5. 7. 9.! -->a/b ans = 0.5757576 Kannan Moudgalya Introduction to Scilab 29/52

Vector Operation - 8 -->a, b a =! 1. 2. 3. 4. 5.! b =! 1. 3. 5. 7. 9.! -->a\b ans =! 0. 0. 0. 0. 0.!! 0. 0. 0. 0. 0.!! 0. 0. 0. 0. 0.!! 0. 0. 0. 0. 0.!! 0.2 0.6 1. 1.4 1.8! Kannan Moudgalya Introduction to Scilab 30/52

Machine Epsilon -->num=0; EPS=1; -->while (1+EPS)>1 --> EPS = EPS/2; --> num = num+1; -->end -->num num = 53. -->EPS=2*EPS EPS = 2.220E-16 Kannan Moudgalya Introduction to Scilab 31/52

Logical Operators == equal to < less than > greater than <= less than or equal to >= greater than or equal to <> or = not equal to Kannan Moudgalya Introduction to Scilab 32/52

Use of Machine Epsilon -->x = (-2:2)/3 x =! - 0.6666667-0.3333333 0. 0.3333333 0.6666667! -->sin(x)./x!--error 27 division by zero... Kannan Moudgalya Introduction to Scilab 33/52

Use of Machine Epsilon -->x = x+(x==0)*%eps x =! -0.6666667-0.3333333 2.22E-16 0.3333333 0.6666667! -->sin(x)./x ans =! 0.9275547 0.9815841 1. 0.9815841 0.9275547! Kannan Moudgalya Introduction to Scilab 34/52

Vector Operations Using Logical Operators -->A = 1:9, B = 9-A A =! 1. 2. 3. 4. 5. 6. 7. 8. 9.! B =! 8. 7. 6. 5. 4. 3. 2. 1. 0.! -->tf = A==B tf =! F F F F F F F F F! -->tf = A>B tf =! F F F F T T T T T! Kannan Moudgalya Introduction to Scilab 35/52

Transpose -->c = [1;2;3] c =! 1.!! 2.!! 3.! -->a=1:3 a =! 1. 2. 3.! -->b = a b =! 1.!! 2.!! 3.! Kannan Moudgalya Introduction to Scilab 36/52

Submatrix -->A=[1 2 3;4 5 6;7 8 9] A =! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 9.! -->A(3,3)=0 A =! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 0.! Kannan Moudgalya Introduction to Scilab 37/52

Submatrix A A =! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 0.! -->B=A(3:-1:1,1:3) B =! 7. 8. 0.!! 4. 5. 6.!! 1. 2. 3.! Kannan Moudgalya Introduction to Scilab 38/52

Submatrix -->A A =! 1. 2. 3.!! 1. 4. 7.!! 7. 8. 0.! -->B=A(:,2) B =! 2.!! 4.!! 8.! Kannan Moudgalya Introduction to Scilab 39/52

Submatrix -->b=[5-3;2-4] b =! 5. - 3.!! 2. - 4.! -->x=abs(b)>2 x =! T T!! F T! -->y=b(abs(b)>2) y =! 5.!! - 3.!! - 4.! Kannan Moudgalya Introduction to Scilab 40/52

Special Matrices -->zeros(3,3) ans =! 0. 0. 0.!! 0. 0. 0.!! 0. 0. 0.! -->ones(2,4) ans =! 1. 1. 1. 1.!! 1. 1. 1. 1.! -->rand(2,1) ans =! 0.2113249!! 0.7560439! Kannan Moudgalya Introduction to Scilab 41/52

Go for Vector Computation Kannan Moudgalya Introduction to Scilab 42/52

Go for Vector Computation -->a = ones(10000,1); -->timer() ans = 0.02 -->for i = 1:10000, b(i)=a(i)+a(i); end -->timer() ans = 0.31 -->c = a+a; -->timer() ans = 0.03 Kannan Moudgalya Introduction to Scilab 43/52

Plots Go through the Demos! Kannan Moudgalya Introduction to Scilab 44/52

1 t = ( 0 : 0. 1 : 6 %pi ) ; 2 plot2d ( t, s i n ( t ) ) ; 3 x t i t l e ( p l o t 2 d and x g r i d, t, s i n ( t ) ) ; 4 x g r i d ( ) ; Kannan Moudgalya Introduction to Scilab 45/52

1 plot2d1 ( e n l, 1, ( 1 : 1 0 : 1 0 0 0 0 ) ) ; 2 x t i t l e ( p l o t 2 d 1 l o g s c a l e, t, y l o g s c a l e ) ; 3 x g r i d ( 3 ) ; Kannan Moudgalya Introduction to Scilab 46/52

1 subplot ( 2, 2, 1 ) ; plot3d ( ) ; 2 subplot ( 2, 2, 2 ) ; plot2d ( ) ; 3 subplot ( 2, 2, 3 ) ; h i s t p l o t ( ) ; 4 subplot ( 2, 2, 4 ) ; grayplot ( ) ; Kannan Moudgalya Introduction to Scilab 47/52

1 plot3d ( ) ; 2 T i t l e =[ p l o t 3 d : z=s i n ( x ) cos ( y ) ] ; 3 x t i t l e ( T i t l e,, ) ; Kannan Moudgalya Introduction to Scilab 48/52

System requirements Source version Scilab requires approximately 130 MB of disk storage to unpack and install (all sources included). Also, X Window (X11R4, X11R5 or X11R6), C and Fortran compilers are needed. Binary version The minimum requirement for running Scilab (without sources) is about 40 MB when decompressed. Being partially and statically linked, these versions do not require a Fortran compiler. Kannan Moudgalya Introduction to Scilab 49/52

How to install Scilab? Windows Download scilab-4.1.exe Click this file and follow the instructions Launch from its icon on the Desktop. Linux Download scilab-4.1.bin.linux-i686.tar.gz Issue the following commands tar zxvf scilab-4.1.bin.linux-i686.tar.gz cd scilab-4.1 make The binary is at bin/scilab Kannan Moudgalya Introduction to Scilab 50/52

Conclusions Scilab is ideal for educational institutions, including schools Built on a sound numerical platform It is free Also suitable for industrial applications Standard tradeoff between free and commercial applications Kannan Moudgalya Introduction to Scilab 51/52

Thank you Kannan Moudgalya Introduction to Scilab 52/52