我在Excel中完成了它,但需要在R中运行正确的模拟。
我需要最小化函数F(x)
(x
是一个向量),同时具有sum(x)=1
的约束,x
中的所有值都是[0,1]
和另一个函数G(x) > G_0
。
我已尝试使用optim
和constrOptim
。他们都没有给你这个选择。
答案 0 :(得分:2)
您所指的问题(可能)是非线性约束的非线性优化。这是最常见的优化问题之一。
我用于这些目的的包名为nloptr
:see here。根据我的经验,它既多功能又快速。您可以相应地设置eval_g_eq
和eval_g_ineq
来指定相等和不等式的重量。如果明确知道雅可比(可以通过分析得出),请指定它们以便更快收敛;否则,使用数值近似。
使用this list作为优化问题的一般参考。
答案 1 :(得分:1)
使用Lagrange multiplier编写方程组,然后使用R命令nlm求解。
答案 2 :(得分:0)
您可以在OpenMx包中进行此操作(目前主机位于下面列出的网站。目标是今年的2.0版本重新开始)
这是一个通用的包,主要用于结构方程建模,但处理非线性约束。
对于你的情况,用你的代数用mxAlgebras()表示mxModel()和mxConstraints()中的约束
当mxRun()模型时,如果可能的话,代数将在约束内求解。