Stunde 4

Werbung
Vektorraum
Übersicht
Vektoren
Ein Tripel
, bestehend aus einer nichtleeren
Menge und Verknüpfungen
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.2/??
Beispiele für VR
>> a:=matrix([1,2,3,4]): b:=matrix([5,6,7]): a,b
+-+
| 1 | +-+
|
| | 5 |
| 2 | |
|
|
|, | 6 |
| 3 | |
|
|
| | 7 |
| 4 | +-+
+-+
#
für
,
"$
Ist
eine Teilmenge des Vektorraums
und gelten alle Vektorraumaxiome, so heißt
ein Untervektorraum oder Unterraum von .
# !" "!
#
!
! ! !
!
– p.3/??
Konstruktion von Vektoren
Sei
eine beliebige Menge. Die Menge der
Abbildungen von
in mit den Verknüpfungen
Die Abbildung
heißt
Skalarmultiplikation. Die Elemente des Körpers
nennt man Skalare.
,
Mathematische Anwendersysteme: Einführung in MuPAD
Vektoren in MuPAD
Die Elemente eines Vektorraums nennt man
Vektoren.
Gerd Rapin
gilt:
– p.1/??
Begriffe
, wenn gilt:
ist eine abelsche Gruppe.
2. Für alle
1.
Erstes Programm
Mathematische Anwendersysteme: Einführung in MuPAD
heißt Vektorraum über einem Körper
Benutzen von MuPAD-Bibliotheken
Gerd Rapin
Gerd Rapin
Matrizen
Tag 4
Vektoren
Basis und Dimension
Matrizen
17.2.2005
Lineare Unabhängigkeit, Basis
Vektorräume
Mathematische Anwendersysteme
Einführung in MuPAD
.
Die Menge der Polynome bis zum Grad .
%
als
Datentyp: Dom:Matrix()
&
ist nicht gleich . Beispiel: Es gilt
für alle
.
Vorsicht!
-Vektorraum.
>> domtype(a)
Dom::Matrix()
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.4/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.5/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.6/??
Weitere Notationen und
Bemerkungen
%
%
als
als
-Vektorraum.
&
% ist eine Basis von
-Vektorraum hat keine endliche Basis.
Mathematische Anwendersysteme: Einführung in MuPAD
– p.7/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.8/??
Mathematische Anwendersysteme: Einführung in MuPAD
– p.9/??
MuPAD
und
>> linalg::intBasis([s1],[s2,s3])
Bestimmen des Schnitts von
Bestimmen einer Basis von
In der Bibliothek linalg finden sich viele
Befehle zur linearen Algebra (? linalg).
.
Sei
eine Basis eines Vektorraums
Dann ist die Dimension des Vektorraums
definiert durch die Anzahl der Basiselemente,
also .
MuPAD
Gerd Rapin
Basis und Dimension
!
! %
!
heißen linear unabhängig, falls gilt:
und ist
Sind
so folgt
. Andernfalls sind sie
linear abhängig.
Gerd Rapin
Die Monombasis
ist eine Basis
des Vektorraums der Polynome .-ten Grades.
Aus jedem (endlichen) Erzeugendensystem kann
man eine Basis auswählen.
Gilt
, so ist
ein
Erzeugendensystem. Sind die
zusätzlich
linear unabhängig, so ist
eine Basis.
Die Menge aller Linearkombinationen wird
Lineare Hülle genannt und durch
bezeichnet. Die Lineare Hülle ist ein Unterraum
von .
sind genau dann linear unabhängig,
wenn sich jeder Vektor
eindeutig linear kombinieren läßt.
,
.
Seien
die Einheitsvektoren.
ist eine Basis des
.
eine
Sei ein -Vektorraum und
Familie von Elementen aus
heißt Linearkombination von
mit
falls
eine
Sei ein -Vektorraum und
Familie von Elementen aus
Beispiele für Basen
Lineare Abhängigkeit
>>
>>
>>
>>
Testen der linearen Unabhängigkeit
>> student::isFree([s1,s2,s3])
FALSE
und
Unterräume von . Dann ist
die Summe von
Seien
Jeder Vektorraum besitzt eine Basis.
s1:=matrix([1,0,0]):
s2:=matrix([0,1,1]):
s3:=matrix([1,1,1]):
linalg::basis([s1,s2,s3])
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
-|
|
|
|
|
--
. Es gilt
– p.10/??
+-+
| 1 |
|
|
| 0 |,
|
|
| 0 |
+-+
Gerd Rapin
+-+ -| 0 | |
|
| |
| 1 | |
|
| |
| 1 | |
+-+ -Mathematische Anwendersysteme: Einführung in MuPAD
– p.11/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.12/??
Übersicht: Einige Bibliotheken
Exkurs: Bibliotheken in MuPAD
Eine Bibliothek besteht aus einer Sammlung von
Funktionen zur Lösung von Problemen eines
speziellen Gebietes (z.B. lineare Algebra,
Zahlentheorie, Numerik).
stdlib
linalg
plot
numeric
stats
numlib
student
fp
Eine Übersicht aller Bibliotheken findet man in
der Kurzreferenz (über die Hilfe erreichbar).
Durch ? bibi enthält man eine Auflistung der
Funktionen in der Bibliothek bibi.
Die Standardbibliothek stdlib enthält die
wichtigsten Basisfunktionen, die nicht im Kern
implementiert sind. Diese Funktionen können
direkt benutzt werden.
Durch den Befehl
export(Bibliothek,Funktion)
können Funktionen einer Bibliothek global
bekannt gemacht werden. Dies bedeutet, dass
die Funktion ohne Voranstellen des
Bibliotheksnamen aufgerufen werden kann, z.B.
>> export(student, isFree):
>>isFree([s1,s2,s3])
FALSE
Mathematische Anwendersysteme: Einführung in MuPAD
– p.14/??
Mathematische Anwendersysteme: Einführung in MuPAD
Definitionen
Die Transponierte von
.
Die Einheitsmatrix
..
.
. Dann ist die
Seien
Addition definiert durch
und
mit Werten zwischen
.
mit dem Zeilenindex
ist
..
.
Für Matrizen
...
..
.
gilt.
heißt symmetrisch, wenn
Die Bibliotheken werden ständig aktualisiert und
erweitert. In ihnen steckt das eigentliche
mathematische Wissen.
ist
ist ein
,
Eine
Matrix über einen Körper
rechteckiges Schema mit Einträgen
,
der Form
Wird export(Bibliothek) aufgerufen, so
werden alle Funktionen der Bibliothek exportiert.
– p.15/??
Matrizen
Gerd Rapin
Benutzen der Bibliotheken
Gerd Rapin
– p.13/??
Mathematische Anwendersysteme: Einführung in MuPAD
Eine Bibliotheksfunktion wird in der Form
Bibliothek::Funktion aufgerufen, z.B.
linalg::basis([s1,s2,s3]).
Standardbibliothek
Lineare Algebra
Erzeugen von Grafiken
Numerische Berechnungen
Statistische Berechnungen
Zahlentheorie
elementare Algorithmen
Umgang mit Funktionen
Gerd Rapin
Benutzen der Bibliotheken
und
.
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.16/??
Gerd Rapin
Man schreibt kurz
.
Mathematische Anwendersysteme: Einführung in MuPAD
– p.17/??
Gerd Rapin
.
mit
mit Werten zwischen
und Spaltenindex
Mathematische Anwendersysteme: Einführung in MuPAD
– p.18/??
Def. und Bemerkungen
Def. und Bemerkungen
Definitionen
Die Menge der orthogonalen Matrizen in
bilden eine Untergruppe von
, die orthogonale Gruppe
.
heißt unitär, wenn
gilt.
– p.20/??
Konstruktion von Matrizen I
>> n:=3: m:=4: B:=matrix(n,m)
>> f:=(i,j) -> i*j:
>> C:=matrix(3,5,f)
%
- Matrix mit Hilfe einer
mit Einträgen
Erzeuge eine
Funktion
Eingabe der Einträge pro Zeile in eckigen
Klammern . Alle Spalten dann wieder in
eckigen Klammern .
Es ist auch möglich Matrizen über bestimmte
Ringe (z.B. , ) zu konstruieren.
Erzeugen einer Nullmatrix der Größe
Die Einträge der Matrix können beliebige
Ausdrücke sein.
Konstruktion von Matrizen II
Der Rückgabewert ist vom Typ Dom::Matrix().
– p.21/??
Es gibt in MuPAD verschiedene Möglichkeiten eine
Matrix zu konstruieren. Beispiel
Mathematische Anwendersysteme: Einführung in MuPAD
Matrizen werden in MuPAD mit Hilfe des Befehls
matrix konstruiert.
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
Matrizen in MuPAD
Gerd Rapin
– p.19/??
Mathematische Anwendersysteme: Einführung in MuPAD
Gerd Rapin
heißt invertierbar, wenn eine Matrix
existiert mit
.
Die Menge der invertierbaren Matrizen aus
bilden bezüglich der Multiplikation eine Gruppe,
die allgemeine lineare Gruppe
.
heißt orthogonal, wenn
gilt.
Die entsprechende Untergruppe der unitären
Matrizen in
ist die unitäre Gruppe
.
.
mit
Die Matrizen aus
bilden einen Vektorraum
über
(mit komponentenweiser
Skalarmultiplikation).
.
% %
Die Multiplikation ist assoziativ aber nicht
kommutativ.
Seien
und
Dann ist die Multiplikation gegeben durch
Es gibt auch spezielle Datenstrukturen für
quadratische Matrizen und für dünnbesetzte
Matrizen.
A:=matrix([[1, 2, 3, 4],[a, 0, 1, b]])
Eingabe von Zeilen- und Spaltenvektoren
>> matrix(3,1,[1, 2,3])
>> matrix(1,3,[4,5,6])
Mit expliziter Größenangabe
A:=matrix(2,4,[[1,2,3,4],[a,0,1,b]])
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.22/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.23/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.24/??
Zeilen- und Spaltenzahl
Zugriff auf die Einträge I
Zugriff auf die Einträge II
Extrahieren von Teilmatrizen
>> linalg::ncols(A)
>> i:=1: j:=2: A[i,j]
2
>> zeilen:=1..2: spalten:=2..4:
>> A[zeilen,spalten]
4
Abfragen von Einträgen in Zeile und Spalte :
Abfragen der Spaltenanzahl: linalg::ncols
Erzeugen von Diagonalmatrizen
>> i:=1: j:=2: A[i,j]:=22
>> x:=[1,2,3,4,5]:
>> Diag:=matrix(5,5,x,Diagonal)
2
Extrahieren von Zeilen/ Spalten
Dimension der Matrix: linalg::matdim
>> zeile:=linalg::row(A,2)
>> spalte:=linalg::col(A,4)
– p.25/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.26/??
Systemfunktionen
Rechnen mit Matrizen
Addieren, Multiplizieren
Mathematische Anwendersysteme: Einführung in MuPAD
– p.27/??
Rang von Matrizen
Viele Systemfunktionen lassen sich auf Matrizen
anwenden. Beispiele:
>> A:=matrix([[a, b], [c,d]])
>> B:=matrix([[e, f], [g,h]])
>> A+B, A*B
Gerd Rapin
Sei
>> Aˆ(-1), linalg::transpose(A)
float(A) wendet float auf alle Komponenten
an.
Die Dimension der linearen Hülle der
Zeilenvektoren nennt man den Zeilenrang von
Er ist höchstens gleich .
.
expand(A) wendet expand auf alle
Komponenten an.
.
Die Dimension der linearen Hülle der
Spaltenvektoren nennt man den Spaltenrang von
. Er ist höchstens gleich .
conjugate(A) ersetzt die Komponenten durch
ihre komplex konjugierten Einträge.
Bestimmung der Inversen und der
Transponierten
Mathematische Anwendersysteme: Einführung in MuPAD
>> linalg::matdim(A)
[2, 4]
Gerd Rapin
Ändern des Eintrags in Zeile und Spalte :
>> linalg::nrows(A)
Abfragen der Zeilenanzahl: linalg::nrows
Zeilenrang und Spaltenrang von Matrizen sind
gleich und man spricht deshalb vom Rang einer
Matrix.
has(A,Ausdruck) prüft, ob ein Ausdruck
Ausdruckin mind. einer Komponente von
enthalten ist.
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.28/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.29/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.30/??
Skalarprodukt
Normen
Eine skalarwertige binäre Abbildung
.
%
,
#
! oder
auf einem Vektorraum über
heißt Skalarprodukt, wenn für alle
gilt
gilt
,
#
so dass für alle
Ist eine Matrix unitär ?
"
>> S:=matrix([[1,0,0],[0,1,1],[1,1,1]])
>> linalg::rank(S)
2
Sei ein Vektorraum über
oder
Eine Norm auf ist eine Abbildung
%
Bestimmen des Ranges einer Matrix
Matrizen
Mathematische Anwendersysteme: Einführung in MuPAD
!
#!
(Dreiecksungleichung)
impliziert
#
#
impliziert
>> F:=matrix([[I,0],[0,-I]])
>> linalg::isUnitary(F)
TRUE
Gerd Rapin
! !
! !
# ! !
!
>> linalg::isUnitary(S)
FALSE
heißt normierter Raum.
– p.31/??
Mathematische Anwendersysteme: Einführung in MuPAD
– p.32/??
Bemerkungen
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.33/??
MuPAD
#
– p.34/??
Mathematische Anwendersysteme: Einführung in MuPAD
der Orthogonalraum zu
Gerd Rapin
#
, so ist
für alle
Gerd Rapin
.
Mathematische Anwendersysteme: Einführung in MuPAD
>>
>>
>>
>>
>>
ein Unterraum von
,
auf
wird berechnet durch
Orthogonalisieren von Vektoren
(hier a1,a2,a3)
Jeder endlichdimensionaler Prä-Hilbert-Raum
hat eine Orthonormalbasis.
Ist
%
>> x:=matrix([1,2,3,4,5]): p:=2:
>> norm(x,p)
Eine Orthogonalbasis, bei der alle Vektoren die
Norm haben, nennt man Orthonormalbasis.
Im euklidischen Raum ist der Winkel zwischen
zwei Vektoren
definiert durch
Eine Basis aus paarweise orthogonalen Vektoren
heißt Orthogonalbasis.
Die Norm
dem
mit
%
Durch
,
läßt sich eine
Norm definieren. Es gilt die
Cauchy-Schwarzsche Ungleichung
heißen orthogonal, wenn
Zwei Vektoren
gilt.
Ein VR mit Skalarprodukt heißt
Prä-Hilbert-Raum. Ist
so heißt der Raum
auch euklidisch.
Bemerkungen
Gerd Rapin
– p.35/??
a1:=matrix([1,2,3]):
a2:=matrix([0,4,1]):
a3:=matrix([1,1,1]):
a:=linalg::orthog([a1,a2,a3])
a[1]
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.36/??
Ein erstes Programm
MuPAD
Berechnen des Skalarprodukts
>> linalg::scalarProduct(a2,a3)
5
Max:=proc(a,b) /* Maximum von a und b*/
begin
if a<b then return(b)
else return(a) end_if
end_proc:
Etwas Programmieren
Berechnen des Winkels zwischen zwei Vektoren
Das erste Beispiel berechnet das Maximum
zweier Zahlen und .
Berechnen der Determinante
Aufruf in MuPAD ist Max(a,b).
>> A:=matrix([[1,2,3],[4,5,6],[7,8,0]]):
>> linalg::det(A)
27
Die Funktion gibt dann entweder den Wert
den Wert zurück.
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
>> float(linalg::angle(a2,a3))
0.7952027133
– p.37/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
Mittels return(a) wird die Prozedur
abgebrochen und der Wert a züruckgegeben.
Diese wird dann durch die rechte Seite als
Objekt vom Typ DOM_PROC definiert.
Wird kein return aufgerufen, so gibt die
Funktion den Wert des letzten Befehls zurück,
der innerhalb der Prozedur ausgewertet wurde.
Eine Prozedur beginnt mit proc(..) begin
und endet mit end_proc.
Mathematische Anwendersysteme: Einführung in MuPAD
– p.40/??
Mathematische Anwendersysteme: Einführung in MuPAD
– p.39/??
Der zwischen /* und */ eingeschlossene Text
ist Kommentar. Er wird vom System völlig
ignoriert.
Die durch if bedingung then eingeleitete
Zeile ist eine sog. Verzweigung. Ist die
Bedingung bedingung wahr, so wird der Teil
hinter then ausgeführt. Ist bedingung falsch,
so wird die Alternative ausgeführt. Beendet wird
die Verzweigung mit end_if.
Wird innerhalb der Prozedur kein Befehl
ausgeführt, so wird NIL zurückgegeben. NIL
steht für das Nichts. Man kann es auffassen als
die leere Menge.
proc(a,b,c..) gibt an, wie die
Input-Argumente aussehen.
Gerd Rapin
Erkärungen
Eine Prozedur beginnt mit dem Namen der
Prozedur (hier: Max).
Gerd Rapin
– p.38/??
Return
Aufbau von Prozeduren
oder
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.41/??
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.42/??
Erstellen von Prozeduren
Bei umfangreicheren Prozeduren ist es sinnvoller die
Prozedur mit einem Editor zu erstellen. In unserem
Beispiel ist die Routine Max in einer Datei mit dem
Namen max.mup abgespeichert. Diese Datei kann
nun durch read(‘‘max.mup’’) eingelesen werden
und dann normal verwendet werden. Hierdurch ist
auch die Wiederverwertbarkeit der Funktion gesichert.
Gerd Rapin
Mathematische Anwendersysteme: Einführung in MuPAD
– p.43/??
Herunterladen