0
votes

I use finite element method(FEM) to solve some problems. The stiffness matrix K is a very big sparse matrix, I want to solve the equation :

U(freedofs,:) = K(freedofs,freedofs) \ F(freedofs,:),

the freedofs mean free node.

Sometimes I get a warning in MATLAB like

MATLAB:singularMatrix or MATLAB:nearlySingularMatrix,

And I calculate the condest(K(freedofs,freedofs)) value which is Inf, but I still get the answer of U and it's quite reasonable, I don't known if there any error? Is the answer of U credible

1
You cannot trust the result. See se.mathworks.com/help/matlab/ref/mldivide.html under Linear systems with singular matrixNicky Mattsson

1 Answers

0
votes

If the matrix is found to be singular or near-singular, that most likely means that the mechanical model you're working with is "loose". It can be just the case when insufficient number of boundary conditions is applied, so the system is a mechanism, and therefore the global stiffness matrix is just singular. Another possibility is that you are working with a, say, very thin plate, which behaves more like a membrane, having no or very little resistance to bending; in such case the global stiffness matrix would be ill-conditioned, and the linear solver in MATLAB will detect it as "near singular". You should ensure that your FEA model is neither of the above two cases; otherwise, any numerical solution you obtain is untrustworthy, no matter how reasonable it looks.