Solving Matrix Equations with Multiple Variable Vectors
이전 댓글 표시
I have an equation: S = QE
where Q is a 3x3 matrix with known constants,
S and E are both 3 element vectors. S has a single variable and E has 2 variables.
I want to solve for the 3 variables. This is what I tried:
E1 = 140e9; % [Pa]
E2 = 10e9; % [Pa]
G12 = 7e9; % [Pa]
V12 = 0.3;
V21 = V12;
syms tau Exx Eyy
S = [tau + 5e6;... % S11
-tau + 5e6;... % S22
-5e6]; % S12
Q = [E1/(1-V12*V21) V12*E2/(1-V12*V21) 0;... % All known values
V12*E2/(1-V12*V21) E2/(1-V12*V21) 0;...
0 0 0];
E = [Exx/2 + Eyy/2;...
Exx/2 + Eyy/2;...
Exx - Eyy];
solve(S == Q*E);
But it comes up empty. I've done this same process with a set of equations, but never in matrix form. I could, of course, expand this out by hand and input the seperate equations, but I'd rather not have to do that because I'd like to be able to turn this into a function. I'm pretty sure linsolve() won't work since the variable are not spread between 2 vectors. Not sure what else to try.
Any suggestions are appreciated, thanks.
댓글 수: 10
Stephan
2020년 10월 30일
Are you sure that your matrix is written correctly?
Q =
1.0e+11 *
1.5385 0.0330 0
0.0330 0.1099 0
0 0 0
nick12391
2020년 10월 30일
nick12391
2020년 10월 30일
Stephan
2020년 10월 30일
E1 = 140e9; % [Pa]
E2 = 10e9; % [Pa]
G12 = 7e9; % [Pa]
V12 = 0.3;
V21 = V12;
syms tau Exx Eyy
S = [tau + 5e6;... % S11
-tau + 5e6;... % S22
-5e6]; % S12
Q = [E1/(1-V12*V21) V12*E2/(1-V12*V21) 0;... % All known values
V12*E2/(1-V12*V21) E2/(1-V12*V21) 0;...
0 0 G12];
E = [Exx/2 + Eyy/2;...
Exx/2 + Eyy/2;...
Exx - Eyy];
S = (Q\E)
nick12391
2020년 10월 30일
I think you have one more bug in your matrix. Should not Q(2,1) be:
V12*E1/(1-V12*V21)
instead of:
V12*E2/(1-V12*V21)
due to
nick12391
2020년 10월 30일
nick12391
2020년 10월 30일
Stephan
2020년 10월 31일
Ok, then it should be done.
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
