r语言生成一个5阶的hilbert矩阵

Python019

r语言生成一个5阶的hilbert矩阵,第1张

i=matrix(rep(1:5,each=5),nrow = 5)

print(i)

j=matrix(rep(1:5,each=5),nrow = 5,byrow = T)

print(j)

H=1/(i+j-1)

print(H)

把这个可以直接保存.r格式文件直接运行就行

在Matlab中可以直接使用hilb()函数得到指定的希尔矩阵。即产生每个矩阵元素的值都等于

1/(行索引+列索引-1)的矩阵。

此外,产生特殊矩阵方面,matlab是很强大的工具,还包括一下一些函数能够产生特殊矩阵:

(1)

魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。

(2)

范得蒙矩阵范得蒙(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。

(3)

希尔伯特矩阵在MATLAB中,生成希尔伯特矩阵的函数是hilb(n)。使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。MATLAB中,有一个专门求希尔伯特矩阵的逆的函数invhilb(n),其功能是求n阶的希尔伯特矩阵的逆矩阵。

(4)

托普利兹矩阵托普利兹(Toeplitz)矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个以x为第一列,y为第一行的托普利兹矩阵。这里x,

y均为向量,两者不必等长。toeplitz(x)用向量x生成一个对称的托普利兹矩阵。

(5)

伴随矩阵

MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。

(6)

帕斯卡矩阵,二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。函数pascal(n)生成一个n阶帕斯卡矩阵。

Hilbert矩阵的分量满足

H(i,j)=1/(i+j-1)

比如3阶Hilbert矩阵是

1/1 1/2 1/3

1/2 1/3 1/4

1/3 1/4 1/5