Julia 中的矩阵乘法问题

问题描述 投票:0回答:1

我无法在 Julia 中获得相同矩阵乘积的相同答案。

我正在使用 Jupyter Lab 并编写了以下代码:

using LinearAlgebra

function U1(α, M)
    return exp(α * M)
end

function U2(β, M)
    return exp(β * M)
end

test_list=[1 2]

α_list = test_list[1]
β_list = test_list[2]

M1=[1 3 3; 3 2 2; 2 2 1]
M2=[3 2 1; 3 0 3; 2 1 1]

init_vec=[1 ; 1 ; 1]

for _ in 1:2
    α=α_list[1]
    β=β_list[1]
    final_vec = U1(α,M1) * U2(β,M2) * init_vec
    println(final_vec)
end

#[3.2498540882389616e7, 3.362948386386128e7, 2.2549887512082998e7]
#[3.3668507705110244e7, 3.4777346320714206e7, 2.548964322110533e7]

我随机设置了

test_list
init_vec
M1
M2
的值。如图所示,我得到了随机的答案。

这可能是什么原因造成的?我应该如何修改代码?

julia matrix-multiplication jupyter-lab
1个回答
0
投票

在我得到的 REPL 中运行你的代码:

[3.3668507705110244e7, 3.4777346320714206e7, 2.548964322110533e7]
[3.3668507705110244e7, 3.4777346320714206e7, 2.548964322110533e7]

当我用适当大小的随机输入替换

test_list
M1
M2
init_vec
时,我得到:

[1.6282115006640232, 0.9234175545808518, 3.517098945783593]
[1.6282115006640232, 0.9234175545808518, 3.517098945783593]

换句话说,我无法重现您观察到的行为。您是否尝试运行您在新的 Julia 会话中发布的确切代码?

© www.soinside.com 2019 - 2024. All rights reserved.