问题标签 [scipy-optimize]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4010 浏览

python - curve_fit 中的多个变量,sigma 的形状不正确?

我有一个用于多个变量的曲线拟合函数。我遇到了“sigma 的形状不正确”的问题。我尝试了以下代码。谁能解释我为什么会收到这个错误?这里 x 和 y 是我的自变量, p,q,r 是我想要拟合的参数

当我运行它时,我会出现以下错误

0 投票
1 回答
83 浏览

python - 如何区分 minimum_squares() 函数中的关键字参数?

我有四个输入变量的函数,我试图使用 Levenburg-Marquardt 优化方法最小化。先前使用前向差分近似计算 Hessian/Gradient 的结果不够准确,因此我想将 Hessian/Gradient 作为可调用参数添加到 least_squares() 方法。这是我尝试过的——

使用 Sympy,我计算了梯度和 Hessian 使用

其中f是梯度和 hessian 函数的附加参数。在我的leastsq函数调用中(我的目标函数只有一个输入),

result = leastsq(obj_fun, x0=np.random.uniform(size=(4,)), Dfun=grad_func, args=(f,))

我运行这个,我不断收到这个错误

TypeError: obj_fun() takes 1 positional argument but 2 were given

所以,我尝试了least_squares()method='lm'参数的函数,当我将 Hessian 作为传递时,

result = least_squares(obj_fun, x0=np.random.uniform(size=(4,), method='lm', jac=hess_matr_func, args=(f,))

我仍然得到同样的错误。我如何将参数传递*args给 Gradient/Hessian 可调用对象?我尝试使用functools.partial围绕可调用函数创建一个包装器,即使这样也无济于事。非常感谢您的帮助!

0 投票
2 回答
573 浏览

python - 如何使用curve_fit为两个自变量获取优化参数?

我想对两个独立的参数x和进行曲线拟合y。我想优化我的参数a和。我尝试在 scipy 中使用 curve_fit 优化我的参数。但是我的参数没有得到优化。我使用了以下代码bc

我得到以下结果

我没有得到优化的a,bc.

0 投票
1 回答
99 浏览

python - scipy中的多个约束

我需要在 scipy 中使用多个约束进行优化:

我尝试通过循环生成它,但 cons0 或 cons1 或 cons3 被视为字符串并且我得到错误。

0 投票
1 回答
353 浏览

python - Python 错误:无法安装 scipy.optimize.brentq

我正在使用名为PRECESSION的 Python 模块来模拟二元黑洞的灵感。正如链接文件中所述,使用“Sb_limits”功能需要使用scipy.optimize.brentq

但是,由于某些我不明白的原因,我的系统似乎无法下载/安装 scipy.optimize.brentq 。具体来说,如附图所示,我在 cmd 提示符中收到以下错误:

错误:找不到满足 scipy.optimize.brentq 要求的版本(来自版本:无)

错误:没有为 scipy.optimize.brentq 找到匹配的分布

在此处输入图像描述 似乎没有人已经发布过这个问题,尽管我可能缺少一些基本的东西。我不确定我是否可以使用此处的源代码自己创建scipy.optimize.brentq模块(似乎我太努力了!)??

我的问题似乎比“你需要安装 scipy”更深............因为我已经安装了它并且 brentq 无处可寻: 在此处输入图像描述

0 投票
1 回答
553 浏览

python - scipy.optimize.minimum with 'trust-constr' 给出不同初始值的不同最优值

我正在使用 scipy 库来解决优化问题。我的目标函数是 SVR 回归量。不同的初始值给出不同的最优值。为什么?

如果我将 x0 更改为不同的值,我的最佳值是不同的。为什么??

0 投票
1 回答
220 浏览

python-3.x - 嵌入到 def 中时,参数不会传递到我的 scipy.optimize.minimize 函数中。他们不断返回“未定义”

感谢您的关注,我已经听取了建议并尽可能简化了代码以隔离故障。

最小化中使用的函数找不到我的频率或幅度断点。它似乎与将 getpaz() def 及其最小化函数嵌入另一个定义中有关。当我在主循环中使用最小化代码运行 Getpaz() 函数时,它会运行。当我创建定义(例如通道处理 def)时,它失败了。

应该运行以下代码,在 Jupyter Notebooks 以及在命令行中编译的 python 3.x 中重复该问题。问题是,最小化函数找不到我引用的变量“响应”或“频率”,即使它们明显存在。我不明白为什么最小化功能会失败。这个精彩的节目让我倒退了三个星期。我无计可施,试图弄清楚。

如果我采用定义 paztest_fixed() 并将其代码剥离并将其放入可执行循环中,它就会运行。有没有人了解导致它失败的原因以及我如何解决它?我真的需要一个定义,以便我可以为整个历史地震台站目录处理多个通道!

0 投票
1 回答
532 浏览

python-3.x - 回调函数在 scipy.optimize.minimize 类中引发错误

我正在使用 scipy.minimize 来解决优化问题。

这是我的代码

运行此程序时出现错误。

错误在于回调函数,它说

我哪里错了?

0 投票
1 回答
3170 浏览

python - Scipy.optimize.minimize 没有给出最小值,即使它看到了最小值

我正在使用 scipy.optimize.minimize 为我的目标函数找到最佳参数。

我的代码:

给出初始值后,我得到的最小值(res.fun)是-7.1。我正在创建一个列表(energy_history)来查看它是如何达到这个值的。我在该列表中看到一些小于 -7.1 的值,但为什么 -7.1 会作为最小值返回。

图片

目标函数多次达到 -21 的值,但为什么仍然返回 -7 作为最小值?

0 投票
1 回答
425 浏览

python - scipy.optimize.minimize results differ between Python 2.x-3.x

Basically, I have a nonlinear constrained problem using the SLSQP solver in scipy.optimize.minimize. Unfortunately, the problem (same file, same code) is returning different results on different computers (one Windows, one Linux). The scipy version is the same (1.2.1). Here is my code:

The Windows machine yields:

I believe these results are locally optimal and I can verify the same output with fmincon in MATLAB.

However, the Linux machine yields:

Clearly, the optimizer is getting stuck in the Linux computer. What could be causing this? My only guess is that there's some precision within numpy that's throwing off the numbers.