我试图象征性地解决x的一个简单方程:
solve(x^K + d == R, x)
我声明这些变量和假设:
var('K, d, R')
assume(K>0)
assume(K, 'real')
assume(R>0)
assume(R<1)
assume(d<R)
assumptions()
︡> [K > 0, K is real, R > 0, R < 1, d < R]
然而,当我运行解决方案时,我得到以下错误:
第1-1行错误
回溯(最近一次调用):
文件"/项目/圣人/圣人- 7.3/地方/lib/python2.7/网站/smc_sagews/sage_server.py",第957行,执行中执行编译(block+'n', ", 'single')在命名空间,locals
…
文件"/项目/圣人/圣人- 7.3/地方/lib/python2.7/网站/圣人/接口/interface.py",第671行,init提高TypeError (x)
TypeError:计算失败,因为Maxima请求额外的约束;在求值之前使用'assume'命令可能会有帮助(合法语法的示例是'assume(K>0)',详细信息请参见
assume?
)K是整数吗?
显然,maxima问的是K是否为整数?但我明确地宣布它是"真实的"!我怎样才能写出最大值它不应该假设K是整数?
我只是期待(R-d)^(1/K)
或exp(log(R-d)/K)
作为答案。
Sage和Maxima中的假设框架都相当弱,尽管在这种情况下这无关紧要,因为整数是实数,对吗?
然而,您可能想尝试assume(K,'noninteger')
,因为显然Maxima支持这个特定的假设(我以前没有见过)。不幸的是,我现在不能尝试,祝你好运!