电子商务网站建设的基本流程,青岛网站建设方案优化,做一个网站APP价格,品牌推广的目的文章目录计算方法代码实现计算方法 一个复数可以写成极坐标形式:zreiθzre^{i\theta}zreiθ.这种分解#xff0c;左边代表长度#xff0c;右边代表角度。由此为灵感来源#xff0c;前人对矩阵也有类似的分解。就是猜想一个线性变换对矩阵的作用#xff0c;是不是可以分解为…
文章目录计算方法代码实现计算方法 一个复数可以写成极坐标形式:zreiθzre^{i\theta}zreiθ.这种分解左边代表长度右边代表角度。由此为灵感来源前人对矩阵也有类似的分解。就是猜想一个线性变换对矩阵的作用是不是可以分解为拉长和旋转两部分呢或者说一个矩阵是不是可以分解为长度和角度呢前人经过研究发现是可以这样分解的。一个矩阵A可以分解为一个酉矩阵和正定埃尔米特阵的乘积也就是 AU∣T∣AU|T| AU∣T∣ 需要注意的是右边虽然是一个绝对值符号但是不是一个数字而是一个矩阵。 它的定义是∣T∣THT|T|\sqrt{T^HT}∣T∣THT,虽然我们没学过矩阵函数但是也能知道给矩阵AAA开根号就是求一个矩阵BBB它乘自己得到AAA。这个埃尔米特阵用来代表长度。而前面那个酉矩阵用来代表角度。这样就把线性变换的两大作用进行了分解。 极分解的计算方法严重依赖于奇异值分解。假设已经求出来了奇异值分解那么矩阵的极分解就很容易得到了 A(UVH)(VΣVH)A(UV^H)(V\Sigma V^H) A(UVH)(VΣVH) 比如以下就是一个极分解 (0100002000030000)(0100001000011000)(0000010000200003)\begin{pmatrix}0 1 0 0\\ 0 0 2 0\\ 0 0 0 3\\ 0 0 0 0\\ \end{pmatrix}\begin{pmatrix}0 1 0 0\\ 0 0 1 0\\ 0 0 0 1\\ 1 0 0 0\\ \end{pmatrix} \begin{pmatrix}0 0 0 0\\ 0 1 0 0\\ 0 0 2 0\\ 0 0 0 3\\ \end{pmatrix} 000010000200003000011000010000100000010000200003
代码实现 因为严重依赖奇异值分解所以极分解的代码相当简单 # 极分解def polar_decomposition(self):u, sigma, v self.svd()v_h v.hermitian_transpose()return u * v_h, v * sigma * v_h