B-Spline-Kurve mit Endpunkt? < Numerik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 16:27 Fr 01.08.2014 | Autor: | algieba |
Hallo
Ich habe ein Problem mit dem erstellen einer B-Spline-Kurve.
Die mathematische Erklärung dazu findet man hier und auf der nächsten Seite hier.
Ich habe nun alle Daten aus einer Datei ausgelesen, und möchte die Kurve erstellen:
Mein Knotenvektor besteht aus 5 Knotenwerten mit den Multiplizitäten (6,3,3,3,6), also enthält mein Knotenvektor 6+3+3+3+6=21 Einträge. In der Schreibweise aus den obigen Links bedeutet das: $m = 20$
Die Ordnung des B-Spline ist 6, also $k = 6$
Ich habe 15 Kontrollpunkte.
Mit diesen Werten kann ich nun n ausrechnen:
$21 = n + k + 1 [mm] \gdw [/mm] n = 21 - 6 - 1 = 14$
Das stimmt auch damit überein dass ich n+1 Kontrollpunkte haben muss.
Nun aber zu meiner eigentlich Frage: Die Punkte des B-Splines werden korrekt berechnet, nur der Endpunkt des Kontrollpolygons [mm] $P_n$ [/mm] wird nicht in den B-Spline aufgenommen, obwohl er es eigentlich müsste (Zitat aus obigem Link: "Repeating the knots at the end k times will force the endpoints to coincide with the control polygon"). Aber nach folgender Überlegung ist das unmöglich:
In der Formel (1.62) in obigem Link ist der Definitionsbereich von t angegeben als $t [mm] \in [t_{k-1}, t_{n+1}]$, [/mm] das verstehe ich so, dass die beiden Grenzen auch im Intervall enthalten sind. Nehmen wir also den rechten Rand und setzen $t = [mm] t_{n+1}$. [/mm] Das ist in meinem Fall also schon der letzte und größte Knotenwert, der am Ende des Knotenvektors 6 mal wiederholt wird.
Setze ich nun diesen Wert für t in die Formel von r(t) ein. dann wird ja rekursiv der Wert von [mm] $N_{i,k}(t)$ [/mm] berechnet, indem der Grad k in jedem Schritt um eins verringert wird (siehe Definition von [mm] $N_{i,k}(t)$). [/mm] Man kann also [mm] $N_{i,k}(t)$ [/mm] als Summe von vielen [mm] $N_{i,1}(t)$ [/mm] schreiben. Diese sind aber mit unserem speziellen t immer 0, da der Knotenwert am Ende 6 mal wiederholt wird, und für t also niemals [mm] $t_i \le [/mm] t < [mm] t_{i+1}$ [/mm] gilt.
Damit der Endpunkt aber in dem B-Spline sein soll, müsste eigentlich gelten für $t = [mm] t_{n+1}$:
[/mm]
[mm] $N_{i,k}(t) [/mm] = [mm] \begin{cases} 0, & \mbox{für } i
Wo liegt denn der Fehler?
Vielen Dank und viele Grüße
algieba
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:20 Sa 16.08.2014 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|