mathpad is a robust Computer Algebra System (CAS) library built on top of SymPy, providing a simple and intuitive way to solve engineering, science, and math problems using Python.
- Install using package manager of choice. For example,
pip:
pip install mathpad- Import and use the library in
python:
| Code | Display |
from mathpad import * v = 5 * m / s mph = "mph" * miles / hour eqn = mph == v.eval() |
Currently the only in-depth documentation is Walkthrough.ipynb. You can access it on the JupyterLite Sandbox Site here.
| Feature | Example | Display |
| Units | m m / s ** 2 feet.in_units(cm) (V * A).in_units(watt) | |
| Values | v = 2.5 * m / s c = m(5) | |
| Symbols | t = "t" * seconds y = "\\hat{y}_1" * volts | |
| Symbolic Functions | a = "a(t)" * m / s ** 2 | |
| Equations | eqn = (v == a * t) | |
| Solving | sln, = solve([eqn], solve_for=[a]) sln[a] | |
| Algebra | simplify(e ** (1j * pi)) expand((t + 1)(t + 2)) factor(t**2 + 3 * t * s + 2) subs((t + 1)(t + 2), { t: 5 }) | |
| Calculus | diff(a, wrt=t, order=1) integral(a, wrt=t, between=(0, 10)) | |
| Vectors | O = R3("O") # 3D frame of reference v1 = O[1, 2, 3] x, y, z = ("x", "y", "z") * m v2 = O[x, y, z] v3 = "v_3" @ O v2.cross(v3) | |
| Matrices | O2 = R2("O2") A = Mat[O, O2]( [1, 2], [3, 4], [5, 6] ) v2_wrt_O2 = v2 @ A B = Mat[O2, O]("B") I = Mat[O2, O2].I | |
| Numpy Compatibility | y = sin(t) y_fn = as_numpy_func(y) y_fn({ t: [1, 2, 3] }) import numpy as np y_fn({ t: np.arange( start=0, stop=2 * np.pi, step=np.pi / 12 ) }) | array([0.84147098, 0.90929743, 0.14112001]) array([0. , 0.25881905, 0.5 , 0.70710678, 0.8660254 , 0.96592583, 1. , 0.96592583, 0.8660254 , 0.70710678, 0.5 , 0.25881905]) |
| Code Generation | generate_c_code(theta, [t]) |
This package was created with Cookiecutter and the browniebroke/cookiecutter-pypackage project template.










