Skip to content

Instantly share code, notes, and snippets.

@arsenovic
Created May 21, 2025 12:21
Show Gist options
  • Save arsenovic/0660b631a5b7db200c09853c3202cd05 to your computer and use it in GitHub Desktop.
Save arsenovic/0660b631a5b7db200c09853c3202cd05 to your computer and use it in GitHub Desktop.
jupytext kernelspec
formats text_representation
md:myst
extension format_name format_version jupytext_version
.md
myst
0.13
1.16.7
display_name language name
Python 3 (ipykernel)
python
python3

In Search of Nilpotents

We were looking for a GA model for Cholesky repr of a symmetric mat. A symmtric mat $S$ is written as the product of two triangular mats, $L$ and $L^T$. the $L$ can also be further decomposed into ;

$$L = De^{N}$$ where $D$ is diagonal and $N$ is Nilpotent of degree $k$, meaning $N^k=0$ while $N^{<k}\ne0$. I think this can be interepreted as decomposing $L$ into shears and strains.

Lets ignore the strains ($D$) for now, and look for the ability to produce nilpotents $N$ in $G_n$.

We did some chatgpt'ing and we know that a rotation in null bivector implements a shear. so we guessed to use G(N,0,1) and brute force found some nilpotents as show below. the patern and meaning is to be found.

from kingdon import Algebra
alg = Algebra(3, 0,1)
locals().update(alg.blades)

X = e2*(1 + e1*(1 + e0))
[print(f'X^{n} : {(X)**n}') for n in range(1,5)];
from kingdon import Algebra
alg = Algebra(4, 0,1)
locals().update(alg.blades)

Z = e2*(1 + e1*(1 + e0))
Y = e4*(1 + e3*(1 + e0))
X = Z + e0*Y
[print(f'X^{n} : {(X)**n}') for n in range(1,5)];

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment