numerical computing using by t k rajan, govt. victoria college, palakkad

61
Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Upload: charleen-shields

Post on 25-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Numerical ComputingUsing

ByT K Rajan, Govt. Victoria College, Palakkad

Page 2: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

What is SciLab• A programming language with a rich collection of numerical

algorithms

• An Interpreted Language

• Handles various Data Types and user defined ones

• Dynamically compiles and link other languages like FORTRAN, C etc.

• It is a free software with source code

• It focuses on many areas of scientific computing covering algebra, calculus, number theory, signal processing, statistic etc.

• It provides many graphic features like 2D, 3D plotting

• In SciLab everything is a matrix

• It is a case sensitive language

Page 3: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Where to get SciLabScilab binaries can be downloaded directly from the Scilab

homepage

http://www.scilab.orghttp://www.scilab.org/

download

Page 4: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Starting and exiting SciLabDouble Click SciLab Shortcut

scilab-5.2.2

Consortium Scilab (DIGITEO)

Copyright (c) 1989-2010 (INRIA)

Copyright (c) 1989-2007 (ENPC)

________________________________________

Startup execution:

loading initial environment

--> disp "hello"

hello

--> quit (to Exit from SciLab)

Page 5: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Online Help• For online help type help at the command prompt• Another method is type help followed by the name of

function of which help is required• Use apropos command to search a string• exists function name - to check whether a function

exists or not?

-->help -->help sqrt -->exists gcd

-->apropos logarithm – it will search the string ‘logarithm’

<Tab> key provides intellisense.

i.e. press Tab key after typing a letter or a word, a window of associated functions will popup

Page 6: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Editing a command line -->is the scilab command prompt

-->disp “hello Scilab”

• Ctrl+p recall previous line or up arrow key

• Ctrl+b move backward one character

• Ctrl+f move forward one character

• Ctrl+h delete previous character

• Ctrl+d delete one character (at cursor)

• Ctrl+a move to beginning of line• Ctrl+e move to end of line• Ctrl+k delete to the end of the line

Page 7: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Creating variables• No need to declare a variable

• Variables are created when they are set

• The = symbol is used for assigning a value to a variable

-->x=3 ; x=int32(3)

-->y=x*2

-->a=[1 2 3]

-->name=“Rajan”

-->z=complex(2,3)

Page 8: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

More about commands• Commands end with semicolon(;) suppress

display

• -->x=12/5;• Commands at the same line (use semicolons

between lines)• -->x =[1 2 3]; y=12/5• A lengthy command (use two or more dots … )• -->x= -23+(12- sin(45))+…

-->5*cos(78)- sqrt(-5+sin(12))

Page 9: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

System commands• pwd - to know the current working directory• dir – to know the files in a directory• chdir – to change the working directory• who – to list the variables created in the working directory• Whos – Displays names and specifics of current variables• what – List all primitives and functions• pause – to debug creating a new work space• resume – to return to the original work environment• Clear - Deletes unprotected variables and functions from

memory

• date – displays system date• typeof(a) - Output string with type of variable• whereis - Display name of library containing function

Page 10: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Simple data types

Number Integer, floating-point, complex

String characters in quotes

Boolean T and F

Page 11: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Real number-->x=22

-->y=int(16.23)

-->a=int32(16.23)

Command to change the format of double precision

• -->format(10,’e’) - scientific form

• -->format(10,’v’) – floating arithmetic form

To change the base of a number

• -->dec2hex(49) - other functions … dec2bin dec2oct

• -->hex2dec(‘45AF0’) - other functions … bin2dec oct2dec

Page 12: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Complex Number-->z=sqrt(-3)

-->x=-2+3*%i

-->x=complex(-2,3)

-->a=real(x)

-->b=imag(x)

-->y=conj(x)

Page 13: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Simple data types: operators

• + addition -->x+y• - substraction -->x-y• * multiplication -->x*y• / right division -->x/y• \ left division --> x\y • ^ power --> x^n• ** power (same as ^) --> x**n• ' transpose conjugate --> x’

Page 14: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Arithmetic Statements

• -->a = 3; b = 7.2; c=5• -->c = a + b^2 -

sin(3.1415926/2)• -->(b= -b + sqrt(b^2 – 4* a*

c))/(2*a)

Page 15: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

String

A string is in “… “ or ‘ … ‘

Ex:

-->a=“scilab for numerical computation”

-->b=‘mathematics’

String functions:• string() – length() – evstr() or eval() – execstr() –

blanks(n)

• strcat() - + operator – part() – ascii() – isnum()

• strncpy() – gsort() – pol2str() - strrev()

Page 16: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Special Constatnts

%e Euler’s costant

%i Imaginary unit

%pi ∏

%eps 2.220D-16 ( epsilon )

%inf ∞

%t T for True

%f F for False

Page 17: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Relational operators

• < - less than

• > - greater than

• <= - less than or equal to • >= - greater than or equal to

• == - equal to • ~= or <> - not equal to

Page 18: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Logical operators

• & - and operator

• | - or operator

• ~ - not operator

Functions:• islogical() – isnum() – exists – isreal()

Page 19: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Input - Output

• For output use disp() or printf()• Ex:

-->disp(“Enter a Number:”)

-->printf(“Value of n=“)

• For input (read) data use input()• Ex:

-->n=input(“Enter the value of n”)

-->m=input(“”)

Page 20: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Arrays and Matrices

Array: -->a = [1, 2, 3, 4, 5](creates a one dimensional array and stored in a)

Matrix:-->b=[1,2,3;2,3,4;3,4,5] (creates a 3X3 matrix and stored in B)

-->c=[1;2;3](creates a column matrix)

Page 21: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Special Matricesrand(3,5) – creates a random matrix of order 3

x 5

rand(3,5)*100; int32(rand(3,5)*100)

testmatrix(“hilb”,3) – inverse of a Hilbert matrix

testmatrix(“magi”,3) – magic square of size 3

eye(3,3) – creates a 3 x 3 identity matrix

zeros(3,4) – creates a zero matrix of order 3 x 4

ones(3,4) – creates a 3 x 4 matrix of 1’s

Page 22: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Special Matrices – contd..

a=[-3:.01:3] – creates a row matrix (a vector) from -3 to 3 equally spaced of width 0.01

a=linspace(-3,3,100) - creates a row matrix (a vector) of size 100 from -3 to 3

Page 23: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Matrix functions

-->a=[-3, 4, 0;2,-1,-6;5,0,3] - To create a 3 x 3 matrix

a’ - transpose of asum(a,’r’) - column sumssum(a,’c’) – row sums sum(a) – the sum of all entriesprod(a) –product of matrix elements

Page 24: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Matrix Functions continue …roots(B) – roots of a polynomial with

coefficients from the row matrix B

sqrt(A) – element wise square roots

exp(A) – logm(A) – log(A) – log10(a)sin(A) – cos(A) – tan(A) – sec(A)asin(A) – acos(A) – atan(A) – asec(A)round(A) – rounds the entries to the nearest

integers

Page 25: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Matrix Functions continue …diag(a) – diagonal of a[x y]= spec(a) – eigen values and eigen

vectorsinv(a) – inverse of a square matrixdet(C) – determinant of a square the

matrix Ctrace(C) – trace of Crank(A) – Finds rank of a matrixlu(A) - LU factors of Gaussian elimination

Page 26: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Slicing a matrix--> a=int(rand(5,6)*100)

a(2:4,1:3) - submatrix from 2nd row to 4th row and 1st col to 3rd col

a(:,1:3) – submatrix from 1st col to 3rd col

a(3,4) – displays the (3,4)th element of a

a($,$) – displays the last entry of a

matrix(a,3,10) – reshape a to 3 x 10 matrix

x=[-2,3,7]; diag(x) – creates a matrix with diagonal as x

Page 27: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Matrix Operations• A, B matrices

-->A+B

-->A-B

-->3*A – scalar multiplication of A

-->3+A – 3 is added to every entry of A

-->A*B - product of A and B

-->A.*B – element wise multiplication

-->A./B – element wise division

-->A.^n – nth power of entries

Page 28: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Polynomial

-->poly(a, ”x”) – a polynomial in x whose roots are elements of the vector a

-->poly(a, “x”, “coeff”) – a polynomial in x whose coefficients are elements of the vector a

-->x=poly(0,’x’);a=1+2*x+3*x^2Example:

-->a=poly([6,5,1],’x’,’c’) -->b=poly([-1 3],’x’)

Page 29: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Polynomial - functions

if a is a polynomial

-->roots(a) – roots of the polynomial a

-->degree(a) – displays the degree of a-->coeff(a) – displays coefficients of a-->horner(a,2) – value of a at 2-->factors(a) – displays prime factors of a

Page 30: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Polynomial matrixx=poly(0,'x');v=[x*(x+1),x^2*(x+1),(x-2)*(x+1), (3*x^2+2)

… * (x+1)]; - v is a polynomial matrix

pg=hrmt(v) or gcd(v) – pg is the gcd of the polynomials

b=lcm(v) – lcm of polynomials

s=poly(0,'s');H=[s,s*s+2;1-s,1+s]; invr(H) – inverse of a polynomial matrix

b=detr(H) – Determinant of the square polynomial matrix H

tril(H) and triu(H) – lower and upper triangular part of H

Page 31: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Rational function-->a=poly([1 0 3],’x’,’c’); b=poly([2 3 4],’x’)

-->c=a/b - It is rational function (quotient of two polynomials)

-->c.num or numer(c) – The Numerator of c

-->c.den or denom(c) – The Denominator of c

-->[q,r]=pdiv(a, b) – q and r are quotient and remainder when b divides a

-->derivat(c) – derivative of the rational function c

Page 32: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Statistical functions-->a=rand(5,3)*20;

-->sum(a)

-->mean(a)

-->median(a)

-->stdev(a)

-->max(a)

-->min(a)

Page 33: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

List

• A list is a collection of data objects• Two types – list() and tlist()Ex:-->A=list(23, [1 2 3], ‘hello’)-->b=tlist(‘a’,[2 3],”erw”)

Page 34: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Linear system of equations• To solve Ax=b where A is m x m matrix and b

is m x 1 matrix

--> linsolve(A,b) or A\b

Page 35: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Scilab Scripts• Script (module) is a program (A set of statements) saved in a

file whose name is with an extension .sci or .sce.• If there are executable statements in the script, then save it

with .sce extension• The command editor() will invoke an editor for typing a script• A script file is executed with the command exec filenameEx:

-->exec sample.sce - To execute sample.sce

-->exec “sample.sce” - To display the content of sample.sce

In the scilab editor click the menu execute or load file options

Page 36: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Control statements (1)

if, if-else, if-elseif-else if a == 0 then disp "zero!" elseif a < 0 then disp "negative!" else disp "positive!“ end

Page 37: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Control statement(2)

Select – caseEx:--> x=3

-->Select x

--> case 1

--> disp x

--> case 3

--> disp (x^2)

--> end

Page 38: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Control statement(3)while() loopwhile(condition), statements, end

Example:

x=1while (x<10) disp(x) x=x+1end

Page 39: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Control statement (4) for loops for starting value : increment : final value ….. end

Example:

s=0 for i=1:2:20 s=s+i end

Page 40: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

User defined functions

Function y =f(x) – y is output variable, x is input variable and f is the name of the function

Ex: function y = fact(n) // the function program to find facorial

If n<=1 then y=1 else y=n*fact(n-1) end endfunction

Page 41: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

functions contd…..• If more than one value to be returned it is function [x y z] = name(a,b,c)

…..

endfunction

• a, b, c are input variables

• x, y, z are output variables

• The last statement should be endfunction

Page 42: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Function definition – method 2

For the following function

function [x y]=cart(r,t)

x=r*cos(t)

y=r*sin(t)

endfunction

Type

deff('[x y]=cart(r,t)',['x=r*cos(t)';'y=r*sin(t)'])

Page 43: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Function program example//Tn+1(x) = 2xTn(x) –Tn-1(x)-->function ch = cheby(x,n)--> // Compute Chebyshev polynomial of order n for

argument x--> if n == 0--> ch = 1;--> elseif n == 1--> ch = x;--> else--> ch = 2*x*cheby(x,n-1)-cheby(x,n-2);--> end--> endfunction

Page 44: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Functions - Calculus

• --> integrate(‘x^3’,’x’,0,1)• -->derivative(f,2) where f is a user defined

function

• -->derivat(p) where p is a polynomial function

Page 45: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Global Vs Local variables• A global variable is one define in the

SciLab environment, while a local variable is one within a function

• A Local variable is not available in SciLab environment even after the call of the function

Page 46: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Saving and Loading variablesA=[1 2 3;3 4 5; 5 6 7];b=[2;3;4]

To save the values A and b use the command

-->save(‘sam.dat’,A,b) - sam.dat is the file where stored

To load the values of A and b later in Scilab environment use the command

-->load(‘sam.dat’)

Page 47: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Function libraries• Save all .sci files in a folder say “C:\My Scilab”

• --> genlib(‘Mylib’, ‘C:\My Scilab’)

• --> load(‘C:\My Scilab\lib’)

• With these commands all the user defined functions will be loaded into the workspace

Page 48: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Formatted StatementUse printf() command

-->x=22/3; y=x^2

-->printf(“the value of x is %f”,x)

-->printf(“the square of %f is %f”,x,y)• %f and %d are format specification respectively for real,

integer type

• %s is the string format specification

• To display a real number correct to 2 decimal place use %.2f specification

Page 49: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

bar Diagram

bar()-->x=[4 12 8 20];-->bar(x,0.5,’r’) – draws bar diagram of bar

width .5 in red color

-->x=[1 2 3]; y=[3 4 -2; 6 3 8]; bar(x,y,’stacked’)

Page 50: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Pie diagram

pie()-->x=[4 12 8 20];-->pie(x,0.5,’r’) – draws bar diagram

of bar width .5 in red color

-->x=[1 2 3]; y=[3 4 -2; 6 3 8];

-->pie(x,y,’stacked’)

Page 51: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Plotting Data

plot2d() and plot()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)plot(x,y,’r’) - plot in red colorplot(x,y,’o’) – plot with letter ‘o’

Page 52: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Plotting function• 2d plot - plot() – xtitle() – legend()• Ex:

clf() - to clear graphic winow

x=-3*%pi:0.001:3*%pi; plot(x,sin(x))

xtitle(‘title of graph’, ‘x label’, ‘y label’)

legend(“f1”,”f2”)

Page 53: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Plotting a function on an interval

fplot2d()-->function [y]=f(x)

--> y = x*abs(x)/(1+x^2);

-->endfunction

-->x = (-5:0.1:5)';

-->fplot2d(x,f,style=5) or plot(x,f,’r’)

Page 54: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Multiplot - 1• More than one graph can be drawn on the same window

• Example:

• -->t=[-6,.1,6]’;• -->plo2d(t, [t.*sin(t) 1+.5*cos(t)

cos(2*t)]);• -->title(“MultiPlot in the same window”);• -->legend(“tsin t”, “1+.5cos t”, “cos

2t”);

Page 55: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Multiplot - 2• More than one graph can be drawn on the same window

• Use subplot() command

• Example:

-->t=(1:0.1:8)';xset("font",2,3);

-->subplot(2,2,1)

-->plot2d(t,[1.5+0.2*sin(t) 2+cos(t)]);

-->xtitle('Plot2d-Piecewise linear');

-->subplot(2,2,2)

-->plot2d2(t,[1.5+0.2*sin(t) 2+cos(t)]);

-->xtitle('Plot2d2-Piecewise constant');

Page 56: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Multiplot - 3• Graphs can be drawn in separate windows

• Use xset() command

• Example:

• x=[-12,.1,12]’;

• xset(window’,1);plot(x,cos(3*x))•

xset(‘window’,2);plot(x,3*sin(x));

Page 57: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Graph - isoview• To scale both axes use isoview() command

• t=[-4,.4,4]’;• plot(25*sin(t),25*cos(t));• isoview(-1,1,-1,1)

Page 58: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Saving graphic files

• When graph is plotted, it is displayed on a graphic window

• Choosing the menu export to option in file menu of graphic window, it can be saved in picture file format

Page 59: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

3d Graphs – graph of a surface

plot3d()-->x=(-3:1/20:3); y=(-4:1/25:4);-->u=x’ *y;-->plot3d(x,y,u);-->plot3d1(x,y,u); colored graph

Page 60: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

3d Plot - function

Use fplot3d() - fplot3d1()-->x=[-3:.1:3];y=x;-->deff('[z]=f(x,y)','z = sin(x^2) -

y^4')-->fplot3d(x,y,f)

Page 61: Numerical Computing Using By T K Rajan, Govt. Victoria College, Palakkad

Thank YouT K Rajan, GVC Palakkad