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
- References:
- Urgent Help needed
- From: "Vladimir Tsyrlin" <vtsyrlin@ozemail.com.au>
- Urgent Help needed