在使用 Wolfram Alpha 和 MATLAB 的符号数学工具箱解决积分、常微分方程和偏微分方程后,我好奇如何实现一个解析(封闭形式)积分(或非平凡方程)求解器。
例如,如何编程解析地求解以下积分?
在使用 Wolfram Alpha 和 MATLAB 的符号数学工具箱解决积分、常微分方程和偏微分方程后,我好奇如何实现一个解析(封闭形式)积分(或非平凡方程)求解器。
例如,如何编程解析地求解以下积分?
积分是通过(非常复杂的)模式匹配来解决的。如果被积函数看起来像某个数的平方根,那么积分就是...; 如果看起来像有理函数,那么积分就是...; 如果是指数函数,那么就是....等等等。至少有两个主要困难。一个是识别被积函数是否与某种模式相匹配,另一个是一旦找到模式匹配就构建解决方案。上面引用的由Lichtblau撰写的论文是关于第二部分的。至于表达式的模式匹配,请尝试搜索“模式匹配”或“统一”。恰好,模式匹配最自然地用Lisp表达,但也可以用其他编程语言处理,通常是通过重新发明Lisp的子集来实现。