How to find unknown linear operator?
Show older comments
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 Comments
sahil kommalapati
on 23 Nov 2019
Edited: sahil kommalapati
on 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]
David Goodmanson
on 23 Nov 2019
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.
Answers (0)
Categories
Find more on Calculus in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!