在这里插入图片描述

我的问题是:这里提到的,为什么会增加V的列向量?V是怎么储存的呢?

这个问题触及了Lanczos算法实现的核心细节。

🧠 为什么会增加V的列向量?

因为Lanczos算法是一个迭代过程,它从一个初始向量开始,通过矩阵A的反复作用,逐步构建出一组正交基。

算法步骤(简化版):

  1. 第0步:从初始向量v₀开始,归一化后存入V的第0列
  2. 第1步:计算w₁ = A·v₀,正交化后得到v₁,存入V的第1列
  3. 第2步:计算w₂ = A·v₁,正交化后得到v₂,存入V的第2列
  4. …以此类推…

每次迭代都会产生一个新的正交向量,所以V的列数随着迭代次数增加而增加。


💾 V是怎么储存的?

在您提供的代码中,V的存储方式很特别:

V = np.zeros((m, n))  # Store orthonormal vectors v0, v1, ... as row vectors

这里的关键是:V是按行存储的,而不是按列!

存储结构详解:

V = [[v₀₁, v₀₂, v₀₃, ..., v₀ₙ],  ← 第0行:向量v₀的n个分量[v₁₁, v₁₂, v₁₃, ..., v₁ₙ],  ← 第1行:向量v₁的n个分量  [v₂₁, v₂₂, v₂₃, ..., v₂ₙ],  ← 第2行:向量v₂的n个分量...[vₘ₁, vₘ₂, vₘ₃, ..., vₘₙ]   ← 第m行:向量vₘ的n个分量
]

为什么这样设计?

注释中说明了原因:“Numpy array is row-major, so accessing row is faster”

  • NumPy数组是行优先存储的
  • 按行访问比按列访问更快
  • 在迭代中我们经常需要访问整个向量(即整行)

🔄 迭代过程中的V增长

让我们看看在迭代中V是如何"增加列向量"的:

for j in range(1, m):  # j从1到m-1# ... 计算beta[j-1] ...V[j] = w / beta[j-1]  # ← 这里!新的正交向量存入第j行

实际上:每次迭代不是在V中增加新的,而是在V中填入新的

正确的理解应该是:

每次迭代,V的行数增加1(即新增一个正交向量),同时三对角矩阵T的尺寸也随之增加。


📊 可视化存储过程

假设n=3(向量维度),m=4(要生成4个正交向量):

初始状态:

V = [[v₀₁, v₀₂, v₀₃]  ← v₀已填入[ 0,   0,   0 ]  ← 等待v₁[ 0,   0,   0 ]  ← 等待v₂  [ 0,   0,   0 ]  ← 等待v₃
]

第1次迭代后:

V = [[v₀₁, v₀₂, v₀₃]  ← v₀[v₁₁, v₁₂, v₁₃]  ← v₁已填入[ 0,   0,   0 ]  ← 等待v₂[ 0,   0,   0 ]  ← 等待v₃
]

第2次迭代后:

V = [[v₀₁, v₀₂, v₀₃]  ← v₀[v₁₁, v₁₂, v₁₃]  ← v₁  [v₂₁, v₂₂, v₂₃]  ← v₂已填入[ 0,   0,   0 ]  ← 等待v₃
]

第3次迭代后:

V = [[v₀₁, v₀₂, v₀₃]  ← v₀[v₁₁, v₁₂, v₁₃]  ← v₁[v₂₁, v₂₂, v₂₃]  ← v₂[v₃₁, v₃₂, v₃₃]  ← v₃已填入
]

✅ 总结

  1. V是按行存储的,每一行代表一个正交向量
  2. 每次迭代增加一行(即一个新的正交向量)
  3. 注释中的"列向量"可能是笔误,应该是指"行向量"
  4. 这种存储方式是为了利用NumPy的行优先特性,提高访问速度

所以图片中的描述应该理解为:每次迭代,V的行数增加1,同时生成一个新的正交向量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/94775.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94775.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/94775.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统——TCP服务端并发模型

TCP:建立连接,一对一要实现多任务并发,就引出了并发模型一、多进程与多线程1.在相同资源情况下,进程资源开销大,但其安全性高2.线程相对于进程资源开销小,且并发量比进程大①多进程并发基础代码#include &l…

Ubuntu 22.04 插入光驱后磁盘满启动故障clean, ...files, ...blocks

硬件环境 设备型号:机械革命 Yilong15Pro Series GM5HG0A操作系统:Ubuntu 22.04.5 LTS (Jammy Jellyfish)内核版本:6.8.0-65-generic 问题经过 初始症状 连接外置光驱后,系统出现异常: 风扇持续高速运转,噪…

声网RTC稳定连麦、超分清晰,出海直播技术不再难选

我们是面向中东、南亚新兴市场的泛娱乐直播平台,主打 1V1 互动、PK 团战与语音房。首个版本落地时,前端开发最焦虑的不是业务逻辑,而是音视频底层问题 —— 延迟高、卡顿多、合唱不同步致观众秒退,我们每周改底层,单 P…

设计模式:桥接模式(Bridge Pattern)

文章目录一、桥接模式的定义二、为什么需要桥接模式?三、示例代码一、桥接模式的定义 桥接模式是一种结构型设计模式,它的主要作用是将抽象部分与实现部分分离,使它们能够独立变化。换句话说,就是把“抽象”和“实现”放到两个独立…

AI-Agent 深度科普:从概念到架构、应用与未来趋势

目录 一、Agent 究竟是什么? 二、Agent 的核心组成模块 三、Agent 架构类型与协作模式 单智能体(Single-Agent) 多智能体协作(Multi-Agent) 人机协作(Human-in-the-loop) 四、Agent 的能…

企业分支上云的常见误区与纠正方案

数字化转型的浪潮下,“上云”几乎成为所有企业的必答题。然而,在实际落地中,很多企业发现:总部上云容易,分支上云却困难重重。不是网络体验不稳定,就是合规风险频出,要么就是成本失控。这其中很…

深入解析函数栈帧创建与销毁

目录 一、函数栈帧(Stack Frame)整理 1、核心概念 2、为什么需要函数栈帧? 3、函数栈帧的主要内容 二、理解函数栈帧能解决的核心问题 1、局部变量的生命周期与本质 2、函数调用的参数传递机制 3、函数返回值的传递 三、函数栈帧的创…

广告牌安全监测系统综合解决方案

一、方案背景 广告牌作为城市户外广告的重要载体,广泛分布于城市道路、商业区及交通枢纽等人流密集区域。由于长期暴露在自然环境中,广告牌面临着风荷载、雨雪侵蚀、温度变化等多重因素的影响,其结构安全性和稳定性直接关系到公共安全。近年来…

MII的原理

一、介绍 MII 是 Media Independent Interface(媒体独立接口) 的缩写,是一种用于连接网络物理层(PHY)芯片和数据链路层(MAC)芯片的标准硬件接口,核心作用是让不同类型的物理层&…

【Excel】Excel的工作场景

一、Excel的发展历史 1.1 版本迭代周期 自Excel 2019版本起,微软将更新周期稳定在每3年一次,而3年的周期刚好平衡了创新与稳定:既能紧跟大数据时代下用户对自动化、智能化处理的需求(比如近年数据量激增带来的批量处理需求&#x…

nestjs 连接redis

1、下载npm install --save nestjs-modules/ioredis ioredis2、全局模块中引用RedisModule.forRootAsync({useFactory: (configService: ConfigService) > {return {type:"single",url: configService.get(redis.url) };},inject: [ConfigService], }),整体如下&…

需求管理需要哪些角色配合

需求管理是项目管理的关键组成部分,它确保项目目标得到准确理解并能顺利实现。有效的需求管理需要多个角色的紧密配合,包括项目经理、产品经理、需求分析师、开发人员、测试人员等。这些角色共同协作,确保需求从收集、分析、实施到验证的每一…

SqlHelper类的方法详细解读和使用示例

在 C# 数据库编程中,SqlHelper类是简化 SQL Server 操作的重要工具,它封装了ADO.NET的底层细节,让开发者能更专注于业务逻辑。以下从方法原理、使用示例和实战技巧三个方面进行详细说明。 一、SqlHelper 核心方法原理与对比 SqlHelper的方法…

智能一卡通系统通过集成身份识别、权限管理、数据联动等技术,实现多场景一体化管理。以下是多奥基于最新技术趋势和应用案例的系统解析

智能一卡(码、脸)通系统包括消费系统、梯控、门禁、停车场管理、访客机等,需要了解这些系统的集成应用和最新技术发展。多奥打算从以下几个维度来讲解。智能一卡通系统的整体架构和主要功能模块各子系统(门禁、梯控、停车场、访客管理等)的技…

嵌入式学习日志————USART串口协议

1.通信接口通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统通信协议:制定通信的规则,通信双方按照协议规则进行数据收发名称引脚双工时钟电平设备USARTTX(数据发送脚)、RX(数据接收脚…

微软硬件笔试面试核心题型详细解析

微软硬件笔试面试核心题型详细解析 本专栏预计更新90期左右。当前第42期-笔试面试核心题型详细解析. 本文一共4个章节,核心内容如下。 微软作为全球顶尖的科技公司,其硬件工程师的选拔标准极高。笔试不仅考察扎实的理论基础,更注重解决实际问题的能力、对新技术的理解以…

CMake构建学习笔记21-通用的CMake构建脚本

在之前使用CMake构建程序的脚本(CMake构建学习笔记-目录)中,大部分内容都有比较强的相似性,那么是不是可以这些相似的内容提取出来作为一个单独的脚本,在构建具体的程序的时候再去调用这个脚本呢?这样做的好…

无人机和无人系统的计算机视觉-人工智能无人机

无人机和无人系统的计算机视觉-人工智能无人机将计算机视觉与无人系统相结合,可以提升其自主或半自主执行复杂任务的能力。这些系统将图像数据与其他机载传感器(例如 GNSS/GPS、IMU、LiDAR 和热像仪)融合,以解读周围环境并执行精确…

【开题答辩全过程】以 基于hadoop架构的教学过程监控系统为例,包含答辩的问题和答案

个人简介:一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧…

坎坷基金路

2025年8月27日上午10:59从基金委官网上中外合作入口查到自己的基金中了。心情顿时五味杂陈,回想起写基金忙碌的9个月,各位专家对我的指导,嘴角楠楠的说:感恩。自己觉着比较重要的几个点:1、立意必须基于自己的过往研究…