问题标签 [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.
python - SciPy 可以通过 SLSQP 最小化处理多个非线性约束吗?
我正在尝试在约束下找到最佳解决方案,并将 SciPy 最小化与 SLSQP 一起使用。它完美地工作,没有单个约束的问题。一旦我添加了另一个约束,它就会成功完成,但没有达到优化目标。
我认为我的问题在于约束函数定义(约束 2 有点棘手),并决定学习如何正确使用最小化。
我切换到一个简单的第二个约束,但又得到了一个未优化的解决方案。
待优化函数:samples_in_year = 246.5
功能优化输入:
约束:
优化函数
分别使用这些约束中的每一个,它都可以正常工作,我不能让它同时与它们一起工作。我相信,如果我能够解决“更简单”的问题,我将能够优化真正的问题。
每个约束优化的结果都是正确的,两个约束问题的结果是默认使用的权重(初始猜测)
python - TypeError:输入了不正确的输入参数
我尝试使用 scipy.optimize 库中的 fsolve 函数来求解改变方程参数的非线性方程,但是当我运行代码时,我收到以下错误消息:
TypeError:输入了不正确的输入参数。
我多次查看该程序,但仍然找不到问题。我在互联网上进行了搜索,但没有找到任何文档或遇到相同问题的人。我为函数编写了这段代码:
我写了一个循环,方程的值会发生变化,但我总是在每种情况下找到“h”的值,所以我使用 fsolve:
问题出现在这一行。
PS:我已经尝试使用 args=(),但返回相同的消息。
python - 打印选择的 scipy.optimize.minimize 方法
这是一个简短的问题,但谷歌每次都指向我找不到答案的文档。
我正在使用 scipy.optimize.minimize。它工作得很好,一切都很好。我可以定义要使用的方法,但即使我没有指定方法,它也可以工作。
有什么方法可以得到输出,使用了哪种方法?我知道结果类,但那里没有提到该方法。
这是一个例子:
我可以将 value 方法设置为类似slsqp
or cobyla
,但我想看看程序选择了什么。我怎样才能得到这些信息?
python - 在 scipy.optimize 的全局优化中传递参数
我正在尝试使用 scipy 全局优化来解决优化问题。我正在使用差异进化。
代码
我的目标函数将这三个参数作为输入并给出输出。我只想优化前两个参数。所以我作为参数传递的第三个参数。
当我运行优化器时,我在第一次运行后得到一个错误,它说
我猜这个参数没有被附加到第二次运行的 x 值。
有人可以帮我解决这个问题吗?
python - 如何优化参数取决于自变量的函数的拟合
我有一些包含三列、x
、y
和的数据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
正确地调用了该函数。欢迎咨询。
python - Scipy.optimize.minimize 在优化黑盒函数时忽略了我指定的边界
我试图最小化 76 个参数的函数。我希望每个参数值都在 0 到 5 之间。
默认算法 LBFGS 未能找到最优值。
因此,我尝试了 TNC 算法,虽然它实现了良好的目标函数值,但它给我的解决方案却忽略了界限。它的输出似乎没有表明任何失败。
这是 TNC 优化的输出:
python - RuntimeWarning:在 scipy.optimize 中遇到的无效值
我在使用 scipy.optimize 时收到以下警告: RuntimeWarning:power遇到无效值 据我了解,这来自 numpy 的 exp 函数,但我无法弄清楚如何解决我的问题
我查找了多种已提出的解决方案,但似乎没有一个适合我的问题,或者我根本不够熟练,无法将它们应用于我的特定问题
我正在尝试将以下数据拟合到修改后的 3 参数 Weibull 函数
模块:
我的数据如下:
拟合函数:
拟合和可视化:
有人可以帮我摆脱这个错误吗?
python-3.x - 最小化成本函数时带有 scipy.optimize 的 TypeError
我想通过使用 scipy.optimize 优化 W((1×9)matrix) 中的 9 个变量。
但我得到一个像这样的 TypeError
我将“缺点”更改为
然后它工作得很好,我得到了一个结果
我无法找到一个好的解决方案。
python - 优化最小化与 SLSQP 不兼容的不等式约束
我正在尝试使用 Scipy 的 Optimize 运行一些曲线拟合。我不使用 polyfit 这样做,因为我想确保曲线是单调的,考虑到我的关系。所以假设我在硫和温度之间有以下关系:
我想找到一条曲线来适应这种单调递增的关系。
我在周围找到了一些代码,这就是我所拥有的:我计算多项式并将其用于目标函数,并且我将一阶导数约束为每个点的正数。我还使用 polyfit 值作为 x0 以加快操作:
但是,优化总是返回:
我尝试了规范化(比如 sul_norm = sul / max(sul) 有效),通过这样做优化会成功进行,但我想避免这样做(我必须在某一点反转函数,然后它可以回到原始值会变得混乱)。此外,在我看来,这种关系非常基本,温度和硫之间的值在不同的尺度上并没有那么极端。会是什么呢?谢谢!
matplotlib - 卡方检验给出错误的结果。我应该拒绝提议的分配吗?
我想在我的数据点上拟合泊松分布,并想根据卡方检验决定我应该接受还是拒绝这个提议的分布。我只使用了 10 个观察值。这是我的代码
我使用 10 个观察值,因此自由度为 9。对于这个自由度,我在卡方分布表上找不到我的 p 值和 chi 值。我的代码有什么问题吗?或者我的输入值太小以至于测试失败?如果 P 值 >0.05 分布被接受。虽然 p 值很大 0.999,但为此我在桌子上找不到卡方值 0.4588。我认为我的代码有问题。如何修复此错误?
这个返回的chi值是尾巴的临界值吗?如何检查提出的假设?