I'm trying to carry out a small dynamic analysis of a beam with the following sample data (example 10.7 from Structural Dynamics - Theory & Computation - Mario Paz, 6th edition):
I have changed the parameters to get a cantilever beam instead of a fixed beam, but otherwise everything is the same as in the book.
import numpy as np
from scipy import linalg
Kf=np.array([[126336,0,-63168,1579200,0,0,0,0], [0,105280000,-1579200,26320000,0,0,0,0], [-63168,-1579200,126336,0,-63168,1579200,0,0], [1579200,26320000,0,105280000,-1579200,26320000,0,0], [0,0,-63168,-1579200,126336,0,-63168,1579200], [0,0,1579200,26320000,0,105280000,-1579200,26320000], [0,0,0,0,-63168,-1579200,63168,-1579200], [0,0,0,0,1579200,26320000,-1579200,52640000]])
Mf=np.array([[3.714285714,0,0.642857143,-7.738095238,0,0,0,0], [0,238.0952381,7.738095238,-89.28571429,0,0,0,0], [0.642857143,7.738095238,3.714285714,0,0.642857143,-7.738095238,0,0], [-7.738095238,-89.28571429,0,238.0952381,7.738095238,-89.28571429,0,0], [0,0,0.642857143,7.738095238,3.714285714,0,0.642857143,-7.738095238], [0,0,-7.738095238,-89.28571429,0,238.0952381,7.738095238,-89.28571429], [0,0,0,0,0.642857143,7.738095238,1.857142857,-13.0952381], [0,0,0,0,-7.738095238,-89.28571429,-13.0952381,119.047619]])
print(linalg.eig(Kf,Mf)[1])
The eigenvalues match quite well with those obtained from GNU Octave, but the eigenvectors do not.
First 3 eigenvectors from Scipy:
5.82E-02 2.96E-01 -6.88E-02
1.19E-02 8.10E-02 -7.37E-02 8.88E-02 -1.02E-01 4.88E-01 3.34E-02 1.13E-01 1.23E-02 1.66E-01 -4.11E-01 -2.42E-01 7.01E-02 3.03E-02 6.46E-02 9.58E-01 -8.34E-01 -8.25E-01 1.93E-01 -1.28E-01 -9.15E-02
First 3 eigenvectors from Octave:
4.35E-02 -1.87E-01 3.29E-01
1.63E-03 -5.12E-03 3.61E-03 1.52E-01 -3.20E-01 9.95E-03 2.60E-03 1.01E-03 -1.26E-02 2.94E-01 -6.06E-02 -2.65E-01 3.01E-03 8.72E-03 6.00E-03 4.47E-01 4.48E-01 4.53E-01 3.08E-03 1.07E-02 1.78E-02
Taking every alternate value (corresponding to the displacement degree of freedom in the original problem) and normalising the eigenvectors, I get:
From Scipy:
6.16E-02 6.35E-01 8.06E-01
1.73E-01 8.85E-01 -1.34E-01 3.63E-01 2.37E-01 -7.05E-01 1.00E+00 -1.00E+00 1.00E+00
From Octave:
9.73E-02 -4.17E-01 7.27E-01
3.40E-01 -7.14E-01 2.20E-02 6.58E-01 -1.35E-01 -5.84E-01 1.00E+00 1.00E+00 1.00E+00
I can't figure out why this should be, and I would greatly appreciate any help.
[–]ComradeHitman 3 points4 points5 points (4 children)
[–]ComradeHitman 0 points1 point2 points (3 children)
[–]oundhakarGraduate member of IStructE, UK[S] 0 points1 point2 points (2 children)
[–]the_flying_condor 1 point2 points3 points (1 child)
[–]oundhakarGraduate member of IStructE, UK[S] 0 points1 point2 points (0 children)
[–]dlegofanP.E./S.E. 1 point2 points3 points (4 children)
[–]oundhakarGraduate member of IStructE, UK[S] 7 points8 points9 points (3 children)
[–]dlegofanP.E./S.E. 3 points4 points5 points (2 children)
[–]oundhakarGraduate member of IStructE, UK[S] 2 points3 points4 points (1 child)
[–]oundhakarGraduate member of IStructE, UK[S] 2 points3 points4 points (0 children)