Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对np.linalg.lstsq强制增加系数约束_Python_Python 3.x_Optimization_Linear Regression_Least Squares - Fatal编程技术网

Python 如何对np.linalg.lstsq强制增加系数约束

Python 如何对np.linalg.lstsq强制增加系数约束,python,python-3.x,optimization,linear-regression,least-squares,Python,Python 3.x,Optimization,Linear Regression,Least Squares,我有一个线性方程组 我需要找到最小平方误差的x 具有增加x中元素正值的约束 使用np.linalg.lstsq函数(numpy版本“1.14.2”,python版本“3.6.5”),我无法对系数I设置任何约束。e >>>A=np.数组([[4.737,4.673,4.664,4.614,4.614], [4.491, 4.377, 4.38 , 4.401, 4.406], [2.496, 1.689, 1.68 , 1.62 , 1.64 ], [3.461, 3.136, 2.816

我有一个线性方程组

我需要找到最小平方误差的x

具有增加x中元素正值的约束

使用np.linalg.lstsq函数(numpy版本“1.14.2”,python版本“3.6.5”),我无法对系数I设置任何约束。e


>>>A=np.数组([[4.737,4.673,4.664,4.614,4.614],
[4.491, 4.377, 4.38 , 4.401, 4.406],
[2.496, 1.689, 1.68 , 1.62 , 1.64 ],
[3.461, 3.136, 2.816, 2.723, 2.551],
[2.814, 2.4  , 2.444, 2.423, 2.436]])
>>>y=np.数组([4.90909091,4.863636,1.863636,2.6364,3.6364])
>>>x=np.linalg.lstsq(A,y)
>>>x[0]
数组([1.27108078,-22.41177441,20.48017772,37.03891117,
-35.2836762 ])
我希望c[0]的值增加


我知道我也可以使用scipy.optimize.nnls来获得正系数,但这不会处理“递增系数”约束。

我认为您的问题实际上不是一个经典的线性优化问题(它不是线性的)。我会使用QP(二次规划)求解器。这些都很容易与蟒蛇一起使用抱歉,我的意思是我有一个线性方程组。谢谢,我来看看QP解算器。我认为你的问题不是一个真正的经典线性优化问题(它不是线性的)。我会使用QP(二次规划)求解器。这些都很容易与蟒蛇一起使用抱歉,我的意思是我有一个线性方程组。谢谢,我来看看QP解决方案。