问题标签 [numerical-computing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
547 浏览

api - 用于矢量化数值计算的最佳 Scala 集合类型

IndexedSeq[Double]在设计特定领域的数值计算库时寻找要使用的正确数据类型(例如)。对于这个问题,我将范围限制为使用Double. 该库将定义一个数字函数,这些函数通常应用于一维数组中的每个元素。

注意事项:

  • 首选不可变数据类型,例如VectorIndexedSeq
  • 想要最小化数据转换
  • 在空间和时间上合理高效
  • 对使用图书馆的其他人友好
  • 优雅干净的 API

我应该使用集合层次结构更高的东西,例如Seq

还是只定义单元素函数并将映射/迭代留给最终用户更好?

这似乎效率较低(因为每组调用一次可以完成一些计算),但同时是一个更灵活的 API,因为它适用于任何类型的集合。

有什么建议吗?

0 投票
2 回答
259 浏览

matlab - 从任意向量中获取平均值为零的向量

我知道要从给定向量中得到零均值向量,我们应该从这个向量的每个成员中减去给定向量的平均值。例如让我们看看下面的例子

我们得到

让我们通过以下操作创建另一个向量

在此之后我们得到

如果我们通过以下公式计算 s 的平均值

我们得到
ans =

实际上,正如我检查过的那样,这个数字非常小

所以我们应该认为我们的向量的均值为零?所以这意味着与 0 的小偏差是由于舍入误差造成的?例如,当我们创建白噪声或此类随机不相关的数据序列时,实际上已经假设即使对于这样远离 0 的小数据,它的均值也为零,并且在这种情况下假设例如对于这种情况

大约当然

0 投票
4 回答
492 浏览

javascript - 是什么导致 isNaN 发生故障?

我只是想评估输入是否是数字,并且认为isNaN这是最好的方法。但是,这会导致不可靠的结果。例如,使用以下方法:

关于这些价值观:

显示在这个小提琴中:http: //jsfiddle.net/4nm7r/1

为什么不isNaN总是对我有用?

0 投票
1 回答
235 浏览

.net - 用函数式语言编写纯函数时如何避免不必要的计算?

我有两个由纯函数组成的函数。第一个函数取一个地块,在上面盖房子,然后拍张照片在杂志上做广告:

第二个函数也需要一个地块,在上面盖房子,然后给它画龙点睛:

很明显,这两个函数也是纯函数,因为它们是纯函数的组合。现在我有一个包裹,比方说niceParcel,我想将这两个功能都应用到它上面。但是,我想避免前三个子函数被计算两次,因为它们需要很长时间来计算并且它们在两个函数之间共享。

如何重构我的代码,避免这些不必要的计算,同时保留这些具有明确含义的漂亮纯函数?

0 投票
1 回答
1025 浏览

c++ - C++11 中的数值食谱 v3.0 和 pthread 库

如果我使用命令编译以下代码g++ -std=c++11 Threads.cpp -lpthread -I../Libs/nr30,其中 nr30 是http://www.nr.com/提供的库,则不会出现错误:

而如果我#include "nr3.h"在与上面相同的代码中添加标题,则会收到以下错误:

你遇到过同样的问题吗?谢谢你的任何建议。

0 投票
2 回答
8397 浏览

r - 用 R 求解非平方线性系统

如何用 R 求解非平方线性系统:A X = B

(在系统没有解或有无穷多个解的情况下)

例子 :

0 投票
1 回答
599 浏览

matlab - QuickHull 最坏情况

QHull(也许还有其他很好的QuickHull实现)在许多情况下运行得非常好而且很快。然而,理论上我们知道它的最坏情况可能是 O(n^2)。在实践中,我没有看到任何具有多维(即 20 或 100)的数值示例,其中 QHull 效果不佳。

您是否知道 QHull 工作不佳或给出错误结果的数值示例,或者任何表明它不能在这里应用的例子。

0 投票
2 回答
461 浏览

c - 控制 C 代码中的操作顺序

我读到 Fortran 对表达式的计算顺序有严格的规定。对于一些数值算法,这是非常重要的。

数值 C 程序如何控制浮点运算的顺序并防止编译器“优化”为不合需要的运算顺序,例如更改(a*b)*ca*(b*c).

0 投票
3 回答
197 浏览

python - 在 numpy 中使用数组优化操作

我必须应用一些我用 python 编写的数学公式:

现在,这是正确的,但显然效率低下,相反的方法是:

然而,第二个例子在 PHi2 的所有元素中给了我相同的数字,所以这更快但答案是错误的。你怎样才能正确和更有效地做到这一点?

注意:eig1 和 eig2 具有相同的维度 d,theta 和 PHi2 具有相同的维度 D,但 d!=D。

0 投票
0 回答
199 浏览

r - 使用 R 函数 grad 计算非光滑函数的梯度,例如作为方差参数函数的正态密度

我在使用 R 计算非平滑函数的梯度时遇到问题。

为了解释我的问题的核心,我创建了一个简化的问题。我有一个对数似然三变量正态密度函数,其中均值固定为零,方差的对角线项全为 1。

为了保持为 as 的所有值定义我的密度,如果方差不是正定矩阵,则 llk 会吐出 -Inf。现在,我想评估 llk 相对于 (0.5,0.2,0.3) 和 (0.9,-0.146,0.3) 处方差的三个非对角项的梯度。

使用 numDeriv 库中的 grad 函数,我可以将 (0.5,0.2,0.3) 处的梯度计算为:

但是,此方法不适用于 (0.9,-0.146,0.3) 处的梯度。要看到这个:

我知道这是因为第二个方差矩阵接近非正定。

有没有简单的方法来解决这个问题?谢谢你。