How to find unknown linear operator?

I have a square matrix A that acts on a some vector x such that A*x = y. Matrix A is heavily constrained with only a few unknowns. x and y are known exactly. How do I solve for A?
For example say:
sym a b c d
A = [a 0 0 b;
c d 0 0;
0 0 0 0;
0 0 0 0]
x = % some known vector
y = % some known vector
How do we find A now?

2 commentaires

sahil kommalapati
sahil kommalapati le 23 Nov 2019
Modifié(e) : sahil kommalapati le 23 Nov 2019
This is a method which come to mind:
syms a b c d
A = [a 0 0 b;
c d 0 0;
0 0 0 0;
0 0 0 0];
x = zeros(4,1); %your known vecotor here
y = zeros(4,1); %and here!
eq1 = A*x ==y;
k = solve(eq1, [a,b,c,d]);
sol = [k.a, k.b, k.c, k.d]
Hello Tsuyoshi,
Well, with your example for A, you are certainly not going to do it for arbitrary x and y, because the form of A means that y(3)=y(4)=0. So any solution with either y(3) or y(4) nonzero is impossible. (It's a consequence of A being singular).
But let's say that y(3)=y(4)=0. The two equations that are left are
a*x(1) + b*x(4) = y(1)
c*x(1) + d*x(2) = y(2)
which is one eqn. for two unknowns a,b
and one eqn. for two unknowns c,d
so you can get solutions, but you can't solve for any unknown uniquely.

Connectez-vous pour commenter.

Réponses (0)

Produits

Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by