You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The first argument is the expression to integrate, second argument is the variable of integration. If the variable is not specified, it will be guessed from the expression. The +c is omitted :)
34
25
35
26
### Method Selection
36
27
37
28
You can explicitly choose a integration method like this:
This method uses a rule based approach to integrate a vast class of functions, and it's built using the rules from the Mathematica package [RUBI](https://rulebasedintegration.org/).
103
-
104
-
**Capabilities:**
105
-
- ✅ Fast convergence for a large base of recognized cases
106
-
- ✅ Algebraic functions like `sqrt` and non-integer powers are supported
107
-
- ✅ **More than one symbolic variable**: Integration w.r.t. one variable, with other symbolic variables present in the expression
86
+
### RuleBasedMethod
108
87
88
+
This method uses a large number of integration rules that specify how to integrate various mathematical expressions. There are now more than 3400 rules impelmented.
109
89
110
90
# Documentation
111
91
@@ -119,7 +99,7 @@ If you use SymbolicIntegration.jl in your research, please cite:
119
99
120
100
```bibtex
121
101
@software{SymbolicIntegration.jl,
122
-
author = {Harald Hofstätter and Mattia Micheletta Merlin},
102
+
author = {Harald Hofstätter and Mattia Micheletta Merlin and Chris Rackauckas},
123
103
title = {SymbolicIntegration.jl: Symbolic Integration for Julia},
more than one symbolic<br> variable in the expression | ❌ | ✅
58
55
59
-
Is implemented in a generic way using [AbstractAlgebra.jl](https://nemocas.github.io/AbstractAlgebra.jl/dev/). Some algorithms require [Nemo.jl](https://nemocas.github.io/Nemo.jl/dev/) for calculations with algebraic numbers.
56
+
[→ See complete methods documentation](methods/overview.md)
60
57
61
-
Is based on the algorithms from the book:
58
+
### RischMethod
59
+
This method is based on the algorithms from the book:
for which a pretty complete set of reference implementations is provided.
63
+
for which a pretty complete set of reference implementations is provided. As in the book, integrands involving algebraic functions like `sqrt` and non-integer powers are not treated.
66
64
67
-
Currently, RischMethod can integrate:
68
-
- Rational functions
69
-
- Integrands involving transcendental elementary functions like `exp`, `log`, `sin`, etc.
70
-
71
-
As in the book, integrands involving algebraic functions like `sqrt` and non-integer powers are not treated.
-[\* not present or present as \[Star\]](#-not-present-or-present-as-star)
7
+
-[Description of the script `src/translator_of_rules.jl`](#description-of-the-script-srctranslator_of_rulesjl)
8
+
-[How to use it](#how-to-use-it)
9
+
-[How it works internally (useful to know if you have to debug it)](#how-it-works-internally-useful-to-know-if-you-have-to-debug-it)
10
+
-[With syntax](#with-syntax)
11
+
-[replace and smart\_replace applications](#replace-and-smart_replace-applications)
12
+
-[Pretty indentation](#pretty-indentation)
13
+
-[end](#end)
14
+
-[Adding Testsuites](#adding-testsuites)
1
15
2
16
# Contributing to improving RuleBasedMethod
3
17
@@ -154,3 +168,6 @@ applied automatically that rewrites the rule like this:
154
168
#### end
155
169
finally the rule is placed in a tuple (index, rule), and all the
156
170
tuples are put into a array, ready to be included by load_rules
171
+
172
+
## Adding Testsuites
173
+
There is a test suite of 27585 solved integrals taken from the RUBI package, in the folders `test/test_files/0 Independent test suites` (1796 tests) and `test/test_files/1 Algebraic functions` (25798 tests). But more test can be translated from the [RUBI testsuite](https://rulebasedintegration.org/testProblems.html). In [this](https://github.com/Bumblebee00/SymbolicIntegration.jl?tab=readme-ov-file#testing) repo there are the tests still in Mathematica syntax and a script to transalte them to julia.
0 commit comments