
I polinomi su Matlab
In questa lezione di Matlab ti spiego come lavorare con i polinomi facendo qualche esempio pratico.
Cos'è un polinomio? Un polinomio è un'espressione composta da costanti e variabili (monomi) con esponenti interi combinate usando le operazioni di addizione, sottrazione, moltiplicazione e divisione. Ad esempio, questo è un polinomio di quarto grado $$ P(x) = x^4 + 2x^3 - x^2 + 4x +1 $$ Il grado del polinomio è l'esponente maggiore della variabile incognita x.
Come definire un polinomio su Matlab
Considera questo polinomio
$$ P(x) = x^4 + 2x^3 - x^2 + 4x +1 $$
Il polinomio ha una sola variabile incognita (x).
Per usarlo su Matlab devi definire un vettore contenente i coefficiente numerici dei termini.
>> P = [1 2 -1 4 1]
La variabile P è un array con i coefficienti numerici del polinomio P(x)=x4+2x3-x2+4x+1.
- Il primo elemento dell'array è il coefficiente 1 di x4
- Il secondo elemento dell'array è il coefficiente 2 di 2x3
- Il terzo elemento dell'array è il coefficiente -1 di -x2
- Il quarto elemento dell'array è il coefficiente 4 di 4x
- Il quinto elemento dell'array è il coefficiente 1 di +1
Nota. Quando manca un grado intermedio della variabile devi considerare il coefficiente 0. Ad esempio, in questo polinomio manca x2 $$ P2(x)= x^3+2x-1 $$ In questo caso dei creare un array inserendo il coefficiente 0 nella seconda posizione >> P2 = [1 0 2 -1]
Una volta creata puoi usarla per calcolare i valori del polinomio P(x) al variare della variabile x tramite la funzione polyval().
Ad esempio, per calcolare il valore del polinomio P(x) quando x=0 digita polyval(P,0)
>> polyval(P,0)
Matlab sostituisce all'incognita x il valore zero e restituisce il risultato.
In questo caso il risultato è 1
ans = 1
Verifica. Puoi fare una rapida verifica sostituendo x=0 nel polonomio $$ P(0) = x^4 + 2x^3 - x^2 + 4x +1 $$ $$ P(0) = (0)^4 + 2 \cdot 0^3 - 0^2 + 4 \cdot 0 +1 $$ $$ P(0)=1 $$ Il risultato è 1.
Allo stesso modo puoi calcolare il valore del polinomio P(x) quando x=1 digitando polyval(P,1)
>> polyval(P,1)
In questo caso il risultato è 7
ans = 7
Verifica. Per verificare il risultato sostituisci x=1 nel polinomio $$ P(1) = x^4 + 2x^3 - x^2 + 4x +1 $$ $$ P(1) = (1)^4 + 2 \cdot 1^3 - 1^2 + 4 \cdot 1 +1 $$ $$ P(1)=1+2-1+4+1 $$ $$ P(1)=7 $$ Il risultato è 1.
Volendo puoi anche calcolare il valore del polinomio in un intervallo di valori della variabile x.
Ad esempio, digita x=0:5 per creare un array x con i valori da 0 a 5
>> x=0:5
x =
0 1 2 3 4 5
Ora calcola i valori del polinomio nell'intervallo da 0 a 5 tramite la funzione polyval(P,x)
>> polyval(P,x)
La funzione calcola i valori del polinomio per ogni elemento dell'array x
In questo caso il risultato è un array composto da 6 elementi
ans =
1 7 37 139 385 871
Ogni elemento è il valore del polinomio nell'intervallo (0,5)
Nota. Il primo elemento dell'array è P(0)=1 quando x=0. Il secondo elemento è P(1)=7 quando x=1. Il terzo elemento è P(2)=37. Il quarto elemento è P(3)=139. E via dicendo.
L'utilizzo degli array ti permettono di svolgere rapidamente qualsiasi calcolo.
Inoltre, ti consentono anche di rappresentare graficamente il polinomio su un diagramma cartesiano tramite la funzione plot().
Ad esempio, digita questi comandi in sequenza
>> x=0:5;
>> P = [1 2 -1 4 1] ;
>> y=polyval(P,x);
>> plot(x,y);
Il risultato è il grafico del polinomio nell'intervallo (0,5).
Sull'asse orizzontale sono misurati i valori della variabile incognita x, mentre sull'asse verticale quelli del polinomio y.
Le operazioni tra polinomi
Puoi usare Matlab anche per eseguire le operazioni con i polinomi.
Ti faccio un esempio pratico.
Definisci il polinomio x3+2x2+3 nell'array P1
>> P1 = [ 1 2 0 3 ]
Poi definisci il polinomio 2x3-x2+3x+1 nell'array P2
>> P2 = [ 2 -1 3 1 ]
Ora svolgi queste operazioni
Addizione
Per sommare i due polinomi digita P1+P2
>> P1+P2
ans =
3 1 3 4
Il risultato è il polinomio 3x3+x2+x+4
Verifica. Svolgi i calcoli algebrici per verificare se la somma è corretta. $$ P_1(x) + P_2(x) = (x^3+2x^2+3) + (2x^3-x^2+3x+1) $$ $$ P_1(x) + P_2(x) = x^3+ 2x^3+2x^2-x^2+3x+1+3 $$ $$ P_1(x) + P_2(x) = 3x^3+x^2+3x+4 $$
Sottrazione
Per calcolare la differenza tra i polinomi digita P1-P2
>> P1-P2
ans =
-1 3 -3 2
Il risultato è il polinomio -x3+3x2-3x+2
Verifica. Svolgi i calcoli algebrici per verificare se la differenza è corretta. $$ P_1(x) - P_2(x) = (x^3+2x^2+3) - (2x^3-x^2+3x+1) $$ $$ P_1(x) - P_2(x) = x^3- 2x^3+2x^2+x^2-3x+1-3 $$ $$ P_1(x) + P_2(x) = -x^3+3x^2-3x-2 $$
Moltiplicazione
Per calcolare il prodotto tra i polinomi P1·P2 devi usare la funzione di convoluzione conv()
>> >> conv(P1,P2)
ans =
2 3 1 13 -1 9 3
Il risultato è il polinomio 2x6+3x5+x4+13x3-x2+9x+3
Verifica. Svolgi i calcoli algebrici per verificare se il prodotto è corretto. $$ P_1(x) \cdot P_2(x) = (x^3+2x^2+3) \cdot (2x^3-x^2+3x+1) $$ In questo caso il calcolo è un pò lungo. $$ P_1(x) \cdot P_2(x) = x^3 \cdot (2x^3-x^2+3x+1) + 2x^2 \cdot (2x^3-x^2+3x+1) + \\ \ \ + 3 \cdot (2x^3-x^2+3x+1) $$ $$ P_1(x) \cdot P_2(x) = 2x^6-x^5+3x^4+x^3 + 4x^5-2x^4+6x^3+2x^2 + \\ \ \ + 6x^3-3x^2+9x+3 $$ $$ P_1(x) \cdot P_2(x) = 2x^6+(4x^5-x^5)+(3x^4-2x^4)+(x^3 +6x^3+ 6x^3) + \\ \ \ + (2x^2-3x^2)+9x+3 $$ $$ P_1(x) \cdot P_2(x) = 2x^6+3x^5+x^4+13x^3 -x^2+9x+3 $$
Divisione
Per calcolare il quoziente di due polinomi devi usare la funzione di deconvoluzione deconv()
>> [q,r] = deconv(P1,P2)
q = 0.50000
r = 0.00000 2.50000 -1.50000 2.50000
La funzione deconv() restituisce due output
- il polinomio quoziente (q)
- il polinomio resto (r)
Il risultato è il polinomio quoziente q=0,5
$$ Q = \frac{1}{2} $$
con resto r=2,5x2-1,5x+2,5
$$ R = \frac{5}{2} x^2 - \frac{3}{2} x + \frac{5}{2} $$
Verifica. Svolgi i calcoli algebrici per verificare se il prodotto è corretto. $$ P_1(x) : P_2(x) = \frac{x^3+2x^2+3}{2x^3-x^2+3x+1} $$ Anche in questo caso il calcolo è un pò lungo.
Il polinomio quoziente è $$ Q= \frac{1}{2} $$ con resto $$ R = \frac{5}{2} x^2 - \frac{3}{2} x + \frac{5}{2} $$ Moltiplica il quoziente per il polinomio divisore e somma il resto $$ Q \cdot (2x^3 -x^2+3x+1) + R $$ $$ \frac{1}{2} \cdot (2x^3 -x^2+3x+1) + \frac{5}{2} x^2 - \frac{3}{2} x + \frac{5}{2} $$ $$ x^3 - \frac{1}{2} x^2+ \frac{3}{2}x+ \frac{1}{2}+ \frac{5}{2} x^2 - \frac{3}{2} x + \frac{5}{2} $$ $$ x^3 + \frac{5-1}{2} x^2+ \frac{3-3}{2}x+ \frac{5+1}{2} $$ $$ x^3 + \frac{4}{2} x^2+ \frac{0}{2}x+ \frac{6}{2} $$ $$ x^3 + 2 x^2+ 3 $$ Il risultato è il polinomio dividendo. Quindi, il risultato della divisione tra i due polinomi è corretto.