Le operazioni in Matlab

MATLAB

In MATLAB sono definite le seguenti operazioni aritmetiche:

1) addizione +
2) sottrazione –
3) moltiplicazione *
4) divisione /
5) elevamento a potenza ˆ

Quando l’espressione da valutare è troppo lunga per stare su di un’unica riga di comando,risulta possibile utilizzare un carattere di continuazione dato da . . . (tre punti). Ad esempio:

>> 1 + 1/4 + …
1/8

ans =

    1.3750

E’ possibile verificare che poichè in MATLAB non vi è alcuna distinzione tra variabili intere, reali o complesse, il risultato dell’operazione di elevamento a potenza nel caso di esponenti frazionari può non corrispondere a quello naturalmente atteso. Ad esempio, volendo calcolare la radice cubica di -5, si ottiene:

>>  (-9)^(1/5)

ans =

   1.2555 + 0.9122i

quindi un numero immagginario al posto di un numero reale. Il problema è dovuto al fatto che MATLAB, lavorando in notazione complessa, calcola come prima radice cubica di -9 una delle due con parte immaginaria non nulla.

Anche in MATLAB è possibile alterare le precedenze classiche delle operazioni aritmetiche mediante l’uso opportuno delle parentesi tonde. Ad esempio, se nel caso precedente si fosse scritto ( – 9)*1/5 si sarebbe ottenuto il valore -1.8000 ossia, giustamente, – 9/5.

>> (- 9)*1/5

ans =

   -1.8000

operazioni.matlab

Per quanto riguarda i vettori, le operazioni elementari si estendono (quando ben definite) in modo del tutto naturale, con l’eccezione delle operazioni di divisione e di elevamento a potenza. Ad esempio,

>> a = [1:4];
>> b = [1:3];
>> c = [3 2 6 -1] ;

>> a+c (somma di vettori riga)

ans =

     4     4     9     3

>> a-c (differenza di vettori riga)

ans =

    -2     0    -3     5

>> a+b
??? Error using ==> plus
Matrix dimensions must agree.
 
>> a*c
??? Error using ==> mtimes
Inner matrix dimensions must agree.

Le ultime istruzioni ci indicano che, le operazioni fra vettori sono valide solo se le dimensioni sono consistenti. Infatti, dato un vettore riga s di dimensione n (ossia una matrice 1 * n) ed un vettore colonna d di dimensione m, si potrà eseguire il prodotto scalare s*d solo se m=n (ottenendo in tal caso uno scalare).

>> s=[1:4];

>> d=[1;2;3;4];

>> s*d

ans=
             30

Quindi d*s fornirà una matrice m*n.

>> s=[1:4];

>> d=[1;2;3;4];

>> M=d*s

M =

     1     2     3     4
     2     4     6     8
     3     6     9    12
     4     8    12    16

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

MATLAB

Leave a Reply

Your email address will not be published. Required fields are marked *