Bild vom Institut
home uni uni suche suche sitemap sitemap kontakt kontakt
unilogo Universität Stuttgart
Institut für Technische und Numerische Mechanik

Numerische Methoden der Dynamik

englishicon

Vorlesung Numerische Methoden der Dynamik
Sommersemester
Prof. Dr.-Ing. W. Schiehlen


Online-Leitfaden für Rechnervorführungen

Teil 1: Lineare Gleichungssysteme

Gleichungssysteme mit MATLAB

Mit MATLAB können lineare Gleichungssysteme der Form A * x = b auf recht einfache Art und Weise gelöst werden. Im Folgenden werden einige Rechenoperationen vorgestellt.

Matrix A wird in Zeilenform eingegeben:

>> A = [ 1 2 4; 2 13 23; 4 23 77 ]

A =

     1     2     4
     2    13    23
     4    23    77


Ebenso der Vektor b. Das Hochkomma transponiert den Zeilenvektor in einen Spaltenverktor.

>> b = [ 3 -4 5 ]'

b =

     3
    -4
     5
 

Eine Multiplikation von A * b wird im aktuellen Speicher ans ausgegeben.

>> A * b

ans =

    15
    69
   305
 

>> A \ b

ans =

    5.0432
   -1.5586
    0.2685
 

Die Inverse der Matrix A kann gebildet werden.

>> inv(A)

ans =

    1.4568   -0.1914   -0.0185
   -0.1914    0.1883   -0.0463
   -0.0185   -0.0463    0.0278
 

Der aus der Gleichung A * x = b gesuchte Vektor x kann mit x = inv(A) * b berechnet werden.

>> inv(A) * b

ans =

    5.0432
   -1.5586
    0.2685
 

Besser auls die Bildung der Inversen ist numerisch jedoch eine Zerlegung des Problems, zum Beispiel mit Hilfe des Cholseky-Verfahrens.

>> L = chol(A)'

L =

     1     0     0
     2     3     0
     4     5     6
 

>> [ L, U ] = lu(A)

L =

    0.2500    1.0000         0
    0.5000   -0.4000    1.0000
    1.0000         0         0
 

U =

    4.0000   23.0000   77.0000
         0   -3.7500  -15.2500
         0         0  -21.6000
 

Zur Kontrolle der Lösung wird L * U berechnet.

>> L * U

ans =

     1     2     4
     2    13    23
     4    23    77
 

Auch eine QR-Zerlegun ist mit MATLAB möglich.

>> [ Q, R ] = qr(A)

Q =

   -0.2182    0.9204   -0.3244
   -0.4364   -0.3894   -0.8111
   -0.8729   -0.0354    0.4867
 

R =

   -4.5826  -26.1861  -78.1220
         0   -4.0356   -8.0003
         0         0   17.5199
 

Auch hier wieder die Kontrolle.

>> Q * R

ans =

    1.0000    2.0000    4.0000
    2.0000   13.0000   23.0000
    4.0000   23.0000   77.0000
 

Die Pseudoinverse kann mit Hilfe des Befehls "pinv" berechnet werden.

>> pinv([ 1 2 4 7; 2 13 23 30; 4 23 77 100 ])

ans =

    0.4029   -0.0217   -0.0190
   -0.0615    0.1674   -0.0462
   -0.5280    0.0357    0.0276
    0.4046   -0.0651    0.0002
 

>> pinv([ 1 2 4; 2 13 23; 4 23 77; 8 33 140 ])

ans =

    0.7478    0.2730   -0.5897    0.2581
   -0.0321    0.0840    0.0820   -0.0580
   -0.0340   -0.0362    0.0153    0.0056

Hilfen zu jedem Befehl bietet MATLAB sowohl über eine Hilfefunktion (z.B. >> help inv) als auch über den MATLAB Helpdesk.


 
 
 

Teil 2: Lösen von Eigenwertaufgaben

(folgt)

Teil 3: Simulation

(folgt)