问题标签 [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 回答
1234 浏览

python - SciPy 可以通过 SLSQP 最小化处理多个非线性约束吗?

我正在尝试在约束下找到最佳解决方案,并将 SciPy 最小化与 SLSQP 一起使用。它完美地工作,没有单个约束的问题。一旦我添加了另一个约束,它就会成功完成,但没有达到优化目标。

我认为我的问题在于约束函数定义(约束 2 有点棘手),并决定学习如何正确使用最小化。

我切换到一个简单的第二个约束,但又得到了一个未优化的解决方案。

待优化函数:samples_in_year = 246.5

功能优化输入:

约束:

优化函数

分别使用这些约束中的每一个,它都可以正常工作,我不能让它同时与它们一起工作。我相信,如果我能够解决“更简单”的问题,我将能够优化真正的问题。

每个约束优化的结果都是正确的,两个约束问题的结果是默认使用的权重(初始猜测)

0 投票
0 回答
170 浏览

python - TypeError:输入了不正确的输入参数

我尝试使用 scipy.optimize 库中的 fsolve 函数来求解改变方程参数的非线性方程,但是当我运行代码时,我收到以下错误消息:

TypeError:输入了不正确的输入参数。

我多次查看该程序,但仍然找不到问题。我在互联网上进行了搜索,但没有找到任何文档或遇到相同问题的人。我为函数编写了这段代码:

我写了一个循环,方程的值会发生变化,但我总是在每种情况下找到“h”的值,所以我使用 fsolve:

问题出现在这一行。

PS:我已经尝试使用 args=(),但返回相同的消息。

0 投票
1 回答
546 浏览

python - 打印选择的 scipy.optimize.minimize 方法

这是一个简短的问题,但谷歌每次都指向我找不到答案的文档。

我正在使用 scipy.optimize.minimize。它工作得很好,一切都很好。我可以定义要使用的方法,但即使我没有指定方法,它也可以工作。

有什么方法可以得到输出,使用了哪种方法?我知道结果类,但那里没有提到该方法。

这是一个例子:

我可以将 value 方法设置为类似slsqpor cobyla,但我想看看程序选择了什么。我怎样才能得到这些信息?

0 投票
0 回答
98 浏览

python - 在 scipy.optimize 的全局优化中传递参数

我正在尝试使用 scipy 全局优化来解决优化问题。我正在使用差异进化。

代码

我的目标函数将这三个参数作为输入并给出输出。我只想优化前两个参数。所以我作为参数传递的第三个参数。

当我运行优化器时,我在第一次运行后得到一个错误,它说

我猜这个参数没有被附加到第二次运行的 x 值。

有人可以帮我解决这个问题吗?

0 投票
1 回答
56 浏览

python - 如何优化参数取决于自变量的函数的拟合

我有一些包含三列、xy和的数据b。在这里,b每个值都有关联的x值。(Nb x 总是增加)

也就是说,数据看起来像:

假设此数据适合某个模型y = ax + math.log(b)。我可以通过执行以下操作来计算每个值:

现在说我想优化 f(x,a) 的拟合以a使用scipy.optimise.curve_fit.

我试图这样做:

但这样做会导致错误:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

这是由于 curve_fit 函数将所有 x 数据作为一个数组传递,导致if xData[i] >= x:语句变得不明确。

我想不出办法解决这个问题。我尝试创建 xData 和 bData 的配对列表并将其传递curve_fit给无济于事。

如果我只是硬编码b为一些预先确定的值,这会起作用,所以我相信我curve_fit正确地调用了该函数。欢迎咨询。

0 投票
0 回答
220 浏览

python - Scipy.optimize.minimize 在优化黑盒函数时忽略了我指定的边界

我试图最小化 76 个参数的函数。我希望每个参数值都在 0 到 5 之间。

默认算法 LBFGS 未能找到最优值。

因此,我尝试了 TNC 算法,虽然它实现了良好的目标函数值,但它给我的解决方案却忽略了界限。它的输出似乎没有表明任何失败。

这是 TNC 优化的输出:

0 投票
1 回答
1693 浏览

python - RuntimeWarning:在 scipy.optimize 中遇到的无效值

我在使用 scipy.optimize 时收到以下警告: RuntimeWarning:power遇到无效值 据我了解,这来自 numpy 的 exp 函数,但我无法弄清楚如何解决我的问题

我查找了多种已提出的解决方案,但似乎没有一个适合我的问题,或者我根本不够熟练,无法将它们应用于我的特定问题

我正在尝试将以下数据拟合到修改后的 3 参数 Weibull 函数

模块:

我的数据如下:

拟合函数:

拟合和可视化:

有人可以帮我摆脱这个错误吗?

0 投票
1 回答
52 浏览

python-3.x - 最小化成本函数时带有 scipy.optimize 的 TypeError

我想通过使用 scipy.optimize 优化 W((1×9)matrix) 中的 9 个变量。

但我得到一个像这样的 TypeError

我将“缺点”更改为

然后它工作得很好,我得到了一个结果

我无法找到一个好的解决方案。

0 投票
2 回答
6899 浏览

python - 优化最小化与 SLSQP 不兼容的不等式约束

我正在尝试使用 Scipy 的 Optimize 运行一些曲线拟合。我不使用 polyfit 这样做,因为我想确保曲线是单调的,考虑到我的关系。所以假设我在硫和温度之间有以下关系:

我想找到一条曲线来适应这种单调递增的关系。

我在周围找到了一些代码,这就是我所拥有的:我计算多项式并将其用于目标函数,并且我将一阶导数约束为每个点的正数。我还使用 polyfit 值作为 x0 以加快操作:

但是,优化总是返回:

我尝试了规范化(比如 sul_norm = sul / max(sul) 有效),通过这样做优化会成功进行,但我想避免这样做(我必须在某一点反转函数,然后它可以回到原始值会变得混乱)。此外,在我看来,这种关系非常基本,温度和硫之间的值在不同的尺度上并没有那么极端。会是什么呢?谢谢!

0 投票
0 回答
49 浏览

matplotlib - 卡方检验给出错误的结果。我应该拒绝提议的分配吗?

我想在我的数据点上拟合泊松分布,并想根据卡方检验决定我应该接受还是拒绝这个提议的分布。我只使用了 10 个观察值。这是我的代码

我使用 10 个观察值,因此自由度为 9。对于这个自由度,我在卡方分布表上找不到我的 p 值和 chi 值。我的代码有什么问题吗?或者我的输入值太小以至于测试失败?如果 P 值 >0.05 分布被接受。虽然 p 值很大 0.999,但为此我在桌子上找不到卡方值 0.4588。我认为我的代码有问题。如何修复此错误?

这个返回的chi值是尾巴的临界值吗?如何检查提出的假设?