Soluzione
Risolviamo il sistema lineare omogeneo, e per determinare una base del nucleo, assegnamo valori 0 e 1 ai parametri
> soluzioni := linsolve(A,vector(4,0));
>
base := [
subs(_t[1]=1,_t[2]=0,evalm(soluzioni)),
subs(_t[1]=0,_t[2]=1,evalm(soluzioni))
];
questo poteva essere fatto con il comando kernel
> base:=kernel(A);
concludiamo l'esercizio come prima
> base_ortonormale:=GramSchmidt(base,'normalized');
Questa volta per applicare la formula della proiezione ortogonale usiamo il comando add , in modo da avere un comando valido anche per basi ortonormali con un numero diverso di elementi
>
v := add(
dotprod(base_ortonormale[i],w)*base_ortonormale[i],
i=1..nops(base_ortonormale));
Ecco il risultato
> evalm(v);