matlab求齐次线性微分方程组的基解矩阵:A=[2,0,0,0,0;4,2,4,0,-4;4,-1,6,1,-5;12,-2,12,4,-14;8,-1,8,1,-7][v,lambda]=eig(sym(A));n=length(lambda);if length(v(1,:))==n syms tPhi=[];for j=1:nPhi=[Phi,eval(v(:,j)*exp(lambda(j,j)*t))];end;Phi=Ph
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 03:38:33
![matlab求齐次线性微分方程组的基解矩阵:A=[2,0,0,0,0;4,2,4,0,-4;4,-1,6,1,-5;12,-2,12,4,-14;8,-1,8,1,-7][v,lambda]=eig(sym(A));n=length(lambda);if length(v(1,:))==n syms tPhi=[];for j=1:nPhi=[Phi,eval(v(:,j)*exp(lambda(j,j)*t))];end;Phi=Ph](/uploads/image/z/1157039-71-9.jpg?t=matlab%E6%B1%82%E9%BD%90%E6%AC%A1%E7%BA%BF%E6%80%A7%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E7%BB%84%E7%9A%84%E5%9F%BA%E8%A7%A3%E7%9F%A9%E9%98%B5%3AA%3D%5B2%2C0%2C0%2C0%2C0%3B4%2C2%2C4%2C0%2C-4%3B4%2C-1%2C6%2C1%2C-5%3B12%2C-2%2C12%2C4%2C-14%3B8%2C-1%2C8%2C1%2C-7%5D%5Bv%2Clambda%5D%3Deig%28sym%28A%29%29%3Bn%3Dlength%28lambda%29%3Bif+length%28v%281%2C%3A%29%29%3D%3Dn+syms+tPhi%3D%5B%5D%3Bfor+j%3D1%3AnPhi%3D%5BPhi%2Ceval%28v%28%3A%2Cj%29%2Aexp%28lambda%28j%2Cj%29%2At%29%29%5D%3Bend%3BPhi%3DPh)
matlab求齐次线性微分方程组的基解矩阵:A=[2,0,0,0,0;4,2,4,0,-4;4,-1,6,1,-5;12,-2,12,4,-14;8,-1,8,1,-7][v,lambda]=eig(sym(A));n=length(lambda);if length(v(1,:))==n syms tPhi=[];for j=1:nPhi=[Phi,eval(v(:,j)*exp(lambda(j,j)*t))];end;Phi=Ph
matlab求齐次线性微分方程组的基解矩阵:
A=[2,0,0,0,0;4,2,4,0,-4;4,-1,6,1,-5;12,-2,12,4,-14;8,-1,8,1,-7]
[v,lambda]=eig(sym(A));n=length(lambda);
if length(v(1,:))==n syms t
Phi=[];for j=1:n
Phi=[Phi,eval(v(:,j)*exp(lambda(j,j)*t))];
end;Phi=Phi
Psi=eval(Phi/subs(Phi,t,'0'))
else disp('False');end
请说一下上面程序(最好各个步骤)的意思~是关于求x'=Ax的基解矩阵的~
A =
2 0 0 0 0
4 2 4 0 -4
4 -1 6 1 -5
12 -2 12 4 -14
8 -1 8 1 -7
matlab求齐次线性微分方程组的基解矩阵:A=[2,0,0,0,0;4,2,4,0,-4;4,-1,6,1,-5;12,-2,12,4,-14;8,-1,8,1,-7][v,lambda]=eig(sym(A));n=length(lambda);if length(v(1,:))==n syms tPhi=[];for j=1:nPhi=[Phi,eval(v(:,j)*exp(lambda(j,j)*t))];end;Phi=Ph
A=[2,0,0,0,0;4,2,4,0,-4;4,-1,6,1,-5;12,-2,12,4,-14;8,-1,8,1,-7]
% 下面这句求矩阵A的特征值和特征向量,以特征值构成对角阵
lambda[v,lambda]=eig(sym(A));
% n本质上是系统的阶次
n=length(lambda);
% 这个判断有点莫名其妙,我想不出什么情况下if的条件会不满足
if length(v(1,:))==n
syms t % 定义符号变量t
Phi=[]; % 置初始的Φ(t)矩阵为空,后面依次添加各列
for j=1:n
% 通过循环依次添加Φ(t)矩阵各列,函数eval纯属多余
Phi=[Phi,eval(v(:,j)*exp(lambda(j,j)*t))];
end
% 下面这一句又是莫名其妙,如果想显示变量Phi,直接写变量名即可,没必要给自身赋值
Phi=Phi
% 通过处以Φ(0),对Φ(t)进行类似归一化的操作.eval同样是多余的
Psi=eval(Phi/subs(Phi,t,'0'))
else
% 这个分支根本似乎不可能执行到
disp('False');
end
%
% 其实求状态转移矩阵更简单的做法如下:
[P,D]=eig(sym(A));
Psi1 = P * expm(D*t) * P^-1
% 可以验证,这样求出的基解矩阵和上面相同
Psi-Psi1
小白酱油飘过。大神无视之。