标签: numerical

高效评估超几何函数

有没有人有评估超几何函数的算法经验?我会对一般参考文献感兴趣,但我会描述我的特殊问题,以防有人处理它.

我的具体问题是评估形式3F2(a,b,1; c,d; 1)的函数,其中a,b,c和d都是正实数,c + d> a + b + 1.有许多特殊情况具有封闭形式的公式,但据我所知,一般没有这样的公式.以零为中心的幂级数收敛于1,但非常缓慢; 连续系数的比率在限制中变为1.也许像Aitken加速这样的东西会有帮助吗?

algorithm math numerical

6
推荐指数
2
解决办法
1676
查看次数

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

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

Ñ(X)= N ñ ħ Ñ(X)EXP(-x 2 /2)
其中H Ñ(x)是厄米多项式

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

同样在存在具有不同宽度的量子谐波波函数的情况下.

问题是波函数phi n(x)具有振荡行为,这对于大n是一个问题,并且来自GSL(GNU Scientific Library)的自适应Gauss-Kronrod积分算法花费很长时间来计算,并且具有大的误差.

numerical physics numerical-analysis numerical-methods numerical-integration

6
推荐指数
1
解决办法
3156
查看次数

有任意精度算术影响数值分析软件吗?

任意精度算术影响数值分析软件吗?

我觉得大多数数值分析软件都使用相同的浮点数和双精度数.

如果我是对的,我很想知道原因,因为在我看来,有些计算可以从任意精度算术的使用中受益,特别是当它与有理数表示的结合使用时,在GNU多精度库上完成.

如果我错了,例子会很好.

math numerical arbitrary-precision

6
推荐指数
2
解决办法
906
查看次数

数值算法中的Java性能

我很好奇Java数值算法的性能,例如矩阵矩阵双精度乘法,使用最新的JIT机器,例如手动调整的SSE C++ /汇编器或Fortran对应物.

我看过网络,但大部分结果来自差不多10年前,我从那时起就了解Java的进展.

如果您有使用Java进行数字密集型应用程序的经验,您可以分享您的经验.Java在内核中执行的效果如何,其中循环相对较短且内存访问不是很均匀但仍在L1缓存的限制范围内?如果连续多次执行此类内核,JVM可以在运行时优化它吗?

谢谢

java optimization performance numerical sse

6
推荐指数
1
解决办法
4487
查看次数

如何以不同的顺序添加浮动,并始终获得相同的总数?

比方说,我有3个32位浮点值,a,b,和c,这样(a + b) + c != a + (b + c).是否存在可能类似于Kahan求和的求和算法,它保证这些值可以按任何顺序求和并且总是达到完全相同(相当准确)的总和?我正在寻找一般情况(即不是仅涉及3个数字的解决方案).

是任意精度算术的唯一出路吗?我正在处理非常大的数据集,所以我希望尽可能避免使用任意精度算术的开销.

谢谢!

math floating-point numerical

6
推荐指数
1
解决办法
2599
查看次数

在CUDA中测试无穷大

在CUDA程序中,我最近从使用的测试转换为无限性

return x==INFINITY || x==-INFINITY;
Run Code Online (Sandbox Code Playgroud)

其中INFINITY是从math.h中,至

return !isfinite(x);
Run Code Online (Sandbox Code Playgroud)

得到不同的结果,我感到非常惊讶.gnu.org建议他们实际应该表现得相似.我错过了什么吗?是不允许INFINITY在CUDA内核中使用?

编辑: 我刚发现isinf并注意到使用检查

return isinf(x);
Run Code Online (Sandbox Code Playgroud)

给出与INFINITY检查相同的结果.为什么不 isfinite(x)==!isinf(x)呢?

c c++ numerical cuda

6
推荐指数
1
解决办法
5609
查看次数

remquo:减少参数?

在C99规范中它说的是remquo:

remquo函数用于实现参数减少,这可以利用商的一些低阶位.注意,x的幅度可能相对于y太大,以至于商的精确表示是不实际的.

在这种情况下什么是"参数减少",什么是可以利用商的一些低阶位的例子?

c math floating-point numerical

6
推荐指数
1
解决办法
345
查看次数

用多个点对两个"数字"排序

我有一个无序列表,看起来像这样:

1.1.1
1.1.1.1
1.1.2
1.10.1
1.10.2
1.2.1
1.2.2
1.2.3
1.2.4
1.20.1
1.3.1
Run Code Online (Sandbox Code Playgroud)

我想在Javascript中将其排序为"数字"顺序.

1.1.1
1.1.1.1
1.1.2
1.2.1
1.2.2
1.2.3
1.2.4
1.3.1
1.10.1
1.10.2
1.20.1
Run Code Online (Sandbox Code Playgroud)

我需要哪种功能?

javascript sorting numerical

6
推荐指数
1
解决办法
1327
查看次数

分类和数字特征 - 分类目标 - Scikit学习 - Python

我有一个包含分类和数字列的数据集,我的目标列也是分类.我在Python34中使用Scikit库.我知道在进行任何机器学习方法之前,Scikit需要将所有分类值转换为数值.

我应该如何将分类列转换为数值?我尝试了很多东西,但是我得到了不同的错误,例如"str"对象没有'numpy.ndarray'对象没有属性'items'.

Here is an example of my data:
 UserID  LocationID   AmountPaid    ServiceID   Target
 29876      IS345       23.9876      FRDG        JFD
 29877      IS712       135.98       WERS        KOI
Run Code Online (Sandbox Code Playgroud)

我的数据集保存在CSV文件中,这里是我写的小代码,可以让您了解我想要做的事情:

#reading my csv file
data_dir = 'C:/Users/davtalab/Desktop/data/'
train_file = data_dir + 'train.csv'
train = pd.read_csv( train_file )

#numeric columns:
x_numeric_cols = train['AmountPaid']

#Categrical columns:
categorical_cols = ['UserID' + 'LocationID' + 'ServiceID']
x_cat_cols = train[categorical_cols].as_matrix() 


y_target = train['Target'].as_matrix() 
Run Code Online (Sandbox Code Playgroud)

我需要将x_cat_cols转换为数值并将它们添加到x_numeric_cols,因此我有完整的输入(x)值.

然后我需要将目标函数转换为数值,并将其作为我的最终目标(y)列.

然后我想使用这两个完整集来做一个随机森林:

rf = RF(n_estimators=n_trees,max_features=max_features,verbose =verbose, n_jobs =n_jobs)
rf.fit( x_train, y_train )
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

python numerical target scikit-learn categorical-data

6
推荐指数
1
解决办法
3228
查看次数

C++浮点数比较零失败与Gtest

我们正在努力进行一次单位测试.在调查期间,我们找到了根本原因,这似乎是浮点数的比较(请参阅下面的代码片段,其中我简化了计算,但仍然失败).

TEST_F( MyFloatTest, thisOneDoesFail)
{
    const float toCompare = 0.2f - 1.0f + 0.9f;
    EXPECT_FLOAT_EQ( toCompare, 0.1f );
}
Run Code Online (Sandbox Code Playgroud)

结果是:

实际:0.1预期:比较哪个是:0.099999964

在数学数学方面有一些背景知识,我们仍然无法弄清楚为什么这个测试失败了,而使用std :: numerical_limits :: epsilon的自定义浮点数比较通过了.所以在某些时候我们开始思考,GTest是错的,我们调试了它.它使用奇怪的表达式,我们没有完全抓住.更奇怪的是:即使我只添加1,下面的测试也会通过:

TEST_F( MyFloatTest, thisOnePasses)
{
    const float toCompare = 1.2f - 1.0f + 0.9f;
    EXPECT_FLOAT_EQ( toCompare, 1.1f );
}
Run Code Online (Sandbox Code Playgroud)

我们认为在包含负浮点值时可能会出现问题,但下一个测试也会通过:

TEST_F( MyFloatTest, thisOnePassesAlso)
{
    const float toCompare = 0.2f - 1.0f + 1.9f;
    EXPECT_FLOAT_EQ( toCompare, 1.1f );
}
Run Code Online (Sandbox Code Playgroud)

所以对我们来说,看起来Gtest的EXPECT_FLOAT_EQ宏确实只是零问题.有谁知道这种行为?你有没有在你的环境中看到类似的东西?(顺便说一下:我们使用的是MSVC2015)由于GTest中提到的4 ULP精度,它是否偶然失败?(这对我们来说也不是很清楚).

c++ floating-point numerical googletest

6
推荐指数
2
解决办法
450
查看次数