wolfram sistemas sistema segundo orden online mathematica gratis ecuaciones diferenciales buscador 2x2 algorithm wolfram-mathematica artificial-intelligence algebra

algorithm - sistemas - ¿Cómo un sistema como Wolfram Alpha o Mathematica resuelve ecuaciones?



wolfram alpha ecuaciones diferenciales (2)

Estoy construyendo un lenguaje de programación basado en la web parcialmente inspirado por Prolog y Haskell (no te rías).

Ya tiene bastante funcionalidad, puede consultar el prototipo en http://www.lastcalc.com/ . Puedes ver la fuente here y leer sobre la arquitectura here . Recuerda que es un prototipo.

Actualmente, LastCalc no puede simplificar expresiones ni resolver ecuaciones. En lugar de codificar esto en Java, me gustaría mejorar el lenguaje fundamental de modo que pueda extenderse para hacer estas cosas usando nada más que el lenguaje en sí (como con Prolog). A diferencia de Prolog, LastCalc tiene un algoritmo de búsqueda más potente, Prolog es la "búsqueda en profundidad con retroceso". LastCalc utiliza actualmente una mejor búsqueda heurística.

Antes de profundizar en esto, quiero entender más acerca de cómo otros sistemas resuelven este problema, particularmente Mathematica / Wolfram Alpha.

Asumo que la idea, al menos en el caso general, es que le da al sistema un conjunto de reglas para la manipulación de ecuaciones (como a*(b+c) = a*b + a+c ) especifique el objetivo (por ejemplo, aislar la variable x) y luego soltarla.

Entonces, mis preguntas son:

  • ¿Mi suposición es correcta?
  • ¿Cuál es la estrategia de búsqueda para aplicar reglas? p.ej. profundidad primero, amplitud primero, profundidad primero con profundización iterativa, ¿algún tipo de mejor primero?
  • Si es el "mejor primero", ¿qué heurísticas se utilizan para determinar si es probable que una aplicación de regla en particular nos haya acercado más a nuestro objetivo?

También agradecería cualquier otro consejo (a excepción de "renunciar": regularmente ignoro ese consejo y hacerlo me ha servido bien).


Me ocupé de tales preguntas hace algún tiempo. Luego encontré este documento sobre la simplificación de expresiones. Se titula Simplificación de expresiones basada en reglas y muestra algunos detalles sobre la simplificación en Mupad, que luego se convirtió en parte de Matlab.

Según este documento, su suposición es correcta. Hay un conjunto de reglas para la manipulación de expresiones. Se utiliza una métrica de calidad heurística como función de destino para la simplificación.


Wolfram alpha es desarrollado por Mathematica.

  • Mathematica es la creación de Stephen Wolphram. Mathematica 1.0 se lanzó en 1988. Mathematica se parece mucho a Maple y ambos dependen en gran medida de bibliotecas de software más antiguas como LaPack.
  • Las bibliotecas que estos programas son, basadas en, y con frecuencia simplemente, software heredado. Han estado alrededor, y modificados, durante mucho tiempo.

Si desea conocer los programas en segundo plano que se ejecutan, sagemath es una alternativa gratuita de código abierto; Usted podría aplicar ingeniería inversa a las soluciones a sus preguntas:

SageMath.org