Python`symphy`模块在表达式中求解乘法方程
下面是一个简单的Python`symphy`模块在表达式中求解乘法方程,python,sympy,equation,Python,Sympy,Equation,下面是一个简单的sympy.solve测试代码: #!/usr/bin/python from sympy import * x = Symbol('x', real=True) #expr = sympify('exp(1 - 10*x) - 15') expr = exp(1 - x) - 15 print "Expressiong:", expr out = solve(expr) for item in out: print "Answer:", item expr =
sympy.solve测试代码:
#!/usr/bin/python
from sympy import *
x = Symbol('x', real=True)
#expr = sympify('exp(1 - 10*x) - 15')
expr = exp(1 - x) - 15
print "Expressiong:", expr
out = solve(expr)
for item in out:
print "Answer:", item
expr = exp(1 - 10*x) - 15
print expr
out = solve(expr)
for item in out:
print "Answer:", item
结果如下:
Expressiong: exp(-x + 1) - 15
Answer: -log(15) + 1
exp(-10*x + 1) - 15
Answer: log(15**(9/10)*exp(1/10)/15)
方程exp(1-x)=15
已正确求解(x=-15log(15)+1
)
但是当我将x
更改为10*x
时,结果很奇怪
如果我在没有real=True
的情况下初始化符号x
,为什么会有很多复杂的答案
即使在初始化符号x
时使用real=True
,答案仍然不正确。与第一个方程相比,结果应该是-3/2*log(15)+1/10
。我把等式写错了吗
提前感谢。我还可以确认,方程式exp(1-10*x)-15==0的解算
输出看起来非常复杂。我建议单变量方程首先考虑<代码> Surviv.SoviSeS< <代码>。对于本例,它给出了以下格式良好的解决方案
import sympy as sp
sp.init_printing(pretty_print=True)
x = sp.symbols('x')
sp.solveset(sp.exp(1 - 10*x) - 15,x)
请注意,由于指数函数是多值函数(在复数域中),因此存在复数根。如果要将解决方案的域限制为reals,solveset
具有方便的选项domain
sp.solveset(sp.exp(1 - 10*x) - 15,x, domain = sp.S.Reals)