# hp41programs

Curvature &Torsion

# Tangent & Normal for the HP-41

Overview

1°)  Tangent Line & Normal Plane of a Curve

a) X = X(t)  Y = Y(t)  Z = Z(t)
b) F(X,Y,Z) = 0 & G(X,Y,Z) = 0

2°)  Tangent Plane & Normal Line of a Surface: F(X,Y,Z) = 0

-These programs use approximate derivative formulae of order 6:

y'  ~ (1/(60.h)) ( -y-3 + 9.y-2 - 45.y-1 + 45.y1 - 9.y2 + y3 )
y''  ~ (1/(90.h2)) [ y-3 - (27/2).y-2 + 135.y-1 - 245.y0 + 135.y1 - (27/2).y2 + y3 ]

1°)  Tangent Line & Normal Plane of a Curve

a)  X = X(t)   Y = Y(t)   Z = Z(t)

Formulae:

-At a point  P(x0,y0,z0)  ( with t = t0 ),  the equations of the tangent line are:

( x - x0 ) / ( dx/dt ) = ( y - y0 ) / ( dy/dt ) = ( z - z0 ) / ( dz/dt )

and the equation of the normal plane is:

( x - x0 ) ( dx/dt ) + ( y - y0 ) ( dy/dt ) + ( z - z0 ) ( dz/dt ) = 0

Data Registers:           •  R00 = f name                                  ( Register R00 is to be initialized before executing "TLNP" )

R01 = t0           R03 = x0        R04 = y0       R05 = z0
R02 = h            R06 = dx/dt   R07 = dy/dt   R08 = dz/dt

Flags: /
Subroutine:   A program that takes t in X-register and returns x(t) in X-register ,  y(t) in Y-register & z(t) in Z-register

 01 LBL "TLNP"  02 STO 01  03 X<>Y  04 STO 02  05 4  06 *  07 STO 09            08 X<>Y  09 XEQ IND 00  10 STO 03  11 RDN  12 STO 04  13 X<>Y  14 STO 05 15 CLX  16 STO 06  17 STO 07  18 STO 08            19 SIGN  20 XEQ 01  21 9  22 CHS  23 XEQ 01  24 45  25 XEQ 01  26 GTO 02  27 LBL 01  28 STO 10 29 RCL 02  30 ST- 09  31 RCL 01  32 RCL 09            33 +  34 XEQ IND 00  35 RCL 10  36 ST* T  37 ST* Z  38 *  39 ST+ 06  40 RDN  41 ST+ 07  42 X<>Y 43 ST+ 08  44 RCL 01  45 RCL 09            46 -  47 XEQ IND 00  48 RCL 10  49 ST* T  50 ST* Z  51 *  52 ST- 06  53 RDN  54 ST- 07  55 X<>Y 56 ST- 08  57 RTN  58 LBL 02  59 RCL 02            60 60  61 *  62 ST/ 06  63 ST/ 07  64 ST/ 08  65 RCL 08  66 RCL 07  67 RCL 06  68 END

( 103 bytes / SIZE 011 )

 STACK INPUTS OUTPUTS Z / z'(t) Y h y'(t) X x x'(t)

Example:     x = t - 2      y = 3 t2 + 1      z = 2 t3      t = 2

 01 LBL "T"  02 ENTER  03 ENTER  04 ST+ Z  05 X^2  06 ST* Z  07 3  08 *  09 1  10 +  11 X<>Y  12 2  13 -  14 END

"T"  ASTO 00

-And if we choose   h = 0.04

0.04  ENTER^
2     XEQ "TLNP"  >>>>   x'(2) =  1  = R06                                          ---Execution time = 8s---
RDN   y'(2) = 12 = R07
RDN   z"(2) = 24 = R08

and   R03 = x(2) = 1     R04 = y(2) = 13   R05 = z(2) = 16

-So, the equations of the tangent line are:    x / 1 = ( y - 13 ) / 12 = ( z - 16 ) / 24

and the equation of the normal plane is:     x + 12 ( y - 13 ) + 24 ( z - 16 ) = 0

b)  F(X,Y,Z) = 0   &  G(X,Y,Z) = 0

Formulae:

Tangent Line:      ( x - x0 ) / [ ( df/dy ) ( dg/dz ) - ( df/dz ) ( dg/dy ) ] = ( y - y0 ) / [ ( df/dz ) ( dg/dx ) - ( df/dx ) ( dg/dz ) ] = ( z - z0 ) / [ ( df/dx ) ( dg/dy ) - ( df/dy ) ( dg/dx ) ]

Normal Plane:      ( x - x0 ) / [ ( df/dy ) ( dg/dz ) - ( df/dz ) ( dg/dy ) ] + ( y - y0 ) / [ ( df/dz ) ( dg/dx ) - ( df/dx ) ( dg/dz ) ] + ( z - z0 ) / [ ( df/dx ) ( dg/dy ) - ( df/dy ) ( dg/dx ) ] = 0

( in fact, d = partial derivative )

Data Registers:           •  R00 = f name                                           ( Register R00 is to be initialized before executing "TLNP" )

R01 = x0       R04 = h        R05 = df/dx       R08 = dg/dx     R11 = ( df/dy ) ( dg/dz ) - ( df/dz ) ( dg/dy ) = A
R02 = y0                           R06 = df/dy       R09 =  dg/dy     R12 = ( df/dz ) ( dg/dx ) - ( df/dx ) ( dg/dz ) = B
R03 = z0                            R07 = df/dz       R10 = dg/dz      R13 = ( df/dx ) ( dg/dy ) - ( df/dy ) ( dg/dx ) = C

Flags: /
Subroutine:   A program that takes x in X-register, y in Y-register a z in Z-register and returns f(x,y,z) in X-register & g(x,y,z) in Y-register

 01 LBL "TLNP"  02 STO 01  03 RDN  04 STO 02  05 RDN  06 STO 03  07 X<>Y  08 STO 04  09 4  10 *  11 STO 11  12 CLX  13 STO 05  14 STO 06  15 STO 07  16 STO 08  17 STO 09            18 STO 10  19 SIGN  20 XEQ 01  21 9  22 CHS  23 XEQ 01  24 45  25 XEQ 01 26 GTO 03  27 LBL 01  28 STO 12  29 RCL 04  30 ST- 11  31 RCL 03  32 RCL 02  33 RCL 01  34 RCL 11  35 +  36 XEQ 02  37 ST+ 05  38 X<>Y  39 ST+ 08  40 RCL 03  41 RCL 02            42 RCL 01  43 RCL 11  44 -  45 XEQ 02  46 ST- 05  47 X<>Y  48 ST- 08  49 RCL 03  50 RCL 02 51 RCL 11  52 +  53 RCL 01  54 XEQ 02  55 ST+ 06  56 X<>Y  57 ST+ 09  58 RCL 03  59 RCL 02  60 RCL 11  61 -  62 RCL 01  63 XEQ 02  64 ST- 06  65 X<>Y  66 ST- 09  67 RCL 03  68 RCL 11            69 +  70 RCL 02  71 RCL 01  72 XEQ 02  73 ST+ 07  74 X<>Y  75 ST+ 10 76 RCL 03  77 RCL 11  78 -  79 RCL 02  80 RCL 01  81 XEQ 02  82 ST- 07  83 X<>Y  84 ST- 10  85 RTN  86 LBL 02  87 XEQ IND 00  88 RCL 12  89 ST* Z  90 *  91 RTN  92 LBL 03  93 RCL 04            94 60  95 *  96 ST/ 05  97 ST/ 06  98 ST/ 07  99 ST/ 08 100 ST/ 09 101 ST/ 10 102 RCL 06 103 RCL 10 104 * 105 RCL 07 106 RCL 09 107 * 108 - 109 STO 11 110 RCL 05 111 RCL 09 112 * 113 RCL 06 114 RCL 08 115 * 116 - 117 STO 13 118 RCL 07 119 RCL 08         120 * 121 RCL 05 122 RCL 10 123 * 124 - 125 STO 12 126 RCL 11 127 END

( 178 bytes / SIZE 013 )

 STACK INPUTS OUTPUTS T h / Z z0 C Y y0 B X x0 A

Example:     f(x,y,z) = x2 + 2 y2 + z4 - 28 = 0     g(x,y,z) = x y z - 8 = 0     (x0,y0,z0) = ( 2,2,2)

 01 LBL "T"  02 STO T  03 X^2  04 X<>Y  05 ST* T  06 X^2  07 ST+ X  08 +  09 X<>Y  10 ST* Z  11 X^2  12 X^2  13 +  14 8  15 ST- Z  16 -  17 20  18 -  19 END

"T"  ASTO 00

-And if we choose   h = 0.04

0.04  ENTER^
2     ENTER^  ENTER^  XEQ "TLNP"  >>>>   A = -96                                                ---Execution time = 23s---
RDN    B = 112
RDN    C = -16

-So, the equations of the tangent line are:    ( x - 2 ) / (-96) = ( y - 2 ) / 112 = ( z - 2 ) / (-16)

and the equation of the normal plane is:      -96 ( x - 2 ) + 112 ( y - 2 ) - 16 ( z - 2 ) = 0

2°)  Tangent Plane & Normal Line of a Surface

Surface:    F(x,y,z) = 0

Tangent Plane:        ( x - x0 ) ( dF/dx ) + ( y - y0 ) ( dF/dy ) + ( z - z0 ) ( dF/dz ) = 0

Normal Line:         ( x - x0 ) / ( dF/dx ) = ( y - y0 ) / ( dF/dy ) = ( z - z0 ) / ( dF/dz )

Data Registers:           •  R00 = f name                                           ( Register R00 is to be initialized before executing "TPNL" )

R01 = x0       R04 = h        R05 = df/dx
R02 = y0                           R06 = df/dy
R03 = z0                            R07 = df/dz

Flags: /
Subroutine:   A program that takes x in X-register, y in Y-register a z in Z-register and returns f(x,y,z) in X-register.

 01 LBL "TPNL"  02 STO 01  03 RDN  04 STO 02  05 RDN  06 STO 03  07 X<>Y  08 STO 04  09 4  10 *  11 STO 08  12 CLX  13 STO 05            14 STO 06  15 STO 07  16 SIGN  17 XEQ 01  18 9  19 CHS 20 XEQ 01  21 45  22 XEQ 01  23 GTO 02  24 LBL 01  25 STO 09  26 RCL 04  27 ST- 08  28 RCL 03  29 RCL 02  30 RCL 01            31 RCL 08  32 +  33 XEQ IND 00  34 RCL 09  35 *  36 ST+ 05  37 RCL 03  38 RCL 02 39 RCL 01  40 RCL 08  41 -  42 XEQ IND 00  43 RCL 09  44 *  45 ST- 05  46 RCL 03  47 RCL 02  48 RCL 08            49 +  50 RCL 01  51 XEQ IND 00  52 RCL 09  53 *  54 ST+ 06  55 RCL 03  56 RCL 02  57 RCL 08 58 -  59 RCL 01  60 XEQ IND 00  61 RCL 09  62 *  63 ST- 06  64 RCL 03  65 RCL 08  66 +  67 RCL 02            68 RCL 01  69 XEQ IND 00  70 RCL 09  71 *  72 ST+ 07  73 RCL 03  74 RCL 08  75 - 76 RCL 02  77 RCL 01  78 XEQ IND 00  79 RCL 09  80 *  81 ST- 07  82 RTN  83 LBL 02  84 RCL 04            85 60  86 *  87 ST/ 05  88 ST/ 06  89 ST/ 07  90 RCL 07  91 RCL 06  92 RCL 05  93 END

( 127 bytes / SIZE 010 )

 STACK INPUTS OUTPUTS T h / Z z0 df/dz Y y0 df/dy X x0 df/dx

Example:     f(x,y,z) = 3 x2 + 2 y2 - z - 11 = 0        (x0,y0,z0) = ( 2,1,3)

 01 LBL "T"  02 X^2  03 3  04 *  05 X<>Y  06 X^2  07 ST+ X  08 +  09 X<>Y  10 -  11 11  12 -  13 END

"T"  ASTO 00

-And if we choose   h = 0.04

0.04  ENTER^
3     ENTER^
1     ENTER^
2     XEQ "TPLN"  >>>>   12                                               ---Execution time = 15s---
RDN     4
RDN    -1

-So, the equations of the normal line are:    ( x - 2 ) / 12 = ( y - 1 ) / 4 = ( z - 3 ) / (-1)

and the equation of the tangent plane is:      12 ( x - 2 ) + 4 ( y - 1 ) -  ( z - 3 ) = 0

Reference:

1- Frank Ayres JR & Elliott Mendelson - "Theory & Problems of Differential & Integral Calculus" - Schaum