在下面的 Maxima session 中,为什么f(1) 不为 0?
(%i1) eq: 2 * x + 1 = 3;
(%o1) 2 x + 1 = 3
(%i2) f(x) := lhs(eq) - rhs(eq);
(%o2) f(x) := lhs(eq) - rhs(eq)
(%i3) f(1);
(%o3) 2 x - 2
最佳答案
此处maxima中函数调用的过程,将函数中的x绑定(bind)为1 定义,lhs(eq)-rhs(eq)。其中没有 x,因此绑定(bind)不会执行任何操作。 接下来,lhs(eq) 被评估为 2*x+1。 rhs(eq) 被评估为 3。等等
你总是想要相同的方程eq吗?也许你想做
定义(f(x),lhs(eq)-rhs(eq));
要检查定义是什么,请尝试 研磨(f);
如果你想改变方程,也许是这样的
g(val, eq) := subst(val,x, lhs(eq)-rhs(eq)) ; 就可以了。关于maxima - 如何使用 lhs 和 rhs 定义函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18343054/