Sunday, March 5, 2017

HP Prime: Parabolic Cylindrical Coordinates



HP Prime:  Parabolic Cylindrical Coordinates




(This is post # 700! Yay!   Thank you for sticking with me on this wonderful journey!)

The Formulas

The relationship and conversion factors between parabolic cylindrical coordinates (μ, v, ϕ) and rectangular coordinates (x, y, z) are as follows:

x = 1/2 * (μ^2 – v^2)
y = μ * v
z = z

μ = √(x + √(x^2 + y^2))
v = y / μ
z = z
(note the sequence)

where μ ≥ 0

Derivation

The formulas to find the rectangular coordinates are given.  We can derive the formulas for the parabolic cylindrical coordinates by the following:

Obviously the z coordinate remains the same in both systems.

Assume μ ≠ 0.  Then:
y = μ * v
v = y / μ

With substitution and simplification:
x = 1/2 * (μ^2 – v^2)
2*x = μ^2 – v^2
2*x = μ^2 – (y^2/μ^2)
2*x*μ^2 = μ^4 – y^2
0 = μ^4 – (2*x)*μ^2 – y^2

We have a quadratic equation in terms of μ^2.  Since μ≥0, only the positive root is considered:
μ^2 = ( 2*x + √(4*x^2 + 4*y^2) ) /2
μ^2 = ( 2*x + 2*√(x^2 + y^2) )/2
μ^2 = x + √(x^2 + y^2)
μ = √( x + √(x^2 + y^2) )

HP Prime Program PCC2REC (Parabolic Cylindrical to Rectangular)

EXPORT PCC2REC(μ,v,z)
BEGIN
// 2017-02-27 EWS
// Parabolic Cylindrical
// to Rectangular
// μ≥0
LOCAL x:=1/2*(μ^2-v^2);
LOCAL y:=μ*v;
RETURN {x,y,z};
END;

HP Prime Program REC2PBC (Rectangular to Parabolic Cylindrical)

EXPORT REC2PCC(x,y,z)
BEGIN
// 2017-02-27 EWS
// Rectangular to
// Parabolic Cylindrical
// μ≥0
LOCAL μ:=√(x+√(x^2+y^2));
LOCAL v:=y/μ;
RETURN {μ,v,z};
END;

Example

μ = 2, v = 3, z = 1
Result:  x = -2.5, y = 6, z = 1

  
Source:
P. Moon and D.E. Spencer.  Field Theory Handbook:  Including Coordinate Systems Differential Equations and Their Solutions.  2nd ed. Springer-Verlag:  Berlin, Heidelberg, New York.  1971.  ISBN 0-387-02732-7

This blog is property of Edward Shore, 2017.

No comments:

Post a Comment

Adventures in Python: String Manipulation and Function/Derivative Table (Subroutines)

Adventures in Python:  String Manipulation and Function/Derivative Table (Subroutines) String Manipulation This script demonstrate...