rect2polar function

n-dimensional polar coordinate transformations

n-dimensional polar coordinate transformations

Convert between polar and rectangular coordinates in n-dimensions. The point (x[1],...,x[n]) in rectangular coordinates corresponds to the point (r,phi[1],...,phi[n-1]) in polar coordinates.

polar2rect(r, phi) rect2polar(x)

Arguments

  • r: a vector of radii of length m.
  • phi: angles, a matrix of size (n-1) x m.
  • x: (n x m) matrix, with column j being the point in n-dimensional space.

Details

n dimensional polar coordinates are given by the following:

rectangular x=(x[1],...,x[n]) corresponds to polar (r,phi[1],...,phi[n-1]) by

x[1] = r*cos(phi[1])

x[j] = r*prod(sin(phi[1:(j-1)]))*cos(phi[j]), 2 <= j <= n-1

...

x[n] = r*sin(phi[1])sin(phi[2])...*sin(phi[n-2])*sin(phi[n-1])

This is the defintion used in Wikipedia under the topic 'n-sphere'. There are variations of this definition in use. Here phi[1],...,phi[n-2] are in [0,pi), and phi[n-1] is in [0,2*pi). For multivariate integration, the determinant of the Jacobian of the above tranformation is J(r,phi) = r^(n-1) * prod( sin(phi[1:(n-2)])^((n-2):1) ); note that phi[n-1] does not appear in the Jacobian.

Returns

For polar2rect( ), an (n x m) matrix of rectangular coordinates.

For rect2polar( ), a list with fields: - r: a vector of length m containing the radii

  • phi: angles, a matrix of size (n x m)

Examples

x <- matrix( 1:9, nrow=3 ) x a <- rect2polar( x ) a polar2rect( a$r, a$phi )
  • Maintainer: John P. Nolan
  • License: GPL (>= 2)
  • Last published: 2021-01-10

Useful links