Python 3.x pyscipopt,非线性方程组,代码正在运行,但速度慢';t刻度

Python 3.x pyscipopt,非线性方程组,代码正在运行,但速度慢';t刻度,python-3.x,linear-algebra,scip,Python 3.x,Linear Algebra,Scip,我有一个方程组要解,它是这样的: 等式的左侧是总和,右侧是约束。我有一个N个变量的非线性方程组 我试着用scipy fsolve解决它,但它不会收敛,sympy也有一个解算器,也不会收敛。我遇到了pyscipopt,它似乎工作正常,但行为不一致,并且出现故障 将numpy作为np导入 将networkx导入为nx ''用n个节点设置问题,用度序列设置约束数组c'' ''示例:幂律度分布'' n=8 c=np.round(nx.utils.random\u sequence.powerlaw\

我有一个方程组要解,它是这样的:

等式的左侧是总和,右侧是约束。我有一个N个变量的非线性方程组

我试着用scipy fsolve解决它,但它不会收敛,sympy也有一个解算器,也不会收敛。我遇到了pyscipopt,它似乎工作正常,但行为不一致,并且出现故障


将numpy作为np导入
将networkx导入为nx
''用n个节点设置问题,用度序列设置约束数组c''
''示例:幂律度分布''
n=8
c=np.round(nx.utils.random\u sequence.powerlaw\u sequence(n))
“其他示例”
#n=8
#c=[1,2,2,1,2,1,1,2]
#n=3
#c=[2,1,1]
从pyscipopt导入模型,quicksum
m=模型()
“收敛容忍度”
tol=1e-6
打印(“创建拉格朗日乘数”)
X=dict(zip(范围(n),[m.addVar(vtype=“C”,lb=0)表示范围(n)中的i)])
#X=dict(zip(范围(n),[m.addVar(vtype=“C”)表示范围(n)中的i)])
''为目标函数创建变量,因为它是非线性的
并且必须线性化“'
Y=m.addVar(vtype='C')
打印('设置约束')

''这些方程基本上是和度的,你能分享整个代码吗<代码>X
Y
未初始化。对于
n
的大小,您是否遇到问题?1。我编辑了这篇文章并添加了整个代码2。我认为,即使n=8具有稍微不同的约束(幂律,参见代码),也不会产生结果。我知道一个简单的例子(n=8c=[1,2,2,1,2,1,1,2])是有效的,但我不知道为什么其他的不起作用。这似乎是一个棘手的问题。特别是,它是一个纯连续非线性问题,因此SCIP可能不是最适合的求解器。你查过男爵、安提戈涅、库恩或林多吗?哈!那我就试试这些。谢谢我将在一周左右的时间里汇报^^^^^一般来说,没有上限会使问题变得更加困难,并且会导致很长的解决时间。