next up previous

Espressioni


  
Come altri linguaggi di programmazione, MATLAB prevede espressioni matematiche, ma queste espressioni  
coinvolgono matrici intere. Il blocco di espressioni è:  

•Variables  
•Numbers  
•Operators  
•Functions 
 
Variabili 

MATLAB non richiede alcuna dichiarazione del tipo della dimensione.  
Quando MATLAB incontra un nome variabile nuovo, crea automaticamente la  
variabile e stanzia l'ammontare adatto in deposito. Se la variabile  
già esiste, MATLAB cambia i suoi contenuti e, se necessario, effettua un nuovo  
deposito. 
Per esempio 
 
num_students = 25 
 
crea una 1-by-1 matrice di nome num_students e immagazzina il valore 25 come suo  
singolo elemento.  
I nomi delle variabili consistono di una lettera, seguita da qualsiasi numero di lettere, cifre o  
sottolinea. MATLAB usa solamente i primi 31 caratteri di un nome di una variabile.  
MATLAB è case sensitive; distingue tra uppercase e lowercase . 
A e a non sono la stessa variabile. Per vedere la matrice assegnata a ciascuna  
variabile, semplicemente digitare il nome della variabile.  

Numeri  

MATLAB usa notazione decimale.
La notazione scientifica usa la lettera  
e per specificare la potenza decimale.I numeri immaginari usano i o j, come  
un suffisso. Degli esempi di numeri legali sono:  

3                     -99                    0.0001  
9.6397238              1.60210e-20           6.02252e23  
1i                    -3.14159j              3e5i 
  
Tutti i numeri che usano la configurazione lunga specificata dall'IEEE sono immagazzinati 
internamente con lo standard floating-point.
I numeri floating-point hanno una precisione limitata di  
16 cifre decimali significative e una serie limitata da 10 -308 a  
10 +308. (Il computer VAX usa una configurazione diversa, ma la sua  
precisione e serie sono quasi le stesse.)  

Operatori 
 
Le espressioni usano operatori di aritmetica familiari e le regole della precedenza.  

Funzioni 
 
MATLAB prevede un gran numero di funzioni matematiche standard, 
incluso abs, sqrt, exp, e sin. La radice quadrata o il  
logaritmo di un numero negativo non è un errore; il risultato complesso   
è prodotto automaticamente. MATLAB prevede anche   
funzioni matematiche molto più avanzate, incluso Bessel e gamma function.
La maggior parte di queste funzioni accettano argomenti complessi.
Per un elenco delle funzioni matematiche elementari, digitare:  

help elfun  
 
+   Addizione    
-   Sottrazione    
*   Moltiplicazione    
/   Divisione    
\   Left division 
 
(sono descritte nella sezione su matrici e Algebra Lineare in MATLAB) 
 
^   potenza  
'   Asse coniugato complesso trasposto  
()  Valutazione specifiche di ordine.

Per un elenco più avanzato delle funzioni matematiche e delle matrici digitare:
 
help specfun  
help elmat  

Alcune delle funzioni, come sqrt e sin, sono calcolate al momento. Loro sono parte del  
cuore di MATLAB quindi sono molto efficienti, ma i dettagli della computazione non sono  
prontamente accessibili. Le altre funzioni, come gamma e sinh sono perfezionate in  
M-files. Lei può vedere il codice e anche cambiarlo .  
Molte funzioni speciali prevedono valori di costanti utili.  
Infinito è generato dividendo un valore diverso da zero per zero, o valutando bene  
espressioni matematiche e definite che tendono all'infinito.  
Not-a-number è generato tentando di valutare espressioni tipo 0/0 o  
Inf-Inf che non hanno valori matematici ben definiti.  
I nomi delle funzione non sono riservati. È possibile utilizzare alcuni di tali nomi  
con una nuova variabile, come:
  
eps = 1.e-6
  
e poi usare quel valore in calcoli susseguenti.
La funzione originale può essere ripristinata con :
 
clear eps 
 
Alcuni nomi sono associati aprecisi valori, come ad esempio:
 
pi                   3.14159265…  
i                    unità Immaginaria, Ö-1  
j                    come i  
Inf                  Infinito  
NaN                  Not-a-number.

Lei già ha visto molti esempi di espressioni di MATLAB. Qui ci sono altri  
esempi, ed i valori che ne risultano. 
 
rho = (1+sqrt(5)) /2  
rho =  
1.6180 
 
a = abs(3+4i)  
a =  
5  

z = sqrt(besselk(4/3,rho-i))  
z =  
0.3730+ 0.3214i  

huge= l'exp(log(realmax))  
huge =  
1.7977e+308  

toobig = il pi*huge  
toobig =  
Inf.