2 数值计算理论基础

Posted philolif

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2 数值计算理论基础相关的知识,希望对你有一定的参考价值。

2 数值计算理论基础

2.1 距离与极限

2.1.1 距离

距离是最为常见的概念之一,几何中线段的长度是其两个端点的距离,一个实数和近似值的绝对误差也是距离。如果抛开几何直观,可以把距离这个概念推广到任意一个集合中的两个元素。若把集合中的一个元素看成空间中的一个点,则距离表示的就是这两个点之间远近程度的一个数。下面给出形式化的定义:

(S)是一个非空集合,如果存在一个函数(或者说映射)(d),将(S imes S)的每一个元素映射到非负实数域(R^+),即(d:S imes S ightarrow R^+),并且满足以下条件:

  1. (d(x,y)ge0),仅当(x=y)时,(d(x,y)=0)
  2. (d(x,y)=d(y,x))
  3. (d(x,z)le d(x,y)+d(y,z))

我们称(d)(S)上的一个距离,称(S)按照距离(d)构成一个距离空间,记为((S,d)),在不发生混淆的情况下简记为(S)。换句话说只要满足以上三个条件的函数都可以称之为距离。

常用的距离有(以二维空间的点为例):(x=(x_1,y_1),y=(x_2,y_2))

  1. 绝对值距离(曼哈顿距离):(d_1(x,y)=|x_1-y_1|+|x_2-y_2|)
  2. 欧氏距离:(d_2(x,y)=sqrt{(x_1-y_1)^2+(x_2-y_2)^2})
  3. 切比雪夫距离:(d_3(x,y)=max{|x_1-y_1|+|x_2-y_2|})

对于([a,b])区间上的连续函数还可以定义距离:

  1. (d(x,y)=maxlimits_{ale tle b}|x(t)-y(t)|)
  2. (d(x,y)=int_a^b|x(t)-y(t)|dt)

2.1.2 极限

极限描述的是一组变元的变化趋势,其本质就是为了描述变元充分靠近某个固定的量而引入的,而体现靠近的程度则是通过距离来衡量。因此,可以在距离空间中引入极限的概念。

定义:((S,d))是一个距离空间,(x_nin S;(nin N^*),xin S)。当(n ightarrowinfty)时,点列({x_n})满足条件(d(x_n,x) ightarrow0),则称({x_n})按距离(d)收敛于(x),记为(limlimits_{n ightarrowinfty}x_n=x)

从定义可知,距离空间的极限是通过数列的极限引入的,因此,距离空间的收敛点列具有和微积分中收敛数列相应的结论。例如,在微积分中有柯西数列收敛的结论,因此距离空间中也有柯西点列收敛的结论。如果距离空间((S,d))中的每一个柯西点列都收敛于(S)中的某一点,则称((S,d))是完备的。

例如:n维向量空间(R^n)在欧氏距离的定义下构成的欧氏空间是完备的,这个空间中的点列(向量组成的序列)收敛等价于每个分量收敛。

2.2 压缩映射

这里先给出映射的定义:设(X)(Y)是两个集合,如果存在一个法则(f),使得任意一个(xin X),都存在一个唯一的元素(yin Y)与之对应,则称(f)(X)(Y)的一个映射,记为(f:X ightarrow Y)。如果(X=Y),则称(f)是集合(X)到自身的一个映射,也称(f)(X)上的一个变换。

实例:

  1. (X)是定义在(R)上的所有连续可微函数构成的集合,则
    [ Dx(t)=x'(t)qquad x(t)in X ]
    (D)(X)(C(-infty,+infty))(R上的连续函数)的映射,通常称(D)为微分算子

  2. (xin R^3,x=(x_1,x_2,x_3)^T),定义
    [ F(x)=left[egin{split} f_1(x)f_2(x) end{split} ight] ]
    (F)(R^3)(R^2)的一个映射。

定义:((X,d))是一个度量空间,(G:X ightarrow X)是一个映射,如果存在常数(0le Llt1),使得
[ d(G(x),G(y))le Ld(x,y) ]
则称(G)(X)上的压缩映射,根据压缩映射原理我们可以构造出不动点迭代。

定理:((X,d))是一个完备的度量空间,(g:X ightarrow X)是一个压缩映射,则(g)有唯一不动点。

证明:构造点列(x_0,x_1=g(x_0),x_2=g(x_1),cdots),因此
[ egin{split} d(x_{m+p},x_m)&le d(x_{m+p},x_{m+p-1})+cdots+d(x_{m+1},x_m)&=d(g(x_{m+p-1}),g(x_{x+p-2}))+cdots+d(g(x_m),g(x_{m-1}))&le Ld(x_{m+p-1},x_{x+p-2})+cdots+Ld(x_m,x_{m-1})&le(L^{m+p-1}+L^{m+p-2}+cdots+L^m)d(x_1,x_0)&=frac{L^m-L^{m+p}}{1-L}d(x_1,x_0)&ltfrac{L^m}{1-L}d(x_1,x_0) end{split} ]
根据柯西序列的收敛条件可知,(lim_{m ightarrowinfty}{d(x_{m+p},x_m)}=0),该序列必然收敛,也就是说该序列的极限就是映射(g)的不动点。下面简单说明其极限的唯一性,假设有两个不同的极限(a,b),则(d(a,b)=d(g(a),g(b))le Ld(a,b)),因为(0le Llt1),所以只能(d(a,b)=0),即(a=b)

2.3 向量空间和内积空间

2.3.1 向量空间

向量空间又称为线性空间,更加具体的定义可以参考线性代数教材。

2.3.2 内积空间

内积是定义在向量空间上的函数,具体的定义可参考线性代数等教材。当一个向量空间中定义了内积,那么可以将该向量空间称之为内积空间。

2.4 范数(norm)

定义:(X)是数域(R)上的线性空间,如果定义在(X)上的实值函数(f(x),xin X)满足下列条件:

  1. (f(x)ge0),当且仅当(x=0)时,(f(x)=0)(正定性)
  2. (f(lambda x)=|lambda|f(x))(lambdain R)(齐次性)
  3. (f(x+y)le f(x)+f(y)),(三角不等式)

则称(f(x))(x)的范数,常用(||x||)表示,如果一个线性空间(X)定义了范数,则称(X)是赋范线性空间,记为((X,||cdot||))

需要注意范数和距离的区别,范数是定义在线性空间上的一元函数,而距离是定义在集合上的二元函数,且对集合没有特殊的要求。一个赋范线性空间总是度量空间,事实上,设(X)是赋范线性空间,那么(x,yin X),令
[ d(x,y)=||x-y|| ]
通过验证范数的定义可知,上述定义实际上是通过范数定义了一个距离。

几个基本概念:

  1. 向量范数

    (R^n)空间的向量按向量加法和数乘构成线性空间,对(x=[x_1;x_2;cdots;x_n]^T)可定义范数:
    [ ||x||=sqrt{sum_i^n{x_i^2}} ]

  2. 矩阵范数:设(A)(n imes n)矩阵,定义
    [ ||A||=maxlimits_{||x||>0}frac{||Ax||}{||x||} ]
    由泛函分析的已证得的结论可知:
    [ ||A||=maxlimits_{||x||=1}||Ax||||Ax||le||A||cdot||x|| ]
    矩阵的范数定义为,随着(x)的变动(||Ax||)的最大值。

  3. 三种常用的向量范数:(x=[x_1;x_2;cdots;x_n]^T)

    1范数:(||x||_1=sum_k|x_k|)

    2范数:(||x||_2=sqrt{sum_k|x_k|^2})

    (infty)范数:(||x||_infty=maxlimits_{k}|x_k|)

  4. 常用的矩阵范数

    列范数:(||A||_1=maxlimits_{j}sum_k|a_{kj}|)

    行范数:(||A||_infty=maxlimits_{j}sum_k|a_{jk}|)

    2范数:(||A||_2=sqrt{lambda}),其中(lambda)(A^TA)的最大特征值(即(A)的最大奇异值)

    F范数:(||A||_F=sqrt{sum_isum_j|a_{ij}|^2})

矩阵范数的性质:

假设(Ain R^{n imes n})(f(A)=||A||)有以下性质:

  1. (||A||ge0)(||A||=0)当且仅当(A=O)(正定性)
  2. (||lambda A|=|lambda|cdot||A||)(齐次性)
  3. (||A+B||le||A||+||B||)(三角不等式)
  4. (||AB||le||A||cdot||B||)(相容性)

以上是关于2 数值计算理论基础的主要内容,如果未能解决你的问题,请参考以下文章

机器学习的数学基础

Python数值计算基础

[人工智能-数学基础-1]:深度学习中的数学地图:计算机数学数值计算数值分析数值计算微分积分概率统计.....

MATLAB-非线性方程的数值解法——二分法

SparkStreaming基础理论

计算机相关书单汇总:基础理论网络编码C/C++其他编程语言