jiewenji 发表于 2023-6-18 14:04:07

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

请看以下代码。c和e的结果“相同” 又 存在差别。相同是数值结果相同。差别主要有两方面。请问为什么会有这样的差别?除了以下这两点差别。是否还有其他看不见的差别?
a=;
b=a^4;
c=sqrtm(sqrtm(b))
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.000000000000005.00000000000000 6.00000000000000 7.00000000000000

nyy 发表于 2023-6-19 08:48:36

一个是矩阵开平方根,一个是矩阵内部的元素开平方根,不一样!

nyy 发表于 2023-6-19 08:49:35

https://ww2.mathworks.cn/help/matlab/ref/sqrtm.html

这个问题只要看帮助说明就好了!

jiewenji 发表于 2023-6-19 09:04:26

nyy 发表于 2023-6-19 08:48
一个是矩阵开平方根,一个是矩阵内部的元素开平方根,不一样!

谢谢回复。
不知道你是否注意到 c 和 e的计算结果实际上是一样的。

gxqcn 发表于 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 的结果有什么变化?
页: [1]
查看完整版本: matlab中sqrtm 与 ^ 在矩阵运算方面的具体差别是什么?