Linjär algebra

Genius implementerar många användbara rutiner för linjär algebra och matrismanipulation. Se avsnitten för Linjär algebra och Matrismanipulering i funktionslistan för GEL.

Linjär algebra-rutinerna som är implementerade i GEL kommer för närvarande inte från något vältestat numeriskt paket, och bör därmed inte användas för kritiska numeriska beräkningar. Å andra sidan implementerar Genius många linjär algebra-operationer med bråk- och heltalskoefficienter på ett mycket bra sätt. Dessa är medfött exakta och kommer faktiskt ge dig mycket bättre resultat än vanliga dubbelprecisionsrutiner för linjär algebra.

Till exempel är det meningslöst att beräkna rang och nollrum för en flyttalsmatris eftersom för alla praktiska ändamål måste vi anse att matrisen har små fel. Du kommer mycket möjligt att få ett annat resultat än du förväntar dig. Problemet är att under en liten störning är varje matris av full rang och inverterbar. Om matrisen består av rationella tal är dock rangen och nollrummet alltid exakt.

Allmänt då Genius beräknar basen av ett särskilt vektorrum (till exempel med NullSpace) kommer det ge basen som en matris, i vilken kolumnerna är vektorerna för basen. Det vill säga att då Genius pratar om ett linjärt underrum menar det en matris vars kolumnrum är det angivna linjära underrummet.

Det bör noteras att Genius kan komma ihåg vissa egenskaper hos en matris. Till exempel kommer det att komma ihåg att en matris är i radreducerad form. Om många anrop görs till funktioner som internt använder radreducerad form av matrisen kan vi helt enkelt först radreducera matrisen en gång. Upprepade anrop till rref kommer att vara väldigt snabba.