Đặt vấn đề
Có một chuyện khá kỳ quặc trong toán học.
Khi học hình học, chúng ta có vector.
Muốn quay một vật trong mặt phẳng, ta gặp số phức.
Muốn quay một vật trong không gian 3D mà không bị những vấn đề khó chịu như gimbal lock, người làm đồ họa lại lôi ra một con quái vật tên là quaternion.
Học vật lý lượng tử một hồi thì spinor xuất hiện.
Học tương đối tính thì lại gặp ma trận gamma.
Nhìn từ xa, toán học giống một cái nhà kho mà mỗi thế hệ cứ thấy thiếu gì thì chạy ra đóng thêm một cái búa.
1Vector
2 │
3 ├── Dot product
4 ├── Cross product
5 │
6Complex number
7 │
8 └── Rotation 2D
9 │
10Quaternion
11 │
12 └── Rotation 3D
13 │
14Spinor
15 │
16Matrices
17 │
18Tensor
19 │
20...
Người mới học rất dễ có cảm giác:
Chắc mấy ông toán học thích phát minh thêm đồ để sinh viên khổ.
Nhưng năm 1878, William Kingdon Clifford đưa ra một cách nhìn rất khác.
Có thể chúng ta không cần quá nhiều loại đồ vật như vậy.
Có thể vector, số phức, quaternion và nhiều cấu trúc dùng trong vật lý thực ra chỉ là những khuôn mặt khác nhau của một đại số lớn hơn.
Đại số đó ngày nay được gọi là Clifford Algebra.
Khi dùng nó để mô tả hình học, người ta thường gọi cách tiếp cận này là Geometric Algebra.
Và điều đẹp nhất của nó không phải là tạo thêm một loại số mới.
Ngược lại.
Nó cố gắng làm điều rất tham vọng:
Lấy hàng đống công cụ hình học tưởng như rời rạc và nhét chúng trở lại vào một ngôn ngữ duy nhất.
Các tài liệu về Geometric Algebra cho khoa học máy tính cũng nhấn mạnh khả năng đưa vector, complex number, quaternion và các đối tượng hình học khác vào cùng một framework tính toán. (Geometric Algebra)
Bắt đầu từ một mũi tên
Giả sử trên bàn có hai mũi tên:
$$ a $$
và
$$ b $$
Ta có thể cộng chúng:
$$ a+b $$
Ta có thể nhân với một số:
$$ 3a $$
Đó là thế giới vector quen thuộc.
Nhưng nếu hỏi:
Hai vector nhân với nhau thì bằng cái gì?
mọi chuyện bắt đầu vui.
Trong đại số vector truyền thống, chúng ta thường có hai câu trả lời.
Một là dot product:
$$ a \cdot b $$
kết quả là một số.
Hai là cross product trong 3D:
$$ a \times b $$
kết quả lại là một vector khác.
Hai phép toán.
Hai luật chơi.
Hai kiểu kết quả.
Clifford nhìn vào đó và nói đại khái:
Sao không cho hai vector nhân với nhau bằng một phép nhân duy nhất?
Ta định nghĩa geometric product:
$$ ab = a \cdot b + a \wedge b $$
Khoan.
Thằng
$$ a \wedge b $$
là cái gì?
Nó được gọi là outer product hay wedge product.
Nếu vector là một mũi tên có hướng, thì:
$$ a \wedge b $$
không phải là một mũi tên.
Nó đại diện cho một mặt phẳng có hướng được căng ra bởi hai vector.
Hãy tưởng tượng hai que kem.
Một que là $a$.
Một que là $b$.
Hai que tạo thành một miếng giấy hình bình hành.
1 b
2 /
3 /
4 /────────
5 / /
6 / /
7 ●────────────→ a
Vector giống một đường.
Bivector giống một mảnh mặt phẳng.
Và Clifford Algebra nói:
Tại sao toán học chỉ được phép chứa mũi tên? Mặt phẳng cũng là một vật hình học, cứ cho nó tồn tại luôn.
Đây chính là cú chuyển nhận thức quan trọng nhất.
Vector không còn là nhân vật duy nhất
Trong không gian ba chiều, một Clifford Algebra có thể chứa:
- scalar: số thông thường
- vector: hướng
- bivector: mặt phẳng có hướng
- trivector: thể tích có hướng
Một đối tượng có thể chứa tất cả chúng cùng lúc:
$$ M = \alpha
- v
- B
- \beta I $$
Người ta gọi $M$ là một multivector.
Nếu viết theo basis 3D:
$$ M = a
- b_1e_1+b_2e_2+b_3e_3
- c_1e_{23}+c_2e_{31}+c_3e_{12}
- d e_{123} $$
Nhìn hơi giống con rết.
Nhưng ý tưởng lại rất đơn giản.
Trong không gian 3D:
1Grade 0 1 số scalar
2
3Grade 1 3 hướng vector
4 e1 e2 e3
5
6Grade 2 3 mặt phẳng bivector
7 e12 e23 e31
8
9Grade 3 1 thể tích trivector
10 e123
Tổng cộng:
$$ 1+3+3+1=8 $$
thành phần.
Tổng quát, Clifford Algebra xây từ không gian $n$ chiều có:
$$ 2^n $$
basis blade.
Con số này ban đầu hơi đáng sợ.
Nhưng đổi lại, những thứ trước đây chúng ta phải biểu diễn bằng nhiều hệ thống khác nhau bắt đầu chui vào cùng một căn nhà.
Luật chơi của Clifford Algebra
Giả sử ta có các vector cơ sở trực chuẩn:
$$ e_1,e_2,\ldots,e_n $$
Quan hệ cốt lõi của Clifford Algebra là:
$$ e_i e_j + e_j e_i = 2g_{ij} $$
Trong không gian Euclid quen thuộc, với $i\neq j$:
$$ e_i e_j=-e_j e_i $$
và:
$$ e_i^2=1 $$
Ví dụ:
$$ e_1e_2=-e_2e_1 $$
Đặt:
$$ e_{12}=e_1e_2 $$
Điều thú vị xảy ra khi bình phương bivector này:
$$ e_{12}^2
e_1e_2e_1e_2 $$
đổi vị trí $e_2$ và $e_1$:
$$ =-e_1e_1e_2e_2 $$
mà:
$$ e_1^2=e_2^2=1 $$
nên:
$$ e_{12}^2=-1 $$
Khoan đã.
Chúng ta vừa tạo ra một thứ bình phương bằng $-1$.
Nghe quen không?
Số phức từ đâu bò ra?
Số phức có dạng:
$$ z=a+bi $$
với:
$$ i^2=-1 $$
Ngày mới học, $i=\sqrt{-1}$ trông giống một sinh vật được triệu hồi bằng tà thuật:
Vì không có số thực nào bình phương ra -1, thôi ta phát minh một số mới.
Nhưng trong Geometric Algebra 2D, chúng ta đã có:
$$ e_{12}^2=-1 $$
Đặt:
$$ I=e_{12} $$
ta được:
$$ I^2=-1 $$
Một multivector chẵn trong 2D có dạng:
$$ z=a+bI $$
nhìn chính xác như:
$$ z=a+bi $$
Đây không phải sự giống nhau tình cờ.
Đại số con chẵn của Clifford Algebra Euclid 2D có cấu trúc giống số phức.
Nhưng lúc này $i$ không còn là một con ma đại số.
Nó có một ý nghĩa hình học:
$I$ là mặt phẳng có hướng.
Và bởi vậy chuyện số phức dùng để quay vector 2D bỗng nhiên bớt thần bí.
Biểu thức Euler:
$$ e^{I\theta}
\cos\theta+I\sin\theta $$
không chỉ là một công thức đẹp.
Nó đang nói về một phép quay trong mặt phẳng được biểu diễn bởi bivector của chính mặt phẳng đó.
Số phức, nhìn từ Geometric Algebra, gần như là bóng của hình học hai chiều đổ lên đại số.
Rồi quaternion cũng từ bụi cây chạy ra
Quaternion được William Rowan Hamilton giới thiệu năm 1843:
$$ q=w+xi+yj+zk $$
với ba đơn vị:
$$ i^2=j^2=k^2=-1 $$
và các phép nhân không giao hoán.
Quaternion cực kỳ hữu ích cho phép quay 3D.
Nhưng người mới học thường gặp một vấn đề:
$i,j,k$ thật ra là cái quái gì?
Clifford Algebra đưa ra một câu trả lời rất đẹp.
Trong 3D có ba bivector cơ bản:
$$ e_{23},e_{31},e_{12} $$
và mỗi bivector đều bình phương thành $-1$:
$$ e_{23}^2=e_{31}^2=e_{12}^2=-1 $$
Chọn quy ước:
$$ i=-e_{23} $$
$$ j=-e_{31} $$
$$ k=-e_{12} $$
ta thu được các quan hệ quaternion:
$$ ij=k $$
$$ jk=i $$
$$ ki=j $$
và:
$$ ijk=-1 $$
Thế là ba đơn vị tưởng như bí ẩn của quaternion có thể được nhìn như ba mặt phẳng có hướng trong không gian 3D.
1Quaternion Geometric Algebra 3D
2
3 i ↔ mặt phẳng YZ
4
5 j ↔ mặt phẳng ZX
6
7 k ↔ mặt phẳng XY
Đây là điểm mình thấy đẹp nhất.
Quaternion không nhất thiết phải được hiểu như một bộ:
11 số thực
2+
33 số "ảo"
Ta có thể nhìn nó như:
11 scalar
2+
33 bivector
Hay chính xác hơn:
Quaternion tương ứng với even subalgebra của Geometric Algebra 3D.
Quan hệ giữa rotor của Geometric Algebra và quaternion trong phép quay 3D cũng được trình bày trực tiếp trong tài liệu Geometric Algebra for Computer Science: các thành phần tưởng như “ảo” của quaternion có thể được hiểu như tọa độ của bivector biểu diễn mặt phẳng quay. (Geometric Algebra)
Một cái cây gia phả bắt đầu hiện ra
Ta có thể hình dung như sau:
1 CLIFFORD ALGEBRA
2 │
3 ┌─────────────────┼─────────────────┐
4 │ │ │
5 scalar vector bivector
6 │ │
7 │ mặt phẳng có hướng
8 │ │
9 │ ┌─────────────┴─────────────┐
10 │ │ │
11 Complex numbers Quaternion / Rotor Spinor
12 trong GA 2D trong GA 3D ...
Không phải cứ nói:
Clifford Algebra = complex + quaternion + vector
là chính xác hoàn toàn.
Mối quan hệ phụ thuộc vào dimension, metric và algebra con mà ta chọn.
Nhưng về mặt trực giác, đây là cách nhìn rất hữu ích:
Complex number và quaternion không phải hai phép thuật ngẫu nhiên. Chúng xuất hiện tự nhiên từ hình học của Clifford Algebra.
Phép quay: nơi mọi thứ bắt đầu sáng lên
Giả sử muốn quay vector $v$ quanh một mặt phẳng.
Trong Geometric Algebra, chọn một unit bivector $B$:
$$ B^2=-1 $$
Rotor được viết:
$$ R=e^{-B\theta/2} $$
hay:
$$ R= \cos\frac{\theta}{2}
B\sin\frac{\theta}{2} $$
Vector sau phép quay:
$$ v’=Rv\tilde{R} $$
Trong đó $\tilde R$ là reverse của rotor; với unit rotor, nó cũng đóng vai trò nghịch đảo.
Nhìn quen không?
Quaternion quay vector cũng dùng dạng sandwich:
$$ v’=qvq^{-1} $$
Không phải ngẫu nhiên.
Quaternion rotation chính là một trường hợp của rotor.
Tại sao lại có góc chia hai?
Rotor dùng:
$$ \frac{\theta}{2} $$
vì phép quay có thể được hiểu như hai phép phản xạ liên tiếp.
Hãy đặt hai tấm gương với nhau.
Phản xạ qua tấm thứ nhất.
Sau đó phản xạ qua tấm thứ hai.
Kết quả không còn là phản xạ nữa.
Nó trở thành một phép quay.
Nếu hai mặt phản xạ cách nhau góc:
$$ \alpha $$
thì tổng phép biến đổi quay:
$$ 2\alpha $$
Geometric Algebra không phải tự dưng nhét số $1/2$ vào công thức để hành sinh viên.
Nó rơi ra từ hình học.
Các tài liệu về Geometric Algebra cho graphics mô tả rotation rotor chính xác theo cách này: một phép quay có thể được xây từ hai phép phản xạ, còn rotor là geometric product của các vector biểu diễn hai reflection đó. (Geometric Algebra)
Một phép nhân gom cả dot product và wedge product
Quay lại:
$$ ab=a\cdot b+a\wedge b $$
Đây là một công thức nhỏ nhưng rất nhiều thứ nằm trong đó.
Phần:
$$ a\cdot b $$
nói:
Hai vector giống hướng nhau đến mức nào?
Còn:
$$ a\wedge b $$
nói:
Hai vector căng ra mặt phẳng nào và diện tích có hướng bao nhiêu?
Một phép nhân chứa cả metric lẫn orientation.
Nếu $a$ và $b$ vuông góc:
$$ a\cdot b=0 $$
nên:
$$ ab=a\wedge b $$
Nếu chúng song song:
$$ a\wedge b=0 $$
nên:
$$ ab=a\cdot b $$
Hai phép toán tưởng như khác nhau hóa ra là hai grade khác nhau của cùng một tích.
Đây là lý do nhiều người thích gọi Clifford Algebra dưới góc nhìn hình học là Geometric Algebra.
Đại số không còn chỉ thao tác ký hiệu.
Bản thân phép nhân mang ý nghĩa hình học.
Cross product bỗng trở thành nhân vật phụ
Ở trường chúng ta học:
$$ a\times b $$
và kết quả là một vector vuông góc với $a$ và $b$.
Nhưng có một chuyện hơi kỳ.
Hai vector $a,b$ vốn tạo ra một mặt phẳng.
Tại sao kết quả tự nhiên nhất lại phải là một vector chọc vuông góc khỏi mặt phẳng đó?
Geometric Algebra giữ trực tiếp:
$$ a\wedge b $$
là mặt phẳng.
Trong 3D, cross product có thể thu được từ bivector này thông qua phép dual.
Nói nôm na:
1a và b
2 │
3 ▼
4a ∧ b
5một mặt phẳng có hướng
6 │
7 │ dual trong 3D
8 ▼
9a × b
10vector pháp tuyến
Điều này cũng giải thích một câu hỏi khá thú vị:
Tại sao cross product quen thuộc chỉ hoạt động đẹp trong 3D?
Bởi vì nó đang lợi dụng một sự trùng hợp đặc biệt:
Trong 3D, số chiều của không gian bivector là:
$$ {3 \choose 2}=3 $$
bằng đúng số chiều của vector:
$$ {3 \choose 1}=3 $$
Nên ta có thể dual hóa một mặt phẳng thành một vector.
Lên 4D:
$$ {4 \choose 2}=6 $$
Có sáu bivector độc lập.
Không còn một vector 4 chiều nào đủ sức giả dạng sáu mặt phẳng nữa.
Wedge product không gặp vấn đề này.
Nó hoạt động tự nhiên ở bất kỳ số chiều nào.
Clifford Algebra trong vật lý
Đến đây Clifford Algebra bắt đầu rời bàn học và chui vào vật lý.
Không phải vì các nhà vật lý thích làm đời mình khó hơn.
Mà vì vật lý đầy những thứ liên quan tới:
- phương hướng
- phép quay
- đối xứng
- không-thời gian
- spin
- trường điện từ
Đây lại chính là sân nhà của Clifford Algebra.
Các tài liệu nhập môn Clifford Algebra thường đi từ spin group đến Dirac equation, spin của hạt và điện từ học; các lecture note chuyên ngành cũng trình bày ứng dụng trong relativistic physics, spinor và orthogonal transformations. (Lundholm và Svensson)
Không-thời gian
Trong không gian Euclid, ta có thể chọn:
$$ e_i^2=+1 $$
Nhưng Clifford Algebra không bắt buộc mọi chiều phải như vậy.
Ta có thể có metric kiểu:
$$ (+,-,-,-) $$
hoặc quy ước ngược lại.
Đó chính là thứ xuất hiện trong không-thời gian Minkowski của thuyết tương đối.
Từ đó xuất hiện Spacetime Algebra, thường gắn với Clifford Algebra của không-thời gian 4 chiều.
Không gian và thời gian không còn là hai đống công thức vá vào nhau.
Chúng trở thành một cấu trúc hình học duy nhất.
Điện từ học
Trong cách viết vector calculus truyền thống, Maxwell có bốn phương trình.
Trong Geometric Algebra, điện trường và từ trường có thể được đóng gói vào một trường điện từ duy nhất, thường ký hiệu $F$.
Với các quy ước và hệ đơn vị thích hợp, cấu trúc Maxwell có thể được gom lại thành một phương trình cực kỳ cô đọng kiểu:
$$ \nabla F = J $$
Một phương trình.
Bên trong nó vẫn chứa toàn bộ các thành phần quen thuộc.
Không phải bốn phương trình biến mất.
Chúng chỉ được nhìn như những grade khác nhau của cùng một phương trình hình học.
Đó là một motif cứ lặp đi lặp lại trong Clifford Algebra:
Thứ tưởng là nhiều đôi khi chỉ là một vật được nhìn từ nhiều grade khác nhau.
Spinor
Spinor thường khiến người học vật lý lượng tử hơi chóng mặt.
Nó quay $360^\circ$ mà chưa chắc đã trở lại trạng thái ban đầu; phải quay $720^\circ$ mới hoàn toàn trở về.
Nghe như toán học bị bug.
Nhưng khi nhìn spinor thông qua Clifford Algebra và rotor, hiện tượng này liên quan tự nhiên tới cấu trúc Spin group, là double cover của rotation group.
Nói đơn giản hơn:
Một orientation trong không gian có thể tương ứng với hai rotor:
$$ R $$
và:
$$ -R $$
Chúng tạo ra cùng một phép quay lên vector:
$$ RvR^{-1}
(-R)v(-R)^{-1} $$
Nhưng bản thân rotor vẫn phân biệt hai trạng thái.
Cái hành vi tưởng như ma thuật của spinor bắt đầu có một cái bóng hình học phía sau.
Clifford Algebra trong đồ họa máy tính
Nếu chỉ dừng ở vật lý thì nghe hơi xa.
Nhưng Geometric Algebra có một mảnh đất khác rất thực tế:
computer graphics, robotics và geometric computing.
Course notes tại SIGGRAPH về Projective Geometric Algebra mô tả framework này như một cách biểu diễn thống nhất point, line, plane, các phép meet/join và isometry; nó cũng chứa vector, quaternion, dual quaternion và exterior algebra dưới dạng các cấu trúc liên quan hoặc subalgebra. (arXiv)
Rotation
Đây là ứng dụng dễ thấy nhất.
Thay vì:
1Euler angles
2→ matrix
3→ quaternion
4→ matrix
5→ object
ta có thể nghĩ trực tiếp:
1plane of rotation
2 │
3 ▼
4 bivector
5 │
6 ▼
7 rotor
8 │
9 ▼
10 RvR~
Mặt phẳng quay xuất hiện trực tiếp trong biểu thức toán học.
Reflection
Một vector đơn vị $n$ có thể đóng vai trò như reflection operator.
Từ reflection ta ghép thành rotation.
Điều khá hay là:
1reflection
2 ↓
3reflection + reflection
4 ↓
5rotation
Không cần coi reflection và rotation là hai phép biến đổi hoàn toàn chẳng liên quan.
Point, line và plane
Trong những biến thể như Projective Geometric Algebra (PGA) hay Conformal Geometric Algebra (CGA), người ta mở rộng không gian biểu diễn để point, line, plane, circle và sphere có thể được thao tác theo một framework nhất quán.
Ví dụ trong CGA, một phép biến đổi hình học có thể tác động lên:
1point
2line
3plane
4circle
5sphere
bằng cùng kiểu sandwich operation.
Đối với code xử lý geometry, chuyện này rất hấp dẫn.
Thay vì một đàn hàm:
1rotate_point(...)
2rotate_line(...)
3rotate_plane(...)
4rotate_circle(...)
5transform_sphere(...)
ý tưởng toán học có thể tiến gần hơn tới:
1X' = R X R~
Trong đó $X$ có thể là nhiều loại đối tượng hình học khác nhau.
Nghe nhỏ.
Nhưng nếu từng viết engine geometry vài chục nghìn dòng code thì sẽ hiểu việc có một luật biến đổi thống nhất đáng tiền như thế nào.
Vậy Clifford Algebra có thay thế matrix không?
Không.
Đây là chỗ nên tỉnh lại sau một hồi phê toán.
Matrix cực kỳ tốt.
Quaternion cũng cực kỳ tốt.
Vector library hiện nay đã được tối ưu đến mức GPU có thể nhai matrix như ăn bánh.
Nếu game engine đang dùng:
1Vector3
2Matrix4x4
3Quaternion
chạy ngon lành, không có lý do gì sáng thứ Hai đập toàn bộ đi chỉ vì đọc một bài blog về Clifford Algebra vào tối Chủ nhật.
Geometric Algebra có một lợi thế rất lớn về ngôn ngữ mô hình hóa.
Nhưng implementation thực tế còn phải tính:
- ecosystem
- compiler
- SIMD
- GPU
- memory layout
- library support
- khả năng debug
- khả năng tuyển người hiểu code
Ngoài ra Clifford Algebra tăng kích thước rất nhanh.
Không gian $n$ chiều có tối đa:
$$ 2^n $$
basis blade.
Với:
$$ n=3 $$
ta có:
$$ 8 $$
Với:
$$ n=5 $$
ta đã có:
$$ 32 $$
Với:
$$ n=10 $$
là:
$$ 1024 $$
May mắn là trong bài toán thực tế chúng ta thường không cần lưu toàn bộ multivector tổng quát, và nhiều cấu trúc có tính sparse hoặc chỉ dùng một số grade nhất định.
Nhưng rõ ràng đây không phải cây đũa thần.
Điều đáng học không phải là thêm một loại toán
Có lẽ điều thú vị nhất của Clifford Algebra không nằm ở chuyện dùng nó thay quaternion.
Điều thú vị nằm ở cách nó làm chúng ta nhìn lại những thứ đã học.
Ta từng nghĩ số phức là:
$$ a+bi $$
với một đơn vị tưởng tượng kỳ bí.
Clifford Algebra chỉ vào một mặt phẳng và nói:
Có thể cái $i$ kia chính là hình học mà thôi.
Ta từng nghĩ quaternion có ba số ảo:
$$ i,j,k $$
Clifford Algebra chỉ vào ba mặt phẳng $YZ$, $ZX$, $XY$ và nói:
Ba ông này đang đứng ngay trước mặt anh.
Ta từng nghĩ cross product sinh ra một vector pháp tuyến.
Clifford Algebra bảo:
Hai vector trước hết tạo thành một mặt phẳng. Cứ giữ mặt phẳng đó đi đã.
Ta từng nghĩ reflection, rotation, quaternion và spinor là những chương khác nhau.
Rồi geometric product bắt đầu nối chúng lại.
1 GEOMETRIC PRODUCT
2
3 ab = a·b + a∧b
4
5 │
6 ┌──────────────┼──────────────┐
7 │ │ │
8 vector bivector rotor
9 │ │
10 plane oriented │
11 │ │
12 ┌───────────┴───────┐ │
13 │ │ │
14 complex quaternion │
15 │
16 rotation
17 │
18 spin
Tất nhiên sơ đồ này chỉ mang tính trực giác, không phải sơ đồ phân loại đại số đầy đủ.
Nhưng nó nói lên tinh thần của Clifford Algebra khá rõ:
Hình học không cần một túi đồ nghề gồm hàng chục loại phép toán rời nhau. Có thể chúng chỉ là những biểu hiện khác nhau của cùng một phép nhân.
Một cách nhìn sâu hơn
Có một thói quen rất con người.
Khi không hiểu một thứ, chúng ta đặt tên cho nó.
Không hiểu $\sqrt{-1}$, gọi nó là imaginary number.
Cần quay 3D, tạo quaternion.
Cần mô tả spin, tạo spinor.
Cần biến đổi tọa độ, dựng matrix.
Tên gọi rất hữu ích.
Nhưng tên gọi cũng dựng lên những bức tường.
Ta bắt đầu tưởng rằng hai thứ có hai cái tên khác nhau thì phải là hai loài hoàn toàn khác nhau.
Clifford Algebra thú vị bởi nó làm điều ngược lại.
Nó phá bớt những bức tường đó.
Vector không chết khi ta thêm bivector.
Số phức không bị loại bỏ khi quaternion xuất hiện.
Quaternion cũng không phải một quái vật bốn chiều đứng ngoài hình học.
Chúng được đặt vào một cấu trúc lớn hơn, nơi mỗi thứ trở thành một trường hợp đặc biệt.
Giống như nhìn vào:
1điểm
2đường
3mặt
4khối
và chợt nhận ra đây không phải bốn môn hình học.
Chúng chỉ là bốn cấp độ của cùng một không gian.
Có lẽ đây cũng là một trong những cảm giác đẹp nhất khi học toán.
Không phải lúc ta biết thêm một công thức.
Mà là lúc mười công thức cũ bỗng co lại thành một ý tưởng.
Tổng kết
Đại số Clifford bắt đầu từ một ý tưởng rất nhỏ:
$$ ab=a\cdot b+a\wedge b $$
Nhưng từ geometric product đó, một thế giới khá lớn xuất hiện.
Trong framework này:
- vector biểu diễn hướng
- bivector biểu diễn mặt phẳng có hướng
- trivector biểu diễn thể tích có hướng
- multivector gom nhiều grade vào một đối tượng
- số phức xuất hiện tự nhiên trong Geometric Algebra 2D
- quaternion xuất hiện từ even subalgebra của Geometric Algebra 3D
- rotor biểu diễn phép quay
- reflection và rotation trở thành họ hàng
- spinor và Spin group có một cách diễn giải hình học tự nhiên
- nhiều bài toán vật lý, graphics và robotics có thể được viết trong một ngôn ngữ thống nhất
Clifford Algebra không nhất thiết sẽ thay thế matrix hay quaternion trong code ngày mai.
Nhưng nó cho ta một thứ đôi khi còn quan trọng hơn một implementation nhanh:
một cách nhìn.
Một cách nhìn trong đó số phức không còn quá “ảo”.
Quaternion không còn quá thần bí.
Cross product không còn là phép thuật riêng của 3D.
Và rất nhiều mảnh toán học mà chúng ta học riêng từng chương bắt đầu lắp lại với nhau như những miếng Lego vốn thuộc cùng một hộp.
Xong Clifford Algebra.
Nghe thì có vẻ đơn giản.
Bây giờ chỉ còn khoảng vài trăm năm toán học phía sau để đọc tiếp.
Cảm ơn các bạn đã quan tâm và theo dõi bài viết, hẹn gặp lại ở các bài viết tiếp theo.
Tham khảo
- Leo Dorst, Daniel Fontijne, Stephen Mann — Geometric Algebra for Computer Science. Geometric Algebra for Computer Science
- Douglas Lundholm, Lars Svensson — Clifford algebra, geometric algebra, and applications. arXiv: Clifford algebra, geometric algebra, and applications
- Charles G. Gunn — Geometric Algebra for Computer Graphics, SIGGRAPH 2019 Course Notes. arXiv: Geometric Algebra for Computer Graphics
- David Hestenes, Garret Sobczyk — Clifford Algebra to Geometric Calculus.
- Chris Doran, Anthony Lasenby — Geometric Algebra for Physicists.
Bình luận