第10章 MATLAB 特征值与特征向量的计算实例解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• • • • • • • • • •
wk.baidu.com
解:编写如下语句: A=[2,4,6;3,9,15;4,16,36]; % 给定的方阵 x0=ones(3,1); % 迭代初值 [lambda_max,x_max]=eig_power(A,x0) % 利用幂法求取最大特征值与特征向量 [Lambda_maxs,x_maxs]=eig_powershift(A,x0,1.5) % 原点位移法求最大特征值与特征向量 % 利用反幂法求解最小特征值及其对应的特征向量 [Lambda_min1,x_min1]=eig_invpower(A,x0) [Lambda_min2,x_min2]=eig_lupower(A,x0) D=QR_basic(A) % 利用qr分解求矩阵A的全部特征值 [V,D] = eig(A) % 利用MATLAB自带函数eig求矩阵A的全部特征值及其对应的特征向量 QR分解法 eig函数法 V= -0.1674 -0.8047 -0.5581 -0.4016 0.5701 -0.7197 -0.9004 -0.1658 0.4130
-1500 -2000 -150
-100
-50
0
50
100
150
实验范例:遗传模型
一、常染色体遗传模型
• 【例10-12】农场的植物园中某种植物的基因型为AA,Aa和aa。农场计 划采用AA型的植物与每种基因型植物相结合的方案培育植物后代。那 么经过若干年后,这种植物的任一代的三种基因型分布如何? • 解:设 an , bn , cn 分别表示第代植物中基因型为AA,Aa和aa的植物占植 物总数的百分率,x ( n )为第n代植物的基因型分布: x ( n ) = [an , bn , cn ]T • 则
• 解:首先作变量代换:x j (t ) = f j sin(ωt + θ ), • 注意到 &&j (t ) = −ω 2 f j sin(ωt + θ ) x • 则题述数学模型可以改写为
j = 1, 2,3, 4
k1 + k2 m 1 −k2 m 2 0 0
幂法 lambda_max = 43.8800 x_max= 0.1859 0.4460 1.0000
原点位移法 Lambda_maxs= 43.8800 x_maxs = 0.1859 0.4460 1.0000
反幂法 Lambda_min= 0.4025 x_min = 1.0000 -0.7085 0.2061
1 an = 1 ⋅ an −1 + bn −1 + 0 ⋅ cn −1 2 1 bn = bn −1 + cn −1 2 cn = 0
x ( n ) = Mx ( n −1) , n = 1, 2,L
将以上三式写成矩阵形式有
1 1/ 2 0 M = 0 1/ 2 1 0 0 0
最终隐性患者消失, 全部均为显性患者。
三、X—链遗传模型 链遗传模型
X—链遗传是指雄性具有一个基因A或a,雌性具有两个基因AA或Aa或aa。其遗 传规律是雄性后代以相等概率得到母体两个基因中的一个,雌性后代从父体中 得到一个基因,并从母体的两个基因中等可能地得到一个。
1 0 0 M = 0 0 0
【例10-11】求取MATLAB自带稀疏矩阵west0479 的前8个最大的特征值。
• • • • • • • •
2000
解:这里分别用eig()函数和eigs()求解,具体的程序代码如下: eigs函 函 函 函 函 函 eig函 函 函 函 函 函 load west0479 % 读取MATLAB中的自带稀疏矩阵west0479 1500 d = eig(full(west0479)); % 将稀疏矩阵转化为一般矩阵求解其所有特征值 dlm1000 = eigs(west0479,8); % 求解稀疏矩阵的前8个特征值 [dum,ind] = sort(abs(d)); % 将特征值排序 500 plot(dlm,'k+') % 绘制特征值图形 hold on % 图形保持 0 plot(d(ind(end-7:end)),'ks','MarkerSize',4) % 绘制由eig函数求得的前8个特 征值图形 -500 • hold off % 图形取消 -1000 • legend('eigs函数求解结果','eig函数求解结果') % 添加图例
2 4 6 A = 3 9 15 , 【例10-1】给定矩阵 4 16 36
• • • • • ①利用幂法求矩阵A按模最大的特征值及对应特征向量; ②利用原点位移法求矩阵A按模最大的特征值及对应特征向量; ③利用反幂法求矩阵A按模最小的特征值及对应特征向量; ④利用QR方法求矩阵A的全部特征值; ⑤利用MATLAB提供的eig()函数求矩阵A的全部特征值及其对应的特 征向量。
2
−k2 m1 k 2 + k3 m2 − k3 m3 0
0 − k3 m2 k3 + k 4 m3 − k4 m4
0 0 −k4 m3 k4 m4
f1 f2 = ω2 f3 f4
f1 f2 f3 f4
• 即ω 为上述系数矩阵的特征值。 • 若给定如下条件则可以编写程序example_10_10.m。 m1 = 82 g , m2 = 54.8 g , m3 = 50.9 g , m4 = 68.4 g
运行结果: Lambda = 23.6977 19.0022 13.6197 4.4407
k1 = 787.76 N / m, k2 = 251.93 N / m, k3 = 330.47 N / m, k4 = 429.8 N / m
D= 43.8800 2.7175 0.4025
【例10-10】计算下图中谐振动的频率。
该系统平衡位置的数学模型:
k1 + k2 −k2 0 0
−k2 k2 + k3 − k3 0
0 − k3 k3 + k 4 − k4
0 x1 (t ) m1 &&1 (t ) x 0 x2 (t ) m2 &&2 (t ) x + =0 x3 (t ) m3 &&3 (t ) −k4 x k4 x4 (t ) m4 &&4 (t ) x
运行结果: x_nlimit = 1 0 0
即当 n → ∞ 时,an → 1, bn → 0, cn → 0 培育的植物最终都是AA型的。
• 拓展:若在上述问题中,不选用基因AA型的植物与每一植物结合,而 是将具有相同基因型植物相结合,那么有
1 1/ 4 0 M = 0 1/ 2 0 0 1/ 4 1
• 将矩阵M重新代入前面的程序中得到结果。
1 1 运行结果: a 即当 n → ∞ 时, n → a0 + b0 , bn → 0, cn → c0 + b0 x_nlimit = 2 2 a0 + b0/2 0 后代仅具有基因AA和aa。 b0/2 + c0
二、常染色体隐性病模型
1 1/ 2 M = 0 1/ 2
1/ 4 0 0 0 0 1/ 4 0 1 1/ 4 0 0 0 0 1/ 4 0 1/ 4 0 0 0 0 1/ 4 1 0 1/ 4 0 0 0 0 1/ 4 1
最终所有同胞对或者是(A,AA)型,或者是(a,aa)型。
【练3】
• 编写函数文件chol_test.m判断矩阵是否为正定矩阵并对正定矩阵A进行 Cholesky分解,其中判断条件为:(A==A.')&(min(eig(A))>0) • A=[9 2 1 2 2;2 4 3 3 3;1 3 7 3 4;2 3 3 5 4;2 3 4 4 5]; • chol_test(A) • B=[16 17 9 12 12;17 12 12 2 18;9 12 18 7 13;12 2 7 18 12;12 18 13 12 10]; 运行结果: C= • chol_test(B) 3.0000 0.6667 0.3333 0.6667 0.6667 0 1.8856 1.4731 1.3553 1.3553 0 0 2.1723 0.3596 0.8200 0 0 0 1.6092 0.8848 0 0 0 0 1.1240
x ( n ) = Mx ( n −1) = M 2 x ( n − 2) = L = M n x (0)
n 计算x (n)的关键是计算M n,为计算 M ,需要将M对角化,即求正交阵P, 使 P −1 MP = D ,其中D为对角阵。编写如下语句: syms n a0 b0 M=[1,1/2,0;0,1/2,1;0,0,0]; % 系数矩阵 [P,D]=eig(sym(M)); % P,D满足MP=PD M_n=P*D^n*P^(-1); % M_n=P*D*P^(-1)*P*D*P^(-1)*...*P*D*P^(-1)=P*D^n*P^(-1) M_nlimit=limit(M_n,n,inf); % 求极限 x_n=simple(M_n*[a0;b0;1-a0-b0]) % 化简 x_nlimit=M_nlimit*[a0;b0;1-a0-b0] % 求解最终状态