问题标签 [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.minimize?
我正在努力scipy.minimize
为一个数组的优化参数工作,我只在目标函数内查看数组的一部分。
追溯:
python - 如何使用 scipy.curve_fit 将 Python 中的实验数据拟合到定义区域有限的反三角函数?
我正在尝试将一些实验数据拟合到具有一个参数的非线性函数,该参数包括一个反余弦函数,因此它的定义区域从-1到1受到限制。我使用scipy的curve_fit来查找函数的参数,但是它返回以下错误:
我想要适合的功能是这个:
对于拟合,我分别为 x 和 y 提供了一个 numpy 数组,其中包含度数(这就是该函数包含与弧度之间的转换的原因)。
当我使用其他拟合函数(例如多项式)时,curve_fit 返回一些值,上述错误仅在我使用包含反余弦的此函数时发生。
我怀疑它不能拟合数据点,因为根据反余弦函数的参数,一些数据点不在反余弦的定义区域内。我尝试提高迭代次数(maxfev)但没有成功。
样本数据:
python - 除了自变量之外,如何为 scipy.optimize.minimize 的目标函数提供额外的输入
我正在使用 scipy 库进行优化任务。我有一个必须最小化的功能。我的代码和功能看起来像
我的 a、b 和 c 值会随着时间而变化,并且不是恒定的。该函数不应针对 a、b、c 值进行优化,而应针对可能随时间变化的给定 a、b、c 值进行优化。如何将这些值作为目标函数的输入?
python - 使用 scipy optimize 进行优化控制
我试图解决一个最优控制问题,其中成本函数是 J = x^TQ x + u^TR u 受 x_dot = A x + B u 和 x 和 u 的限制。我知道有一些求解器,如 cvxpy、yalimp 等,可以做到这一点,但我想自己做,以便对编码和将来可能添加的一些其他参数有更好的了解。我附上了我写的代码。它运行但对所有时间步返回相同的值。我已将 x 和 u 堆叠为单个向量。我不知道这是否是正确的方法。我认为可以以更好/有效的方式编写代码。欢迎所有建议,并非常感谢您提前提供任何帮助
灰
python - 正确使用 scipy.optimize.minimize
我有 2 个固定参数(A,B)
和 2 个不固定参数(C,T_o)
用于计算方程中的计算响应值R_computed = A + B*tanh((T-T_o)/C)
。与之比较的实际值“R”需要在两者之间具有最小的可能误差。我已经用一个对平方和求平方根的函数计算了最小误差。
该功能是我试图在 and 中最小化的optimize.minimize
功能。C,T_o
x0
args= (A,B,R,T)
目前我在第 52 行遇到错误: R_comp = A + B*np.tanh((T-T_o)/C)
TypeError:只有长度为 1 的数组可以转换为 Python 标量
这个错误是新的,我之前已经解决了这个问题,但由于我把代码弄得太乱了,所以无法回到原来的位置。最终目标是绘制(T,R)
R_new(T,R_new)
基本上是适合 R 的曲线
任何注释掉的东西都是我尝试过的。
python - scipy.optimize.dual_annealing 中允许哪些“访问”参数值?
我尝试使用scipy.optimize.dual_annealing
最小化 8 个参数的函数。搜索空间(由 my 定义bounds
)相当广泛,但我知道解决方案接近x0
. 因此,在阅读了此处找到的文档后,我决定使用较小的visit
参数值,默认为 2.62,并且应该在 (0, 3] 范围内。
当我使用时visit=0.8
,我得到了一个RuntimeWarning: invalid value 在日志中遇到,实际上,在源代码中我发现了这个:
(_dual_annealing.py 的 l.62)(基本上self._visiting_param
直接分配了 的值visit
)
所以我想也许文档是错误的,访问范围是(1,3]。
当我使用时visit=1.2
,我得到了一个FloatingPointError:log中遇到的无效值,这一次是由于
(_dual_annealing.py 的 l.121)其中self._factor6
是否定的。
这是一个真正的错误,一个错误的文档,还是只是我误解了什么?visit
为了搜索接近 x0,我可以为参数使用哪些值?
python - 如何使用 SciPy 优化具有多个约束的函数
我有三个具有相同列的 Pandas 数据框,如下所示:
我有第四个数据帧,其中行数对应于我拥有的数据帧数,所以这里我有 3 行,然后是 3 个数据帧。
我要做的是计算第四列,它基本上是 C 列除以 B 列。我希望从 B 列每一行的值列表中选择每行一个值。并且该值应该是用于所有数据帧(意味着如果我为索引“a”选择 0.5,那么该值应用于索引为“a”的所有数据帧。但选择需要满足这些条件
环顾四周似乎是一个优化问题,但我不知道如何使用 SciPy 来解决它。
python - scipy.optimize.minimize 的终止条件
我正在使用 scipy 库来解决优化问题。
我的优化代码:
我正在使用 nelder-mead 单纯形求解器来解决无约束的优化问题。优化器运行并打印
我有几个关于
- 迭代和函数评估是什么意思?
- 默认终止条件是什么?
- 如何更改默认终止条件?
我在文档中找不到太多信息。有人可以帮助我理解这些。谢谢
python - 以最公平的方式分配资源
在从事个人项目时,我遇到了一个问题,我将在这里尝试概括。
给定一个具有不同价值的资源列表(例如resources = [1, 0.8, 1.5, 0.8, 1.2...]
),我想以尽可能公平的方式在一组 N 人中共享它们(即,没有人最终会囤积太多价值而其他人拥有的价值太少)。
我认为解决这个问题的一个好方法是最小化函数:
whereavg = sum(resources) / N
和rx
is 分配给 person 的资源x
。
我偶然发现了scipy.optimize.minimize
,我认为这可能会有所帮助,但我无法弄清楚如何描述 的值r1, ..., rn
不能是任意的,而是需要取自resources
(并且以一种相同的资源不是在解决方案中提供给多个人),因为我没有使用此模块的任何经验,也没有适用于此类问题的强大数学背景。
有没有一种简单的方法可以解决这个问题scipy
?