盖尔金圆定理及严格对角占优矩阵(SDD)

盖尔金圆定理(Gersghorin Circle Thorem)

  盖尔金圆定理(Gersghorin Circle Thorem)是线性代数中一个有趣而实用的定理,可以用它来描述矩阵的特征值。首先我们先来看一下盖尔金圆定理。
  (盖尔金圆定理)对于任意的 n n 阶方阵A,若 λ λ A A 的一个特征值,则存在1in,使得 |λaii|j=1,jin|aij|. | λ − a i i | ≤ ∑ j = 1 , j ≠ i n | a i j | .
证明:
  若 λ λ A A 的一个特征值,设其特征向量为x,可以选取 i i 使得|xi|=maxj=1,2,...,n|xj|=1,这总是可以做到的,因为特征向量乘上任何数(除0外)仍为特征向量。
  根据特征值和特征向量的定义,有 Ax=λx A x = λ x ,因此有:

j=1naijxj=λxi. ∑ j = 1 n a i j x j = λ x i .

从而:
|(λaii)xi|=|λaii|j=1,jin|aijxj|j=1,jin|aij|. | ( λ − a i i ) x i | = | λ − a i i | ≤ ∑ j = 1 , j ≠ i n | a i j x j | ≤ ∑ j = 1 , j ≠ i n | a i j | .

证明完毕
  对于任意一个方阵,我们只要画出它在复平面上的盖尔金圆,就能推测出特征值的分布情况了,因为该方阵的所有特征值总是在这些圆中某一个内。
  下面给出如何在复平面上画方阵的盖尔金圆的Python代码,如下:

# Plotting Gershgorin Circles for any square matrix
from matplotlib.patches import Circle
import matplotlib.pyplot as plt
from math import sqrt
import numpy as np

# example matrix, each entity can be complex number
A = np.array([[5, 0, 0, -1],
              [1, 0, -1, 0],
              [-1.5, 1, -2, 1],
              [-1, 1, 1, -3j]
             ],dtype='complex')

# begin plotting figure
fig = plt.figure()
ax = fig.add_subplot(111)

# Circle: |A[i,i]-z| <= sum(|A[i,j]| for j in range(n) and j != i)
for i in range(A.shape[0]):
    real = A[i,i].real    # each complex's real part
    imag = A[i,i].imag    # each complex's image part

    # calculate the radius of each circle
    radius = -sqrt(A[i,i].real**2+A[i,i].imag**2)
    for j in range(A.shape[0]):
        radius += sqrt(A[i,j].real**2+A[i,j].imag**2)

    # add the circle to the  figure and plot the center of the circle
    cir = Circle(xy = (real,imag), radius=radius, alpha=0.5, fill=False)
    ax.add_patch(cir)
    x, y = real, imag
    ax.plot(x, y, 'ro')

# title
plt.title("Gershgorin Circles of Matrix")

# show the figure which can be used for analyse eigenvalues of the matrix
plt.savefig("E://GCircle.png")

该方阵的盖尔金圆分布如下图:


盖尔金圆分布图

  以下给出盖尔金圆定理在 严格对角占优矩阵中的应用。

严格对角占优矩阵(SDD)

  严格对角占优矩阵(Strictly Diagonally Dominant Matrix, SDD)是数值分析中的一个重要概念,它能保证Jacobi迭代法和Gauss-Seidel迭代法的收敛性。
  所谓SDD,指的是满足以下条件的方阵:

|aii|>j=1,jin|aij|,i=1,2,...,n. | a i i | > ∑ j = 1 , j ≠ i n | a i j | , ∀ i = 1 , 2 , . . . , n .

通俗地来理解,就是主对角线上的每个元素的模(或者绝对值)都大于该元素所在行的所有元素(除掉它本身)的模(或者绝对值)的总和。
  下面给出SDD的几个重要性质。
(SDD的性质)SDD必定是非奇异矩阵。
证明: A A 为SDD,它不是非奇异矩阵,则A至少有一个特征值为0,从而由盖尔金圆定理可知,存在 1in 1 ≤ i ≤ n ,使得 |aii|j=1,jin|aij|. | a i i | ≤ ∑ j = 1 , j ≠ i n | a i j | . 此与SDD的定义矛盾。从而SDD必定是非奇异矩阵。

(SDD的性质)若 A A 为SDD,则Ax=b有解。
证明:因为 A A 为SDD,故A可逆,从而 x=A1b. x = A − 1 b .

(SDD的性质)若 A A 为SDD,则对于方程Ax=b, Jacobi迭代法, Gauss-Seidel迭代法,SOR迭代法收敛。
证明:因为我们还没讲到Jacobi迭代法, Gauss-Seidel迭代法,SOR迭代法,因此我们将在之后的博客中给出该性质的证明,敬请期待。

YOLO与SDD是两种常用的目标检测算法,它们各有优缺点。 YOLO(You Only Look Once)算法的优点包括: 1.速度快:YOLO算法可以实现实时目标检测,每秒可以处理数百张图片。 2.高准确率:YOLO算法在目标检测方面表现出色,能够准确识别各种大小、形状、颜色的目标。 3.简单易用:YOLO算法的设计相对简单,易于实现和调整参数。 但是,YOLO算法也存在一些缺点: 1.对小目标不太敏感:由于YOLO算法采用了多尺度的特征图来检测目标,因此对于小目标的检测效果不太好。 2.边框不够精确:YOLO算法的边框定位并不是非常准确,因此在一些场景下可能无法满足要求。 3.不支持多尺度检测:YOLO算法不能同时处理多个尺度的目标,这会导致在一些场景下检测效果不佳。 SDD(Single Shot MultiBox Detector)算法的优点包括: 1.对小目标敏感:SDD算法采用了多层特征图,可以有效地检测小目标。 2.边框精确:SDD算法的边框定位比较准确,可以满足一些高精度要求的场景。 3.支持多尺度检测:SDD算法可以同时处理多个尺度的目标,因此可以满足各种不同的检测需求。 但是,SDD算法也存在一些缺点: 1.速度较慢:由于SDD算法需要处理多层特征图,因此速度相对较慢。 2.参数调整复杂:SDD算法的参数较多,需要进行复杂的调整和优化。 3.对于重叠目标处理不够好:由于SDD算法采用了非极大值抑制算法,因此在一些重叠目标的场景下可能无法处理得很好。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值