找回密码
 欢迎注册
查看: 2960|回复: 4

[求助] matlab中sqrtm 与 ^ 在矩阵运算方面的具体差别是什么?

[复制链接]
发表于 2023-6-18 14:04:07 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
请看以下代码。c和e的结果“相同” 又 存在差别。相同是数值结果相同。差别主要有两方面。请问为什么会有这样的差别?除了以下这两点差别。是否还有其他看不见的差别?
  1. a=[1 2 3 4;0 3 4 5;0 0 5 6;0 0 0 7];
  2. b=a^4;
  3. c=sqrtm(sqrtm(b))
  4. e=b^0.25
复制代码



1、命令行窗口呈现结果的差别:
c =
     1     2     3     4
     0     3     4     5
     0     0     5     6
     0     0     0     7


e =
  列 1 至 3
                         1                         2                         3
                         0                         3                         4
                         0                         0                         5
                         0                         0                         0
  列 4
                         4
                         5
                         6
                         7


2、双击工作区的c变量和e变量。发现c的第四列是4 5 6 7 ,而e的第四列是:4.00000000000000  5.00000000000000 6.00000000000000 7.00000000000000
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-6-19 08:48:36 | 显示全部楼层
一个是矩阵开平方根,一个是矩阵内部的元素开平方根,不一样!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-6-19 08:49:35 | 显示全部楼层
https://ww2.mathworks.cn/help/matlab/ref/sqrtm.html

这个问题只要看帮助说明就好了!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-6-19 09:04:26 | 显示全部楼层
nyy 发表于 2023-6-19 08:48
一个是矩阵开平方根,一个是矩阵内部的元素开平方根,不一样!

谢谢回复。
不知道你是否注意到 c 和 e的计算结果实际上是一样的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-6-19 14:02:48 | 显示全部楼层
这个只是整型与浮点的区别,比如:(16/2)/2=4, 16*0.25=4.00000000000000

你把第2行的 b=a^4,改成 b=a^4.0 再对比试试,看看 c 和 e 的结果有什么变化?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-23 16:06 , Processed in 0.023602 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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