特征值与特征向量 matlab数值解,用MATLAB和numpy求解特征值和特征向量,matlab,与

对比一下numpy与matlab求解的特征值与特征向量

d63978e799f3c837a3ce6c31c229034a.png

特征值 λ1=λ2=1 λ3=2

26c00962ac89013a832a0d1b0f833fbb.png

特征值 λ1=-1 λ2=λ3=2

如何求解特征向量

1.这里列举第一个中λ=1时对应的特征向量。

(A-λ*E)*x = 0

得(A-E)*x = 0

对A-E进行 行变换 得

[[-2,1,0],[1,0,1],[0,0,0]]

-2*x1+x2 = 0

x1+x3=0

有3-2=1个自由变量,令x1为自由变量

x = [x1 x2 x3]T = [x1 2*x1 -x1]T = x1*[1 2 -1]T

2.这里列举第二个中λ=2时对应的特征向量。

(A-2E)*x = 0

[[-4,1,1],[0,0,0],[0,0,0]]

-4*x1+x2+x3 = 0

有3-1=2个自由变量,令x2 x3为自由变量

x = [x1 x2 x3]T = [(x2+x3)/4,x2,x3]T = x2*[1/4 1 0]T + x3*[1/4 0 1]T

或者是 令x1 x3为自由变量

x = [x1 x2 x3]T = [x1,4x1-x3,x3]T = x1*[1 4 0]T + x3*[0 -1 1]T

numpy

import numpy as np

A1 = np.array([[-1,1,0],[-4,3,0],[1,0,2]])

eig_val1,eig_vec1 = np.linalg.eig(A1)

print(eig_val1,'\n',eig_vec1)

A2 = np.array([[-2,1,1],[0,2,0],[-4,1,3]])

eig_val2,eig_vec2 = np.linalg.eig(A2)

print(eig_val2,'\n',eig_vec2)

输出:

[2. 1. 1.]

[[ 0.          0.40824829  0.40824829]

[ 0.          0.81649658  0.81649658]

[ 1.         -0.40824829 -0.40824829]]

[-1.  2.  2.]

[[-0.70710678 -0.24253563  0.30151134]

[ 0.          0.          0.90453403]

[-0.70710678 -0.9701425   0.30151134]]

matlab

A1 = [-1,1,0;-4,3,0;1,0,2];

A2 = [-2,1,1;0,2,0;-4,1,3];

[eig_val1, eig_vec1] = eig(A1);

[eig_val2, eig_vec2] = eig(A2);

输出:

0    0.4082    0.4082

0    0.8165    0.8165

1.0000   -0.4082   -0.4082

2     0     0

0     1     0

0     0     1

-0.7071   -0.2425    0.3015

0         0            0.9045

-0.7071   -0.9701    0.3015

-1     0     0

0     2     0

0     0     2

对比两者计算结果一样,只不过matlab的特征值是用一个对角矩阵表示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值