-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
actions of generic linear transformations; matrices of linear transformations #461
Comments
There's unfortunately no easy way to put latex in github. My usual strategy is to just paste a screen clipping, which on windows I get with What you can do is upload the ipynb as a gist, like I've done here: https://gist.github.com/eric-wieser/c389a726a8b86f7e9d1586089a4fc5dc
|
I think your suggested change of self.mat = Dictionary_to_Matrix(self.lt_dict, self.Ga) * self.Ga.g
- return self.mat
+ return self.mat * self.Ga.g_inv would solve the problem - but it can be simplified to - self.mat = Dictionary_to_Matrix(self.lt_dict, self.Ga) * self.Ga.g
+ self.mat = Dictionary_to_Matrix(self.lt_dict, self.Ga)
return self.mat I do wonder why @abrombo added this multiplication in the first place. Perhaps there's an interpretation that we're missing. |
On its face, post-multiplication of a matrix Answer: I had already tried what Eric suggested before making the post. The result was strange. Performing the two post-multiplications results in a correct return matrix without the pending transposition operation, so that's what I did in my suggested code change. If something simpler can be done which forces the transposition, I'd say go with it. One possible "something simpler" has just occurred to me, so I haven't yet tested it:
I suspect the multiplication by the identity matrix will force the transposition to be carried out before the return is made. And a single multiplication by the identity matrix will be less computationally intensive that two successive multiplications by |
You can make this go away by calling You might want to switch to using the unreleased version of galgebra so you get this change, which you can do with
This will also get you the |
Attached is a zipped version of a correction to GAlgebra's matrix() method.ipynb , a Jupyter notebook; the zip file also contains Alan Bromborsky's gprinter.py, which I use in the notebook to create output.
Previously I reported that method
.matrix()
was returning a nonstandard matrix representation of linear transformations. In the last Markdown cell of the notebook I indicate a code modification that corrects that behavior. The modification has been checked for both specific and generic transformations on Euclidean and Minkowskian scalar product spaces, and when the generating bases for such spaces are orthonormal, orthogonal, or oblique.However when testing I discovered what I regard as a problem in GAlgebra's treatment of generic linear transformations. One would expect that instantiation$e_j$ would take the form
f = Ga.lt('f')
would produce a transformationf
on geometric algebraGa
whose action on basis vectorHowever such is not the case. Somehow the metric tensor (or perhaps reciprocal metric tensor) is getting mixed into the expression to the right of the \mapsto symbol. This is demonstrated near the end of the notebook. I have not puzzled out the pattern of mixing of the$f_{ij}$ 's and the metric tensor components.
It would be nice if one could include MathJax expressions in these posts, as one can do in a Jupyter notebook's Markdown cells. Or maybe one can and I just don't know about it. Although I've been studying geometric algebra for over a decade, I'm a newbie at coding and use of GitHub.
Greg Grunberg (Greg1950)
a correction to GAlgebra's matrix() method.zip
The text was updated successfully, but these errors were encountered: