approximate edit page

Approximate an SO3FunRBF from some given orientation dependent function.

1) Spatial Method: Choose a grid of orientations \(R_i\) and evaluate \(f\). Do SO3FunRBF.interpolation afterwards.

2) Harmonic Method: Compute the weights of the SO3FunRBF such that the Fourier coefficients are similar to the Fourier coefficients of the given odf.

The spatial method is well suited for sharp functions (i.e. high bandwidth), whereas the harmonic method is better suited for low bandwidth, since the system matrix becomes very large for high bandwidths.

For the spatial method, instead of modified least squares (mlsq) also the maximum-likelihood estimate (mlrl) can be computed. Note that both of this methods have the condition that we approximate a odf (the mean of the SO3Fun is 1). We can also use some standard least squares methods (for example lsqr).

Syntax

SO3F = SO3FunRBF.approximate(f)
SO3F = SO3FunRBF.approximate(f,'kernel',psi)
SO3F = SO3FunRBF.approximate(f,'SO3Grid',S3G)
SO3F = SO3FunRBF.approximate(f,'kernel',psi,'SO3Grid',S3G)
SO3F = SO3FunRBF.approximate(f,'kernel',psi,'resolution',5*degree)
SO3F = SO3FunRBF.approximate(f,'kernel',psi,'resolution',5*degree,'approxresolution',2*degree)
SO3F = SO3FunRBF.approximate(f,'mlsq','tol',1e-3,'maxit',100,'density')
SO3F = SO3FunRBF.approximate(f,'harmonic')
SO3F = SO3FunRBF.approximate(f,'harmonic','tol',1e-3,'maxit',100)
SO3F = SO3FunRBF.approximate(f,'harmonic','kernel',psi,'SO3Grid',S3G,'density')
[SO3F,lsqrIter] = SO3FunRBF.approximate(___)

Input

f SO3Fun
psi SO3Kernel of the approximated SO3FunRBF (default: SO3DeLaValleePoussinKernel('halfwidth',5*degree))
S3G rotation

Output

SO3F SO3FunRBF
lsqrIter number of iterations of the LSQR-Solver

Options

halfwidth halfwidth of the SO3Kernel of the result SO3FunRBF
kernel SO3Kernel of the result SO3FunRBF
SO3Grid center of the result SO3FunRBF
resolution resolution of the SO3Grid which is the center of the result SO3FunRBF
approxresolution resolution of the approximation grid, which is used to evaluate the input odf, if we use the spatial method (not the harmonic method)
tol tolerance as termination condition for lsqr/mlsq/...
maxit maximum number of iterations as termination condition for lsqr/mlsq/...

Flags

'density' ensure that result SO3FunRBF is a density function (i.e. positiv and mean is 1)
LSQRsolver ('lsqr'|'mlsq'|'mlrl') specify least square solver for spatial method --> default: lsqr
'harmonic' if an SO3Fun is given, then use harmonic method for approximation, see above (spatial method is default)
LSQR Solvers
lsqr least squares (MATLAB)
mlsq modified least squares (with positivity condition and normalization to mean 1)
mlrl maximum likelihood estimate (with positivity condition and normalization to mean 1)

See also

SO3FunRBF SO3FunHarmonic.approximate