# compute nodes and members according to stiffness matrix of truss (inverse the direct stiffness method)

I am familiar with the direct stiffness method (truss), and programmed it from scratch in Java.

• The member stiffness matrix is determined by any link (member) and the nodal coordinates.

• The global stiffness matrix, after deleting cols & rows for known nodal displacements is symmetric positive definite.

Everything works perfectly!

Then I am wondering an inverse problem for quite a long time: given a valid stiffness matrix (computed from a truss which is hidden for the inverse problem),

• How can one find the nodal coordinates and the links between them? There are both continuous variables (node positions) and discrete variables (whether any pairs of nodes are connected). I imagine this is a hard optimization problem that may involve metaheuristics. Or is there a clever way to decompose the stiffness matrix into member stiffness matrices?

• Is the solution unique? By intuition, it's unique for I cannot imagine two trusses have the same stiffness matrix. But I expect there are multiple solutions that may involve negative Young's modulus.

• Finding the nodal coordinates is possible if you have the full (not earthed) stiffness matrix. Find the zero eigenvalues and eigenvectors. They correspond to the rigid body motions of the structure. I am not convinced the truss itself is uniquely determined, except for special cases. Remember that in general a truss is not statically determinate! Aug 10 at 11:15