Fachhochschule Südwestfalen Wir geben Impulse Vektorrechnung in Octave
Inhalt Erzeugung von Vektoren Zugriff auf Vektorelemente Addition und Subtraktion von Vektoren Betrag eines Vektors Berechnung des Einheitsvektors Berechnung des Richtungskosinus Skalarprodukt Vektorprodukt Spatprodukt Folie 2 (07/2011)
Erzeugung von Vektoren Definition von Vektoren: Ein Vektor v ist eine ein-dimensionale Struktur bestehend aus n Skalaren. Es gibt Zeilenvektoren (eine Zeile, n Spalten) und Spaltenvektoren (n Zeilen, eine Spalte). Erzeugung von Zeilenvektoren: Es gibt 3 Möglichkeiten Zeilenvektoren zu erzeugen. 1) a=[1 2 3 4] Eingabe mit Leerstellen zwischen den Werten als Trennzeichen 2) b=[1,2,3,4] Komma als Trennzeichen zwischen den Werten 3) c=1:4 (siehe hierzu auch Bereichsvariablen in der Octave-Einführung) Alle 3 Möglichkeiten erzeugen den gleichen Vektor. Folie 3 (07/2011)
Erzeugung von Vektoren Erzeugung von Spaltenvektoren: Zur Erzeugung von Spaltenvektoren gibt es nur eine Möglichkeit: a=[1;2;3;4] Es können aber Zeilenvektoren in Spaltenvektoren und Spaltenvektoren in Zeilenvektoren umgewandelt (transponiert) werden. Dies geschieht durch die Verwendung des Hochkommas. Folie 4 (07/2011)
Erzeugung von Vektoren Ein neuer Zeilenvektor kann auch dadurch erzeugt werden, dass man zwei Vektoren hintereinander hängt: Dies funktioniert natürlich auch mit einem Spaltenvektor: Folie 5 (07/2011)
Übungsaufgaben Vektorerzeugung Erzeugen Sie die Zeilenvektoren a =(1 3 5 7) und b=(2 4 6 8), sowie die Spaltenvektoren c=(1 3 6 10) und d=(9 7 5 3). a) Transponieren Sie den Vektor a b) Wandeln Sie den Vektor c in einen Zeilenvektor um c) Erzeugen Sie den Zeilenvektor e aus a und b d) Erzeugen Sie den Spaltenvektor f aus c und d e) Erzeugen Sie einen Zeilenvektor g aus b und c f) Erzeugen Sie einen Spaltenvektor h aus d und a Folie 6 (07/2011)
Zugriff auf Vektorelemente Ist die Länge eines Vektors nicht bekannt, so kann diese mit Hilfe des Befehls length(vektorname) ermittelt werden. Einzelne Elemente eines Vektors können mit Vektorname(Position) ausgegeben werden. Als Sonderform gilt hier Vektorname(end), der befehl gibt das letzte Element des Vektors aus. Folie 7 (07/2011)
Zugriff auf Vektorelemente Man kann auch auf Teilbereiche eines Vektors zugreifen, dies geschieht durch Vektorname(a:c:b) wobei a die Anfangsposition des Bereiches, b die Endposition des Bereiches und c die Schrittweite darstellt. Wird der Parameter c weg gelassen, wird automatisch eine Schrittweite von 1 gewählt. Für den Parameter b kann man auch end eingeben. Folie 8 (07/2011)
Zugriff auf Vektorelemente Natürlich können auch einzelne Elemente eines Vektors verändert werden. Dies geschieht durch einfache Neuzuweisung Vektorname(a:c:b)=Wert. Folie 9 (07/2011)
Für die weiteren Themen generieren wir uns nun ein paar Vektoren, welche in den nächsten Beispielen Anwendung finden: Spaltenvektoren: as=[2;0;-3] bs=[3;-4;2] cs=[1;5;7] ds=[1;4;2;-3] Zeilenvektoren: az=[2 0-3] bz=[3-4 2] cz=[1,5,7] dz=[1,4,2,-3] Folie 10 (07/2011)
Addition und Subtraktion von Vektoren Vektoren können einfach addiert und subtrahiert werden. Dabei ist es aber wichtig, das die Vektoren die gleiche Länge haben und das es sich um 2 Spalten- bzw. Zeilenvektoren handelt (siehe Markierung im Bild) Die Addition von Zeilenund Spaltenvektor führt zu einer Warnmeldung und erzeugt eine Matrix. Hier müsste ein Vektor erst transponiert werden. Folie 11 (07/2011)
Betrag eines Vektors Der Betrag eines Vektors errechnet sich laut Studienbuch Ingenieurmathematik 1 nach: 2 2 2 a = a + a + a x y z In Octave wird die Berechnung dann wie folgt durchgeführt: ra=sqrt(as(1)^2+as(2)^2+as(3)^2) Wie bereits in der Einführung erwähnt, gibt es Standardfunktionen und Funktionen welche durch Packages hinzugefügt werden können. Für die Berechnung des Betrages eines Vektors kann die Standardfunktion norm(vektor) verwendet werden. Folie 12 (07/2011)
Berechnung des Einheitsvektors Wird der Vektor durch seinen Betrag dividiert, so erhält man den Einheitsvektor. Der Betrag dieses so entstandenen Vektors muss gleich 1 sein. Dies kann mit norm(vektor) kontrolliert werden. Folie 13 (07/2011)
Berechnung des Richtungskosinus Zur Berechnung des Richtungskosinus gibt es zwei Möglichkeiten Möglichkeit 1: Die einzelnen Werte des Vektors werden durch den Betrag Vektors dividiert. cosinusalpha=a(1)/betrag cosinusbeta=a(2)/betrag cosinusgamma=a(3)/betrag Möglichkeit 2: Die Werte des Einheitsvektors werden den Winkeln zugewiesen. Folie 14 (07/2011)
Skalarprodukt Das Skalarprodukt kann in Octave durch die Summe der Produkte der entsprechenden Koordinaten berechnet werden. Skalarprodukt=a(x)*b(x)+a(y)*b(y)+a(z)*b(z) Das Skalarprodukt kann aber auch durch einfache Multiplikation der Vektoren gebildet werden. Dies funktioniert aber nur, wenn der erste Vektor ein Zeilenvektor und der zweite ein Spaltenvektor ist. Um die passenden Vorbedingungen zu schaffen, kann das Transponieren von Vektoren angewendet werden. Folie 15 (07/2011)
Skalarprodukt Octave bietet aber auch eine Standardfunktion, mit der das Skalarprodukt berechnet werden kann. Skalarprodukt=dot(a,b) hierbei unterscheidet Octave aber nicht nach Zeilen- und Spaltenvektor. Achtung: Die Vektoren müssen dafür die gleiche Länge haben!!!! Octave gibt in diesem Fall bei dem befehl dot(a,b) keine Fehlermeldung aus!! Folie 16 (07/2011)
Vektorprodukt Die Berechnung des Vektorprodukts erfolgt laut Studienbuch Ingenieurmathematik 1 über folgenden Lösungsweg. Auch hier bietet Octave durch den Befehl cross(a,b) eine Standardfunktion an. Hierbei ist es wie beim dot-befehl egal, ob es sich um Zeilen- oder Spaltenvektoren handelt. Folie 17 (07/2011)
Vektorprodukt Achtung: Bei der Berechnung von Vektorprodukten ist darauf zu achten, dass es sich um dreidimensionale Vektoren vom gleichen Typ handelt. Folie 18 (07/2011)
Spatprodukt Die Berechnung des Spatvolumens nach dem Studienbuch Ingenieurmathematik 1 erfolgt über folgende Formel: s=as(1)*bs(2)*cs(3)+as(2)*bs(3)*cs(1)+as(3)*bs(1)*cs(2)- as(1)*bs(3)*cs(2)-as(2)*bs(1)*cs(3)-as(3)*bs(2)*cs(1) Die kann in Octave durch die beiden Standardbefehle dot und cross vereinfacht berechnet werden. Achtung: Auch hier müssen die Punkte für die Verwendung von dot und cross beachtet werden!! Folie 19 (07/2011)