Saltar al contenido

¿Existe una implementación completa del algoritmo de Risch?

Solución:

Ningún sistema de álgebra por computadora implementa un proceso de decisión completo para la integración de funciones trascendentales y algebraicas mixtas.

La integral del excelente artículo de Schultz puede ser resuelta por Maple si convierte el integrando a la notación RootOf (¿Por qué esto no se hace internamente en Maple es una pregunta interesante?)

int(convert((29*x^2+18*x-3)/(x^6+4*x^5+6*x^4-12*x^3+33*x^2-16*x)^(1/2),RootOf),x);

Mis experimentos sugieren que Maple tiene la mejor implementación del algoritmo de Risch-Trager-Bronstein para la integración de integrales puramente algebraicas en términos de funciones elementales (ref: tabla 1, sección 3 de Sam Blake, Un método simple para calcular algunas integrales pseudoelípticas en términos de funciones elementales, arXiv: 2004.04910). Sin embargo, la implementación de Maple no integra expresiones que contengan parámetros o radicales anidados (ambos tienen algún soporte en AXIOM y FriCAS).

Parecería que se ha logrado algún progreso significativo en el cálculo de la parte logarítmica de una integral mixta trascendental-algebraica por Miller [1]. Aunque, hasta donde yo sé, ningún sistema de álgebra computacional ha implementado su algoritmo. Tampoco está claro si el algoritmo de Miller puede manejar parámetros, por ejemplo, el algoritmo de Risch-Trager-Bronstein tiene dificultades con la siguiente integral pseudoelíptica

$$ int frac { left (px ^ 2-q right) left (px ^ 2-x + q right) dx} {x left (px ^ 2 + 2 x + q right) sqrt {2 p ^ 2x ^ 4 + 2 px ^ 3 + (4 p q + 1) x ^ 2 + 2 q x + 2 q ^ 2}} = – frac {1} { sqrt {2}} log (x) + frac {1} { sqrt {2}} log left ( sqrt {2} y +2 px ^ 2 + x + 2q right) – frac {3} { sqrt { 5}} tanh ^ {- 1} left ( frac { sqrt {5} y} {3 px ^ 2 + 3 q + x} right), $$
dónde $ y = sqrt {2 p ^ 2 x ^ 4 + 2 px ^ 3 + (4 pq + 1) x ^ 2 + 2 q x + 2 q ^ 2} $. Mi heurística en el artículo vinculado anteriormente calcula esta integral rápidamente con la sustitución $ u = frac {px ^ 2 + q} {px} $.

En lo que respecta al caso mixto algebraico-trascendental del algoritmo de Risch-Trager-Bronstein, una integral que no se puede resolver con Maple, Mathematica, AXIOM o FriCAS (y posiblemente otro CAS) es

$$ int frac { left ( sqrt {x} +1 right) left (e ^ {2x sqrt {x}} -a right) sqrt {a ^ 2 + 2 ax ^ {2 sqrt {x}} + cx e ^ {2 sqrt {x}} + x ^ 2 e ^ {4 sqrt {x}}}} {x sqrt {x} e ^ { sqrt {x}} left (a + xe ^ {2 sqrt {x}} right)} dx. $$

Esta integral es interesante ya que devuelve dos mensajes distintos de AXIOM y FriCAS sugiriendo que sus respectivas implementaciones están incompletas. Vuelve FriCAS

(1) -> integrate(((-a+exp(2*x^(1/2))*x)*x^(-3/2)*(1+x^(1/2))*(a^2+2*a*exp(2*x^(1/2))*x+c*exp(2*x^(1/2))*x+exp(4*x^(1/2))*x^2)^(1/2))/(exp(x^(1/2))*(a+exp(2*x^(1/2))*x)),x)
                                                                                                        
   >> Error detected within library code:                                                               
   integrate: implementation incomplete (has polynomial part)                                                                                                                                                

Mientras AXIOM regresa

(1) -> integrate(((-a+exp(2*x^(1/2))*x)*x^(-3/2)*(1+x^(1/2))*(a^2+2*a*exp(2*x^(1/2))*x+c*exp(2*x^(1/2))*x+exp(4*x^(1/2))*x^2)^(1/2))/(exp(x^(1/2))*(a+exp(2*x^(1/2))*x)),x)
                                                                                                        
   >> Error detected within library code:
   integrate: implementation incomplete (constant residues)                                                                                                                                             

[1] Miller, B. (2012). “Sobre la integración de funciones elementales: cálculo de la parte logarítmica”. Tesis (Doctorado) Texas Tech University, Departamento de Matemáticas y Estadística.

Fricas, un clon de código abierto de Axiom, implementa una parte considerable de Risch, consulte http://fricas-wiki.math.uni.wroc.pl/RischImplementationStatus

Fricas también está disponible como paquete opcional del sistema de código abierto SageMath.

Editar: así es como va en SageMath con Fricas como backend.


sage: r=integrate((29*x^2+18*x-3)/(x^6+4*x^5+6*x^4-12*x^3+33*x^2-16*x)^(1/2),x,algorithm="fricas")                                                                                                                                     
sage: r                                                                                                                                                                                                                                
log(x^29 + 40*x^28 + 776*x^27 + 9648*x^26 + 85820*x^25 + 578480*x^24 + 3058536*x^23 + 12979632*x^22 + 45004902*x^21 + 129708992*x^20 + 317208072*x^19 + 675607056*x^18 + 1288213884*x^17 + 2238714832*x^16 + 3548250712*x^15 + 5097069328*x^14 + 6677210721*x^13 + 8106250392*x^12 + 9056612528*x^11 + 8991685504*x^10 + 7944578304*x^9 + 6614046720*x^8 + 4834279424*x^7 + 2374631424*x^6 + 916848640*x^5 + 638582784*x^4 - 279969792*x^3 - 528482304*x^2 + (x^26 + 38*x^25 + 699*x^24 + 8220*x^23 + 68953*x^22 + 436794*x^21 + 2161755*x^20 + 8550024*x^19 + 27506475*x^18 + 73265978*x^17 + 165196041*x^16 + 324386076*x^15 + 570906027*x^14 + 914354726*x^13 + 1326830817*x^12 + 1731692416*x^11 + 2055647184*x^10 + 2257532160*x^9 + 2246693120*x^8 + 1939619840*x^7 + 1494073344*x^6 + 1097859072*x^5 + 640024576*x^4 + 207618048*x^3 + 95420416*x^2 + 50331648*x - 50331648)*sqrt(x^6 + 4*x^5 + 6*x^4 - 12*x^3 + 33*x^2 - 16*x) + 150994944*x - 134217728)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *