kramann.info
© Guido Kramann

Login: Passwort:










2.2 Unterstützung der Berechnung der analythischen Lösung des Schwingers mit Scilab

Scilab / Matlab / Octave sind insbesondere sehr leistungsstark bei Matrizenoperationen. Viele Berechnungen, die von Hand recht mühselig zu bewältigen sind, bieten sie als Funktion an, so insbesondere:

Die folgenden und viele weitere Matrizenoperationen finden sich in der Scilab-Hilfe im Ordner "Linear Algebra". Elementare Rechenoperationen (Trigonometrie, Interpolation,...) sind unter "Elementary Functions" beschrieben.

Transponierte einer Matrix berechnen

  • Die transponierte einer Matrix erhält man, wenn Zeilen zu Spalten und Spalten zu Zeilen werden.
  • Diese "Berechnung" ist noch nicht so aufwändig.
  • Die Transponierte einer Matrix A erhält man durch Nachstellen eines Hochkommas A':
Startup execution:
  loading initial environment

-->A = [[1,3]',[2,4]']
 A  =

    1.    2.
    3.    4.

-->B = A'
 B  =

    1.    3.
    2.    4.

-->              
 

Code 2.2-1: Transponierte bilden mit Scilab durch direkte Eingabe von Befehlen.

Determinante einer Matrix berechnen

  • Die Determinante bei 2x2 Matrizen zu bestimmen ist noch einfach.
  • Ab 3x3 Matrizen wird diese Berechnung von Hand schon recht fehleranfällig.
  • Der Scilab Befehl um die Determinante der Matrix A zu bestimmen lautet det(A).
-->A = [[1,3]',[2,4]']
 A  =

    1.    2.
    3.    4.

-->d = det(A)
 d  =

  - 2.

-->          

Code 2.2-2: Determinante bilden

Inverse einer Matrix bestimmen

  • Die Inverse einer Matrix mit ihr selbst multipliziert ergibt die Einheitsmatrix: AA-1
  • Damit läßt sich die Lösung eines linearen Gleichungssystems finden, insofern sie eindeutig existiert: Ax=b <=> Ax=Eb => AxA-1=EbA-1 <=> x=A-1b
  • Bei Anwendung des Gauss-Algorithmus zur Lösung eines linearen Gleichungssystems entsteht nach und nach die inverse matrix auf der linken Seite:
Inverse von Hand bestimmen

Bild 2.2-1: Bestimmung der Inversen Matrix von Hand, bzw. Lösen eines linearen Gleichungssystems.

  • ...oder schneller mit Scilab mit dem Befehl inv(A):
-->A = [[1,3]',[2,4]']
 A  =

    1.    2.
    3.    4.

-->B = inv(A)
 B  =

  - 2.     1.
    1.5  - 0.5

-->         
 

Code 2.2-3: Bestimmung der Inversen Matrix

Eigenwerte einer Matrix bestimmen

  • Nun können wir versuchen, die analythische Berechnung der Lösung des LDGL des Schwingers mit Unterstützung von Scilab durchzuführen.
  • Hier müssen wir aber direkt die Parametrisierung mit C = 1m/s und m = 1kg festlegen.
  • Der Befehl zur Bestimmung der Eigenwerte in Scilab ist spec(A).
  • HINWEIS: Trennung von Zeilenvektoren mit ';', Trennung von Spaltenvektoren mit ','
-->C=1
 C  =

    1.

-->m=1
 m  =

    1.

-->A=[[0,-C/m];[1,0]]
 A  =

    0.  - 1.
    1.    0.

-->lambda = spec(A)
 lambda  =

    i
  - i

-->           
 

Code 2.2-4: Bestimmung der Eigenwerte des parametrisierten Schwingers