maxima - wxMaxima:如何定义函数的反函数?

标签 maxima wxmaxima

我知道我们可以使用 solve e.g.

找到函数的反函数
f(x):= a*x+b$
[invf]:solve(f=f(x),x);

但是,我一直无法弄清楚如何在新函数的定义中使用它。我尝试了一些事情,例如:

invF(f):=rhs(invf);

rhs(invf) 中的 f 未被识别为函数 invF(f) 的参数。有什么方法可以定义逆,还是可以简单地使用这个表达式并使用类似 subst 的东西来计算它?

最佳答案

:= 的右侧未被求值(甚至未被简化),因此函数体中的任何类似 rhs(invf) 的内容实际上都没有计算结果直到函数被调用。这里需要的是确保在构造函数时将结果粘贴到函数体中。

至少有两种方法可以做到这一点。更通用的方法是用define而不是:=来定义函数。然后在定义函数时评估主体。例如。 定义(invF(x), rhs(inv));

另一种只在顶层工作(即不在任何函数内部)的方法是使用所谓的引号-引号运算符,'',它具有内插的效果将某物的当前值输入到输入中,就好像它是输入的一样。例如invF(x) := ''(rhs(inv));.

Quote-quote 在表达式被解析时起作用,所以如果它出现在函数中可能会令人惊讶。例如。 y: 123; f(x) := block([y: 2*x], ''y); 然后 f(4) 返回 123,而不是 8。也就是说,我找到了引用-引用要方便且有用——只需将其限制在顶级内容即可。

关于maxima - wxMaxima:如何定义函数的反函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65442134/

相关文章:

debugging - Debug模式: MACDOC;TRDEBG USAGE

plot - Maxima 循环绘图,必须关闭一个绘图才能看到下一个绘图

maxima - 使用现有矩阵在 MAXIMA 中生成矩阵

maxima - 如何使用Maxima找到函数的最大值和最小值?

function - Maxima:强制函数仅使用局部变量运行?/如何避免局部操作影响全局变量?

maxima - 将函数应用于 Maxima 中的命名参数列表

math - 如何在函数定义中使用 Maxima 的差异?

maxima - 将值列表分配给变量列表

Maxima:有什么方法可以使在 main 函数中定义的函数成为局部函数,类似于局部变量?