Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python解决非线性(跨边界)方程_Python_Solver_Nonlinear Functions_Equations - Fatal编程技术网

Python解决非线性(跨边界)方程

Python解决非线性(跨边界)方程,python,solver,nonlinear-functions,equations,Python,Solver,Nonlinear Functions,Equations,我有一个方程“a*x+logx-b=0,(a和b是常数)”,我想解x。问题是我有很多常数a(相应地有很多b)。如何使用python求解这个方程?您可以查看以下内容 它有专门为这类方程设计的工具。酷-今天我学习了Python的数值解算器 from math import log from scipy.optimize import brentq def f(x, a, b): return a * x + log(x) - b for a in range(1,5): f

我有一个方程“a*x+logx-b=0,(a和b是常数)”,我想解x。问题是我有很多常数a(相应地有很多b)。如何使用python求解这个方程?

您可以查看以下内容


它有专门为这类方程设计的工具。

酷-今天我学习了Python的数值解算器

from math import log
from scipy.optimize import brentq

def f(x, a, b):

    return a * x + log(x) - b


for a in range(1,5):
    for b in range(1,5):
        result = brentq(lambda x:f(x, a, b), 1e-10, 20)
        print a, b, result
brentq
提供函数穿过x轴的估计值。你需要给它两分,一分肯定是消极的,一分肯定是积极的。对于负值,选择小于exp(-B)的数字,其中B是
B
的最大值。对于正点,选择大于B的数字

如果无法预测
b
值的范围,可以使用解算器。这可能会产生一个解决方案,但这并不能保证

from scipy.optimize import fsolve


for a in range(1,5):
    for b in range(1,5):
        result = fsolve(f, 1, (a,b))
        print a, b, result

这是一个很难解决的问题-请参阅,了解求解跨国界方程的一般方法python中求解跨国界方程的最终数值方法在这里,我们不要太匆忙地结束此问题。。。这实际上是一个有趣的问题,一个一般性的评论,不是专门针对任何人的:根据对数x轴绘制
-log(x)
a*x-b
,我们可以看到
a只有一个真正的解!