Można, ale najpierw trzeba mieć macierz obrotu wokół dowolnie skierowanej osi, a to chyba jest jeszcze trudniejsze (zakładam, że nie korzystamy z gotowych wzorów, ale sami je wyprowadzamy). Chodzi tu o ogólne rozwiązanie, tzn. chodzi o określenie współczynników tej macierzy w zależności od dowolnych parametrów h, k, l.
To zadanie jest trochę niedoprecyzowane, bo oprócz h, k, l potrzebne jest jeszcze coś, no ale powiedzmy, że jest to część zadania. I dodatkowo ono wykracza nieco poza klasyczne operacje symetrii krystalograficznej, bo przecież nie każda płaszczyzna sieciowa (a właściwie prawie żadna), jest elementem symetrii krystalograficznej.
Wydaje się, że poniższe stwierdzenie może pomóc w poszukiwaniu rozwiązania. Przynajmniej w wersji dwuwymiarowej.
Jeżeli mamy prostą wychodzącą z (0,0) i nachyloną pod kątem a do dodatniego kierunku OX, to operacja odbicia w tej prostej dana jest wzorem (xcos(2a)+ysin(2a), xsin(2a)-ycos(2a), z).
Uzasadnienie wynika z poniższego rysunku oraz wzorów trygonometrycznych na sin i cos dla różnicy kątów.
Wektor czerwony jest odbiciem wektora niebieskiego w prostej zaznaczonej linią przerywaną.
Współrzędne wektora niebieskiego to x = r cos(b) oraz y = r sin(b).
Współrzędne wektora czerwonego to x’ = r cos(2a-b) oraz y’ = r sin(2a-b).
Uwzględniając, że sin(c-d) = sin(c)sin(d)-cos(d)sin(c) oraz cos(c-d) = cos(c)cos(d)+sin(c)sin(d)
i robiąc odpowiednie podstawienia otrzymujemy:
x’ = x cos(2a) + y sin(2a)
y’ = x sin(2a) – y cos(2a)
z’ = z
mamy więc macierz
|cos(2a) sin(2a) 0|
|sin(2a) -cos(2a) 0|
|0 0 1|
Można łatwo sprawdzić, że wyznacznik wynosi -1 a ślad 1, jak należy oczekiwać dla odbicia zwierciadlanego.
Teraz dobrze byłoby zamienić funkcje trygonometryczne kąta podwojonego na tangens kąta, bo ten da się wyliczyć z parametrów hkl (najłatwiej zakładając ortogonalny układ współrzędnych). W tym najprostszym przypadku, po przesunięciu początku układu, tangens nachylenia prostej będzie wynosił dy/dx = (b/k)/(-a/h) = -bh/(ka).
Wypiszmy wzory na funkcje kąta podwojonego:
sin(2a) = 2 sin(a)cos(a)
cos(2a) = cos2(a) – sin2(a)
Z jedynki trygonometrycznej mamy tg2(x)cos2(x) + cos2(x) = 1, czyli cos2(x) = 1/(1+tg2(x)) oraz sin2(x) = tg2(x)/(1+tg2(x))
Ostatecznie:
sin(2a) = 2tg(a)/[1+tg2(a)] oraz
cos(2a) = [1-tg2(a)]/[1+tg2(a)]
Interesujące podejście, ale, jeśli dobrze rozumiem, ograniczone tylko do układu euklidesowego. Dobrze byłoby mieć sformułowanie ogólne dla dowolnego układu współrzędnych, czyli de facto dla układu trójskośnego (skośnego w dwóch wymiarach).
Ciekawe rozwiązanie, ale jest to tylko rozwiązanie szczególne – dla płaszczyzn sieciowych zawierających oś OZ i w dodatku dla układów ortogonalnych. Ponadto dla przypadku gdy a=b, bo wyjściowa macierz (pierwsza, która pojawia się w rozwiązaniu) obowiązuje tylko dla takich układów. Czy dałoby się przedstawić rozwiązanie ogólne?
PS. Czy dwie ostatnie macierze mają wyznacznik równy -1?
No, niestety, podejście nie jest uniwersalne, ale myślałem, że da się uogólnić.
Rzeczywiście, pomyliłem się w rachunkach.
wzór na sin(2a) zawiera błąd, powinno być:
sin(2a) = -2bhak/[a2k2+b2h2]
co po podstawieniu powinno dać prawidłowe wyznaczniki macierzy.
Wydaje się, że znalezienie ogólnego rozwiązania tego problemu wymaga zastosowania innego formalizmu poza czystą arytmetyką. A przynajmniej łatwiej wówczas znaleźć to rozwiązanie. Zastosujemy tu elementy formalizmu jakim jest rachunek tensorowy.
W załączonym pliku przedstawiona jest odpowiedź, a szczegóły rozwiązania, które wymaga sporo komentarzy przedstawię w następnym wpisie. Plik PDF
Ponieważ rozwiązanie zadania, które chcę przedstawić wymaga paru dodatkowych wyjaśnień (zazwyczaj nie są to zagadnienia poruszane w podręcznikach krystalografii) łatwiej będzie mi przedstawić tok rozumowania w formie filmu wideo. Pierwsze 10 minut tego filmu zawiera właśnie te wyjaśnienia, a pozostałe około sześciu minut to właściwe rozwiązanie zadania.
Może parę zdań podsumowania.
Rachunek tensorowy jest bardzo pożyteczny w rozwiązywaniu wielu zagadnień zwłaszcza związanych z transformacjami układów współrzędnych czy analizą symetrii właściwości fizycznych.
Pokazuje również piękno matematyki. Wzór, który innymi metodami byłby trudny do zapisania, w symbolice tensorowej jest krótki i zwarty, by nie powiedzieć elegancki.
Pozostawmy więc zapisanie konkretnej macierzy operacji odbicia w płaszczyźnie o indeksach (hkl) dla układu jednoskośnego jako karę dla nieposłusznych doktorantów, a dla układu trójskośnego dla osób z cięższymi przewinieniami. Oczywiście wzór ogólny jako fragment algorytmu dla komputera stanowi naprawdę nieocenioną wartość.
Pokażę teraz, że moje rozwiązanie dla układu kartezjańskiego (regularnego) jest słuszne i zgodne z zapisem podanym w formie tensorowej. Dla osób które czują się nieco zagubione, ale chętnie zgłębią temat.
Zacytujmy jeszcze raz wzór:
S(i,j) = Sij = δij– 2 d2 gimhmhj
Na szczęście macierz metryczna przestrzeni odwrotnej (gim) dla układu regularnego jest bardzo prosta i zawiera same zera z wyjątkiem przekątnej na której są liczby 1/a2 :
|1/a2 0 0|
|0 1/a2 0|
|0 0 1/a2|
Co więcej wzór na kwadrat odległości międzypłaszczyznowej też jest raczej prosty: d2 = a2 /(h2 +k2 +l2 ).
Przy obliczaniu sumy gimhm zostanie tylko jeden wyraz różny od zera.
Przykładowo
S(1,1) = S11 = 1 – 2 d2 (1/a2 *h) *h
co po wstawieniu d2 i sprowadzeniu do jednego ułamka daje (k2 +l2 -h2 )/ (k2 +l2 + h2 )
Liczba ta, dla l = 0, (zakładałem przypadek 2D, czyli płaszczyznę (hk0) ) daje wynik zgodny z wyznaczonym geometrycznie (k2 -h2 )/ (h2 + k2 ).
Podobnie otrzymamy drugi wyraz macierzy
S(1,2) = S12 = 0 – 2d2 (1/a2 *h)* k = -2hk/ (h2 +k2 + l2 ).
Tym razem dla l = 0 w przypadku dwuwymiarowym otrzymujemy
S(1,2) = -2hk/ (h2 + k2 ).
itd.
Może zrobić obrót dwukrotny wokół osi prostopadłej do płaszczyzny i złożyć z inwersją?
Można, ale najpierw trzeba mieć macierz obrotu wokół dowolnie skierowanej osi, a to chyba jest jeszcze trudniejsze (zakładam, że nie korzystamy z gotowych wzorów, ale sami je wyprowadzamy). Chodzi tu o ogólne rozwiązanie, tzn. chodzi o określenie współczynników tej macierzy w zależności od dowolnych parametrów h, k, l.
To zadanie jest trochę niedoprecyzowane, bo oprócz h, k, l potrzebne jest jeszcze coś, no ale powiedzmy, że jest to część zadania. I dodatkowo ono wykracza nieco poza klasyczne operacje symetrii krystalograficznej, bo przecież nie każda płaszczyzna sieciowa (a właściwie prawie żadna), jest elementem symetrii krystalograficznej.
Wydaje się, że poniższe stwierdzenie może pomóc w poszukiwaniu rozwiązania. Przynajmniej w wersji dwuwymiarowej.
Jeżeli mamy prostą wychodzącą z (0,0) i nachyloną pod kątem a do dodatniego kierunku OX, to operacja odbicia w tej prostej dana jest wzorem (xcos(2a)+ysin(2a), xsin(2a)-ycos(2a), z).
Uzasadnienie wynika z poniższego rysunku oraz wzorów trygonometrycznych na sin i cos dla różnicy kątów.

Wektor czerwony jest odbiciem wektora niebieskiego w prostej zaznaczonej linią przerywaną.
Współrzędne wektora niebieskiego to x = r cos(b) oraz y = r sin(b).
Współrzędne wektora czerwonego to x’ = r cos(2a-b) oraz y’ = r sin(2a-b).
Uwzględniając, że sin(c-d) = sin(c)sin(d)-cos(d)sin(c) oraz cos(c-d) = cos(c)cos(d)+sin(c)sin(d)
i robiąc odpowiednie podstawienia otrzymujemy:
x’ = x cos(2a) + y sin(2a)
y’ = x sin(2a) – y cos(2a)
z’ = z
mamy więc macierz
Można łatwo sprawdzić, że wyznacznik wynosi -1 a ślad 1, jak należy oczekiwać dla odbicia zwierciadlanego.
Teraz dobrze byłoby zamienić funkcje trygonometryczne kąta podwojonego na tangens kąta, bo ten da się wyliczyć z parametrów hkl (najłatwiej zakładając ortogonalny układ współrzędnych). W tym najprostszym przypadku, po przesunięciu początku układu, tangens nachylenia prostej będzie wynosił dy/dx = (b/k)/(-a/h) = -bh/(ka).
Wypiszmy wzory na funkcje kąta podwojonego:
sin(2a) = 2 sin(a)cos(a)
cos(2a) = cos2(a) – sin2(a)
Z jedynki trygonometrycznej mamy tg2(x)cos2(x) + cos2(x) = 1, czyli cos2(x) = 1/(1+tg2(x)) oraz sin2(x) = tg2(x)/(1+tg2(x))
Ostatecznie:
sin(2a) = 2tg(a)/[1+tg2(a)] oraz
cos(2a) = [1-tg2(a)]/[1+tg2(a)]
Wstawiając odpowiednie wartości tg(x) = -bh/(ka) otrzymujemy
sin(2a) = -2bha2k2/(a2k2+b2h2)
cos(2a) = (a2k2-b2h2)/(a2k2+b2h2)
Na końcu otrzymujemy mało sympatyczny wzór
czyli macierz odbicia w płaszczyźnie (hk0) w układzie z przesuniętym punktem (0,0,0)
Mogły by być nieco krótsze wzory… mam nadzieję, że się nie pomyliłem po drodze.
Zakładając osie a = b (uwaga, kąt też był oznaczany jako a) otrzymamy
sin(2a) = -2ahk2/(k2+h2)
cos(2a) = (k2-h2)/(k2+h2)
Albo jest to zadanie dla cierpliwych, albo musi być prostszy sposób :-).
Interesujące podejście, ale, jeśli dobrze rozumiem, ograniczone tylko do układu euklidesowego. Dobrze byłoby mieć sformułowanie ogólne dla dowolnego układu współrzędnych, czyli de facto dla układu trójskośnego (skośnego w dwóch wymiarach).
Ciekawe rozwiązanie, ale jest to tylko rozwiązanie szczególne – dla płaszczyzn sieciowych zawierających oś OZ i w dodatku dla układów ortogonalnych. Ponadto dla przypadku gdy a=b, bo wyjściowa macierz (pierwsza, która pojawia się w rozwiązaniu) obowiązuje tylko dla takich układów. Czy dałoby się przedstawić rozwiązanie ogólne?
PS. Czy dwie ostatnie macierze mają wyznacznik równy -1?
No, niestety, podejście nie jest uniwersalne, ale myślałem, że da się uogólnić.
Rzeczywiście, pomyliłem się w rachunkach.
wzór na sin(2a) zawiera błąd, powinno być:
sin(2a) = -2bhak/[a2k2+b2h2]
co po podstawieniu powinno dać prawidłowe wyznaczniki macierzy.
Podam je ponownie:
mało sympatyczny wzór
Zakładając osie a = b
Wydaje się, że znalezienie ogólnego rozwiązania tego problemu wymaga zastosowania innego formalizmu poza czystą arytmetyką. A przynajmniej łatwiej wówczas znaleźć to rozwiązanie. Zastosujemy tu elementy formalizmu jakim jest rachunek tensorowy.
W załączonym pliku przedstawiona jest odpowiedź, a szczegóły rozwiązania, które wymaga sporo komentarzy przedstawię w następnym wpisie.
Plik PDF
Ponieważ rozwiązanie zadania, które chcę przedstawić wymaga paru dodatkowych wyjaśnień (zazwyczaj nie są to zagadnienia poruszane w podręcznikach krystalografii) łatwiej będzie mi przedstawić tok rozumowania w formie filmu wideo. Pierwsze 10 minut tego filmu zawiera właśnie te wyjaśnienia, a pozostałe około sześciu minut to właściwe rozwiązanie zadania.
Może parę zdań podsumowania.
Rachunek tensorowy jest bardzo pożyteczny w rozwiązywaniu wielu zagadnień zwłaszcza związanych z transformacjami układów współrzędnych czy analizą symetrii właściwości fizycznych.
Pokazuje również piękno matematyki. Wzór, który innymi metodami byłby trudny do zapisania, w symbolice tensorowej jest krótki i zwarty, by nie powiedzieć elegancki.
Pozostawmy więc zapisanie konkretnej macierzy operacji odbicia w płaszczyźnie o indeksach (hkl) dla układu jednoskośnego jako karę dla nieposłusznych doktorantów, a dla układu trójskośnego dla osób z cięższymi przewinieniami. Oczywiście wzór ogólny jako fragment algorytmu dla komputera stanowi naprawdę nieocenioną wartość.
Pokażę teraz, że moje rozwiązanie dla układu kartezjańskiego (regularnego) jest słuszne i zgodne z zapisem podanym w formie tensorowej. Dla osób które czują się nieco zagubione, ale chętnie zgłębią temat.
Zacytujmy jeszcze raz wzór:
S(i,j) = Sij = δij– 2 d2 gimhmhj
Na szczęście macierz metryczna przestrzeni odwrotnej (gim) dla układu regularnego jest bardzo prosta i zawiera same zera z wyjątkiem przekątnej na której są liczby 1/a2 :
Co więcej wzór na kwadrat odległości międzypłaszczyznowej też jest raczej prosty: d2 = a2 /(h2 +k2 +l2 ).
Przy obliczaniu sumy gimhm zostanie tylko jeden wyraz różny od zera.
Przykładowo
S(1,1) = S11 = 1 – 2 d2 (1/a2 *h) *h
co po wstawieniu d2 i sprowadzeniu do jednego ułamka daje (k2 +l2 -h2 )/ (k2 +l2 + h2 )
Liczba ta, dla l = 0, (zakładałem przypadek 2D, czyli płaszczyznę (hk0) ) daje wynik zgodny z wyznaczonym geometrycznie (k2 -h2 )/ (h2 + k2 ).
Podobnie otrzymamy drugi wyraz macierzy
S(1,2) = S12 = 0 – 2d2 (1/a2 *h)* k = -2hk/ (h2 +k2 + l2 ).
Tym razem dla l = 0 w przypadku dwuwymiarowym otrzymujemy
S(1,2) = -2hk/ (h2 + k2 ).
itd.
czyli:
a dla (hk0):
Na koniec rozważmy najprostsze przypadki zastosowania wzoru dla układu regularnego.
Płaszczyzna (100) prostopadła do OX ma macierz {{-1, 0 0}, {0 1 0}, {0 0 1}}.
Płaszczyzna (010) prostopadła do OY ma macierz {{1, 0 0}, {0 -1 0}, {0 0 1}}.
Płaszczyzna (110) leżąca po przekątnej {{0 -1 0}, {-1 0 0}, {0 0 1}}.
Płaszczyzna (-110) leżąca po innej przekątnej {{0 1 0}, {1 0 0}, {0 0 1}}.
Wszystko się zgadza, można zabić komara, strzelając z armaty :-).