maxima - wxMaxima:如何定义函数的逆?
问题描述
我知道我们可以使用solve
例如找到函数的逆
f(x):= a*x+b$
[invf]:solve(f=f(x),x);
但是,我无法弄清楚如何在新函数的定义中使用它。我尝试了一些事情,例如:
invF(f):=rhs(invf);
但f
inrhs(invf)
不被识别为函数的参数invF(f)
。有什么方法可以定义一个逆,还是可以简单地使用这个表达式并使用类似的东西subst
来评估它?
解决方案
的右侧:=
没有被评估(甚至被简化),所以rhs(invf)
在函数被调用之前,函数体中的任何东西实际上都不会计算结果。这里需要确保在构造函数时将结果粘贴到函数体中。
至少有两种方法可以做到这一点。更一般的方法是使用define
而不是定义函数:=
。然后在定义函数时评估主体。例如define(invF(x), rhs(inv));
。
仅在顶层(即,不在任何函数内部)起作用的另一种方法是使用所谓的引号 - 引号运算符,''
它具有将某些东西的当前值插入到输入中的效果,就好像它被输入。例如invF(x) := ''(rhs(inv));
。
Quote-quote在解析表达式时起作用,因此如果它出现在函数中可能会令人惊讶。例如,y: 123; f(x) := block([y: 2*x], ''y);
然后f(4)
返回 123,而不是 8。也就是说,我发现 quote-quote 方便且有用——只需将其限制为顶级内容。
推荐阅读
- flutter - 如何在 Flutter 中缓存 API 调用的响应?
- r - 如何读取 .tar.xz 文件?
- php - 如何本地化 Woocommerce 权重
- laravel - 我希望折线图在图表 js 中从上午 12:00 开始并在晚上 11:59 结束
- extjs - 无法从 ViewModel 中的数据访问对象
- amazon-web-services - 通过 python 代码启用 s3 存储桶日志记录
- java - 回溯算法 | 数组的子集:数组如何删除元素?
- java - Tomcat 9.0:安装后部署 Web 应用程序时出错
- android - React 本机 android 应用程序构建未在 Mac 上运行
- python - 如何使用pdfminer python从pdf中提取表格文本