Solving under-determined matrix equations

조회 수: 8 (최근 30일)
Subhra
Subhra 2013년 2월 18일
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
Youssef  Khmou
Youssef Khmou 2013년 2월 18일
hi, are you sure that x,y,c and are nx1? just to make sure
Subhra
Subhra 2013년 2월 19일
You are right. c and d are m x 1. only x and y are n x 1.

댓글을 달려면 로그인하십시오.

답변 (1개)

Youssef  Khmou
Youssef Khmou 2013년 2월 19일
편집: Youssef Khmou 2013년 2월 19일
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
Subhra
Subhra 2013년 2월 19일
Nope. Ok I will see.
Subhra
Subhra 2013년 2월 19일
No! Its not working either. My problem is ill-conditioned.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by