# How to compute curvature of a curve defined by a list of points (in $\mathbb{R}^n$)?

Consider a "curve" defined by a list of points in finite dimension (here, four):

pts = Table[{Cos[t], 0, Sin[2 t], Sin[t]}, {t, Subdivide[0, 1, 99]}]

I used known functions to generate pts but of course I am not supposed to know the parametric equation of the curve they belong to.

What would be a good approach to compute the local curvature? Several possibilities I thought of:

• interpolating pts and using ArcCurvature (introduced in Mathematica 10)
• using $n+1$ consecutive points (where $n$ is the dimension), fit the circle that passes through them: that's the osculating circle, whose radius is the opposite of the curvature.

Ideally, the solution should not be too sensitive to noise...

• In your context, do the sample pts are noisy? I so a smoothing step must be considered before evaluating derivatives to get the curvature. – Picaud Vincent Dec 20 '17 at 9:09
• – Niki Estner Dec 20 '17 at 11:40
• – Artes Dec 20 '17 at 12:47

The Square of curvature is

To solve your problem you only need good local approximations of the two derivatives, which you could get form Interpolation[]. Suppose the points are closely spaced you could also use common difference schemes.

remark: If the points are closely spaced, you can calculate the optimal circle (3points) for every point(R^n) analytically...

For ${\bf x}(t) = \{ x(t), y(t), z(t) \}$ in $\mathbb{R}^3$ the curvature is:

$$\kappa = {\sqrt{ (z^{\prime\prime}y^\prime + y^{\prime\prime} z^\prime)^2 + (x^{\prime\prime} z^\prime + z^{\prime\prime} x^\prime)^2 + (y^{\prime\prime} x^\prime + x^{\prime\prime} y^\prime)^2} \over ((x^\prime)^2 + (y^\prime)^2 + (z^\prime)^2)^{3/2}}$$

So just substitute your trigonometric functions and evaluate at the $t$ in question. The radius of the oscultating circle is of course $R = 1/\kappa$. The generalization to higher dimension would appear to be straightforward, i.e., extending to all pairs of cross terms in the numerator (under the square root) and having $n$ squares in the denominator, raised to $n/2$.

• Oh, in my OP the complete expression is known, but that's just to generate a list of points. Only the value of pts should be used. Also, your expression is in 3D but I'm asking for any finite dimension. – anderstood Dec 20 '17 at 1:36