📄 ea708.m
字号:
% 《工程线性代数(MATLAB版)》第七章例题7.8程序ea708
%
m1=1; m2=9; k1 = 4; k2=2; % 输入各原始参数
x0 = [1;0]; xd0 = [0;-1]; tf= 20;
M = [m1,0;0,m2]; K = [k1+k2, -k2; -k2, k2]; % 构成参数矩阵
K0=inv(M)*K
[u,L] = eig (K0 ); % 求广义特征向量和特征值
t=linspace(0,tf,101);x=zeros(2,101); % 时间分割和输出变量初始化
for s=1:2 % 分别处理两个特征值
alfa=sqrt(u(:,s)'*M*u(:,s)); % 解耦后的质量
u(:,s)=u(:,s)/alfa; % 把特征向量[ui]归一化
w(s)=sqrt(L(s,s)); % 分别求对应于两个特征值的分量
xt=u(:,s)*(u(:,s)'*M*x0*cos(w(s)*t)+u(:,s)'*M*xd0/w(s)*sin(w(s)*t));
x=x+xt; % 把两个分量累加
end
for r=1:2 % 绘图
subplot(2,1,r)
plot(t,x(r,:)),grid
% xlabel('时间,秒');
% ylabel(['响应x',num2str(r)]);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -