August 30th, 2024

Rubi: Symbolic integrator based on an extensive system of integration rules

Rubi is an open-source symbolic integrator using over 6,700 rules, outperforming Mathematica and Maple. It aids learning by providing antiderivatives and steps, with source code available on GitHub.

Read original articleLink Icon
Rubi: Symbolic integrator based on an extensive system of integration rules

Rubi is a symbolic integrator that utilizes a comprehensive collection of over 6,700 integration rules organized in a decision tree format. This system is designed to find optimal antiderivatives for a wide range of mathematical expressions while also providing the rules and intermediate steps used in the integration process, making it a valuable educational tool. Users can install Rubi if they have the Mathematica computer algebra system, and they can access a test suite of over 72,000 integration problems to evaluate Rubi's performance against other symbolic integrators like Mathematica and Maple. Rubi has demonstrated superior performance in these tests, with results graded based on their efficiency and complexity. The system is open-source, and its source code is available on GitHub, where users can also report issues or suggest new features. Additionally, Rubi has been referenced in various academic articles, highlighting its significance in the field of symbolic integration.

- Rubi employs over 6,700 integration rules organized in a decision tree format.

- It provides both the optimal antiderivative and the steps taken to achieve it, aiding in learning.

- Rubi outperforms other symbolic integrators like Mathematica and Maple in extensive testing.

- The system is open-source, with its source code available on GitHub for public access.

- Users can report bugs and suggest features through GitHub and join discussions on Gitter.

Related

Show HN: R2R V2 – A open source RAG engine with prod features

Show HN: R2R V2 – A open source RAG engine with prod features

The R2R GitHub repository offers an open-source RAG answer engine for scalable systems, featuring multimodal support, hybrid search, and a RESTful API. It includes installation guides, a dashboard, and community support. Developers benefit from configurable functionalities and resources for integration. Full documentation is available on the repository for exploration and contribution.

Integrating Random Functions on a Cluster with Temporal

Integrating Random Functions on a Cluster with Temporal

The project focused on determining the integrability of random functions using machine learning, implementing a timeout mechanism, and enhancing performance through parallel processing, significantly improving programming skills and understanding of symbolic mathematics.

Algorithms through the lens of symbolic pattern matching

Algorithms through the lens of symbolic pattern matching

The blog post discusses symbolic pattern matching using the Symbolica framework, covering its applications in programming and graph theory, and methods for analyzing graph properties and automorphisms.

Ruby in Jupyter Notebook

Ruby in Jupyter Notebook

IRuby is a Ruby kernel for Jupyter notebooks, allowing Ruby code execution, output redirection, LaTeX rendering, and integration with libraries for advanced plotting and visualization, enhancing data presentation.

REDUCE Computer Algebra System

REDUCE Computer Algebra System

REDUCE is an open-source computer algebra system developed since the 1960s, supporting multiple operating systems and offering features like arbitrary precision arithmetic, polynomial algorithms, and a user-friendly programming language.

Link Icon 8 comments
By @ducktective - 5 months
I encourage those interested in Computer Algebra Systems to read this comparison report: https://www.12000.org/my_notes/CAS_integration_tests/reports...

AFAIK, this is the only recent benchmark-type study that compares modern CAS software (Mathematica vs Maxima vs FriCAS vs etc).

By @Y_Y - 5 months
I used this a while back to do an awkward integral that no other CAS was able to do and was able to show up a paper that had claimed there was no closed-form solution.

Unfortunately the answer was in terms of hypergeometric functions and was scarcely more useful than the unevaluated integral. In any case I found Rubi to be very impressivein terms of results.

Digging into the code wasn't much fun, as it's just a colossal Mathematica rules engine, like reading Gradshteyn and Ryzhik, but with square brakets everywhere.

By @injidup - 5 months
What is it fundamentally about symbolic integration that makes it so much more difficult to do? I mean, I studied calculus and learned any number of the rules but it's a curious thing that one operation, differentiation is trivial, yet the opposite, integration is massively complex.
By @hobscoop - 5 months
Rubi is great. When I'm stuck on an integral in Mathematica with the builtin Integrate, I load up Rubi and sometimes it can find a solution.
By @pkaye - 5 months
There is a Golang based CAS that follows the Mathematica language which makes use of Rubi for integration.

https://github.com/corywalker/expreduce

By @krackers - 5 months
This is cool! The page by Abbasi they link to also contains a comparison between MMA and Maple in solving differential equations

https://12000.org/my_notes/kamek/kamke_differential_equation...

By @wdkrnls - 5 months
Has anyone looked at writing a script to transform those rules for yacas? Making yacas 94% as good as Mathematica at integration sounds like a worthy goal considering how easy it is to deploy it.
By @amelius - 5 months
Hopefully this can be integrated (no pun intended) into SymPy.