MATLAB: How to solve for the matrix S in the below mentioned matrix equation

matrixsolvesolve forsymbolicsystems of equationsvariables

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 3×3 with diagonal entries.
D is a 6×3 matrix with entries in D15, D24, D31, D32 and D33.
And finally, S is supposed to be a 6×6 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

Best Answer

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.