Questions tagged «precision»

与给定基数中的有限表示形式中的数值表示形式有关的问题与其确切的数学值不同。

17
是否有适用于Python的高质量非线性编程求解器?
我要解决几个具有挑战性的非凸全局优化问题。目前,我使用了MATLAB的Optimization Toolbox(特别是fmincon()使用algorithm = 'sqp'),它非常有效。但是,我的大部分代码是在Python中进行的,我也想在Python中进行优化。是否存在可以与Python绑定竞争的NLP求解器fmincon()?它必须 能够处理非线性等式和不等式约束 不需要用户提供雅可比行列式。 如果不保证全局最优(fmincon()没有),也可以。我正在寻找一种即使在遇到挑战性问题时也可以收敛到局部最优的东西,即使它比慢一些fmincon()。 我尝试了OpenOpt提供的几种求解器,发现它们不如MATLAB的fmincon/sqp。 只是为了强调,我已经有了一个易于处理的公式和一个好的求解器。我的目标仅仅是更改语言,以使工作流程更加简化。 Geoff指出问题的某些特征可能是相关的。他们是: 10-400个决策变量 4-100个多项式相等约束(多项式范围从1到大约8) 有理不等式约束的数量大约等于决策变量数量的两倍 目标函数是决策变量之一 等式约束的雅可比行列是密集的,不等式约束的雅可比行列是密集的。



1
使用Python和双精度现代GPU进行科学计算
这里有没有人通过Python在新一代(例如K20)GPU中使用过双精度科学计算? 我知道这项技术正在迅速发展,但是目前最好的方法是什么?GPU超出了流行的科学Python库numpy和scipy的范围,我曾经想使用theano,但它似乎只对GPU使用float32精度。我知道google可以为python gpu提供搜索结果,但我希望获得比可能会或可能不会会见其制造商的项目列表更多的见识。
14 python  gpu  precision 

2
向量之间的角度数值稳定计算方法
当对两个向量之间的角度应用经典公式时: α=arccosv1⋅v2∥v1∥∥v2∥α=arccos⁡v1⋅v2‖v1‖‖v2‖\alpha = \arccos \frac{\mathbf{v_1} \cdot \mathbf{v_2}}{\|\mathbf{v_1}\| \|\mathbf{v_2}\|} 人们发现,对于非常小的/锐角,会损失精度,结果也不准确。正如在解释这个堆栈溢出的答案,一个解决方案是使用反正切来代替: α=arctan2(∥v1×v2∥,v1⋅v2)α=arctan⁡2(‖v1×v2‖,v1⋅v2)\alpha = \arctan2 \left(\|\mathbf{v_1} \times \mathbf{v_2}\|, \mathbf{v_1} \cdot \mathbf{v_2} \right) 这确实提供了更好的结果。但是,我想知道这是否会给非常接近\ pi / 2的角度带来不好的结果π/2π/2\pi / 2。是这样吗 如果是这样,是否有任何公式可以精确计算角度而无需检查if分支内的公差?

2
为什么病态线性系统可以精确解决?
根据此处的答案,较大的条件数(用于线性系统求解)会减少浮点解中保证的正确数字位数。伪光谱方法中的高阶微分矩阵通常条件非常恶劣。为什么它们仍然是非常准确的方法? 我了解病态矩阵带来的低精度只是一个保证值,但仍然令我感到奇怪的是,为什么实际上可以通过直接方法准确地解决病态矩阵-例如,LCOL第11页的表3.1 的列Wang等人,使用伪光谱积分矩阵的条件良好的聚集方法,SIAM J. Sci。计算36(3)。

3
单浮点精度与双浮点精度
单精度浮点数占用一半的内存,在现代机器上(甚至在GPU上),使用它们进行运算的速度几乎是双精度浮点数的两倍。我发现许多FDTD代码专门使用单精度算术和存储。有什么经验可以解决使用单精度求解大型稀疏方程组的问题?我认为它必须在很大程度上取决于矩阵条件数。 此外,是否有任何有效的技术在必要时使用双精度,而在不需要双精度的情况下使用单精度。例如,我认为对于矩阵矢量乘法或矢量点积,将结果累加到双精度变量中(以避免抵消误差)可能是一个好主意,但是各个条目要彼此相乘可以使用单精度乘以 现代FPU是否无缝地允许从单精度(浮动)转换为双精度(双精度),反之亦然?还是这些昂贵的运营?


4
确定性模型的运行会产生小的,不可预测的结果
我有一个用C编写的相当大的模型(约5000行)。它是一个串行程序,在任何地方都没有随机数的产生。它将FFTW库用于使用FFT的函数-我不知道FFTW实现的详细信息,但是我假设其中的函数也是确定性的(如果我出错,请更正我)。 我无法理解的问题是,在同一台计算机(相同的编译器,相同的库)上运行相同的结果在结果上存在很小的差异。 我使用双精度变量,并将结果输出到变量中value,例如,我发出: fprintf(outFID, "%.15e\n", value);或 fwrite(&value, 1, sizeof(double), outFID); 而且我会不断得到诸如以下的差异: 2.07843469652206 4 e-16与2.07843469652206 3 e-16 我花了很多时间试图找出原因。最初我以为我的一个存储芯片已经坏了,所以我下令更换了它们,无济于事。随后,我还尝试在同事的Linux机器上运行我的代码,并且得到了相同性质的差异。 是什么原因造成的?现在这是一个小问题,但我想知道这是否是“冰山一角”(一个严重的问题)。 我以为我会在这里发布而不是StackOverflow,以防有人使用数值模型。如果有人可以阐明这一点,我将非常有义务。 评论后续: Christian Clason和Vikram:首先,感谢您对我的问题的关注。您链接的文章建议:1.舍入错误限制了准确性,并且2.不同的代码(例如引入看似无害的打印语句)可能会影响机器的结果。我要澄清的是,我没有比较效果fwrite和fprintf功能。我正在使用一个或另一个。特别是,两次运行都使用相同的可执行文件。我只是在说明是否使用fprintfOR 发生问题fwrite。 因此,代码路径(和可执行文件)相同,硬件也相同。在所有这些外部因素保持不变的情况下,随机性从何而来呢?我怀疑由于错误的内存无法正确保留位而发生了位翻转,这就是为什么我更换了内存芯片的原因,但是我证实这并不是这里的问题,我证实并指出。我的程序在一次运行中输出了数千个这种双精度数字,并且总是有随机的少数具有随机的位翻转。 跟帖基督教克拉森的第一个评论:为什么是机器精度内一样的0?双精度数的最小正数是2.22e-308,那不等于0吗?我的程序输出10 ^ -16范围(从1e-15到8e-17)的数千个值,并且我们一直在研究项目中看到有意义的变化,所以我希望我们不要一直在研究荒谬的东西。数字。2 ⋅ 10− 162⋅10-162\cdot 10^{-16} 后续活动2: 这是模型输出的时间序列的图,有助于注释中的分支讨论。

2
密集病态矩阵的对角化
我正在尝试将一些稠密,病态的矩阵对角化。在机器精度方面,结果不准确(返回负特征值,特征向量不具有预期的对称性)。我切换到Mathematica的Eigensystem []函数以利用任意精度,但是计算速度非常慢。我愿意接受许多解决方案。是否有非常适合病态问题的软件包/算法?我不是预处理方面的专家,所以我不确定这有多大帮助。否则,我所能想到的就是并行化的任意精度特征值求解器,但是我对Mathematica,MATLAB和C ++并不熟悉。 为了提供一些有关此问题的背景,矩阵很大,但不是很大(最多4096x4096至32768x32768)。它们是实数,是对称的,特征值在0到1(不包括)之间,许多特征值非常接近0,没有一个接近1。矩阵本质上是卷积算符。我不需要对所有矩阵进行对角线化,但是我可以走的越大越好。我可以访问具有许多处理器和分布式计算功能的计算集群。 谢谢

2
表示没有浮点数的爱森斯坦数
我有一个项目,需要使用二次字段, 具体是表格的数字a + b− 3---√a+b−3a + b \sqrt{-3} 与 a,b∈Qa,b∈Qa,b \in \mathbb{Q}。 例如,这是爱森斯坦整数中的质数: 我不想用鼠尾草。 我想编写自己的数据类型来合并numpy。PARI很有用-但它与Python不兼容。 这些对象的加法非常清楚 (a1+b1−3−−−√)+(a2+b2−3−−−√)=(a1+a2)+(b1+b2)−3−−−√(a1+b1−3)+(a2+b2−3)=(a1+a2)+(b1+b2)−3(a_1 + b_1 \sqrt{-3}) + (a_2 + b_2 \sqrt{-3}) = (a_1 + a_2) + (b_1+b_2) \sqrt{-3} 乘法稍微复杂一点,但我们也可以对其进行硬编码 (a1+b1−3−−−√)×(a2+b2−3−−−√)=(a1a2−3b1b2)+(a1b2+a2b1)−3−−−√(a1+b1−3)×(a2+b2−3)=(a1a2−3b1b2)+(a1b2+a2b1)−3(a_1 + b_1 \sqrt{-3}) \times (a_2 + b_2 \sqrt{-3}) = (a_1 a_2 - 3 b_1 b_2) + …

2
数值PDE中的高精度浮点算法
我从不同的资源和研究中得到的印象是,对数值偏微分方程的高精度计算的需求不断增长。在这里,高精度意味着比标准的64位双精度更高的精度。 我想知道这个话题的最新状态。通过比较的方式,数字PDE中存在一些共性,它们专门针对多核方法,大规模并行化或GPU计算。我想知道在数值PDE中是否存在类似社区或正在使用高精度方法发展这种方法,我会特别感兴趣(这是问题的实质)在介绍性或调查性高精度论文中,这也给人留下了深刻的印象。主题的实际相关性。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.