Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1999
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Urgent Help needed

  • To: mathgroup at smc.vnet.net
  • Subject: [mg20409] Re: [mg20390] Urgent Help needed
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Tue, 26 Oct 1999 00:32:58 -0400
  • References: <199910180640.CAA02254@smc.vnet.net.>
  • Sender: owner-wri-mathgroup at wolfram.com

Vladimir Tsyrlin wrote:
> 
> Given the implcit form of a curve, i.e. F(x,y,z) = 0, do you know how to
> find the curvature of F at a point in 3D space? All the references I have
> assume F is in parametric form and take the standard differential geometry
> approach.
> 
> --
> **************************************************
> *************Vladimir Tsyrlin *******************
>  vtsyrlin at cs.rmit.edu.au   vtsyrlin at ozemail.com.au
> ******************************************************

First, you need two functions, otherwise you have an implicitly defined
surface. So we suppose we have a curve given implicitly by {f[x,y,z]==0,
g[x,y,z]==0}.

We may parametrize almost everywhere by the x coordinate. So we
implicitly regard y and z as functions of x, take derivatives of the
defining equations, and we get two equations from which we may solve for
dy/dx and dz/dx. Thus a tangent to the curve, v[x], is {1,dy/dx,dz/dx}
and its length is the speed of the parametrization.

Next we divide by speed to get a unit tangent T[x]. A formula for
curvature, taken from any calc text (I am embarrassed to admit I had to
look this up) is

1/|v[x]| * |dT[x]/dx|

Here is a simple example where our curve is the intersection of the unit
sphere with a plane through the origin.

funcs = {x^2+y^2+z^2, x+2*y+3*z};

norm[vec_] := Sqrt[vec.vec]
diffs = Map[Dt[#,x]&, funcs] /. {Dt[z,x]->zprime, Dt[y,x]->yprime};
vel = {1,yprime,zprime} /. First[Solve[diffs == 0, {yprime,zprime}]];
speed = norm[vel];
unitTan = vel/speed;
unitTanDeriv = D[unitTan,x];
curvature = 1/speed * norm[unitTanDeriv];

In[34]:= InputForm[Simplify[curvature]]
Out[34]//InputForm= 
(Sqrt[14]*Sqrt[(3*y - 2*z)^2/(13*x^2 - 4*x*y + 10*y^2 - 6*x*z - 12*y*z + 
      5*z^2)^2])/Sqrt[1 + (-2*x + y)^2/(3*y - 2*z)^2 + 
   (-3*x + z)^2/(3*y - 2*z)^2]


Daniel Lichtblau
Wolfram Research


  • Prev by Date: Re: non-continguous ParametricPlot?
  • Next by Date: Non standard evaluation troubles.
  • Previous by thread: Urgent Help needed
  • Next by thread: Re: Urgent Help needed