julia - 使用 Julia 求解具有混合互补条件和相等条件的方程组
问题描述
我想使用 Julia 来求解一个方程组,该方程组是(非线性)混合互补问题和普通线性方程组的混合体。举个简单的例子:
x>=0
y>=0
x = y
x(y^2 - 1) = 0 (where this is a mixed complementarity problem, so if x = 0 then y^2 - 1 >=0, if y^2 - 1 = 0 then x >=0)
这组方程的解是 x = y = 1。到目前为止,我发现的最好的包是Complementarity.jl,因为它允许非线性混合互补问题。但是,我无法弄清楚如何包含模型中不是混合互补问题的方面(在上面的简单示例中,x=y 条件)。我尝试使用带有以下代码的包来解决上述示例:
m = MCPModel()
@variable(m, x >= 0)
@variable(m, y >= 0)
@mapping(m,one, x-y)
@mapping(m,two, y-x)
@mapping(m,three, y^2 - 1)
@complementarity(m, three, x)
status = solveMCP(m, solver=:PATH, convergence_tolerance=1e-8, output="yes", time_limit=3600)
result_value.(x)
result_value.(y)
但随后它发现 x = 4.3e10 和 y = NaN,这显然是不正确的。有谁知道如何使用 Julia 求解这样的方程组,无论是使用 Complementarity.jl 包还是其他一些包?
解决方案
推荐阅读
- java - Java正则表达式和“贪婪”或早期搜索斜线
- java - 设置 this.updateTime 但它在运行测试时抛出 NullPointerException
- python - 如何使用基本库计算此类列表的频率?
- javascript - HTML5 重置按钮:保存/提交后更改初始值
- django - 覆盖基于通用类的表单并使用自定义表单的属性?
- unity3d - 如何在 Unity 中制作在线“蜂鸣器”
- r - R:当交互不显着时,如何显示 2-way ANOVA 的均值分离字母?
- c# - 模仿静态类型列表的 C# 接口
- javascript - ChartJS 在悬停时显示抖动
- python - 如何使用python将文件和目录从源复制到目标