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 ...
#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
