FriCAS? can now handle large class of integrals expressible in terms of exponential
integral, error functions, incomplete Gamma function with constant
first argument, logarithmic integral and polylogarithms. Like
fricas
integrate(1/log(x), x)
Type: Union(Expression(Integer),...)
fricas
integrate(1/(log(x) + 1), x)
Type: Union(Expression(Integer),...)
fricas
integrate(1/(log(x)^2-1), x)
Type: Union(Expression(Integer),...)
fricas
integrate(exp(x + a)/x, x)
Type: Union(Expression(Integer),...)
fricas
integrate(exp(x + a)/x^2, x)
Type: Union(Expression(Integer),...)
fricas
integrate(exp(x)/(x^2 - 1), x)
Type: Union(Expression(Integer),...)
fricas
integrate(x/(exp(x) - 1), x)
Type: Union(Expression(Integer),...)
fricas
integrate(x^3/(exp(x) - 1), x)
Type: Union(Expression(Integer),...)
fricas
integrate(2*x*exp(x)/(exp(x)^2 - 1), x)
Type: Union(Expression(Integer),...)
fricas
integrate(x/sinh(x), x)
Type: Union(Expression(Integer),...)
fricas
integrate(log(sinh(x)), x)
Type: Union(Expression(Integer),...)
fricas
integrate(exp((-x^2-2*x-1)/x^2)/x^2, x)
Type: Union(Expression(Integer),...)
fricas
integrate(x^3*exp(-x^3), x)
Type: Union(Expression(Integer),...)
fricas
integrate(x^2*exp(-(x+1)^3), x)
Type: Union(Expression(Integer),...)
fricas
integrate(x^n*exp(b*x^2), x)
Type: Union(Expression(Integer),...)
FriCAS? can introduce new algebraic constants when needed:
fricas
integrate(1/(log(x)^2-3), x)
Type: Union(Expression(Integer),...)
fricas
integrate(exp(x)/(x^2 - 5), x)
Type: Union(Expression(Integer),...)
The method is robust, FriCAS? can handle both
fricas
integrate(((x+1)*exp(x))/log(x*exp(x)), x)
Type: Union(Expression(Integer),...)
fricas
integrate(((x+1)*exp(x))/(x + log(x)), x)
Type: Union(Expression(Integer),...)
while Mathematca 8 can handle the first form, but not the second one
(Maple 15 and Maxima 5.30.0 can not handle any).
Similarly FriCAS? has no troubles with
fricas
integrate(((-4*x-8)*log(x)+(-2*x^2-4*x))/(3*x*exp(2*log(x)+x)^2-x), x)
Type: Union(Expression(Integer),...)
fricas
integrate(((-4*x-8)*log(x)+(-2*x^2-4*x))/(3*x^3*exp(log(x)+x)^2-x), x)
Type: Union(Expression(Integer),...)
fricas
integrate(((2*x^4-x^3+3*x^2+2*x+2)*exp(x/(x^2+2)))/(x^3+2*x), x)
Type: Union(Expression(Integer),...)
none of Mathematca 8, Maple 15 and Maxima 5.30.0 can handle them.
Since FriCAS? uses algorithmic approach some integrals can be done easily without any extra special
support. For example:
fricas
)set output tex off
fricas
)set output algebra on
integrate(-erf(((2*m - k^2) - 2*log(c + b) + 2*log(a))/(2*sqrt(2)*k))/2 - 1/2, c)
(23)
+----+
2 | 1
(2 log(c + b) - 2 log(a) - 2 m - k ) |----
| 2
+-+ \|2 k log(a) + m
- \|2 erf(-------------------------------------------)%e
2
+
+----+
2 | 1
(2 log(c + b) - 2 log(a) - 2 m + k ) |----
| 2
+-+ \|2 k
b\|2 erf(-------------------------------------------)
2
+
+----+ 2 +----+
| 1 2 log(c + b) - 2 log(a) - 2 m + k | 1
2 c k |---- erf(----------------------------------) - 2 c k |----
| 2 +-+ | 2
\|2 k 2 k\|2 \|2 k
/
+----+
| 1
4 k |----
| 2
\|2 k
Type: Union(Expression(Integer),...)
fricas
)set output tex on
fricas
)set output algebra off
is done combining general support for Liouvillian integrands with procedure for handling erf.
In Rubi this example required adding a new special rule.
FriCAS? can also handle some integrals involving special functions of
algebraic arguments:
fricas
integrate(((26*x+23)*x^(1/2)+4*x^2+50*x-6)*exp(2*x^(1/2)+x)/((16*x^2+36*x)*x^(1/2)+(2*x^3+42*x^2)), x)
Type: Union(Expression(Integer),...)