Solving under-determined matrix equations
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I need to Solve : A1*x+B1*y=c; A2*x+B2*y=d in Matlab where A1, A2, B1 and B2 are m-by-n complex matrices with m<n and rank=m. x, y, c and d are n-by-1 vectors. Hence the system is under-determined. I have seen solution techniques for solving system of equations in the form Ax=b, but how can I apply that to my case? Please let me know..
Thanks in advance S.Paul
2 Kommentare
Antworten (1)
Youssef Khmou
am 19 Feb. 2013
Bearbeitet: Youssef Khmou
am 19 Feb. 2013
Hi Subhra,
try to check the lengths you assigned to vectors c,d ; Under-determined system means you have more variables and less equations , in your example c and d must be mx1 vectors to get under-determined system : In this case the matrix A is not square and other techniques must be used : like
1)The Moore-Penrose pseudoinverse matrix or
2)The Least squares algorithm , TLS,..etc
Try this example :
m=4;
n=6; % m<n
A1=randn(m,n)+j*randn(m,n);
B1=randn(m,n)+j*randn(m,n);
A2=randn(m,n)+j*randn(m,n);
B2=randn(m,n)+j*randn(m,n);
rank(A1) % rank(A1)=rank(A2)=rank(B1)=rank(B2)
c=rand(m,1);
d=rand(m,1);
% Matrices concatenation to get AX=B
A=[A1 B1;A2 B2]; % size{A} is 2mx2n and rank{A} is 2m .
B=[c;d]; % size{B}is 2mx1
% Solution
% Moore-Penrose pseudoinverse of matrix since A is not square :
X=pinv(A)*B;
error=X*A-B;
% LS
X2=pinv(A'*A)*A'*B;
% Now get x and y :
%x=X(1:4); y=X(5:end);
4 Kommentare
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!