Welcome to Rubi, the Rule-based Integrator
By systematically applying its extensive, coherent collection of symbolic integration rules, Rubi is able to find the optimal antiderivative of large classes of mathematical expressions. Also Rubi can show the rules and intermediate steps it uses to integrate an expression, making the system a great tool for both learning and doing mathematics.
The over 6700 rules Rubi uses are organized as a decision tree based on the form of the integrand. Click on Rules to view the mathematical formula and application conditions for each rule expressed in standard 2-D mathematical notation.
If the Mathematica computer algebra system is available on your computer, click on Install Rubi for instructions how to download and install the system. Then click on Using Rubi to learn how to integrate expressions and optionally show the steps required to do so.
An extensive test-suite of over 72,000 integration problems is used to test each new release of Rubi. Since it can also be used to test other symbolic integrators, the test-suite has been translated into the syntax of several popular computer algebra systems. Click on Test Problem to download the available translations of the test-suite. Click on Test Results to view the very illuminating results of running the test-suite on Rubi and on Mathematica’s built-in integrator.
Click on Vision to read a short, plain-language essay describing the numerous advantages of organizing mathematical knowledge as a rule-based decision tree like Rubi does. Finally, click on About to read about Rubi’s development and developers.
Comparison with other symbolic integrators
Rubi dramatically out-performs other symbolic integrators, including Maple and Mathematica, on a grueling test-suite of integration problems. Each problem consists of an integrand and its optimal antiderivative. For each problem the result produced by a system is given a grade as follows:
- A - if the result is no more than twice the size of the optimal antiderivative and involves functions no higher-level than those in the optimal antiderivative.
- B - if the result is more than twice the size of the optimal antiderivative.
- C - if the result involves higher-level functions than those in the optimal antiderivative. For example, the result involves special functions, but the optimal antiderivative only involves elementary ones.
- F - if the result involves an integral, no result is produced within 2 minutes, or the system hangs or crashes.
Nasser M. Abbasi has independently done extensive testing of the integration capabilities of several computer algebra systems. Detailed test results are available at his Computer algebra independent integration tests website. The following chart based on his test results summarizes the grades given Rubi, Mathematica and Maple on the integration test-suite:
Articles referencing rule-based integration
Alexes Mes and Jed Stephens (2018). An Application of Rubi: Series Expansion of the Quark Mass Renormalization Group Equation. arXiv:1811.04892.
Patrick Scheibe (2018). Rubi - The Rule-based Integrator for Mathematica. Wolfram Community post 1421180.
Patrick Scheibe (2018). Rubi - A Rule-based Integrator for Mathematical Expressions. Blog post.
David Jeffrey and Albert D. Rich (2016). Developments in Rubi: Rule-based integration. Presentation.
David J. Jeffrey, Albert D. Rich, and Junrui Hu (2015). Rubi and integration as term re-writing. ACM Communications in Computer Algebra. 49. 34-34. 10.1145/2768577.2768649.
Albert D. Rich and David J. Jeffrey (2010). Reducing expression size using rule-based integration. Intelligent Computer Mathematics. Ed: S.Autexier, J.Calmet, D. Delahaye, P.D.F.Ion, L.Rideau, R.Rioboo, A.P.Sexton. LNAI 6167, pp234-246, Springer.
Albert D. Rich and David J. Jeffrey (2009). A knowledge repository for indefinite integration based on transformation rules. Intelligent Computer Mathematics, LNCS 5625, pp480-485, Springer.
Rule-based integration resources
To discuss issues related to rule-based integration, you are welcome to join Rubi’s chatroom on Gitter at https://gitter.im/Rule-Based-Integration/Lobby using your GitHub login.
To report bugs, request features or suggest new integration rules, please open an issue on GitHub at https://github.com/RuleBasedIntegration/Rubi/issues and describe as clearly as possible the bug, request or suggestion.
Rubi is a freely available system of integration rules. The complete source code is available as Mathematica notebook files on GitHub at https://github.com/RuleBasedIntegration/Rubi. The notebooks contain the integration rules in both human and machine-readable form, and everything required to build and use it as Mathematica package.
Rubi’s Wiki-page at https://github.com/RuleBasedIntegration/Rubi/wiki is intended to contain detailed information about Rubi’s development process.