Ok, thanks all for comments and opinions! ______________________________ Anton Gladkyy
2010/2/9 Bruno Chareyre <[email protected]> > The ordering of values will be reflected in the rotation matrix, and the > code always uses both simultaneously. > So, it should not be a problem to get different ordering. It is just a > matter of convention, with no effect on the result. > > Bruno > > Vincent Richefeu a écrit : > >> If 'eigen' is used instead of Wm3 to find principal axes of inertia, >> eigenvalues must NOT be ordered (as Wm3 do). >> So don't forgot to disable "ordering" in 'eigen' (if possible) >> >> Le 8 févr. 2010 à 17:05, Anton Gladky a écrit : >> >> Thanks for comments. >>> You are right, eigendecomposition in yade uses in: >>> - Tetra.cpp { * The inertia tensor is in global coordinates; by >>> eigendecomposition, we find principal axes} >>> - Clump.cpp >>> >>> We have a next comment there: >>> >>> http://bazaar.launchpad.net/%7Eyade-dev/yade/trunk/annotate/head%3A/pkg/dem/DataClass/Clump.cpp#L240 >>> >>> /*! @bug eigendecomposition might be wrong. see >>> http://article.gmane.org/gmane.science.physics.yade.devel/99 for >>> message. It is worked around below, however. >>> */ >>> Vaclav, it seems, it is your comment. >>> >>> So, we just let it be? >>> ______________________________ >>> >>> Anton Gladkyy >>> >>> >>> 2010/2/8 Vincent Richefeu <[email protected] <mailto: >>> [email protected]>> >>> >>> >>> if numerical recipes, numpy and eigen give the same result, we >>> can have some confidence with this result. >>> It means that Wm3 result is "less good". >>> However, I don't know where eigen values and vectors are needed >>> in yade (maybe for the computation of inertia?). >>> >>> I don't know if my comments help (sorry), but all I can say is >>> that eigenvalues from Wm3 seems correct but unordered, and >>> eigenvectors seems not well converged (maybe it is not a problem) >>> >>> >>> Le 8 févr. 2010 à 16:21, Anton Gladky a écrit : >>> >>> Vincent, what do you think, if we use these "new values" it will >>>> not work? >>>> ______________________________ >>>> >>>> Anton Gladkyy >>>> >>>> >>>> 2010/2/8 Vincent Richefeu <[email protected] >>>> <mailto:[email protected]>> >>>> >>>> >>>> Hi, >>>> >>>> At first glance, it seems the eigenvalues (and thus the >>>> eigenvectors) are not ordered with Wm3. >>>> The difference can also be due to the fact that the solution >>>> is not converged. >>>> >>>> If needed, I can send a peace of code (based on "jacobi" in >>>> numerical recipes) for doing that task >>>> >>>> VR >>>> >>>> Le 8 févr. 2010 à 13:46, Anton Gladky a écrit : >>>> >>>> Thanks, Vaclav! >>>>> So, it seems Wm3 is broken for that function? >>>>> >>>>> I have taken another matrix, which is positive definite: >>>>> 1 7 3 >>>>> 6 2 4 >>>>> 2 5 3 >>>>> ======================== >>>>> Eigen gives: >>>>> >>>>> Rot: >>>>> -0.584754 -0.665682 -0.466054 >>>>> -0.617452 0.703421 -0.301128 >>>>> -0.526133 -0.266722 0.841805 >>>>> Diag: >>>>> 11.0907 0 0 >>>>> 0 -5.19482 0 >>>>> 0 0 0.104141 >>>>> >>>>> ======================== >>>>> Numpy gives (see checkEigen.py): >>>>> Rot: >>>>> array([[-0.58475406, -0.66268234, -0.46225138], >>>>> [-0.61745205, 0.70025076, -0.29867115], >>>>> [-0.52613273, -0.26552022, 0.83493665]]) >>>>> Diag: >>>>> array([ 11.09067395, -5.1948153 , 0.10414135]) >>>>> >>>>> So, it was similar to Eigen results. >>>>> ======================== >>>>> But Wm3: >>>>> Rot: >>>>> 0.710682 0.404879 0.57533 >>>>> -0.699213 0.316215 0.641178 >>>>> 0.0776719 -0.857952 0.507825 >>>>> Diag: >>>>> -5.55916 0 0 >>>>> 0 0.10998 0 >>>>> 0 0 11.4492 >>>>> ======================== >>>>> >>>>> Is it the Wm3 library problem? >>>>> >>>>> ______________________________ >>>>> >>>>> Anton Gladkyy >>>>> >>>>> >>>>> 2010/2/8 Václav Šmilauer <[email protected] >>>>> <mailto:[email protected]>> >>>>> >>>>> >>>>> >>>>> > I'm trying to create a wrapper for Eigen library. >>>>> Almost all functions >>>>> > are already done, but I have a problem with >>>>> EigenDecomposition. >>>>> > Unfortunately, I never used this functions and do not >>>>> clearly >>>>> > understand what it implements. >>>>> > >>>>> > Eigen library has an EigenSolver for those tasks >>>>> > >>>>> >>>>> http://eigen.tuxfamily.org/dox/classEigen_1_1EigenSolver.html >>>>> > >>>>> > I tried to get all values from that solver and >>>>> compare with results, >>>>> > what Wm3 gives. It is completely different. >>>>> >>>>> Using numpy to check: >>>>> >>>>> >>> from numpy import array >>>>> >>> fron numpy.linalg import eig >>>>> >>> >>>>> >>>>> >>>>> a=array([[-26.8141,20.0536,-37.6382],[-17.0536,-4.37217,13.4546],[39.0891,8.34892,-21.6416]]) >>>>> >>> eig(a) ## >>>>> >>>>> http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html >>>>> >>>>> (array([-26.91393664+42.69101435j, >>>>> -26.91393664-42.69101435j, 1.00000328 +0.j ]), >>>>> array([[ 0.70584131+0.j , 0.70584131+0.j >>>>> , 0.05979811+0.j ], >>>>> [-0.03806586+0.30786093j, >>>>> -0.03806586-0.30786093j, 0.89863520+0.j ], >>>>> [-0.01840919-0.63657033j, >>>>> -0.01840919+0.63657033j, 0.43460208+0.j ]])) >>>>> >>>>> You've picked matrix that has complex eigenvalues, that >>>>> explains the >>>>> difference; eigen handles it just fine ("(real,imag)" >>>>> notation), wm3 >>>>> obviously doesn't. (the matrix should be positive >>>>> definite for real >>>>> eigenvalues, iirc). >>>>> >>>>> Cheers, Vaclav >>>>> >>>>> > Here is the source matrix: >>>>> > >>>>> > -26.8141 20.0536 -37.6382 >>>>> > -17.0536 -4.37217 13.4546 >>>>> > 39.0891 8.34892 -21.6416 >>>>> > >>>>> > >>>>> > ======================= >>>>> > wm3: >>>>> > >>>>> > tRot: >>>>> > -0.698021 -0.0166317 -0.715884 >>>>> > 0.339616 -0.887829 -0.310515 >>>>> > -0.630419 -0.459872 0.625372 >>>>> > >>>>> > tDiag: >>>>> > -70.5641 0 0 >>>>> > 0 2.97262 0 >>>>> > 0 0 14.7635 >>>>> > >>>>> > ======================= >>>>> > Eigen: >>>>> > eigenvalues: >>>>> > (-26.91,42.69) >>>>> > (-26.91,-42.69) >>>>> > (1,0) >>>>> > >>>>> > eigenvectors: >>>>> > (-0.117,0.6961) (-0.117,-0.6961) (0.0598,0) >>>>> > (-0.2973,-0.08855) (-0.2973,0.08855) (0.8986,0) >>>>> > (0.6308,0.08732) (0.6308,-0.08732) (0.4346,0) >>>>> > >>>>> > pseudoEigenvalueMatrix: >>>>> > -26.91 42.69 0 >>>>> > -42.69 -26.91 0 >>>>> > 0 0 1 >>>>> > >>>>> > pseudoEigenvectors: >>>>> > -0.1654 0.9844 0.0598 >>>>> > -0.4204 -0.1252 0.8986 >>>>> > 0.8921 0.1235 0.4346 >>>>> > ======================= >>>>> >>>>> >>>>> _______________________________________________ >>>>> Mailing list: >>>>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >>>>> <https://launchpad.net/%7Eyade-dev> >>>>> >>>>> Post to : [email protected] >>>>> <mailto:[email protected]> >>>>> >>>>> Unsubscribe : >>>>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >>>>> <https://launchpad.net/%7Eyade-dev> >>>>> >>>>> More help : https://help.launchpad.net/ListHelp >>>>> >>>>> >>>>> _______________________________________________ >>>>> Mailing list: >>>>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >>>>> <https://launchpad.net/%7Eyade-dev> >>>>> >>>>> Post to : [email protected] >>>>> <mailto:[email protected]> >>>>> >>>>> Unsubscribe : >>>>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >>>>> <https://launchpad.net/%7Eyade-dev> >>>>> >>>>> More help : https://help.launchpad.net/ListHelp >>>>> >>>> >>>> >>>> _______________________________________________ >>>> Mailing list: >>>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >>>> <https://launchpad.net/%7Eyade-dev> >>>> >>>> Post to : [email protected] >>>> <mailto:[email protected]> >>>> >>>> Unsubscribe : >>>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >>>> <https://launchpad.net/%7Eyade-dev> >>>> >>>> More help : https://help.launchpad.net/ListHelp >>>> >>>> >>>> _______________________________________________ >>>> Mailing list: >>>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >>>> <https://launchpad.net/%7Eyade-dev> >>>> >>>> Post to : [email protected] >>>> <mailto:[email protected]> >>>> >>>> Unsubscribe : >>>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >>>> <https://launchpad.net/%7Eyade-dev> >>>> >>>> More help : https://help.launchpad.net/ListHelp >>>> >>> >>> >>> _______________________________________________ >>> Mailing list: >>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >>> <https://launchpad.net/%7Eyade-dev> >>> >>> Post to : [email protected] >>> <mailto:[email protected]> >>> >>> Unsubscribe : >>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >>> <https://launchpad.net/%7Eyade-dev> >>> >>> More help : https://help.launchpad.net/ListHelp >>> >>> >>> _______________________________________________ >>> Mailing list: >>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev>< >>> https://launchpad.net/%7Eyade-dev> >>> Post to : [email protected] <mailto: >>> [email protected]> >>> Unsubscribe : >>> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev>< >>> https://launchpad.net/%7Eyade-dev> >>> >>> More help : https://help.launchpad.net/ListHelp >>> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Mailing list: >> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >> Post to : [email protected] >> Unsubscribe : >> https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> >> More help : https://help.launchpad.net/ListHelp >> >> > > > -- > _______________ > Bruno Chareyre > Associate Professor > Grenoble INP > Lab. 3SR > BP 53 - 38041, Grenoble cedex 9 - France > Tél : 33 4 56 52 86 21 > Fax : 33 4 76 82 70 43 > ________________ > > > > _______________________________________________ > Mailing list: > https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> > Post to : [email protected] > Unsubscribe : > https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev> > More help : https://help.launchpad.net/ListHelp >
_______________________________________________ Mailing list: https://launchpad.net/~yade-dev Post to : [email protected] Unsubscribe : https://launchpad.net/~yade-dev More help : https://help.launchpad.net/ListHelp

