声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2699|回复: 4

[编程技巧] 矩阵的平方根,请教

[复制链接]
发表于 2010-9-17 00:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x

aa =

  1.7901e+002  1.7644e+000  1.6210e-001
  1.7508e+002  7.3070e-001 -5.0900e-001
  1.6720e+002  2.5570e-001 -2.4600e-001
  1.9887e+002 -8.4090e-001 -2.6070e-001
  1.8432e+002 -1.4644e+000  7.3300e-001

bb =

  8.5460e+001            0            0            0            0
            0  8.5360e+001            0            0            0
            0            0  8.5360e+001            0            0
            0            0            0  8.5360e+001            0
            0            0            0            0  8.2970e+001

cc=aa'*bb*aa

再对cc求平方根,怎么sqrt(cc)和cc^0.5的运算结果不一样?
回复
分享到:

使用道具 举报

发表于 2010-9-17 09:02 | 显示全部楼层
回复 secondye 的帖子
最好先搞清楚矩阵的平方根的意思,矩阵的平方根并不是每个元素开平方根,我觉得你的意思是每个元素开平方根吧,这个sqrt和0.5是一样的,如下
  1. >> a=magic(5)

  2. a =

  3.     17    24     1     8    15
  4.     23     5     7    14    16
  5.      4     6    13    20    22
  6.     10    12    19    21     3
  7.     11    18    25     2     9

  8. >> b=sqrt(a)

  9. b =

  10.     4.1231    4.8990    1.0000    2.8284    3.8730
  11.     4.7958    2.2361    2.6458    3.7417    4.0000
  12.     2.0000    2.4495    3.6056    4.4721    4.6904
  13.     3.1623    3.4641    4.3589    4.5826    1.7321
  14.     3.3166    4.2426    5.0000    1.4142    3.0000


  15. >> c=a.^0.5

  16. c =

  17.     4.1231    4.8990    1.0000    2.8284    3.8730
  18.     4.7958    2.2361    2.6458    3.7417    4.0000
  19.     2.0000    2.4495    3.6056    4.4721    4.6904
  20.     3.1623    3.4641    4.3589    4.5826    1.7321
  21.     3.3166    4.2426    5.0000    1.4142    3.0000
复制代码
发表于 2010-9-17 09:21 | 显示全部楼层
回复 secondye 的帖子
运算不同, 一个是针对矩阵, 一个是针对元素
s1=sqrt(cc); 等同cc.^0.5或
s1=zeros(size(cc)); for ii=1:size(cc,1), for jj=1:size(cc,2), s1(ii,jj)=sqrt(cc(ii,jj)) ; end; end (不建议如此用)
s2=cc^0.5; 等同s2=sqrtm(cc);
检查下
cc=s1.^2, cc=s2^2, cc=s2*s2;

评分

1

查看全部评分

发表于 2010-9-18 12:59 | 显示全部楼层
矩阵的平方根是不可以这样求出来的。
只有各个元素的平方根才可以直接求出
 楼主| 发表于 2010-9-18 16:26 | 显示全部楼层
回复 huangjinysf 的帖子

我基本明白了,a.^0.5=sqrt(a)是针对矩阵a里的每个元素,a^0.5=sqrtm(a)是针对矩阵a。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 13:49 , Processed in 0.079710 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表