台湾国立大学郭彦甫Matlab教程笔记(23) linear systems
线性系统和线性方程组实际上是解决的两类不同的问题。
下面一个系统。这个系统 是一个矩阵,然后有input,让你求output
这个系统的关系: the relation between system matrix and output
note the difference between the two formulation
为了说明和线性方程组的区别:请看下图
线性方程组和线性系统的区别:
线性方程组:知道output,想知道input
线性系统:不知道output,知道input,好奇经过线性系统后,output是什么
特征向量: 找到一个向量v,使得矩阵A v= λ v,其中,拉姆达λ是常数
这样,就可以把这个复杂的矩阵A用常数拉姆达取代
然后把b分解,变成特征向量的分解,使得计算简化
interpretation of Eigenvalues and Eigenvectors
系统中,当eigenvetor 作为 系统的 Input的时候,我们需要查看这些input(特征向量)是放大还是缩小
通过具体的实例来看
下面给出一个很简单的矩阵A(系统),它有两个特征值和特征向量
经过A系统之后被放大:
下面我们来看如何求解特征值和特征向量
求出来矩阵A的特征值和特征向量
然后让b这个向量在特征向量方向上进行分解:
下一步:代入化简:
于是就有:
在matlab中怎样求特征值和特征向量?
使用方法:[v,d]= eig([2 -12; 1 -5])
参数的含义:v是特征向量(v1 和 v2)【注意是列向量】
d是特征值:λ
看例子:
代码:
[v,d]= eig([2 -12; 1 -5])
得到的结果:v是特征向量(v1 和 v2)【注意是列向量】
d是特征值:λ
下面
matrix exponential :expm()
典型的线性时不变系统:
系统是微分系统,怎么解
下面是老师给出的代码,让阅读,并且没有注释
matlab代码:
A=[ 0 -6 -1; 6 2 -16; -5 20 -10];
x0=[1;1;1];
X=[];
for t =0:.01:1
X= [X expm(t*A)*x0];
end
plot3(X(1,:),X(2,:),X(3,:),’-o’);
xlabel(‘x_1’);
ylabel(‘x_2’);
zlabel(‘x_3’);
grid on;
axis tight square;
A=[ 0 -6 -1; 6 2 -16; -5 20 -10];
x0=[1;1;1];
X=[];
for t =0:.01:1
X= [X expm(t*A)*x0];
end
plot3(X(1,:),X(2,:),X(3,:),'-o');
xlabel('x_1');
ylabel('x_2');
zlabel('x_3');
grid on;
axis tight square;
【总结一下】
本文记录了线性系统的知识。讲解了特征值(eigenvalue)和特征向量(eigenvector)的原理,学会了求解矩阵的特征值和特征向量的函数eig()