matrix with entries as variable

8 次查看(过去 30 天)
Wajahat
Wajahat 2017-3-6
评论: Wajahat 2017-3-6
I have a matrix equation
A=B C B^{-1}
If
A=[0 x+i/2(y+z); x-i/2(y+z) 0]
C=[x y; z -x]
where i is iouta.
then how can we find the the matrix B in matlab?
Note: all the matrices are 2 x 2.

回答(1 个)

Walter Roberson
Walter Roberson 2017-3-6
If A=B C B^{-1} then right-multiply by B to get A*B = B * C * B^{-1} * B which is A*B = B * C
syms x y z iota
A=[0 x+iota/2*(y+z); x-iota/2*(y+z) 0]
C=[x y; z -x]
B = sym('b',[2 2])
sol = solve(A*B == B*C, B)
sol.b1_1, sol.b1_2, sol.b2_1, sol.b2_2
You will find that the result is all 0
  3 个评论
Walter Roberson
Walter Roberson 2017-3-6
You can't. If you work the equations one by one reducing the number of variables, the only general solution to the last of them is 0, and that 0 works all the way back through substitution until all of the entries are 0.
There are non-general solutions in which one of the elements of B becomes an arbitrary constant, if x, y, z, and iota happen to satisfy particular relationships such as y = +/- (-iota^2+2*sqrt(iota^2+1)-2)*z/iota^2 or iota = +/- 2*sqrt(-y*z)/(y+z)

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Random Number Generation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by