0 Daumen
1,1k Aufrufe

Leute,
wie kann ich durch die 3 Punkte A(-1|1), B(1|4) und C(3|3) zwei kubische Funktionen (splines) bildern, die den Punkt B gemeinsam haben?
Ich habe dann doch 2 Gleichungen:
f(x) = ax^3 + bx^2 + cx + d => die reicht von A nach B
und
g(x) = hx^3 + ix^2 + kx + m => die reicht von B nach C

Da sie sich am Punkt B vereinigen, müssen sie dort doch die gleiche Ableitung (=Steigung) haben:
f'(1) = g'(1) ... aber den y-Wert kenne ich doch nicht - oder?

An Gleichungen finde ich
I f(-1) = -a + b - c + d = 1
II f(1) = a + b + c  + d = 4

I + II => 2b + 2d = 5  | - 2b
=> 2d = 5 - 2b => d = 2,5 - b Was bringt mir das???

Die 2. Ableitung muss in B ja auch gleich sein:
f"(x) = g"(x)
f"(x) = 6ax + 2b
f"(1) = 6a + 2b = ???
Das ist doch alles zum Heulen ... oder???

Avatar von

Die Frage erscheint mir seltsam.

Wenn du zwei kubische Funktionen durch A, B und C  suchst, die du an der Nahtstelle xB "zusammensetzen" kannst, gibt es unendlich viele Möglichkeiten. (3 Bedingungen für 4 Unbekannte)

Da sie sich am Punkt B vereinigen, müssen sie dort doch die gleiche Ableitung (=Steigung) haben.

Müssen sie nicht.

> Die 2. Ableitung muss in B ja auch gleich sein

Wieso?


müssen sie doch.

Zwei kubische Funktionen   ==> (splines) <==

Grüße,

M.B.

Du hast recht, war ein vorschneller Kommentar. Kannte den den Ausdruck "splines" nicht.

2 Antworten

0 Daumen

f(x) = a·x^3 + b·x^2 + c·x + d

g(x) = e·x^3 + h·x^2 + i·x + j

Bedingungen

f(-1) = 1

f(1) = 4

g(1) = 4

g(3) = 3

f'(1) = g'(1)

f''(1) = g''(1)

Gleichungen

-a + b - c + d = 1

a + b + c + d = 4

e + h + i + j = 4

27·e + 9·h + 3·i + j = 3

3·a + 2·b + c = 3·e + 2·h + i

6·a + 2·b = 6·e + 2·h

Wenn ich jetzt richtig gerechnet habe ist es trotzdem unterbestimmt.

Möglich sollte z.B. sein

f(x) = -x^3 + 10/3·x^2 + 5/2·x -5/6

g(x) = -11/6·x^3 + 35/6·x^2 + 0·x + 0

Avatar von 480 k 🚀

kubische Splines haben immer genau 2 offene Bedingungen, die normalerweise als Randbedingung für den ersten und den letzen Punkt, speziell dort als Steigungen, angegeben werden.

Grüße,

M.B.

hallo coach,

ich habe mich etwas kundig gemacht.
http://www.nibis.de/~lbs-gym/Verschiedenespdf/Splines.pdf

Als weitere Bedingung wird angenommen
f ´´ ( -1 ) = 0
g ´´ ( 3 ) = 0

Die Krümmung im Anfangs- und Endpunkt
wird mit 0 angenommen.

Unter der Maßgabe, dass die Krümmung am Anfang und Ende Null ist erhalte ich

f(x) = -1/8·x^3 - 3/8·x^2 + 13/8·x + 23/8

g(x) = 1/8·x^3 - 9/8·x^2 + 19/8·x + 21/8

Dieses sollte als Kontroll-Lösung für eigene Rechnungen dienen.

Ich kann mich bei Photoshop an Splines erinnern. Dort war es jedoch glaube ich so wie MatheMB sagt, dass man dort die Steigungen im Anfangs und Endpunkt angibt. Aber in Photoshop verwendete Splines sind auch bestimmt keine Funktionen sondern eher Gleichungen, weil es dort zu einer x Koordinate auch mehrere y-Koordinaten geben konnte.

Das Konzept bei Photoshop ist ein wenig allgemeiner, aber es ist dennoch ein gutes Beispiel für praktische Anwendungen derartiger Verfahren. Ähnliches gibt es auch in InDesign, Gimp  etc., dort sind es m. E. meist Beziér-Splines statt natürlicher Splines.

Eine schöne Einführung findet sich hier:

http://www.tm-mathe.de/Themen/html/funnatsplines.html

Und einen Rechner zur Spline-Interpolation wie beim vorgelegten Problem (mit Ergebnissen in parametrisierter Form) gibt es hier:

http://www.tm-interaktiv.de/Splines/

hallo coach,
nach der Beschreibungen ist ein " spline " eine
dünne Leiste welche durch einige Stützpunkte
führt und das geringste Krümmungsverhalten
aufweist. ( aus dem Schiffsbau ).
Das für den Anfangs- und Endpunkt eine Krümmung
von 0 angenommen wird erscheint mir " relativ "
plausibel.

@ Gast az0815

Vielen lieben Dank für die für das Verständnis sicher hilfreichen Links.

@ georgborn

Ich habe das offensichtlich mit Bezier-Splines verwechselt.

https://de.wikipedia.org/wiki/B%C3%A9zierkurve

Dort müssen die Stützpunkte nicht getroffen werden, sondern geben nur die Steigungen vor. Das ist aber schon so lange her, dass ich mit Photoshop gearbeitet habe. Daher bin ich dankbar, dass ich mein Wissen durch euch etwas auffrischen könnte und etwas dazulernen konnte.

@coach, Deine Lösung ist richtig.

Du hast sicher den Brünner verwendet.
Die Krümmung am Anfangs- und Endpunkt
muß nicht unbedingt 0 sein.
Brünner hat dafür ja auch ein Eingabefeld.

Ich hatte nicht die Seite von Brünner verwendet.

Ich hatte das einfach mit meinem CAS gemacht. Aber gut zu wissen, dass der liebe Brünner auch dafür etwas hat.

http://www.arndt-bruenner.de/mathe/scripts/kubspline.htm

Mithilfe von MuPAD Light und dem möglichen Code

/* Anfang */
f := x -> a*x^ 3 + b*x^ 2 + c*x + d:
g := x -> h*x^ 3 + i*x^ 2 + k*x + m:

Bed := [
\
f(-1) = 1, \
f''(-1) = 0, \
\
f(1) = 4, \
f'(1) = g'(1), \
f''(1) = g''(1), \
g(1) = 4, \
\
g(3) = 3, \
g''(3) = 0 \
\
]:

Var := [a, b, c, d, h, i, k, m]:

solve(Bed, Var);
/* Ende */

bekommt man die Ausgabe:

{[a = -1/8, b = -3/8, c = 13/8, d = 23/8, h = 1/8, i = -9/8, k = 19/8,  m = 21/8]}

(Alle Bezeichner entsprechen der ursprünglichen Frage.)

0 Daumen

Hier mein Ansatz

Bild Mathematik

Bild Mathematik

Wie kann das Gleichungsssystem am einfachsten
zu Fuß berechnet werden ?

Oder wer kann ein Programm nennen mit dem
dies Gleichungssytem  rucki-zucki berechnet werden
kann ?

Avatar von 122 k 🚀

Am einfachsten löst du solche Gleichungssysteme zu Fuß mit dem Additionsverfahren (Gauss-Verfahren).

Jedes CAS sollte in der Lage sein dieses Gleichungssystem binnen Sekunden zu lösen. Bei meinem Casio Classpad genügt die Funktionsdefinition und die Bedingungen in mathematischer Kurzform.

Bei Wolfram kenne ich mich nicht so gut aus. Da Wolfram aber Funktionsdefinitionen fehlen würde ich dort tatsächlich die Gleichungen eingeben. Aber auch Wolfram löst das.

Wer sich mit Wolfram besser auskennt, weiß vielleicht auch wie man das sehr geschickt dort lösen kann.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community