Salut !
Peut-être pour les splines cubiques définies par morceaux.
Si ça t'intéresse, tu peux construire ta courbe "approchante" au fur et à mesure d'ajouter les points en résolvant à chaque étape un petit système.
Bon, il nous faut des points, disons

.
Pour une telle spline, on peut définir paramétriquement les points par
,Y(t)))
(en reprenant tes notations) où

est un entier qui se ballade entre

et

.
Je vais alors poser
)
, et appeler
)
et
)
mes points de contrôle avant et après mes points

. (B comme Before et A comme After, parce qu'en français, ça merdouille un peu : Avant Après ... enfin bref).
Les définitions paramétriques sont :
[INDENT]
=(1-t)^3x_k+3t(1-t)^2x_k^a+3t^2(1-t)x_{k+1}^b+t^3x_{k+1})
=(1-t)^3y_k+3t(1-t)^2y_k^a+3t^2(1-t)y_{k+1}^b+t^3y_{k+1})
[/INDENT]pour

.
Avec ce genre de courbe définie par morceaux, tu peux avoir un assez bon contrôle sur les courbures. En particulier, tu peux "régler" les demi-tangentes "avant" et "après" les points de contrôle, genre :
[CENTER]

[/CENTER]
Mais si tu veux avoir une courbe un peu plus "lisse", tu dois faire en sorte que les (demi-)tangentes "précédentes" et "suivantes" aient la même direction, autrement dit que les vecteurs

et

aient la même direction. Une méthode consiste à se débrouiller pour avoir le point

sur le segment

.
Tu peux aussi jeter un coup d'oeil sur Wiki :
Ici