
Le variabili simboliche su Matlab
In questa lezione di Matlab ti spiego come dichiarare una variabile simbolica.
Cos'è una variabile simbolica? E' una variabile speciale che memorizza solo il simbolo (ad esempio x) per svolgere i calcoli. Non memorizza un numero specifico. Questo ti permette di svolgere il calcolo algebrico simbolico con una o più incognite. Ad esempio, puoi risolvere le equazioni a due o più incognite o sommare due polinomi.
Per definire una variabile simbolica usa la funzione syms
>> syms x
Puoi anche definire più variabili simboliche contemporaneamente tramite un'unica funzione syms.
In questo caso devi indicarle una dopo l'altra separate da uno spazio.
>> syms x y
Ogni volta che dichiari una variabile simbolica puoi vederla nel workspace (area lavoro) di Matlab.
Le variabili simboliche sono associate alla classe sym.
Ti faccio un esempio pratico.
Hai due polinomi.
$$ P(x) = 2x + y $$
$$ Q(x) = 4x - 2y $$
Devi moltiplicare due polinomi tra loro
$$ P(x) \cdot Q(x) = (2x + y) \cdot (4x - 2y) $$
Per svolgere questo calcolo algebrico su Matlab definisci le due variabili simboliche x e y tramite il comando syms x y
>> syms x y
Poi digita questa espressione pq = (2*x+y)*(4*x-2*y) sulla riga di comando
>> pq = (2*x+y)*(4*x-2*y)
ans =
(4*x - 2*y)*(2*x + y)
Matlab riconosce le variabili x e y come simboli e definisce l'espressione simbolica
In questo caso Matlab non sostituisce le variabili x e y con dei numeri ma le utilizza come i simboli di due variabili incognite
Per svolgere i calcoli algebrici usa la funzione expand(pq)
>> expand(pq)
ans =
8*x^2 - 2*y^2
Matlab svolge il calcolo simbolico tipico dell'algebra restituendo il prodotto tra i due polinomi.
Il risultato è l'espressione 8x2-2y2
Verifica. Per verificare il risultato svolgi il prodotto algebrico tra i due polinomi. $$ P(x) \cdot Q(x) = (2x + y) \cdot (4x - 2y) $$ $$ P(x) \cdot Q(x) =2x \cdot 4x + 2x \cdot (-2y) + y \cdot 4x + y \cdot (-2y) $$ $$ P(x) \cdot Q(x) =8x^2 - 4xy + 4xy -2y^2 $$ $$ P(x) \cdot Q(x) =8x^2 -2y^2 $$ Il risultato è corretto.