How to find the eigenvectors for multiple degree of system?

조회 수: 8 (최근 30일)
Kenny Gee
Kenny Gee 2022년 5월 8일
댓글: Kenny Gee 2022년 5월 8일
i have a 3DOF system trying to find the eigenvalues and eigenvector associated to the system. I used this matlab code to do it and it is showing me the correct eigenvalues I have from my hand calc, however eigenvectors look different from what I have as a hand calc. For example, when I run the code, i am getting :
(mode_shape_1 = 0.4331, 0.5597, 0.7065) (mode_shape_2 = -0.3814, -0.1346, 0.9146) (mode_shape_3 = -0.4826, 0.7938, -0.3701)
The theoretical eigenvectors I have:
(mode_shape_1 = 1, 1.2921, 1.6312) (mode_shape_2 = 1, 0.35286, -2.3981) (mode_shape_3 = 1, -1.6450, 0.7669)
I know that eigenvectors can be different depending on the values we set to calculate the other values or normalize it. The theoretical eigenvectors are also showing a different signs. How do I change the following code so that it matches with the theoretical values?
M=[3 2 1;2 2 1;1 1 1]
K=[3 0 0;0 2 0;0 0 1]
A=inv(M)*K
[V,D]=eig(A)
[D_sorted, ind] = sort(diag(D),'ascend');
V_sorted = V(:,ind);
nat_freq_1 = sqrt(D_sorted(1))
nat_freq_2 = sqrt(D_sorted(2))
nat_freq_3 = sqrt(D_sorted(3))
mode_shape_1 = V_sorted(:,1)
mode_shape_2 = V_sorted(:,2)
mode_shape_3 = V_sorted(:,3)

답변 (1개)

Paul
Paul 2022년 5월 8일
Hello KG,
Divide each mode shape by its first element so that the first element of each mode shape is unity.
M=[3 2 1;2 2 1;1 1 1];
K=[3 0 0;0 2 0;0 0 1];
A=M\K; % use backslash
[V,D]=eig(A);
[D_sorted, ind] = sort(diag(D),'ascend');
V_sorted = V(:,ind);
nat_freq(1) = sqrt(D_sorted(1));
nat_freq(2) = sqrt(D_sorted(2));
nat_freq(3) = sqrt(D_sorted(3));
mode_shape(:,1) = V_sorted(:,1);
mode_shape(:,2) = V_sorted(:,2);
mode_shape(:,3) = V_sorted(:,3);
mode_shape = mode_shape./mode_shape(1,:) % uses implicit expansion
mode_shape = 3×3
1.0000 1.0000 1.0000 1.2921 0.3529 -1.6450 1.6312 -2.3981 0.7669
theory(:,1) = [1, 1.2921, 1.6312].';
theory(:,2) = [1, 0.35286, -2.3981].';
theory(:,3) = [1, -1.6450, 0.7669].';
theory
theory = 3×3
1.0000 1.0000 1.0000 1.2921 0.3529 -1.6450 1.6312 -2.3981 0.7669

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by