计算方法(二)线性代数方程组的数值解

2024-02-12 21:30

本文主要是介绍计算方法(二)线性代数方程组的数值解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 高斯消元法

线性代数的知识,过于基础

2. 矩阵的三角分解

2.1 LU分解

主要记住,如何通过LU分解(包括接下来的杜利特尔分解也属于其中一种)来计算A x x x=b

四步法:
最初:A x x x=b
LU分解:LU x x x=b(这里分解方法看2.2)
求y:Ly=b
求x:Ux=y

2.2 杜利特尔分解

就是高斯消元的过程,每次消元的乘积数写在对应位置上得到L,高斯消元的结果是U,必考。题目一般要结合上述通过分解计算A x x x=b的方法。在这里插入图片描述
下图第一行为LDU分解,第二行为克洛特分解。
挺简单的,稍微看一下就好。

LDU即在杜利特尔分解的基础上将按列再进行一次高斯消元得到D和U;克洛特分解即是在最初的矩阵按列进行一次高斯消元。

所以也可以说,杜利特尔分解是L(DU),克洛特分解是(LD)U
在这里插入图片描述

3. 消元法在计算机上的实现

3.1选主元的必要性

看下书即可,大概写的是,主要是怕主元过小,放大倍数过高,误差一下就起来了。

3.2 选主元的方法

列主元:每次从主元所在的列里选最大的,然后将最大的这一行和本来主元所在行交换。

全主元:不考

4. 向量和矩阵范数

这一节一下子背的东西多起来了。

4.1 向量范数

定义

定义我扒百度了,注意其中|| x x x||=0当且仅当 x x x=0很重要,是判断一个函数是否可以是一个范数的充分条件。
在这里插入图片描述

性质

  1. ||0||=0
  2. ||-x||=|-1|*||x||=||x||
  3. ||x-y||≥||x||-||y||

常见三种向量范数:1,2,∞

在这里插入图片描述

等价性

如果你愿意看,还可以看一下向量范数的等价性。

|| x x x|| ∞ _{∞} ≤ || x x x|| 2 _{2} 2 n \sqrt{n} n *|| x x x|| ∞ _{∞}

|| x x x|| ∞ _{∞} ≤ || x x x|| 1 _{1} 1 n n n*|| x x x|| ∞ _{∞}

我是觉得看不看都ok了

收敛性

划重点的时候强调了,收敛性也要会

收敛的充分条件:

收敛的充要条件:
在这里插入图片描述

4.2 矩阵范数

同样也是,正定性、齐次性、三角不等式三个性质,只不过矩阵用AB,向量用xy而已。

题里出过求矩阵范数,所以还是要记一下这些常见的矩阵范数。
在这里插入图片描述

4.3 谱半径

在这里插入图片描述
λ是A的特征值,谱半径就是求按模最大的特征值

P.S. 特征值概念来自线性代数,可以随便找个b站视频看一下特征值特征向量,学习通资料里的视频有点抽象,适合理解数学,不太适合背计算。

重点: 对称矩阵的谱半径和其2范数相等

5.条件数

只需要知道条件数的定义:

cond(A)=||A||*||A − 1 ^{-1} 1||

(||是上面刚讲的范数)

6.迭代法

6.1 迭代法的一般形式

x ∗ x^* x = M x ∗ x^* x + g

从这个式子看起,我们要知道,迭代法里面所有公式,左面的x和右面的x不是一个x,左面的相当于 x ( k + 1 ) x^{(k+1)} x(k+1),右面的相当于 x ( k ) x^{(k)} x(k)
我们不停的带入 x ( k ) x^{(k)} x(k)求得 x ( k + 1 ) x^{(k+1)} x(k+1),使x越趋向于真实解,所以,我们需要找到一个收敛的迭代格式。

6.2 迭代法的收敛性

这两个定义还是挺重要的,划重点的时候特意说了一下。

定理2.7 迭代格式对任何初始近似值 x ( 0 ) x^{(0)} x(0)均收敛的充要条件是迭代矩阵M得谱半径ρ(M)<1

推论2.1 若||M||<1(可以是任何一种相容范数),则迭代格式收敛。

6.3 雅各比迭代法

6.4 高斯-赛德尔迭代法

这两个一起说了,根据P49页例题讲。

分别用其他变量表示x,y,z(各个不同的变量),根据各个迭代法得分量形式用于计算。

雅各比:左侧为第(k+1)代,右侧为第(k)代。
在这里插入图片描述

高斯:左侧为第(k+1)代,右侧若已经算出,则用刚刚算出的第(k+1)代,否则为第(k)代。
在这里插入图片描述

迭代法的矩阵形式判断迭代法是否收敛:

首先要记住三个变量,虽然与之前矩阵分解的变量同名,但是不同含义,首先,最基础的矩阵(根据题中得到的)定义为A。

D:A的对角线构成的对角矩阵
-L:A的严格下三角部分构成的下三角矩阵
-U:A的严格上三角部分构成的上三角矩阵

什么叫严格:就是主对角线全是0
在这里插入图片描述

然后要记住分别的迭代矩阵:

雅各比:
在这里插入图片描述

高斯:
在这里插入图片描述

求M矩阵的特征值(线代),按模(实数就是绝对值)最大的特征值是谱半径(上文4.3),谱半径<1就收敛(上文6.2)。

这道题还是挺重要的,相当于把之前的知识点都套进来了,而且考试也有只改个数的一样的题。

这篇关于计算方法(二)线性代数方程组的数值解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

IBS和IBD的区别和计算方法介绍

大家好,我是邓飞。 今天介绍一下IBS和IBD的区别: IBS(肠易激综合症)和IBD(炎症性肠病)是两种不同的消化系统疾病,主要区别如下: IBS(Irritable Bowel Syndrome):是一种功能性肠道疾病,主要表现为腹痛、腹胀、腹泻或便秘,症状通常与饮食、压力和心理因素相关,没有明显的器质性病变。 IBD(Inflammatory Bowel Disease):是一组

线性代数|机器学习-P35距离矩阵和普鲁克问题

文章目录 1. 距离矩阵2. 正交普鲁克问题3. 实例说明 1. 距离矩阵 假设有三个点 x 1 , x 2 , x 3 x_1,x_2,x_3 x1​,x2​,x3​,三个点距离如下: ∣ ∣ x 1 − x 2 ∣ ∣ 2 = 1 , ∣ ∣ x 2 − x 3 ∣ ∣ 2 = 1 , ∣ ∣ x 1 − x 3 ∣ ∣ 2 = 6 \begin{equation} ||x

组合c(m,n)的计算方法

问题:求解组合数C(n,m),即从n个相同物品中取出m个的方案数,由于结果可能非常大,对结果模10007即可。       共四种方案。ps:注意使用限制。 方案1: 暴力求解,C(n,m)=n*(n-1)*...*(n-m+1)/m!,n<=15 ; int Combination(int n, int m) { const int M = 10007; int

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

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

python科学计算:NumPy 线性代数与矩阵操作

1 NumPy 中的矩阵与数组 在 NumPy 中,矩阵实际上是一种特殊的二维数组,因此几乎所有数组的操作都可以应用到矩阵上。不过,矩阵运算与一般的数组运算存在一定的区别,尤其是在点积、乘法等操作中。 1.1 创建矩阵 矩阵可以通过 NumPy 的 array() 函数创建。矩阵的形状可以通过 shape 属性来访问。 import numpy as np# 创建一个 2x3 矩阵mat

交换两个变量数值的3种方法

前言:交换两个数值可不是"a = b,b = a"。这样做的话,a先等于了b的值;当“b = a”后,因为此时a已经等于b的值了,这个语句就相当于执行了b = b。最终的数值关系就成了a == b,b == b。 下面教给大家3种交换变量数值的方法: 目录 1. 中介法 2. 消和法 3. 异或法 4. 总结 1. 中介法 中介法(又称 临时变量法 或 酱油法),其中心

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

文章目录 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,使

【鼠鼠学AI代码合集#5】线性代数

在前面的例子中,我们已经讨论了标量的概念,并展示了如何使用代码对标量进行基本的算术运算。接下来,我将进一步说明该过程,并解释每一步的实现。 标量(Scalar)的基本操作 标量是只有一个元素的数值。它可以是整数、浮点数等。通过下面的 Python 代码,我们可以很容易地进行标量的加法、乘法、除法和指数运算。 代码实现: import torch# 定义两个标量x = torch.tens

OpenGL/GLUT实践:流体模拟——数值解法求解Navier-Stokes方程模拟二维流体(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 实现效果2 实现过程2.1 流体模拟实现2.1.1 网格结构2.1.2 数据结构2.1.3 程序结构1) 更新速度场2) 更新密度值 2.1.4 实现效果 2.2 颜色设置2.2.1 颜色绘制2.2.2 颜色交互2.2.3 实现效果 2.3 障碍设置2.3.1 障碍定义2.3.2 障碍边界条件判定2.3.3 障碍实现2.3.