If I have the Frenet frames for an admissible curve say $\alpha$ in a pseudo Galilean space, which is given by: $ t'(x) = \kappa(x) n(x)$, $n'(x) = \tau(x) b(x)$ and $b'(x) = tau(x) n(x)$, where tau and kappa are the torsion and the curvature, respectively. And the {t, n, b} are frenet trihedron. They are orthogonal and they have the following properties: $t * n= \epsilon b$, $n * b= 0$ and $b * t= - \epsilon n$, where epsilon is 1 or -1 (space like curve, time like curve). Note : The cross and dot product have different definition from the Euclidean space as in the attached file. How can I solve the frenet frame system by using NDsolve to get the curve and How can I plot it?. i.e: If $\kappa$ and $\tau$ are given and they are called intrinsic equations of the curve. I need to solve the system $ t'(x) = \kappa(x) n(x)$, $n'(x) = \tau(x) b(x)$ and $b'(x) = tau(x) n(x)$. To find the curve from its intrinsic equations, where $t = d\alpha/ dx$ is the tangent. I need a numerical way to solve and plot it.


  • $\begingroup$ If this question is really about Mathematica, then you should include the code you have tried so far, or at a minimum your expressions in MMA format. But you may be on the wrong forum. Did you need the math forum at math.stackexchange.com instead? $\endgroup$
    – MarcoB
    May 15 '20 at 17:42
  • $\begingroup$ Could you write more explicitly the set of equations you would like to solve? For example, “note that the cross and dot product have different definitions than the Euclidean space”, makes extra work for the people attempting to answer the question. Also are tau(x) and kappa(x) known? Could you give suggested values for those functions? These answers might be in the reference, but perhaps you could provide a specific example? $\endgroup$
    – user6546
    May 16 '20 at 8:04
  • $\begingroup$ The Physics forum also might be appropriate, since this might be a problem in General Relativity. $\endgroup$
    – bbgodfrey
    May 16 '20 at 13:25
  • $\begingroup$ I added some more details now. I wish it became more clear now. $\endgroup$
    – Heba Serry
    May 16 '20 at 15:57
  • $\begingroup$ Perhaps you could try adapting the solution in this question to your situation. $\endgroup$
    – J. M.'s torpor
    May 16 '20 at 16:00

As already hinted in the comments, you only need to adapt the method in Michael's answer to the modified Frenet-Serret equations for pseudo-Galilean space. You can use formula 18 and formula 22 from the linked paper together, like so:

κ[x_] := Exp[-x];
τ[x_] := Haversine[π x];
r0 = {0, 0, 0}; {t0, n0, b0} = IdentityMatrix[3];
eqns = {r'[x] == t[x],
        t'[x] == κ[x] n[x],
        n'[x] == τ[x] b[x],
        b'[x] == τ[x] n[x],
        r[0] == r0, t[0] == t0, n[0] == n0, b[0] == b0};
sol = NDSolveValue[eqns, r, {x, 0, 12},
                   Method -> {"Projection",
                              "Invariants" -> HodgeDual[TensorWedge[t[x], n[x], b[x]]]}];

I gave r as the second argument of NDSolve(Value) since I only want to plot the resulting curve for this answer. If the Frenet frame is wanted as well, the second argument should be replaced with {r, t, n, b}.

Two tricks are in play here:

  1. I use the "Projection" method of NDSolve[] to impose the constraint $\det(\mathbf t,\mathbf n,\mathbf b)=1$ on the solution.

  2. Since Det[{t[x], n[x], b[x]}] is not usable in NDSolve[], I use an alternative representation for the determinant in terms of HodgeDual[] + TensorWedge[].

We can then plot the solution:

ParametricPlot3D[sol[x], {x, 0, 12}]

plot of solution


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