和积法python代码

2023.3.16

#和积法求最大特征向量及最大特征值
import numpy as np

#输入矩阵
A = np.array([[1,1,3, 1/5,3,1/3,3],
[2,1/3,1,1/3,1/2,1/2,3],
[3,5,3,1,4,3,5],
[4,1/3,2,1/4,1,1/3,3],
[5,3,2,1/3,3,1,5],
[6,1/3,1/3,1/5,1/3,1/5,1],
[7,1/7,1/5,1/9,1/5,1/6,1/3]
])
‘’‘A = np.array([[1,3,1/3],
[1/3,1,1/5],
[3,5,1]
])’‘’
‘’‘A = np.array([
[1,1,1,4,1,1/2],
[1,1,2,4,1,1/2],
[1,1/2,1,5,3,1/2],
[1/4,1/4,1/5,1,1/3,1/3],
[1,1,1/3,3,1,1],
[2,2,2,3,1,1]
])’‘’

#按列相加
axis_sum1 = A.sum(axis=0)

i = 0
j = 0
B = np.zeros((len(A),len(A)))
#按列归一化
for i in range(0,len(axis_sum1)):
for j in range(0,len(axis_sum1)):
B[j][i] = A[j][i]/axis_sum1[i]

#归一化矩阵行相加
axis_sum2 = B.sum(axis=1)

#归一矩阵和
sum1 = B.sum()

#归一矩阵求最大特征向量
C = axis_sum2/sum1

C = np.around(
C, # numpy数组或列表
decimals=3 # 保留几位小数
)
print(“最大特征向量:”,C)

#求AC并转置
D = np.dot(A,C)
D = D.T
D = np.around(
D, # numpy数组或列表
decimals=3 # 保留几位小数
)

sum2 = 0
i = 0
#求最大特征值
for i in range(0,len(D)):
sum2 += D[i]/C[i]
x = sum2/len(D)

print(“最大特征值:”,x)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值