You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用for循环递归更新R矩阵并打印每轮迭代结果的实现方法

实现代码

你已经完成了初始化和归一化转置邻接矩阵的函数定义,在此基础上补充对应循环逻辑即可:

固定迭代轮次版本

适合已知需要迭代固定次数的场景,以下是迭代3轮的示例,和你给出的预期输出完全匹配:

# 提前计算固定的归一化转置邻接矩阵,避免循环中重复计算提升效率
M = normalized_Adj_matrix_transpose(A)
# 设置迭代轮次
iter_num = 3

for i in range(iter_num):
    R = M.dot(R)
    print(f"iteration {i+1}: {R.reshape((1,4))}")

自动收敛停止版本

如果需要迭代到R不再明显变化时自动停止,可以加入收敛判断逻辑:

import numpy as np
M = normalized_Adj_matrix_transpose(A)
# 收敛阈值,可根据自身精度需求调整大小
threshold = 1e-8
prev_R = R.copy()
iter_count = 0

while True:
    iter_count += 1
    R = M.dot(R)
    print(f"iteration {iter_count}: {R.reshape((1,4))}")
    # 用二范数判断两次迭代的差异
    if np.linalg.norm(R - prev_R) < threshold:
        print(f"已达到收敛条件,总迭代轮次:{iter_count}")
        break
    prev_R = R.copy()

内容的提问来源于stack exchange,提问作者DaCard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 16:45:01