Talk:Cubic Hermite spline

Hermite pronunciation
IPC pronounciation for Hermite anyone? (I dont know, but it seems like a huge fad at wikipedia) -- dormant25
 * Can be found at Charles Hermite. -- Slowmover 20:54, 15 June 2006 (UTC)

The x parameter
This page does not explain what the $$x_k$$ parameter is in the set $$(x_k,\boldsymbol{p}_k)$$. Cww 00:42, 23 March 2007 (UTC)
 * I added some content on this issue. Berland 16:05, 23 March 2007 (UTC)

m_i ?
In the three-point difference expression for the tangent vector, the tangent itself is labelled with subscript i, where all expressions in its definition are labelled with subscript k. This computation represents the kth tangent, not the ith, yes? 64.247.224.252 15:01, 30 March 2007 (UTC)
 * Seemed like a blatant error yes. I replaced m_i with m_k. --Berland 15:33, 30 March 2007 (UTC)

y0 and y1 need to be normalized too, not mentioned on this page
I just implemented a cubic hermite spline function according to this description. However, there is one problem with the p(t) formula: The x values get normalized by substituting them with t. But there is no mention of normalizing yk and yk+1. If I don't normalize them similar to y0' = y0 / (xk+1 - xk) and y1' = y1 / (xk+1 - xk), then the effect of the tangents in p(t) is not correct. I'm not very good at formulating mathematical things so I rather would have someone else fix the page. Maybe the expression 'normalizing the interval' implies normalizing the y values as well, but to me it seems you'd have to be a well-versed mathematician to understand that ;-) Just wanted to point this out... Cwienands 04:04, 12 April 2007 (UTC)
 * You are right, this has to be sorted out. --Berland 20:22, 26 June 2007 (UTC)
 * I think this is now correctly handled for the finite difference choice of tangents, but there might still be some consistency issues for the other listed tangent choices. --Berland (talk) 21:05, 10 December 2007 (UTC)
 * I think the handling of 'h' in the second and fourth part of the equation in the non-uniform case isn't correct (or the specifications of the tangents are not). Iff h >> 1 (eg. 100) this becomes pretty obvious: Catmull-Rom would yield m_0=(100-0)/2=50 for A={(0,0), (100,50), (200,100), (300,0)} => h*m_0 = 100 * 50 >> maxP(A)
 * This would result in a very strongly oscillating function (try it with Excel, Gnumeric or Pages and plot the result)
 * Either removing 'h' from this equation or mentioning that m_k has to be normalized to yield the real slope (the one which would be the result of the derivative of f(x)=p_0+(x-x_0)*(p_1-p_0)/(x_1-x_0))
 * Was this clear? If not, don't hesitate to ask.--SvenHerzberg (talk) 04:19, 26 December 2007 (UTC)

Merge
I suggest merging the articles Catmull-Rom spline and Cardinal spline into this article. The contents of those articles are almost only formulas for determining the shared tangent of cubic Hermite splines, and thus fits nicely in as subsections in this article. Berland 18:55, 21 June 2007 (UTC)

Agree
I agree with this whole-heartedly. The two topics are very closely related and are also both short. Putting them together (in an organized, logically flowing way, of course!) would be a definite improvement. We would have to make sure that the links to these pages are properly resolved as well.

-- Bill 15:15, 15 November 2007 (UTC)


 * I must say that when trying to look up cardinal splines I had a hard time finding out the specifics of it, the Wikipedia article helped. If it is merged then a redirect to the sub-section(not just the page) will be essential. 1 != 2  16:35, 4 December 2007 (UTC)
 * I agree with the second writer here. This was the place that I actually found out what 'Cardinal Spline' meant. The other page would simply have baffled me completely. 10 December 2007 —Preceding unsigned comment added by 217.45.199.166 (talk) 12:14, 10 December 2007 (UTC)

Then the merge should be completed. I will leave Catmull-Rom spline and Cardinal spline for a few days to verify everything has been merged in before they are replaced with redirects to the subsections. --Berland (talk) 20:22, 10 December 2007 (UTC)


 * The question should be, what is best for the reader: separate articles, or redirects to a master article where Catmull-Rom and Cardinal are found only after wading throug a lot of other detail? The answer should be obvious. What is good for a textbook is  not necessarily good for an encyclopedia... --Jorge Stolfi (talk) 15:56, 8 January 2013 (UTC)

New external link
I'm not sure which of the many spline pages this would be best for... but after not finding a nice summary on the web for the most common spline equations for graphics I made one myself that I think will be very useful for others as well. You can see it at: http://www.blackpawn.com/texts/splines/ Should I add it as an external link?

Blackpawn (talk) 23:37, 19 April 2008 (UTC)

"Interpolation without derivatives" should go on a separate page
The final section on "Interpolation on the unit interval without derivatives" is not, in fact, Hermite interpolation since it doesn't interpolate any derivatives. Therefore it should go on a different page, for instance a new page on general cubic interpolation. It is useful in the current context of interpolating a data set, but the differences between it and the preceding Hermite interpolants are not made clear. In particular, there will be discontinuities in the derivative at every node, while Hermite interpolation ensures the derivative is continuous. The term "simplification" implies (to me) that it is a simpler way to get the same interpolant, when in actuality it is an interpolant with very different characteristics. —Preceding unsigned comment added by 71.186.99.202 (talk) 19:03, 21 September 2008 (UTC)

Interpolating $$x$$ in the interval $$(x_k, x_{k+1})$$ requires $$p$$ to be expressed in terms of x
My last edit was reverted, but I am sure about this. Plugging $$t = (x-x_k)/h$$ into the right hand side of the equation yields a function of $$x$$, not $$t$$! Can I revert the revert? Julius1979 (talk) 13:32, 6 November 2008 (UTC)
 * Sorry for reverting, you are right, my mistake. I have reinstated your version. Thanks for being persistent by writing here. --Berland (talk) 13:50, 6 November 2008 (UTC)

I don't think Cubic Hermite is the same as Cubic
The topic "Cubic Interpolation" redirects here, but I don't think that's right. While Hermite is a *form* of cubic, it's not *the* cubic. Under Cubic, I'd expect to see the single-variable version of what's on the Bicubic page. —Preceding unsigned comment added by 129.229.26.125 (talk) 01:03, 15 July 2009 (UTC)
 * Agreed. "Hermite" is not a type of spline, is are a particular method to specify a C1 cubic spline. There should be a master "cubic spline" article with sections or sub-articles on special classes (such as C2 and C1) and specification methods (Hermite, Bézier, coefficient, B-spline, etc.) Unfortunately someone killed the nascent cubic spline article and made it a redirect to this one.  I will try to revert that. --Jorge Stolfi (talk) 15:49, 8 January 2013 (UTC)

Quintic
Is there a quintic spline interpolation like the cubic Hermite? I think I found the formulas, but I don't know how to use:


 * q00(t) = - 6t5 + 15t4 - 10t3 + 1
 * q01(t) = 6t5 - 15t4 + 10t3
 * q10(t) = - 3t5 + 8t4 - 6t3 + t
 * q11(t) = - 3t5 + 7t4 - 4t3
 * q20(t) = - 0.5t5 + 1.5t4 - 1.5t3 + 0.5t2
 * q21(t) = 0.5t5 - t4 + 0.5t3

187.37.152.61 (talk) 15:53, 17 May 2010 (UTC)


 * Given the values and the first two derivatives at t=0 and t=1, you multiply them by these polynomials respectively and add 'em all up. —Tamfang (talk) 06:53, 28 June 2011 (UTC)

What if a have a discrete data set, regularly spaced? I don't know how to determine the derivatives in a smooth way for this case. I would like to have a quintic Catmull-Rom spline, if that's correct. 179.34.239.252 (talk) 22:54, 16 September 2017 (UTC)

Relation to Hermite polynomials?
I cannot discern any relationship whatsoever to Hermite polynomials, which is where Hermite form currently redirects. The spline basis functions described on this page are not even remotely "neat" when expressed as linear combinations of the polynomials described on that page. And that page makes no mention of any other concept that seems even remotely connected to these splines. Google hasn't helped me either, other than to increase my doubt about the relevance of that link. Is there any relationship? If so, what?

And another related question: If that link is not relevant, what does "Hermite form" actually mean? Does it just mean "this particular form defined here" or does it have some meaning outside the domain of cubic Hermite splines? Hermite spline refers to the term as well (with the same confusing link), but as it stands right now I don't have enough information to even know whether the term "Hermite form" is even defined for non-cubic splines. It doesn't seem to be referring to Hermite normal form either, because I can think of no non-contrived way to express the basis polynomials given in the article using a matrix in Hermite normal form. --24.161.61.118 (talk) 22:45, 30 March 2011 (UTC)


 * You said it better than I was about to. —Tamfang (talk) 06:50, 28 June 2011 (UTC)

Finite difference approximation of the derivative as a tangent
The finite difference approximation of the derivative m_k on a non uniform grid is given incorrectly: m_k = 1/2 * p'(+) + 1/2 * p'(-). In fact, it should be a weighted average: m_k = h(-)/(h(+)+h(-))*p'(+) + h(+)/(h(+)+h(-))*p'(-), where forward and backward differences are p'(+)=(p_k+1 - p_k)/h(+), p'(-)=(p_k - p_k-1)/h(-); and forward and backward grid steps are h(+)=t_k+1 - t_k, h(-) = t_k - t_k-1. The shorter interval contributes stronger to the expression. This can be derived by expanding p in Taylor series around a point t_k. v.s. — Preceding unsigned comment added by 75.67.160.95 (talk) 03:07, 8 October 2012 (UTC)

Interval range
My math skills are often poor, so I didn't actually edit the page, but isn't this portion contradictory:


 * The parameter c is a tension parameter that must be in the interval (0,1). c=1 will yield all zero tangents, and c=0 yields a Catmull–Rom spline.

The parentheses means that 0 and 1 are excluded, but the article goes on to discuss the implication of those values. I believe that [0, 1] is correct. — Preceding unsigned comment added by 71.182.149.166 (talk • contribs) 22:21, 24 January 2016


 * Fixed. Glrx (talk) 18:40, 27 January 2016 (UTC)

parabola dreamin'
In the section "Interpolating a data set", I'm surprised not to see what I thought most natural: m_k is the slope at t_k of the quadratic that fits its two neighbors. Is there a name for that? —Tamfang (talk) 01:56, 24 January 2018 (UTC)

confusing graphic
I cannot make sense of the graphic captioned "Geometric interpretation of Catmull–Rom cubic interpolation of the black point with uniformly spaced abscissae.[4]"

I failed to spot any discussion of the graphic in the article.

Is it missing labels next to the minus signs? Is it really obvious what the double-ended arrows are indicating?

Jmichael ll (talk) 03:45, 14 March 2022 (UTC)

Tangents for uniform Catmull-Rom seems incorrect
One part of the article claims that the uniform Catmull–Rom spline can be obtained by
 * $$\boldsymbol{m}_k = \frac{1}{2} \frac{\boldsymbol{p}_{k+1} - \boldsymbol{p}_{k-1}}{x_{k+1} - x_{k-1}}$$

However, I'm pretty sure the factor of 1/2 is erroneously placed there, uniform knot spacing for the unit interval generally implies the denominator would equal 2, as the knot spacing is 1, which leads to a double division. According to my tests, the preceding factor of 1/2 is incorrect, it would imply a division by 4 which doesn't match the catmull-rom.

It's also somewhat confusing to talk about the uniform catmull-rom while still using a knot vector, isn't it? When testing this empirically, this seems to be the correct way to generate the uniform catmull-rom spline using the hermite form tangents


 * $$\boldsymbol{m}_k = \frac{\boldsymbol{p}_{k+1} - \boldsymbol{p}_{k-1}}{2}$$

In addition, this also means that in the previous section, the value of c (tension) would have to be 0 rather than 0.5 to get the uniform Catmull-Rom. — Preceding unsigned comment added by FreyaHolmer (talk • contribs) 09:19, 5 May 2022 (UTC)

interpolation formulae alignment
Should the formula

Interpolation on an arbitrary interval

 * $$\boldsymbol{p}(x) = h_{00}(t)\boldsymbol{p}_k + h_{10}(t)(x_{k+1} - x_k)\boldsymbol{m}_k + h_{01}(t)\boldsymbol{p}_{k+1} + h_{11}(t)(x_{k+1} - x_k)\boldsymbol{m}_{k+1},$$

line up with

Representations

 * $$\boldsymbol{p}(t) = h_{00}(t)\boldsymbol{p}_0 + h_{10}(t)(x_{k+1}-x_k)\boldsymbol{m}_0 + h_{01}(t)\boldsymbol{p}_1 + h_{11}(t)(x_{k+1}-x_k)\boldsymbol{m}_1$$

?

If the change is $$k = 0$$, shouldn't $$x_{k}$$ become $$x_{0}$$, etc.

Jmichael ll (talk) 01:47, 4 June 2022 (UTC)


 * Could someone please elaborate on why "the tangent values have been scaled by (x_k+1 - x_k)? 203.85.68.211 (talk) 06:04, 13 July 2023 (UTC)