【问题标题】:How to get the closed form form a nonlinear complicated equation from python?如何从python中得到一个非线性复杂方程的封闭形式?
【发布时间】:2019-09-18 01:51:14
【问题描述】:

我正在从以下非线性方程中寻找 x 的封闭形式:

1/{e^[a*(d-x)]+1}+ln(1/x-1)*b=c

python 是否使用代数而不是数值数据来求解非线性方程?或者是否有任何有用且有效的工具来解决这个问题?

【问题讨论】:

  • 嗨,欢迎来到 stackoverflow。很高兴看到您在 python 代码中尝试了什么以及您正在使用哪些包。让人们帮助您的最佳方式是提供一个最低限度的工作示例stackoverflow.com/help/minimal-reproducible-example
  • 我不希望这有一个封闭的形式解决方案。有理由认为会有一个吗?
  • 实际上,我不确定。但是 x 的封闭形式是我后续研究的一个关键点,我想得到这个。我认为它存在的原因是每个数字设置都有一个唯一的 x。

标签: python sympy symbolic-math


【解决方案1】:

您知道用于方程代数解的Sympy 模块吗?不幸的是,我不确定它是否可以解决您自己的方程式,但如果以后可以帮助您:

In [1]: from sympy import exp, log, solve
In [2]: from sympy.abc import a,b,c,d,x
In [3]: solve( 1/(exp(a*(d-x))+1) + log(1/x-1)*b - c, x)

这里没有找到任何解决方案(看下面的最后一行):

----------------------------------- ---------------------------- NotImplementedError Traceback(最近调用 最后)在() ----> 1 次求解(1/(exp(a*(d-x))+1) + log(1/x-1)*b-c, x)

/usr/lib/python3/dist-packages/sympy/solvers/solvers.py 在solve(f, *符号,**标志)1063 ######################################### ################################ 1064 if bare_f: -> 1065 解决方案 = _solve(f[0], *symbols, **flags) 1066 else: 1067 解决方案 = _solve_system(f, symbols, **flags)

/usr/lib/python3/dist-packages/sympy/solvers/solvers.py in _solve(f, *symbols, **flags) 1632 1633 如果结果为 False: -> 1634 raise NotImplementedError('\n'.join([msg, not_impl_msg % f])) 1635 1636 if flags.get('simplify', True):

NotImplementedError: 多个生成器 [exp(-ax), log(-1 + 1/x)] 否 算法被实现来解决方程 blog(-1 + 1/x) - c + 1/(exp(a*(d - x)) + 1)

当然,您可以期望像 Mathematica 这样的东西比 Sympy 更强大,但实际上:

Wolfram Language 12.0.0 Engine for Linux x86 (64-bit)
Copyright 1988-2019 Wolfram Research, Inc.

In[1]:= Solve[ 1/(Exp[a*(d-x)]+1) + Log[1/x - 1]*b == c, x]                     

Solve::nsmet: This system cannot be solved with the methods available to Solve.

                    1                     1
Out[1]= Solve[-------------- + b Log[-1 + -] == c, x]
                   a (d - x)              x
              1 + E

【讨论】:

    猜你喜欢
    • 2014-03-17
    • 2015-01-28
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多