有没有快速的矩阵求幂方法?

2024-05-01

Is there any faster method of matrix exponentiation to calculate Mn (where M is a matrix and n is an integer) than the simple divide and conquer algorithm?


您可以将矩阵分解为特征值和特征向量。然后你得到

M = V * D * V^-1

其中 V 是特征向量矩阵,D 是对角矩阵。将此值提高到 N 次方,您会得到如下结果:

M^n = (V * D * V^-1) * (V * D * V^-1) * ... * (V * D * V^-1)
    = V * D^n * V^-1

因为所有 V 和 V^-1 项都取消了。

由于 D 是对角线,因此您只需计算一堆(实数)数字的 n 次方,而不是完整的矩阵。您可以在 n 的对数时间内完成此操作。

计算特征值和特征向量为r^3(其中r是M的行/列数)。根据 r 和 n 的相对大小,这可能会更快,也可能不会。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有快速的矩阵求幂方法? 的相关文章

  • 解释一下从 N 个给定集合中的每一个中给出第 K 个最大数字的示例?

    今天我尝试解决一个Facebook 编程挑战赛 https facebook interviewstreet com recruit challenges 我遇到的挑战是 酒吧问题 可以找到here https github com alo
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已
  • 如何仅使用单个数组在 JavaScript 中模拟调用堆栈

    我正在看维基百科页面 https en wikipedia org wiki Call stack在调用堆栈上 并尝试理解这个图像 据我所知 哈哈 const memory memory 0 3 top of stack pointer m
  • C 埃及分数

    古埃及人仅使用以下形式的分数1 n因此任何其他分数都必须表示为这些单位分数的总和 而且 所有单位分数都是不同的 在C或Java中使任何分数成为埃及分数 总和越少越好 的好方法是什么 可以使用什么算法 分支定界 a 例如 3 4 1 2 1
  • 子序列和

    给定一个整数数组 例如 1 2 3 1 查找是否存在总和为0并返回它 例如 1 2 3 or 2 3 1 检查每个子序列是O n 2 这效率太低了 有改进的想法吗 创建一个新数组 其中每个元素等于前一个元素加上该元素的总和 Input 1
  • 找到一条穿过任意节点序列的最短路径?

    In 这个先前的问题 https stackoverflow com questions 7314333 find shortest path from vertex u to v passing through a vertex wOP询
  • 需要一种将网络块范围折叠为超集范围列表的算法

    我的数学不及格 我需要一种有效的方法将网络范围缩小为超集 例如如果我输入 IP 范围列表 1 1 1 1至2 2 2 5 1 1 1 2至2 2 2 4 10 5 5 5至155 5 5 5 10 5 5 6至10 5 5 7 我想返回以下
  • 具有 2 个属性的背包算法。如何在 3d 数组中实现它?

    当有超过 1 个属性时 我无法理解背包问题 当有 1 个属性时 我必须编写一个使用具有 2 个属性的背包算法的程序 老师告诉我们 它必须在 3d 数组中完成 错误的实现将导致 O 2 n 处理时间 我无法想象这样的数组会是什么样子 假设这是
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • n 或 nlog(n) 比常数时间或对数时间更好吗?

    在 Coursera 上的普林斯顿教程中 讲师解释了遇到的常见增长顺序函数 他说 线性和线性算术运行时间是 我们努力的目标 他的推理是 随着输入大小的增加 运行时间也会增加 我认为这是他犯了错误的地方 因为我之前听过他提到线性增长顺序对于高
  • 为什么列表理解在数组相乘方面比 numpy 快得多?

    最近我回答了THIS https stackoverflow com questions 31596979 multiplication between 2 lists 31597029 31597029想要两个列表相乘的问题 一些用户建议
  • 有没有时间复杂度为O(N)的排序算法?

    大多数排序算法的复杂度为 O NN 或 O NlogN 来实现结果 但是 对于特定的输入集 有些算法的复杂度为 O N 我想知道是否有一种排序算法在所有情况下都具有 O N 的复杂度 如果您只能比较 检查两个项目是否为 正在排序的值 那么您
  • 数学/算法使图像适合屏幕保留纵横比

    我需要数学 算法方面的帮助来拍摄已知尺寸的图像并适合两个屏幕尺寸之一 720 x 480 或 1280 x 1024 图像尺寸来自 XML 文件 但这些尺寸是 Web 尺寸 我还从 XML 中选择了一些图像 这些图像的分辨率可能比 Web
  • 平铺单纯形噪声?

    我 作为业余爱好者 对伪随机噪声生成很感兴趣 特别是 Perlin 和 Simplex 算法 Simplex 的优点是速度 尤其是在更高的维度上 但 Perlin 可以相对容易地平铺 我想知道是否有人知道平铺单纯形算法 固定维度就好 泛型更
  • 如何计算排列? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个关于 Java 排列的问题 Suppose I have five different elements in an arra
  • 选择一组数字以达到最小总数的算法

    给定 一组数字n 1 n 2 n 3 n x 还有一个数字M 我想找到最好的组合 n a n b n c n gt M 该组合应达到达到或超过 M 所需的最小值 没有其他组合可以提供更好的结果 将在 PHP 中执行此操作 因此可以使用 PH
  • 使用简单矩阵乘法时出错

    我在一次简单的乘法运算中偶然发现了一个错误 这让我感到非常惊讶 我一直以为这里发生了什么 只为矩阵乘法 http www mathworks nl help matlab matlab prog operators html x 2 y z
  • 列出所有 k 元组,其条目总和为 n,忽略旋转

    有没有一种有效的算法来查找所有序列k总和为的非负整数n 同时避免旋转 如果可能的话 完全避免 顺序很重要 但对于我正在解决的问题来说 轮换是多余的 例如 与k 3 和n 3 我想要得到一个如下所示的列表 3 0 0 2 1 0 2 0 1
  • 如何优化分割重叠范围?

    我编写的这个 Python 脚本用于将重叠范围拆分为唯一范围 最后一次迭代 https codereview stackexchange com questions 285932 python script to split overlap
  • AStar-名称解释

    我正在寻找 AStar A 算法为何被称为 AStar 的解释 所有类似的 最短路径问题 算法通常都以其开发者的名字命名 那么 AStar 代表什么 有称为 A1 和 A2 的算法 后来证明A2是最优的 实际上也是可能的最好算法 所以他给它

随机推荐

  • Rails meta_search gem:按关联模型的计数排序

    我正在使用 meta search 对表中的列进行排序 我的表列之一是特定模型的关联记录的计数 基本上是这样的 class Shop lt ActiveRecord Base has many inventory records def c
  • GWT 将表单参数发送到 servlet

    我正在尝试捕获 servlet 中接下来的两个突出显示的字段 我可以在其中获取上传的文件 源代码与中所示的完全相同GWT FormSubmit 类 Javadoc http google web toolkit googlecode com
  • 如何通过 JavaScript 访问屏幕显示的 DPI 设置? [复制]

    这个问题在这里已经有答案了 有没有办法在 Javascript 函数中访问屏幕显示的 DPI 设置 我试图在页面上放置一个 HTML 面板 当用户的 DPI 设置为大 120 时 它会丢失该位置 我需要知道 DPI 是多少 以便我可以相应地
  • 在 LanguageTool 中,如何创建字典并使用它进行拼写检查?

    如何使用语言工具创建用于拼写检查的词典 我不是 Java 程序员 这是我第一次看到 LT 您好 这是我使用语言工具创建拼写检查词典的经验 希望你喜欢它 Part 1 如何创建字典 你需要 包含字典的 txt 文件 一个 info 文件 指定
  • python请求模块和连接重用

    我正在使用 python 的请求模块进行 HTTP 通信 我想知道如何重用已经建立的 TCP 连接 requests 模块是无状态的 如果我重复调用同一个 URL 的 get 不是每次都会创建一个新连接吗 Thanks 全局函数如reque
  • 如何在 ASP.NET Core 中启用跟踪日志记录?

    我无法获得基本知识LogTrace 我的应用程序中的输出 这是一个重现 使用 Visual Studio 2017 创建新的 ASP NET Core 应用程序 可选 注释掉 UseApplicationInsights 所以重现更清晰 将
  • PyGTK:带线程的 gobject.idle_add() 和 timeout_add()

    是否有任何明确的文档说明idle add timeout add 和 或它们安装的实际回调是否需要锁 任何类型 def work args 1 gtk gdk threads enter needed self ui change some
  • 对于我的智力来说,太多的 order by、max、子查询

    我似乎无法解决这个问题 我确信它需要子查询 但我没有选择 我的大脑无法处理这个或其他事情 我需要帮助 小介绍 我有一个投注赔率网站 每 15 分钟 我都会从不同的博彩公司导入特定赛事的最新赔率 赢 平 输 或 1 X 2 赔率表的每一行都有
  • 如何在 SQL Server 中调试合并?

    我正在尝试学习如何使用 MERGE 运算符 以下代码可以正确编译 ALTER PROCEDURE moto procPM UpdateLines LineId As Int null LineName As Varchar 100 Dele
  • 扩展 Google 地图上的叠加标记?

    我可以将覆盖项目很好地绘制到谷歌地图上 图像如下所示 其中 部分是 图钉 用于标记地图上的纬度 经度以及中间的图片 我的问题是 当用户点击它时有什么办法可以展开它吗 我当然必须将其更改为某种对话框或布局 并在单击时更改它 我想让它变小 就像
  • 如何在 iPhone iOS 4 中设置 UITableViewCell 样式副标题文本对齐方式居中?

    自从使用 iPhone SDK 4 将 XCode 升级到版本 3 2 3 后 我的代码不再工作 我有一个带有样式的默认单元格UITableViewCellStyleSubtitle并想要设置textAlignment of textLab
  • 同时迭代两个数组

    我是斯威夫特的新手 我一直在做Java编程 我有一个需要用 Swift 编写的场景 以下代码是 Java 代码 我需要在 Swift 中为以下场景编写代码 With String array strArr1 String strArr1 S
  • 在 JavaScript 中,如何让函数在特定时间运行?

    我有一个托管仪表板的网站 我可以编辑页面上的 JavaScript 目前每五秒刷新一次 我现在正在尝试获得window print 每天早上8点跑步 我怎么能这样做呢 JavaScript 是not用于此目的的工具 如果您希望某些东西在每天
  • 如何解决 macOS 上的 pygraphviz 错误?

    我在安装 pygraphviz 时遇到问题 并且我在 macOS Monterey 上使用 Anaconda 我已经在 Anaconda 上安装了 graphviz 然后我做了 brew install graphviz and then
  • 从 CLOB 内的 XML 到带有路径列表的 Oracle 表

    我使用的Oracle版本是 BANNER Oracle Database 10g Enterprise Edition Release 10 2 0 4 0 64bi PL SQL Release 10 2 0 4 0 Production
  • Python 解决 Project Euler 问题 #21 的速度似乎很慢

    我正在尝试解决欧拉计划中的问题 21 https projecteuler net problem 21 我认为我写的一切都是正确的 但是 我无法得到最终答案 因为程序没有完全执行 def d num SUM 0 for i in rang
  • Ubuntu OpenCV 无法编译

    我正在尝试使用以下命令编译 OpenCV 3 2 1 cmake DCMAKE BUILD TYPE Release DBUILD SHARED LIBS OFF DCMAKE INSTALL PREFIX usr local DOPENC
  • 是否有替代方法或方法让 Rc> 限制 X 的可变性?

    use std rc Rc use std cell RefCell Don t want to copy for performance reasons struct LibraryData Fields Creates and muta
  • 将数组分配给结构体中的数组

    我正在尝试将一个数组分配给 typedef 结构的一个字段 但实际上找不到一种方法 我已经搜索过这个问题 但我似乎找到的只是 char 数组的答案 这不是我正在寻找的 我只是试图将一个数组分配给一个 int 数组 并寻找一种实用的方法下面的
  • 有没有快速的矩阵求幂方法?

    Is there any faster method of matrix exponentiation to calculate Mn where M is a matrix and n is an integer than the sim