r - 在R中乘法矩阵时结果不正确?
问题描述
在 R 中将这两个矩阵相乘时,我得到了一些奇怪的结果:
> matrix3
[1,] 3.19747172 -2.806e-05 -0.00579284 -0.00948720 -0.01054026 0.17575719
[2,] -0.00002806 2.000e-08 0.00000057 0.00000006 -0.00000009 -0.00000358
[3,] -0.00579284 5.700e-07 0.00054269 0.00001793 -0.00002686 -0.00310465
[4,] -0.00948720 6.000e-08 0.00001793 0.00003089 0.00002527 -0.00066290
[5,] -0.01054026 -9.000e-08 -0.00002686 0.00002527 0.00023776 -0.00100898
[6,] 0.17575719 -3.580e-06 -0.00310465 -0.00066290 -0.00100898 0.03725362
> matrix4
[,1]
x0 2428.711
x1 1115178.561
x2 74411.013
x3 925700.445
x4 74727.396
x5 13342.182
> matrix3%*%matrix4
[,1]
[1,] 78.4244581753
[2,] -0.0023802299
[3,] 0.1164568885
[4,] -0.0018504732
[5,] -0.0006493249
[6,] -0.1497822396
问题是,如果您尝试在 excel 中将这两个矩阵相乘,您会得到:
>78.4824494081686
>-0.0000419022486847151
>0.112430295996347
>-0.000379343461780479
>0.000340414687578061
>-0.14454024116344
并且使用在线矩阵我也得到了 excel 的结果。希望您能帮助理解如何在 R 中获得相同的结果。
解决方案
由于使用了库(matlib)中的函数 inv() 导致出现问题。matrix3 是使用 inv() 函数求逆的结果。不知道为什么当我使用solve() 求逆然后正常继续时,我得到了正确的矩阵。也许在 inv() 函数中有某种舍入。
推荐阅读
- flutter - 如何制作一个项目网格,其中小部件彼此尽可能接近?
- javascript - 用类声明一个变量
- c# - 从 HTML 代码中获取一部分到 C# 中的字符串变量
- javascript - 在链接悬停时更改部分背景图像
- latex - hf-tikz 和 sphinx 玩得不好
- unity3d - 如何在 Unity 中将 Content Type 设置为 Integer 的 inputfield 的 int 值设置为?
- pandas - `TypeError: '<' 在 'str' 和 'int' 的实例之间不支持` Pandas
- r - 如何使用 dcast() 函数保持 NA 值?
- asp.net-core - 我应该跟踪哪种方法以了解新请求进入 .net 核心应用程序
- android - 在视频上绘制简单的图形,使用 MediaCodec 通过 lockCanvas() 在 Surface 中逐帧播放视频?没有贴在窗户上的表面?