Solving simultaneous matrix equations

조회 수: 4 (최근 30일)
Robbie Herring
Robbie Herring 2016년 2월 4일
답변: Walter Roberson 2016년 2월 4일
I'm trying to solve the following matrix problem:
F = K*x where:
F = [0; -2500; 0; -5000; 0; -2500]
K = [0.7 0.5 -0.7 -0.45 0 0;
0.45 0.3 -0.45 -0.3 0 0;
-0.7 -0.45 1.4 0.9 -0.7 -0.45;
-0.45 -0.3 0.9 0.6 -0.45 -0.3;
0 0 -0.7 -0.45 0.7 0.45;
0 0 -0.45 -0.3 0.45 0.3]
x = [0; 0; x1; x2; 0; 0]
where x1 and x2 are the unknowns I'm trying to find out. How can I solve these simultaneous equations to find x1 and x2?
Thanks in advance

답변 (1개)

Walter Roberson
Walter Roberson 2016년 2월 4일
There is no solution for that.
If you use the symbolic toolbox
syms x1 x2
F = [0; -2500; 0; -5000; 0; -2500]
K = [0.7 0.5 -0.7 -0.45 0 0;
0.45 0.3 -0.45 -0.3 0 0;
-0.7 -0.45 1.4 0.9 -0.7 -0.45;
-0.45 -0.3 0.9 0.6 -0.45 -0.3;
0 0 -0.7 -0.45 0.7 0.45;
0 0 -0.45 -0.3 0.45 0.3]
x = [0; 0; x1; x2; 0; 0]
Kx = K*x;
Then you get the Kx(1) == F(1), Kx(2) == F(2) and so on.
It turns out that there are only 4 unique entries in Kx, with the 5th and 6th entries being repeats. Fortunately the corresponding values in F are in agreement so there is no contradiction from ignoring Kx(5:6) and F(5:6) .
We now have 4 equations in two unknowns. There is a risk that this system is overdetermined, so test it:
sol1 = solve(Kx(1)-F(1), Kx(2)-F(2));
sol2 = solve(Kx(3)-F(3), Kx(4)-F(4));
to choose two of the possible pairs for analysis. If you now compare sol1.x1 to sol2.x1 and sol1.x2 to sol2.x2 you will find that sol2 is the exact negative of sol1 for each of the variables. Therefore there is a contradiction in the equations.
By the way: note that rank(K) is only 5 so redundant or contradictory equations are inherent in this.

카테고리

Help CenterFile Exchange에서 Calculus에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by