问题标签 [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 投票
6 回答
2590 浏览

c - 如何生成与直方图匹配的点?

我正在研究一个模拟系统。我很快就会有几个模拟输入值的真实世界分布的实验数据(直方图)。

当模拟运行时,我希望能够产生与测量分布相匹配的随机值。我宁愿这样做而不存储原始直方图。有什么好的方法

  1. 将直方图映射到一组代表分布的参数?
  2. 在运行时生成基于这些参数的值?

编辑:输入数据是几种不同类型事件的事件持续时间。我期望不同的类型会有不同的分布函数。

0 投票
3 回答
5141 浏览

numerical-analysis - 如何在特定机器上找到尾数长度?

我想在特定计算机上找到尾数位数和单位舍入。我了解这些是什么,只是不知道如何找到它们-尽管我知道它们可能因计算机而异。

我需要这个数字来执行数值分析的某些方面,比如分析错误。

我目前在想的是,我可以编写一个小的 c++ 程序来缓慢递增一个数字,直到发生溢出,但我不确定要使用什么类型的数字。

我在正确的轨道上吗?究竟如何计算这个?

0 投票
4 回答
3158 浏览

precision - 避免精度损失的最佳算法?

我最近收到的一项家庭作业要求我们采用在计算机中执行时可能会造成精度损失的表达式,并对其进行更改以避免这种损失。

不幸的是,这样做的方向还不是很清楚。通过观看各种示例,我知道有一些方法可以做到这一点:使用泰勒级数,如果涉及平方根则使用共轭,或者当两个分数相减时找到一个公分母。

但是,我很难准确地注意到何时会发生精度损失。到目前为止,我唯一确定的是,当您减去两个接近相同的数字时,会发生精度损失,因为高位数字很重要,并且您会从四舍五入中丢失这些数字。

我的问题是我应该寻找哪些其他常见情况,以及哪些被认为是接近它们的“好”方法?

例如,这里有一个问题:

从这三个选择中评估这个的最佳和最差算法是什么:

我知道当 x 接近于零时,tan(x) 和 sin(x) 几乎相同。我不明白这些算法如何或为什么在解决问题方面更好或更差。

0 投票
6 回答
2617 浏览

precision - 使用泰勒级数避免精度损失

我正在尝试使用泰勒级数来开发一个数值合理的算法来解决一个函数。我已经有一段时间了,但还没有运气。我不确定我做错了什么。

功能是

另外:为什么这个函数甚至会出现精度损失?当 x 接近于零时,sin(x)/ln(1+x) 甚至不接近与 x 相同的数字。我看不出意义在哪里消失了。

为了解决这个问题,我相信我需要对 sin(x) 和 ln(1+x) 使用泰勒展开,它们是

分别。我曾尝试使用相似的分母来组合 x 和 sin(x)/ln(1+x) 分量,甚至将这三个分量组合起来,但最终似乎没有任何效果。任何帮助表示赞赏。

0 投票
6 回答
3435 浏览

physics - 如何与量子谐振子波函数进行数值积分?

如何对无限范围内的一维积分进行数值积分(使用什么数值方法,以及使用什么技巧),其中被积函数中的一个或多个函数是一维量子谐振子波函数。除其他外,我想在谐振子基础上计算某些函数的矩阵元素:

phi n (x) = N n H n (x) exp(-x 2 /2)
其中 H n (x) 是Hermite 多项式

V m,n = \int_{-infinity}^{infinity} phi m (x) V(x) phi n (x) dx

在存在宽度不同的量子谐波波函数的情况下也是如此。

问题是波函数 phi n (x) 具有振荡行为,这对于较大的n来说是个问题,并且来自 GSL(GNU 科学图书馆)的自适应 Gauss-Kronrod 正交等算法需要很长时间来计算,并且误差很大。

0 投票
5 回答
62769 浏览

java - Java中的信号处理库?

我想计算时间序列的功率谱密度;做一些带通、低通和高通滤波;也许其他一些基本的东西。

是否有一个不错的开源 Java 库来执行此操作?

我搜索了一些但没有成功(例如,谷歌搜索“功率谱密度 java”或“信号处理 java”并单击链接,查看 Apache Commons、Sourceforge、java.net 等)。

有很多小程序、书籍、教程、商业产品等,不能满足我的需求。

更新:我发现org.apache.commons.math.transform用于傅里叶变换。这并没有实现功率谱密度、带通等,但它是一些东西。

0 投票
8 回答
1879 浏览

c# - f(x,y) 的最小化,其中 x 和 y 是整数

我想知道是否有人对最小化函数 f(x,y) 有任何建议,其中 x 和 y 是整数。我研究了很多最小化和优化技术,比如 BFGS 和 GSL 中的其他技术,以及数值食谱中的东西。到目前为止,我已经尝试实施几个不同的方案。第一种方法是选择最大下降的方向 f(x+1,y),f(x-1,y),f(x,y+1),f(x,y-1),然后按照该方向与线最小化。我也尝试过使用下坡单纯形(Nelder-Mead)方法。这两种方法都离最小值很远。它们似乎都适用于更简单的函数,例如找到抛物面的最小值,但我认为两者,尤其是前者,都是为 x 和 y 是实值(双精度值)的函数而设计的。另一个问题是我需要尽可能少地调用 f(x,y) 。它与外部硬件对话,每次通话需要几秒钟。对此的任何想法将不胜感激。

这是错误函数的示例。抱歉,我之前没有发过这个。这个函数需要几秒钟来评估。此外,如果我们从设备查询的信息低于我们的期望值,它不会添加到错误中,只有当它高于

0 投票
8 回答
3857 浏览

algorithm - 多维优化算法/寻根/某事

我有五个值,A、B、C、D 和 E。

给定约束 A + B + C + D + E = 1,以及五个函数 F(A)、F(B)、F(C)、F(D)、F(E),我需要通过E 使得 F(A) = F(B) = F(C) = F(D) = F(E)。

为此使用的最佳算法/方法是什么?我不在乎是否必须自己写,我只想知道在哪里看。

编辑:这些是非线性函数。除此之外,它们无法表征。其中一些最终可能是从数据表中插入的。

0 投票
3 回答
8080 浏览

matlab - 为什么 Matlab 的 inv 缓慢且不准确?

我在几个地方读到(在文档和这篇博文中:http: //blogs.mathworks.com/loren/2007/05/16/ purpose- of-inv/)在 Matlab 中使用 inv 不是推荐,因为它速度慢且不准确。

我试图找出这种不准确的原因。截至目前,谷歌没有给出有趣的结果,所以我想这里有人可以指导我。

谢谢 !

0 投票
3 回答
517 浏览

algorithm - 多项式评估精度,乘法与除法

假设我在 x 中有多项式,除以 x 的幂:

抛开效率不谈,这将是更准确的数值计算,上面或使用除法:

谢谢