Sunteți pe pagina 1din 16

9.

Mediul de programare SCILAB


9.1. Prezentare, instalare, lansare în execuţie, ferestre şi meniuri
SCILAB este un produs dedicat calculului numeric şi reprezentării grafice în domeniul
ingineriei, elaborat de Institutul Naţional de Cercetare în Informatică şi în Automatică – INRIA
Franţa. SCILAB are trăsături comune cu produsul comercial MATLAB.
Versiunea 4.1.1 a mediului SCILAB (13,6 MB) este disponibilă gratuit pe site-ul
http://www.scilab.org şi se instalează printr-o procedură automată, implicit în partiţia activă,
directorul X:\Program Files\scilab-4.1.1\bin\WScilex.exe.
Lansarea în execuţie se poate face cu ajutorul pictogramei de pe Desktop, prin butonul
Start → Programs → Scilab-4.1.1 → scilab-4.1.1 sau din calea X:\Program Files\scilab-
4.1.1\bin – fişierul WScilex.exe.
Fereastra de comenzi - consola (figura 8.1), deschisă la pornirea mediului, conţine elementele:
• bara de nume;
• bara de meniuri;
• bara de unelte;
• fereastra propriu-zisă cu prompt-ul SCILAB " --> " .

Fig. 8.1 – Fereastra de comenzi a mediului SCILAB


Principalele meniuri cu comenzile lor sunt prezentate în figura 8.2.

Fig. 8.2 – Meniurile File, Edit, Preferences şi Control

17
Meniurile cu comenzile uzuale şi rolul lor
sunt următoarele:
Meniul File:
• New Scilab deschide o sesiune de
comenzi nouă;
• Exec permite lansarea în execuţie a
unui subprogram creat şi salvat anterior;
• Open... permite accesul la un
(sub)program printr-o fereastră SciPad
(figura 8.3);
• Save... ajută la salvarea unui program
cu eventuala stabilire a numelui şi
destinaţiei;
Fig. 8.3 – Fereastra SciPad
• Change Directory permite schimarea
directorului curent pe durata unei sesiuni;
• Exit determină închiderea unei sesiuni de lucru şi terminarea programului SCILAB.
Meniul Edit:
• Select All pentru selectarea conţinutului ferestrei;
• Copy şi Paste pentru copierea zonelor selectate în şi din fereastră;
• Empty Clipboard şterge conţinutul memoriei tampon;
• History permite accesul la comenzi pentru manipularea comenzilor introduse
anterior în dreptul prompt-ului SCILAB;
• LaunchPad;
Meniul Preferences conţine comenzi pentru modificarea aspectului şi a modului de lucru
ale mediului SCILAB.
Meniul Cotrol are comenzi pentru execuţia şi oprirea programului curent.
Meniul Editor este, de fapt, o comandă care permite accesul la o nouă fereastră SciPad.
Meniul Help oferă utilizatorului posibilitatea documentării asupra mediului SCILAB.
Ferastra SciPad permite încărcarea, editarea şi salvarea unui (sub)program, care poate fi
lansat în execuţie din fereastra de comenzi (Exec...). Desigur, aceste operaţii se pot face şi în
ferestra de comenzi, dar în condiţii nu tocmai comode.
9.2. Obiectele mediului SCILAB
Elementele mediului de programare SCILAB sunt constantele, literalele, polinoamele şi
funcţiile raţionale, funcţiile matematice uzuale, funcţii SCILAB generale, matricele şi listele.
9.2.1. Constantele
Constantele disponibile în mediul SCILAB sunt prezentate în tabelul 8.1.
Constantele SCILAB
Tabelul 8.1
Contanta Notaţia SCILAB Tipul
π %pi real
e %e real
∞ %inf
i %i complex
true %t boolean

18
false %f boolean

9.2.2. Literalele
Literalele folosite în SCILAB sunt:
• Literale numerice reale
Numărul real 17,173 se poate scrie:
17.173 = 17173e-3 = 0.17173e+2
(simbolul exponentului poate fi e sau E).
• Literale numerice complexe
Numărul complex 7 – 3i se scrie:
7 – 3*%i
• Literale nenumerice
Sunt şiruri de caractere cuprinse intre apostrofuri sau ghilimele:
'i' sau ''i''
'sir' sau ''sir''
9.2.3. Polinoame şi funcţii raţionale
Un polinom poate fi definit cu ajutorul funcţiei poly:
[p=]poly(a, 'x'[,'semafor']
a = număr real, vector sau matrice;
x = simbol nedeterminată;
semafor = poate fi coeff sau roots (a doua este valoarea implicită).
• Dacă a este un număr real, se poate defini nedeterminata:
-->x=poly(0,'x')
x = x sau
-->x=poly(-3,'x')
x = x+3
apoi se poate introduce pe linia de comandă:
-->p=x^3–6*x^2+11*x–6
care, în funcţie de nedeterminata (x sau x+3) defineşte polinomul:
p=
–6+11*x-6x^2+x^3 respectiv
p=
2*x+3x^2+x^3
• Dacă a este un vector, elementele acestuia sunt considerate ca fiind fie coeficienţii,
fie rădăcinile polinomului, după cum semaforul are valoarea coeff sau roots.
De exemplu, declaraţiile:
-->a=[-6 11 -6 1];
-->p=poly(a,'x',’coeff’)
definesc polinomul:
p=
–6+11*x-6x^2+x^3
iar declaraţiile:
-->a=[1 2 3];
-->p=poly(a,'x')
definesc acelaşi polinom.
• Dacă a este o matrice pătrată, polinomul generat este valoarea determinantului
det(x*eye()–a). Funcţia eye() este matricea unitate. De exemplu, declaraţiile:
-->a=[1 2 -1;2 1 2;-1 1 2];

19
-->p=poly(a,'x')
generază polinomul:
p=
15-2*x-4x^2+x^3
acelaşi polinom poate fi generat cu declaraţiile:
-->a=[1 2 -1;2 1 2;-1 1 2];
-->x=poly(0,'x');
-->p=det(x*eye()-a)
• Dacă p şi q sunt două polinoame în nedeterminata x, atunci p/q defineşte o funcţie
raţională. De exemplu:
-->v1=[1 2 3];v2=[1 2 -1];p=poly(v1,'x');q=poly(v2,'x');
-->r=p/q
r =
-3 + x
------
1 + x
-->N=r('num')
N=
-3 + x
-->n=r('den')
n=
1 + x

9.2.4. Funcţii matematice uzuale


Funcţiile matematice frecvent folosite sunt prezentate în tabelul 8.2.
Funcţiile matematice uzuale
Tabelul 8.2
Funcţia Semnificaţia Funcţia Semnificaţia
abs(x) |x| exp(x) ex
log(x) ln(x) log10(x) lg(x)
sin(x) sin(x) asin(x) arcsin(x)
sinh(x) sh(x) asinh(x) arcsh(x)
cos(x) cos(x) acos(x) arccos(x)
cosh(x) ch(x) acosh(x) arcch(x)
tan(x) tg(x) atan(x) arctg(x)
tanh(x) th(x) atanh(x) arcth(x)
cotg(x) ctg(x) coth(x) cth(x)

9.2.5. Funcţii SCILAB generale


Funcţiile SCILAB frecvent folosite sunt prezentate în tabelul 8.3.
Funcţiile SCILAB uzuale
Tabelul 8.3
Funcţia Semnificaţia
exit (quit) părăsirea sesiunii de lucru.
help funcţie afişează informaţii despre funcţia precizată
who listează numele variabilelor curente
whos listează numele variabilelor curente, dimensiunile şi tipurile lor
clc şterge conţinutul ferestrei de comenzi
clear şterge toate variabilele şi funcţiile declarate în sesiunea în curs
clear a,b şterge variabilele a şi b
size(arg) returnează dimensiunea unei matrice specificată ca argument

20
length(arg) returnează lungimea matricei (vectorului) specificată ca argument
matrix(v,m,n) remodelează matricea v, parcurgând-o pe coloane, într-o matrice de mxn (liniixcoloane)

9.2.6. Matrici
În mediul SCILAB se pot folosi matrici care în matematică sunt notate astfel:

 3 π 0 4 1
 1 2    
A=   B =  2 7 1 9 C =  2 D = [1 3 5 7] E = [7 ]

 3 4  5 8 6 3
   3
Matricile A şi B sunt de forma (mxn) – matrici propriu-zise, C şi D sunt de forma (mx1) şi,
respectiv, (1xn) – vectori, iar matricea E este de forma (1x1) – scalar.
Notaţia SCILAB pentru o matrice este de forma a(i,j), iar referirea la un element al
matricei se face prin notaţia x=a(2,2), ceea ce înseamnă x=4.
Atenţie! SCILAB este case sensitive (variabila a este diferită de variabila A).
9.2.6.1. Definirea matricilor simple
Se poate face prin:
a) Introducerea explicită a listei elementelor într-unul din formatele:
a=[1 2;3 4] sau a=[1,2;3,4];
separatorul dintre elementele unei linii este spaţiul sau virgula (,)
separatorul dintre linii este simbolul punct şi virgulă (;)
ex:
-->x=[1,2,3,4]
x=
1 2 3 4
-->y=[1;2;3;4]
y=
1
2
3
4
b) Generarea prin instrucţiuni şi funcţii
ex:
-->clear;
-->k=3;b(k)=5 //instructiune de atribuire
b =
0.
0.
5.
-->t=1:2:7 //progresie aritmetica: prim-termen:pas:ultim-termen
t =

21
1. 3. 5. 7.
-->r=rand(2,3)*17 //functie de randomizare
r =
3.5925227 0.0037593 11.311479
12.852746 5.6155606 10.68266

9.2.6.2. Matrici speciale


• zeros(m,n) defineşte matricea nulă de m linii şi n coloane;
• ones(m,n) defineşte o matrice de m linii şi n coloane având toate elementele egale
cu 1;
• eye(m,n) defineşte matricea unitate de m linii şi n coloane.
9.2.6.3. Elementele matricilor
O matrice poate conţine constante, variabile, şiruri de caractere, polinoame sau funcţii
raţionale. De exemplu:
-->x=poly(0,'x');
-->y=2*x-5;
-->a=[%pi 2^3 sin(%pi/6);y sqrt(16) -5;x abs(a(2,3)) %e]
a =
3.1415927 8 0.5
- 5 + 2x 4 - 5
x 5 2.7182818
-->b=['matrice' 'de' 'doua';'linii' 'trei' 'coloane']
b =
!matrice de doua !
! !
!linii trei coloane !
Selectarea unui element al unei matrice se face prin precizarea liniei şi a coloanei. În
exemplul de mai sus, elementul a(3,2) = abs(a(2,3)) = 5.
9.2.6.4. Operatori matriceali
Operatorii matriceali sunt prezentaţi în tabelul 8.4.
Operatori matriceali
Tabelul 8.4
Simbolul Semnificaţia
+ adunare de matrici
- scădere de matrici
* înmulţire de matrici
.* înmulţire pe componente
^ ridicare la putere prin produs de matrici
.^ ridicare la putere a componentelor
\ a \ b = a-1 . b
.\ a .\ b = (bi,j / ai,j)i,j
/ b / a = b . a-1
./ b . / a = (bi,j / ai,j)i,j
' transpunere matrice (inversarea liniilor cu coloanele)

9.2.6.5. Extinderea unei matrice pătrate


• Adăugarea liniei v ca prima sau ultima linie a matricei pătrate a:

22
-->v=[0 0 0];a=[1 2 3;4 5 6;7 8 9];
-->va=[v;a]
va =
0. 0. 0.
1. 2. 3.
4. 5. 6.
7. 8. 9.
-->av=[a;v]
av =
1. 2. 3.
4. 5. 6.
7. 8. 9.
0. 0. 0.
• Adăugarea vectorului v ca prima sau ultima coloană a matricei pătrate a:
-->vap=[v;a']'
vap =
0. 1. 2. 3.
0. 4. 5. 6.
0. 7. 8. 9.
-->apv=[a';v]'
apv =
1. 2. 3. 0.
4. 5. 6. 0.
7. 8. 9. 0.

9.2.6.6. Extinderea unei matrice oarecare


• Adăugarea vectorului v(n) ca prima sau ultima linie a matricei a(m,n):
-->a=[1 2 3;4 5 6];
-->v=[0 0 0];
-->va=[v;a]
va =
0. 0. 0.
1. 2. 3.
4. 5. 6.
-->av=[a;v]
av =
1. 2. 3.
4. 5. 6.
0. 0. 0.
• Adăugarea vectorului v(m) ca prima sau ultima coloană a matricei a(m,n):
-->a=[1 2 3;4 5 6];
-->v=[0;0]
v =
0.
0.
-->va=[v a]
va =
0. 1. 2. 3.
0. 4. 5. 6.
-->av=[a v]
av =
1. 2. 3. 0.
4. 5. 6. 0.
• Adăugarea unui element şi completarea cu zero a elementelor nedefinite:
-->a=[-1.3 sqrt(3) (2*3)/5]

23
a=
- 1.3 1.7320508 1.2
-->a(5)=abs(a(1));
-->a
a =
- 1.3 1.7320508 1.2 0. 1.3
sau:
-->b=[1 2;3 4]
b =
1. 2.
3. 4.
-->b(2,4)=6;
-->b
b =
1. 2. 0. 0.
3. 4. 0. 6.
• Construirea unei matrice din matrici mici folosite ca elemente:
-->a1=[1 2;3 4];
-->a2=[5 6;7 8];
-->a=[a1;a2]
a =
1. 2.
3. 4.
5. 6.
7. 8.
-->b=[a1 a2]
b =
1. 2. 5. 6.
3. 4. 7. 8.
sau
-->a1=[1 2 3;4 0 0];
-->a2=[5 6;7 8];
-->a=[a1;a2]
!--error 6
inconsistent row/column dimensions
-->a=[a1 a2]
a =
1. 2. 3. 5. 6.
4. 0. 0. 7. 8.
Se observă că matricile a1 şi a2 au acelaşi număr de linii, dar număr de coloane diferit. De
aceea, încercarea de a le combina pe coloane (a=[a1;a2]) se termină cu eroare.
9.2.6.7. Extragerea unei submatrice dintr-o matrice
• Extragerea unei zone compacte
Definirea zonei cuprinsă între liniile li : lf şi coloanele ci : cf se face prin expresia de forma
a(li:lf,ci:cf). Pentru extragerea tuturor liniilor sau tuturor coloanelor se folosesc expresiile de forma
a(:,ci:cf), respectiv a(li:lf,:). Exemplu:
-->a=[0 0 0 0;0 1 2 3;0 4 5 6;0 7 8 9]
a =
0. 0. 0. 0.
0. 1. 2. 3.
0. 4. 5. 6.
0. 7. 8. 9.
-->b=a(2:3,2:4)

24
b =
1. 2. 3.
4. 5. 6.
-->c=a(:,1:3)
c =
0. 0. 0.
0. 1. 2.
0. 4. 5.
0. 7. 8.
-->d=a(2:4,:)
d =
0. 1. 2. 3.
0. 4. 5. 6.
0. 7. 8. 9.
• Extragerea unei zone necompacte
Precizarea zonei a(l,c) se face prin definirea a doi vectori care conţin liniile (l) şi, respectiv,
coloanele (c) matricei a, care vor fi extrase. Exemplu:
-->a=[0 0 0 0;0 1 2 3;0 4 5 6;0 7 8 9]
a =
0. 0. 0. 0.
0. 1. 2. 3.
0. 4. 5. 6.
0. 7. 8. 9.
-->l=[1 2 4];
-->c=[2 3];
-->b=a(l,c)
b =
0. 0.
1. 2.
7. 8.
• Extragerea ultimei linii sau a ultimei coloane
Pentru extragerea ultimei linii sau ultimei coloane din matricea a se folosesc expresii de
forma a($,:), respectiv, a(:,$).
9.2.7. Liste
O listă se defineşte printr-o expresie de forma:
list(e1, e2, ...., en)
în care ei sunt obiecte SCILAB. Exemplu:
-->l=list(17,%pi,'scilab',[1 2;3 4])
l =
l(1)
17.
l(2)
3.1415927
l(3)
scilab
l(4)
1. 2.
3. 4.

9.3. Elemente de programare în SCILAB


9.3.1. Generalităţi

25
În ce priveşte editarea programelor, mediul SCILAB oferă două posibilităţi:
• Introducerea programului, linie cu linie, în fereastra de comenzi în dreptul
prompt-ului. Fiecare instrucţiune este executată şi rezultatul este afişat imediat ce s-a
terminat introducerea ei, moment marcat de apăsarea tastei Enter. Rezultatul execuţiei
nu este afişat dacă, înainte de Enter, se tastează punct şi virgulă (;).
• Deschiderea unei ferestre de editare SciPad permite introducerea programului
fără o execuţie imediată şi cu indentarea liniilor, pentru uşurarea urmăririi structurii
acestuia. După finalizare programul poate fi lansat în execuţie cu ajutorul comenzii
Load into Scilab din meniul Execute (Ctrl+l).
Comentariul trebuie precedat de două simboluri slash (//) consecutive şi poate să apară în
continuarea unei instrucţiuni sau să ocupe singur o linie a programului.
9.3.2. Instrucţiunea de atribuire
variabilă = expresie
9.3.3. Instrucţiuni condiţionale
9.3.3.1. Operatori logici şi operatori relaţionali
Pentru exprimarea condiţiilor care însoţesc instrucţiunile condiţionale se folosesc operatorii
logici şi operatorii relaţionali, prezentaţi în tabelul 8.5
Operatori logici şi operatori relaţionali
Tabelul 8.5
Operatori logici Operatori relaţionali
Simbolul Semnificaţia Simbolul Semnificaţia
& şi == =
| sau ~= ≠
~ nu <= ≤
< <
>= ≥
> >

9.3.3.2. Instrucţiunea if
if condiţie-1 [then]
instrucţiuni-1
[[elseif condiţie-2 [then]
instrucţiuni-2
...
elseif condiţie-n [then]
instrucţiuni-n]
else
instrucţiuni-n+1]
end
Cuvântul cheie then poate fi înlocuit cu Enter sau virgulă (,). Dacă este folosit, then trebuie
să apară pe aceaşi linie cu if sau elseif. Cuvântul cheie elseif poate fi despărţit în două cuvinte –
else şi if – cu condiţia ca al doilea să fie scris pe linia următoare. Exemple:
// Instructiunea IF - var.1
a=0;

26
b=rand()
if b<=.5
a=1
end;
if b>.5
a=2
end;
// Instructiunea IF - var.2
a=0;
if b<=.5
a=1
else
a=2
end;
// Instructiunea IF – cu ELSEIF
if b<.2
a=1
elseif b<.4
a=2
elseif b<.6
a=3
elseif b<.8
a=4
else
a=5
end;
b =
0.2113249
a =
1.
a =
1.
a =
2.

În programul precedent funcţia rand() generează aleator un număr subunitar strict pozitiv.
9.3.3.3. Instrucţiunile select ... case
select expresie
case expresie-1 [then]
instrucţiuni-1
[[case expresie-2 [then]
instrucţiuni-2
...
case expresie-n [then]
instrucţiuni-n]
else
instrucţiuni-n+1]
end
Cuvântul cheie then poate fi înlocuit cu Enter sau virgulă (,). Dacă este folosit, then trebuie
să apară pe aceaşi linie cu case. Exemplu:
/ Instructiunile SELECT... CASE

27
clear;clc
n=round(10*rand(1,1))
select n
case 0 then
disp(0,'n=')
case 1 then
disp(1,'n=')
case 2 then
disp(2,'n=')
case 3 then
disp(3,'n=')
case 4 then
disp(4,'n=')
case 5 then
disp(5,'n=')
case 6 then
disp(6,'n=')
case 7 then
disp(7,'n=')
case 8 then
disp(8,'n=')
else
disp(9,'n=')
end
n =
9.
n=
9.
În programul precedent expresia round(10*rand(1,1)) generează aleatoriu a un număr
întreg cuprins în intervalul [1,9]. Cuvântul cheie else putea fi înlocuit cu expresia case 9.
9.3.4. Instrucţiuni de ciclare
9.3.4.1. Instrucţiunea for
for variabilă=expresie [do]
instrucţiune, instrucţiune, ...
end
În mod obişnuit expresie este de forma n1:pas:n2 sau n1:n2, unde n1,n2 sunt variabile sau
constante care definesc valorile iniţială, respectiv, finală pentru variabilă, iar pas reprezintă
valoarea cu care este incrementată variabilă la fiecare reluare a ciclului. Dacă lipseşte din
expresie, pas are valoarea implicită 1.
Cuvântul cheie do poate fi înlocuit cu Enter sau virgulă (,). Dacă este folosit, do trebuie să
apară pe aceaşi linie cu for. Virgula este obligatorie pentru separarea instrucţiunilor scrise pe
aceeaşi linie (vezi Ex.3). Exemple:
// Instructiunea FOR
clear;clc
n=3;
// Ex.1
for i = 1:n do
for j = 1:n do
a(i,j) = 1/(i+j-1);
end;
end

28
disp(a,'Ex.1: a=')
// Ex.2
for j = 2:n-1,
a(j,j) = j;
end;
disp(a,'Ex.2: a=')
// Ex.3
disp('Ex.3: v=')
for v=a, write(6,v), end
// Ex.4
disp('Ex.4')
for l=list(1,2,'example') do
l,
end
Ex.1: a=
1. 0.5 0.3333333
0.5 0.3333333 0.25
0.3333333 0.25 0.2
Ex.2: a=
1. 0.5 0.3333333
0.5 2. 0.25
0.3333333 0.25 0.2
Ex.3: v=
1.0000000000D+00
5.0000000000D-01
3.3333333333D-01
5.0000000000D-01
2.0000000000D+00
2.5000000000D-01
3.3333333333D-01
2.5000000000D-01
2.0000000000D-01
Ex.4
l =
1.
l =
2.
l =
example

9.3.4.2. Instrucţiunea while


while condiţie=expresie [do / then / (,)]
instrucţiune, instrucţiune, ...
[else instrucţiune, instrucţiune, ...]
end
Cuvântul cheie do poate fi înlocuit cu then, virgulă (,) sau Enter. Dacă este folosit, do sau
then trebuie să apară pe aceaşi linie cu while. Virgula este obligatorie pentru separarea
instrucţiunilor scrise pe aceeaşi linie. Exemple:
// Instructiunea WHILE
clear;clc
i=0;
j=0;

29
while i<=5
j=j+1;
n=round(10*rand());
if n<=5
i=i+1;
end
end
disp(i)
disp('din')
disp(j)
6.
din
9.
numere n<=5
Instrucţiunea break realizează un salt necondiţionat la prima instrucţiune, aflată după
instrucţiunea end, care încheie instrucţiunea de ciclare.
9.4. Funcţii (subprograme) în SCILAB
9.4.1. Funcţii definite în linia de comandă
deff ('[y1, ... yn]=f(x1, ... xm)',['y1=expresie1', ... , 'yn=expresien',])
O funcţie definită în linia de comandă poate fi salvată prin comanda:
save('cale\fişier.bin',f)
Exemple:
// Functia DEFF
clear;clc
// Ex.1
disp('Ex.1')
deff('[y]=f(x)','y=2*x^2-7*x+5');
x=[1:1:9];
disp(x,'x=')
disp('f:');
f
// Ex.2
disp('Ex.2')
deff('[z]=g(u,v)','z=u+v')
deff('[z]=h(u,v)',['a=3*u+1'; 'z=4*a+u'])
u=[1 2 3 4];
v=[1 1 1 1];
disp(u,'u=',v,'v=')
disp('g:')
g
disp('h:')
h
Ex.1
x=
1. 2. 3. 4. 5. 6. 7. 8. 9.
f:
ans =
0. - 1. 2. 9. 20. 35. 54. 77. 104.
Ex.2
v=
1. 1. 1. 1.
u=

30
1. 2. 3. 4.
g:
ans =
2. 3. 4. 5.
h:
ans =
17. 30. 43. 56.

9.4.2. Funcţii definite în exterior


În fereastra SciPad se crează subprogramul:
function [y1, ... yn]=f(x1, ... xm)
instrucţiuni Scilab
care se salvează obligatoriu cu numele fişier.sci şi poate fi utilizată după încărcarea ei prin:
getf('cale\fişier.sci', 'c')
în care parametrul 'c' semnifică faptul că Scilab foloseşte în execuţie o formă compilată a
subprogramului. Dacă se utilizează 'n', atunci codul subprogramului este interpretat.
Funcţiile definite în exterior pot fi organizate în biblioteci. Astfel, funcţiile Scilab, aflate
într-un catalog localizat prin cale, pot fi reunite într-o bibliotecă prin comanda:
genlib('numeBibliotecă', 'cale')
Resursele bibliotecii pot fi utilizate după reîncărcarea ei prin:
numeBibliotecă=lib('cale')
9.5. Grafică în SCILAB
Scilab dispune de foarte multe funcţii grafice, din care prezentăm plot2d şi fplot2d.
9.5.1. Funcţia plot2d
plot2d([x,] y)
unde x şi y sunt două matrici de acelaşi tip de m linii şi n coloane.
Funcţia construieşte în fereastra grafică graficele a n curbe, care trec prin punctele:
(xi,j,yi,j)1≤i≤m jЄ{1, ... ,n}
Dacă x lipseşte, el este presupus un vector 1:n, unde n este numărul de puncte pe curbă dat
de parametrul y.
Exemple:
// Functia PLOT2D
clear;clc
x=[0:0.1:2*%pi]’;
// Ex.1 plotare simpla
plot2d(sin(x));
// Ex. 2 plotare simpla
clf()
plot2d(x,sin(x));
// Ex. 3 plotare multipla
clf()
plot2d(x,[sin(x) sin(2*x) sin(3*x)]);
// Ex. 4 plotare multipla cu 3 culori (roşu-5, albastru-2, verde-3),
cu legenda (L1,L2,L3), cu 3 marcaje principale şi 10 secundare pe x şi
pe y şi cu frame – stânga-jos (0,-2) şi dreapta-sus (2π,2)
clf()
plot2d(x,[sin(x) sin(2*x) sin(3*x)],[5,2,3],leg="L1@L2@L3",..
nax=[10,3,10,3],rect=[0,-2,2*%pi,2]);

31
9.5.2. Funcţia fplot2d
fplot2d(x, f) unde
x este un şir de numere reale;
f este o funcţie Scilab
iar rezultatul este graficul funcţiei f construit pe baza valorilor ei în punctele lui x.
Exemple:
// Functia FPLOT2D
clear;clc
x=[0:0.1:2*%pi]’;
deff("[y]=f(x)","y=sin(x)+cos(x)")
x=[0:0.1:10]*%pi/10;
fplot2d(x,f)

32

S-ar putea să vă placă și