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

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追问

我试过运行,当A=[2,1;0,2]的时候,就返回False...if条件不会满足,就应该是特征值为重根的时候?

追答

嗯,特征根有重根的情况确实会出现False。我之前有点想当然了。

这种情况下,矩阵应该按照约旦标准形分解,即状态转移矩阵为:
[P, D]=jordan(sym(A));
Psi1 = P * expm(D*t) * P^-1

另外,纠正一点,前面贴的代码有点小错误:
lambda[v,lambda]=eig(sym(A));
其中前面的lambda应属于上一行注释的内容。因为贴到知道里面经常会乱,修改时没注意。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-31
小白酱油飘过。大神无视之。

matlab求齐次线性微分方程组的基解矩阵:某过程求解释
Psi1 = P * expm(D*t) * P^-1 可以验证,这样求出的基解矩阵和上面相同 Psi-Psi1

如图 求该齐次线性方程组的一个基础解系
(3)、用某个常数k乘以某个方程。我们把这三种变换统称为线性方程组的初等变换。任意的线性方程组都可以通过初等变换化为阶梯形方程组。由具体例子可看出,化为阶梯形方程组后,就可以依次解出每个未知数的值,从而求得方程组的解。对方程组的解起决定性作用的是未知数的系数及其相对位置,所以可以把...

matlab中的基本命令有哪些啊?
(1)AX=B的解可以用X=A\\B求。XA=B的解可以用X= A\/B求。如果A是m×n的矩阵,当m=n时可以找到唯一解,m<n,不定解,解中至多有m个非零元素。如果m>n,超定系统,至少找到一组解。如果A是奇异的,且AX=B有解,可以用X=pinv(A)×B返回最小二乘解(2)AX=b, A=L×U,[L,U]=lu(A), X=U\\(L\\...

matlab 怎么解欠定方程 有Warning:Rank deficient,rank=2 tol=4.6151...
对于方程组Ax=b,A为n×m矩阵,如果A列满秩,且n>m。则方程组没有精确解,此时称方程组为超定方程组。线性超定方程组经常遇到的问题是数据的曲线拟合。对于超定方程,在MATLAB中,利用左除命令(x=A\\b)来寻求它的最小二乘解;还可以用广义逆来求,即x=pinv(A),所得的解不一定满足Ax=b,...

matlab中 a=[1,2,3;4,5,6;7,8,9] b=a(3:-1:1,1:3) 这个是什么意思
matlab中的矩阵:求解线性方程组是线性代数课程中的核心内容,而矩阵又在求解线性方程组的过程中扮演着举足轻重的角色。利用科学计算软件MATLAB来演示使用矩阵,同时,也使学生对线性代数的认识更加理性。矩阵的构造:在MatLab中,构造矩阵的方法有两种。一种是直接法,就是通过键盘输入的方式直接构造矩阵。另一...

MATLAB中fsolve如何求解n多个代数方程组
matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法:(1)x=inv(A)*b — 采用求逆运算解方程组;(2)x=A\\B — 采用左除运算解方程组 PS:使用左除的运算效率要比求逆矩阵的效率高很多~例:x1+2x2=8 2x1+3x2=13 >>A=[1,2;2,3...

常微分方程及Maple应用书籍目录
5.5.2 标准基解矩阵 5.5.3 待定系数法计算基解矩阵 5.6 非齐次线性微分方程组 5.6.1 解的性质与结构 5.6.2 常数变易法求特解 5.7 应用举例 第6章 微分方程的定性理论 6.1 自治系统

线性方程组如何求解
1、解线性方程组的方法大致可以分为两类:直接方法和迭代法。直接方法是指假设计算过程中不产生舍入误差,经过有限次运算可求得方程组的精确解的方法;迭代法是从解的某个近似值出发,通过构造一个无穷序列去逼近精确解的方法。2、消去法:Gauss(高斯)消去法——是最基本的和最简单的直接方法,它由...

matlab代码求注解,在线等
l mat2gray:将一个数据矩阵转换为灰度图像。 l rgb2gray:RGB图像向灰度图像转换或将彩色色图转换成灰度色图。 l rgb2ind:RGB图像向索引图像转换。包含三种不同方法:均衡量化、最小值量化、色图映射。 l im2java:一般图像向Java图像转换。 l label2rgb:标志图像向RGB图像转换。 2.2.3 图像的查询及读写 在MATLAB中...

线性代数重要补充
齐次解代表了矩阵A作用下的空间压缩,而特解则代表了非齐部分如何在压缩空间中移动以达到非齐线性方程组的解。这种分解方法为非齐线性方程组的求解提供了直观的解释。矩阵分解是线性代数中的高级技术,其中LU分解、LDU分解、PLU分解等是常用的矩阵分解方法。LU分解将矩阵分解为下三角矩阵L和上三角矩阵U的...

相似回答