MATLAB如何使用hilb函数创建Hilbert(希尔伯特)矩阵
【语法说明】
Y=hilb(n):生成 n 阶 Hilbert 矩阵,其元素值为 Y(i, j)=1/(i+j−1)。
【功能介绍】生成Hilbert矩阵,该矩阵是一个方阵。Hilbert矩阵是数学上一个著名的病态矩阵,所谓病态矩阵是指,在由该矩阵构成的线性方程组中,只要矩阵元素发生微小变化,方程组的解就会发生很大变化。Hilbert矩阵的病态程度与阶数有关,阶数越高病态程度越强。
【实例】生成一个5阶的Hilbert矩阵,求其行列式;求3阶、12阶Hilbert矩阵的行列式。
>> d=hilb(5) % 5阶Hilbert矩阵
d =
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
>> cond(d) % d的条件数
ans =
4.7661e+005
>> cond(hilb(3)) % 3阶Hilbert矩阵的条件数
ans =
524.0568
>> cond(hilb(7)) % 12阶Hilbert矩阵的条件数
ans =
4.7537e+008
【实例讲解】Hilbert矩阵是非奇异阵,但其行列式非常接近零。由于其病态特性,如果一个线性方程组的系数矩阵为Hilbert矩阵,则该方程不能使用通常的方法进行求解,否则解的正确性无法保证。cond函数用于求矩阵的条件数,条件数越大则病态程度越强。