我使用JavaScript编写了一个HTML代码来区分单个变量函数。
我的代码是here。我用Mathjax打印输出。但产生的产出并未简化。例如,sin(x)/cos(x)
的导数生成为
((((cos(x))*(cos(x)))-((sin(x))*(-(sin(x)))))/((cos(x))^2))
可以简化为
(sin(x)^2+cos(x)^2)/cos(x)^2
我用Dijkstra的调车码算法构造了表达式树。然后递归地构造了导数的表达式树。但我对简化有问题。
任何人都可以帮助简化输出的产生吗?我的知识不仅仅是基本的数据结构。
答案 0 :(得分:1)
我只能想到代数规则的实现。
1.创建简化方程列表
像:
cos^2(x)+sin^2(x)=1
...
这很容易
2.创建替代方法列表
3.通过等式
4.对于等式
的所有表示,得出第3点