# Lineare Algebra

Mathematik in wxMaxima www.mathematik-verstehen.de Haftendorn Dez 2010

### Handling

Achtung: Durch Anklicken der linken Zellmarkierung kann man die 
Abschnitte und auch einzelne Zellen aufklappen und auch wieder zuklappen.

Endung *.wxmx ist komfortabel. Ist die Endung *.wxm muss man 
erst noch alle Ausgaben neu erzeugen. Mit Strg r  werden alle aufgeklappten Zellen ausgewertet.
Zum Lernen ist es besser die Zellen einzeln (mit Shift+Enter) auszuwerten.

Werte einzelne Zellen aus mit Shift-Enter. 
Auswertung in einem Rutsch: Falte alle Abschnitte auf,
werte alle Zellen mit Strg r aus ( auch Menu Cell Alle Zellen auswerten).

wxMaxima ist über Maxima und Macsyma ein  Lisp-Abkömmling.
Die Sprache Lisp ist Listenorientiert. Daher spielt auch bei
wxMaxima das Listenkonzept eine große Rolle.

### Inhalt

1   Matrizen und Vektoren
    1.1 Definition von Matrizen
    1.2 Verändern von Matrizen
    1.3 Rechnen mit Matrizen
2   Lineare Gleichungssysteme
    2.1 Betrachung der Koeffizientenmatrix
    2.2 Gleichungen, bei denen die Varablen genannt werden
    2.3 Gleichungen, bei deren Lösung Variable belegt werden
    2.4 Lineare Gleichungen mit Matrizen lösen
    2.5 Automatisches Aufstellen des Gleichungssystems
3   Affine Abbildungen

## Matrizen und Vektoren

### Definition von Matrizen

Direkte Eingabe zeilenweise in Listen:

cc:matrix([1,2,3,4],[5,6,7,8],[x,b,c,d]);
bb:matrix([8,9],[-1,2],[3,-4]);

der Doppelpunkt ist in Maxima das Zuweisungszeichen

Interaktive Eingabe, 
Achtung: nach jeder Zeile shift+Enter
Erst /* und */1  löschen, eigefügt, 
damit automatische Auswertung klappt

 /* aa:entermatrix(2,3) */1;

aa:matrix([9,6,-6],[-3,-9,4]);

Wenn man sich bei dieser Methode verschrieben hat, markiert man die Ausgabe,
kopiert sie mit strg c 

### Verändern von Matrizen

Anfügen einer Zeile

aaa:addrow(aa,[0,-7,8]);

bv:transpose(matrix([9,-2,7]));

transpose sorgt für die Spaltenform

aae:addcol(aaa,[9,-2,7]);

Mit addcol kann man aber auch eine einfache Liste als 
Spalte anfügen, bv hätte man auch schreiben können statt [9,-2,7].

So erhält man also die erweiterte Matrix

### Rechnen mit Matrizen

aaa.bb;

Achtung, Multiplikation mit Punkt statt mit dem mal-*

Transponieren einer Matrix

bbt:transpose(bb);

aa+5*aa;

Anfügen einer Zeile

bbb:addrow(bbt,[1,-2,-3]);

Addition, Subtraktion

[aaa+bbb,aaa-bbb];

Wie erwartet komponentenweise, in einer Zeile notiert zum Platzsparen.

## Gleichungssysteme

### Betrachtung der Koeffizienzenmatix

Beispiel das auch am TI Nspire vewendet ist

Fassen wir aae als lineares Gleichungssystem auf.
Drei Variabe, drei Gleichungen mit rechter Seite.

aae;

triangularize(aae);

echelon(aae);

Dieser Befehl entspricht ref(M) beim TI Nspire.

rank(aae);

Dieses kann man dann entsprechend deuten.

### Gleichungen, bei denen die Varablen genannt werden

g1:9*r+6*s-6*t=9;
g2:-3*r-9*s+4*t=-2;
g3:-7*s+8*t=7;

Den nachfolgenden Eintrag erhält man interaktiv mit dem Menü
Gleichunegen->löse lineares System. Man trägt dann g1, g2 und g3 ein,
bei Variablen trägt man  r,s,t  ein, mit Kommata getrennt.

linsolve([g1, g2, g3], [r,s,t]);

linsolve([g1,g2,g3],[r,s,t]);

[r,s,t];

Hier werden die Ergebnisse nur angezeigt.

### Gleichungen, bei deren Lösung Variable belegt werden

globalsolve:true$

linsolve([g1,g2,g3],[r,s,t]);

[r,s,t];

Nun sind r,s und t belegt und nicht mehr frei. 

[g1, g2,g3];

linsolve([g1,g2,g3],[r,s,t]);

Man kann das Gls nicht mehr lösen.
Darum stelle ich leber wieder die Globale Option zurück auf den 
voreingestellten Wert false

globalsolve:false$

remvalue(r,s,t)$ [r,s,t];

Die Variablen sollen wieder freigegeben werden

### Lineare Gleichungen mit Matrizen lösen

xv:transpose(matrix([xx,yy,zz]));

aaa;

Wenn die Koeefizientenmatrix ein Inverses hat,
dann ist die Lösung ds Sytem aaa.xv=bv zu haben:

ainv:invert(aaa);

xv=ainv.bv;

xv[1,1];

Hier finden keine Zuweisungen statt

### Automatisches Aufstellen des Gleichungssystems

angl:3 /*Anzahl der Glaichungen*/$

glsli:makelist((aaa.xv) [i,1]=bv[i,1],i,1,angl);

linsolve(glsli,[xx,yy,zz]);

solve(glsli,[xx,yy,zz]);

## Affine Abbildungen, rechnerisch

aaa;

tx:1$ ty:2$ tz:-1$

tv:transpose(matrix([tx,ty,tz]));

f(xv):=aaa.xv+tv;

f(xv);

aaa.aaa;

aaa;

tvm(tv):=addcol(tv,tv,tv);

fm(xv):=aaa.xv+tvm(tv);

fm(aaa);