我正在用python解决不确定的系统和不确定的系统。
我使用scipy.optimize.nnls,但是此函数在解决方案中生成许多0。例如如果我有10个变量和20个等式,那么nnls估计有6个变量为0。我知道部分原因是系统的等级。但是,是否有任何方法可以向nnls添加所有变量严格大于0 的条件?
例如:
nnls解决的是(x,y)=(1,0)
我想要的是(x,y)=(0.5,0.5)
x + y = 1
x + 10y = 1
x + 20y = 1
nnls解决的是(x,y)=(1,0)
例如,只要x,y严格> 0,我想要的就是(x,y)=(0.9,0.1)
A = [[1, 1]]
B = [1]
scipy.optimize.nnls(A,B)[0]
>> array([1., 0.])
A = [[1,1],
[1,10],
[1,20]]
B = [1,1,1]
scipy.optimize.nnls(A,B)[0]
>> array([1., 0.])