首页 文章

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

提问于
浏览
3

我用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)

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

solve(x**2 = 4, x)

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

2 回答

  • 5

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

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

    看看 y = 12/((2**x)-1))/1e8 的样子(copied from wolframalpha%2F1e8)):

    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)]
    

    奇迹般有效!

  • 5

    给予求解的表达式假设rhs为 0l_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)
    

相关问题