python - 选择要求解的变量(使用 fsolve 查找 Python 根)

标签 python optimization scipy equation-solving

Scipy 提供了许多有用的根查找工具,特别是 fsolve 。通常,程序具有以下形式:

def eqn(x, a, b):
    return x + 2*a - b**2

fsolve(eqn, x0=0.5, args = (a,b))

在给定一些参数 ab 的情况下,将找到 eqn(x) = 0 的根。

但是,如果我有一个问题想要解决 a 变量,并在 xb 中给出函数参数,该怎么办?当然,我可以将初始方程改写为

def eqn(a, x, b)

但这似乎冗长且低效。相反,有没有一种方法可以简单地设置 fsolve (或其他根查找算法)以允许我选择要求解的变量?

最佳答案

您可以使用 lambda functions 以更简洁的方式表达您的第一个想法:

fsolve(lambda a,x,b: eqn(x, a, b), x0=0.5, args=(x,b))

也就是说,重新排列 lambda 包装器中的参数,这样您就不必编写单独的 def eqn2(a,x,b)

关于python - 选择要求解的变量(使用 fsolve 查找 Python 根),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37052253/

相关文章:

MySQL:为什么在优化表后复制到 tmp 表会更快

python - FFT 低通滤波器

python - 厄密矩阵的 logm 函数返回非厄密矩阵

python - Dataproc 配置单元运算符(operator)未运行存储在存储桶中的 hql 文件

python - 从哪里开始对两列(标签、文本)数据源进行文本分类?

python - 将点积应用于 3D 数组中的所有列

Mysql innodb : Choosing index type for 'greater than >=' select

python -/socket.io/* 404 未找到 flask

c# - 测量代码使用的内存

python - 为真实数据的分布生成随机数?