swift 中的矩阵乘法 - simd
matrix multiplication in swift - simd
let matrix = simd_double4x4([[10.0, 8.0, 7.0, 8.0], [10.0, 9.0, 19.0, 9.0], [8.0, 7.0, 10.0, 8.0], [8.0, 7.0, 10.0, 8.0]])
let rhs = SIMD4<Double>(100.0, 130.0, 120.0, 120.0)
let result = simd_mul(matrix.inverse, rhs)
print(result)
此代码适用于 2x2 和 3x3 矩阵来求解方程。但是当涉及到 4x4 矩阵时,我无法得到结果。当我在 4x4 方程求解器的网站上输入相同的值时,我得到了结果,但是在 swift 中我无法得到它,它只是打印 -> SIMD4(-nan, -nan, -nan, -nan)
结果正确。不可能反转你的特定矩阵,行列式为零。
将最后一行更改为类似 8.0, 7.0, 10.0, 9.0
的内容,然后重试。
这是一些在线计算器的输出结果。
let matrix = simd_double4x4([[10.0, 8.0, 7.0, 8.0], [10.0, 9.0, 19.0, 9.0], [8.0, 7.0, 10.0, 8.0], [8.0, 7.0, 10.0, 8.0]])
let rhs = SIMD4<Double>(100.0, 130.0, 120.0, 120.0)
let result = simd_mul(matrix.inverse, rhs)
print(result)
此代码适用于 2x2 和 3x3 矩阵来求解方程。但是当涉及到 4x4 矩阵时,我无法得到结果。当我在 4x4 方程求解器的网站上输入相同的值时,我得到了结果,但是在 swift 中我无法得到它,它只是打印 -> SIMD4(-nan, -nan, -nan, -nan)
结果正确。不可能反转你的特定矩阵,行列式为零。
将最后一行更改为类似 8.0, 7.0, 10.0, 9.0
的内容,然后重试。
这是一些在线计算器的输出结果。