在朱莉婭:我在Julia的矩陣乘法中犯了什麼錯誤?
In [1]: M1 = [1 3 4;
45 64 33;
456 3 454;]
Out [1]: 3x3 Array{Int64,2}:
1 3 4
45 64 33
456 3 454
In [2]: M1 * inv(M1)
Out [2]: 3x3 Array{Float64,2}:
1.0 6.93889e-18 -8.67362e-19
0.0 1.0 -2.08167e-17
-1.42109e-14 -8.88178e-16 1.0
M1 * INV(M1)應該定義獲得單位矩陣。怎麼了?
我想同樣的事情在Matlab:
>> M1 = [1 3 4;
45 64 33;
456 3 454;]
M1 =
1 3 4
45 64 33
456 3 454
>> inv(M1)
ans =
-0.280088987764182 0.013057987135465 0.001518595540939
0.052057842046719 0.013251438796731 -0.001421869710306
0.280978865406007 -0.013203075881414 0.000686753397495
>> M1 * inv(M1)
ans =
1.000000000000000 0.000000000000000 -0.000000000000000
0 1.000000000000000 -0.000000000000000
-0.000000000000014 -0.000000000000001 1.000000000000000
>>
Matlab的位置返回正確的結果。我想茱莉亞在這裏不會犯錯。那麼我的計算/符號有什麼問題?
編輯
該問題通過在浮點結果位數引起的。我應該問,如何在Julia中設置結果數字精度?
相關問題:http://stackoverflow.com/questions/27786864/why-am-i-getting-incorrect-results-for-these-simple-operations-in-julia –