zhaishaodan ~rt 这里的开方并不是普通的 sqrt(matrix), 而是相当于matlab中的 sqrtm 即 已知 A = matrix(...); 如果 X%*%X=A; 那么 X=? 请赐教,谢谢
yihui 先看数学理论,再问程序。 对角矩阵开方就是对角元素开方,非对角矩阵如果可以对角化,那么可以求特征向量(?eigen)再计算开方:http://en.wikipedia.org/wiki/Matrix_square_root 更复杂的情况我已经忘了,什么Jordan标准型,早还给老师了……
cloud_wei 矩阵的开方运算比较难,很可能出现多解,必须要明白自己的目的。rggm有个sqrtm函数(同MATLAB)可以计算正定矩阵的开方。 <br /> install.packages('rggm')<br /> library(rggm)<br /> m=matrix(1:4,2) <br /> sqrtm(m) #该函数要求方阵必须正定,此时不满足要求<br /> m=matrix(c(2,1,4,3),2)<br /> sqrtm(m)<br />
yihui [quote]引用第3楼zhaishaodan于2009-02-20 22:35发表的“”: 晕啊,没有现成的函数啊。。。 看来只好用matlab了 这个函数要是自己写的话正确性不说,效率可能会很低。。。[/quote] MatLab的函数或R中现成的函数难道就不是人写的啊?