11得票6回答
大数据量情况下计算分位数的增量式方法

我需要为一组大量的数据计算分位数。 假设我们只能通过某些部分(例如大矩阵的一行)获取数据。要计算Q3分位数,需要获取所有数据部分并将其存储在某个地方,然后对其进行排序并计算分位数: List<double> allData = new List<double>();...

11得票3回答
强健的多边形法向量计算

有没有一个好的强大算法来计算凸多边形的法向量(当然是在三维空间中)?对于三角形,很容易:只需要取两条边,计算它们的叉积即可: vec3 u = point[0] - point[1], v = point[0] - point[2]; vec3 n = normalize(cross(u, ...

11得票6回答
生成类似于LCG但不包含奇偶数的完整周期/完整循环随机数或排列

我希望生成在一个范围内占据完整周期的伪随机数/排列。通常可以使用“线性同余生成器”(LCG)来生成这样的序列,使用以下公式:X = (a*Xs+c) Mod R 在此,Xs为种子,X为结果,a和c是互质的常数,R为最大值(范围)。 (通过完全周期/循环,我指的是可以选择常数,使得任何X仅在某...

11得票2回答
使用polyfit进行垂直线拟合

这只是一个基础问题。我正在使用polyfit将线条拟合到散点图上。在我一些散点的X值相同的情况下,polyfit 无法将线条拟合到它们上面。必须有一种方法来处理这种情况。毕竟,这只是一条线。 我可以尝试交换X和Y,然后拟合出一条线。是否有更简单的方法,因为我有很多组散点并想找到一种通用方法来...

11得票3回答
在|x| < pi/4的范围内,对tan(x)进行双精度近似。

我想在范围为-pi/4到pi/4的区间内,快速地将tan(x)近似到1 ULP以内。我已经找到了一个几乎足够好的解决方案,但最后的两倍因子仍然让我无法理解,即使我花了相当多的计算时间和模拟退火算法。 我寻求一个特定的数值近似tan(x)的方法,其形式为: tan(x) = x*P(x^2)...

10得票3回答
对数求和技巧为什么不适合递归实现?

我一直在研究log-sum-exp问题。我有一个以对数形式存储的数字列表,我想将它们相加并以对数形式存储。 朴素算法如下: def naive(listOfLogs): return math.log10(sum(10**x for x in listOfLogs)) 许多网站...

10得票1回答
如何在Python中实现基于Householder的QR分解?

我目前正在尝试实现基于Householder的QR分解,用于矩形矩阵,如http://eprints.ma.man.ac.uk/1192/1/qrupdating_12nov08.pdf(第3页、第4页、第5页)所述。 然而,显然我的伪代码有误,因为(1) 我的结果与numpy.qr.lin...

9得票2回答
牛顿-拉夫逊混合算法无法达到解决方案

问题简要说明:我在多项式求根中使用了牛顿-拉夫森算法,在某些情况下无法正常工作。为什么? 我从《C++数值计算》中借鉴了一个牛顿-拉夫森混合算法,如果牛顿-拉夫森算法不收敛(导数值低或收敛速度不快),则采用二分法。 我检查了该算法在多个多项式上的表现,并且它可以正常工作。现在我正在软件中测...

9得票2回答
e^x 没有使用 math.h

我试图在不使用math.h的情况下计算ex。当x大于或小于约±20时,我的代码会给出错误的答案。我尝试将所有double类型更改为long double类型,但在输入上它会产生一些垃圾。 我的代码如下: #include &lt;stdio.h&gt; double fabs1(doub...

9得票1回答
浮点数的精确值作为有理数

我正在寻找一种方法,将浮点数的确切值转换为两个整数的有理商,即a / b,其中b不大于指定的最大分母b_max。如果无法满足条件b &lt;= b_max,则结果将回退到仍满足条件的最佳近似值。 等等。这里有很多关于截断实数表示为浮点数的最佳有理逼近的问题/答案。然而,我对浮点数的确切值感兴...