diff options
-rwxr-xr-x | computeA.m | 9 | ||||
-rwxr-xr-x | truss_solve.m | 26 |
2 files changed, 31 insertions, 4 deletions
@@ -15,13 +15,14 @@ function [ A ] = computeA( C, X, Y, Sx, Sy ) end end end - A(m+1:m+3,1:j)=Sx; - A(m+1:m+3,j+1:2*j)=Sy; + A(1:j,m+1:m+3)=Sx; + A(j+1:2*j,m+1:m+3)=Sy; end function [ p ] = findother(col, row) - for i = 1:size(col) - if col(i) ~= row && col(i) + p = 0; + for i = 1:length(col) + if col(i) && i ~= row p = i; end end diff --git a/truss_solve.m b/truss_solve.m new file mode 100755 index 0000000..50150bb --- /dev/null +++ b/truss_solve.m @@ -0,0 +1,26 @@ +% Truss Compute + +C = [ + 1 1 0 0 0 0 0 0 0 0 0 0 0 + 1 0 1 1 0 0 0 0 0 0 0 0 0 + 0 0 0 1 1 1 0 0 0 0 0 0 0 + 0 1 1 0 1 0 1 1 0 0 0 0 0 + 0 0 0 0 0 1 1 0 1 1 0 0 0 + 0 0 0 0 0 0 0 1 1 0 1 1 0 + 0 0 0 0 0 0 0 0 0 1 1 0 1 + 0 0 0 0 0 0 0 0 0 0 0 1 1 +]; + +Sy = zeros(8,3); Sy(1,2)=1; Sy(8,3)=1; +Sx = zeros(8,3); Sx(1,1)=1; + +X = [0 0 4 4 8 8 12 12]; +Y = [0 4 8 4 8 4 4 0]; + +L = zeros(16,1); L(8+4)=-25; + +A = computeA(C,X,Y,Sx,Sy); + +result = A\(-L) + + |