![Bild vom Institut](../../img/institutmitlogo.jpg) |
|
![](http://www.uni-stuttgart.de/res/img/pixeltrans.gif) |
Institut für Technische und Numerische Mechanik |
![](http://www.uni-stuttgart.de/res/img/pixeltrans.gif) |
Numerische Methoden der Dynamik |
![englische Version englishicon](http://www.uni-stuttgart.de/res/img/englishicon.gif) |
|
![](http://www.uni-stuttgart.de/res/img/pixeltrans.gif) |
![](http://www.uni-stuttgart.de/res/img/pixeltrans.gif) |
![](http://www.uni-stuttgart.de/res/img/pixeltrans.gif) |
|
![](http://www.uni-stuttgart.de/res/img/pixeltrans.gif) |
![](http://www.uni-stuttgart.de/res/img/pixeltrans.gif) |
![](http://www.uni-stuttgart.de/res/img/pixeltrans.gif) |
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)
|
|
|
|