📄 ex933.m
字号:
%《MATLAB及其在理工课程中的应用指南》第九章例9-3-3程序
% 用多维矩阵求状态转移矩阵及齐次状态方程解
% 西安电子科技大学出版社出版 陈怀琛编著 1999年10月初版,2004年11月第二版
%
A=[-2,1;-17,-4]; % 输入状态方程系数矩阵
x0=[3;4]; % 输入初始条件
t=0:.02:3; Nt=length(t); % 设定自变量数组并确定其长度
F=zeros(2,2,Nt);x=zeros(2,Nt); % 状态转移矩阵F及状态变量初始化
for k=1:Nt % 对时间循环
% F(:,:,k)=expm(A*t(k)); % 用expm函数计算各时刻的状态转移矩阵F
F(:,:,k)=expm1(A*t(k)); % 用expm1函数计算各时刻的状态转移矩阵F
end
z=reshape(F,[4,Nt]); % 把F变为二维矩阵以便绘图
subplot(2,1,1),plot(t,z), grid, % plot语句只接受二维变量
set(gcf,'color','w') % 置图形背景色为白色
for k=1:Nt % 对时间循环,求各点状态变量
% 矩阵乘法只能用于二维,因此对每一时刻的F,用squeeze函数缩去长度为1的第三维
x(:,k)=squeeze(F(:,:,k))*x0;
end
subplot(2,1,2),plot(t,x),grid %画第二张图
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -