Estimation the system (A) for known input and output [Y = A * X]
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi All,
For the case of having known input and known output, is there any way to estimate the matrix A in which y = A * x?
I have input matrix (n X 2) which is the position of the object in 2d-Screen at time t. I also know the out put vector which always contain two values (2 X 1).
I would like to estimate the matrix A in which x (variable size) multiplies by A becomes Y. (Y = A * X).
Is there any way to estimate the matrix A? Is this the Jacobian matrix? or should I follow the system identification?!
I would appreciate if you give me any lead in this.
Thanks
0 Kommentare
Akzeptierte Antwort
Cedric
am 28 Feb. 2013
Bearbeitet: Cedric
am 28 Feb. 2013
Unless your are in a special situation, there is an infinity of suitable A's .. and there is a dimension mismatch in your statement. Assuming that X is really nx2 and Y is really 2x1, you must have Y = X.'*A, with A a nx1 vector in fact. You must hence solve:
y1 = x11 a1 + x12 a2 + .. + x1n an
y2 = x21 a1 + x22 a2 + .. + x2n an
which is a system of 2 equations with n unknowns ( ai). Unless you are in a special situation, you can therefore define n-2 ai and solve for the two remaining ones. This would provide one particular A that fits the system above. An "interesting" choice for the n-2 ai is to set ai=0 for i>2. This reduces the system above to:
y1 = x11 a1 + x12 a2
y2 = x21 a1 + x22 a2
or simply Y = Xred.'*Ared, with Xred=X(1:2,:) and Ared is what you are looking for. This is a linear system that you can easily solve.
Play a bit with the following to see what happens..
X = [1 2 3; 5 3 4].' ;
Y = [7 -3].' ;
n = size(X, 1) ;
X1 = X(1:2,:) ;
A1 = X1.' \ Y ;
A2 = zeros(n-2, 1) ;
A =[A1; A2]
Y-X.'*A
I let you think more in depth for special cases.
Cheers,
Cedric
0 Kommentare
Weitere Antworten (1)
Youssef Khmou
am 28 Feb. 2013
Bearbeitet: Youssef Khmou
am 28 Feb. 2013
Hi Payam,
i am afraid A is not matrix but vector :
lets try :
n=10;
X=rand(n,2);
Y=rand(2,1);
A=Y'/X;
Error=(A*X)'-Y;
Error(Error<1e-10)=0;
2 Kommentare
Jan
am 28 Feb. 2013
It will have strange side-effects, if you shadow the important builtin function error() by a variable.
Youssef Khmou
am 28 Feb. 2013
Bearbeitet: Youssef Khmou
am 28 Feb. 2013
ok Jan, thanks for reminding .
Siehe auch
Kategorien
Mehr zu Residual Analysis 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!