baidu_41568376 2020-07-29 11:48 采纳率: 0%
浏览 328

MATLAB计算矩阵乘法,矩阵元素小数点后保留的位数不同,为什么计算出来的结果相差很大?

使用MATLAB计算矩阵乘法,矩阵元素都是小数,当小数点后保留的位数不同时,计算出来的结果相差数十个数量级;
原矩阵为:
k=[-0.0969172949257307 0.3388013365853 -0.0122045452926814 -0.191567892510569 -0.13068505797112 0.066324075107135
0.0536345000987579 -0.0836469000549468 -0.408485830707277 -0.058091013217451 0.0133838598072214 0.198267098556866
0.129053725047576 -0.0471730468608032 -0.341583715877231 0.155050611465012 -0.214791096089902 -0.734160254200399
0.317601278190668 0.0922130000770255 0.0570219060369784 -0.175141390208805 0.199652965115184 0.0426982159356811];
hk=[-0.490417759363805 0.178467315596571 0.339707937856024 1.89116504157359
1.89116504157359 -0.339707937856024 0.178467315596571 0.490417759363805
-0.339707937856024 -1.89116504157359 -0.490417759363805 0.178467315596571
-1.00772826238266 -0.262617303461822 0.00527347755217904 -0.879183844990163
-0.879183844990163 -0.00527347755217904 -0.262617303461822 1.00772826238266
-0.00527347755217904 0.879183844990163 -1.00772826238266 -0.262617303461822];
k*hk=[ 1 2.0127603131811e-16 1.67900149673812e-17 1.10024080341304e-17
1.28016644249949e-15 0.999999999999999 4.61670150102945e-16 1.5985812133288e-15
-2.24205631487483e-15 9.86926516582795e-16 1 2.50333896794487e-16
-2.62570094733096e-15 -9.06415928297649e-17 -3.15705029760855e-16 0.999999999999999];
只保留小数点后四位小数:
hk=[ -0.4904 0.1785 0.3397 1.8912
1.8912 -0.3397 0.1785 0.4904
-0.3397 -1.8912 -0.4904 0.1785
-1.0077 -0.2626 0.0053 -0.8792
-0.8792 -0.0053 -0.2626 1.0077
-0.0053 0.8792 -1.0077 -0.2626];
k=[-0.0969 0.3388 -0.0122 -0.1916 -0.1307 0.0663
0.0536 -0.0836 -0.4085 -0.0581 0.0134 0.1983
0.1291 -0.0472 -0.3416 0.1551 -0.2148 -0.7342
0.3176 0.0922 0.057 -0.1751 0.1997 0.0424 ];
k*hk=[1.00003803 -1.65400000000014e-05 3.75799999999984e-05 5.04899999999796e-05
9.2790000000002e-05 1.00005312 -3.99600000000211e-05 -3.52499999999865e-05
-8.46099999999684e-05 1.26500000000708e-05 1.00003256 1.44799999999872e-05
-9.79899999999725e-05 -0.00022621000000001 0.00029788999999999 1.00008587];
前者计算出的数值和后者计算的数值相差近十个数量级,请问这是为什么?感觉前者计算的不对啊,要到小数点后16位;

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2020-07-29 12:33
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 easypoi导出复杂excel
  • ¥20 C++初高中竞赛题,devc++可以通过的
  • ¥60 二次元手游日常任务自动化代肝(相关搜索:自动化)
  • ¥15 mysql将查询的结果作为动态列名怎么实现
  • ¥50 python自动地图截图脚本
  • ¥20 瑞萨RA4M1芯片刷写为arduino r4 minima
  • ¥15 fastreport怎么判断当前页数
  • ¥15 Kylin-Desktop-V10-GFB-Release-JICAI_02- 2207-Build14-ARM64.iso有没有这个版本的系统啊
  • ¥15 能不能通过蓝牙将传感器数据传送到手机上
  • ¥20 100元python和数据科学实验项目