我正在使用 sympy 来象征性地解决一个非常简单的方程式,但我得到的变量解是一个空矩阵!这是代码:
from sympy import *
x = Symbol('x')
l_x = Symbol('l_x')
x_min = -6
x_max = 6
precision_x = 10**8
solve(((x_max-x_min)/((2**l_x)-1))/precision_x, l_x)
print(l_x)
我尝试了一些其他简单的方程式,例如:
solve(x**2 = 4, x)
后者完美无缺;我只是不明白为什么前一个不起作用!
答案 0 :(得分:5)
给予求解的表达式假设的rhs为0
,l_x
的值不能满足。尝试这样的事情:
from sympy import *
q, r, s, t = symbols("q r s t")
eq = (q-r)/(2**s-1)/t
solve(eq-1,s)
输出结果为:
[log((q - r + t)/t)/log(2)]
要显式创建一个非零rhs的方程式对象,您可以执行以下操作:
solve(Eq(eq,1),s)
答案 1 :(得分:5)
很简单:你的等式没有结果。
等式为12/((2**l_x)-1))/1e8 = 0
,没有解决方案。
查看y = 12/((2**x)-1))/1e8
的外观(copied from wolframalpha):
要进行比较,请尝试解决,例如12/((2**l_x)-1))/1e8 = 1
代替:
>>> solve(((x_max-x_min)/((2**l_x)-1))/precision_x - 1, l_x)
[(-log(25000000) + log(25000003))/log(2)]
像魅力一样!