Python 使用Scipy/Numpy的普通最小二乘约束

Python 使用Scipy/Numpy的普通最小二乘约束,python,numpy,scipy,linear-algebra,mathematical-optimization,Python,Numpy,Scipy,Linear Algebra,Mathematical Optimization,我试图解线性方程组: min || Ax - B ||^2 for t in [0,1] such that the coefficients x in this equation satisfy the linear equation: C x = D 该系统试图拟合一组多项式,以逼近t范围内的函数Ft A是一个矩阵,表示t值范围内多项式集的映射 x是我想要的系数向量,对应于应用于a中每个多项式的权重 B是表示Ft值的向量, C是一个矩阵,D是一个向量,它们共同表示该系统系数的边

我试图解线性方程组:

min || Ax - B ||^2
    for t in [0,1]

such that the coefficients x in this equation satisfy the linear equation:

C x = D
该系统试图拟合一组多项式,以逼近t范围内的函数Ft

A是一个矩阵,表示t值范围内多项式集的映射 x是我想要的系数向量,对应于应用于a中每个多项式的权重 B是表示Ft值的向量, C是一个矩阵,D是一个向量,它们共同表示该系统系数的边界条件 这是一个使用

虽然有已知的封闭形式解决方案,例如,我正在寻找一个可以用来解决这个问题的scipy/numpy路由

研究表明,该模块包括以下功能:

上述建议来自和

但这些条件并不适用于其他线性方程的约束。我可以在scipy和numpy中使用什么来实现这一点?

为此,您可以使用scipy.minimizemethod='SLSQP'。文件是

您可以将相等约束定义为带有签名的可调用函数:

def cons1(x):
    return sum(D - C*x)
essential使用约束来解决优化问题。请注意,这是一个基于梯度的体面,所以您很可能会找到高维问题的局部极小值

另一个选项是scipy.minimizemethod='trust-constr',文档是。这些方法本机是用python实现的,因此可以通过访问源代码和修改


如果你有一个平滑的单调函数或上下文函数,根据我的经验,SLSQP应该足够了。

什么是变量t@jf328应首先使用已编辑的分析溶液。如果您确实想要使用scipy例程,那么可能会将约束作为惩罚放在目标中。A2=[A;m*C]、B2=[B;m*D]并用大MJ求解OLS | | A2.x-B2 | | ^2必须使用scipy.optimize.minimize并提供自己的稳定性梯度。如果[0,1]中的t是一个变量界,我看不到这里多次提到的闭式解。