【发布时间】:2019-07-19 21:30:13
【问题描述】:
我正在尝试求解线性方程组:
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 的范围内逼近函数 F(t)。
- A 是一个矩阵,表示多项式集合在 t 值范围内的映射
- x 是一个系数向量(我想要的),对应于应用于 A 中的每个多项式的权重
- B 是表示 F(t) 值的向量,
- C 是矩阵,D 是向量,它们共同表示该系统的系数的边界条件
这是一个使用constraint of ordinary least squares 求解线性方程的案例。
虽然有已知的封闭形式解决方案,例如Karush-Kuhn-Tucker 我正在scipy / numpy 中寻找可用于解决此问题的路由。
研究显示scipy.optimize模块,其中包括如下功能:
以上建议来自this question 和this question。
但是这些没有适用于其他一些线性方程的约束的条件。我可以在 scipy 和 numpy 中使用什么来做到这一点?
【问题讨论】:
-
什么是变量
t -
@jf328 已编辑 q
-
分析解决方案应该是第一个去的。如果您绝对想使用 scipy 例程,可能会将约束作为目标中的惩罚。
A2 = [A;m*C], B2 = [B;m*D]并用大m解决 OLS||A2.x-B2||^2 -
只需使用 scipy.optimize.minimize (并提供您自己的梯度以确保稳定性)。如果 [0,1] 中的 t 是变量绑定,我看不到这里多次提到的封闭式解决方案。
标签: python numpy scipy linear-algebra mathematical-optimization