【math】大规模对称正定稀疏线性方程组的求解与代数多重网格

本文主要是介绍【math】大规模对称正定稀疏线性方程组的求解与代数多重网格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大规模对称正定稀疏线性方程组的求解与代数多重网格

      • 代数多重网格
      • 问题定义
      • 迭代法的优畧
      • 几何多重网格
      • 代数多重网格

代数多重网格

你好!代数多重网格一个很有意思的话题。

问题定义

很多问题都可以抽象为求解下列优化的问题:
在这里插入图片描述
对于图像问题,一方面由于绝大多数模型都只会建立某个像素与它局部之间的关系,因此线性方程组的系数矩阵 A A A通常满足某种特定的稀疏性;另一方面,由于图像分辨率较高,因此线性方程组维度实际上极大,导致快速计算难度较大。
因此,这个问题的****最终核心在于:如何快速求解一个稀疏大规模的对称正定的线性方程组

迭代法的优畧

对于简单迭代法,如雅可比迭代,高斯-塞德尔迭代等,都存在高频快速收敛,低频难以收敛的问题。 简单来说,对于柏松问题:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

几何多重网格

为了解决低频收敛慢的问题,多重网格算法应运而生。 核心思想在于,在细网格上的低频可以变为粗网格上的高频。 注意到对于$ \lambda_{k}$ ,如果N变为N/2实际上可以认为频率变为了原来的两倍,那么收敛性自然会变好。 因此,我们可以先在细网格上迭代,消除了高频误差,然后放到粗网格迭代,消除细网格上的低频误差,然后再在粗网格上refine最终结果,大致流程如下图:
在这里插入图片描述
这个方法实际上是比较简单的,网格如下所示:
在这里插入图片描述
红色的点代表粗网格上的节点,如果我们将网格细化,那么,可以得到细网格的点:
在这里插入图片描述
这些点的值通过粗网格插值而来,也就是说,几何多重网格实际上是依赖于实际的网格,人为设定了粗网格和细网格,从而设置的一种多重网格算法。

注意到这种方法细网格上的节点上一定有粗网格上的节点,因此原来如果粗细网格原来是同一个点,只需要将粗网格上的点赋值到细网格上,如果是新的点,那么需要对它进行插值,假设这个矩阵为 S , f k S,f_{k} S,fk 表示第k层网格上的节点,那么 f k = S ∗ f k − 1 f_{k} =S*f_{k-1} fk=Sfk1 ,因此我们只需要求解线性方程组:
A k − 1 f k − 1 = g k − 1 A_{k-1}f_{k-1}=g_{k-1} Ak1fk1=gk1
之后插值即可。

但实际上这样做是不对的。回到最初的问题,我们要消除的是低频误差,也就是“光滑”误差,粗网格上迭代后的结果实际上和光滑没有太多关系,我们迭代后的结果,实际上是消除了高频的误差,也就是将误差变得光滑了。 因此,我们将误差传到粗网格上实际上是更为合理的,因此我们最终的迭代思路实际上是不断修正误差,即:
f k = f 0 + ∑ k = 1 M e k f_k=f_0 + \sum^{M}_{k=1}{e_k} fk=f0+k=1Mek
其中 e k e_k ek 代表每层网格给出的插值后的补偿误差。
那么,如何建立误差方程呢?
定义残差:
E k = A f k − b E_k =Af_k -b Ek=Afkb
由此,我们有误差方程: A e k = E k Ae_k =E_k Aek=Ek
由于我们希望将低频误差放到粗网格上进行消除,因此我们实际上将 e k e_k ek “限制”到了粗网格上计算,然后再插值回粗网格上进行“误差补偿”。

最终,我们实际上计算了:
K k − 1 e k − 1 ′ = E k − 1 K_{k-1} e^{'}_{k-1} = E_{k-1} Kk1ek1=Ek1
然后插值得到 e k − 1 = S ∗ e k − 1 ′ e_{k-1}=S*e^{'}_{k-1} ek1=Sek1
最后补偿到 f 上。

代数多重网格

是否有一种方法可以依赖于系数矩阵本身的特性,从而设计一种多重网格方法,与实际网格无关,从而得到更好的收敛性呢?实际上是有的,这个方法就是代数多重网格。 由于我们现在没有了实际网格,那么实际上为了使用多重网格技术,我们需要回答两个问题:

  1. 要选择哪些节点为粗网格上的节点
  2. 如何插值
    对于问题1,实际上我们是需要准从两个原则:得到的粗网格节点能够通过插值表示细网格节点,或者说粗网格节点一定原来有和细网格节点相连。另一方面,我们希望粗节点能够尽量少,从而求解线性方程组的规模可以更小。 对于这个问题有个经典方法: 即Ruge提出来的方法

对于问题2,回答了两个子问题:

  1. 插值公式长什么样
    2)粗网格上的线性方程组长什么样

通常如果插值矩阵为 S k S_k Sk ,那么粗网格上的线性方程组的系数矩阵构建为:KaTeX parse error: Expected group after '_' at position 2: S_̲^{T}_k A_kS_k

因此实际上核心还是在于如何插值。

假设 a i j a_{ij} aij表示连接i和j节点的边的权重,同时我们认为残差几乎为0,由此可以得到:

r i = a i i e i + ∑ a i j e j ≈ 0 r_i = a_{ii}e_i + \sum{a_{ij}e_j} \approx 0 ri=aiiei+aijej0
由此:

a i i e i ≈ − ∑ a i j e j a_{ii}e_i \approx- \sum{a_{ij}e_j} aiieiaijej

由于这些边连接的节点可以分为3类:

细网格上的节点 e f e_f ef
粗网格上的节点 e c e_c ec
连接极弱的节点 e w e_w ew
若用C表示粗节点误差集合,F表示细节点误差集合,W表示弱连接集合,可以将求和部分分为三块:

a i i e i ≈ − ∑ j ∈ C a i j e j − ∑ j ∈ F a i j e j a_{ii}e_i \approx- \sum_{j \in C}{a_{ij}e_j} - \sum_{j \in F}{a_{ij}e_j} aiieijCaijejjFaijej
由于弱连接集合的连接已经足够弱,因此我们强制认为这部分的 e j = e i e_j=e_i ej=ei ,由此可以得到新的近似公式:

( a i i + ∑ j ∈ W a i j ) e i ≈ − ∑ j ∈ C a i j e j − ∑ j ∈ F a i j e j (a_{ii} + \sum_{j \in W}{a_{ij}})e_i \approx- \sum_{j \in C}{a_{ij}e_j} - \sum_{j \in F}{a_{ij}e_j} (aii+jWaij)eijCaijejjFaijej
对于粗网格上的 e j e_j ej实际上在粗网格上已经算出,而细网格上的 e j e_j ej 实际上是没有的。 对于这部分有连接的细网格上的 e j e_j ej ,我们找到和它相连的所有粗网格的节点 e j c e_{jc} ejc ,通过公式:
e j = ∑ a j , j c e j c ∑ a j , j c e_j = \frac{ \sum{a_{j,jc}e_{jc}}}{ \sum{a_{j,jc}}} ej=aj,jcaj,jcejc

对它进行近似计算。

这篇关于【math】大规模对称正定稀疏线性方程组的求解与代数多重网格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/302498

相关文章

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

多重背包转换成0-1背包

http://acm.hdu.edu.cn/showproblem.php?pid=2191 多重背包特点: 一种物品有C个(既不是固定的1个,也不是无数个) 优化的方法: 运用神奇的二进制,进行物品拆分,转化成01背包 物品拆分,把13个相同的物品分成4组(1,2,4,6) 用这4组可以组成任意一个1~13之间的数! 原理:一个数总可以用2^

【高等代数笔记】线性空间(一到四)

3. 线性空间 令 K n : = { ( a 1 , a 2 , . . . , a n ) ∣ a i ∈ K , i = 1 , 2 , . . . , n } \textbf{K}^{n}:=\{(a_{1},a_{2},...,a_{n})|a_{i}\in\textbf{K},i=1,2,...,n\} Kn:={(a1​,a2​,...,an​)∣ai​∈K,i=1,2,...,n

2024 年高教社杯全国大学生数学建模竞赛题目——2024 年高教社杯全国大学生数学建模竞赛题目的求解

2024 年高教社杯全国大学生数学建模竞赛题目 (请先阅读“ 全国大学生数学建模竞赛论文格式规范 ”) 2024 年高教社杯全国大学生数学建模竞赛题目 随着城市化进程的加快、机动车的快速普及, 以及人们活动范围的不断扩大,城市道 路交通拥堵问题日渐严重,即使在一些非中心城市,道路交通拥堵问题也成为影响地方经 济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。 考虑一个拥有知名景区

【线性代数】正定矩阵,二次型函数

本文主要介绍正定矩阵,二次型函数,及其相关的解析证明过程和各个过程的可视化几何解释(深蓝色字体)。 非常喜欢清华大学张颢老师说过的一段话:如果你不能用可视化的方式看到事情的结果,那么你就很难对这个事情有认知,认知就是直觉,解析的东西可以让你理解,但未必能让你形成直觉,因为他太反直觉了。 正定矩阵 定义 给定一个大小为 n×n 的实对称矩阵 A ,若对于任意长度为 n 的非零向量 ,有 恒成

稀疏自编码器tensorflow

自编码器是一种无监督机器学习算法,通过计算自编码的输出与原输入的误差,不断调节自编码器的参数,最终训练出模型。自编码器可以用于压缩输入信息,提取有用的输入特征。如,[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]四比特信息可以压缩成两位,[0,0],[1,0],[1,1],[0,1]。此时,自编码器的中间层的神经元个数为2。但是,有时中间隐藏层的神经元

10400 -Game Show Math

这道题的话利用了暴力深搜,尽管给了20S,但是这样还会超时,所以就需要利用回溯进行减枝,因为是DFS,所以用一个数组vis[i][j]记录是否在状态i时候取到过j值,如果取到过的话,那么直接回溯(往后搜索已经没有意义了,之前到达这个状态的时候是无法得到结果的) 还有需要注意的地方就是题目的要求,每一步的结构都在(-32000,32000)之间,所以需要一步判断,如果在这个范围外直接回溯 最后一

线性代数 第六讲 特征值和特征向量_相似对角化_实对称矩阵_重点题型总结详细解析

文章目录 1.特征值和特征向量1.1 特征值和特征向量的定义1.2 特征值和特征向量的求法1.3 特征值特征向量的主要结论 2.相似2.1 相似的定义2.2 相似的性质2.3 相似的结论 3.相似对角化4.实对称矩阵4.1 实对称矩阵的基本性质4.2 施密特正交化 5.重难点题型总结5.1 判断矩阵能否相似对角化5.2 已知两个矩阵相似,求某个矩阵中的未知参数5.3 相似时,求可逆矩阵P,使

基于SA模拟退火算法的多车辆TSP问题求解matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述        基于SA模拟退火算法的多车辆TSP问题求解matlab仿真,三个车辆分别搜索其对应的最短路径,仿真后得到路线规划图和SA收敛曲线。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 (完整程序运行后无水印)

”CSS 网格“二维布局系统(补充)——WEB开发系列32

CSS 网格布局是一种二维布局系统,用于网页设计。通过使用网格,你可以将内容以行和列的形式进行排列。此外,网格布局还能够简便地实现一些复杂的布局结构。 一、什么是网格布局? CSS网格布局是一种二维布局系统,它允许我们创建复杂的网页布局,既可以处理行也可以处理列。与传统的布局方法不同,网格布局将网页分成多个可控的区域,这些区域可以任意排列、对齐和调整大小。网格布局使得创建灵活且响应