lettura facile

Come risolvere un'equazione su Matlab

In questa lezione ti spiego come trovare le soluzioni di un'equazione su Matlab.

Per risolvere un'equazione su Matlab puoi seguire due strade alternative, la prima consiste nell'utilizzo dei polinomi mentre la seconda si basa sul calcolo simbolico.

La funzione roots()

La funzione roots() ti permette di trovare le radici di un polinomio.

roots(P)

Il parametro P della funzione è il polinomio dei coefficienti numerici dell'equazione.

Questa funzione risolve un'equazione di qualsiasi grado a una incognita restituendo le sue radici.

Cosa sono le radici? Sono i valori della variabile incognita x che intersecano l'asse x e rendono nulli i membri dell'equazione sia a destra che a sinistra.

Ti faccio un esempio pratico.

Considera questa semplice equazione di 2° grado a un'incognita

$$ x^2 + 3x = 4 $$

Per risolverla trasforma l'equazione in questa forma equivalente.

Sposta tutti i termini, compreso il termine noto, nel membro di sinistra dell'equazione.

$$ x^2 + 3x -4 = 0 $$

I coefficienti numerici della variabile incognita x sono 1 per x2, 3 per x1 e -4 per x0 (ossia 1).

Scrivi i coefficienti [1 3 -4] dell'equazione in un array seguendo un ordine decrescente di grado.

>> P = [1 3 -4];

Nota. Se uno dei coefficienti numerici intermedi mancasse, inserisci uno zero nella relativa posizione dell'array. Ad esempio, se hai un'equazione del tipo x2+2=0, devi creare comunque un array con tre elementi P1=[1 0 2] perché il coefficiente della x è uguale a zero.

Per trovare le soluzioni dell'equazione usa la funzione roots()

>> roots(P)

La funzione restituisce le radici dell'equazione.

In questo caso sono x1=-4 e x2=1.

ans =
-4
1

Per una rapida verifica digita polyval(P,roots(P)) sulla riga di comando.

>> polyval(P,roots(P))

ans =
0
0

Questo comando calcola i valori dell'equazione nelle radici ottenute dalla funzione roots(P).

Entrambi i valori rendono l'equazione x2+3x-4=0 uguale a zero. Quindi, l'equazione è risolta.

 

Verifica. Verifica la prima soluzione. Sostituisci x=-4 nell'equazione. $$ x^2 + 3x -4 = 0 $$ $$ (-4)^2 + 3 \cdot (-4) -4 = 0 $$ $$ 16 -12 -4 = 0 $$ $$ 0 = 0 $$ Ora verifica la seconda soluzione. Sostituisci x=1 nell'equazione. $$ x^2 + 3x -4 = 0 $$ $$ (1)^2 + 3 \cdot 1 -4 = 0 $$ $$ 1 + 3 -4 = 0 $$ $$ 0 = 0 $$ Entrambi i valori risolvono l'equazione.

Cosa accade se l'equazione non ha soluzioni?

Se l'equazione non ha soluzioni nei numeri reali, la funzione roots() restituisce le soluzioni nei numeri complessi.

Ad esempio, questa equazione di 4° grado non ha soluzioni reali

$$ x^4 + 3x^2 - 2x +1 = 0 $$

Scrivi un array con i coefficienti numerici dell'equazione x4+3x2-2x+1=0

>> P = [1 0 3 -2 1]

Poi digita roots(P) per trovare le soluzioni

>> roots(P)

In questo caso la funzione roots() non trova le soluzioni reali.

Quindi restituisce le soluzioni complesse dell'equazione dove i è l'unità immaginaria.

ans =
-0.34975 + 1.74698i
-0.34975 - 1.74698i
0.34975 + 0.43899i
0.34975 - 0.43899i

La funzione solve()

La funzione solve() ti permette di trovare la soluzione di un'equazione simbolica.

solve(eqz)

Il parametro della funzione è l'equazione simbolica che vuoi risolvere.

Nota. In questo caso per risolvere l'equazione devi usare il calcolo simbolico. In pratica devi definire le variabili incognite del problema come simboli, definire l'equazione simbolica e, infine, trovare le soluzioni tramite la funzione solve().

Ti faccio un esempio pratico.

Considera la stessa equazione di 2° grado a un'incognita dell'esempio precedente.

$$ x^2 + 3x = 4 $$

Trasforma l'equazione in forma normale spostando tutti i termini a sinistra.

$$ x^2 + 3x - 4 = 0 $$

Definisci la variabile incognita come variabile simbolica tramite la funzione syms

>> syms x

Poi definisci l'equazione simbolica e assegnala alla variabile eqz

>> eqz = x^2+3*x-4

Infine, trova le soluzioni dell'equazione usando la funzione solve()

>> solve(eqz)

La funzione solve trova le soluzioni dell'equazione

ans=
-4
1

In questo caso le soluzioni dell'equazione sono x1=-4 e x2=1.

Nota. Puoi usare la funzione solve() e il calcolo simbolico anche per risolvere equazioni con due o più incognite.

In questo modo puoi risolvere un'equazione di qualsiasi grado con Matlab.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin