我是Prolog的新手,不得不为微积分课程编写一个符号化的差异化工具。我让它以这样的方式工作:
?- diff(ln(x^3),D).
D = 1*3*x^(3-1) / x^3 ;
和
?- diff(x*x*x*x,D).
D = x*x*x*1+x*(x*x*1+x*(x*1+x*1)).
但是,我希望将其作为:
D = 3x^(-2) / x^3;
和
D = 4x^(3);
是否有简单的方法来简化这些数学表达式。谢谢!
答案 0 :(得分:0)
您可以为此使用goal_expansion
/ 2(在编译时):
goal_expansion(+, -).
关注Prolog - simplify derivative
示例:
goal_expansion(X,Y):-simplify(X,Y).