assemblt of global stiffness matrix
3 次查看(过去 30 天)
显示 更早的评论
Hi,
I write a code to find stiffness (K) matrix. It is strange that the determinant of K becomes infinity. However, ke, stiffness for each element does make sense and it is symmetric. Global K is also symmetric but as I said determinant is zero instead of infinity. Does anyone know what is the problem?
Thanks
0 个评论
采纳的回答
John D'Errico
2014-12-3
编辑:John D'Errico
2014-12-3
A determinant is NEVER a good measure of whether a matrix is singular. And as matrices get large, the determinant becomes more than useless.
For example,
det(eye(1000)) == 1
however,
det(0.1*eye(1000)) == ???
When computed in floating point in MATLAB, the latter will yield zero, which I imagine you know not to be true. However, both matrices are equally non-singular. As easily, I could have modified the problem to yield inf by a different scale factor.
Answer? Don't use the determinant for anything of importance. It will only guide you to a poor conclusion.
Of course, this does not imply that your matrix has been created correctly or incorrectly. However, your test of that using the determinant is a useless one. Instead, you might look at the rank, or the eigenvalues. A valid stiffness matrix will be at least positive semi-definite. Don't forget that even for a singular matrix, eig can return negative eigenvalues on the order of -eps.
2 个评论
John D'Errico
2014-12-4
Another nice trick to show the uselessness of the determinant is to create a numerically singular matrix that has an arbitrarily large determinant. For example:
Q = orth(rand(100));
A = Q'*diag([1:99,0])*Q;
cond(A)
ans =
2.2508e+16
rank(A)
ans =
99
det(A)
ans =
6.2431e+140
A is clearly numerically singular, since I created it that way, with a zero eigenvalue. It has a condition number on the order of 1/eps. Rank says it is rank deficient. Yet the determinant can be immense in magnitude.
I think the best test of whether you created the matrix correctly is if it yields viable predictions. At least this is what I used for the short time in my past when I had to build a few of them.
I'd expect it to be singular, since a stiffness matrix would not see simple translations of an elastic body. They have no affect on the potential energy of the system. And non-negative (and real) eigenvalues is also a positive indicator that it is at least reasonable.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!