Why can this linear system (Truss/global stiffness matrix, finding unknown reaction forces and displacements) be solved this way?

2 views (last 30 days)
Overall System is F=K*u where K (symmetric, z by z, global stiffness matrix), F (z by 1, most elements(some of these are unknown)=0, external forces), u (z by 1, unknown elements=Inf, known elements=0, node displacements)
KK=K; %saves original K, stiffness matrix
cdof=u~=Inf; %so creates logical array for known(constrained degrees of freedom) positioning in u
F(cdof)=u(cdof); %makes corresponding F elements also 0 for some reason
K(cdof,:)=0;
K(:,cdof)=0; %zeros columns and rows corresponding to known displacements
K(cdof,cdof)=eye(sum(cdof)); %changes elements on diagonal that just got changed to 0's, 1's
u=K\F; %no clue why changed K array and F column returns u with unknowns solved
F=KK*u; % understandable why F can be found once u is found

Answers (0)

Community Treasure Hunt

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

Start Hunting!