Sunteți pe pagina 1din 95

I. PREZENTAREA GENERAL I. PREZENTAREA GENERAL I. PREZENTAREA GENERAL I.

PREZENTAREA GENERAL A PROGRAMULUI SCILAB A PROGRAMULUI SCILAB A PROGRAMULUI SCILAB A PROGRAMULUI SCILAB


I. 1. Ce este Scilab I. 1. Ce este Scilab I. 1. Ce este Scilab I. 1. Ce este Scilab- -- -ul? ul? ul? ul?

Structural, SCILAB-ul este, cu mici modificri, o variant
gratuit a MATLAB-ului avnd versiuni pentru Unix i pentru
Windows.
La adresa www.scilab.org se gsete documentaie gratuit
pe INTERNET referitoare la Scilab precum i programul
corespunztor.
Pentru nceput, Scilab-ul se poate folosi pentru efectuarea
calculelor elementare, operaiilor cu vectori i matrice (cu
elemente reale i complexe) i reprezentrilor grafice de curbe i
suprafee. De asemenea, Scilabul poate fi un mediu agreabil de
realizare a calculelor numerice pentru c dispune de o serie de
metode uzuale din acest domeniu, de exemplu:
- rezolvarea sistemelor liniare,
- calculul valorilor i vectorilor proprii,
- rezolvarea ecuaiilor difereniale,
- rezolvarea sistemelor neliniare,
- noiuni de baz din algebra liniar,
- algoritmi de optimizare
Programarea n Scilab se efectueaz destul de uor, pentru
anumite secvene mai complicate se pot folosi subprograme
realizate n C sau fortran (77). Scilab-ul include aplicaii
specifice, numite TOOLBOX-uri - colecii extinse de funcii
SCILAB care dezvolt mediul de programare de la o versiune la
alta, pentru a rezolva probleme din domenii variate.

I. 2. Mediul Scilab I. 2. Mediul Scilab I. 2. Mediul Scilab I. 2. Mediul Scilab

Mediul Scilab lucreaz cu mai multe tipuri de ferestre: o
fereastr de comenzi, o fereastr pentru fiiere sau grafice, o
fereastr pentru help. Cnd se lanseaz n execuie se deschide
implicit fereastra de comand care, conine meniurile File, Edit, File, Edit, File, Edit, File, Edit,
Preferences, Control, Editor, Applications Preferences, Control, Editor, Applications Preferences, Control, Editor, Applications Preferences, Control, Editor, Applications i ? ?? ? (help) i o bar de
butoane

unde

n fereastra de comenzi, instruciunile se scriu pe
prompterul --> i se execut apsnd Enter; instruciunile se
execut de la stanga la dreapta i de sus n jos n ordinea n care
s-au scris.

Buton Buton Buton Buton Semnificaie Semnificaie Semnificaie Semnificaie

Deschide o nou fereastr de
comand

Deschide Scipad-ul (editorul
Scilab-ului)

Deschide un fiier

Copieaz

Lipete

Schimb directorul

Consol Scilab

Alege font


Meniul File File File File conine:



unde, un fiier specificat este executat cu Exec Exec Exec Exec i ncrcat cu
Load Load Load Load.
Activat meniul Editor Editor Editor Editor face s se dechid editorul Scilab-ului
n care se pot scrie programe care se pot executa folosind
Execute/Load into Scilab Execute/Load into Scilab Execute/Load into Scilab Execute/Load into Scilab.




Folosind Scicos Scicos Scicos Scicos din Applications Applications Applications Applications se pot realiza diverse
diagrame i simulri n fereastra care se deschide.



Pentru realizarea diagramelor se pot alege obiecte folosind
opiunea Palettes Palettes Palettes Palettes din Edit Edit Edit Edit (sau clic dreapta cu mouse-ul), de
exemplu:




Se pot introduce instruciuni cu ajutorul ferestrei de dialog
obinute prin accesarea opiunii Context Context Context Context (clic dreapta cu mouse-
ul).



ntr-o fereastr asemntoare se pot edita i personaliza
graficele.




II. INTRODUCERE N S II. INTRODUCERE N S II. INTRODUCERE N S II. INTRODUCERE N SCILAB CILAB CILAB CILAB


II. II. II. II. 1. Noiuni Scilab 1. Noiuni Scilab 1. Noiuni Scilab 1. Noiuni Scilab

Scilabul este un pachet de programe de nalt performan,
dedicat calcului numeric i reprezentrilor grafice n domeniul tiinei
i ingineriei, precum i simulrilor stocastice. Matricea este
elementul de baz; cu aceasta se pot rezolva probleme fr a fi
necesar scrierea unui program ntr-un limbaj de programare.

Tabel 1. Funcii SCILAB de interes general: Tabel 1. Funcii SCILAB de interes general: Tabel 1. Funcii SCILAB de interes general: Tabel 1. Funcii SCILAB de interes general:

Denumire Denumire Denumire Denumire
funcie funcie funcie funcie
Aciune funcie Aciune funcie Aciune funcie Aciune funcie
exit, quit Comanda pentru ieirea din SCILAB
help Furnizeaz informaii on-line despre
SCILAB
who Listeaz variabilele curente
cd Schimb directorul de lucru
dir Afieaz lista directorului
clc terge fereastra de comenzi
error Afieaz mesaje de eroare
exist Verific dc o variabil sau un fiier exist
disp Afieaz o matrice sau un text
clear terge variabile i funcii
$ Indexul ultimului element al unei matrice
sau a unui vector
apropos Caut n help un cuvnt specificat
type(a) Tipul variabilei a
pause Intrerupe executia unei functii sau a unui
script



Tabel 2. Operatorii aritmetici SCILAB: Tabel 2. Operatorii aritmetici SCILAB: Tabel 2. Operatorii aritmetici SCILAB: Tabel 2. Operatorii aritmetici SCILAB:

Operaia Operaia Operaia Operaia Scalari Scalari Scalari Scalari Matrice Matrice Matrice Matrice Tablouri Tablouri Tablouri Tablouri
Priorita Priorita Priorita Priorita
tea tea tea tea
Adunare + + + 4
Scdere - - - 4
nmulire * * .* 3
mprire la stnga
\ \
.\ 3
mprire la dreapta / / ./ 3
Ridicare la putere ^ ^ .^ 2
Transpunere . 1

Tabel 3. Tabel 3. Tabel 3. Tabel 3. Operatorii relaionali SCILAB: Operatorii relaionali SCILAB: Operatorii relaionali SCILAB: Operatorii relaionali SCILAB:

Operator Operator Operator Operator
Semnificaie Semnificaie Semnificaie Semnificaie
< << < Mai mic
> >> > Mai mare
<= <= <= <= Mai mic sau egal
>= >= >= >= Mai mare sau egal
== == == == Identic
~= ~= ~= ~= Diferit

Observatie Observatie Observatie Observatie: Operatorii aritmetici au prioritate fata de operatorii
relaionali.

Tabel 4. Operato Tabel 4. Operato Tabel 4. Operato Tabel 4. Operatorii logici SCILAB: rii logici SCILAB: rii logici SCILAB: rii logici SCILAB:

Operator Operator Operator Operator Simbol SCILAB Simbol SCILAB Simbol SCILAB Simbol SCILAB Prioritatea Prioritatea Prioritatea Prioritatea
NU ~ ~~ ~ 1
I & 2
SAU | || | 3




Tabel 5. Constante uzuale SCILAB: Tabel 5. Constante uzuale SCILAB: Tabel 5. Constante uzuale SCILAB: Tabel 5. Constante uzuale SCILAB:

Constanta Constanta Constanta Constanta
Semnificaiea Semnificaiea Semnificaiea Semnificaiea
%i %i %i %i Numarul imaginar 1
%pi %pi %pi %pi
... 1415926 . 3 = == =
%e %e %e %e Constanta lui Euler
e=2.7182818...
%eps %eps %eps %eps
eps
16
10 2 . 2


%inf %inf %inf %inf

%s %s %s %s Expresie polinomiala
s=poly(0,s)
%t (%f) %t (%f) %t (%f) %t (%f) Variabila booleana true (false) true (false) true (false) true (false)

Tabel 6. Variabile SCILAB: Tabel 6. Variabile SCILAB: Tabel 6. Variabile SCILAB: Tabel 6. Variabile SCILAB:

Nr.crt. Nr.crt. Nr.crt. Nr.crt. Tipul variabilei Tipul variabilei Tipul variabilei Tipul variabilei Exemplu Exemplu Exemplu Exemplu
1. Numeric - scalar si
matrice
(real sau complex)
a=2.5; b=2.5e3
A=[1 2 3;4 5 6]
2. Sir de caractere -->sir="Acesta este un sir de
caractere";
-->length(sir)
ans = 31.
3. Boolean -->2*%t
ans = 2.
-->7*%f
ans = 0.
4. List
(list, mlist, tlist)
-->l=list(1,2,3,4,5)
l =
l(1) 1. l(2) 2. l(3) 3.
l(4) 4. l(5) 5.
5. Polinomial -->p=poly([1 2 3 4],'x','coeff')
p =
2 3
1 + 2x + 3x + 4x

Tabel 7. Funcii uzuale SCILAB: Tabel 7. Funcii uzuale SCILAB: Tabel 7. Funcii uzuale SCILAB: Tabel 7. Funcii uzuale SCILAB:

Apelarea funciei Apelarea funciei Apelarea funciei Apelarea funciei Semnificaia matematic Semnificaia matematic Semnificaia matematic Semnificaia matematic
sin(x) sin x
sinc(x)
x
x) sin(

cos(x) cos x
tan(x) tg x
cotg(x) ctg(x)
sinh(x) sh x
cosh(x) ch x
tanh(x) th x
asin(x) arcsin x
acos(x) arccos x
atan(x) arctg x
exp(x) e
x

log(x), log10(x) ln(x), lg(x)
floor(x) [x]
ceil(x) [x]+1
Re(z), Im(z) Re z, Im z
lenght(v) Numrul elem. vectorului v
size(a) Dimensiunea matricei a
max(v) Cel mai mare elem. al vect. v
min(v) Cel mai mic elem. al vect. v
sqrt(x) x

Exemple Exemple Exemple Exemple

1. S se calculeze:
a)
11
5
2 ) 21 lg( ) 5 ln( 2
4
+ +



Soluie:
-->(%pi/4)^5-sqrt(2)+log(5)-log10(21)+2^11
ans = 2047.1719
b) sin(x) sin(x) sin(x) sin(x)- -- -tg tg tg tg
2 22 2
(x)+2arctg(3x) (x)+2arctg(3x) (x)+2arctg(3x) (x)+2arctg(3x)- -- -ch(x) ch(x) ch(x) ch(x) pentru x x x x dat.

2. Fie numerele complexe z1=2+5i z1=2+5i z1=2+5i z1=2+5i si z2= z2= z2= z2=- -- -3+i 3+i 3+i 3+i, s se calculeze:
z1+z2, z1*z2, z1/z2, z1 z1+z2, z1*z2, z1/z2, z1 z1+z2, z1*z2, z1/z2, z1 z1+z2, z1*z2, z1/z2, z1
7 77 7
.
Soluie:
-->z1=2+5*%i
z1 = 2. + 5.i
-->z2=-3+%i
z2 = - 3. + i
-->z1+z2
ans = -1. + 6.i
3. S se calculeze valoarea expresiilor urmatoare pentru un x xx x dat:
a)
5
1
) sin( 2
3
+ ++ +

x
x ;
Soluie:
-->x=2; 2*sin(%pi*x)-sqrt((x^3+1)/5)
ans = - 1.3416408
b)
3
2
1
1
2






+ ++ +
x
x ;
c)
3
2
1
1
ln ) ( 2






+ ++ +
x
x arctg
Soluie:
-->x=5; 2*atan(x^2)+log(1/(x-1)^3)
ans = - 1.0972478
d) ) 1 lg( 8
5
+ ++ + x x ;
e)
3
2
2
1
1
) arcsin( 2









+ ++ +
x
x
f)
2
5
2
1
1
log sin 7






+ ++ +
x
x ;
g) ( (( ( ) )) ) 2
5
2
+ ++ +





x ch
x
tg

;
h)
2
2
1 2 3






+ ++ + + ++ + = == = x x P ;
i) ( (( ( ) )) )
8
) ln( 2 x x sh + ++ + ;

Exemplu list Exemplu list Exemplu list Exemplu list: multe obiecte n Scilab se introduc cu funciile tlist tlist tlist tlist sau
mlist mlist mlist mlist; de exemplu, dac se definete o variabil cu un anumit numr
de cmpuri, aceasta se realizeaz uor utiliznd operatorul . .. ..
Variabila x xx x de tip tlist tlist tlist tlist se definete uor astfel:
-->x.culoare=4;
-->x.valoare=rand(1,3);
-->x.nume='un_nume';
-->x
x =
culoare: 4
valoare: [0.8784126,0.1138360,0.1998338]
nume: "un_nume"

II. 2. II. 2. II. 2. II. 2. Manevrarea vectorilor i matricelor Manevrarea vectorilor i matricelor Manevrarea vectorilor i matricelor Manevrarea vectorilor i matricelor

Definirea matricelor Definirea matricelor Definirea matricelor Definirea matricelor:
Introducerea explicit a listei de elemente;
Generarea prin instruciuni i funcii;
Crearea de fiiere script;
ncrcarea din fiiere de date externe.Introducerea explicit a Introducerea explicit a Introducerea explicit a Introducerea explicit a
unei matrice unei matrice unei matrice unei matrice:
Elementele unei linii sunt separate prin virgul sau spaiu;
Lista elementelor matricei trebuie ncadrat ntre paranteze
drepte;
Liniile se separ prin punct i virgul (;).
Exemplu pentru definirea unei matrice Exemplu pentru definirea unei matrice Exemplu pentru definirea unei matrice Exemplu pentru definirea unei matrice:
-->A=[1 1 1;2 4 8;3 9 27]
Exemplu pentru definirea unui vector Exemplu pentru definirea unui vector Exemplu pentru definirea unui vector Exemplu pentru definirea unui vector:
-->b=[ 2 10 44 190]
b = ! 2. 10. 44. 190. !
Tabel 8. Funcii pentru construirea unui vector sau unei matrice tip Tabel 8. Funcii pentru construirea unui vector sau unei matrice tip Tabel 8. Funcii pentru construirea unui vector sau unei matrice tip Tabel 8. Funcii pentru construirea unui vector sau unei matrice tip

Funcia Funcia Funcia Funcia Semnificaia Semnificaia Semnificaia Semnificaia Exemplu Exemplu Exemplu Exemplu
eye Matricea
unitate
I=eye(4,4)
I =
! 1. 0. 0. !
! 0. 1. 0. !
! 0. 0. 1. !
diag Matrice
diagonal
B=diag(b)
B =
! 2. 0. 0. 0. !
! 0. 10. 0. 0. !
! 0. 0. 44. 0. !
! 0. 0. 0. 190. !
zeros Matrice cu
toate
elementele 0
-->C=zeros(3,2)
C =
! 0. 0. !

! 0. 0. !
! 0. 0. !
ones Matrice cu
toate
elementele 1
-->D=ones(2,3)
D =
! 1. 1. 1. !
! 1. 1. 1. !
rand Matrice cu
elemente
aleatoare
-->M=rand(3,4)
M =
! 0.2113249 0.3303271 0.8497452
0.0683740 !
! 0.7560439 0.6653811 0.6857310
0.5608486 !
! 0.0002211 0.6283918 0.8782165
0.6623569 !
triu Partea
triunghiular
superioar a
unei matrice
-->U=triu(D)
U =
! 1. 1. 1. !
! 0. 1. 1. !
! 0. 0. 1. !
tril Partea
triunghiular
inferioar a
unei matrice
-->V=tril(D)
V =
! 1. 0. 0. !
! 1. 1. 0. !
! 1. 1. 1. !
linspace Vector cu
incrementare
constant
ntre doua
valori
-->v=linspace(0,1,5)
v =
! 0. 0.25 0.5 0.75 1. !
Observaie: acelas lucru se obtine daca
-->x=0:0.25:1
x =
! 0. 0.25 0.5 0.75 1. !
Pentru
-->y=1:5
se obtine
y =! 1. 2. 3. 4. 5. !
poly Matrice
polinomiala
Definirea unui polinom prin radacini:
-->p=poly([1 3],'s')
p = 3 - 4s + s
2

Definirea unui polinom prin coeficienti:

-->poly([1 2],'s','c')
ans = 1 + 2s

Exemple Exemple Exemple Exemple i exrciii i exrciii i exrciii i exrciii
1. S se defineasc matricele
( ) 6 5
4 3
2 1
=

= b si a
, apoi sa se
construiasc matricea

=
6
4
2
5
3
1
c folosind matricele a aa a si b bb b.
Soluie:
-->a=[1 2;3 4];b=[5 6];
-->c=[a;b]
c =! 1. 2. !
! 3. 4. !
! 5. 6. !
2. S se construiasc matricea d dd d prin extragerea liniilor 2 22 2 i 3 33 3 din
matricea c cc c pstrnd toate coloanele (prima coloan) a matricei c cc c.
Soluie:
-->d=c(2:3,:)
d =! 3. 4. !
! 5. 6. !
3. S se calculeze suma elementelor matricei a aa a.
Soluie:
-->sum(a)
ans = 10.
4. S se calculeze a aa a
5 55 5
.
5. S se calculeze a aa a
T TT T
.
6. S se calculeze a aa a
- -- -1 11 1
.
7. S se calculeze urma matricei a aa a.
8. S se calculeze rangul matricei a aa a.
9. Fie A AA A o matrice patratic; ce reprezint diag(diag(A)) diag(diag(A)) diag(diag(A)) diag(diag(A))?
-->d=c(2:3,1)
d =! 3. !
! 5. !

10. Fie x xx x o matrice (vector), scriei instruciunea care calculeaz
matricea y yy y a carui element (i,j) (i,j) (i,j) (i,j) este egal cu f(x f(x f(x f(x
i,j i,j i,j i,j
) )) ) unde:
a) f(x) = 2x f(x) = 2x f(x) = 2x f(x) = 2x
2 22 2
- -- -3x+1; 3x+1; 3x+1; 3x+1;
Soluie:
-->x=[2 -5 7 4 -1];
-->2*x^2-3*x+1
ans =! 3. 66. 78. 21. 6. !
b) 1 3 2 ) (
2
+ ++ + = == = x x x f ;
c) f(x) = (x f(x) = (x f(x) = (x f(x) = (x- -- -1)/(x+4); 1)/(x+4); 1)/(x+4); 1)/(x+4);
Soluie:
-->(x-1)./(x+4)
ans =! 0.1666667 6. 0.5454545 0.375 - 0.6666667 !

Observaie Observaie Observaie Observaie: atenie la operaiile element cu element cnd se lucreaz
cu un vector sau o matrice; trebuie adugat un punct n faa
operatorilor de multiplicare, *, imprire, /, sau ridicare la putere, ^.
Exemplul 1 Exemplul 1 Exemplul 1 Exemplul 1: la exerciiul de mai sus dac nu se pune punctul naitea
semnului / scilabul d un raspuns eronat:
-->(x-1)/(x+4)
ans = 0.4155844
Exemplul 2 Exemplul 2 Exemplul 2 Exemplul 2: Dac se definesc dou matrice ptratice, A i B,
observai diferena dintre A*B (se nmulete matricea A cu matricea
B) i A .*B (se nmulete termen cu termen A(i,j)*B(i,j))
-->A=[1 2 3;2 3 4;3 4 5];
-->B=[5 6 7;6 7 8;7 8 9];
-->A*B
ans =
38. 44. 50.
56. 65. 74.
74. 86. 98.
-->A .*B

ans =
5. 12. 21.
12. 21. 32.
21. 32. 45.

d)
2
1
1
) (
x
x f
+ ++ +
= == =
11. S se defineasc o matrice ptratic de ordinul 5, a aa a; s se indice
matricele triunghiulare corespunzatoare acesteia (superioar,
respectiv inferioar).


II. II. II. II. 3. 3. 3. 3. Programare n Scilab Programare n Scilab Programare n Scilab Programare n Scilab


SCILAB-ul poate lucra n urmatoarele moduri:
- n modul linie de comand; fiecare linie este prelucrat imediat i
rezultatele sunt afiate;
- Cu programe coninute n fiiere. Un fiier const dintr-o succesiune de
instruciuni SCILAB, cu posibilitatea apelrii altor fiiere precum i a apelrii
recursive. Un program SCILAB poate fi scris sub forma fiierelor:
- Script Script Script Script: conine o secvent de comenzi SCILAB; se execut n
fereastra de comand prin apelarea numelui fiierului:
exec(nume_fisier) sau direct, n editorul Scilab-ului folosind
din meniul Execute opiunea Load into Scilab.Funcie Funcie Funcie Funcie: prima
linie conine cuvntul function, iar ultima linie conine cuvntul
endfunction; poate lucra cu argumente. Se pot defini mai
multe funcii n acelai fiier.

Tabel 9. Tabel 9. Tabel 9. Tabel 9. Instruciuni i funcii de control Instruciuni i funcii de control Instruciuni i funcii de control Instruciuni i funcii de control

Instruciune Instruciune Instruciune Instruciune Semnificaia Semnificaia Semnificaia Semnificaia
if Instruciune pentru execuia condiional
else Instruciune asociat cu if if if if
elseif Instruciune asociat cu if if if if
case Instruciune folosit pentru a face o alegere
for Instruciune pentru crearea ciclurilor cu
numr specificat de pai
while Instruciune pentru crearea ciclurilor cu
condiie logic
break Instruciune pentru terminarea forat ntr-
un ciclu
return Returneaz execuia la funcia precizat
error Instruciune pentru afiarea unui mesaj de
eroare
end Instruciune pentru ncheierea ciclurilor for, for, for, for,

while while while while i if if if if

Tabel 10. Sintaxa instruciunilor SCILAB Tabel 10. Sintaxa instruciunilor SCILAB Tabel 10. Sintaxa instruciunilor SCILAB Tabel 10. Sintaxa instruciunilor SCILAB
Instruciune Instruciune Instruciune Instruciune Sintax Sintax Sintax Sintax
if if expresie_logic expresie_logic expresie_logic expresie_logic grup instruciuni end
else if expresie_logic expresie_logic expresie_logic expresie_logic grup instruciuni A
else grup instruciuni B end
elseif if expresie_logic_1 expresie_logic_1 expresie_logic_1 expresie_logic_1 grup instruciuni A
elseif expresie_logic_2 expresie_logic_2 expresie_logic_2 expresie_logic_2 grup instruciuni
B end
case select expr_0
case expr_1 Instr_1
case expr_n Instr_n else Instr end
for for index = expresie \\ expresie =
iniial: pas: final
grup_instruciuni
end
while while expresie
grup_instruciuni
end

II. 3.1. Fiiere de tip script II. 3.1. Fiiere de tip script II. 3.1. Fiiere de tip script II. 3.1. Fiiere de tip script

Definirea i reprezentarea grafic a funciilor cu acolad Definirea i reprezentarea grafic a funciilor cu acolad Definirea i reprezentarea grafic a funciilor cu acolad Definirea i reprezentarea grafic a funciilor cu acolad: cu ajutorul
Scipad-ului (editorul Scilab-ului) se editeaz un fiier script care se
salveaz, de exemplu, Functie.sce i conine urmtoarele instruciuni:
a=-4;b=4;d=0.01;c=0;
x=a:d:b;
k=max(size(x));
for i=1:k
if (x(i)>=a)&(x(i)<c)
y(i)=x(i)+sin(x(i));
end
if (x(i)>=c)&(x(i)<=%pi)

y(i)=sin(x(i));
elseif (x(i)>%pi)&(x(i)<=b)
y(i)=(x(i))^1/3-%pi^1/3;
end
end
plot(x,y)

n fereastra de comand se execut fiierul folosind instruciunea:
exec('functie.sce') i se va obine ntr-o nou fereastr graficul
funciei:
( (( ( ) )) )







+ ++ +
= == =
4
0 ) sin(
0 4 ) sin(
) (
3 3
x daca x
x daca x
x daca x x
x f










Observaie: Fiierul se poate executa direct, n editorul Scilab-ului
folosind din meniul Execute opiunea Load into Scilab.
Calculul limitei irurilor definite recurent Calculul limitei irurilor definite recurent Calculul limitei irurilor definite recurent Calculul limitei irurilor definite recurent: s se calculeze limita irului
1 ,
2
2
10 , lim
2
1 1

+ ++ +
= == = = == =
+ ++ +

n
c
c
c si c unde c
n
n
n n
n
.
Se scrie programul n fiierul numit SirRecurent.sce:
x=10;
c=(2+x^2)/(2*x);
while abs(c-x)>0.00001
x=c;
c=(2+x^2)/(2*x);
-4 -3 -2 -1 0 1 2 3 4
-4
-3
-2
-1
0
1

end
c
Se lanseaz n execuie n fereastra de comand scriind:
-->exec("SirRecurent.sce")
i se obtine rezultatul:
c = 1.4142136
Exemple Exemple Exemple Exemple

1. S se genereze o matrice A, cu n linii i n+1 coloane, ale crei
elemente sunt:





= == =
= == =
= == =
rest in
j i daca
j i daca
A
, 0
1 , 1
, 2
.

Soluie:
n=10;
for i=1:n
for j=1:n+1
if i==j
A(i,j)=2;
elseif abs(i-j)==1
A(i,j)=-1;
else
A(i,j)=0;
end
end
end
A
In fereastra de comand o sa apar matricea definit mai sus
A = A = A = A =
! 2. ! 2. ! 2. ! 2. - -- - 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. !
! ! ! ! - -- - 1. 2. 1. 2. 1. 2. 1. 2. - -- - 1. 0. 0. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. 0. 0. !

! 0. ! 0. ! 0. ! 0. - -- - 1. 2. 1. 2. 1. 2. 1. 2. - -- - 1. 0. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. 0. !
! 0. ! 0. ! 0. ! 0. 0. 0. 0. 0. - -- - 1. 2. 1. 2. 1. 2. 1. 2. - -- - 1. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. 0. !
! 0. 0. 0. ! 0. 0. 0. ! 0. 0. 0. ! 0. 0. 0. - -- - 1. 2. 1. 2. 1. 2. 1. 2. - -- - 1. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. 0. !
! 0. 0. 0. 0. ! 0. 0. 0. 0. ! 0. 0. 0. 0. ! 0. 0. 0. 0. - -- - 1. 2. 1. 2. 1. 2. 1. 2. - -- - 1. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. ! 1. 0. 0. 0. 0. !
! 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. - -- - 1. 2. 1. 2. 1. 2. 1. 2. - -- - 1. 0. 1. 0. 1. 0. 1. 0. 0. 0. ! 0. 0. ! 0. 0. ! 0. 0. !
! 0. 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. 0. - -- - 1. 2. 1. 2. 1. 2. 1. 2. - -- - 1. 0. 0. ! 1. 0. 0. ! 1. 0. 0. ! 1. 0. 0. !
! 0. 0. 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. 0. 0. - -- - 1. 2. 1. 2. 1. 2. 1. 2. - -- - 1. 0. ! 1. 0. ! 1. 0. ! 1. 0. !
! 0. 0. 0. 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. 0. 0. 0. ! 0. 0. 0. 0. 0. 0. 0. 0. - -- - 1. 2. 1. 2. 1. 2. 1. 2. - -- - 1. ! 1. ! 1. ! 1. !

2. S se scrie un program utiliznd while while while while care calculeaz suma
elementelor vectorului x=(5 2 x=(5 2 x=(5 2 x=(5 2 9 10 9 10 9 10 9 10 1 9 1 9 1 9 1 9 1) 1) 1) 1) pn cnd
ntlnete un numr mai mare ca 8 88 8.
Soluie:
x=[5 2 -9 10 -1 9 -1];
s=0;
k=1;
while (x(k)<=8)&(k<=length(x))
s=s+x(k);
k=k+1;
end
s
In fereastra de comand o s apar rezultatul:
-- -- -- --> s = > s = > s = > s = - -- - 2. 2. 2. 2.
3. S se calculeze limita urmtorului ir definit recurent:
0 ,
1
1 , lim
2
1 0

+ ++ +
= == = = == =
+ ++ +

n
x
x
x si x unde x
n
n
n n
n

Soluie:
x=1;
eps=0.00001;
c=x/sqrt(x^2+1);
while abs(c-x)>eps

x=c;
c=x/sqrt(x^2+1);
end
c
In fereastra de comand o s apar rezultatul:
c = 0.0271363 c = 0.0271363 c = 0.0271363 c = 0.0271363
4. S se calculeze i s se afieze ( (( ( ) )) )

= == = = == =
+ ++ + = == =
10
1
10
1
2 3
3 1 2
k k
k k A
Solutie:
s=0;p=1;
for i=1:10
s=s+(2*i-1)^3;
p=p*3*i^2;
end
a=s+p
In fereastra de comand o s apar rezultatul:
a = 7.776D+17 a = 7.776D+17 a = 7.776D+17 a = 7.776D+17
Exerciii Exerciii Exerciii Exerciii

1. S se calculeze suma elementelor unui vector care sunt
cuprinse ntre valorile a aa a i b bb b cu a<b a<b a<b a<b.
Soluie:
v=[2 5 7 -2 5 8 0 12 32];
s=0;
a=-1;b=7;
for i=1:length(v)
if (v(i)>a)&(v(i)<b)
s=s+v(i);
end
end
s

Soluia va aparea n fereastra de comand:
--> s = 12.
2. S se calculeze produsul elementelor diferite de zero ale unui
vector.
3. Se d irul de numere x xx x
1 11 1
, x , x , x , x
2 22 2
, , x , , x , , x , , x
n nn n
. S se determine numrul de
elemente pozitive i s se calculeze produsul lor.
4. S se calculeze media aritmetic a elementelor unui vector care
sunt mai mari decat o valoare dat.
5. Se d irul de numere x xx x
1 11 1
, x , x , x , x
2 22 2
, , x , , x , , x , , x
n nn n
. S se calculeze:
- media aritmetic a numerelor pozitive;
- suma ptratelor numerelor negative
6. S se ordoneze cresctor elementele unui vector.
7. S se calculeze produsul scalar al vectorilor x = ( x x = ( x x = ( x x = ( x
1 11 1
, x , x , x , x
2 22 2
, , x , , x , , x , , x
n nn n
) )) )
i y = (y y = (y y = (y y = (y
1 11 1
, y , y , y , y
2 22 2
, ,y , ,y , ,y , ,y
n nn n
) )) ).
8. Se dau dou siruri de cte n numere: a aa a
1 11 1
, a , a , a , a
2 22 2
, , a , , a , , a , , a
n nn n
i b bb b
1 11 1
, b , b , b , b
2 22 2
, , b , , b , , b , , b
n nn n
.
S se formeze irul c cc c
1 11 1
, c , c , c , c
2 22 2
, , c , , c , , c , , c
n nn n
n care termenii se obin dup
urmtorul procedeu: pentru orice i ii i, n i , 1 = == = ,
{ }


<
+
=
0 , , max
0 ,
2
i i i i
i i
i i
i
b a daca b a
b a daca
b a
c


II. 3.2. Fiiere de tip funcie II. 3.2. Fiiere de tip funcie II. 3.2. Fiiere de tip funcie II. 3.2. Fiiere de tip funcie

Fiierele funcie Fiierele funcie Fiierele funcie Fiierele funcie sunt utilizate pentru crearea unor noi funcii
SCILAB. Forma general a unui fiier funcie este:
function [parametri_ieire] = nume_funcie (parametri_in function [parametri_ieire] = nume_funcie (parametri_in function [parametri_ieire] = nume_funcie (parametri_in function [parametri_ieire] = nume_funcie (parametri_intrare) trare) trare) trare)
..instruciuni de definire a funciei ..instruciuni de definire a funciei ..instruciuni de definire a funciei ..instruciuni de definire a funciei
endfunction endfunction endfunction endfunction
unde:
function function function function: cuvnt cheie care declar fiierul ca fiier funcie
(obligatoriu);
nume_functie nume_functie nume_functie nume_functie: numele funciei, adic numele sub care se salveaz
fiierul, fr extensie; nu poate fi identic cu cel al unui fiier
existent;
parametri_iesire parametri_iesire parametri_iesire parametri_iesire: parametrii de ieire trebuie separai cu virgul i
cuprinsi ntre paranteze drepte. Dac funcia nu are parametri de
ieire parantezele drepte i semnul egal (=) nu mai au sens;
parametri_intrare parametri_intrare parametri_intrare parametri_intrare: parametrii de intrare trebuie separai cu virgul i
cuprinsi ntre paranteze rotunde. Daca funcia nu are parametri
de intrare parantezele rotunde nu mai au sens.
endfunction endfunction endfunction endfunction: instruciunea de terminare a unei funcii.


Observaii Observaii Observaii Observaii:
Un fiier de tip funcie poate s contin mai multe funcii. Pentru
utilizarea unei funcii trebuie folosit, mai inti, comanda:
getf(NumeFunctie.sci)
Spre deosebire de fiierele script care au extensia sce, fiierele de
tip funcie au extensia sci.

Exemplul 1: Exemplul 1: Exemplul 1: Exemplul 1:

Calculul factorialului: se vor defini n acelai fiier (functii.sci) dou
funcii care calculeaz factorialul unui numr dat; prima nu verific
dac argumentul este ntreg pozitiv, a doua funcie face acest lucru
nainte de a face calculul
function [f]=factorial(n)
f=prod(1:n)
endfunction

function [f]=factorial1(n)
//dac n nu este ntreg i pozitiv se transmite un mesaj de
eroare,
//apoi se transform numrul ntr-un numr ntreg pozitiv
if (n-floor(n)~=0)|n<0 then
n=floor(abs(n))
warning('argumentul nu este ntreg pozitiv; se va calcula
'+sprintf("%d",n)+"!")
end
f=prod(1:n)
endfunction
n fereastra de comand se vor folosi aceste funcii astfel:
-->getf('functii.sci')
-->factorial(5)
ans = 120.
-->factorial(0.5)
ans = 1.
-->factorial(-0.5)
ans = 1.
Dac argumentul nu este ntreg i pozitiv funcia factorial ntoarce un
rezultat oarecare, 1. Dac vom folosi funcia factorial1 se va obine:
-->factorial1(5)
ans = 120.
-->factorial1(0.5)

WARNING:argumentul nu este ntreg pozitiv; se va calcula 0!
ans = 1.
-->factorial1(-5)
WARNING:argumentul nu este ntreg pozitiv; se va calcula 5!
ans = 120.
Recursivitate Recursivitate Recursivitate Recursivitate: o funcie se poate apela pe ea nsi.
Exemplul 2 Exemplul 2 Exemplul 2 Exemplul 2: calculul factorialului recursiv

function [f]=fact(n)
if n<=1 then
f=1
else
f=n*fact(n-1)
end
endfunction

Exemplul 3 Exemplul 3 Exemplul 3 Exemplul 3: exemplul urmtor calculeaz polinoamele Chebyshev
care verific relaia de recuren: ) ( ) ( 2 ) (
1 1
x T x xT x T
n n n + ++ +
= == = .
function ch=chebyshev(x,n)
if n==0
ch=1;
elseif n==1
ch=x;
else
ch=2*x*chebyshev(x,n-1)-chebyshev(x,n-2);
end
endfunction

Observaie Observaie Observaie Observaie: O funcie se poate defini direct prin intermediul comenzii
deff deff deff deff
deff([y1, y2,, ]=nume_functie(x1, x2, ),text)

Exemplu Exemplu Exemplu Exemplu: deff([y]=f(x),y=sin(x).*cos(x))

Exerciii Exerciii Exerciii Exerciii

1. S se calculeze i s se afieze suma ptratelor elementelor mai
mari decat 1 ale unei matrice ptratice.
Soluie:
function [s]=sumaP(a)
[m,n]=size(a)
s=0;
for i=1:m
for j=1:n
if a(i,j)>=1
s=s+a(i,j)^2
end
end
end
endfunction
2. S se calculeze media aritmetic a elementelor de pe diagonala
principal a unei matrice ptratice de ordinul n nn n, cu n<10 n<10 n<10 n<10
Soluie:
function [ma]=media(a)
n=size(a,'r')
ma=0;
for i=1:n
ma=ma+a(i,i)
end
ma=ma/n
endfunction

3. S se determine valorile maxime i minime ale unui vector i
ale unei matrice, apoi s se determine i indicele (poziia
acestora).
Soluie:
-->a=ceil(10*rand(3,3))
a =
! 3. 4. 9. !
! 8. 7. 7. !
! 1. 7. 9. !
-->[m,n]=max(a)
n =
! 1. 3. !
m =
9.
-->[mi,p]=min(a)
p =
! 3. 1. !
mi = 1.
4. S se determine valorile i vectorii proprii ale matricei













2 1 0
1 2 1
0 1 2
.
Soluie:
In determinarea soluiilor nebanale ale ecuaiei x Ax = == = unde:
A AA A este o matrice patratic de ordinul n,
x xx x este vector coloan de ordinul n, iar
- este un scalar,
valorile x, x, x, x, respectiv , care satisfac ecuaia de mai sus se numesc
vectori proprii respectiv valori proprii.
-->a=[-2 1 0;1 -2 1;0 1 -2];
-->[v,d]=spec(a)
d =! - 3.4142136 0. 0. !

! 0. - 2. 0. !
! 0. 0. - 0.5857864 !
v =! 0.5 - 0.7071068 - 0.5 !
! - 0.7071068 2.082D-17 - 0.7071068 !
! 0.5 0.7071068 - 0.5 !
5. S se calculeze suma elementelor diferite de o valoare dat, v,
ale unei matrice.
Soluie:
function [s]=sdv(a,v)
[m,n]=size(a)
s=0;
for i=1:m
for j=1:n
if a(i,j)~=v
s=s+a(i,j)
end
end
end
endfunction
6. S se determine elementul maxim al unui matrice de numere
reale.
7. S se calculeze produsul elementelor diferite de zero de pe
diagonala principal (secundar) ale unei matrice.
Soluie:
function [p]=prodDS(a)
n=size(a,'c')
p=1;
for i=1:n
if a(i,n-i+1)~=0
p=p*a(i,n-i+1)
end
end

endfunction
8. S se calculeze suma elementelor unei matrice situate deasupra
(dedesubtul) diagonalei principale (secundare).
Soluie:
function [s]=sdeasupra(a)
n=size(a,'r')
s=0;
for i=1:n-1
for j=i+1:n
s=s+a(i,j)
end
end
endfunction
9. S se realizeze un program care calculeaz produsul a dou
matrice.
Solutie:
function [c]=f(a,b)
[m,n]=size(a)
[n,p]=size(b)
for i=1:m
for j=1:p
c(i,j)=0
for k=1:n
c(i,j)=c(i,j)+a(i,k)*b(k,j)
end
end
end
endfunction
10. S se determine numrul de coloane cu toate elementele
negative dintr-o matrice de tip m n .
Solutie:
function [cn]=colneg(a)

[m,n]=size(a);
cn=0;
j=1;
while j<n
for i=1:m
if a(i,j)>0
j=j+1;
i=1;
else
i=i+1;
if i>m
cn=cn+1;
j=j+1;
end
end
end
end
endfunction
11. S se determine o linie a unei matrice de tip n m care
conine elementul a crui valoare absolut este mai mare dect
toate celelalte elemente ale matricei.
Solutie:
function [L]=linie(a)
[m,n]=size(a)
v=a(1,1)
for i=1:m
for j=1:n
if abs(a(i,j))>v
L=i
end
end
end

endfunction
12. Se dau numerele a i j
ij
, , ,..., ; , , ..., = = 1 2 100 1 2 50 si b j
j
= 1 2 50 , , ..., . S
se realizeze un program care calculeaz: c a b i
i ij j
j
= =
=
, , ,..., 1 2 100
1
50
.
Soluie:
function [c]=f(a,b)
[m,n]=size(a)
for i=1:m
c(i)=0
for j=1:n
c(i)=c(i)+a(i,j)*b(j)
end
end
endfunction


III. 1. Rezolvarea ecuaiilor III. 1. Rezolvarea ecuaiilor III. 1. Rezolvarea ecuaiilor III. 1. Rezolvarea ecuaiilor

III III III III. 1.1. Rezolvarea ecuaiilor algebrice . 1.1. Rezolvarea ecuaiilor algebrice . 1.1. Rezolvarea ecuaiilor algebrice . 1.1. Rezolvarea ecuaiilor algebrice

Forma canonic a unei ecuaii algebrice este:
0 ...
0 1
1
1
= == = + ++ + + ++ + + ++ + + ++ +


a x a x a x a
n
n
n
n

unde n nn n este gradul polinomului (pentru a rezolva ecuaia n Scilab
) 100 n i
k
a sunt coeficienii polinomului care pot fi numere reale
sau complexe.
Pentru a rezolva o ecuaie algebric mai nti, se definete
expresia polinomului cu ajutorul funciei poly poly poly poly apoi, cu ajutorul
funciei root root root roots s s s se determin rdcinile ecuaiei.

Exemplu Exemplu Exemplu Exemplu: S se rezolve ecuaia 0 20 22 12
2 3 4
= == = + ++ + x x x x .

-->p=poly([0,-20,22,-12,1],'x','coef')
p =
2 3 4
- 20x + 22x - 12x + x
-->sol=roots(p)
sol =
! 0 !
! 1. + i !
! 1. - i !
! 10. !

III. 1.2. Rezolvarea ecuaiilor transcendente III. 1.2. Rezolvarea ecuaiilor transcendente III. 1.2. Rezolvarea ecuaiilor transcendente III. 1.2. Rezolvarea ecuaiilor transcendente

Orice ecuaie se poate scrie sub forma f(x) = g(x) f(x) = g(x) f(x) = g(x) f(x) = g(x) echivalent
cu f(x) f(x) f(x) f(x) g(x) = 0 g(x) = 0 g(x) = 0 g(x) = 0. Dup ce se reprezint grafic funcia f(x) f(x) f(x) f(x) g(x) g(x) g(x) g(x) pe

intervalul de interes putem s evalum valorile aproximative n care
funcia se anuleaz. Se alege drept valoare iniial pentru x xx x valoarea
pentru care, conform graficului, funcia se anuleaz. Pentru a
determina soluia ecuaiei se apeleaz funcia fsolve fsolve fsolve fsolve a Scilab-ului.
Exemplu Exemplu Exemplu Exemplu: S se resolve ecuaia x x 2 1 ) sin( = == =
--> x=0:0.1:2;
--> y1=sin(x);
--> y2=1-2.*x;
--> plot(x,y1-y2)
Se va obine urmtorul grafic:
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0
-3.0
-2.5
-2.0
-1.5
-1.0
-0.5
0.0
0.5
1.0

Se observ c soluia ecuaiei se afl aproape de x = 0.3; pentru
aflarea soluiei cu o eroare dat se va folosi urmtoarea secven:
function y=f(x)
y=sin(x)+2.*x-1
endfunction
[s]=fsolve(0.3,f,10^(-10))

obinndu-se pentru soluie valoarea: s = 0.3354180 s = 0.3354180 s = 0.3354180 s = 0.3354180
Pentru verificare se calculeaz f(s) care se obine n acest caz 0.

Exerciii Exerciii Exerciii Exerciii: Sa se rezolve urmatoarele ecuatii:
1. x
4
-2x
3
-x+2=0;
2. x
3
+3x+1=0;
3.
x
e x 2 ) 1 (
2
;
4. | || |

| || |

\ \\ \
| || |

2
cos 2
x
x .

III. 2. Rezolvarea sistemelor de ecuaii liniar III. 2. Rezolvarea sistemelor de ecuaii liniar III. 2. Rezolvarea sistemelor de ecuaii liniar III. 2. Rezolvarea sistemelor de ecuaii liniare ee e
S se rezolve urmtoarele sisteme liniare de ecuaii:
a) a) a) a)







= == = + ++ + + ++ +
= == = + ++ + + ++ +
= == = + ++ +
= == = + ++ +
9 9
8 9
19 9
18 9
4 3 2
4 3 1
4 2 1
3 2 1
x x x
x x x
x x x
x x x
b) b) b) b)







= == = + ++ + + ++ + + ++ +
= == = + ++ + + ++ + + ++ +
= == = + ++ + + ++ + + ++ +
= == = + ++ + + ++ + + ++ +
14 3 2 4
13 2 4 3
12 4 3 2
11 4 3 2
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
x x x x
x x x x
x x x x
x x x x

Solutie; rezolvarea sistemului de la punctual a) in Scilab
-->a=[9 1 -1 0;1 9 0 -1;-1 0 9 1;0 -1 1 9]; b=[18;19;8;9];
-->x=a^(-1)*b
x =! 1.8831169 !
! 2.025974 !
! 0.9740260 !
! 1.1168831 !
1. S se calculeze factorul Cholesky al matricei:
| || |
| || |
| || |
| || |
| || |

| || |





\ \\ \
| || |




= == =
9 1 1 0
1 9 0 1
1 0 9 1
0 1 1 9
A
;
Factorizarea Cholesky const n descompunera matricei ntr-un
produs de forma A=R A=R A=R A=R
t tt t
R; (R=chol(A)) R; (R=chol(A)) R; (R=chol(A)) R; (R=chol(A)) apoi s se rezolve sistemul de la
ex.1 punctul a.
Solutie:
-->a=[9 1 -1 0;1 9 0 -1;-1 0 9 1;0 -1 1 9]; b=[18;19;8;9];

-->R=chol(a)
R =! 3. 0.3333333 - 0.3333333 0. !
! 0. 2.981424 0.0372678 - 0.3354102 !
! 0. 0. 2.981191 0.3396294 !
! 0. 0. 0. 2.9617819 !
-->y=(R')^(-1)*b
y =! 6. !
! 5.7019733 !
! 3.2830838 !
! 3.3079642 !
-->x=R^(-1)*y
x =! 1.8831169 !
! 2.025974 !
! 0.9740260 !
! 1.1168831 !

2. S se factorizeze LU (lower upper) matricea:
| || |
| || |
| || |
| || |
| || |

| || |





\ \\ \
| || |




= == =
9 1 1 0
1 9 0 1
1 0 9 1
0 1 1 9
A
;
Factorizarea LU: o matrice ptrat este descompus sub forma
produsului a dou matrice triunghiulare, una inferior triunghiular, cu
elemente 1 pe diagonala principal i cealalt superior triunghiular
([L,U]=lu(A) [L,U]=lu(A) [L,U]=lu(A) [L,U]=lu(A)) apoi s se rezolve sistemul de la ex.1 punctul a.
Solutie:
-->a=[9 1 -1 0;1 9 0 -1;-1 0 9 1;0 -1 1 9]; b=[18;19;8;9];
-->[L U]=lu(a)
U =! 9. 1. - 1. 0. !
! 0. 8.8888889 0.1111111 - 1. !
! 0. 0. 8.8875 1.0125 !
! 0. 0. 0. 8.7721519 !
L =! 1. 0. 0. 0. !

! 0.1111111 1. 0. 0. !
! - 0.1111111 0.0125 1. 0. !
! 0. - 0.1125 0.1139241 1. !
-->y=L^(-1)*b
y =! 18. !
! 17. !
! 9.7875 !
! 9.7974684 !
-->x=U^(-1)*y
x =! 1.8831169 !
! 2.025974 !
! 0.9740260 !
! 1.1168831 !

III. 3 III. 3 III. 3 III. 3. Rezolvarea sistemelor de ecuaii . Rezolvarea sistemelor de ecuaii . Rezolvarea sistemelor de ecuaii . Rezolvarea sistemelor de ecuaii ne ne ne neliniar liniar liniar liniare ee e
Fie sistemul





= == = + ++ +
= == = + ++ + + ++ + + ++ + + ++ +
0 5 , 3 2
0 4 ) sin(
3 2
2 2
ay x
a x x y axy x

S se rezolve sistemul pentru a=1 folosind ca punct de start (1,1).

Rezolvarea cu funcia fsolve fsolve fsolve fsolve a SCILAB-ului:
function y=f(x)
y=zeros(2,1);
y(1)=x(1)^2+x(1)*x(2)+x(2)^2+x(1)+sin(x(1))-4;
y(2)=2*x(1)^2+x(2)^3-3.5;
endfunction
[s]=fsolve([1;1],f,0.0001)

Se obtine rezultatul:
s =! 0.4905521 ! s =! 0.4905521 ! s =! 0.4905521 ! s =! 0.4905521 !
! 1.4452428 ! 1.4452428 ! 1.4452428 ! 1.4452428 ! ! ! !



Utilizarea Calculatoarelor: Utilizarea Calculatoarelor: Utilizarea Calculatoarelor: Utilizarea Calculatoarelor: L LL Laboratoarele aboratoarele aboratoarele aboratoarele 6 si 7 6 si 7 6 si 7 6 si 7
Reprezentri grafice n Scilab Reprezentri grafice n Scilab Reprezentri grafice n Scilab Reprezentri grafice n Scilab

Tabel: Tabel: Tabel: Tabel: Reprezentri grafice n SCIL Reprezentri grafice n SCIL Reprezentri grafice n SCIL Reprezentri grafice n SCILAB: AB: AB: AB:
Funcia Funcia Funcia Funcia Semnificaia Semnificaia Semnificaia Semnificaia
plot plot plot plot Reprezint grafic o curba n 2D unind punctele
de coordonate (x,y)
plot2d plot2d plot2d plot2d Reprezint grafic o funcie n 2D
fplot2d fplot2d fplot2d fplot2d Reprezint grafic o funcie n 2D definite
anterior
paramfplot2d paramfplot2d paramfplot2d paramfplot2d Reprezint grafic cu animaie o funcie n 2D
plot3d plot3d plot3d plot3d Reprezint grafic o suprafa n 3D
contour2d contour2d contour2d contour2d Reprezint grafic liniile de contur n2D
contour contour contour contour Reprezint grafic liniile de contur ale unei
suprafee

Observaie Observaie Observaie Observaie: Instruciunea plot va desena ntr-o alt fereastr
graficul; pentru mai multe informaii i exemple tastai n fereastra
de comand: apropos Graphics.
Exemplu plot Exemplu plot Exemplu plot Exemplu plot
x=linspace(0,2*%pi,101);
y=exp(x).*sin(4*x);
plot(x,y,'x','y','y=exp(x)*sin(4x)')









0 1 2 3 4 5 6 7
-400
-300
-200
-100
0
100
200
y=exp(x)*si n(4x)
x
y

Exemplu plot2d Exemplu plot2d Exemplu plot2d Exemplu plot2d

t=(0:0.1:6*%pi);
plot2d(t',sin(t)');
xtitle('plot2d and xgrid ','t','sin(t)');
xgrid();
0 2 4 6 8 10 12 14 16 18 20
-1.0
-0.8
-0.6
-0.4
-0.2
0.0
0.2
0.4
0.6
0.8
1.0
pl ot2d and xgri d
t
si n(t)

Variante ale instruciunii Variante ale instruciunii Variante ale instruciunii Variante ale instruciunii plot2d plot2d plot2d plot2d: :: : plot2d2, plot2d3 plot2d2, plot2d3 plot2d2, plot2d3 plot2d2, plot2d3

Aceste instruciuni se utilizeaz exact ca plot2d plot2d plot2d plot2d: se folosete
aceeai sintax i aceleai argumente opionale.
plot2d2 plot2d2 plot2d2 plot2d2: permite desenarea unei funcii n scar; n loc s
traseze un segment de dreapt ntre punctele ( (( ( ) )) )
i i
y x , i
( (( ( ) )) )
1 1
,
+ ++ + + ++ + i i
y x , plot2d2 plot2d2 plot2d2 plot2d2 traseaz un segment orinzontal ntre ( (( ( ) )) )
i i
y x ,
i ( (( ( ) )) )
i i
y x ,
1 + ++ +
, apoi un segment vertical ntre ( (( ( ) )) )
i i
y x ,
1 + ++ +
i ( (( ( ) )) )
1 1
,
+ ++ + + ++ + i i
y x .

Exemplu Exemplu Exemplu Exemplu:
n=10;
x=(0:n)';
y=x;
xbasc()
plot2d2(x,y,style=2,frameflag=5,rect=[0,-1,n+1,n+1])
xtitle("Exemplu de grafic cu plot2d2")

0 2 4 6 8 10 12
-1
1
3
5
7
9
11
Exempl u de grafi c cu pl ot2d2

plot2d3 plot2d3 plot2d3 plot2d3 deseneaz diagrame cu bare verticale: pentru fiecare
punct ( (( ( ) )) )
i i
y x , plot2d plot2d plot2d plot2d3 33 3 traseaz un segment vertical ntre ( (( ( ) )) ) 0 ,
i
x
i ( (( ( ) )) )
i i
y x , . .. .

Exemplu Exemplu Exemplu Exemplu:
n=6;
x=(0:n)';
y=binomial(0.5,n)';
xbasc()
plot2d3(x,y,style=2,frameflag=5,rect=[-1,0,n+1,0.32])
xtitle("Exemplu de grafic cu plot2d3")
-1 0 1 2 3 4 5 6 7
0.00
0.04
0.08
0.12
0.16
0.20
0.24
0.28
0.32
Exempl u de grafi c cu pl ot2d3


Exemplu Exemplu Exemplu Exemplu fplot2d fplot2d fplot2d fplot2d
deff("[y]=f(x)","y=sin(x)+cos(x)")
x=[0:0.1:10]*%pi/10;
fplot2d(x,f)
clf();
fplot2d(1:10,'parab')










Exemplu Exemplu Exemplu Exemplu paramfplot2d paramfplot2d paramfplot2d paramfplot2d
deff('y=f(x,t)','y=t*sin(x)')
x=linspace(0,2*%pi,50);theta=0:0.05:1;
paramfplot2d(f,x,theta);
0 1 2 3 4 5 6 7
-1.0
-0.8
-0.6
-0.4
-0.2
0.0
0.2
0.4
0.6
0.8
1.0

1 2 3 4 5 6 7 8 9 10
0
10
20
30
40
50
60
70
80
90
100

Trasarea pe acelai grafic a mai m Trasarea pe acelai grafic a mai m Trasarea pe acelai grafic a mai m Trasarea pe acelai grafic a mai multor curbe care nu au acelai ultor curbe care nu au acelai ultor curbe care nu au acelai ultor curbe care nu au acelai
numr de puncte numr de puncte numr de puncte numr de puncte

x1=linspace(0,1,61)';
x2=linspace(0,1,31)';
x3=linspace(0.1,0.9,12)';
y1=x1.*(1-x1).*cos(2*%pi*x1);
y2=x2.*(1-x2);
y3=x3.*(1-x3)+0.1*(rand(x3)-0.5);//la fel cu y2 dar cu o mica
perturbatie
ymin=min([y1;y2;y3]);ymax=max([y1;y2;y3]);
dy=(ymax-ymin)*0.05;
dreptunghi=[0,ymin-dy,1,ymax+dy];
xbasc()
plot2d(x1,y1,style=1,frameflag=5,rect=dreptunghi)
plot2d(x2,y2,style=2,frameflag=0)
plot2d(x3,y3,style=-1,frameflag=0)
xtitle("Mai multe curbe pe acelasi grafic")

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
-0.3
-0.2
-0.1
0.0
0.1
0.2
0.3
0.4
Mai mul te curbe pe acel asi grafi c
+
+
+
+
+
+
+
+
+
+
+
+


Exe Exe Exe Exemplu mplu mplu mplu plot3d plot3d plot3d plot3d
t=[0:0.3:2*%pi]';
z=sin(t)*cos(t');
plot3d(t,t,z)
-1.0
0
1.0
Z
0
1
2
3
4
5
6
X
0
1
2
3
4
5
6
Y

Exemplu Exemplu Exemplu Exemplu plot3d1 plot3d1 plot3d1 plot3d1: coloreaz numai dup valorile lui z zz z
x=linspace(0,2*%pi,31);
z=cos(x)'*cos(x);
C=hotcolormap(32);
xset("colormap",C)
xset("hidden3d",30)
xbasc()
plot3d1(x,x,z,flag=[1 4 4])
-1.0
0
1.0
Z
0
1
2
3
4
5
6
7
X
0
1
2
3
4
5
6
7
Y


Exemplu Exemplu Exemplu Exemplu: Reprezentarea color, n plan a liniilor de contur ale unei
suprafee folosind Sgrayplot:
x=-10:10; y=-10:10;m =rand(21,21);
Sgrayplot(x,y,m,"111",[-20,-20,20,20])
t=-%pi:0.1:%pi; m=sin(t)'*cos(t);clf()
Sgrayplot(t,t,m)









Exemplu Exemplu Exemplu Exemplu: Reprezentarea liniilor de contur n plan a unei suprafee
contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11])
xset("fpf","%.2f")
clf()
contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11])
0.0 2.2 4.4 6.6 8.8 11.0
0.0
2.2
4.4
6.6
8.8
11.0
0.17
0.17
0.17
0.17
0.17
0.17
0.17
0.17
0.17
0.17
0.33
0.33
0.33
0.33
0.33
0.33
0.33
0.33
0.33
0.33
0.33
0.33
0.33
0.33
0.33
0.50
0.50
0.50
0.50 0.50
0.50
0.50
0.50
0.50
0.50
0.50
0.66
0.66
0.66
0.66
0.66
0.66
0.66
0.66
0.66
0.66
0.66
0.66
0.66
0.66
0.66
0.83
0.83
0.83
0.83
0.83
0.83
0.83

-3 -2 -1 0 1 2 3
-3
-2
-1
0
1
2
3
+

Exemplu Exemplu Exemplu Exemplu contour contour contour contour

t=%pi*[-10:10]/10;
deff("[z]=surf(x,y)","z=sin(x)*cos(y)"); z=feval(t,t,surf);
rect=[-%pi,%pi,-%pi,%pi,-1,1];
contour(t,t,z,10,35,45," ",[0,1,0],rect)
xset("fpf","%.2f") ;xbasc()
contour(t,t,z,10,flag=[0,1,0],ebox=rect)








Reprezentri grafice n plan Reprezentri grafice n plan Reprezentri grafice n plan Reprezentri grafice n plan

1. S se defineasc urmatoarele funcii cu acolad:




< << <
= == =
4 0 ,
0 4 ,
) (
x x
x x
x f
si
{ {{ { } }} } { {{ { } }} }




< << <
= == =
4 4 ), 5 cos(
10 4 4 10 ), sin(
) (
x x
x x x
x f
i s se reprezinte grafic.
Soluie
function [y]=f(x)
y=abs(x)
endfunction
x=linspace(-10,10,100);
plot2d(x,f(x))
xtitle('Reprezentarea grafica a functiei modul')

-10 -8 -6 -4 -2 0 2 4 6 8 10
0
1
2
3
4
5
6
7
8
9
10
Reprezentarea grafi ca a functi ei modul

2. S se reprezinte grafic conturul liniilor de nivel ale funciei
3 2 , 2 2
2 2
= == =

y x domeniul in e x z
y x
.
Soluie
x=linspace(-2,2,10);
y=linspace(-2,3,10);
for i=1:10
for j=1:10
z(i,j)=x(i)*exp(-x(i)^2-y(j)^2);
end
end
contour2d(x,y,z,10)
-2.0 -1.6 -1.2 -0.8 -0.4 0.0 0.4 0.8 1.2 1.6 2.0
-1.7
-1.3
-0.9
-0.5
-0.1
0.3
0.7
1.1
1.5
1.9
-0.333
-0.259
-0.185
-0.111
-0.037
0.037
0.111
0.185
0.259

3. Folosind ecuaiile parametrice s se reprezinte grafic n plan
urmatoarele curbe:

a) cercul:
2 2 2
) ( ) ( r b y a x = == = + ++ + ; ] 2 , 0 [ ,
) sin(
) cos(




+ ++ + = == =
+ ++ + = == =
t
t r b y
t r a x

Soluie
coordonate polare:
a=1;b=2;r=2;
t=linspace(0,2*%pi,100);
x=r*cos(t)+a;
y=r*sin(t)+b;
plot2d(x,y,frameflag=4,axesflag=5)
Reprezentarea grafic a cercului de centru (1, 2) i raz 2:
coordinate polare
-1.60 -0.73 0.13 1.00 1.87 2.73 3.60
0.0
0.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0


b) elipsa: 1
2
2
2
2
= == = + ++ +
b
y
a
x
; ] 2 , 0 [ ,
) sin(
) cos(




= == =
= == =
t
t b y
t a x


Soluie
a=2;b=1;
t=linspace(0,2*%pi,100);
x=a*cos(t);
y=b*sin(t);
plot2d(x,y,frameflag=4,axesflag=5)




1.200 1.660 2.120 2.580 3.040 3.500
-0.9
-0.7
-0.5
-0.3
-0.1
0.1
0.3
0.5
0.7
0.9
Reprezentarea grafic a elipsei
-2.0 -1.6 -1.2 -0.8 -0.4 0.0 0.4 0.8 1.2 1.6 2.0
-1.500
-1.071
-0.643
-0.214
0.214
0.643
1.071
1.500

c) hiperbola: 1
2
2
2
2
= == =
b
y
a
x
; ]
4
,
4
[ ,
) (
) (




= == =
= == =
t
t bsh y
t ach x
(ramura din dreapta)
Soluie
a=2;b=1;
t=linspace(-%pi/4,%pi/4,100);
x=a*cosh(t);
y=b*sinh(t);
plot2d(x,y,frameflag=4,axesflag=5)
Reprezentarea grafic a hiperbolei, ramura din dreapta









d) astroda:
3
2
3
2
3
2
a y x = == = + ++ + ; ] 2 , 0 [ ,
) ( sin
) ( cos
3
3






= == =
= == =
t
t a y
t a x



Soluie
a=2;
t=linspace(0,2*%pi,100);
x=a*(cos(t))^3;
y=a*(sin(t))^3;
plot2d(x,y,frameflag=4,axesflag=5)
-2.60 -1.73 -0.87 0.00 0.87 1.73 2.60
-2.0
-1.6
-1.2
-0.8
-0.4
0.0
0.4
0.8
1.2
1.6
2.0

e) cicloda: ] 4 , 0 [ ,
) cos( 1 (
)) sin( (




= == =
= == =
t
t a y
t t a x

Soluie
a=2;
t=linspace(0,4*%pi,100);
x=a*(t-sin(t));
y=a*(1-cos(t));
plot2d(x,y,frameflag=4,axesflag=5)
Reprezentarea grafic a ciclodei







0 4 8 12 16 20 24 28
-8.50
-5.00
-1.50
2.00
5.50
9.00
12.50

f) cardioda: ] 2 , 0 [ ,
)) 2 sin( ) sin( 2 (
)) 2 cos( ) cos( 2 (




= == =
= == =
t
t t a y
t t a x

Soluie
a=2;
t=linspace(0,2*%pi,100);
x=a*(2*cos(t)-cos(2*t));
y=a*(2*sin(t)-sin(2*t));
plot2d(x,y,frameflag=4,axesflag=5)
Reprezentarea grafic a cardiodei
-9.00 -6.86 -4.71 -2.57 -0.43 1.71 3.86 6.00
-6
-4
-2
0
2
4
6

g) lemniscata lui Bernoulli: [ ] 2 , 0 ,
) sin( ) 2 cos(
) cos( ) 2 cos(

=
=
t
t t a y
t t a x

Soluie
a=2;
t=linspace(0,2*%pi,100);
x=a*sqrt(cos(2*t)).*cos(t);
y=a*sqrt(cos(2*t)).*sin(t);
plot2d(x,y,frameflag=4,axesflag=5)
Reprezentarea grafic a lemniscatei lui Bernoulli

-2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0
-1.5
-1.0
-0.5
0.0
0.5
1.0
1.5

Reprezentri grafice n spaiu Reprezentri grafice n spaiu Reprezentri grafice n spaiu Reprezentri grafice n spaiu

1. S se reprezinte grafic n 3D liniile de contur ale funciilor
a. z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2)
Soluie
t=linspace(-3,3,100);
deff("[z]=surf(x,y)","z =3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)");
z=feval(t,t,surf);
rect=[-3,3,-3,3,-2,2];
xset("fpf","%.2f")
xbasc()
contour(t,t,z,10,flag=[0,1,0],ebox=rect)










b. z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3
- y.^5).*exp(-x.^2-y.^2) - 1/3*exp(-(x+1).^2 - y.^2)
2. S se reprezinte grafic n 3D funcia ] 3 , 3 [ , ,
2 2
+ ++ + = == = y x y x z .
Soluie
x=linspace(-3,3,100);
y=linspace(-3,3,100);
for i=1:length(x)
for j=1:length(y)
z(i,j)=x(i)^2+y(j)^2;
end
end
plot3d(x,y,z)

3. S se reprezinte grafic n 3D urmatoarele cuadrice:
a. Sfera: 4
2 2 2
= == = + ++ + + ++ + z y x
Soluie
u=linspace(0,2*%pi,100);
v=linspace(0,%pi,100);
r=4;
for i=1:length(u)
for j=1:length(v)

x(i,j)=r*sin(v(j))*cos(u(i));
y(i,j)=r*sin(u(i))*sin(v(j));
z(i,j)=r*cos(v(j));
end
end
plot3d(x,y,z)

b. Elipsoidul: 1
16 9 4
2 2 2
= == = + ++ + + ++ +
z y x

Soluie
u=linspace(0,2*%pi,100);
v=linspace(0,%pi,100);
a=2;b=3;c=4;
for i=1:length(u)
for j=1:length(v)
x(i,j)=a*sin(v(j))*cos(u(i));
y(i,j)=b*sin(u(i))*sin(v(j));
z(i,j)=c*cos(v(j));
end

end
plot3d(x,y,z)


c. hiperboloidul cu o panz: 1
16 9 4
2 2 2
= == = + ++ +
z y x

d. hiperboloidul cu dou panze: 0 1
16 9 4
2 2 2
= == = + ++ + + ++ +
z y x

e. paraboloidul eliptic: z
y
x 2
4
2
2
= == = + ++ +
Soluie
h=10;
u=linspace(0,2*%pi,100);
v=linspace(0,h,100);
a=2;
for i=1:length(u)
for j=1:length(v)
x(i,j)=v(j)*cos(u(i));
y(i,j)=v(j)*sin(u(i));
z(i,j)=1/2*(x(i,j)^2+y(i,j)^2/4);

end
end
plot3d(x,y,z)


f. paraboloidul hyperbolic: z
y x
2
9 4
2 2
= == =
Soluie
h=10;
u=linspace(0,2*%pi,100);
v=linspace(0,h,100);
a=2;
for i=1:length(u)
for j=1:length(v)
x(i,j)=v(j)*cos(u(i));
y(i,j)=v(j)*sin(u(i));
z(i,j)=1/2*(x(i,j)^2/4-y(i,j)^2/9);
end
end
plot3d(x,y,z)


4. S se reprezinte grafic cilindrul: ] , 0 [ ,
2 2 2
h z a y x = == = + ++ +
Soluie
h=10;
u=linspace(0,2*%pi,100);
v=linspace(0,h,100);
a=2;
for i=1:length(u)
for j=1:length(v)
x(i,j)=a*cos(u(i));
y(i,j)=a*sin(u(i));
z(i,j)=v(j);
end
end
plot3d(x,y,z)


5. S se reprezinte grafic conul: ] , 0 [ ,
2 2 2
h z z y x = == = + ++ +
Solutie
h=10;
u=linspace(0,2*%pi,100);
v=linspace(0,h,100);
a=2;
for i=1:length(u)
for j=1:length(v)
x(i,j)=v(j)*cos(u(i));
y(i,j)=v(j)*sin(u(i));
z(i,j)=sqrt(x(i,j)^2+y(i,j)^2);
end
end
plot3d(x,y,z)



6. S se reprezinte grafic paraboloidul: ] , 0 [ ,
2 2
h z z y x = == = + ++ +
Soluie
h=10;
u=linspace(0,2*%pi,100);
v=linspace(0,h,100);
a=2;
for i=1:length(u)
for j=1:length(v)
x(i,j)=v(j)*cos(u(i));
y(i,j)=v(j)*sin(u(i));
z(i,j)=x(i,j)^2+y(i,j)^2;
end
end
plot3d(x,y,z)





Utilizarea Calculatoarelor: Laborato Utilizarea Calculatoarelor: Laborato Utilizarea Calculatoarelor: Laborato Utilizarea Calculatoarelor: Laboratorul al 8 rul al 8 rul al 8 rul al 8- -- -lea lea lea lea
I. I. I. I. Integrare numeric Integrare numeric Integrare numeric Integrare numeric

I II I.1. Formule de cuadratur .1. Formule de cuadratur .1. Formule de cuadratur .1. Formule de cuadratur

Fie | || | | || | b a f , : . Pentru calculul aproximativ al integralei

= == =
b
a
dx x f I ) ( se pot folosi urmtoarele formule:

Formula trapezelor : Formula trapezelor : Formula trapezelor : Formula trapezelor :
dac
n
a b
h

= == = i a=x a=x a=x a=x
0 00 0
,x ,x ,x ,x
1 11 1
,,x ,,x ,,x ,,x
n nn n
=b =b =b =b este o diviziune a intervalului [a,b] [a,b] [a,b] [a,b]
atunci:
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
| || |
| || |

| || |


\ \\ \
| || |
+ ++ + + ++ + = == = + ++ +


= == = = == =

1
1 1
1
2 ) ( ) (
2 2
n
i
i
n
i
i i
x f b f a f
h
x f x f
h
I
Eroarea e majorat de er
b a f
n

( ) max|
( ) 3 2
2
12
.

Formula lui Simpson : Formula lui Simpson : Formula lui Simpson : Formula lui Simpson :
dac
n
a b
h
2

= == = i a=x a=x a=x a=x
0 00 0
, x , x , x , x
1 11 1
,, x ,, x ,, x ,, x
2n 2n 2n 2n
=b =b =b =b este o diviziune a intervalului
[a,b] [a,b] [a,b] [a,b] atunci
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
| || |
| || |

| || |


\ \\ \
| || |
+ ++ + + ++ + + ++ + = == = + ++ + + ++ +


= == = = == =

= == =

1
1
2
1
1 2
1
2 1 2 2 2
2 4 ) ( ) (
3
4
3
n
i
i
n
i
i
n
i
i i i
x f x f b f a f
h
x f x f x f
h
I

Eroarea este majorat de:
( )
er
b a
f
n


5
4
4
2880
1
max
( )
.

Exemplu Exemplu Exemplu Exemplu: Fie functia f(x)=(2x+5)/(x f(x)=(2x+5)/(x f(x)=(2x+5)/(x f(x)=(2x+5)/(x
2 22 2
+1) +1) +1) +1). S se calculeze
integrala

= == =
5
2
) ( dx x f I folosind cele dou formule pentru n=2 n=2 n=2 n=2, n=10 n=10 n=10 n=10,
n=100 n=100 n=100 n=100 i s se compare rezultatele.
Rezolvare cu funcia Scilab-ului

n Scilab exist functia integrate integrare prin cuadraturi, care
are formula
[x]=integrate(expr,v,x0,x1 [,ea [,er]]) [x]=integrate(expr,v,x0,x1 [,ea [,er]]) [x]=integrate(expr,v,x0,x1 [,ea [,er]]) [x]=integrate(expr,v,x0,x1 [,ea [,er]]) unde
expr expr expr expr: expresie Scilab (de obicei expresia funciei ca ir de
caractere!!),
v vv v: ir de caractere, variabila de integrare,
x0,x1 x0,x1 x0,x1 x0,x1: numere reale, limitele de integrare,
ea,er ea,er ea,er ea,er: numere reale, valoare erorii absolute. Valoarea
implicit e 0; er: numr real, valoarea erorii relative.
Valoarea implicit 1.d-8
Aceast funcie calculeaz

= == =
1
0
) (
x
x
dv v f I cu o acuratee ce satisface
relaia:
|) | * , max( | | I er ea x I <=

Exemple de folosire: integrate('sin(x)','x',0,%pi)
integrate(['if x==0 then 1,';'else sin(x)/x,end'],'x',0,%pi)

Rezolvare exemplu

1. Integrare cu funcia Scilab
-->integrate('(2*x+5)/(x^2+1)','x',2,5)
ans = 2.9799189

2. Aproximarea integralei cu formula trapezelor
function f=f(x)
f=(2*x+5)/(x^2+1);
endfunction

function I=IntegrareTrapeze(a,b,n)
h=(b-a)/n;
for i=1:n+1
x(i)=a+(i-1)*h;
end
s=0;
for i=2:n
s=s+f(x(i));
end
I=h/2*(f(a)+f(b)+2*s);
endfunction
IntegrareTrapeze(2,5,10)
ans = 2.9866206
3. Aproximarea integralei cu formula lui Simpson
Pentru f definit deasupra avem:
function I=IntegrareSimpson(a,b,n)
h=(b-a)/(2*n);
for i=1:2*n+1
x(i)=a+(i-1)*h;
end
s=0;
for i=1:n
s=s+f(x(2*i));
end
s1=0;

for i=2:n
s1=s1+f(x(2*i-1));
end
I=h/3*(f(a)+f(b)+4*s+2*s1);
endfunction
IntegrareSimpson(2,5,5)
ans = 2.9799626

Exerciii: Exerciii: Exerciii: Exerciii: S se aproximeze integralele:
1.

+ ++ +
1
0
2
1 x
dx
;
2.

5
2
2
ln x x
dx
;
3.

+ ++ + + ++ +
3
1
2
1 5x x x
dx


I II I. .. . 2. Formule de Cubat 2. Formule de Cubat 2. Formule de Cubat 2. Formule de Cubatura ura ura ura

Pentru calculul aproximativ al integralei

= == =
b
a
d
c
dxdy y x f I ) , ( se pot
folosi urmtoarele formule:

Formula trapezelor Formula trapezelor Formula trapezelor Formula trapezelor

dac
n
a b
h

= == = ,
m
c d
r

= == = , n i h i a x
i
, 0 , = == = + ++ + = == = i m j r j c y
j
, 0 , = == = + ++ + = == = atunci:
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )

= == = = == =

+ ++ + + ++ + + ++ +


n
i
m
j
j i j i j i j i
y x f y x f y x f y x f
r h
I
1 1
1 1 1 1
, , , ,
4






Formula lui Simpson Formula lui Simpson Formula lui Simpson Formula lui Simpson

dac
n
a b
h
2

= == = ,
m
c d
r
2

= == = i n i h i a x
i
2 , 0 , = == = + ++ + = == = i m j r j c y
j
2 , 0 , = == = + ++ + = == =
atunci
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) | || |

= == = = == =

+ ++ + + ++ + + ++ +


n
i
m
j
j i j i j i j i
y x f y x f y x f y x f
r h
I
1 1
2 2 2 2 2 2 2 2 2 2 2 2
, , , ,
9
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
2 2 1 2 1 2 2 2 2 1 2 1 2 2
, , , , 4

+ ++ + + ++ + + ++ + + ++ +
j i j i j i j i
y x f y x f y x f y x f
( (( ( ) )) ) | || |
1 2 1 2
, 16

+ ++ +
j i
y x f .
Exemplu Exemplu Exemplu Exemplu: Fie funcia
y x
y x f

= == =
1
) , ( . S se calculeze

4 . 4
4
6 . 2
2
) , ( dxdy y x f ,
apoi s se calculeze integrala folosind cele doua formule pentru
diferite valori ale lui n nn n i m mm m i s se compare rezultatele.

Rezolvare n Scilab
function f=f(x,y)
f=1/(x*y);
endfunction

function I=IntegrareCubTrapeze(a,b,c,d,n,m)
h=(b-a)/n;
r=(d-c)/m;
for i=1:n+1
x(i)=a+(i-1)*h;
end
for j=1:m+1
y(j)=c+(j-1)*r;
end
for i=1:n+1
for j=1:m+1
M(i,j)=f(x(i),y(j))
end
end
s1=0;
for i=2:n+1
for j=2:m+1
s1=s1+(M(i,j)+M(i-1,j)+M(i,j-1)+M(i-1,j-1));

end
end
I=h*r*s1/4
endfunction

function II=IntegrareCubSimson(a,b,c,d,n,m)
h=(b-a)/(2*n);
r=(d-c)/(2*m);
for i=1:2*n+1
x(i)=a+(i-1)*h;
end
for j=1:2*m+1
y(j)=c+(j-1)*r;
end
for i=1:2*n+1
for j=1:2*m+1
M(i,j)=f(x(i),y(j))
end
end
s1=0;
for i=2:n+1
for j=2:m+1
s2=M(2*i-3,2*j-3)+M(2*i-3,2*j-1)+M(2*i-1,2*j-
3)+M(2*i-1,2*j-1);
s3=M(2*i-1,2*j-2)+M(2*i-2,2*j-1)+M(2*i-3,2*j-
2)+M(2*i-2,2*j-3);
s1=s1+s2+4*s3+16*M(2*i-2,2*j-2);
end
end
II=h*r*s1/9
endfunction

IntegrareCubTrapeze(4,4.4,2,2.6,2,2)
IntegrareCubSimson(4,4.4,2,2.6,2,2)

ans = 0.0250060
ans = 0.0250060

MODELARE I SIMULARE N SCILAB MODELARE I SIMULARE N SCILAB MODELARE I SIMULARE N SCILAB MODELARE I SIMULARE N SCILAB


Una din problemele fundamentale din multe domenii tiinifice i
inginereti este problema modelrii i simulrii. Scilab-ul furnizeaz
o serie de mijloace pentru dezvoltarea i simularea diferitelor tipuri
de modele.

1. 1. 1. 1. Problema Cauchy pentru ecuaii difereniale ordinare Problema Cauchy pentru ecuaii difereniale ordinare Problema Cauchy pentru ecuaii difereniale ordinare Problema Cauchy pentru ecuaii difereniale ordinare

Problema Cauchy pentru ecuaii difereniale const n
determinarea unei funcii y(x) y(x) y(x) y(x) astfel ca



= == =
= == =
0 0
) (
)) ( , ( ) (
y x y
x y x f x y
.
Se imparte intervalul [x [x [x [x
0 00 0
, x , x , x , x
0 00 0
+L] +L] +L] +L] pe care se caut soluia n
subintervale egale de lungime h hh h: x xx x
0 00 0
<x <x <x <x
1 11 1
<x <x <x <x
2 22 2
<<x <<x <<x <<x
n nn n
= x = x = x = x
0 00 0
+L +L +L +L. Iniial se
cunoate y yy y
0 00 0
=y(x =y(x =y(x =y(x
0 00 0
) )) ). Trebuie determinat y yy y
i ii i
, pentru i>0 i>0 i>0 i>0, n funcie de
valorile (x (x (x (x
k kk k
,y ,y ,y ,y
k kk k
), k<i ), k<i ), k<i ), k<i.
In fiecare metod de determinare a lui y yy y
i ii i
se caut ca eroarea
care se face s fie ct mai mic. Adic, dac y( y( y( y(x xx x
k kk k
)=y )=y )=y )=y
k kk k
pentru k<i k<i k<i k<i,
atunci, formula care determin pe y
i
s fie astfel ca |y(x |y(x |y(x |y(x
i ii i
) )) )- -- -y yy y
i ii i
|=O(h |=O(h |=O(h |=O(h
s ss s
) )) )
cu s ss s ct mai mare, ceea ce inseamn ca diferena |y(x |y(x |y(x |y(x
i ii i
) )) )- -- -y yy y
i ii i
| || | este
mic pentru h hh h mic.
Valorile soluiei n punctele x xx x
i ii i
se aproximeaz prin numerele y yy y
i ii i

care se determin cu formulele de mai jos.

1. 1. 1. 1.1. Metode uni 1. Metode uni 1. Metode uni 1. Metode uni- -- -pas pas pas pas
Se numesc astfel metodele n care pentru calculul lui y yy y
i ii i
se
folosesc doar valorile pentru x xx x i y yy y la pasul i ii i- -- -1 11 1.
Avem
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )

+ ++ + = == = + ++ + + ++ + = == = + ++ +
h h
dt t x y x f dt t x y x y h x y
0 0
, ' . (1)

In funcie de cum se aproximeaz integrala se obin diverse
metode pentru estimarea lui y(x+h) y(x+h) y(x+h) y(x+h).

1. 1. 1. 1.1.1. Metoda Euler: 1.1. Metoda Euler: 1.1. Metoda Euler: 1.1. Metoda Euler:

( (( ( ) )) ) ( (( ( ) )) )
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
2 2
0
, '
' ) (
h O x y x hf x y h O h x y x y
dt t x y x y h x y
h
+ ++ + + ++ + = == = + ++ + + ++ + = == =
= == = + ++ + + ++ + = == = + ++ +

(2)
adic
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
2
1 1 1 1
, h O h x y x f x y h x y
i i i i
+ ++ + + ++ + = == = + ++ +

.
Putem calcula aproximativ atunci pe y yy y
i ii i
astfel:
n i y x f h y y
i i i i
, 1 ), , (
1 1 1
= == = + ++ + = == =

(3)
In acest caz s=2 s=2 s=2 s=2, iar metoda se numete metoda lui Euler.

1. 1. 1. 1.1.2. Metoda predictor 1.2. Metoda predictor 1.2. Metoda predictor 1.2. Metoda predictor- -- -corector corector corector corector

S calculm integrala (1) prin metoda trapezelor. Gsim :

( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
3
3
, ,
2
' '
2
) (
h O h x y h x f x y x f
h
x y
h O h x y x y
h
x y h x y
+ ++ + + ++ + + ++ + + ++ + + ++ + = == =
= == = + ++ + + ++ + + ++ + + ++ + = == = + ++ +
(4)
Prin urmare aceast metoda ne conduce la:
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
i i i i i i
y x f y x f
h
y y , ,
2
1 1 1
+ ++ + + ++ + = == =

(5)
Formula (5) conine pe y
i
implicit, dar pentru h mic, membrul II
din (5) este o contracie ca funcie de y
i
, deci se poate determina y
i

din (5) prin aproximaii succesive:

( (( ( ) )) )
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )







= == =
+ ++ + + ++ + = == =
+ ++ + = == =


predictor noul y y
corector y x f y x f
h
y y
predictor y x hf y y
c
i
p
i
p
i
i i i i
c
i
i i i
p
i
, ,
2
,
1 1 1
1 1 1
(6)
Prin repetarea ultimelor doua ecuaii din (5) pn | |
c
i
p
i
y y devine
suficient de mic se ajunge la y yy y
i ii i
din (5) cu precizia dorit. Metoda se

numete predictor-corector i aproximeaz soluia ecuaiei
difereniale mai bine ca metoda Euler: s=3 s=3 s=3 s=3.

1. 1. 1. 1.1.3. Metoda Euler perfectionat 1.3. Metoda Euler perfectionat 1.3. Metoda Euler perfectionat 1.3. Metoda Euler perfectionat: :: :

Daca n (4) locuim y(x+h) y(x+h) y(x+h) y(x+h) cu y yy y
* ** *
astfel ca |y(x+h |y(x+h |y(x+h |y(x+h) )) )- -- -y yy y
* ** *
|=O(h |=O(h |=O(h |=O(h
2 22 2
) )) )
atunci (4) se mai scrie:
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
3 *
, ,
2
h O y h x f x y x f
h
x y h x y + ++ + + ++ + + ++ + + ++ + = == = + ++ + (7)
Acest lucru poate fi realizat dac lum y yy y
* ** *
=y(x)+hf(x,y(x)) =y(x)+hf(x,y(x)) =y(x)+hf(x,y(x)) =y(x)+hf(x,y(x)),
(conform cu (2)), caz n care (7) devine:
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
3
, ( , ,
2
h O x y x hf x y h x f x y x f
h
x y h x y + ++ + + ++ + + ++ + + ++ + + ++ + = == = + ++ + (8)
De aici deducem urmatoarea formul de calcul aproximativ:
( (( ( ) )) ) n i y x f h y x f y x f
h
y y
i i i i i i i i
, 1 , ) , ( , ( ) , (
2
1 1 1 1 1 1
= == = + ++ + + ++ + + ++ + = == =

(9)
cunoscuta sub numele de metoda Euler perfecionat. Eroarea la un
pas este O(h O(h O(h O(h
3 33 3
) )) ).
1. 1. 1. 1.1.4 Metode de tip Runge 1.4 Metode de tip Runge 1.4 Metode de tip Runge 1.4 Metode de tip Runge- -- -Kutta Kutta Kutta Kutta

Aceste metode constau in a determina o aproximare pentru
y(x+h) y(x+h) y(x+h) y(x+h) astfel:
a) Se determin k
1
, k
2
,..k
q
prin:
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )







+ ++ + + ++ + + ++ + + ++ + + ++ + = == =
+ ++ + + ++ + = == =
= == =

h k h k h k x y h x hf k
h k x y h x hf h k
x y x hf h k
q q q q q q q 1 1 , 2 2 , 1 1 ,
1 21 2 2
1
.. ,
.......
,
,


(10)
b) Se determin z(h) z(h) z(h) z(h) ca aproximare pentru y(x+h) y(x+h) y(x+h) y(x+h) prin:
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) h k p h k p h k p x y h z
q q
+ ++ + + ++ + + ++ + + ++ + = == = ...
2 2 1 1
(11)
Coeficienii p , , se determin din condiia ca r(h)=y(x+h) r(h)=y(x+h) r(h)=y(x+h) r(h)=y(x+h)- -- -
z(h)=O(h z(h)=O(h z(h)=O(h z(h)=O(h
s ss s
) )) ) pentru un s ss s ct mai mare. Se gasete:

a) pentru q=2, q=2, q=2, q=2, s=3 s=3 s=3 s=3 rezult t p t p
t t
= == = = == = = == = = == = 1
2
1
2
1
2 1 1 , 2 2
. Pentru
t=3/4, y(x) t=3/4, y(x) t=3/4, y(x) t=3/4, y(x) inlocuit cu y yy y
i ii i- -- -1 11 1
si z(h) z(h) z(h) z(h) cu y yy y
i+1 i+1 i+1 i+1
se obin formulele:
( (( ( ) )) )









+ ++ + + ++ + = == =
| || |

| || |

\ \\ \
| || |
+ ++ + + ++ + = == =
= == =



2 1 1
1 1 1 2
1 1
4
3
4
1
3
2
,
3
2
,
k k y y
k y h x hf k
y x hf k
i i
i i
i
(12)
numite formule Runge-Kutta de ordin 2
ii) pentru q=4, s=5 q=4, s=5 q=4, s=5 q=4, s=5 se gasete de exemplu
2
1
,
2
1
21 2
= == = = == = ,
2
1
, 0 ,
2
1
32 31 3
= == = = == = = == = 1 , 0 , 0 , 1
43 42 41 4
= == = = == = = == = = == = , ceea ce conduce la
formulele:
( (( ( ) )) )
( (( ( ) )) )













= == = + ++ + + ++ + + ++ + + ++ + = == =
+ ++ + + ++ + = == =
| || |

| || |

\ \\ \
| || |
+ ++ + + ++ + = == =
| || |

| || |

\ \\ \
| || |
+ ++ + + ++ + = == =
= == =





n i k k k k y y
k y h x hf k
k
y
h
x hf k
k
y
h
x hf k
y x hf k
i i
i i
i i
i i
i i
, 1 , 2 2
6
1
,
2
,
2
2
,
2
) , (
4 3 2 1 1
3 1 1 4
2
1 1 3
1
1 1 2
1 1 1
(13)
cunoscute ca formulele Runge-Kutta de ordinul 4.
In ce privete convergena lui y
i
la y(x
i
) avem teorema:

Teorema Teorema Teorema Teorema. Fie f(x,y) f(x,y) f(x,y) f(x,y) de clasa C CC C
1 11 1
si |f |f |f |f
y yy y
(x,y)|<C (x,y)|<C (x,y)|<C (x,y)|<C. Fie intervalul
[x [x [x [x
0 00 0
,x ,x ,x ,x
0 00 0
+L] +L] +L] +L] divizat n pri egale. Fie |y(x |y(x |y(x |y(x
i+1 i+1 i+1 i+1
) )) )- -- -y yy y
i ii i
|<C |<C |<C |<C
1 11 1
h hh h
s ss s
+ ++ + , ,, , n situaia
cnd y(x y(x y(x y(x
i ii i
)=y )=y )=y )=y
i ii i
, ,, , unde h este pasul ntre x xx x
i ii i- -- -1 11 1
si x xx x
i ii i
. Termenul C CC C
1 11 1
h hh h
s ss s

reprezint eroarea de metod, iar reprezint eroarea de rotunjire.
Fie ( (( ( ) )) )
0 0 0
y x y r = == = . Atunci pentru L x x x
i
+ ++ +
0 0

( (( ( ) )) ) ( (( ( ) )) )
0
1
1
0
| | max r i h C e y x y
s LC
i i
h
L
i
+ ++ + + ++ +


(14)

Rezolvare Rezolvare Rezolvare Rezolvare cu funcia cu funcia cu funcia cu funcia Scilab Scilab Scilab Scilab- -- -ului ului ului ului: exista funcii de rezolvare a
ecuaiilor difereniale, de exemplu ode ode ode ode rezolvarea de ecuaii
difereniale ordinare
y=ode(y0,t0,t,f) y=ode(y0,t0,t,f) y=ode(y0,t0,t,f) y=ode(y0,t0,t,f)
[y,w,iw]=ode([type],y0,t0,t [,rtol [,atol]],f [,jac] [,w,iw]) [y,w,iw]=ode([type],y0,t0,t [,rtol [,atol]],f [,jac] [,w,iw]) [y,w,iw]=ode([type],y0,t0,t [,rtol [,atol]],f [,jac] [,w,iw]) [y,w,iw]=ode([type],y0,t0,t [,rtol [,atol]],f [,jac] [,w,iw])
[y,rd,w,iw]=ode("root",y0,t0,t [,rtol [,atol]],f [,jac],ng,g [,w,iw])
y=ode("discrete",y0,k0,kvect,f) y=ode("discrete",y0,k0,kvect,f) y=ode("discrete",y0,k0,kvect,f) y=ode("discrete",y0,k0,kvect,f)
Parametri:
y0 y0 y0 y0: vector real sau matrice (condiiile iniiale).
t0 t0 t0 t0: scalar real (timpul iniial).
t tt t: vector real (timpuri la care soluia e calculat).
f ff f: extern (funcie sau ir de caractere sau list).
type type type type: unul din irurile de caractere: "adams" "stiff" "rk" "rkf"
"fix" "discrete" roots"
rtol,atol rtol,atol rtol,atol rtol,atol: constante reale sau vectori reali de aceeai
dimensiune ca i y yy y.
jac jac jac jac: extern (funcie sau ir de caractere sau list).
w,iw w,iw w,iw w,iw: vectori reali.
ng ng ng ng: ntreg.
g gg g: extern (funcie sau ir de caractere sau list).
k0 k0 k0 k0: ntreg (timp iniial).
kvect kvect kvect kvect : vector de ntregi.
Pentru mai multe detalii s se apeleze help(ode) help(ode) help(ode) help(ode), i s se vad
funciile date la See Also See Also See Also See Also.
Exemplu Exemplu Exemplu Exemplu
Fie



= == =
= == =
1 ) 0 (
* ) (
y
y x x y
Se cere valoarea lui y yy y pentru x=1. x=1. x=1. x=1.
Soluie:
function f=f(x,y) function f=f(x,y) function f=f(x,y) function f=f(x,y)
f=x*y;
endfunction
function y=Euler(n,x,xx,y) function y=Euler(n,x,xx,y) function y=Euler(n,x,xx,y) function y=Euler(n,x,xx,y)

h=(xx-x)/n;
for i=1:n do
y=y+h*f(x,y);
x=x+h;
end
endfunction
Euler(10,0,1,1) Euler(10,0,1,1) Euler(10,0,1,1) Euler(10,0,1,1)
function y1=EulerPerfectionata(n,x,xx,y1) function y1=EulerPerfectionata(n,x,xx,y1) function y1=EulerPerfectionata(n,x,xx,y1) function y1=EulerPerfectionata(n,x,xx,y1)
h=(xx-x)/n;
for i=1:n do
y1=y1+h/2*(f(x,y1)+f(x+h,y1+h*f(x,y1)));
x=x+h;
end
endfunction
EulerPerfectionata(10,0,1,1) EulerPerfectionata(10,0,1,1) EulerPerfectionata(10,0,1,1) EulerPerfectionata(10,0,1,1)
function y2=RungeKutta(n,x,xx,y2) function y2=RungeKutta(n,x,xx,y2) function y2=RungeKutta(n,x,xx,y2) function y2=RungeKutta(n,x,xx,y2)
h=(xx-x)/n;
for i=1:n do
k1=h*f(x,y2);
k2=h*f(x+h/2,y2+k1/2);
k3=h*f(x+h/2,y2+k2/2);
k4=h*f(x+h,y2+k3);
y2=y2+1/6*(k1+2*k2+2*k3+k4);
x=x+h;
end
endfunction
RungeKutta(10,0,1,1) RungeKutta(10,0,1,1) RungeKutta(10,0,1,1) RungeKutta(10,0,1,1)
ode(1,0,1,f) ode(1,0,1,f) ode(1,0,1,f) ode(1,0,1,f)
ans = 1.5471104 ans = 1.5471104 ans = 1.5471104 ans = 1.5471104
ans = 1.6478813 ans = 1.6478813 ans = 1.6478813 ans = 1.6478813
ans = 1.648721 ans = 1.648721 ans = 1.648721 ans = 1.648721
ans = 1.64872 ans = 1.64872 ans = 1.64872 ans = 1.6487224 24 24 24
Laboratorul al 8 Laboratorul al 8 Laboratorul al 8 Laboratorul al 8- -- -lea lea lea lea

Funcii de intrare/ieire a datelor Funcii de intrare/ieire a datelor Funcii de intrare/ieire a datelor Funcii de intrare/ieire a datelor

Implicit, n Scilab rezultatele apar n fereastra de comand, iar graficele ntr-o
fereastr grafic. Sunt situaii n care rezultatul se dorete salvat ntr-un fiier sau s
fie scos la imprimant, de asemenea datele de intrare se pot prelua dintr-un fiier sau
se pot introduce de la tastatur. In acest capitol se vor descrie modaliti de intrare
ieire a diferitelor tipuri de date.
Afiarea variabilelor Afiarea variabilelor Afiarea variabilelor Afiarea variabilelor
Se definete variabila urmatoare:
-->a=[%pi,4,%inf]
Tabel 1. Afiarea variabilelor Tabel 1. Afiarea variabilelor Tabel 1. Afiarea variabilelor Tabel 1. Afiarea variabilelor
Modaliti de afisare Modaliti de afisare Modaliti de afisare Modaliti de afisare Exemplu Exemplu Exemplu Exemplu
Afiare in fereastra de comanda
(implicit)
a =
3.1415927 4. Inf
Afiare utiliznd disp disp disp disp -->disp(a)
3.1415927 4. Inf
Afiare utiliznd print print print print -->print(%io(2),a)
a =
3.1415927 4. Inf
Scrierea valorii variabilei a aa a intr-un
fiier, de exemplu, a.txt a.txt a.txt a.txt
-->print('a.txt',a)
Print poate fi folosit pentru a fora
afiarea unei variabile in interiorul unei
funcii
-->function y=g(x); a=2*%pi,
print(%io(2),a), y=x+a, endfunction
-->g(2)
a =
6.2831853

Utilizarea interfeelor grafice Utilizarea interfeelor grafice Utilizarea interfeelor grafice Utilizarea interfeelor grafice
In Scilab exist o serie de instruciuni pentru ferestre de dialog predefinite, dintre
acestea putem aminti
x_message x_message x_message x_message; deschide o ferestr de mesaj
x_choose x_choose x_choose x_choose; deschide o fereastr ce conine o list de elemente
x_dialog x_dialog x_dialog x_dialog; deschide o fereastr de dialog pentru a permite utilizatorului s dea
un rspuns
x_choices; x_choices; x_choices; x_choices; permite alegerea unei opiuni dintr-o list
Exemplul 1 Exemplul 1 Exemplul 1 Exemplul 1

-- -- -- -->x_message(['Ce ati vrea';'sa invatati?']) >x_message(['Ce ati vrea';'sa invatati?']) >x_message(['Ce ati vrea';'sa invatati?']) >x_message(['Ce ati vrea';'sa invatati?'])





optiu optiu optiu optiune=x_choose(['Windows','Linux','Alt sistem de ne=x_choose(['Windows','Linux','Alt sistem de ne=x_choose(['Windows','Linux','Alt sistem de ne=x_choose(['Windows','Linux','Alt sistem de
operare'],'Sisteme de operare') operare'],'Sisteme de operare') operare'],'Sisteme de operare') operare'],'Sisteme de operare')
Observa Observa Observa Observaie ie ie ie: Dac se alege o opiune din list apare, ca rspuns,
numrul de ordine lin list a opiunii alese
optiune = 2. optiune = 2. optiune = 2. optiune = 2.
-- -- -- -->linux=['Red Hat Linux','Mandriva Linux','Mepi >linux=['Red Hat Linux','Mandriva Linux','Mepi >linux=['Red Hat Linux','Mandriva Linux','Mepi >linux=['Red Hat Linux','Mandriva Linux','Mepis Linux']; s Linux']; s Linux']; s Linux'];
-- -- -- -->l1=list('Sistemul de operare Linux',1,linux); >l1=list('Sistemul de operare Linux',1,linux); >l1=list('Sistemul de operare Linux',1,linux); >l1=list('Sistemul de operare Linux',1,linux);
-- -- -- -->l2=list('Programe',2,['MuPAD','Scilab','Maxima']); >l2=list('Programe',2,['MuPAD','Scilab','Maxima']); >l2=list('Programe',2,['MuPAD','Scilab','Maxima']); >l2=list('Programe',2,['MuPAD','Scilab','Maxima']);
-- -- -- -->x_choices('Linux si programe sub Linux',list(l1,l2)) >x_choices('Linux si programe sub Linux',list(l1,l2)) >x_choices('Linux si programe sub Linux',list(l1,l2)) >x_choices('Linux si programe sub Linux',list(l1,l2))
ans = 2. 2. ans = 2. 2. ans = 2. 2. ans = 2. 2.
Se aleg opiunile












Dup ce se aleg opiunile se apas Finish Finish Finish Finish.
Exemplul 2 Exemplul 2 Exemplul 2 Exemplul 2
In exemplul urmtor se realizeaz un script n care se folosete o fereastr de dialog
pentru introducerea a patru valori de intrare i o ferestra de afiare a rezultatului.
text=['no pentru 532';'ne pentru 532';'no pentru 1064';'ne pentru 1064'];
m=x_mdialog('Introduceti valorile indicilor de refractie',text,[' ';' ';' ';' ']);
no1=evstr(m(1));
ne1=evstr(m(2));
no2=evstr(m(3));
ne2=evstr(m(4));
teta=asin(sqrt(abs((no1^(-2)-no2^(-2))/(ne2^(-2)-no2^(-2)))))*180/%pi;
x_message('Unghiul de adaptare de faza este: '+string(teta)+' grade')





















Citirea datelor de la tastatura si afisarea rezultatelor folosind ferestre de
dialog:

Citirea unei valori:
valoare=evstr(x_mdialog('Introduceti o valoare: ',['v='],[' ']));
Citirea unui vector:
a=evstr(x_matrix('introduceti elementele unei matrice de dimensiune 1x5: ',zeros(1,5)))
Citirea unei matrice:
a=evstr(x_matrix('introduceti elementele unei matrice de dimensiune 3x3: ',zeros(3,3)))
Afisarea unei matrice:
x_matrix(Elementele matricei s sunt,s)
Exemplu

S se calculeze suma elementelor unui vector, care sunt cuprinse intre valorile a i b cu a<b.
Solutie:
v=evstr(x_matrix('introduceti elementele unui vector: ',zeros(1,5)))
a=evstr(x_mdialog('Introduceti o valoare pentru a: ',['a='],[' ']));
b=evstr(x_mdialog('Introduceti o valoare pentru b: ',['b='],[' ']));
s=0;
for i=1:length(v)
if (v(i)>a)&(v(i)<b)
s=s+v(i);
end
end
x_matrix('Valoarea lui s este: ',s)

Observatie: Sa se modifice programul de mai sus astfel incat pentru introducerea
valorilor a si b sa se foloseasca o singura fereastra de dialog

Exercitii:
Sa se rezolve exercitiile de mai jos folosind pentru introducerea si afisarea datelor
ferestre de dialog.

1. S se calculeze produsul elementelor diferite de zero ale unui vector.
2. Se d irul de numere x
1
, x
2
, , x
n
. S se determine numrul de elemente pozitive i s se
calculeze produsul lor.
3. S se calculeze media aritmetic a elementelor unui vector care sunt mai mari decat o
valoare dat.
4. Sa se determine elementul maxim al unui matrice de numere reale (se va defini o functie
in editorul scilab-ului).
5. S se calculeze produsul elementelor diferite de zero de pe diagonala principal
(secundar) ale unei matrice.
6. S se calculeze suma elementelor unei matrice situate deasupra (dedesubtul) diagonalei
principale (secundare).
7. Sa se realizeze un program care calculeaza produsul a doua matrice.
8. Se dau numerele a i j
ij
, , ,..., ; , ,..., = = 1 2 100 1 2 50 si b j
j
= 1 2 50 , , ..., . Sa se realizeze un
program care calculeaza: c a b i
i ij j
j
= =
=
, , ,..., 1 2 100
1
50
.
9. S se calculeze suma elementelor unui vector care sunt cuprinse intre valorile a i b cu
a<b.
10. S se calculeze produsul elementelor diferite de zero ale unui vector.
11. Se d irul de numere x
1
, x
2
, , x
n
. S se determine numrul de elemente pozitive i s se
calculeze produsul lor.
12. S se calculeze media aritmetic a elementelor unui vector care sunt mai mari decat o
valoare dat.
13. Se d irul de numere x
1
, x
2
, , x
n
. S se calculeze:
- media aritmetic a numerelor pozitive;
- suma ptratelor numerelor negative
14. S se ordoneze cresctor elementele unui vector.
15. S se calculeze produsul scalar al vectorilor x = ( x
1
, x
2
, , x
n
) i y = (y
1
, y
2
, ,y
n
).
16. Se dau dou siruri de cte n numere: a
1
, a
2
, , a
n
i b
1
, b
2
, , b
n
. S se formeze irul c
1
,
c
2
, , c
n
n care termenii se obin dup urmtorul procedeu: pentru orice i, n i , 1 = == = ,
{ {{ { } }} }






< << <
+ ++ +
= == =
0 , , max
0 ,
2
i i i i
i i
i i
i
b a daca b a
b a daca
b a
c



Laboratorul al 9 Laboratorul al 9 Laboratorul al 9 Laboratorul al 9- -- -lea lea lea lea

Fiiere de date n Scilab Fiiere de date n Scilab Fiiere de date n Scilab Fiiere de date n Scilab
Tabel 1. Funcii de citire/scriere ale datelor n fiiere Scilab Tabel 1. Funcii de citire/scriere ale datelor n fiiere Scilab Tabel 1. Funcii de citire/scriere ale datelor n fiiere Scilab Tabel 1. Funcii de citire/scriere ale datelor n fiiere Scilab
Procedura Procedura Procedura Procedura Semnificaie Semnificaie Semnificaie Semnificaie
[x]=read(file [x]=read(file [x]=read(file [x]=read(file- -- -desc,m,n,[format]) desc,m,n,[format]) desc,m,n,[format]) desc,m,n,[format])
[x]=read(file [x]=read(file [x]=read(file [x]=read(file- -- -desc,m,n,k,format) desc,m,n,k,format) desc,m,n,k,format) desc,m,n,k,format)
Citete din fiier;
file file file file- -- -desc desc desc desc: ir de caractere
specificnd numele fiierului
sau valoare ntreag
specificnd unitatea logic
m, n m, n m, n m, n: numere ntregi
reprezentnd dimensiunile
matricei. Dac nu se d
numrul de linii, se citete tot
fiierul
format format format format: ir de caractere ce
specific un format Fortran
k kk k: ntreg sau vector de ntregi
write(fisier,text_de_scris) write(fisier,text_de_scris) write(fisier,text_de_scris) write(fisier,text_de_scris) Scriere n fiier.
Alte instruciuni pentru fiiere: Alte instruciuni pentru fiiere: Alte instruciuni pentru fiiere: Alte instruciuni pentru fiiere:
[unit,[err]] [unit,[err]] [unit,[err]] [unit,[err]]=file(open,nume_fisier, file(open,nume_fisier, file(open,nume_fisier, file(open,nume_fisier,
[status]) [status]) [status]) [status])
Deschidere fiier:
status status status status poate fi new (pentru
fiier nou), old (pentru fiier
deja existent), unknown
(cnd nu se tie exact)
unit unit unit unit este un identificator
pentru fiier,
err err err err conine posibilele erori.
file(close, unit) file(close, unit) file(close, unit) file(close, unit) Inchide fisierul descris de unit unit unit unit
file(last,unit) file(last,unit) file(last,unit) file(last,unit) Pozitionare la sfrit de fiier.
file(rewind,unit) file(rewind,unit) file(rewind,unit) file(rewind,unit) Pozitionare la nceput de fiier.

Pentru mai multe detalii s se apeleze apropos comanda apropos comanda apropos comanda apropos comanda.



Exerciii Exerciii Exerciii Exerciii

1. S se creeze un fiier n care s se scrie elementele a patru
vectori creai aleator, apoi s se citeasc n variabila x x x x primii
doi vectori.
u=file('open',TMPDIR+'/foo','unknown')
for k=1:4
a=rand(1,4)
write(u,a)
end
file('rewind',u)
x=read(u,2,4)
file('close',u)

2. Fie a=5, b=3. S se scrie n fiierul Date Date Date Date aceste date. Apoi s se
citeasc coninutul fiierului. Se prelucreaz datele: se
calculeaz c=a+b. S se salveze valoarea lui c n acelai fiier.
Solutie:
-->a=3;b=5;
-->u=file('open','Date','unknown');
-->write(u,a);
-->write(u,b);
-->file('rewind',u)
-->x=read(u,2,1);
-->c=sum(x)
c = 8.

3. S se defineasc matricele
6 4 6 3
,

b a n SCILAB, s se
salveze n fiierul Matrice Matrice Matrice Matrice, apoi s se citeasc coninutul
fiierului i s se srie n matricea c cc c. S se vizualizeze cele trei
matrice.
Soluie:
a=[1 2 3 4 5 6;2 3 4 5 6 7;3 4 5 6 7 8];
b=[4 5 6 7 8 9;4 5 6 7 8 9;4 5 6 7 8 9;4 5 6 7 8 9];
u=file('open','Matrice','unknown');
write(u,a);
write(u,b);
file('rewind',u)
c=read(u,7,6)
file('close',u)
In fereastra de comanda va aparea:
c =! 1. 2. 3. 4. 5. 6. !
! 2. 3. 4. 5. 6. 7. !
! 3. 4. 5. 6. 7. 8. !
! 4. 5. 6. 7. 8. 9. !
! 4. 5. 6. 7. 8. 9. !
! 4. 5. 6. 7. 8. 9. !
! 4. 5. 6. 7. 8. 9. !

4. S se calculeze:


= == =

= == =
10
7
1
2
) 7 (
1
i
i
i
a
( (( ( ) )) )


= == =









= == =
20
2
1
2
2
11
k
k
k
b
S se salveze n fiierul Valori Valori Valori Valori variabilele a aa a i b bb b, apoi s se
citeasc coninutul fiierului.
Solutie:
s=0;
for i=1:10
if i~=7
s=s+1/(i-7);
end
end
p=1;
for i=1:20
if i~=2
p=p+11/((i-2)^2);
end
end
u=file('open','Valori','unknown');
write(u,s);
write(u,p);
file('rewind',u)
r=read(u,1,2)
file('close',u)
In fereastra de comand va aprea:
r =! - 0.6166667 29.499825 !

5. S se realizeze un program n SCILAB care: ncarc n matricea
a aa a coninutul fiierului Matrice Matrice Matrice Matrice, apoi recalculeaz fiecare element
al matricei (mai puin cele de pe frontier) ca media aritmetic a
elementelor vecine. Procedeul se va repeta pn cnd diferena
dintre valoarea nou calculat i cea anterioar este mai mic
dect un epsilon dat sau dup maxim 1000 de iteraii.

Soluie:

u=file('open','C:\Program Files\scilab-3.0\matrice.txt', 'unknown')
;a=read(u,4,5);file('close',u);
[m,n]=size(a);
an=zeros(m,n);k=0;ermax=1;
while (ermax>10^(-10))&(k<1000)
for i=2:m-1
for j=2:n-1
an(i,j)=(a(i-1,j)+a(i+1,j)+a(i,j-1)+a(i,j+1))/4;
er=abs(an(i,j)-a(i,j));
if er>ermax
ermax=er;
end
a(i,j)=an(i,j);
end end
k=k+1;
end
a;x=1:4;y=1:5;
contour2d(x,y,a,10); xtitle('Liniile de contur!')

In urma lansrii n execuie a scriptului de mai sus, n fereastra de
comand va aparea matricea a aa a, iar n ferestra grafic vor aprea
liniile de contur











1.0 1.4 1.8 2.2 2.6 3.0 3.4 3.8 4.2
1.0
1.4
1.8
2.2
2.6
3.0
3.4
3.8
4.2
4.6
5.0
Li ni i l e de contur!
0.818 1.636
1.636
2.455
2.455
3.273
3.273
4.091
4.091
4.909
4.909
5.727
5.727
6.545
7.364
Laboratorul al 10 Laboratorul al 10 Laboratorul al 10 Laboratorul al 10- -- -lea lea lea lea

Modelare si simulare in SCICOS Modelare si simulare in SCICOS Modelare si simulare in SCICOS Modelare si simulare in SCICOS

1. Introducere 1. Introducere 1. Introducere 1. Introducere

Simularea n SCILAB SCILAB SCILAB SCILAB se realizeaz cu opiunea Scicos Scicos Scicos Scicos din meniul
Applications Applications Applications Applications care este o aplicaie a programului cu faciliti
importante, permind obinerea unor modele precise ale unor
sisteme complexe. Scicos este un utilitar Scilab gratuit (open-
source) inclus n pachetul Scilab, ce ofer multe din functionalitile
puse la dispoziie de Simulink i MATRIXx. Bazat pe un formalism
deschis motivat de limbaje sincrone extins la dinamica timpului
continuu, Scicos poate fi folosit pentru a modela i simula sisteme
dinamice hibride. El utilizeaz infrastructura de calcul a SCILAB-ului,
respectiv organizarea matriceala a variabilelor. Principalul avantaj
este interfaa comod cu utilizatorul, acesta avnd la dispozitie
blocuri ce realizeaz diferite funcii: matematice, de conectare, de
vizualizare etc. Prin interconectarea acestora, pe baza modelelor
matematice ale sistemelor simulate, se construiesc modele
complexe. La randul lor, acestea pot fi grupate, creandu-se noi
blocuri, ce pot fi n continuare interconectate. Blocurile sunt
organizate n biblioteci. Un bloc Scicos poate avea 2 tipuri de intrri
i ieiri:
intrare regular (de obicei aezat pe margini)
ieire regular (de asemenea pe margini)
intrare de activare (de obicei aezat sus)
ieire de activare (de obicei aezat jos)
Intrrile i ieirile regulare sunt folosite pentru a comunica date de la
un bloc la altul prin legturi, intrrile i ieirile de activare sunt
conectate de legturi de activare care transmit informaia de control
(activare).
Descrierea modului de lansare a opiunii Scicos i a
componentei bibliotecilor se va realiza considerandu-se varianta
SCILAB 3.0.

2. Construcia diagramelor 2. Construcia diagramelor 2. Construcia diagramelor 2. Construcia diagramelor

Folosind Scicos Scicos Scicos Scicos din Applica Applica Applica Applications tions tions tions se pot realiza diverse diagrame
i simulri n fereastra care se deschide.



Deschiderea bibliotecilor se realizeaz fcnd click pe opiunea
Palettes Palettes Palettes Palettes din Edit Edit Edit Edit (sau clic dreapta cu mouse-ul),


Pentru realizarea diagramelor se pot alege obiecte folosind:
Sources Sources Sources Sources: blocuri ce reprezint surse de semnale (sinusoidal,
constant, generator de semnal, etc.).


Sinks Sinks Sinks Sinks: blocuri de vizualizare a semnalelor, pot fi modificate
rezoluiile pe vertical i orizontal, n funcie de domeniile
semnalelor vizualizate.

Liniar Liniar Liniar Liniar: blocuri de calcule matematice lineare.



Non Non Non Non- -- -linear linear linear linear: blocuri de calcule matematice nelineare, funcii
trigonometrice, funcii SCILAB.



Events Events Events Events: blocuri referitoare la evenimente



Threshold Threshold Threshold Threshold: butoane de toleran




Others Others Others Others: butoane relaionale, logice, etc.



Branching Branching Branching Branching: butoane de transformare.




Electri Electri Electri Electrical cal cal cal: blocuri pentru circuite electrice



Hydraulics Hydraulics Hydraulics Hydraulics: blocuri hidraulice



2.1. Realizarea unui model 2.1. Realizarea unui model 2.1. Realizarea unui model 2.1. Realizarea unui model

Deschiderea unei noi ferestre de modelare se poate face alegnd
opiunea New New New New al meniului Diagram Diagram Diagram Diagram. Plasarea blocurilor n noua
schem se realizeaz prin drag-area = tragerea acestora (apasarea
butonului din stnga al mouse-ului pe blocul necesar) i poziionarea
blocului n noua schem. Unele blocuri au posibilitatea actualizrii
parametrilor, acetia avnd valori implicite pentru blocurile luate din
biblioteci. Facnd dublu click pe fiecare bloc, se va deschide o
fereastra de dialog n care se introduc noile valori ale parametrilor
blocului respectiv. Interconectarea blocurilor se realizeaz prin
unirea (cu butonul din stnga) apsat al unei borne de ieire a unui
bloc cu o born de intrare a altui bloc ( urmarii modificarea tipului
de cursor pentru a vedea cand poate fi eliberat butonul mouse-ului.
Un punct de conexiune (conectare) a unei ieiri la intrrile mai
multor blocuri se realizeaz fcnd click dreapta pe prima legatur i
tragerea acesteia spre celelalte intrri.
Se pot introduce instruciuni cu ajutorul ferestrei de dialog obinute
prin accesarea optiunii Context Context Context Context (clic dreapta cu mouse-ul).










Dup realizarea schemei bloc corespunzatoare modelului matematic
se plaseaz blocurile de vizualizare; (cel mai frecvent Scope-
Osciloscop din biblioteca Sinks). Acestea trebuie activate (dublu
click), deschizndu-se fereastra ce conine ecranul osciloscopului,
putndu-se n acest moment modifica configurarea osciloscopului.
Pentru a vizualiza mai multe semnale n acelai sistem de axe,
semnalele vor fi multiplexate, conectate la intrarile unui bloc Mux,
ieirea acestuia conectndu-se la un osciloscop avnd un singur
sistem de axe.

2.2 Stabilirea parametrilor simulrii 2.2 Stabilirea parametrilor simulrii 2.2 Stabilirea parametrilor simulrii 2.2 Stabilirea parametrilor simulrii

Dup realizarea modelului se selecteaz parametrii simulrii din
fereastra Set Block properties Set Block properties Set Block properties Set Block properties (meniul Simulate/Setup) momentul
nceperii simulrii, durata simularii, metoda de integrare, pasul
maxim de integrare, eroarea.


In ceea ce priveste metoda de integrare, Scicos prezint iniial n
fereastra de modificare a parametrilor simulrii metoda implicit
aleas n funcie de structura modelului. Aceasta poate fi schimbat,
alegandu-se ntre o metoda cu pas variabil de integrare i una cu pas
fix. Metoda de integrare cu pas variabil implicit aleas este ode45,
ceea ce constituie metoda de integrare Runge-Kutta de ordinul 5, ce
ofer rezultate bune pentru majoritatea modelelor de tip continuu.
Metodele de integrare cu pas fix sunt variante ale celor cu pas
variabil. Lansarea n execuie se face din meniul Simulate/Run.
Salvarea unui model se poate realiza cu comanda din meniul
Diagram-Save As..., specificandu-se directorul i numele sub care
va fi salvat (Nu facei salvri dect dect dect dect n directorul propriu de lucru!).

Exemple Exemple Exemple Exemple

Scicos din Scilab este asemntor cu simulink din mathlab, un
simulator i constructor de sistem dinamic, este putin dificil de
folosit deoarece trebuie asociat semnalul de activare de timp unor
anumite blocuri. O dat ce conceptul de activare de timp este
manevrat restul este uor. Scicos are interfaca grafic uzual pentru
a alege i a modifica dinamic sisteme de blocuri. Blocuri noi pot fi
definite de utilizator in C, Fortran sau Scilab. De fapt Scicos nu este
doar o versiune de diagrame de blocuri a unui sistem dinamic de
simulare, este construit n jurul unui formalism de sisteme hibride,
precum activarea timpului, etc. Folosind exemple simple, se va arta
cum modelele hibride (timp continuu sau discret) pot fi construite n
acest formalism. Se va arta, de asemenea, c acest formalism este
strans legat de limbajele sincrone.
Scicos include un copilator, acesta folosete descrierea modelului, de
obicei compilat de editorul Scicos, pentru a construi tabele de
program (orar) care apoi pot fi folosite de simulator i de funcii de
generare de cod. Include, de asemenea, un simulator, simulatorul
Scicos foloseste tabele de orar i alte informaii puse la dispoziie de
compilator pentru a rula simularea. Simulatorul este de natur
hibrid, adic are de-a face cu sisteme de timp sau eveniment
discrete sau continui. Pentru partea de timp continuu foloseste o
parte de rezolvare ODE LSODAR sau DAE DASKR, depinznd de
natura sistemului de timp continuu considerat, i include i un
generator de cod: Scicos poate genera cod C pentru realizarea
comportamentului unor subsiteme. Aceste subsisteme nu trebuie s
includ componente de timp continuu.

Exemplul 1 Exemplul 1 Exemplul 1 Exemplul 1

Un script simplu n Scicos pentru simularea rspunsului sinusoidalei
ntr-un circuit, captureaz cateva lucruri eseniale n folosirea la
inceput a Scicosului. Diagrama de blocuri i rezultatul n modul de
reprezentare Scicos este prezentat n aplicaia urmatoare.



Dup ce se contruiete modelul fixnd blocurile i legturile
corespunzatoare se definesc proprietile fiecarui bloc n parte,
astfel pentru blocurile:
sinusoid generator

num(s)/den(s)

scope

ceas

Se lanseaz simularea

i se observ efectele: apare graficul din fereastra de mai jos i n
fereastra de comand apare valoarea corespunztoare blocului de
calcul: 0.890625.



Tema Tema Tema Tema: s se modifice schema modelului conform imaginii de mai jos
apoi s se observe efectele.

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