Sunteți pe pagina 1din 4

3.

Variabile si constante speciale in Matlab

In Matlab exista o serie de variabile si constante cu anumite semnificatii , care nu trebuie


declarate si sunt accesibile global in orice fisier de tip .m . Dintre acestea mentionam cateva:

ans - cel mai recent raspuns (l.e., answer =raspuns). Este variabila creata in mod automat,
careia i se atribuie valoarea celei mai recente expresii neasignate.
Exemple:
>x=1.5; y=0.10; x^y

<Enter>

ans =
1.0414
Deci variabilei ans i se atribuie valoarea expresiei x^y.
> a=[1 2 3 4 5]; a>=2, ans-1 <Enter>
ans =
0

ans =
-1

In acest caz, variabilei ans i se atribuie mai intai vectorul cu elementele 0 sau 1 dupa cum este indeplinita sau
nu conditia a>=2, dupa care i se atribuie vactorul cu elementele ans-1.

eps - returneaza precizia relativa in reprezentarea numerelor in modul virgula mobila


(epsilon masina, distanta dintre 1 si urmatorul numar reprezentabil in virgula mobila). In unele
functii Matlab, eps reprezinta toleranta implicita (eroarea maxima admisa, criteriul de
convergenta) in aproximarea solutiei, atribuita prin program, cu valoare diferita, in general, de
precizia masinii.
Exemple:
>eps

<Enter>

ans =
2.220446049250313e-016
> epsc=1; while 1+epsc>1; epsc=epsc/2; end; epsc=2*epsc <Enter>
epsc =
2.220446049250313e-016
Se observa ca epsc=eps si acest exemplu reprezinta un mod practic pentru determinarea
preciziei curente a masinii.
>1+eps>1, 1+eps/2>1
ans =
1
ans =
0

<Enter>

In acest caz, pentru 1+eps>1 se obtine valoarea 1, corespunzand valorii logice adevarat,
in timp ce pentru 1+eps/2>1 se obtine valoarea 0, corespunzand valorii logice fals, raspuns
incorect datorat preciziei limitate in reprezentarea numerelor in modul virgula mobila.

pi - returneaza valoarea numarului ;


Exemple:
> pi

<Enter>

ans =
3.141592653589793e+000
>4*atan(1)

<Enter>

ans =
3.141592653589793e+000
>log(-1)

<Enter>

ans =
0 +3.141592653589793e+0001
>sin(pi)

<Enter>

ans =
1.224606353822377e-016
Valoarea functiei sin(pi) este foarte mica, dar nu zero, datorita erorilor care decurg din
reprezentarea in virgula mobila a numerelor pe un numar finit de biti.

i si j - unitati imaginare, folosite pentru reprezentarea numerelor complexe; pot fi folosite si


ca nume de variabile, de regula pentru variabilele de ciclare in instructiunile de calcul repetitiv,
prin redefinirea lor.
Exemple:
>i, j

<Enter>

ans =
0 + 1.00000000000000i
ans =
0 + 1.00000000000000i
>a=1+3i, b=2+4j, c=a+b

<Enter>

a=
1.0000 + 3.0000i
b=
2.0000 + 4.0000i
c=
3.0000 + 7.0000i
> for i=1:10; a(i)=i/2; end; a

<Enter>

a=
Columns 1 through 7
0.5000

1.0000

1.5000

2.0000

2.5000

3.0000

3.5000

Columns 8 through 10
4.0000

4.5000

5.0000

In acest caz, i este variabila de ciclare a calculelor si nu mai reprezinta, in continuare, unitatea
imaginara.

Inf - plus infinit, reprezentat in aritmetica virgula mobila; in calcule, se obtine ca rezultat al
impartirii unui numar prin zero sau prin depasirea celui mai mare numar reprezentabil in
aritmetica curenta (overflow).
Exemple:
>1/0, exp(710), Inf+Inf

<Enter>

Warning: Divide by zero.


ans =
Inf
ans =
Inf
ans =
Inf

NaN - Nu este un numar (l. e., Not-a-Number), in aritmetica virgula mobila. Se obtine ca
rezultat al unor operatii: 0/0, Inf/Inf, Inf-Inf s.a.
Exemple:
>0/0, Inf/Inf, Inf-Inf, Nan-NaN

<Enter>

Warning: Divide by zero.


ans =
NaN
ans =
NaN
ans =
NaN
ans =
NaN

realmax - cel mai mare numar pozitiv reprezentabil in virgula mobila pe calculatorul curent.
Exemple:
>x=realmax, x+1.0e+291, x+1.0e+292, x+x
x=
1.797693134862316e+308

ans =
1.797693134862316e+308

<Enter>

ans =
Inf
ans =
Inf

realmin - cel mai mic numar pozitiv reprezentat normalizat in modul virgula mobila; orice
numar mai mic este egalat cu zero sau reprezentat denormal in modul virgula mobila.
Exemple:
> realmin

<Enter>

ans =
2.225073858507202e-308
> realmin/1.0e+015, realmin/1.0e+016, realmin/realmax
ans =
2.470328229206233e-323
ans =
0
ans =
0

<Enter>

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