Estimation the system (A) for known input and output [Y = A * X]

1 visualización (últimos 30 días)
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

Respuesta aceptada

Cedric
Cedric el 28 de Feb. de 2013
Editada: Cedric el 28 de Feb. de 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

Más respuestas (1)

Youssef  Khmou
Youssef Khmou el 28 de Feb. de 2013
Editada: Youssef Khmou el 28 de Feb. de 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 comentarios
Jan
Jan el 28 de Feb. de 2013
It will have strange side-effects, if you shadow the important builtin function error() by a variable.
Youssef  Khmou
Youssef Khmou el 28 de Feb. de 2013
Editada: Youssef Khmou el 28 de Feb. de 2013
ok Jan, thanks for reminding .

Iniciar sesión para comentar.

Categorías

Más información sobre Linear Model Identification en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by