Sistemi lineari

Un sistema lineare di n equazioni in m incognite è completamente descritto in termini di una matrice n x m e di un vettore a n componenti: si cercano i vettori x a m componenti tali che A*x = b . Per risolvere sistemi lineari con Maple si usa il comando linsolve .

> A := matrix(3,5,
[-4, 6, 4, 4, 9,
0, 3, 7, -3, 2,
8, 9, -8, 1, -6]):
b := vector([-3, -5, 6]):
linsolve(A,b);

Questo sistema lineare ha infinite soluzioni che dipendono da due parametri (assegnando valori arbitrari a _t[1] e _t[2] si ottengono tutte e sole le soluzioni del sistema.

> A := matrix(5,5,
[-4, 6, 4, 4, 9,
0, 3, 7, -3, 2,
8, 9, -8, 1, -6,
-9, 7, 5, 8, -5,
-6, -2, -1, 5, 0]):
b := vector([-3, -5, 6, 0, -2]):
linsolve(A,b);

Questo sistema lineare ha una unica soluzione.

> A := matrix(5,3,
[-4, 6, 4,
0, 3, 7,
8, 9, -8,
-9, 7, 5,
-6, -2, -1]):
b := vector([-3, -5, 6, 0, -2]):
linsolve(A,b);

>

Perché non ha fatto niente?

> A := matrix(5,3,
[-4, 6, 4,
0, 3, 7,
8, 9, -8,
-9, 7, 5,
-6, -2, -1]):
b := vector([-5, 6, 0, -2]):linsolve(A,b);

Perché questo errore?

Per risolvere sistemi lineari, si potrebbe usare il comando solve. linsolve, oltre a essere più efficiente, ci risparmia la fatica di scrivere esplicitamente il sistema di equazioni con tutte le variabili.

Osservazione

Anche con linsolve, come con solve, va usata molta cauteala con sistemi lineari in cui compaiano dei parametri

> A:=matrix(2,2,[k,1,1,k]);
b:=vector([1,k]);
linsolve (A,b);

Un trucco per costringere Maple a mostrare i problemi che ci sono è quello di sostituire il vettore con un vettore i ndeterminato e quindi risolvere

> x:=vector(2);
linsolve (A,x);

È evidente che i casi k = 1 e k = -1 vanno analizzati separatamente.