How can I solve for the matrix S in the below mentioned matrix equation?
1 view (last 30 days)
Show older comments
A. R. M. Nazmul Ahsan Anupom
on 21 Jan 2020
Commented: A. R. M. Nazmul Ahsan Anupom
on 22 Jan 2020
Hello,
the matrix equation that I am trying to work with is as follows:
A = B - D * inv(S) * D' ;
EPS_S = EPS_T - d*(C\d'); % What I am writing in MatLab
Here, matrices A & B are both 3x3 with diagonal entries.
D is a 6x3 matrix with entries in D15, D24, D31, D32 and D33.
And finally, S is supposed to be a 6x6 matrix.
I noticed that the solve funcion asks for a verctors as inputs whereas I am working with matrices.
The code used is as follows:
K_T(1,1)=1250; K_T(2,2)=1250; K_T(3,3)=1000; eps_0=8.854e-12;
K_S(1,1)=800; K_S(2,2)=800; K_S(3,3)=540;
EPS_T = K_T * eps_0; EPS_S = K_S * eps_0;
d=[zeros(1,4) 380 0 ; zeros(1,3) 380 0 0 ; -95 -95 240 0 0 0]*10^-12;
syms C11 C12 C13 C21 C22 C23 C31 C32 C33 C44 C55 C66
C = [C11 C12 C13 0 0 0 ; C21 C22 C23 0 0 0 ; C31 C32 C33 0 0 0 ; 0 0 0 C44 0 0 ; 0 0 0 0 C55 0 ; 0 0 0 0 0 C66];
eqn = [EPS_S == EPS_T - d*(C\d')];
solve(eqn,C);
%end
0 Comments
Accepted Answer
David Goodmanson
on 22 Jan 2020
Hello NAA,
It appears that you mean that d is 3x6,not 6x3.
Let
E = EPS_T - EPS_S
and abbreviate inv(S) as iS. You are looking to solve
E = d*iS*d'
for iS. Since d is 3x6 it contains three limearly independent vectors (rank 3). iS has six linearly independent vectors (rank 6). The equation underspecifies iS, and there are many possible solutions, in this case including iS simply being diagonal. For example if you do the algebra,
K_T(1,1)=1250; K_T(2,2)=1250; K_T(3,3)=1000; eps_0=8.854e-12;
K_S(1,1)=800; K_S(2,2)=800; K_S(3,3)=540;
EPS_T = K_T * eps_0; EPS_S = K_S * eps_0;
d=[zeros(1,4) 380 0 ; zeros(1,3) 380 0 0 ; -95 -95 240 0 0 0]*10^-12;
E = EPS_T - EPS_S
iS = zeros(6,6);
iS(1,1) = E(3,3)/sum(d(3,1)^2 + d(3,2)^2 +d(3,3)^2);
iS(2,2) = iS(1,1);
iS(3,3) = iS(1,1);
iS(4,4) = E(2,2)/d(2,4)^2;
iS(5,5) = E(1,1)/d(1,5)^2;
iS(6,6) = 1e10 % arbitrary, put size on a par with the rest of S
EPS_S - (EPS_T - d*iS*d') % equation equality check
ans =
0 0 0
0 0 0
0 0 0
The most comprehensive way to sove this problem is by using the singular value decomposition on d. That will better bring out all the possible variations of iS, but you would have to impose more conditions to achieve a unique iS.
More Answers (0)
See Also
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!