[Master Index]
[Index for .]
solve_truss2
(./solve_truss2.m)
Function Synopsis
[u,in_sys_k] = solve_truss2(nodes,members,active_nodes,loads,dof);
Help text
[u,in_sys_k] = solve_truss(nodes,members,active_nodes,loads,dof)
does the solving. Truss or frame.
Cross-Reference Information
This function calls
Listing of function ./solve_truss2.m
function [u,in_sys_k] = solve_truss2(nodes,members,active_nodes,loads,dof);
% [u,in_sys_k] = solve_truss(nodes,members,active_nodes,loads,dof)
% does the solving. Truss or frame.
[num_members,i] = size(members); % how many members we have to insert
num_act_nodes = max(size(active_nodes)); % number of active nodes
[num_loads,i] = size(loads); % How many applied loads
sys_k = spalloc(dof*num_act_nodes,dof*num_act_nodes,3*dof*num_act_nodes);
% generates a big empty square matrix
red_load=zeros(dof*num_act_nodes,1); % generates a reduced empty load
% column vector
disp = zeros(dof*num_act_nodes,1); % a displacement vector to solve for
[na,nc] = size(nodes);
u = zeros(na,dof); % the return displacements
for i = 1:num_members
sys_k = assemble_k (sys_k,members(i,:),nodes,active_nodes,dof) ;
end
for i = 1:num_loads
red_load = assemble_loads(red_load,loads(i,:),active_nodes,dof);
end
in_sys_k = inv(sys_k);
disp = in_sys_k*red_load;
u(active_nodes,:) = reshape(disp,dof,num_act_nodes)';
Produced by mat2html on Wed Jul 10 14:55:44 US/Pacific 1996
Cross-Directory links are: OFF