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/
`