This is the dream cheating software every student should know about.

It also has serious applications obviously. https://www.sympy.org/scipy-2017-codegen-tutorial/ mentions code generation capabilities, which sounds super cool!

The code in this section was tested on

`sympy==1.8`

and Python 3.9.5.Let's start with some basics. fractions:
outputs:
Note that this is an exact value, it does not get converted to floating-point numbers where precision could be lost!

We can also do everything with symbols:

outputs:
We can now evaluate that expression object at any time:
outputs:
How about a square root?

outputs:
so we understand that the value was kept without simplification. And of course:
outputs `2`

. Also:
outputs:
`I`

is the imaginary unit. We can use that symbol directly as well, e.g.:
gives:
Let's do some trigonometry:

gives:
and:
gives:
The exponential also works:
gives;
Now for some calculus. To find the derivative of the natural logarithm:
outputs:
Just read that. One over x. Beauty.

Let's do some more. Let's solve a simple differential equation:
Doing:
outputs:
which means:
To be fair though, it can't do anything crazy, it likely just goes over known patterns that it has solvers for, e.g. if we change it to:
it just blows up:
Sad.

$f(x)=C_{1}+C_{2}xe_{x}+cos(x)/2$

Let's try some polynomial equations:
which outputs:
which is a not amazingly nice version of the quadratic formula. Let's evaluate with some specific constants after the fact:
which outputs
Let's see if it handles the quartic equation:
Something comes out. It takes up the entire terimnal. Naughty. And now let's try to mess with it:
and this time it spits out something more magic:
Oh well.

Let's try some linear algebra.
Let's invert it:
outputs:

- Computer algebra system | 0, 626, 1
- Scientific computing | 0, 904, 11
- Software | 0, 21k, 426
- Computer | 138, 33k, 747
- Information technology | 0, 33k, 759
- Technology | 0, 52k, 1k
- Ciro Santilli's Homepage | 262, 238k, 4k

- Sylvester's law of inertia | 527, 626, 5