Karim Belabas on Sun, 12 Mar 2023 19:39:50 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Determine the mirror reflection relationship between the coordinates of two sets of pairs of points in n-dimension space. |
Unordered sets of points then. OK, so for all (a,b) with a in A and b in B, compute v = a - b: this gives us the possible (unnormalized, i.e. arbitrary norm instead of |v| = 1) vectors v(a,b). If we normalize them, the possible vectors v are the ones that occur at least #A times from the (#A)^2 pairs (a,b). It should be a very short list, with at most #A entries in any case. We can then check whether any of the attached reflexions s work or not by computing s(A) and comparing with B (as sets). Something like normalize(v) = foreach(v, x, if (x, return(v / x))); V = matreduce([normalize(a - b) | a <- A; b <-B]); for (i = 1, #V[,2], if (V[i,2] >= #A, print(V[i,1]))) This prints the single vector v = [0, 1, -1/2, 2, 3/2, 2, -1/2, -1]~ with attached reflexion s(x) = x - 2 * (x~*v / norml2(v)) * v; Unless I made a stupid mistake, it doesn't work: ? Set([s(a) | a <- A]) == Set(Vec(B)) %10 = 0 (Please double-check, this is really a quick hack :-) Cheers, K.B. * Hongyi Zhao [2023-03-12 02:06]: > On Sat, Mar 11, 2023 at 11:32 PM Karim Belabas > <Karim.Belabas@math.u-bordeaux.fr> wrote: > > > > Hi, > > > > Not sure what you mean by "mirror reflection transformation". If it's > > an ordinary reflection s = s_H with respect to some hyperplane H then, > > Sorry for the unclear in my previous description. It seems your > description above is exactly what I mean. > > More specifically, my goal is to find the relationship of parity > transformation (also called parity inversion) [1] between two sets of > points, as the examples shown in between a pair of enantiomorphic > space groups [2]. > > > let v be a unit vector orthogonal to H, we have s(x) = x - 2 <x,v> v. > > So s(x) - x should be proportional to a constant vector v, which is not > > the case when you check the rows of A - B; for instance when you > > renormalize > > > > C = A - B; > > for (i=1,#C[,1], C[i,] /= C[i,1]) > > > > the matrix C should have all its rows (roughly) equal. > > > > (Since you write that your points are in 8-dimensional space and your > > matrices are 7 x 8, I gather that you wrote the point coordinates as > > rows, which is not the standard PARI convention. Anyway, considering > > columns doesn't work either on you example.) > > In my previous example data, each point in 8-dimensional space is > represented as a row vector. Now, I generated two new sets of point > pairs, each consisting of 20 points represented as column vectors in > an 8-dimensional space, as shown below: > > ? A=[6, 23, -5, 25, 22, 16, 25, -4, -22, 4, -20, 13, 10, -7, 9, 2, 19, > 24, 0, -14; 0, 15, -1, -15, 4, 0, 1, 7, 4, -15, 11, -11, -12, -3, -19, > -6, 10, 13, -2, 6; 23, 3, -22, 12, 10, 3, 24, 21, -20, 23, 6, 24, 10, > -9, 4, 20, 5, 18, -24, 16; 17, -6, -15, 18, 10, -10, -2, 2, 8, -7, > -24, 13, 7, -10, -21, -13, 9, -1, 24, 14; 25, 24, -19, -12, -16, -15, > 5, 17, 23, -10, 25, 3, -15, 24, 25, 10, 8, 7, -5, -24; 21, -22, 14, 0, > -10, -21, -5, 8, 9, -8, 7, 2, -2, -21, -15, -13, 16, -4, -21, 15; 22, > -15, -4, -8, 7, -2, 11, -9, -6, -7, 1, 23, -25, -22, 9, 20, 18, 17, 4, > 9; 17, -23, 11, 0, -15, -18, -21, 8, -14, 17, 2, 17, -9, 21, -17, 25, > -13, -9, 17, 14]; > > ? B=[-7, 6, 9, 13, -20, 22, 25, 4, 0, -14, 19, 24, 2, 25, -5, 16, 10, > 23, -4, -22; 103/51, -12, -215/17, -445/51, 469/51, 292/51, 47/51, > -35/17, -38/51, 274/51, -98/51, 201/17, 126/17, -793/51, 55/17, > 172/17, -568/51, 553/51, 29/51, -12; -587/51, 29, 14/17, 1166/51, > 352/51, 466/51, 1226/51, 281/17, -1256/51, 832/51, 559/51, 316/17, > 226/17, 626/51, -410/17, -35/17, 488/51, 259/51, 1235/51, -12; 2/51, > -7, -141/17, 895/51, -1408/51, 686/51, -110/51, 321/17, 1352/51, > 650/51, -757/51, -57/17, 235/17, 862/51, -111/17, 174/17, 445/51, > -730/51, -554/51, -24; 536/17, 7, 587/17, 109/17, 379/17, -228/17, > 83/17, 160/17, -53/17, -424/17, -168/17, 89/17, 512/17, -218/17, > -215/17, 3/17, -233/17, 302/17, 125/17, -1; -559/51, -3, -39/17, > 334/51, 173/51, -334/51, -263/51, 304/17, -943/51, 701/51, -400/51, > -108/17, 235/17, -56/51, 382/17, -13/17, -14/51, -1546/51, -248/51, > -23; -1250/51, 28, 99/17, 1115/51, 97/51, 313/51, 563/51, -229/17, > 172/51, 475/51, 1222/51, 299/17, 226/17, -394/51, -104/17, -120/17, > -1297/51, -659/51, -295/51, 2; 815/51, 29, -397/17, 751/51, 194/51, > -853/51, -1067/51, 69/17, 803/51, 746/51, -55/51, -133/17, 197/17, > 28/51, 115/17, -478/17, -503/51, -961/51, 736/51, 2]; > > Please check out and use the above two sets of point pairs in the > future discussion. > > > If you meant something else, please be more specific. > > See my above further clarification. Thank you again for the help. > > [1] https://en.wikipedia.org/wiki/Parity_(physics) > [2] http://www.aflowlib.org/prototype-encyclopedia/enantiomorph_info.html > > > Cheers, > > > > K.B. > > Best, > Zhao > > > * Hongyi Zhao [2023-03-11 08:53]: > > > Hi here, > > > > > > I've the following two sets of point pairs in a given dimensional of > > > space, aka, 8 here, as follows: > > > > > > ? A=[-1.12014, -3.17998, -18.2911, 20.1524, -6.94559, -21.8148, > > > 0.975253, 7.95121; 12.8475, -6.00645, 19.3356, 19.7475, -6.17003, > > > -2.66469, 24.6888, 5.86053; -16.7258, -22.5862, 20.591, 9.54292, > > > 18.5927, 21.9645, 20.892, 0.0563033; -17.2971, 5.16334, -16.3141, > > > 5.35391, -10.307, -13.6297, 23.5236, 24.192; -11.0926, 6.0634, > > > 19.4003, 21.6093, -1.37237, -21.7654, 4.35257, -3.1105; 11.2137, > > > -20.5612, -3.41736, 19.6006, -1.13627, -6.21613, 11.5885, 15.2543; > > > -13.4837, 8.02265, -11.4049, 23.3052, -19.5653, 3.19629, -10.814, > > > -17.1669]; > > > ? B=[-19.6192, -19.8916, 21.9217, 9.26674, 22.0351, 19.6121, 19.8591, > > > 1.64306; 1.39387, -5.56517, 13.6578, 22.8011, -16.2283, -11.6133, > > > 8.81048, -9.95819; -0.18953, 6.13486, 25.3313, 18.5031, 9.34097, > > > -13.2645, 20.0343, 13.0102; -3.4197, -6.93323, 3.31249, 18.2038, > > > 16.274, -18.1138, 6.36411, 23.2793; -3.91626, -0.57597, -17.0051, > > > 19.8855, -3.61887, -24.0882, -0.0230154, 9.48462; -24.6641, 18.4349, > > > -6.2631, 22.238, -6.2633, -5.89393, -14.8056, -11.0355; -12.9205, > > > 1.0875, -18.3268, 5.77166, -15.5141, -10.0714, 25.0861, 21.7919]; > > > > > > I want to determine whether they are connetted by a mirror reflection > > > transformation, and if so, identify such a transformation matrix > > > connecting them. > > > > > > I wonder if PARI/GP can help to do the trick in this case. Any tips > > > will be appreciated. > > > > > > Regards, > > > Zhao > > > -- > > > Assoc. Prof. Hongsheng Zhao <hongyi.zhao@gmail.com> > > > Theory and Simulation of Materials > > > Hebei Vocational University of Technology and Engineering > > > No. 473, Quannan West Street, Xindu District, Xingtai, Hebei province > > > > > > > K.B. > > -- > > Pr Karim Belabas, U. Bordeaux, Vice-président en charge du Numérique > > Institut de Mathématiques de Bordeaux UMR 5251 - (+33) 05 40 00 29 77 > > http://www.math.u-bordeaux.fr/~kbelabas/ > > ` > K.B. -- Pr Karim Belabas, U. Bordeaux, Vice-président en charge du Numérique Institut de Mathématiques de Bordeaux UMR 5251 - (+33) 05 40 00 29 77 http://www.math.u-bordeaux.fr/~kbelabas/ `