Welcome to the Power Users community on Codidact!
Power Users is a Q&A site for questions about the usage of computer software and hardware. We are still a small site and would like to grow, so please consider joining our community. We are looking forward to your questions and answers; they are the building blocks of a repository of knowledge we are building together.
Post History
You could use Maxima. Some packages offer a GUI (Xmaxima or Wxmaxima, if I'm not mistaken), but you can use it in the terminal. Below, an interactive terminal Maxima session in which I define and ...
Answer
#1: Initial revision
You could use [Maxima][1]. Some packages offer a GUI (Xmaxima or Wxmaxima, if I'm not mistaken), but you can use it in the terminal. Below, an interactive terminal Maxima session in which I define and invert the two-dimensional rotation matrix. ``` (%i3) m: matrix([cos(x), -sin(x)], [sin(x), cos(x)]); [ cos(x) - sin(x) ] (%o3) [ ] [ sin(x) cos(x) ] (%i4) m^^-1; [ cos(x) sin(x) ] [ ----------------- ----------------- ] [ 2 2 2 2 ] [ sin (x) + cos (x) sin (x) + cos (x) ] (%o4) [ ] [ sin(x) cos(x) ] [ - ----------------- ----------------- ] [ 2 2 2 2 ] [ sin (x) + cos (x) sin (x) + cos (x) ] (%i5) trigsimp(%); [ cos(x) sin(x) ] (%o5) [ ] [ - sin(x) cos(x) ] ``` Note that Maxima is somewhat lazy and leaves even the most elementary trigonometric identities such as sin²(x)+cos²(x) unresolved. I used `trigsimp` on the last output expression, `%`, to simplify the output. In Maxima, you can use the question mark to find help on a function or operator. For example, `? matrix`. [1]: https://en.wikipedia.org/wiki/Maxima