Arc Length and Curvature of Plane Curves

Definition

A space curve is said to be a plane curve, if it is completly contained in a plane. By choosing the coordinate system with i and j on the plane of the curve we can always simplify its parametrization to the form:
r(t) = x(t) i + y(t) j
Formulas simplify even further when the plane curve is the graph of the function
y = f(x)
Let us deduce the expressions for arc length and curvature in this last case. First some useful notation,

> alias(v=vector):i:=v([1,0,0]):j:=v([0,1,0]):k:=v([0,0,1]):
> len := proc(u) sqrt(innerprod(evalm(u),evalm(u))); end:
 The arc length from x=a to x=b is,

> L := Int( len( diff( x*i + f(x)*j, x) ), x=a..b );

```                              b
/
|  /    /  d      \2\1/2
L :=  |  |1 + |---- f(x)| |    dx
|  \    \ dx      / /
/
a```
 In order to deduce the formula for the curvature at x, we need first the unit tangent vector at x,

> Dr := diff(x*i + f(x)*j, x); T := Dr / len( Dr );

```                                      /  d      \
Dr := i + |---- f(x)| j
\ dx      /

/  d      \
i + |---- f(x)| j
\ dx      /
T := ---------------------
/    /  d      \2\1/2
|1 + |---- f(x)| |
\    \ dx      / /```
 The formula for the curvature is then,

> K := len( diff(T,x) ) / len( Dr );

```                              /   /   2      \2   \1/2
|   |  d       |    |
|   |----- f(x)|    |
|   |   2      |    |
|   \ dx       /    |
|-------------------|
|/    /  d      \2\2|
||1 + |---- f(x)| | |
\\    \ dx      / / /
K := ------------------------
/    /  d      \2\1/2
|1 + |---- f(x)| |
\    \ dx      / /```
 To help maple simplify the denominators we do,

> K := sqrt( simplify(K^2) );

```                              /   /   2      \2   \1/2
|   |  d       |    |
|   |----- f(x)|    |
|   |   2      |    |
|   \ dx       /    |
K := |-------------------|
|/    /  d      \2\3|
||1 + |---- f(x)| | |
\\    \ dx      / / /```
 Another way to write the same thing is K = | f"(x) | / ( 1 + [f'(x)]^2 )^(3/2) For example the curvature of the parabola y = x^2 at the points (0,0) and (1,1) can be easily computed with:

> f := x -> x^2;

```                                             2
f := x -> x```
> k := unapply(K,x);
```                                   1/2 /     1     \1/2
k := x -> 4    |-----------|
|        2 3|
\(1 + 4 x ) /```
> k0 := simplify(k(0)); k1 := simplify(k(1));
```                                    k0 := 2

1/2
k1 := 2/25 5```
 the curvature at x=y=1 is then about,

> k1f := evalf(k1,2);

`                                   k1f := .18`
 Notice that,

> Limit(k(x),x=infinity) = limit(k(x),x=infinity);

```                                   1/2 /     1     \1/2
Limit         4    |-----------|    = 0
x -> infinity      |        2 3|
\(1 + 4 x ) /```
 This agrees with the fact that the parabola gets straighter and straighter (curvature = 0) as x gets larger.

Link to the commands in this file
Carlos Rodriguez <carlos@math.albany.edu>