问题描述
我关注的特殊情况是A
是一个n x d矩阵(其中k A
完成的向量变成方矩阵?
I'm focusing on the special case where A
is a n x d matrix (where k < d) representing an orthogonal basis for a subspace of R^d and b is known to be inside the subspace.I thought of using the tools provided with numpy
, however they only work with square matrices. I had the approach of filling in the matrix with some linearly independent vectors to "square" it and then solve, but I could not figure out how to choose those vectors so that they will be linearly independent of the basis vectors, plus I think it's not the only approach and I'm missing something that can make this easier.is there indeed a simpler approach than the one I mentioned? if not, how indeed do I choose those vectors that would complete A
into a square matrix?
推荐答案
正如您提到的, np.linalg.solve 需要一个完整的方阵.
As you mentioned, np.linalg.solve needs a full-rank square matrix.
对于所有其他线性情况,如果您对min||Ax-b||^2.
感兴趣(您可能对),则可以使用 np.linalg.lstsq .
For all the other linear cases, if you are interested in min||Ax-b||^2.
(you probably are) you can use np.linalg.lstsq.
方程可能是欠定的,确定的或过度确定的(即a的线性独立行的数量可以小于,等于或大于其线性数量)独立的列).如果a是正方形且具有全秩,则x(但针对四舍五入误差)是方程的精确"解.
The equation may be under-, well-, or over- determined (i.e., the number of linearly independent rows of a can be less than, equal to, or greater than its number of linearly independent columns). If a is square and of full rank, then x (but for round-off error) is the "exact" solution of the equation.
(我的粗体注释)
原始np.linalg.solve
的文档中也提到了这一点:
This is also mentioned in the docs of the original np.linalg.solve
:
这篇关于使用python为非平方矩阵A求解Ax = b的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!