Check if nullspace is contained in another + finding intersection of 2 nullspaces.
10 次查看(过去 30 天)
显示 更早的评论
1) How to check (return true) if the nullspace of A is contained in the nullspace of B?
2) How to find the intersection of nullspaces of A and B?
Thanks!
2 个评论
Walter Roberson
2021-2-27
normalize each null vector. ismembertol 'byrows' of the transpose of the null spaces. (Convention is that the null vectors are presented as columns.)
Matt J
2021-2-27
编辑:Matt J
2021-2-27
Unfortunately, ismembertol will not work. As the following example shows, the basis vectors returned by null(A) need not be a subset of the basis vectors returned by null(B), even if the nullspace of A is contained in the nullspace of B.
A=[-1 -1 1; 1 1 1];
B=[0,0,1];
null(A).'
null(B).'
回答(2 个)
Bruno Luong
2021-2-27
编辑:Bruno Luong
2021-2-27
First question:
KA = null(A);
KB = null(B);
% Check span KA is included in span KB
PKA = KB*(KB'*KA); % Projection KA on span KB
ResA = PKA-KA; % Projection KA on orthogonal span KB
tol = 1e-9*sqrt(size(KA,1));
KAinKB = all(vecnorm(ResA,2,1)<tol)
The itersection has basis
null([A; B])
So you can also find the firs question by
size(null([A; B]),2) == size(null(B),2)
0 个评论
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!