Krylov子空间迭代
Krylov子空间迭代法是很好的特征值计算方法。通过子空间迭代,把大型模态空间降阶到几十阶,大大简化了模态计算量。这需要我们对模态空间和子空间的物理意义要有准确的理解。
Krylov——“降维打击”
假设你有一个线性方程组:
Ax=b
其中A是已知矩阵,b是已知向量,x是需要求解的未知向量。
当你有这么个问题需要解决时,一般的思路是直接求A的逆矩阵:x= A − 1 A^{-1} A−1b
但是,如果A的维度很高,比方说n=10000,那么A就是一个大型矩阵,是很难求逆的,且A如果还是一个稀疏矩阵,那就更难求了。
这时Krylov想到了一种方法来替换A的逆:
A − 1 A^{-1} A−1b ≈ ∑ i = 0 m − 1 \displaystyle\sum_{i=0}^{m-1} i=0∑m−1 β i \mathbf{β}_i βi A i A^i Aib = β 0 \mathbf{β}_0 β0b + β 1 \mathbf{β}_1 β1Ab + β 2 \mathbf{β}_2 β2A²b…+ β m − 1 \mathbf{β}_{m-1} βm−1 A m − 1 A^{m-1} Am−1b
其中β是未知标量,m是假设的一个值,最大不能超过矩阵的维度n
这样处理就不用求出 A − 1 A^{-1} A−1,只要求出方程里那些β的值就好了
(Krylov通过数学上的推导证明了,当m趋近于矩阵维度n时算出来的值就是精确解。)
Krylov子空间迭代n步之后基向量将逐渐接近而线性相关,失去正交性。为构造残差最小,需要正交化Krylov子空间的基向量 , 采用Gram–Schmidt process 正交。这样构造的Krylov子空间迭代法,有个专门的称谓:Arnoldi 迭代。
解出β的值代入第一个公式得到:
0 = b - A x m x^{m} xm = b - A ∑ i = 0 m − 1 \displaystyle\sum_{i=0}^{m-1} i=0∑m−1 β i \mathbf{β}_i βi A i A^i Aib
b的维度是n,那就是有n个方程,但是β的数量小于n. 这种情况我们无法精确求解,只能求近似解。我们观察了一下这个方程,正好就是线性的,那么就可以用最小二乘法。
令
r m r^{m} rm = b - A x m x^{m} xm
这里r(m)是指当m为m时的残量。从第一个公式可以看出,如果我们最终得出的x完全精确,那么r应该等于0. 于是现在问题转变为求一个含有多个自变量的表达式的最小值问题。
含有多个自变量的表达式的最小值问题,可以用最小二乘法来解决,核心为以下公式:
∂ r ∂ β 0 \frac{\partial{r}}{\partial\mathbf{β}_0} ∂β0∂r = 0 ∂ r ∂ β 1 \frac{\partial{r}}{\partial\mathbf{β}_1} ∂β1∂r = 0 ∂ r ∂ β 2 \frac{\partial{r}}{\partial\mathbf{β}_2} ∂β2∂r = 0 ∂ r ∂ β 3 \frac{\partial{r}}{\partial\mathbf{β}_3} ∂β3∂r = 0,… ∂ r ∂ β m − 1 \frac{\partial{r}}{\partial\mathbf{β}_m-1} ∂βm−1∂r = 0
(提醒,这里的r指的是 r m r^{m} rm的平方和)
即r为最小值的时候,r关于所有变量的偏导都应当为0。
于是问题转化为了一个求m个方程m个未知数的方程组的问题
回顾一下大概就是:
大型稀疏矩阵求逆–>Krylov方法–>线性方程最小二乘问题–>小矩阵求逆
Krylov子空间迭代相关推荐
- 基础数学(七)——线性方程组的数值解法
文章目录 考试要求 基础知识 一般求解思路 消元法 高斯消元法 小主元导致的计算失误 高斯列主元素消去法(期末考试要求之一) 高斯消元法例题(期末必考) 高斯消元法的优缺点 减少fill-in现象(了 ...
- 大型稀疏线性方程组求解技术——工业仿真的底层核心
背 景 在工业仿真领域,对各种现实世界的问题进行数值模拟时,如流体动力学分析.电磁场仿真.结构力学应力应变分析等,其控制方程通常是偏微分方程组,在经过不同方法的隐式离散之后最终都可转化为大型稀疏线性 ...
- JFNK(Jacobian-free Newton-Krylov)方法
有人会问:非线性方程组不是用Newton循环方法就能解了吗?那为什么还需要JFNK方法呢? 我觉得,JFNK方法能解决Newton循环方法中最大的计算问题,让Newton循环方法不再痛苦. Newto ...
- krylov子空间迭代法
krylov子空间迭代法_lizhengjiang的博客-CSDN博客_krylov子空间 如何使用Krylov方法求解矩阵的运算尤其是逆? - 知乎
- 【高等数值分析】Krylov子空间方法
文章目录 1. 预备理论 1.1 Krylov 子空间 1.2 最佳逼近 1.2.1 方法一:最佳平方逼近 1.2.2 方法二:假设 AAA 对称正定 1.2.3 方法三:残差2范数 2. 基底正交化 ...
- 其他krylov子空间方法
其他krylov子空间方法 1.krylov子空间 K(A,q,k)=span{q,Aq,...,Ak−1q}K(A,q,k) = span\left \{q,Aq,...,A^{k-1}q\righ ...
- 关于(广义)代数特征值问题的一点注记
关于(广义)代数特征值问题的一点注记 感谢王同学和王同学提供的一些信息和资料. 文章目录 关于(广义)代数特征值问题的一点注记 常用特征值计算方法概述 对称特征值问题 非对称特征值问题 Krylov ...
- GPU加速库AmgX
GPU加速库AmgX AmgX提供了一条简单的途径来加速NVIDIA GPU上的核心求解器技术.AmgX可以为模拟的计算密集型线性求解器部分提供高达10倍的加速度,特别适合于隐式非结构化方法. 它是一 ...
- 矩阵相关概念的物理意义
参考链接: 矩阵乘法的本质是什么? 条件数 病态矩阵与条件数(&& 与特征值和SVD的关系) 矩阵的物理意义: https://blog.csdn.net/NightkidLi_911 ...
最新文章
- 独家 | 带你认识机器学习的的本质(附资料)
- redhat7 Oracle 12C 安装
- javase基础复习攻略《三》
- 关于整型数据符号位扩展的问题
- 安卓 原生okhttp使用get与post获取网络数据
- 人工智能ai 学习_学习代理| 人工智能
- 第十一节(单例模式初步、类的继承)
- 将DataRow转换为DataTable
- UNIX网络编程(第三版 ) 测试代码 7.3
- getAttribute、setAttribute、removeAttribute
- 比较好的浏览器_一款安卓黑科技手机浏览器 体积很小,功能很6!
- java连接数据库电商平台_Java数据库中台项目,电商,CMS轻松实现,包含数据库源文件...
- 什么是ipo表,ipo图,hipo图
- eXosip事件总结
- 这是一个价值一个亿的项目思维导图
- php 车架号校验规则,JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
- 洛谷P3717 [AHOI2017初中组]cover
- 【npm】伙计,给我来一杯package.json!不加糖
- html中onblur属性,html中的onfocus和onblur是什么属性?怎么使用?
- Dump文件分析 - PDB强制匹配流程
热门文章
- 各代iphone尺寸_iPhone新机屏幕尺寸对比 一代更比一代大
- getline() 把我弄得真捉急,菜鸟表示很无力
- 转-----交叉验证、留一交叉验证、自助法
- dhu 数据科学与技术 第1次作业
- css 风琴,玩一下纯 CSS 折腾的一个叫什么手拉风琴的图片展示效果
- slam之视觉+IMU
- 牛视源码。抖音矩阵系统,come here
- android 第三方模拟器 genymotion安装问题修复
- flask-migrate(flask_script与flask2.0不再兼容)
- 基于融云SDK实现高仿微信