在sage/maxima solve中声明一个变量为*非*整数



我试图象征性地解决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支持这个特定的假设(我以前没有见过)。不幸的是,我现在不能尝试,祝你好运!

最新更新