问题标签 [numerical-recipes]

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 投票
1 回答
528 浏览

c++ - 用 C++ 类替换数值配方的 dmatrix

我正在修改一个dmatrix非常广泛地使用数字食谱的旧应用程序。由于我正在开发该应用程序的原因之一是它的代码即将被打开,因此我想用可以自由分发的代码替换所有数字食谱代码。

dmatrix是一个返回双精度矩阵的函数。被调用者提供每个索引的下限和上限,如下所示:

mat现在有 3 行,从 1 到 3,3 列,从 1 到 3,所以这mat[1][1]是第一个元素,mat[3][3]也是最后一个元素。

我查看了各种 C++ 矩阵实现,没有一个允许我指定每个维度的下限。有什么我可以使用的,还是我必须为此编写另一个矩阵类?

0 投票
1 回答
427 浏览

c++ - 类方法类型

我正在使用数字配方库编写代码,我想最小化一个实际上是类方法的函数。我有这种类型的代码:

我想使用 Powell 方法最小化这个函数,在下面的代码中

但是当我编译时出现以下错误:

有没有人遇到过这个问题?提前致谢

0 投票
0 回答
352 浏览

python - 在 Cython 中包装 GSL 时出错:无法将 Python 对象转换为 'double (*)(double, void *) nogil'

首先,请原谅我对编程术语的不当使用和糟糕(甚至完全错误)的编程实践;我仍在努力寻找自己的脚 :-)

总之,我正在尝试在 Numerical Recipes,第 3 版,pgs 中编写多维集成例程的一个版本。198 - 199. 在 Cython 中,使用 GSL数值积分库。我已经从下面的 NR 书中复制了相关片段:

该脚本确实应用了一个先前编写的积分例程qgaus(我稍后将用 GSL 中的例程替换它),它采用一个双精度函数和两个表示积分限制的双精度作为输入参数。

在数学上,代码执行积分,如方程式所示。(4.6.2) 这个链接。积分极限 y[i] 和 z[i] 分别具有 (x) 和 (x,y) 依赖性,因为积分在 (x,y) 平面中的预定义区域上运行(见图 4.6.1上面相同的链接)。

我自己在 Cython 中的尝试如下(请注意,我认为我的问题与与 GSL 的接口无关,但仍处于正确 Cythoning 的水平):

用通常的方法编译这个脚本

正如在 Cython 网站上找到的那样,出现以下错误:

错误分别指的是行F2.function = f3_tempF1.function = f2。在这个例子gsl_integration_qags中是一个来自 gsl 的库,但是为了解决这个问题,接口的正确性并不重要,因为(我认为)问题在于我使用的 Cython 语法不正确。

我的直觉告诉我,这是一个非常琐碎的新手错误,但我一直找不到原因。任何输入(关于问题,我的一般代码)都将受到欢迎。

编辑1:反映实际的错误信息

编辑 2:编辑标题以反映错误消息的性质

编辑3:我应该说我理解错误来自我试图分配一个Python实例对象,即在行F2.function = f3_tempF1.function = f2中,给一个struct成员,该成员是一个接受两个参数的函数。由于这似乎是将代码从 C 语言移植到 Cython 的一个相当简单的过程,并且假设一个与原始 C 实现密切相关,我只是想知道如何正确地编写这些行。

编辑 4: 一些搜索出现了这个线程。我认为我的困惑可以以同样的方式提炼出来:如何将 Python 类成员(如果我已正确实例化它)传递给 C 函数?

0 投票
0 回答
18 浏览

visual-studio-2010 - 数字配方中的链接器错误

我的情况是我有一个文件 c++ 代码,它使用数字配方库。

我已将所有数字配方文件包含在“ 其他 包含
目录 ” 中



但是,当我构建时,我收到以下错误。

错误 LNK2019:未解析的外部符号“void __cdecl NR::splint(class NRVec const &,class NRVec const &,class NRVec const &,double,double &)”(?splint@NR@@YAXABV?$NRVec@N@@ 00NAAN@Z) 在函数“void __cdecl smooth_disp_Line(double *,int *,int,int,double *,double *,int,int)”中引用 (?smooth_disp_Line@@YAXPANPAHHH00HH@Z)

错误 LNK2019:未解析的外部符号“void __cdecl NR::spline(class NRVec const &,class NRVec const &,double,double,class NRVec &)”(?spline@NR@@YAXABV?$NRVec@N@@0NNAAV2@ @Z) 在函数“void __cdecl smooth_disp_Line(double *,int *,int,int,double *,double *,int,int)”中引用 (?smooth_disp_Line@@YAXPANPAHHH00HH@Z)

此错误来自现有代码。那么,有人可以告诉我这个错误吗?

0 投票
1 回答
77 浏览

c++ - 复杂数据类型的模板实例化问题

我的参数类型为

我的函数调用是

函数声明是

有人可以告诉我,为什么我会收到以下错误。

0 投票
1 回答
47 浏览

numerical-recipes - 数字配方是一个只有标题的库

数字食谱是一个只有标题的库吗?

我只有头文件。我不确定我是否需要购买许可证?

0 投票
1 回答
205 浏览

c++ - Why are there no include guards in Numerical Recipes header files?

novice C++ programmer here.

I'm using Numerical Recipes (V3) source code as part of a larger, modulated C++ project.

While I'll try not to get into the specifics of my problem, I am curious as to why these NR header files do not incorporate any header guards? I'm aware this question is very specific to those who have used this code in the past, but looking at the NR forums they seem quite inactive...

The errors I'm finding with my code that prompted this question are;

error LNK2005: "void __cdecl gaussj(class NRmatrix &)" (?gaussj@@YAXAAV?$NRmatrix@N@@@Z) already defined in Schmidt_V2_(Zeta).obj

error LNK2005: "void __cdecl gaussj(class NRmatrix &,class NRmatrix &)" (?gaussj@@YAXAAV?$NRmatrix@N@@0@Z) already defined in Schmidt_V2_(Zeta).obj

0 投票
1 回答
288 浏览

integer - fortran 90 ran_init 整数模型假设中的数值配方

ran_initNumerical Recipes的子程序包含以下几行:

其中K4B,hgnghg通过以下方式在模块中全局声明:

问题是在一台特定的计算机上(但不是在其他计算机上)我得到了错误ran_init: arith assump 3 fails。我从有关此错误的文档中得到的唯一信息是:

这里有点脏衣服!我们正在测试最正整数 hg 在加 1 时是否回绕到最负整数 hgng。我们不能只写 hg+1 ,因为一些编译器会在编译时评估它并返回溢出错误消息。如果您的编译器看穿了临时变量 hgt 的字谜,您将不得不找到另一种方法来欺骗它!

我该如何欺骗它?

0 投票
1 回答
429 浏览

c - indexx() 数值食谱 (C) 索引排序算法奇怪地忽略了前两个元素

我正在尝试在 C 中使用来自 Numerical Recipes (NR) 的 indexx() 算法,并发现了一个非常奇怪的错误。

(NR 在此处公开:http ://www2.units.it/ipl/students_area/imm2/files/Numerical_Recipes.pdf第 338 页,第 8.4 节)

该函数应输出与输入浮点数组的元素相对应的索引数组,从低到高排序。

下面是一个最小的工作示例,显示该算法似乎忽略了前两个元素。输出数组的前两个元素始终为 0,后跟数组的长度(本例中为 9)。其余元素似乎已正确排序。

哦,我试图在 NR 论坛上提问,但我的帐户已等待很长时间才能激活...提前非常感谢!

[编辑数组名称]

输出:

0 投票
1 回答
1001 浏览

c# - C# 数值配方

我是 C# 和一般编程的初学者,我想问一下。我正在尝试制作一个包含 datagridview 和一些计算的项目。基本上我想做的是从经验数据表中用切比雪夫近似值近似数据。使用来自数字配方的代码我想使用这个功能,chebft,它看起来像这样:

我希望它在 C# 中使用,所以到目前为止我有什么:

我知道 func 部分和 f[k] 部分有错误,但我不知道如何修复它们。

感谢帮助