问题标签 [numerical-analysis]

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 投票
1 回答
848 浏览

r - 当您在 R 中进行主成分分析时,如何判断首先标准化您的数据矩阵是否更好?

我试图在 R 中进行主成分分析。我相信有两种方法可以做到这一点。一种是立即进行主成分分析,另一种方法是首先使用 s = scale(m) 标准化矩阵,然后应用主成分分析。
我如何判断哪个结果更好?我应该特别关注哪些价值观。我已经设法找到 eigenvalues 和 eigenvectors ,使用这两种方法的每个特征向量的方差比例。

我注意到没有标准化的第一个 pca 的方差比例具有更大的值。它有什么意义吗?不总是这样吗?

最后,如果我应该预测一个变量,即权重,我应该在进行主成分分析时从我的数据矩阵中删除变量,即权重吗?

0 投票
6 回答
1565 浏览

data-mining - 分析噪声数据

我最近发射了一枚带有气压高度计的火箭,该高度计精确到大约 10 英尺(通过飞行期间获取的数据计算)。记录的数据以每个样本 0.05 秒的时间增量进行,并且在整个飞行过程中缩小时,高度与时间的关系图看起来非常相似。

问题是当我尝试从数据中计算其他值(例如速度或加速度)时,测量的准确性使计算值变得毫无价值。我可以使用哪些技术来平滑数据,以便计算(或近似)速度和加速度的合理值?重要的是要及时保留重大事件,最值得注意的是第一次进入的 0 和飞行期间的最高点 (2707)。

高度数据如下,并以地面以上英尺为单位测量。第一次为 0.00,每个样本在前一个样本之后 0.05 秒。飞行开始时的尖峰是由于起飞过程中发生的技术问题,去除尖峰是最佳的。

我最初尝试使用线性插值,对附近的数据点进行平均,但需要多次迭代才能使数据平滑到足以进行积分,并且曲线的平坦化消除了重要的远地点和地面事件。

非常感谢所有帮助。请注意,这不是完整的数据集,我正在寻找有关更好方法分析数据的建议,而不是让某人回复转换后的数据集。最好在未来的火箭上使用一种算法,该算法可以在不知道完整飞行数据的情况下预测当前的高度/速度/加速度,尽管这不是必需的。

0 投票
2 回答
224 浏览

numerical-analysis - 关于混合精度数值算法分析的文章?

许多数值算法倾向于在 32/64 位浮点上运行。

但是,如果您可以使用精度较低(且功耗较低)的协处理器会怎样?那么如何在数值算法中使用呢?

有谁知道解决这些问题的好书/文章?

谢谢!

0 投票
1 回答
291 浏览

numerical-analysis - Implementation of GNU Scientific Library?

Does anyone know a collection of articles or books that describes the implementation of the GNU Scientific Library?

This question is not about using the GSL; it's about how the GSL is implemented, their design decisions / tradeoffs.

Thanks!

0 投票
3 回答
407 浏览

algorithm - BFGS 对凸过参数化问题的收敛性

“众所周知”BFGS优化算法对于严格凸问题是超线性收敛的,但是对于非严格凸问题是否有任何分析。例如,假设 f(x) 对于某个标量 x 是凸的。然后,假设我们优化 g(x1,x2)=f(x1+x2)。这仍然会一直是超线性收敛的吗?

0 投票
2 回答
12872 浏览

c++ - 何时使用 DBL_EPSILON/epsilon

DBL_EPSILON/std::numeric_limits::epsilon 将为我提供与加一时产生差异的最小值。

我无法理解如何将这些知识应用到有用的东西中。

epsilon 远大于计算机可以处理的最小值,因此使用比 epsilon 更小的值是安全的,这似乎是一个正确的假设?

我正在使用的值之间的比率是否应该小于 1/epsilon ?

0 投票
2 回答
994 浏览

matrix - 并行化 Cholesky 分解以用于训练机器学习算法

我正在尝试确定是否可以并行化机器学习算法的训练方面。训练中计算量大的部分涉及 Cholesky 分解正定矩阵(协方差矩阵)。我将尝试纯粹根据矩阵代数来构建这个问题。如果您需要更多信息,请告诉我。

假设我们有一个块矩阵(协方差矩阵,但这与问题无关)

其中 A 和 C 与来自两个不同集合的训练数据相关。A 和 B 都是正定的。为简单起见,我们还假设 A 和 C 的大小为 nxn。

有一个用于执行块 Cholesky 分解的公式。请参阅http://en.wikipedia.org/wiki/Block_LU_decomposition。总结一下,我们有以下结果。

其中(* 表示转置)

在哪里

现在假设已经进行了与矩阵 A 和 C 相关的训练,因此我们对 A 进行了 Cholesky 分解,并且 C 给出 A^{1/2} 和 C^{1/2}(因此可以直接使用前向替换计算逆 A^{-1/2} 和 C^{-1/2})。

用我们现在拥有的这些数量重写 Q。

我的问题是:鉴于这种设置,是否可以代数计算 Q^{1/2} 而无需对 Q 应用 cholesky 分解。或者换句话说,我可以使用 C^{1/2} 来帮助我Q^{1/2} 的计算。如果这是可能的,那么就可以轻松地并行化培训。

提前感谢您的任何回复。对不起矩阵排版。特别是排版数学或矩阵有什么明智的方法吗?

马特。

0 投票
7 回答
3895 浏览

c# - 在 C# 中查找 sin/cos 曲线的最小值和最大值的最有效方法

背景:我的程序中有一个函数,它采用一组点并在这些点生成的曲线上找到最小值和最大值。问题是它非常慢,因为它使用 while 循环根据近似误差来计算最小值/最大值。不完全确定这是什么形式的方法,因为我不是自己写的,但我知道我们需要一种新的更有效的方法。

问题:我的问题是什么是最好和最有效的方法/算法来找到曲线上的最小最大点,使用 C#,也非常准确?

关于曲线:我附近有我大学的数值分析书,所以我需要的只是一个方法名称和一个正确方向的推动。我可以生成尽可能多的点来逼近曲线,但我想将点数保持在有效的最小值。曲线总是呈正弦/余弦曲线的一段形状,但并不总是相同的曲线,而且总是小于一个周期。Theta 的范围是 0° 到 359.999...° 它有一些相位和幅度偏移,并且 Y 永远不会是负数。这个函数/算法必须快速运行,因为它会随着曲线的变化每隔几百毫秒运行一次。

任何建议表示赞赏。

编辑

有关曲线的更多信息:这些点是在鼠标移动时生成的。这些点是基于带惰轮的驱动设计中的橡胶带长度的一组点,例如汽车中的蛇形皮带。惰轮的位置决定了皮带的长度,我得到曲线[皮带长度(y)与惰轮位置(x)]。在这种情况下,惰轮是一个可旋转的惰轮,将具有恒定的圆周运动。如果驱动设计改变,曲线也会改变,要么是因为长度点改变,要么是因为惰轮的运动范围受到限制。惰轮的运动范围可能是 0° 到 359.999...°,并且是如上所述的 theta。对于开槽惰轮,最大范围是曲线周期的 1/2(更简单的问题)。

我想我需要的是两种类型的惰轮的通用求解器,但真正的问题是旋转惰轮。

0 投票
3 回答
1809 浏览

algorithm - 如何计算算法的精确复杂度?

在不使用渐近符号的情况下,繁琐的步数计算是获得算法时间复杂度的唯一方法吗?如果没有每行代码的步数,我们可以得到任何程序的大 O 表示吗?

细节:试图找出几种数值分析算法的复杂性,以决定哪种算法最适合解决特定问题。例如 - 从用于求解 eqns 的 Regula-Falsi 或 Newton-Rhapson 方法中,目的是评估每种方法的确切复杂性,然后决定(输入“n”的值或存在的任何参数)哪种方法不太复杂。

0 投票
2 回答
2419 浏览

floating-point - 浮点显着性损失中的加法与减法

在学习浮点算术精度和避免它的不同方法(使用共轭、泰勒级数等)时,书籍经常提到两个非常相似的数字或一个大数和一个小数的减法是导致错误的最大原因。为什么只有减法会导致这种情况而不是加法?正如我所看到的,您在移位时仍然会丢失同样多的有效位。