Random curve given the curvature

I have a made a random curve where I know the curvature on any point of the curve (1/R of the osculating circle). My question is: How do I find the equation of this curve/graph when I know the curvature (1/R) and the points?

The curve is showed above.


  • $\begingroup$ Any point where curvature is $0$ gives you two options (intuitively speaking, after that point the curve may "turn left" or "turn right"). Also, what "points" do you know? $\endgroup$ Dec 12 '16 at 12:22
  • $\begingroup$ I actually know every point on the graph because the curve is drawn in Rhino, where the points can be printed out in datalists. $\endgroup$ Dec 12 '16 at 12:53
  • $\begingroup$ Then in what matter do you know curvature "better" then actual values? Do I understand it right that you can get any number of points of a graph and would like to know a graph of which function $f$ it is, provided that $f$ belongs to a certain class (has a certain 'form' of its algebraic expression)? $\endgroup$ Dec 12 '16 at 13:42
  • $\begingroup$ I am not sure which certain class the function belongs to. The only thing I know is the points' location and curvature at any given points. Is there really nothing I can do to get the function of this curve? $\endgroup$ Dec 12 '16 at 14:24
  • 1
    $\begingroup$ If the curvature is parametrized by arc length, then $$\begin{pmatrix} x \\ y \end{pmatrix}=\begin{pmatrix} x_0+\int_0^s \cos \left( \int_0^s \kappa(s) \, ds \right) \, ds \\ y_0+\int_0^s \sin \left( \int_0^s \kappa(s) \, ds \right) \, ds \end{pmatrix}$$ $\endgroup$ Dec 12 '16 at 19:28

Assuming that you know the signed curvature (i.e., $+1$ for the unit circle traversed counterclockwise, $-1$ when it's traversed clockwise), you can do it via integration. I'll give details below.

But if you know only the curvature, then there's no way to reconstruct the curve. Here's why:

Let $$ f_1(x) = x^3\\ f_2(x) = \begin{cases}x^3 & x \ge 0 \\ -x^3 &x < 0\end{cases} $$

The graphs of $f_1$ and $f_2$ have the same curvatures $k(x)$ at $(x, f_1(x))$ and $(x, f_2(x))$, respectively, for every real number $x$.

Hence, if I told you $k(x)$, you would not know which graph it came from.

Now what about my claim about signed curvature? That's almost true. If I give you the signed curvature $k(t)$ for the curve, where $t$ denotes the time at which you're at each point of the curve ... you still don't know enough.

Suppose that I say $k(t) = 1$ for $0 \le t \le 1$. Then

$$ u_1(t) = (\cos 2\pi t, \sin 2\pi t) $$ is a curve with that curvature. It traverses a unit circle. Unfortunately, so is $$ u_1(t) = (\cos \pi t, \sin \pi t) $$ which traverses only a half-circle. (And, of course, I could have moved everything 5 units to the right, and gotten another solution).

So what can you do?

Suppose you're given the signed curvature $k(s)$, where $s$ tells you how far along the curve you've travelled since the starting point. And we agree to start at the origin $(0,0)$, headed in the positive $x$ direction. Then there is in fact a unique curve that starts at that point, in that direction, and has the prescribed curvature at every point. The way to find the curve involves integration --- are you familiar with that notion? --- and a little linear algebra; I can write it out for you if you like. Let me know in the comments.

  • $\begingroup$ Thank you for your reply! I am familiar with integration yes. But I am not sure how to use it in this particular problem. Well.. I have a curve which is 1 unit long. The curvature k(0) = 0,023304 and the k(1)=0,024585 - How can i find the curve equation? $\endgroup$ Dec 12 '16 at 13:11

For your question as given in the comments:

I am not sure which "certain class" the function belongs to. The only thing I know is the points' location and curvature at any given points. Is there really nothing I can do to get the function of this curve?

No and yes and no and yes/no, depending on what you actually mean.

No, you can't get a function from only a finite number of points of its graphic
The reason is simple: if you could, you would know value of this function in any other point, but, obviously, one can always define another function to be the same as yours anywhere sans that point (or its small enough neighborhood, for continuous functions - but note that "$f$ is a continuous function" is additional knowledge which can't be inferred from a finite number of values).

Yes, you can build a function that would have given values and curvatures in given points - actually, infinitely many of them
If you have your set of points fixed, take a segment $[x_i, x_{i+1}]$ where you know values and curvatures in $x_i, x_{i+1}$ but not in between them. Let $f(x) = A_ix^3+B_ix^2+C_ix+D_i | x \in [x_i, x_{i+1}]$, then you have four conditions (two values and two curvatures) for four variables ($A_i, B_i, C_i, D_i$) and can find their values. This way, segment after segment, you can define your function wherever you know values for it.
Problem A: it doesn't guarantee that this spline of yours will give the same result as your initial source of function values for other points (it likely won't, but if the function is "good" in a certain sense it won't deviate far either).
Problem B: you can use other form of $f$ on a segment (say, $A_ix^4+B_ix^3+C_ix^2+D_i\sin x$), giving you the same fixed values, but other intermediate values.

No, you can't surely confirm with information of limited precision that the function is, say, $\sin(x+\pi/6)$
The reason is pretty much the same: if you know values of a function only up to finitely many decimal digits, you can't distinguish between, say, $\sin(x + \pi / 6)$ and $\sin(x + \pi/6 + 10^{-100000})$ - but algebraically they are different functions.

Yes/no, you can find a function which is both "simple" and "close" to the data you're given, but since terms in quotes are fuzzy, there is no algorithm for doing so The basic idea that you define some family of functions - say, $f(x) = A\sin(Bx+C) + D$, define some measure of "distance" - say, $\sum_i(f(x_i) - y_i)^2 + \sum_i(k(x_i) - k_i)^2$ where $k(x)$ is curvature of $f$ and search for parameters $A,B,C,D$ so that this distance would be minimal. Of course, there's a question of how to choose the initial family... can't advise much better than "eyeballing it".


It turns out that my first answer was to a question you didn't have. You're hoping for an equation for the curve. I'm assuming that you mean something like $$ x(t) = 32t^2 - 6 \sin t + \frac{1}{t^2+ 1}\\ y(t) = 2^t - t^2. $$

The bad news? There's basically no hope. For almost all curvature functions $k$, there is no nice algebraic equation for the curve with this curvature function. (By "algebraic", I mean sums, powers, differences, products, quotients of constants, powers of $t$, exponentials, trig functions, logs, and any other 'basic' functions that you're familiar with.)

Let me make that more explicit: even if you know a polynomial formula for $k(t)$, something like $$ k(t) = A + Bt - Ct^2 $$ for almost all coefficient-sets $(A,B,C)$, there's no algebraic formula for the curve.

I can't easily prove that for you --- indeed, I don't have an actual proof in hand, but a general idea --- but I say it from years of experience trying to make up exercises for things like differential geometry classes. There's a reason all the DG books have the same exercises: those are the 6 cases that work out nicely algebraically. :)

So my answer, I guess, is, "You cannot, in general, find 'the equation' of this curve/graph when I know the curvature (1/R) and the points."


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.