1

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...

anderstood
  • 14,301
  • 2
  • 29
  • 80

2 Answers2

1

The Square of curvature is enter image description here

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...

Ulrich Neumann
  • 53,729
  • 2
  • 23
  • 55
0

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$.

David G. Stork
  • 41,180
  • 3
  • 34
  • 96
  • 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 01:36