| |
Übungsblatt 8
- In den Übungen 6
hatten Sie ein Modell zur Lösung eines Anfangswertproblems mit einem
System linearer Differentialgleichungen konstruiert:
und u.a. das Anfangswertproblem:
y1'(t) + y1(t) = 0; y1(0) = 1
y2'(t) - 24*y1(t) + 25*y2(t) = 0; y2(0) = 1 simuliert.
Setzen Sie in diesem Modell die folgenden Simulations-Parameter-Werte:
- stop time=50
- relative tolerance=1.0e-8
- absolute tolerance=1.0e-8
- max step size=20
und das Abbruchkriterium im Subsystem 'Abbruch' auf 1.0e-10.
Simulieren Sie das Problem mit allen Ihnen verfügbaren Integratoren
und halten Sie fest, wann die Simulation jeweils beendet wird.
Zur Erinnerung: Die Lösung ist y1=y2=exp(-t),
exp(-18.42)=1.0e-8 und exp(-23.02)=1.0e-10.
Warum ist nicht zu erwarten, dass die Simulation immer bei 23.02
abgebrochen wird?
- Entfernen Sie im Modell von Aufgabe 1 das Subsystem zum Abbruch
der Simulation und ändern Sie die folgenden Simulations-Parameter:
- stop time=100
- max step size=50
An die Integratoren werden dann, ein
wenig vereinfacht formuliert, die folgenden Bedingungen gestellt:
- von 0 bis etwa 18.42:
die numerische Lösung muss in einem
Schlauch um die exakte Lösung y(t)=exp(-t) bleiben, die Breite des
Schlauches ist: 1.0e-8*exp(-t).
- von 18.42 bis zum Ende:
die numerische Lösung muss in einem
Schlauch der Breite 1.0e-8 um 0 herim bleiben. Beachten Sie, dass
diese Bedingung unabhängig von der Lösung y(t) ist. Benutzen
Sie alle Ihnen zugänglichen Integratoren zur Behandlung des Problems.
Welche Integratoren benutzen im zweiten Bereich in etwa dieselben
Schrittweiten und welche Integratoren benutzen grössere Schrittweiten?
- Lassen Sie bei dem Modell von Aufgabe 2 jeweils anzeigen, ob die
L2-norm der Lösung kleinergleich der absoluten Toleranz ist. Welche
Integratoren erfüllen die Bedingung L2-Norm(y(t)) bis zum
Simulationsende, nachdem sie sie zum ersten mal erfüllt haben? Welche
Integratoren haben Probleme diese Bedingung einzuhalten?
Hinweise:
- die L2-Norm eines zweidimensionalen Wertes [f1,f2] wird gegeben
durch:
sqrt(f1^2+f2^2)
- in Matlab wird der logische Wert 'wahr' durch 1, der logische Wert
'nein' durch 0 dargestellt. Sie können also das Ergebnis eines
'Relational Operator-Blockes' direkt in einen Scope-Block schicken.
- Die numerisch ermittelten Lösungskurven zum Anfangswertproblem
aus Aufgabe 1 weisen bei der üblichen Darstellung mittels eines
Scope-Blockes keine erkennbaren Unterschiede in Abhängigkeit vom
benutzten Integrator auf. Um solche Unterschiede sichtbar zu machen,
schalten Sie die Scope-Ausgabe erst dann ein, wenn die L2-Norm der
Lösungskurven zum ersten mal kleiner als 'absolute tolerance', also
kleiner als 1.0e-8 wird.
Lösen Sie das Problem mit steifen und nicht-steifen Integratoren.
Hinweise:
- das Signal zum Scope-Block können Sie durch ein enabled Subsystem
laufen lassen, das durch ein Signal gesteuert wird, das hochzählt, wie
oft die beobachtete L2-Norm kleiner als 'absolute tolerance' war.
|