testing rotational symmetry of individual orientations
| On this page ... |
| Bingham Distribution |
| The bipolar case and unimodal distribution |
| Prolate case and fibre distribution |
| Oblate case |
The quaternionic Bingham distribution has the density
where
are an
orthogonal matrix with unit quaternions
in the column and
a
diagonal matrix with the entries
describing the shape of the distribution.
is the hypergeometric function with matrix argument normalizing the density.
The shape parameters
give
,
,
,
,
in unit quaternion space. Since the quaternion +g and -g describes the same rotation, the bipolar distribution corresponds to an unimodal distribution in orientation space. Moreover, we would call the circular distribution a fibre in orientation space.
The general setup of the Bingham distribution in MTEX is done as follows
cs = crystalSymmetry('1'); kappa = [100 90 80 0]; % shape parameters U = eye(4); % orthogonal matrix odf = BinghamODF(kappa,U,cs)
odf = ODF
crystal symmetry : 1, X||a, Y||b*, Z||c*
specimen symmetry: 1
Bingham portion:
kappa: 100 90 80 0
weight: 1
h = [Miller(0,0,1,cs) Miller(1,0,0,cs) Miller(1,1,1,cs)]; plotPDF(odf,h,'antipodal','silent'); % plot(odf,'sections',10)
First, we define some unimodal odf
odf_spherical = unimodalODF(orientation.id(cs),'halfwidth',20*degree)
odf_spherical = ODF
crystal symmetry : 1, X||a, Y||b*, Z||c*
specimen symmetry: 1
Radially symmetric portion:
kernel: de la Vallee Poussin, halfwidth 20°
center: (0°,0°,0°)
weight: 1
plotPDF(odf_spherical,h,'antipodal','silent')
Next, we simulate individual orientations from this odf, in a scattered axis/angle plot in which the simulated data looks like a sphere
ori_spherical = calcOrientations(odf_spherical,1000);
close all
scatter(ori_spherical)
From this simulated EBSD data, we can estimate the parameters of the Bingham distribution,
calcBinghamODF(ori_spherical)
ans = ODF
crystal symmetry : 1, X||a, Y||b*, Z||c*
specimen symmetry: 1
Bingham portion:
kappa: 0 0.82596 2.8101 26.7107
weight: 1
where U is the orthogonal matrix of eigenvectors of the orientation tensor and kappa the shape parameters associated with the U.
next, we test the different cases of the distribution on rejection
T_spherical = bingham_test(ori_spherical,'spherical','approximated'); T_oblate = bingham_test(ori_spherical,'prolate', 'approximated'); T_prolate = bingham_test(ori_spherical,'oblate', 'approximated'); t = [T_spherical T_oblate T_prolate]
t =
0.3441 0.1160 0.5486
The spherical test case failed to reject it for some level of significance, hence we would dismiss the hypothesis prolate and oblate.
odf_spherical = BinghamODF(kappa,U,crystalSymmetry,specimenSymmetry)
odf_spherical = ODF
crystal symmetry : 1, X||a, Y||b*, Z||c*
specimen symmetry: 1
Bingham portion:
kappa: 100 90 80 0
weight: 1
plotPDF(odf_spherical,h,'antipodal','silent')
The prolate case correspondes to a fibre.
odf_prolate = fibreODF(Miller(0,0,1,crystalSymmetry('1')),zvector,... 'halfwidth',20*degree)
odf_prolate = ODF
crystal symmetry : 1, X||a, Y||b*, Z||c*
specimen symmetry: 1
Fibre symmetric portion:
kernel: de la Vallee Poussin, halfwidth 20°
fibre: (001) - 0,0,1
weight: 1
plotPDF(odf_prolate,h,'upper','silent')
As before, we generate some random orientations from a model odf. The shape in an axis/angle scatter plot reminds of a cigar
ori_prolate = calcOrientations(odf_prolate,1000);
close all
scatter(ori_prolate)
We estimate the parameters of the Bingham distribution
calcBinghamODF(ori_prolate)
ans = ODF
crystal symmetry : 1, X||a, Y||b*, Z||c*
specimen symmetry: 1
Bingham portion:
kappa: 0 2.2873 51.2566 52.282
weight: 1
and test on the three cases
T_spherical = bingham_test(ori_prolate,'spherical','approximated'); T_oblate = bingham_test(ori_prolate,'prolate', 'approximated'); T_prolate = bingham_test(ori_prolate,'oblate', 'approximated'); t = [T_spherical T_oblate T_prolate]
t =
1.0000 0.2213 1.0000
The test clearly rejects the spherical and prolate case, but not the prolate. We construct the Bingham distribution from the parameters, it might show some skewness
odf_prolate = BinghamODF(kappa,U,crystalSymmetry,specimenSymmetry)
odf_prolate = ODF
crystal symmetry : 1, X||a, Y||b*, Z||c*
specimen symmetry: 1
Bingham portion:
kappa: 100 90 80 0
weight: 1
plotPDF(odf_prolate,h,'antipodal','silent')
The oblate case of the Bingham distribution has no direct counterpart in terms of texture components, thus we can construct it straightforward
odf_oblate = BinghamODF([50 50 50 0],eye(4),crystalSymmetry,specimenSymmetry)
odf_oblate = ODF
crystal symmetry : 1, X||a, Y||b*, Z||c*
specimen symmetry: 1
Bingham portion:
kappa: 50 50 50 0
weight: 1
plotPDF(odf_oblate,h,'antipodal','silent')
The oblate cases in axis/angle space remind on a disk
ori_oblate = calcOrientations(odf_oblate,1000);
close all
scatter(ori_oblate)
We estimate the parameters again
calcBinghamODF(ori_oblate)
ans = ODF
crystal symmetry : 1, X||a, Y||b*, Z||c*
specimen symmetry: 1
Bingham portion:
kappa: 0 45.8815 45.9351 47.454
weight: 1
and do the tests
T_spherical = bingham_test(ori_oblate,'spherical','approximated'); T_oblate = bingham_test(ori_oblate,'prolate', 'approximated'); T_prolate = bingham_test(ori_oblate,'oblate', 'approximated'); t = [T_spherical T_oblate T_prolate]
t =
1.0000 1.0000 0.1396
the spherical and oblate case are clearly rejected, the prolate case failed to reject for some level of significance
odf_oblate = BinghamODF(kappa, U,crystalSymmetry,specimenSymmetry)
odf_oblate = ODF
crystal symmetry : 1, X||a, Y||b*, Z||c*
specimen symmetry: 1
Bingham portion:
kappa: 100 90 80 0
weight: 1
plotPDF(odf_oblate,h,'antipodal','silent')
| DocHelp 0.1 beta |