venerdì 29 novembre 2013

Come calcolare la radice quadrata in Matlab

Come calcolare la radice quadrata in Matlab
Come calcolare la radice quadrata in Matlab
La radice quadrata di un numero x è un numero y tale che il suo quadrato sia x. Ogni numero reale non negativo ha un'unica radice quadrata non negativa, chiamata radice quadrata principale. Ogni numero reale maggiore di zero ha due radici quadrate distinte, quella principale e il suo opposto.

Il concetto di radice quadrata può essere esteso ai numeri negativi nell'ambito dei numeri complessi. Più generalmente, il concetto di radice quadrata può essere esteso in qualunque contesto in cui sia ben definita la nozione di quadrato di un elemento.

In ambiente Matlab la funzione che calcola la radice quadrata di un numero è una funzione predefinita che si chiama ‘sqrt’. La funzione sqrt restituisce la radice quadrata di ogni elemento della matrice X. Per gli elementi di X che sono negativi o complessi, sqrt (X) produce risultati complessi.

Esempio:
- Radice di un numero reale non negativo
 
>> sqrt(9)
 
ans =

        3

- Radice di un nuemro complesso

>> sqrt(-i)

ans =

   0.7071 - 0.7071i


LINK DI APPROFONDIMENTO PER L'ARGOMENTO:

martedì 12 novembre 2013

Funzioni per l'inserimento di matrici in Matlab

Funzioni per l'inserimento di matrici in Matlab
Funzioni per l'inserimento di matrici in Matlab
In ambiente Matlab si lavora con le matrici, questo è alla base del funzionamento del software che è stato ideato proprio su tale concetto. La prima operazione da fare quindi, quando si opera in ambiente Matlab è prorpio quella di creare le matrici.

A tal proposito ci vengono in aiuto una serie di funzioni che sono state create con il presupposto di fornire un prezioso aiuto per la costruzione di matrici. Vediamone alcune.

Le funzioni built-in rand,magic, e Hilb, per esempio, forniscono un modo semplice per creare matrici con cui sperimentare le potenzialità di Matlab. 

In particolare il comando rand (n) crea una matrice nxn con gli elementi generati casualmente e distribuiti uniformemente tra 0 e 1, mentre rand (m, n) creerà una matrice mxn con la stessa tecnica. Vediamo degli esempi di applicazioen della funzione rand:

>> rand(2)

ans =

    0.8147    0.1270
    0.9058    0.9134

>> rand(2,3)

ans =

    0.6324    0.2785    0.9575
    0.0975    0.5469    0.9649


La funzione magic (n) invece creerà una matrice nxn integrale che è un quadrato magico e cioè la somma degli elementi preesenti su ogni  riga o colonna fornisce sempre lo stesso risultato:

>> magic(4)

ans =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

La funzione Hilb (n) creerà la matrice nxn di Hilbert, che rappresenta un esempio di matrici mal condizionate (m e nrappresentano , naturalmente , numeri interi positivi):

>> hilb(3)

ans =

    1.0000    0.5000    0.3333
    0.5000    0.3333    0.2500
    0.3333    0.2500    0.2000


C'è da precisare che le matrici possono anche essere generate con un ciclo for, ma questa procedura la vedremo in un'altra lezione.

Per accedere invece alle singole voci di matrici e vettori è possibile utilizzare gli indici tra parentesi nel modo consueto. Per esempio, A (2,3) indica l’elemento nella seconda riga, terza colonna della matrice A e X (3) denota la terza coordinata del vettore x. 

>> A=rand(4,4)

A =

    0.1576    0.8003    0.7922    0.8491
    0.9706    0.1419    0.9595    0.9340
    0.9572    0.4218    0.6557    0.6787
    0.4854    0.9157    0.0357    0.7577

>> A(2,3)

ans =

    0.9595

Una matrice o un vettore accetta solo numeri interi positivi come indici. 

LINK DI APPROFONDIMENTO PER L'ARGOMENTO:


giovedì 7 novembre 2013

Come dividere le matrici in Matlab

Come dividere le matrici in Matlab
Come dividere le matrici in Matlab
Matlab dispone di due procedure per effettuare la divisioni tra matrici: la divisione sinistra e la divisione destra.

Nella divisione a sinistra, che viene eseguita con l'utilizzo del simbolo \ , se A è quadrata, l'operazione viene effettuata usando l’algoritmo di eliminazione di Gauss e questi fattori sono applicati per risolvere un sistema del tipo A* x = b. 

Se A non è quadrata, l'operazione viene effettuata usando l’algoritmo di ortogonalizzazione di Householder con pivoting di colonna e gli elementi vengono utilizzati per risolvere il sotto-sistema o sovra–sistema determinato nel senso minimi quadrati. 

La divisione destra, che viene eseguita con l'utilizzo del simbolo / , è definita negli stessi termini della divisione sinistra solo che si applica alla trasposizione delle matrici: 


b / A = (A ‘\ b’) ‘ 

Di seguito vi propongo una serie di esempi di operazioni sulle matrici per meglio comprendere il funzionamento attraverso il quale il software tratta gli elementi delle matrici.

Se A è una matrice quadrata invertibile e b è una colonna compatibile, allora l’operazione:

x = A \ b  (divisione sinistra)

è la soluzione del sistema A * x = b, mentre l’operazione

x = b / A  (divisione destra)

 è la soluzione del sitema x * a = b.


 LINK DI APPROFONDIMENTO PER L'ARGOMENTO: