Effacer les filtres
Effacer les filtres

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

3 vues (au cours des 30 derniers jours)
tafteh
tafteh le 27 Fév 2013
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

Réponse acceptée

Cedric
Cedric le 28 Fév 2013
Modifié(e) : Cedric le 28 Fév 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

Plus de réponses (1)

Youssef  Khmou
Youssef Khmou le 28 Fév 2013
Modifié(e) : Youssef Khmou le 28 Fév 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 commentaires
Jan
Jan le 28 Fév 2013
It will have strange side-effects, if you shadow the important builtin function error() by a variable.
Youssef  Khmou
Youssef Khmou le 28 Fév 2013
Modifié(e) : Youssef Khmou le 28 Fév 2013
ok Jan, thanks for reminding .

Connectez-vous pour commenter.

Catégories

En savoir plus sur Linear Model Identification dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by