Hilbert矩阵

Hilbert矩阵是一个特殊的方阵,它的定义为:

H_{n}=\left ( \frac{1}{i+j-1} \right )_{n\times n}

其中,n是Hilbert矩阵的阶数,ij分别为元素所在的行数和列数。如果写开,将会是以下的形式:

 \large H_{n}=\begin{bmatrix} 1 & \frac{1}{2} & \frac{1}{3} & \cdots & \frac{1}{n}\\ \frac{1}{2} & \frac{1}{3} & \frac{1}{4} & \cdots & \frac{1}{n+1}\\ \frac{1}{3} & \frac{1}{4} & \frac{1}{5} & \cdots & \frac{1}{n+2}\\ \vdots & \vdots & \vdots & \ddots & \vdots\\ \frac{1}{n} & \frac{1}{n+1} & \frac{1}{n+2} & \cdots & \frac{1}{2n-1} \end{bmatrix}

Hilbert矩阵有一系列的特点:

(1)是实对称的正规矩阵,也是汉克尔矩阵;

(2)其逆矩阵和行列式精确已知,

         逆矩阵表达式为:

H^{-1}_{n} = \left ( \frac{(-1)^{i+j} (i+n-1)! (j+n-1)!}{\left((i-1)!\right)^{2}\left((j-1)!\right)^{2} (n-i)!(n-j)!(i+j-1)} \right )_{n\times n}

         行列式表达式为:

\det H_n =\frac{((n-1)!(n-2)!\cdots 1!)^3}{(2n-1)!(2n-2)!\cdots n!}

(3)病态严重,条件数随阶数增大而急速增大,较小的摄动会对逆矩阵或方程组的解产生明显的影响;

(4)可用hilb(n)的MATLAB命令产生一个Hilbert矩阵,如5阶Hilbert矩阵:

>> hilb(5)

ans =

    1.0000    0.5000    0.3333    0.2500    0.2000

    0.5000    0.3333    0.2500    0.2000    0.1667

    0.3333    0.2500    0.2000    0.1667    0.1429

    0.2500    0.2000    0.1667    0.1429    0.1250

    0.2000    0.1667    0.1429    0.1250    0.1111

(5)可用invhilb(n)求取n阶Hilbert矩阵的逆矩阵;

(6)用Hilbert矩阵作为系数矩阵构造方程组,可用高斯消元法和共轭谐量法求解,前者精确度更高。

你可能感兴趣的:(矩阵,线性代数,matlab)