Symbolica 是一个用于 Python 和 Rust 的高性能计算代数库。它可以处理大型表达式、匹配模式以及生成优化的数值编码。
Symbolica 是一个用于 Python 和 Rust 的高性能计算代数库。它可以处理大型表达式、匹配模式以及生成优化的数值编码。
Symbolica is a high-performance computer algebra library for Python and Rust. It is built for large expressions, symbolic rewrites, exact polynomial arithmetic, and optimized numerical evaluators.
Trusted by CERN and research groups at ETH Zurich, the University of Zurich, the University of Bern, and Karlsruhe Institute of Technology.
Try the live Jupyter Notebook demo, read the documentation, or see symbolica.io for licensing and support.
Visit the Get Started page for detailed installation instructions.
Symbolica can be installed from PyPI using pip:
pip install symbolica
Add Symbolica to a Rust project:
cargo add symbolica
Go from a physical model to a calibrated result in a few steps. Explore more in the guide.
Start with a pendulum whose restoring torque is controlled by the scale κ:
from symbolica import *
θ, κ = S("θ", "κ")
V = κ*(1 - θ.cos())
τ = -V.derivative(θ)
τ
-\kappa \sin\!\left(\theta\right)
Expand the torque to get a small-angle model:
τ_small = τ.series(θ, 0, 3)
τ_small
-\kappa\theta+\frac{1}{6}\kappa\theta^3+\mathcal{O}\!\left(\theta^4\right)
Suppose the scale κ and a sensor offset τ_0 are unknown. Each pair
(θ_i, τ_i) is one sensor reading: at angle θ_i, the measured torque is
τ_i. Convert the truncated series back to an expression, evaluate it at two
measurement angles using replace, and solve the resulting linear system:
τ0, τ1, τ2, θ1, θ2 = S("τ_0", "τ_1", "τ_2", "θ_1", "θ_2")
τ_model = τ_small.to_expression() + τ0
solution = Expression.solve([
τ_model.replace(θ, θ1) - τ1,
τ_model.replace(θ, θ2) - τ2,
], [κ, τ0])[0]
κ_fit, τ0_fit = solution[κ], solution[τ0]
κ_fit
\frac{6\tau_1-6\tau_2}{-6\theta_1+6\theta_2+\theta_1^3-\theta_2^3}
Finally, plug in measured values:
κ_fit.evaluate({
θ1: 0.10,
θ2: 0.20,
τ1: -0.4697,
τ2: -0.9545,
}).real
4.905227655986509
Follow the development of Symbolica and the open-source spin-off projects numerica, graphica, and symbolica-integrate on Zulip!
暂无开放 Issues,或尚未同步最近议题。