Approximate a vector field on the rotation group (SO(3)) in its harmonic representation from some given orientations with corresponding tangent vectors and maybe some noise.
We compute this vector field componentwise, i.e. we compute three SO3FunHarmonics individually by interpolation. So, see SO3FunHarmonic.interpolate
for further information.
Syntax
SO3VF = SO3VectorFieldHarmonic.interpolate(nodes,y)
SO3VF = SO3VectorFieldHarmonic.interpolate(nodes,y,'bandwidth',48)
SO3VF = SO3VectorFieldHarmonic.interpolate(nodes,y,'weights','equal')
SO3VF = SO3VectorFieldHarmonic.interpolate(nodes,y,'bandwidth',48,'weights',W,'tol',1e-6,'maxit',200)
SO3VF = SO3VectorFieldHarmonic.interpolate(nodes,y,'regularization',0) % no regularization
SO3VF = SO3VectorFieldHarmonic.interpolate(nodes,y,'regularization',1e-4,'SobolevIndex',2)
Input
nodes | rotation |
y | vector3d |
Output
SO3VF | SO3VectorFieldHarmonic |
Options
bandwidth | maximal harmonic degree (Be careful by setting the bandwidth by yourself, since it may yields undersampling) |
weights | corresponding to the nodes (default: Voronoi weights, 'equal': all nodes are weighted similar, numeric array W: specific weights for every node) |
tol | tolerance as termination condition for lsqr |
maxit | maximum number of iterations as termination condition for lsqr |
regularization | the energy functional of the lsqr solver is regularized by the Sobolev norm of SO3F with regularization parameter lambda (default: 1e-4)(0: no regularization) |
SobolevIndex | for regularization (default = 2) |