Cómo crear un inicio de sistema de álgebra computacional

Maxima es el padre de todos los softwares de CAS (lea su historia). Aquellos que han usado muchos CAS saben que todos son más o menos iguales, solo que las bibliotecas varían. Lo que uno puede hacer con un CAS, puede hacerlo con otros con un esfuerzo variable.

Lea y explore el código de Maxima y sabrá que se necesita para escribir un CAS, incluso después de 35 años tiene errores.

Una vez que su plataforma esté lista para el cálculo simbólico, debe agregarle matemáticas. Ahora, tomemos un ejemplo de cálculo de límites: el algoritmo más utilizado para ello es el algoritmo de Gruntz. Adivina qué … es la tesis doctoral de Gruntz y se considera un muy buen trabajo. Ahora cuánto tiempo se necesitaría para leer / comprender su trabajo e implementarlo. Entonces, después de meses de trabajo, puede proporcionar solo una característica que no es lo suficientemente buena en comparación con el trabajo existente en otro CAS.

Digamos que quiere trabajar en desigualdades, entonces necesita el algoritmo de descomposición cilíndrica que Maple y Mathematica tienen pero que aún no tienen en Matlab (que yo sepa). Esto requiere una comprensión profunda de la geometría algebraica.

Ahora piense en ecuaciones diferenciales, ecuaciones integrales, otros elementos de cálculo, etc.

Lo que ves hoy como Mathematica, Maple, Matlab comenzó hace más de 30 años y aún la mayoría de estos no pueden hacer nada excepcional en comparación entre sí.

Si está interesado en CAS, use cualquier CAS de código abierto existente y trabaje para encontrar más algoritmos de decisión como CAD mencionados anteriormente. Lea los teoremas de incompletitud de Godel y vea qué tan cerca puede llegar en términos de cálculo.

Además, el mundo no espera su CAS tanto como podría pensar. SymbolArc: Windows Apps en Microsoft Store es mi aplicación en Windows Store que diferencia paso a paso para cualquier expresión. En más de un año, solo pudo obtener un poco más de 600 descargas :(. Elegí no expandirlo más.

Puede esperar ganar más escribiendo bibliotecas en lugar de un CAS completo.

Este es un espacio bien establecido, con programas que han existido durante décadas. Los ingenieros usan MATLAB (u Octave, la versión de código abierto). Los matemáticos usan Maple o Mathematica. Los estadísticos usan R o SAS o Stata. La primera pregunta que debe responder es por qué cree que puede traer algo al mercado que sea mejor que estas herramientas existentes (que las personas ya saben cómo usar, han invertido tiempo en aprender y tienen toneladas de código heredado depurado, y qué profesores continuar usando y enseñando). Y no puede ser solo un poco mejor. Tiene que ser mucho mejor que la gente le pague dinero mientras se ven obligados a aprender un nuevo sistema.

Si puede responder a esa pregunta, todos los demás detalles que haya preguntado serán triviales.

Quiero enfatizar lo que dijo Matthew y que parecías pasar por alto. Necesitas un modelo de negocio.

Vas a esto completamente al revés. Digo esto con gran empatía; Hice lo mismo con un negocio yo mismo. Usted ha decidido qué producto quiere comercializar y está preguntando, esencialmente, cómo rentabilizarlo. Eso está completamente mal y es una receta para un fracaso rápido.

El enfoque correcto es primero encontrar un problema que exista, luego tratar de resolverlo, luego tratar de comercializar su solución. En este momento está preguntando cómo comercializar una solución que no existe para un problema que no existe. Como dije, completamente al revés.

Le recomiendo que lea un libro como algo de la serie “Lean”.

Veo que este es el enfoque de un ingeniero para comercializar algo. Invente algo en el garaje como Gyro Gearloose, luego intente comercializarlo si es todo.
Muchos recursos brindan valiosos consejos sobre cómo iniciar una empresa.
Por ejemplo, esta cuadrícula naranja simple ofrece todo lo que necesita saber antes de comenzar una empresa.

Y si quisiera construir un CAS, entonces elegiría un lenguaje con paradigmas de programación que estén más cerca del dominio del problema: algo que permita o soporte la computación simbólica.

La programación de sistemas de álgebra requiere mucho tiempo y esfuerzo. Todos ya te han advertido acerca de desarrollar primero y comercializar más tarde. Por lo tanto, trataré de darle algunos consejos de programación (o mejor, algo que tal vez la gente usaría).
Uno de los principales usos de un CAS es encontrar soluciones simbólicas a ecuaciones diferenciales. Pero, las rutinas en ese campo no siempre obtienen las respuestas correctas. Tal vez deberías considerar eso como tu ventaja.

El campo ya está muy cubierto. Todas las soluciones comerciales que existen han llevado años, incluso para el desarrollo de equipos de tamaño decente. A menos que realmente aborde el problema desde un ángulo diferente, no hay forma de beneficiarse de esto.

Como muchas personas sugieren, encuentre una solución revolucionaria en ese dominio y véndala. Experimente con diferentes programas e investigue cómo puede mejorar en gran medida los emocionantes hasta el momento eureka.

Tengo la misma aspiración y aprendí mucho de las respuestas publicadas, gracias por preguntar.

Parece que necesitas un modelo de negocio. ¿Qué hará su sistema que Wolfram no hace? Que Sympy no? Ese sabio no? Que Maxima no? Tenga en cuenta que los últimos tres son gratuitos, y Sympy y Sage en particular son extensiones de Python, y Python es la dirección en la que avanza la informática interactiva a nivel de investigación en matemáticas / física.