参考链接:
3359 WW2.mathworks.cn/help/MATLAB/ref/expm.html? search highlight=exp ms _ tid=doc _ srch title
http://www.Sina.com/http://www.Sina.com/http://www.Sina.com /方法1 :使用的函数是expm矩阵指数
已知矩阵A求F(t)=
y=expm(x )
e^At
y=expm(x )计算x的矩阵指数。 即矩阵指数部分)
在该方法中不进行计算,但在x中包含完整特征向量p和对应的特征量d的组的情况下
[P,d]=EIG(x ) ]
然后,(在矩阵a的特征值彼此不同的情况下(expm(x )=p*diag ) exp (diag ) ) (p^(-1 ) )
附: eig特征值和特征向量
矩阵a的相似变换
[P,D]=eig(A返回特征值的对角矩阵d和可逆矩阵p,其列为与A*P=P*D相对应的右固有向量。
矩阵a的对角化,可逆矩阵p和对角矩阵d。
(p^(-1 ) ) *A*P=D
A*P=P*D
状态转移矩阵
求矩阵A=
-2 0 0
0 -3 1
0-3
的矩阵指数函数e^At
输入命令行
a=[-2 0 0; 0 -3 1; 0-3 ); %定义矩阵a
syms t; %定义变量t
expm(a*t ) %使用expm函数计算迁移矩阵
获得结果:
ans=
[exp(-2*t ),0,0 ]
[ 0,exp(-3*t ),exp(-3*t ) ]
[ 0,0,exp(-3*t ) ]
方法通过axdmf逆变换求e ̄at
输入命令行:
a=[-2 0 0; 0 -3 1; 0-3 ); %定义矩阵a
syms s t; %
定义vi按量s,t>> G=inv(s*eye(size(a))-a); %(sI-a)的逆
>> ilaplace(G) %axdmf反变换
ans =
[ exp(-2*t), 0, 0]
[ 0, exp(-3*t), t*exp(-3*t)]
[ 0, 0, exp(-3*t)]
附:
inv逆矩阵的求取
Y = inv(X) 计算方阵X的逆矩阵。
X^(-1) 等效于inv(X)。
size数组的大小
sz = size(A) 返回一个行向量,其元素包含 A 的相应维度的长度。例如,如果 A 是一个 3×4 矩阵,则 size(A) 返回向量 [3 4]。
eye单位矩阵
I = eye(n,m) 返回一个主对角线元素为 1 且其他位置元素为 0 的 n×m 矩阵。
ilaplaceaxdmf反变换
已知F(t)=e^At状态转移矩阵求A矩阵
F(t)=e^At
F’(t)=At*(e^At) 这是矩阵对标量的求导
令t=0, F’(0)=A
示例
已知矩阵F(t)=[ 1 (1/2)*(1-exp(-2*t)) ; 0 exp(-2*t) ]
(一个2x2矩阵)
求A矩阵
在Matla输入命令行:
syms t;
>> a=[1 (1/2)*(1-exp(-2*t));0 exp(-2*t)];
>> da=diff(a)
得到结果:
da =
[ 0, exp(-2*t)]
[ 0, -2*exp(-2*t)]
附:
diff
差分和近似导数
Y = diff(X)
参考文档:
https://ww2.mathworks.cn/help/matlab/ref/diff.html?searchHighlight=diff&s_tid=doc_srchtitle
x‘=Ax+Bu
y=Cx+Du
求下列状态空间表达式的解A=[0 1;0 0],B=[0 ; 1],C=[1 0];D=0;
x'=[0 1;0 0]x+[0 ; 1]u
y=[1 0]x
初始状态x(0)=[1 ; 1],输入u(t)是单位阶跃响应
输入命令行
A=[0 1;0 0];B=[0;1];
C=[1 0];D=0; %定义系统矩阵
G=ss(A,B,C,D); %建立状态空间描述的系统模型
x0=[1;1]; %初始状态
syms s t; %定义变量
G0=inv(s*eye(size(A))-A); %(sI-a)的逆
x1=ilaplace(G0)*x0; %零输入响应x1
G1=inv(s*eye(size(A))-A)*B;
x2=ilaplace(G1/s) %1/s为积分
x=x1+x2;
y=C*x;
得出结果:
x1 =
t + 1
1
x2 =
t^2/2
t
x =
t^2/2 + t + 1
t + 1
y =
t^2/2 + t + 1