8ff18384fe
Signed-off-by: David Rotermund <54365609+davrot@users.noreply.github.com>
91 lines
2 KiB
Markdown
91 lines
2 KiB
Markdown
# Symbolic Computation
|
|
{:.no_toc}
|
|
|
|
<nav markdown="1" class="toc-class">
|
|
* TOC
|
|
{:toc}
|
|
</nav>
|
|
|
|
## Top
|
|
|
|
Questions to [David Rotermund](mailto:davrot@uni-bremen.de)
|
|
|
|
```shell
|
|
pip install sympy
|
|
```
|
|
|
|
||
|
|
|---|
|
|
|[Simplification](https://docs.sympy.org/latest/tutorials/intro-tutorial/simplification.html)|
|
|
|[Calculus](https://docs.sympy.org/latest/tutorials/intro-tutorial/calculus.html) |
|
|
|[Solvers](https://docs.sympy.org/latest/tutorials/intro-tutorial/solvers.html)|
|
|
|
|
|
|
|
|
|
|
## [Some examples](https://docs.sympy.org/latest/tutorials/intro-tutorial/intro.html#a-more-interesting-example)
|
|
|
|
|
|
### [Derivatives](https://docs.sympy.org/latest/tutorials/intro-tutorial/calculus.html#derivatives)
|
|
|
|
```python
|
|
import sympy
|
|
|
|
x, y = sympy.symbols("x y")
|
|
|
|
y = sympy.diff(sympy.sin(x) * sympy.exp(x), x)
|
|
print(y) # -> exp(x)*sin(x) + exp(x)*cos(x)
|
|
```
|
|
|
|
### [Integrals](https://docs.sympy.org/latest/tutorials/intro-tutorial/calculus.html#integrals)
|
|
|
|
```python
|
|
import sympy
|
|
|
|
x, y = sympy.symbols("x y")
|
|
|
|
y = sympy.integrate(sympy.cos(x), x)
|
|
print(y) # -> sin(x)
|
|
```
|
|
|
|
|
|
### [(Taylor) Series Expansion](https://docs.sympy.org/latest/tutorials/intro-tutorial/calculus.html#series-expansion)
|
|
|
|
```python
|
|
import sympy
|
|
|
|
x, y, z = sympy.symbols("x y z")
|
|
y = sympy.cos(x)
|
|
z = y.series(x, 0, 8) # around x = 0 , up order 7
|
|
|
|
print(z) # -> 1 - x**2/2 + x**4/24 - x**6/720 + O(x**8)
|
|
```
|
|
|
|
## [simplify](https://docs.sympy.org/latest/tutorials/intro-tutorial/simplification.html#simplify)
|
|
|
|
```python
|
|
import sympy
|
|
|
|
x, y, z = sympy.symbols("x y z")
|
|
y = sympy.simplify(sympy.sin(x) ** 2 + sympy.cos(x) ** 2)
|
|
|
|
print(y) # -> 1
|
|
```
|
|
|
|
## [Solving Equations Algebraically](https://docs.sympy.org/latest/tutorials/intro-tutorial/solvers.html)
|
|
|
|
> Recall from the [gotchas section](https://docs.sympy.org/latest/tutorials/intro-tutorial/gotchas.html#tutorial-gotchas-equals) of this tutorial that symbolic equations in SymPy are not represented by = or ==, but by Eq.
|
|
|
|
```python
|
|
import sympy
|
|
|
|
x, y, z = sympy.symbols("x y z")
|
|
|
|
z = sympy.Eq(x, y)
|
|
```
|
|
|
|
Output:
|
|
|
|
$$x=y$$
|
|
|
|
|