gpt4 book ai didi

Java vector 内积

转载 作者:行者123 更新时间:2023-11-30 07:08:38 28 4
gpt4 key购买 nike

我有一个 m 维 vector 的数组列表(存储为简单数组)v1, v2 ... vn。

我必须重复计算从这些 vector 中选择的两个 vector 之间的内积。

实现此目的的一种方法是对所有组件进行简单的 for 循环。

double sum=0;
for(int i=0; i<m; i++)
sum+=v1[i]*v2[i];

这几乎是我打算对我的数据执行的唯一线性代数运算。

  1. 导入 JAMA 或 la4j 等 linalg 库,将所有内容存储为矩阵,并计算内积是否会更有效? (这些甚至不是大型矩阵乘法,只是一维 vector 之间的内积)

  2. la4j(etc) 如何实现点积?它不会也遍历每个索引并乘以每对组件吗?

最佳答案

la4j 是开源的,看看the code .使用 AbstractVector 的内积不如您自己的代码有效,因为它实例化了额外的操作对象,这里是 OoPlaceInnerProduct .

但是:在大多数情况下,我仍然更愿意使用现有的、经过良好测试的 vector 数学包,而不是实现我自己的包。 (Knuth:“我们应该忘记小效率,大约 97% 的时间说:过早优化是万恶之源”。)

请注意 multithreading doesn't help either .即使是高效的 LAPACK 包也使用 same code和你一样。

关于Java vector 内积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23886006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com