Plotting functions with matrices
Show older comments
function [Om2, Pp] = GeneralizedEigenProblem(Kk,Mm);
% Solves the generalized eigen problem (Kk - W^2 Mm) u = 0
% Inputs
% Kk: stiffness matrix
% Mm: mass matrix
%Torque Force
%Excitation Frequency
%Force array
Mm= [3.2 0 0 0 0; 0 5.4 0 0 0; 0 0 6.5 0 0; 0 0 0 12.5 0; 0 0 0 0 3.7];
Kk= [23 -12.2 -4.4 0 0; -12.2 27.8 -15.6 0 0; -4.4 -15.6 30.5 -7.9 -2.6; 0 0 -7.9 16 0; 0 0 -2.6 0 26.9];
%----- Construct dynamic matrix
%
K1 = inv(Kk); Dd = K1*Mm;
%
% Compute Eigenvalues and Eigenvectors
%
[Pp, Lam] = eig(Dd);
%
%----- Adjust eigen values
%
nn = size(Kk,1);
for i=1:nn
Om2(i) = 1/Lam(i,i);
end
%
%----- Order eigen values
%
swap = 1;
while (swap == 1)
swap = 0;
for i=1:nn-1
if (Om2(i) > Om2(i+1))
swap = 1;
tr0 = Om2(i); Om2(i) = Om2(i+1); Om2(i+1) = tr0;
tr1 = Pp(:,i); Pp(:,i) = Pp(:,i+1); Pp(:,i+1) = tr1;
end
end
end
%
%----- Normalize eigen modes
%
for i=1:nn
ui = Pp(:,i);
mu = sqrt(transpose(ui)*Mm*ui);
Pp(:,i) = Pp(:,i)/mu;
end
disp('Eigenvalues 1 through 3')
u1=Pp(:,1)
freq1=sqrt(Om2(:,1))
u2=Pp(:,2)
freq2=sqrt(Om2(:,2))
u3=Pp(:,3)
freq3=sqrt(Om2(:,3))
u4=Pp(:,4)
freq4=sqrt(Om2(:,4))
u5=Pp(:,5)
freq5=sqrt(Om2(:,5))
disp('P matrix')
Pp;
%Finding the Rayleigh's Quotient
%Randomly picked numbers for alpha
a1=5;
a3=9;
a4=6;
a5=-4;
e=(a1.*u1)+(a3.*u3)+(a4.*u4)+(a5.*u5);
ep=-linspace(-.1,.1);
rq= ((u2'.*Kk.*u2)+(2*ep.*u2'.*Kk.*e)+((ep^2).*e'.*Kk.*e))/((u2'.*Mm.*u2)+(2*ep.*u2'.*Mm.*e)+((ep^2).*e'.*Mm.*e));
figure(1)
plot(ep,rq)
grid;
5 Comments
madhan ravi
on 18 Oct 2018
Edited: madhan ravi
on 18 Oct 2018
Select the whole code and press the code button
Denikka Brent
on 18 Oct 2018
madhan ravi
on 18 Oct 2018
size(rq) and size(ep) ?
madhan ravi
on 18 Oct 2018
size(ep) is 1 by 100 And the rest is 5 by 1 , ep size should be 5 by 5 or 5 by 1
Denikka Brent
on 18 Oct 2018
Answers (1)
madhan ravi
on 18 Oct 2018
Edited: madhan ravi
on 18 Oct 2018
function [Om2, Pp] = GeneralizedEigenProblem(Kk,Mm);
% Solves the generalized eigen problem (Kk - W^2 Mm) u = 0
% Inputs
% Kk: stiffness matrix
% Mm: mass matrix
%Torque Force
%Excitation Frequency
%Force array
Mm= [3.2 0 0 0 0; 0 5.4 0 0 0; 0 0 6.5 0 0; 0 0 0 12.5 0; 0 0 0 0 3.7];
Kk= [23 -12.2 -4.4 0 0; -12.2 27.8 -15.6 0 0; -4.4 -15.6 30.5 -7.9 -2.6; 0 0 -7.9 16 0; 0 0 -2.6 0 26.9];
%----- Construct dynamic matrix
%
K1 = inv(Kk); Dd = K1*Mm;
%
% Compute Eigenvalues and Eigenvectors
%
[Pp, Lam] = eig(Dd);
%
%----- Adjust eigen values
%
nn = size(Kk,1);
for i=1:nn
Om2(i) = 1/Lam(i,i);
end
%
%----- Order eigen values
%
swap = 1;
while (swap == 1)
swap = 0;
for i=1:nn-1
if (Om2(i) > Om2(i+1))
swap = 1;
tr0 = Om2(i); Om2(i) = Om2(i+1); Om2(i+1) = tr0;
tr1 = Pp(:,i); Pp(:,i) = Pp(:,i+1); Pp(:,i+1) = tr1;
end
end
end
%
%----- Normalize eigen modes
%
for i=1:nn
ui = Pp(:,i);
mu = sqrt(transpose(ui)*Mm*ui);
Pp(:,i) = Pp(:,i)/mu;
end
disp('Eigenvalues 1 through 3')
u1=Pp(:,1)
freq1=sqrt(Om2(:,1))
u2=Pp(:,2)
freq2=sqrt(Om2(:,2))
u3=Pp(:,3)
freq3=sqrt(Om2(:,3))
u4=Pp(:,4)
freq4=sqrt(Om2(:,4))
u5=Pp(:,5)
freq5=sqrt(Om2(:,5))
disp('P matrix')
Pp;
%Finding the Rayleigh's Quotient
%Randomly picked numbers for alpha
a1=5;
a3=9;
a4=6;
a5=-4;
e=(a1.*u1)+(a3.*u3)+(a4.*u4)+(a5.*u5);
ep=-linspace(-.1,.1,5);
rq= ((u2'.*Kk.*u2)+(2*ep.*u2'.*Kk.*e)+((ep.^2).*e'.*Kk.*e))/((u2'.*Mm.*u2)+(2*ep.*u2'.*Mm.*e)+((ep.^2).*e'.*Mm.*e));
figure(1)
plot(ep,rq)
grid;
end
2 Comments
Denikka Brent
on 18 Oct 2018
madhan ravi
on 18 Oct 2018
Yes exactly are what we can do is we can interpolate the points .
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!