问题标签 [nonlinear-optimization]
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.
c - C中的广义缩减梯度算法
我正在从事一些科学项目,我需要广义缩减梯度算法的 C 语言实现来进行非线性优化。是否有任何库或只是一段代码?或者,请为非线性多变量问题提出任何其他解决方案。我正在寻找使用 4 个自变量和 2 个常数来构建优化模型:该模型是非线性的。我已经检查了 Microsoft Excel 的 Solver,使用广义缩减梯度 (GRG) 可以完美地解决这个模型,但我需要用 C 语言进行模拟。
这是我的 excel 解决方案: http : //speedy.sh/SEdZj/eof-cs-rest.xlsm 我使用带有 GRG 算法的 Microsoft Excel Solver 来搜索 SS 的最小值,输出是 Const_a 和 Const_b 的值。
r - 优化错误:无法在初始参数处评估函数
所以我在 R 中遇到了这个奇怪的错误。我有一个简单的函数,它在比较真实价格和模拟价格时返回一个错误项,称为hestondifferences()
.
当我尝试通过以下方式找到局部最小值时:
我收到错误消息:
optim(fn = hestondifferences, par = c(vT = vT, rho = rho, k = k, : 函数无法在初始参数处评估) 中的错误
让我困惑的是,直接使用初始参数调用函数会hestondifferences(vT, rho, k, sigma)
返回正确的值。
该函数hestondifferences()
的编写方式是,只要对某些参数集无法进行模拟,它就会返回NA
符合optim
() 期望的值。
nonlinear-optimization - 粒子群优化惯性因子
我正在阅读软计算算法,目前在“粒子群优化”中,我大致了解该技术,但是,我停在数学或物理部分,我无法想象或理解它是如何工作的或它如何影响飞行,那部分是方程中更新速度的第一部分,称为“惯性因子”
,完整的更新速度方程是:
我在第 2.3 节“惯性因子”的一篇文章中读到:
“算法的这种变体旨在平衡两种可能的 PSO 趋势(取决于参数化),即利用已知解决方案周围的区域或探索搜索空间的新区域。为此,这种变体侧重于粒子的动量分量”速度方程 2. 注意,如果你去掉这个分量,粒子的运动就不会记住之前的运动方向,它总是会接近找到的解。另一方面,如果使用速度分量,或者甚至乘以 aw(惯性权重,平衡动量分量的重要性)因子,粒子将倾向于探索搜索空间的新区域,因为它不能轻易地将其速度改变为最佳解决方案。它必须首先“抵消”先前的动量获得,在这样做的过程中,它能够探索新的区域,时间“花费抵消”先前的动量。这种变化是通过将先前的速度分量乘以权重值 w 来实现的。
但我也无法想象这是如何在物理上或数值上发生的,以及这个因素如何影响从探索级别到开发级别,所以需要一个数值示例来了解它是如何工作的并想象它是如何工作的。
此外,在遗传算法中有一个模式定理,它证明了 GA 成功找到了最优解,PSO 是否有这样的定理。
python - 牛顿-拉夫森线性化?二阶非线性 ODE numpy-scipy Python
我试图解决一个多星期以上的下一个方程:
我必须使用 Newton-Raphson 方法来获得 u 的近似解。我有脚本可以做到这一点,但我需要“线性化”这个非线性 ODE。k1-k4 不是常数。在每个网格点 (x=1-100) 上,它们得到一个不同的计算值。初始条件是u(0)=0。
matlab - 基于参数matlab的非线性约束
我尝试在 fmincon 优化器中施加非线性约束。问题是非线性约束应该仅在参数之一为负时才相关。代码是这样的:
问题是,例如,当使用诊断选项时,Matlab 说没有非线性约束:
并且在寻找最优值的过程中也违反了这种非线性约束。有人可以指出我是否没有正确定义非线性条件约束吗?
python - TypeError: 'numpy.int64' object is not callable — 这在外行术语中是什么意思?
在此示例之后,我尝试使用我自己的 sigmoidal 模型执行非线性回归:
$$f(d) = \frac{1}{1 + \exp (-k (de))}$$
网站上解释的示例完美运行,但我的代码并非如此:
但是,当我执行脚本时,它会引发以下错误:
某处显然存在 TypeError,但我不明白问题出在哪里或到底是什么。我曾尝试在 Google 上搜索此错误,但我也不太明白其中的解释。想法,有人吗?
数据.txt
matlab - 用 lsqcurvefit 拟合曲线
我有一个特定的功率谱阵列保存为test
,取决于频率阵列f
。
这个功率谱一般如下图所示
需要注意的是,上述功率谱源于模拟时间序列。
原则上,我想要做的是拟合一条接近模拟功率谱的曲线,如下所示:
我知道理论功率谱可以定义如下:
其中L
是恒定长度尺度,Uhub
,恒定速度和f
频率矢量。
问题是:我不知道 'L' 的值,因此我正在考虑使用优化的非线性分辨率lsqcurvefit
。
我一直在进行如下:
fit_func
它检索有关函数输入变量数量的错误消息。
你介意发光吗?
optimization - AMPL:如何编写平衡约束?
我正在尝试使用 AMPL 编写最大似然估计问题,但不确定如何编写约束EQC。我不确定我是否只需要一个约束或它们的一个系统(每个玩家一个)。约束是固定点迭代。我已经发布了下面的代码:
优化器要解决的变量
目标函数和约束:
非常感谢 Stackoverflow
c - 非线性优化 C
我想使用 C 执行非线性优化算法。
问题是:
超过向量 X 中的五个点。
X、Y(X)、下限和上限是已知的。
我在 C 上找到了nlopt库,但我不知道是否可以对五个离散点执行优化。
有什么建议,甚至是另一个图书馆?
谢谢!
java - 是否有任何适用于 android 的库可以为我提供与 octave/scipy (fsolve) 的代数功能类似的东西?
我正在制作一个 android 应用程序,我想在其中使用 GNU Octave 或 Scipy 中的一些东西。我要使用的具体内容是:fsolve和fzero。fsolve 找到非线性方程组的根(零)。fzero 找到非线性函数的根。这对我来说是两个非常有用的优化功能,但我很难找到 android 的替代品。我已经看过有关通过 java 使用 octave 环境的帖子,但这会将 octave 中的所有内容添加到我的应用程序中,即 90mb。Scipy 也具有此功能,但我还没有看到通过 android 应用程序连接此 python 包的方法。
有什么我可以使用的只有这些优化方法,所以它不会扩大我的 android 应用程序?
任何建议将不胜感激!
谢谢,扎克