在python中求解一个简单的符号方程

Ant*_*nio 3 python sympy

我用syy来象征性地解决一个非常简单的方程,但我得到的变量解是一个空矩阵!这是代码:

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)
Run Code Online (Sandbox Code Playgroud)

我尝试了一些其他简单的方程式,例如:

solve(x**2 = 4, x)
Run Code Online (Sandbox Code Playgroud)

后者完美地运作; 我只是不明白为什么前一个不起作用!

ptb*_*ptb 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)
Run Code Online (Sandbox Code Playgroud)

输出是:

[log((q - r + t)/t)/log(2)]
Run Code Online (Sandbox Code Playgroud)

要显式创建一个非零rhs的方程对象,您可以执行以下操作:

solve(Eq(eq,1),s)
Run Code Online (Sandbox Code Playgroud)


zvo*_*one 5

这很简单:你的等式没有结果.

等式是12/((2**l_x)-1))/1e8 = 0没有解决方案的.

看看是什么y = 12/((2**x)-1))/1e8样的(从wolframalpha复制):

y = 12 /((2**x)-1))/ 1e8

要进行比较,请尝试解决,例如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)]
Run Code Online (Sandbox Code Playgroud)

奇迹般有效!