I am trying to reconstruct an Archimedean spiral from its curvature

$$\kappa (\text{s$\_$})\text{:=}\frac{s^2+2}{\left(s^2+1\right)^{3/2}};$$


$$\left( \begin{array}{c} t'(s)=\frac{\left(s^2+2\right) n(s)}{\left(s^2+1\right)^{3/2}} \\ n'(s)=-\frac{\left(s^2+2\right) t(s)}{\left(s^2+1\right)^{3/2}} \\ r'(s)=t(s) \\ t(0)=\{1,0\} \\ n(0)=\{0,1\} \\ r(0)=\{0,0\} \\ \end{array} \right)$$

eqns = {(t^\[Prime])[s]==((2+s^2) n[s])/(1+s^2)^(3/2),(n^\[Prime])[s]==-(((2+s^2) t[s])/(1+s^2)^(3/2)),(r^\[Prime])[s]==t[s],t[0]=={1,0},n[0]=={0,1},r[0]=={0,0}}

sol = First@NDSolve[eqns, {r, t, n}, {s, 0, 64 2 \[Pi]}]

This gives a solution:

enter image description here

plotting the result:



gives this obviously non archimedean spiral:

enter image description here

What ist going wrong here?

Any hints wellcome

  • 3
    $\begingroup$ I can see them but I cannot copy them. And I am too lazy to retype them (like virtually every other user here). So, what is not copyable does not exist. $\endgroup$ Feb 17, 2020 at 16:54
  • 4
    $\begingroup$ Are you sure your formula for curvature is correct? I believe yours is curvature as function of the polar angle rather than of the arclength. $\endgroup$ Feb 17, 2020 at 19:39
  • 4
    $\begingroup$ Precisely - it only works for the arclength. You need to correct the equations using $\frac{df}{ds}=\frac{df}{d\theta}\frac{d\theta}{ds}$ for $f=r,t,n$, where (in your case) $\frac{d\theta}{ds}=\frac1{\sqrt{1+\theta^2}}$ $\endgroup$ Feb 17, 2020 at 20:44
  • 4
    $\begingroup$ With equally spaced values of the angular parameter, points must be at equal radial angles rather than arc length distances from each other. $\endgroup$ Feb 18, 2020 at 7:01
  • 3
    $\begingroup$ If I am not confusing things, the parameter $\theta$ is the polar angle. We applied the formalism but reexpressed everything in terms of $\theta$, using that derivative of arclength by $\theta$ is $\sqrt{1+\theta^2}$ in this case. If we would like to parametrize by arclength, we should substitute in the curvature formula the value of $\theta$ expressed by arclength, i. e. solve $\theta$ from $s=\frac12(\operatorname{arcsinh}(\theta)+\theta\sqrt{1+\theta^2})$. I don't know any explicit expression for that. $\endgroup$ Feb 18, 2020 at 9:36

1 Answer 1


Ok, thanks to მამუკა ჯიბლაძე I got the following solution:



this gives the archimedean, it's curvature and the arclength derivative $$\left( \begin{array}{c} \{\theta \cos (\theta ),\theta \sin (\theta )\} \\ \frac{\theta ^2+2}{\left(\theta ^2+1\right)^{3/2}} \\ \sqrt{\theta ^2+1} \\ \end{array} \right) $$

here are the (differential) equations to be solved $$ \begin{array}{l} \kappa (s)=\frac{\theta (s)^2+2}{\left(\theta (s)^2+1\right)^{3/2}} \\ \theta '(s)=\frac{1}{\sqrt{\theta (s)^2+1}} \\ t'(s)=n(s) \kappa (s) \\ n'(s)=-t(s)\kappa (s) \\ r'(s)=t(s) \\ t(0)=\{1,0\} \\ n(0)=\{0,1\} \\ r(0)=\{0,0\} \\ \theta (0)=0 \\ \end{array} $$

now let's solve and plot a perfect (with respect to NDSolve) archimedean with perfectly equal arclength-spaced points.

eqns = {
   κ[s] == ((2 + θ[s]^2)/(1 + θ[s]^2)^(3/2)),
   θ'[s] == 1/Sqrt[1 + θ[s]^2],
   t'[s] == κ[s] n[s],
   n'[s] == -κ[s] t[s],
   r'[s] == t[s],
   t[0] == {1, 0},
   n[0] == {0, 1},
   r[0] == {0, 0},
   θ[0] == 0

sol = First@NDSolve[eqns, {r, t, n, θ, κ}, {s, 0, 200}]
With[{sr = (r /. sol)["Domain"][[1]]}, 
  Table[Evaluate[r[s] /. sol], {s, sr[[1]], sr[[2]], 1}]] // 
 ListPlot[#, AspectRatio -> Automatic] &

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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