SymbolicNumericIntegration.jl is a hybrid symbolic/numerical integration package that works on the Julia Symbolics expressions.
For information on using the package, see the stable documentation. Use the in-development documentation for the version of the documentation, which contains the unreleased features.
using Symbolics
using SymbolicNumericIntegration
@variables x a b
integrate(3x^3 + 2x - 5)
(x^2 + (3 // 4) * (x^4) - (5 // 1) * x, 0, 0)
integrate(exp(a * x), x; symbolic = true)
(exp(a * x) / a, 0, 0)
integrate(sin(a * x) * cos(b * x), x; symbolic = true, detailed = false)
(-a * cos(a * x) * cos(b * x) - b * sin(a * x) * sin(b * x)) / (a^2 - (b^2))
If you use SymbolicNumericIntegration.jl in your research, please cite the arxiv and/or ISSAC'24 papers:
@inproceedings{10.1145/3666000.3669714,
author = {Iravanian, Shahriar and Gowda, Shashi and Rackauckas, Christopher},
title = {Hybrid Symbolic-Numeric and Numerically-Assisted Symbolic Integration},
year = {2024},
isbn = {9798400706967},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3666000.3669714},
doi = {10.1145/3666000.3669714},
pages = {410–418},
numpages = {9},
keywords = {sparse regression, symbolic integration, symbolic-numeric computation},
location = {Raleigh, NC, USA},
series = {ISSAC '24}
}
@article{Iravanian2022,
author = {Shahriar Iravanian and Carl Julius Martensen and Alessandro Cheli and Shashi Gowda and Anand Jain and Yingbo Ma and Chris Rackauckas},
doi = {10.48550/arxiv.2201.12468},
month = {1},
title = {Symbolic-Numeric Integration of Univariate Expressions based on Sparse Regression},
url = {https://arxiv.org/abs/2201.12468v2},
year = {2022},
}