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 Kommentare

sahil kommalapati
sahil kommalapati am 23 Nov. 2019
Bearbeitet: sahil kommalapati am 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.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Produkte

Version

R2019a

Gefragt:

am 10 Sep. 2019

Kommentiert:

am 23 Nov. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by