标签: numeric

无法创建生存对象:错误“时间变量不是数字”

我尝试使用此命令创建一个生存对象。

Surv(date1, date2, event=status)
Run Code Online (Sandbox Code Playgroud)

它导致错误“时间变量不是数字”。请注意,“date1”和“date2”的类别是 Date。

在创建生存对象之前,我是否需要将 Date 对象强制转换为数字?我认为这没有任何意义。

r numeric object

5
推荐指数
1
解决办法
2万
查看次数

R 浮点数精度在从字符转换时丢失

我有一个很大的浮点数作为这样的字符

  x<-"5374761693.91823";
Run Code Online (Sandbox Code Playgroud)

在做

 as.numeric(x); 
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

   5374761694
Run Code Online (Sandbox Code Playgroud)

我想在转换时保留数字的浮点性质。

casting r numeric

5
推荐指数
1
解决办法
3239
查看次数

BCPL 八进制数值常量

由于有人问我使用前缀“0x”表示十六进制数字背后的原因,我一直在深入研究 BCPL 的历史。

在我的搜索中,我偶然发现了这个代币背后历史的非常好的解释。(为什么十六进制数要加上0x前缀?

然而,从这篇文章中,又引发了另一个问题:

对于八进制常量,BCPL 是否使用8 <digit>(根据规范:http://cm.bell-labs.com/cm/cs/who/dmr/bcpl.pdf)或是否使用#<digit>(根据http://rabbit.eng .miami.edu/info/bcpl_reference_manual.pdf)或者这两种语法在该语言的不同实现中都有效吗?

我还在这里找到了第二个答案,它使用了 # 语法,这进一步引起了我对这个主题的兴趣。(为什么用前导零来表示八进制数?

任何历史见解都将受到高度赞赏。

constants numeric bcpl

5
推荐指数
1
解决办法
1305
查看次数

R - 舍入到最接近的一半

我有以下数据:

> vec
 [1] 0.0 0.5 1.0 1.4 1.9 2.4 3.1 3.6 4.1 4.6 5.0 5.5 6.0 6.5 7.0 7.4 7.9 8.4 9.1 
Run Code Online (Sandbox Code Playgroud)

我需要四舍五入到最接近的 0.5。

让我更具体一点:1.4 变成 1.5,1.9 变成 2.0。此外,2.4 变为 2.5,3.1 变为 3.0。等等。我期望的向量是:

> vec
 [1] 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

非常感谢。

r numeric rounding

5
推荐指数
1
解决办法
5993
查看次数

如何在 Java 和 PostgreSQL 中处理 32 位数字?

我正在使用 JavaFX 和 PostgreSQL 数据库开发一个小工具。我现在的任务是处理 32 位数字。我用 Long 尝试过,但它太短/小了。

我记得 Postgres 抱怨是因为我没有使用正确的数据类型,这就是为什么我首先在​​这里询问,然后我再次更改受此问题影响的所有行。

我不会用这个数字进行数学运算,但我需要在其中保存 null。

你有什么建议?字符串,BigInteger?

代码示例:

//...
myObject.setSerialNumber(getLongFromDB(rs, "serialnumber"));
//...

private static Long getLongFromDB(ResultSet rs, String column) throws SQLException {
    Long l = rs.getLong(column);
    if (rs.wasNull()) l = null; // because getLong is long not Long, I need to know about null
    return l;
}
Run Code Online (Sandbox Code Playgroud)

java postgresql numeric long-integer

5
推荐指数
1
解决办法
5123
查看次数

如何优化 Haskell 中的数值积分性能(举例)

如何优化数值积分例程(与 C 相比)?

目前已经做了什么:

  1. 我用未装箱的向量替换了列表(显而易见)。
  2. 我应用了“Read World Haskell”一书中描述的分析技术http://book.realworldhaskell.org/read/profiling-and-optimization.html。我内联了一些琐碎的函数,并在各处插入了很多刘海。这带来了大约 10 倍的加速。
  3. 我重构了代码(即提取iterator函数)。这带来了 3 倍的加速。
  4. 我尝试用 Floats 替换多态签名,如这个问题 Optimizing numeric array Performance in Haskell 的答案。这几乎提高了 2 倍的速度。
  5. 我这样编译 cabal exec ghc -- Simul.hs -O2 -fforce-recomp -fllvm -Wall
  6. 更新按照 cchalmers 的建议,type Sample = (F, F)被替换为 data Sample = Sample {-# UNPACK #-} !F {-# UNPACK #-} !F

现在的性能几乎和C代码一样好。我们可以做得更好吗?

{-# LANGUAGE BangPatterns #-}

module Main
  where

import qualified Data.Vector.Unboxed as U
import qualified Data.Vector.Unboxed.Mutable as UM …
Run Code Online (Sandbox Code Playgroud)

optimization haskell numeric numerical-integration

5
推荐指数
0
解决办法
326
查看次数

重心坐标三角形点检验的数值稳定性

在研究三角形点测试(2D 情况)的各种方法时,我发现使用重心坐标的方法是最常用的一种。是 StackOverflow 的答案,对此进行了解释。

为什么这种方法是最优选的方法?这可能与计算量减少有关,但是数值稳定性呢?对于点特别靠近边界的情况,该算法是否比“同边”技术更适合?

language-agnostic algorithm math geometry numeric

5
推荐指数
1
解决办法
949
查看次数

R:使用自定义顺序按名称重新排序数字向量

我有一个数字向量,想使用自定义顺序按名称重新排序。

x <- sample(1:20, 5)
names(x) <- c("feb", "may", "mar", "jan", "apr")
x
feb may mar jan apr 
  7  10   5  13  11 
Run Code Online (Sandbox Code Playgroud)

如您所见,向量不是按月顺序排列的

期望输出

我希望使用名称通过月份顺序重新排序这个字符向量,即 jan, feb, mar, apr, may...

这怎么可能?

注意:我追求的是一种可以用于所有名称/字符串的方法,而不是专门用于日期对象

r numeric vector

5
推荐指数
1
解决办法
5886
查看次数

避免日志溢出(cosh(x))

我的模拟需要实现

np.log(np.cosh(x))
Run Code Online (Sandbox Code Playgroud)

这会溢出 large x,即我收到RuntimeWarning: overflow encountered in cosh警告。原则上,随着对数减少所讨论的数字,在 的某个范围内xcosh应该溢出而不log(cosh())应该溢出。

在 NumPy 中是否有任何解决方案,例如在精神上与np.log1p()功能相似?

提供更多信息:我知道一个可能的解决方案可能是符号使用 SymPy https://github.com/sympy/sympy/issues/12671 但是模拟应该很快,并且符号计算 AFAIK 可能会显着减慢它的速度。

python numpy logarithm numeric hyperbolic-function

5
推荐指数
1
解决办法
904
查看次数

使用 julia 计算特征向量时失去对称性

有人能指出为什么 Julia 在对某些类型的矩阵进行对角化时会失去对称性吗?(在下面我将忽略归一化常量。)我一直在尝试解决以下 Floquet 矩阵:

U[i,i] = exp(-i^2im/N),
Run Code Online (Sandbox Code Playgroud)

N基体和其它部件的尺寸是零。显然,这是哈密顿量的“时间演化”

H = p^2/2.
Run Code Online (Sandbox Code Playgroud)

H是在奇偶校验下对称的,因此U在站点基础上Us = Udft'U*UdftUdft是离散傅立叶矩阵 stUdft[m,mp] = sqrt(N)^-1 exp(i*j*1im/N)见下文),也就是说,可以检查

Jp*Us - Us*Jp = 0,
Run Code Online (Sandbox Code Playgroud)

在哪里

Jp[i,j] = \delta_{i,N-j+1}
Run Code Online (Sandbox Code Playgroud)

是空间求逆矩阵。然而,本征态不满足奇偶性。如果vs是 的本征态Us,则

Jp*vs = \pm vs,
Run Code Online (Sandbox Code Playgroud)

对于 julia 给出的数值结果,这不会发生。这有点奇怪,因为对于低维,说N=11没有问题,但如果我去,说N=1001然后麻烦开始出现。(在某些条件下,我想N成为奇数。原因是我有粒子被限制在单一圆上移动,并且我希望这些位置围绕零角对称。)为了对角化,我使用Julia 1.2.0

 LinearAlgebra.eigen(Us).
Run Code Online (Sandbox Code Playgroud)

附录:感谢 SGJ 指出 DFT 中的明显错误。构造矩阵我做

M = div(N,2)
m = 1
for ii in -M:M
    mp = …
Run Code Online (Sandbox Code Playgroud)

numeric julia

5
推荐指数
1
解决办法
107
查看次数