Praktikum 4

Benutzeravatar
Le_Coeur
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 135
Registriert: 18. Apr 2009 12:39
Kontaktdaten:

Praktikum 4

Beitrag von Le_Coeur » 25. Dez 2010 14:08

Rueckgabematrix X:
a) soll t0, x0 enthalten?
b) falls tf(Endzeitpiunkt) ist z.b. 3.5 und ich iteriere mit Schrittweite h =1 ab t0=0, dann das letzte tk muss 3 oder 4 sein ?


Wofuer wurde n = 8 gegeben? :)

marluwie
Mausschubser
Mausschubser
Beiträge: 99
Registriert: 18. Okt 2005 22:33

Re: Praktikum 4

Beitrag von marluwie » 28. Dez 2010 12:37

Hallo,

in der Sprechstunde am Mittwoch ist eine Frage bzgl. der beam-Funktion aufgetreten. Die beam-Funktion soll als Eingabe für die zuvor implementierten Löser verwendet werden. Etwas verwirrend ist hierbei, dass die Funktion beam zwei Argumente xk und tk bekommt. In der Vorlesung ist immer von einer Funktion f(xk) die Rede. Geht im Praktikum einfach davon aus, dass ihr eine Funktion mit zwei Argumenten behandelt, die dem Interface von beam entspricht.

Beachtet aber, dass es keinen Unterschied macht, ob man die Löser auf eine Funktion f(xk) oder f(xk, tk) loslässt. In zahlreichen Übungen habt ihr eine DGL in ein System 1. Ordnung transformiert und homogenisiert. Ob also das tk als n+1-te Komponente im xk steckt oder explizit übergeben wird, macht absolut keinen Unterschied.

Viel Grüße und ein erfolgreiches Neues Jahr, Marian
"You can't change anything by fighting or resisting it. You change something by making it obsolete through superior methods." (Buckminster Fuller)

Benutzeravatar
igor.a
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 143
Registriert: 28. Sep 2009 16:05

Re: Praktikum 4

Beitrag von igor.a » 5. Jan 2011 12:20

Le_Coeur hat geschrieben:Wofuer wurde n = 8 gegeben? :)
Wie es aussieht, ist n die Anzahl der Komponenten in \(\theta(t)\) bzw \(\dot \theta(t)\). \(\theta(s,t)\) hat ja eigentlich 2 Argumente: s und t, es wird aber diskretisiert und in n Komponenten zerlegt, sodass jedes \(\theta_i(t)\) einem \(\theta(s_i, t)\) entspricht, also dem Winkel für einen bestimmten diskreten Wert von s.
Damit man n=8 erreicht, muss man dem Integrationsverfahren als Startwert für \(\left (\matrix{ \theta \\ \dot \theta} \right )\) einen 2*8-elementigen Zeilenvektor übergeben.

Ich hoffe, ich habe nicht zu viel Unsinn erzählt :D

Dominique
Neuling
Neuling
Beiträge: 3
Registriert: 6. Jan 2011 18:36

Re: Praktikum 4

Beitrag von Dominique » 6. Jan 2011 18:40

Hallo,

Ich habe eine Frage bzgl. der c)

In der Schrittweitensteuerung steht in Schritt 2, dass man hk solange halbieren soll bis eine Bedingung gilt.
Soll dann auch jedes Mal xk+1 neu berechnet werden? Das steht so nicht da. Oder ist das Halbieren des
h's nur für den nächsten Schritt gut.

oreon
Erstie
Erstie
Beiträge: 14
Registriert: 23. Mär 2010 14:43

Re: Praktikum 4

Beitrag von oreon » 11. Jan 2011 21:57

Dominique hat geschrieben:Hallo,

Ich habe eine Frage bzgl. der c)

In der Schrittweitensteuerung steht in Schritt 2, dass man hk solange halbieren soll bis eine Bedingung gilt.
Soll dann auch jedes Mal xk+1 neu berechnet werden? Das steht so nicht da. Oder ist das Halbieren des
h's nur für den nächsten Schritt gut.
So wie ich das verstehe wird das x_k+1 dann auch für jedes neue h_k ebenfalls neu berechnet.
Akzeptiere das resultierende hk und xk+1;
Ich habe aber noch eine weitere Frage zur c)

Ist es evtl. möglich das delta2 statt 0,01 evtl. 0,001 seinen soll? Weil mit 1e^-2 wird meine Schrittweite nie angepasst. Nimm ich allerdings delta2 = 1e^-3 dann wird impleuler_sw erfolgreich getestest. Auch visuell via plotbeam sieht das Ergebnis "richtig" aus. Der offizielle Test ist sowieso nicht wirklich geeignet weil er zu ungenau ist und die Test mit impleuler_sw selbst mit dem normalen impleuler erfolgreich sind.

Falls es wirklich 1e^-2 seinen sollte habe ich einen mir völlig unerklärlichen Fehler ;-)

mister_tt
Kernelcompilierer
Kernelcompilierer
Beiträge: 502
Registriert: 29. Sep 2008 15:54

Re: Praktikum 4

Beitrag von mister_tt » 12. Jan 2011 15:36

oreon hat geschrieben:
Dominique hat geschrieben:Hallo,

Ich habe eine Frage bzgl. der c)

In der Schrittweitensteuerung steht in Schritt 2, dass man hk solange halbieren soll bis eine Bedingung gilt.
Soll dann auch jedes Mal xk+1 neu berechnet werden? Das steht so nicht da. Oder ist das Halbieren des
h's nur für den nächsten Schritt gut.
So wie ich das verstehe wird das x_k+1 dann auch für jedes neue h_k ebenfalls neu berechnet.
Akzeptiere das resultierende hk und xk+1;
So würde ich das auch verstehen. Sonst macht die Formulierung gar keinen Sinn...
oreon hat geschrieben:Ist es evtl. möglich das delta2 statt 0,01 evtl. 0,001 seinen soll? Weil mit 1e^-2 wird meine Schrittweite nie angepasst.
Bei mir macht das keinen Unterschied. Allerdings wird auch bei mir nur die Schrittweite verdoppelt (-> zweiter "Fall"), der erste Fall, in dem \(x_{k+1}\) neu berechnet werden muss, tritt nie ein.
Bei mir ergibt sich auch ein recht komisches Verhalten für impleuler_sw: Der Stab schwingt nach rechts, bis er wieder senkrecht steht, zappelt ein bisschen und bleibt in der senkrechten Position. In allen anderen Implementierungen schwingt der Stab nach rechts, nach links, nach rechts... Wie ist das bei euch?

oreon
Erstie
Erstie
Beiträge: 14
Registriert: 23. Mär 2010 14:43

Re: Praktikum 4

Beitrag von oreon » 12. Jan 2011 17:48

mister_tt hat geschrieben: Bei mir macht das keinen Unterschied. Allerdings wird auch bei mir nur die Schrittweite verdoppelt (-> zweiter "Fall"), der erste Fall, in dem \(x_{k+1}\) neu berechnet werden muss, tritt nie ein.
Bei mir ergibt sich auch ein recht komisches Verhalten für impleuler_sw: Der Stab schwingt nach rechts, bis er wieder senkrecht steht, zappelt ein bisschen und bleibt in der senkrechten Position. In allen anderen Implementierungen schwingt der Stab nach rechts, nach links, nach rechts... Wie ist das bei euch?
Nein bei mir fällt sich impleuler_sw genauso wie die alle anderen Methoden auch (zumindest nährungsweise ;-)). Wenn ich wie gesagt das angegebene delta2 nehme verhält sich impleuler_sw sogar exakt wie impleuler. Mit meinem delta2 = 1e-3 werden dann auch beide Fälle von impleuler_sw durchlaufen.

mister_tt
Kernelcompilierer
Kernelcompilierer
Beiträge: 502
Registriert: 29. Sep 2008 15:54

Re: Praktikum 4

Beitrag von mister_tt » 13. Jan 2011 09:41

mister_tt hat geschrieben:Bei mir ergibt sich auch ein recht komisches Verhalten für impleuler_sw: Der Stab schwingt nach rechts, bis er wieder senkrecht steht, zappelt ein bisschen und bleibt in der senkrechten Position. In allen anderen Implementierungen schwingt der Stab nach rechts, nach links, nach rechts... Wie ist das bei euch?
Wer auch so ein Problem hat: Bei mir lag es an einem falschen Startvektor \(x0\). Hatte den zwei- statt sechzehn-dimensional oO...

Was nehmt ihr denn für Startwerte für quasi_newton? Nehme da momentan den Nullvektor, funktioniert auch... Ist es vielleicht sinnvoll, xk reinzuschmeißen?

franzose
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 146
Registriert: 9. Okt 2009 00:08

Re: Praktikum 4

Beitrag von franzose » 13. Jan 2011 10:42

mister_tt hat geschrieben:Was nehmt ihr denn für Startwerte für quasi_newton? Nehme da momentan den Nullvektor, funktioniert auch... Ist es vielleicht sinnvoll, xk reinzuschmeißen?
ich denke schon, da xk i.A. näher an der gesuchten Nullstelle sein sollte als der Nullvektor. Wenn man sich die Folien zum Newton-Verfahren anschaut, wird dort auch gezeigt was für Probleme je nach Startwert passieren können....

erna
Mausschubser
Mausschubser
Beiträge: 65
Registriert: 9. Dez 2009 15:05

Re: Praktikum 4

Beitrag von erna » 15. Jan 2011 11:13

ich bekomm relativ oft die Fehlermeldung (in impleuler):

Warning: Matrix is singular, close to singular or badly scaled

Habt ihr die auch :)?

dschneid
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 271
Registriert: 14. Dez 2009 00:56

Re: Praktikum 4

Beitrag von dschneid » 15. Jan 2011 13:50

Versuchst du irgendwie ein LGS zu lösen oder eine Matrix zu invertieren? Meines Wissen stammt diese Warnung daher. Ich kann mir aber nicht vorstellen, wo man das in impleuler bräuchte.

erna
Mausschubser
Mausschubser
Beiträge: 65
Registriert: 9. Dez 2009 15:05

Re: Praktikum 4

Beitrag von erna » 15. Jan 2011 16:18

Problem hat sich gelöst :) ... ich hab mir das implizite Euler-Verfahren als Funktion definiert um x_k+1 zu bestimmen aber man kann es auch anders definieren (z.B. y = @(x) x^2 , dann ist x die abhängige Größe) und dann läufts ohne Warnungen durch

tobi11
Windoof-User
Windoof-User
Beiträge: 32
Registriert: 8. Okt 2009 20:32

Re: Praktikum 4

Beitrag von tobi11 » 15. Jan 2011 19:26

Verstehe ich die Aufgabenstellung von Teil d) richtig (den Ausschlagwinkel \(\theta_8\) des Stabendes über den Verlauf der Zeit), dass wir die 8te Komponente von \(\theta\) gegen die Zeit plotten sollen? Alle 8 Komponenten lassen sich ja eher schwierig in eine aussagekräftige Grafik verpacken.

dschneid
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 271
Registriert: 14. Dez 2009 00:56

Re: Praktikum 4

Beitrag von dschneid » 15. Jan 2011 22:05

Ja, so sehe ich das auch.

mister_tt
Kernelcompilierer
Kernelcompilierer
Beiträge: 502
Registriert: 29. Sep 2008 15:54

Re: Praktikum 4

Beitrag von mister_tt » 16. Jan 2011 08:32

EDIT: Oh ja, mit dem Hinweis
den Ausschlagswinkel \(\Theta_n\)
ist es eigentlich ganz klar ^^

Antworten

Zurück zu „Archiv“