25
9. Notiuni de Scilab 9.1. Funcţii Scilab de baza 9.1.1. Comenzi de intrare a) Click pe Start->Programs->Scilab

9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9. Notiuni de Scilab

9.1. Funcţii Scilab de baza

9.1.1. Comenzi de intrare

a) Click pe

Start->Programs->Scilab

Page 2: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.1.1. Comenzi de intrare

b) Dublu click peScilab icon pe desktop

c) etc.

Page 3: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.1.2. Fereastra Scilab principala

Page 4: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.1.3. Comenzi de iesire

a) --> quit

b) --> exit

c) click pe

Page 5: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.1.4. Functia help

a) --> help plot

b) --> apropos plot

c) click pe …

d) click pe …

Page 6: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.1.5. Definirea unei matrice

--> A=[1 2 3;2 1 3;3 3 3]

A =! 1. 2. 3. !! 2. 1. 3. !! 3. 3. 3. !

-->A=[ 1 2 3-->2 1 3-->3 3 3 ]

A =! 1. 2. 3. !! 2. 1. 3. !! 3. 3. 3. !

--> B=[2 1 3 5];--> B

B =! 2. 1. 3. 5. !

--> C=1:5

C =! 1. 2. 3. 4. 5. !

Page 7: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.1.5. Definirea unei matrice - continuare

Matrice diagonalădiag

Matrice cu elemente nule, cu exceptia diagonalei principale ce contine elemente unitate

eye

Matrice cu elemente aleatoare, uniform distribuite, cuprinse între 0 si 1

rand

Matrice ce contine doar elemente unitateones

Matrice ce contine doar elemente nulezeros

Page 8: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.1.6. Funcţii de analiză matriceală

Calculează urma unei matrice sau suma elementelor de pe diagonala principală

trace

Calculează inversa unei matrice inv

Calculează determinantul unei matricedet

Numărul de conditionare al unei matricecond

DescriereFunctie

Not a number%nan

Infinit%inf

2.7182818 …%e

Precizia relativă în virgulă mobilă 2.22.10-16%eps

sqrt(-1)%i

3.14159265...%pi

9.1.7. Constante predefinite

Page 9: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

Transpusa neconjugată complex.’

Ridicare la putere element cu element.^

Împărtire la stânga element cu element.\

Împărtire la dreapta element cu element./

Înmultire element cu element.*

Pentru ordinea operatiilor( )

Transpusa complex conjugată’

Ridicare la putere^

Împărtire la stânga\

Împărtire la dreapta/

Înmultire*

Scădere-

Adunare+

OperatieOperator

9.1.8. Operatii de baza cu matrice

Page 10: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.1.9. Operatori relationali

Diferit de~ =

Egal cu= =

Mai mare sau egal cu>=

Mai mare decât>

Mai mic sau egal cu<=

Mai mic decât<

DescriereOperator

9.1.10. Operatori logici

Negatie logica~

Sau logic|

Si logic&

DescriereOperator

Page 11: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.2. Funcţii Scilab de reprezentare grafica

9.2.1. Reprezentarea graficelor 2D

TrasareTrasarex = 0:%pi/100:2*%pi;y = sin(x);plot2d(x, y);

Page 12: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.2.1. Reprezentarea graficelor 2D - continuare

EtichetareEtichetare sisi gridgridxtitle('graficul functiei sinus', 'timp', 'sinus')xgrid(2)

culoarea gridului

Page 13: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.2.1. Reprezentarea graficelor 2D - continuare

TrasareaTrasarea functiilorfunctiilor multiple multiple pepe acelasiacelasi graficgraficx=[0:0.1:2*%pi]';plot2d(x, [sin(x) sin(2*x) sin(3*x)]);

Page 14: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.2.2. Reprezentarea suprafetelor - continuare

TrasareaTrasarea graficuluigraficului functieifunctiei sin(x)cos(ysin(x)cos(y) in ) in intervalulintervalul [[--pi,pipi,pi]]t=(t=(--%pi:0.1:%pi); plot3d(t, t, %pi:0.1:%pi); plot3d(t, t, sin(tsin(t)'*)'*cos(tcos(t), 35, 45, 'X@Y@Z');), 35, 45, 'X@Y@Z');

Page 15: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.2.1. Reprezentarea suprafetelor - continuare

TrasareaTrasarea graficuluigraficului functieifunctiei sin(x)cos(ysin(x)cos(y) in ) in intervalulintervalul [[--pi,pipi,pi]]t=(t=(--%pi:0.1:%pi); plot3d1(t, t, %pi:0.1:%pi); plot3d1(t, t, sin(tsin(t)'*)'*cos(tcos(t), 35, 45, 'X@Y@Z');), 35, 45, 'X@Y@Z');

Page 16: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.2.1. Reprezentarea graficelor 2D - continuare

TrasareaTrasarea functieifunctiei sin(x)cos(ysin(x)cos(y) in ) in intervalulintervalul [[––pi,pipi,pi]]h2=hotcolormap(512);h2=hotcolormap(512);

xset('colormap',h2(100:$,:));xset('colormap',h2(100:$,:));

t=(t=(--%pi:%pi:0.30.3:%pi);:%pi);plot3d1plot3d1(t, t, (t, t, sin(tsin(t)'*)'*cos(tcos(t), 35, 45, 'X@Y@Z');), 35, 45, 'X@Y@Z');

Page 17: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.3. Notiuni de programare Scilab

9.3.1. Fisiere de tip *.sci sau *.sce

-Fisierele de tip *.sci sau *.sce sunt fisiere ce contin secvente de instructiuni Scilab executate succesiv si pot fi de tip script sau de tip function

FisiereFisiere de tip scriptde tip script-Fisierele de tip script pot apela fisiere de tip function -Fisierele de tip script nu pot fi apelate de alte fisiere de tip script sau de altefisiere de tip function

FisiereFisiere de tip functionde tip function-Sunt fisiere care spre deosebire de fisierele script admit parametri de intrare

- Sintaxa unui fisier de tip function este :

functionfunction [par_iesire1, par_iesire2 ...] = nume_funcnume_functtieie(par_intrare1, par_intrare2 ...)...

endfunctionendfunction

- Dupa executia instructiunilor, nu raman in memorie decat variabilele de iesire- Fisierele de tip function pot sa nu aiba parametrii de iesire sau de intrare

Page 18: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

scripttest.sciscripttest.scia=input('Introduceti un numar: ');b=floor(a)^2

lansare in executie

-->exec('D:\scilab\scripttest.sci');

-->a=input('Introduceti un numar: ');Introduceti un numar: -->2-->b=floor(a)^2

b =4.

ftest.sceftest.scefunction [a]=ftest(x)a=real(x) - %i*imag(x);endfunction

lansare in executie

--> exec('D:\scilab\ftest.sce');--> [a] = ftest(2+%i)

a = 2. - i

9.3.1. Fisiere de tip *.sci sau *.sce - exemple

Page 19: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.3.2. Crearea fisierelor de tip *.sci sau *.sce

- Folosind Scipad - la versiuni recente de Scilab

- Folosind editoare externe Notepad, WordPad cu salvarea fisieruluiin format text

- Fisierele trebuiesc salvate cu extensia .sci sau .sce

Page 20: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.3.3. Instructiuni de control logic – instructiunea if

SintaxaSintaxaif expresie_logica1 then

instructiuni1elseif expresie_logica2 then

instructiuni2else

instructiuni3end

ExempluExemplua=3;b=3;if a>b then

disp('a este mai mare decât b')elseif b>a then

disp('b este mai mare ca a')else

disp(‘a este egal cu b')end

a este egal cu b

Instructiunea then poate lipsi daca instructiuni1, 2, 3 se scriu pe linii separate

Page 21: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.3.3. Instructiuni de control logic – instructiunea for

SintaxaSintaxafor index = start:increment:end

instrucţiuni end

ExempluExemplufor i = 1:0.1:1.5

a = iend

a =

1.a =

1.1a =

1.2a =

1.3a =

1.4a =

1.5

Page 22: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.3.3. Instructiuni de control logic – instructiunea while

SintaxaSintaxawhile expresie_logica

instructiuni end

ExempluExemplun = 1;while prod(1:n) < 10

n = n + 1end

n =2.

n =3.

n =4.

Page 23: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.3.3. Instructiuni de control logic – instructiunea select

SintaxaSintaxaselect expresie

case expresie1 theninstructiuni1

case expresie2 theninstructiuni2

elseinstructiuni3

end

ExempluExemplun = 1;select n

case 1 thendisp('n este egal cu 1')

case 2 thendisp('n este egal cu 2')

elsedisp('n este diferit de 1 si 2')

end

n este egal cu 1

Page 24: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

Stiind ca y(0)=0, sa se rezolve pe intervalul [0, 0.2], urmatoarea ecuatie diferentiala:2.y + 0.013.(dy/dt) =312.sin(314.t)

Pas 1: Se exprima dy/dt = fun(t, y)yp = dy/dt = 312/0.013*sin(314*t)-2/0.013*y

Pas 2: Se defineste functia fun(t, y)--> deff("[yp]=fun(t, y)","yp=312/0.013*sin(314*t)-2/0.013*y");

Pas 2 alternativ: Se defineste si se incarca fisierul de tip functie fun.sci

--> exec('fun.sci') sau getf('fun.sci')

Pas 3: Se calculeaza si se ploteaza functia necunoscuta y(t)--> t0=0; t=0:0.0001:0.2; y0=0; --> y=ode(y0, t0, t, fun);--> plot(t, y);--> xgrid(2)--> xtitle('Curentul de sccurtcircuit al unui transformator', 'timp [s]', 'i1k [A]')

9.4. Rezolvarea ecuatiilor diferentiale

9.4.1. Ecuatii diferentiale de ordinul I - exemplu

function yp = fun(t, y) yp=312/0.013*sin(314*t)-2/0.013*y;

endfunction

fun.sci

Page 25: 9. Notiuni de Scilab - apar.pub.ro · Notiuni de Scilab 9.1. ... între 0 si 1 rand ones Matrice ce contine doar elemente unitate zeros Matrice ce contine doar elemente nule. 9.1.6

9.4.1. Ecuatii diferentiale de ordinul I - exemplu