0 Daumen
1,8k Aufrufe

Aufgabe:

Gegen ist eine geschlossene Kurve mit den Punkten

i012
x_i15/25/2
y_i220


Parametrisierung der Kurve mit Bogenlänge $$ t = (x^2+y^2)^{1/2} $$ und bestimmen der Splines x(t) und y(t).


Problem/Ansatz:

Da es eine geschlossene Kurve ist, kann hier die periodischen Randbedingung angewandt werden.

Sind die Werte für den Parameter t wie folgt?

i012
t0$$ t_0 + ((x_1-x_0)^2+(y_1-y_0)^2)^{1/2}$$$$ t_0 + t_1 ((x_2-x_1)^2+(y_2-y_1)^2)^{1/2}$$


Falls diese Werte stimmen, wie erhält man damit den Spline x(t) und y(t)?

Avatar von
Parametrisierung der Kurve mit Bogenlänge \(t = (x^2+y^2)^{1/2}\)

muss es nicht vielmehr etwas in dieser Form sein: \(t = (\Delta x^2+ \Delta y^2)^{1/2}\) ?!


Sind die Werte für den Parameter \(t\) wie folgt? ...

Diese Werte sind die Abstände zwischen den Stützstellen. Das ist sicher nicht die Bogenlänge des Splines.

Ist mit 'Spline' ein kubischer Spline gemeint? D.h. die geschlossene Kurve sähe dann in etwa so aus:

Untitled4.png

Ist das richtig?

Die Bogenlänge t ist ohne Delta. Was soll Delta in deinem Fall aussagen?

Ja die Darstellung sieht korrekt aus. Warum aber periodische Randbedingungen Anwendung finden soll ist mir noch nicht klar.

Die Bogenlänge t ist ohne Delta. Was soll Delta in deinem Fall aussagen?

das Delta steht hier für eine Veränderung von \(x\) bzw. \(y\). Streng genommen ist eine Änderung der Bogen-(Kurven)länge$$\text ds = \sqrt{\text d x^2 + \text d y^2}$$und die Bogenlänge ist dann $$s = \int \text ds$$siehe auch Bogenlänge einer Funktion. Das was Du schreibst$$t = \sqrt{x^2+ y^2}$$ ist der Abstand eines Punktes \((x,\,y)\) auf der Kurve zum Ursprung - also zu \((0,\,0)\) - das hat mit der Bogenlänge nichts zu tun.

1 Antwort

+1 Daumen
 
Beste Antwort

Hallo,

Warum aber periodische Randbedingungen Anwendung finden soll ist mir noch nicht klar.

das heißt doch nichts anderes als dass die Kurve geschlossen ist. Somit ist der Endzustand der Kurve identisch zum Anfangszustand.

Du kannst für jedes Kurvenstück zwischen zwei Stützstellen \(i\) und \(i+1\) für jede Koordinate \(x\) und \(y\) ein Polynom 3.Ordnung (kubisch) ansetzen, inklusive der Ableitungen (hier für \(x\)):$$\begin{aligned}x(\tau) &= a_i\tau^3 + b_i\tau^2 + c_i\tau + x_i \\ x'(\tau) &= 3a_i\tau^2 + 2b_i\tau + c_i \\ x''(\tau) &= 6a_i\tau + 2b_i\end{aligned}$$Die freie Variable \(\tau\) ist so gewählt, dass sie zwischen zwei Stützstellen von \(0\) bis \(1\) läuft. An den Stützstellen soll nun sowohl die Kordinate, als auch die erste und zweite Ableitung zweier benachbarter Kurvenstücke überein stimmen. Daraus folgen dann drei Gleichungen:$$\begin{aligned} x(\tau =1) &= a_i+b_i+c_i+x_i = x_{i+1} \implies a_i+b_i+c_i  = x_{i+1}-x_i\\ x_{i}'(\tau =1) &= x_{i+1}'(\tau =0) \implies 3a_i + 2b_i + c_i - c_{i+1} = 0 \\ x_{i}''(\tau =1) &= x_{i+1}''(\tau =0) \implies 6a_i + 2b_i - 2b_{i+1} = 0\end{aligned}$$und dies für jedes der Kurvenstücke, womit man neun Gleichungen für die neun Unbekannten bekommt. Beachte bitte, dass das Folgestück mit Index 2 wieder das mit Index 0 ist \((i=2)+1 \to 0\). In Matrix-Schreibweise sieht das dann so aus:$$\begin{pmatrix}1& 1& 1& 0& 0& 0& 0& 0& 0\\ 3& 2& 1& 0& 0& -1& 0& 0& 0\\ 3& 1& 0& 0& -1& 0& 0& 0& 0\\ 0& 0& 0& 1& 1& 1& 0& 0& 0\\ 0& 0& 0& 3& 2& 1& 0& 0& -1\\ 0& 0& 0& 3& 1& 0& 0& -1& 0\\ 0& 0& 0& 0& 0& 0& 1& 1& 1\\ 0& 0& -1& 0& 0& 0& 3& 2& 1\\ 0& -1& 0& 0& 0& 0& 3& 1& 0\end{pmatrix}\cdot \begin{pmatrix}a_1\\ b_1\\ c_1\\ a_2\\ b_2\\ c_2\\ a_3\\ b_3\\ c_3\end{pmatrix}= \begin{pmatrix}1.5\\ 0\\ 0\\ 0\\ 0\\ 0\\ -1.5\\ 0\\ 0\end{pmatrix}, \begin{pmatrix}0\\ 0\\ 0\\ -2\\ 0\\ 0\\ 2\\ 0\\ 0\end{pmatrix}$$man erhält zwei Gleichungssysteme einmal für \(x\) und einmal für \(y\). Die linke Matrix ist aber identisch, sie unterscheiden sich im Vektor der rechten Seite, deshalb stehen dort zwei Vektoren.

Die Lösungen sind:$$abc_x = \begin{pmatrix}-1.5\\ 3\\ 0\\ 0\\ -1.5\\ 1.5\\ 1.5\\ -1.5\\ -1.5\end{pmatrix}, \quad abc_y = \begin{pmatrix}0\\ -2\\ 2\\ 2\\ -2\\ -2\\ -2\\ 4\\ 0\end{pmatrix}$$Lassen wir das \(\tau\) über die drei Kurvenstücke von \(0\) bis \(3\) laufen, so erhält man z.B. für die X-Koordinate:$$x(\tau) = \begin{cases}-1,5 \tau^3 + 3 \tau^2 + x_0 & 0 \le \tau \lt 1 \\  -1,5(\tau-1)^2 + 1,5(\tau-1) + x_1 & 1 \le \tau \lt 2 \\ 1,5(\tau-2)^3 - 1,5(\tau-2)^2 - 1,5(\tau-2) + x_2 & 2 \le \tau \lt 3 \end{cases}$$für \(y\) entsprechend.

Das war der leichte Teil der Antwort. Nun möchtest Du als freien Paramter nicht \(\tau\), sondern die Bogenlänge \(t\). Oben in meinem Kommentar hatte ich das schon skizzert. Die Bogenlänge \(t\) kann man berechnen aus $$\begin{aligned} t &= \int_0^{\tau} \sqrt{\text d x^2 + \text d y^2} \\ &= \int_0^{\tau} \sqrt{\left( \frac {\text dx}{\text d \tau}\right)^2 + \left( \frac {\text d y}{\text d \tau}\right)^2} \, \text d\, \tau \\ &= \int_0^{\tau} \sqrt{x'^2(\tau) + y'^2(\tau)} \, \text d\tau\end{aligned}$$Die Ableitungen sind Polynome vom Grad 2. Das Quadrat ist dann i.A. ein Polynom vom Grad 4. Das steht unter der Wurzel und muss integriert werden. Lässt Du das z.B. Wolfram Alpha machen, so erhältst Du Ausdrücke über viele Zeilen. Anschließend musst Du diese Ausdrücke noch nach \(\tau\) umstellen, also eine Funktion \(\tau = f(t)\) daraus machen. Das geht mit hoher Wahrscheinichkeit gar nicht mehr analytisch ... Schlußendlich ist dann dieses \(f(t)\) für \(\tau\) in die Polynome einzusetzen, wodurch Du dann die gewünschten Funktionen \(x(t)\) und \(y(t)\) bekommst.

Bist Du sicher, dass die Aufgabenstellung so gemeint war?

Gruß Werner

Avatar von 48 k

Hm,

ich bosle gerade am Spline-Thema mit GeoGebra CAS.

Da ist mir eine App des Teams aufgefallen, die geht vielleicht in die Richtung

https://www.geogebra.org/material/show/id/q83UFJsT

Ich hab noch nicht die Muße gehabt die App aufzudröseln - ist leider im Algebra-Fenster abgehandelt - das ist extrem unübersichtlich. Man müsste das der Matrix zugrundliegende LGS rekonstruieren um zu sehen, was gemacht wurde...

Mit Deinen Daten erhalte ich

blob.png

Hallo wächter,

wenn der angezeigte Graph das Ergebnis dieses Algorithmus ist, dann passt was nicht! Wie auch immer der Graph aussieht, er müsste IMHO achsensymmetrisch zur 45°-Geraden durch den Punkt \((2,5|\, 2)\) sein.

Außeredem sieht es so aus, dass im Punkt \((1|\, 2)\) eine Ecke vorliegt. Evt. fehlt hier die periodische Randbedingung für die Steigung.

Das sieht vielleicht nur so aus, weil die App mit 5 Punkten arbeitet und ich die überzähligen einfach überlagert hab. Das verzerrt wohl das Gesamt-Bild.

Ich will die App mal auseinandernehmen, was sie genau gemacht haben, weil das Ergebnis ziemlich genau dem entspricht, was die eingebaute Spline-Funktion auch liefert - im Vergleich

blob.png

Grün ist Spline({A,B,C,A}) - also das was die App mit den Daten hier machen sollte.
Blau dürfte, im Wesentlichen Deinem Alg. entsprechen - ich hab das zwar etwas anders aufgebau - im Endergebnis

 \(\small x(t) \, :=  \, If \left(t \geq 0 \wedge 1 \geq t,-\frac{3}{2} \; t^{3} + 3 \; t^{2} + 1,t > 1 \wedge 2 \geq t,-\frac{3}{2} \; t^{2} + \frac{9}{2} \; t - \frac{1}{2},\frac{3}{2} \; t^{3} - \frac{21}{2} \; t^{2} + \frac{45}{2} \; t - \frac{25}{2} \right)\)

\(\small y(t) \, :=  \, If \left(t \geq 0 \wedge 1 \geq t,-2 \; t^{2} + 2 \; t + 2,t > 1 \wedge 2 \geq t,2 \; t^{3} - 8 \; t^{2} + 8 \; t,-2 \; t^{3} + 16 \; t^{2} - 40 \; t + 32 \right)\)

sollten wir uns treffen - ist das so?

.. sollten wir uns treffen - ist das so?

so isses. Der grüne Graph sieht aber anders aus als der oben in Deinem ersten Kommentar.

Ja, das liegt daran, dass ich die überzähligen Punkte nicht korrekt entsorgt hab - ich hab die App noch nicht analysiert - mir ist nur aufgefallen, dass der Parameter

t = √(xi2+yi2)

irgendwie bogenartig ausgearbeitet wird....

Ich hab die App im CAS umgesetzt - es ergibt nochmal eine andere Lösung als die in GGB einbauten Splines. Es würde jetzt zu weit führen das alles hier auszubreiten.

Es werden voll besetzte Polynome verwendet

\(p_i(t)=a_{i3} \; t^{3} + a_{i2} \; t^{2} + a_{i1} \; t + a_{i0}\)

wo bei t beginnend bei 0 in die Abschnitte

\(\small t_i \, :=  \, \left(\sqrt{\left(X\left(i + 1 \right) - X\left(i \right) \right)^{2} + \left(Y\left(i + 1 \right) - Y\left(i \right) \right)^{2}},i,1,n \right)\)

eingeteilt wird (also die Entfernung der Punkte).

blob.png

Blau die oben besprochene Lösung

Rot mit dem Algorithmus der App

gestrichelt die Lösung durch GGB-Spline-Funktione

Ich kann das Beispiel aber gerne hochladen, wenn es von Interesse ist...

@Werner, die "Ecke bei A ist jetzt glatt gezogen ;-)

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community