Clear Filters
Clear Filters

Solve Matrix A = B for variables a b and c with equations consisting of cosines and sines

1 view (last 30 days)
What is the easiest way to solve A = B for a, b and g with the following matrices:
A = [ cos(b)*cos(g), cos(g)*sin(a)*sin(b) - cos(a)*sin(g), sin(a)*sin(g) + cos(a)*cos(g)*sin(b); cos(b)*sin(g), sin(a)*sin(b)*sin(g) - cos(a)*cos(g), cos(g)*sin(a) + cos(a)*sin(b)*sin(g);
-sin(b), cos(b)*sin(a), cos(a)*cos(b)]
B = [0.6122, -0.7891, -0.0506;
0.7903, 0.6126, 0.0091;
-0.0238, 0.0456, -0.9987]
  5 Comments
Matt J
Matt J on 20 Feb 2018
Edited: Matt J on 20 Feb 2018
Like I said, you will find code routines to do these kind of decompositions for you on the File Exchange. No need to re-invent the wheel. I don't think you will be able to solve it symbolically, because your B is not precisely orthogonal. It contains floating point errors.
John D'Errico
John D'Errico on 20 Feb 2018
You want to solve for A==B. That is equivalent to having 9 simultaneous equations.
You have THREE variables. Nine equations. There are too many equations in only 3 unknowns.
There will essentially never be an exact solution. This is why solve could not succeed.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!