MATLAB学习笔记

魔方矩阵(magic(阶数))

魔方矩阵又称幻方,是有相同的行数和列数,并在每行每列、对角线上的和都相等的矩阵。魔方矩阵中的每个元素不能相同。你能构造任何大小(除了2x2)的魔方矩阵。

希尔伯特矩阵(hilb(阶数))

希尔伯特矩阵是一种数学变换矩阵

Hilbert matrix,矩阵的一种,其元素A(i,j)=1/(i+j-1),i,j分别为其行标和列标。
即:
[1,1/2,1/3,……,1/n]
|1/2,1/3,1/4,……,1/(n+1)|
|1/3,1/4,1/5,……,1/(n+2)|
……
[1/n,1/(n+1),1/(n+2),……,1/(2n-1)]
希尔伯特矩阵是一种数学变换矩阵,正定,且高度病态(即,任何一个元素发生一点变动,整个矩阵的行列式的值和逆矩阵都会发生巨大变化),病态程度和阶数相关。
Matlab中生成希尔伯特矩阵的函数是hilb(n);求希尔伯特矩阵的逆的函数是invhilb(n),其功能是求n阶的希尔伯特矩阵的逆矩阵。(使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。)

矩阵条件数(cond(阶数))

矩阵A的条件数等于A的范数与A的逆的范数的乘积,即cond(A)=‖A‖·‖A^(-1)‖,对应矩阵的3种范数,相应地可以定义3种条件数。 函数 cond(A,1)、cond(A)或cond(A inf) 是判断矩阵病态与否的一种度量,条件数越大矩阵越病态。

条件数事实上表示了矩阵计算对于误差的敏感性。对于线性方程组Ax=b,如果A的条件数大,b的微小改变就能引起解x较大的改变,数值稳定性差。如果A的条件数小,b有微小的改变,x的改变也很微小,数值稳定性好。它也可以表示b不变,而A有微小改变时,x的变化情况。
比如线性方程组
的解是(x,y)=(0.0,0.1),
的解是(x,y)=(-0.17,0.22)
可见b很小的扰动就引起了x很大的变化,这就是A矩阵条件数大的表现。
一个极端的例子,当A奇异时,条件数为无穷,这时即使不改变b,x也可以改变。奇异的本质原因在于矩阵有0特征值,x在对应特征向量的方向上运动不改变Ax的值。如果一个特征值比其它特征值在数量级上小很多,x在对应特征向量方向上很大的移动才能产生b微小的变化,这就解释了为什么这个矩阵为什么会有大的条件数,事实上,正规阵在二范数下的条件数就可以表示成 abs(最大特征值/最小特征值)。
 
posted @ 2017-10-24 20:17 Angel_Kitty 阅读(...) 评论(...) 编辑 收藏
Live2D