问题标签 [scientific-computing]

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 投票
2 回答
11461 浏览

numpy - 使用 scipy 的低通冷杉滤波器的参数

我正在尝试使用 scipy 编写一个简单的低通滤波器,但我需要帮助来定义参数。

我的时序数据中有350万条记录需要过滤,数据以1000Hz采样。

我正在使用 scipy 库中的 signal.firwin 和 signal.lfilter。

我在下面的代码中选择的参数根本不会过滤我的数据。取而代之的是,下面的代码只是简单地生成了一些在图形上看起来像完全相同的数据的东西,除了时间相位失真,它使图形向右移动了略小于 1000 个数据点(1 秒)。

在另一个软件程序中,通过图形用户界面命令运行低通冷杉滤波器产生的输出对于每 10 秒(10,000 个数据点)段具有相似的平均值,但其标准偏差显着降低,因此我们基本上失去了这个特定的噪声数据文件并将其替换为保留平均值同时显示不受更高频率噪声污染的长期趋势的东西。另一个软件的参数对话框包含一个复选框,允许您选择系数的数量,以便“根据样本大小和采样频率进行优化”。(我的是以 1000 赫兹收集的 350 万个样本,但我想要一个将这些输入用作变量的函数。)

*谁能告诉我如何调整下面的代码,以消除所有高于 0.05 赫兹的频率?* 我希望在图表中看到平滑的波浪,而不仅仅是我现在从下面的代码中得到的相同图表的时间失真。

0 投票
5 回答
644 浏览

optimization - 整数上的线性代数包

我最近遇到了以下问题。给定一个包含整数条目的向量列表(这里我的意思是元组),是否有一个包(语言不是太大的问题,越快越好,所以我猜是 C)可以非常快速地确定另一个整数向量何时在原始列表的跨度?我需要对整数进行此算术运算(无除法)。我敢肯定有一个,但想绕过冗长的文献回顾。

0 投票
2 回答
4336 浏览

c++ - 您使用什么库在 CUDA 上进行矩阵计算?

您使用什么库在 CUDA 上进行矩阵计算?或者有吗?好像每个人都是自己写的。

对于通常的处理器,我使用Eigen。GPU 呢?

0 投票
2 回答
2786 浏览

python - 将 Python 警告/错误跟踪到 numpy 和 scipy 中的行号

我收到错误消息:

从 Python 中,我相信错误是由 numpy 引发的(使用版本 1.5.0)。但是,由于我在几个地方调用了“日志”函数,我不确定错误来自哪里。有没有办法让 numpy 打印产生此错误的行号?

我假设警告是由于取一个小到可以四舍五入为 0 或更小(负)的数字的对数引起的。是对的吗?这些警告的通常来源是什么?

0 投票
2 回答
1041 浏览

macos - 在 Mac OS X 上分析数学密集型 C++ 应用程序以提高速度的最简单/最佳方法是什么?

我正在 Mac OS X 上开发一个控制台数学密集型应用程序。它是用 C++ 实现的,我没有使用特殊的 IDE,只是一个纯文本编辑器和用于编译的 GCC。

目前,我的数据执行速度很慢。分析它以了解要优化哪些部分的最简单/最佳方法是什么?

我在非常基础的层面上使用 valgrind 来检查内存泄漏。但是,我从未将它(callgrind)用于计算速度分析。我该怎么做?我发现 callgrind 文档有点混乱/对新手不太友好。是否有适用于 Mac 的 kcachegrind 等价物?据我所知,Maccachegrind 仅适用于 xdebug 输出,不适用于 callgrind 3.6.0 输出。

使用 valgrind 或 gprof 进行分析更好吗?我也不熟悉。

谢谢。

0 投票
2 回答
469 浏览

python - python中物理量的命名

我想为我的模拟代码中使用的物理/数学量建立一个好的命名方案。考虑以下示例:

为了平衡可读性简洁的符号(公式保持相对较短),您会为物理属性(属性、函数参数等)提出什么一致的命名方案?您能否完善上面的示例?或者也许提出一个更好的方案?

遵循PEP8的指导方针会很好,记住“愚蠢的一致性是小聪明的妖精”。在遵守传统的 80 个字符的行长限制的同时,似乎很难坚持描述性名称。

先感谢您!

0 投票
5 回答
16987 浏览

python - 用于多变量全局优化的 Python 模块

我一直在寻找一个 python 模块,它实现了全局优化的常用技术(在 N 维中找到函数的全局最小值),但没有成功。

如果您听说过 python 中的模拟退火或遗传算法实现,请分享。

0 投票
5 回答
4641 浏览

c++ - (重新)从 C++ 开始(用于科学计算)

我对各种语言的编程有相当的了解。我一直在使用 MATLAB 实现我的研究代码(在过去的几个月里),并且第一次真正注意到 MATLAB v$ C 的执行速度的差异。(尽管我喜欢极快的原型设计能力)。

我正在寻找 C++ 并开始在我的研究中使用它。我知道 OOP 并且已经编写了相当多的 Java(相对较长的回溯)和 C++(甚至更长的回溯)。我现在想真正深入了解 C++,因此需要有关资源的建议:

  • 我需要掌握哪些 C++ 东西(STL 和。)才能真正充分利用 C++?
  • 什么是入门的好教程/手册?
  • 什么是 C++ 的数值/科学库?GSL?C++ 是否有 Scipy/Numpy 的等效(功能)?

我将在 Linux 上编程,所以我将使用 g++ 。

任何指向以前的 SO 问题的指针也很感激。

0 投票
4 回答
26444 浏览

python - scipy、numpy、python等的sigmoidal回归

我有两个变量(x 和 y),它们之间的关系有点像 sigmoid,我需要找到某种预测方程,让我能够在给定 x 的任何值的情况下预测 y 的值。我的预测方程需要显示两个变量之间的某种 S 型关系。因此,我不能满足于产生一条直线的线性回归方程。我需要看到在两个变量的图表的左右两侧出现的斜率逐渐的曲线变化。

在谷歌搜索曲线回归和 python 之后,我开始使用 numpy.polyfit,但这给了我可怕的结果,如果你运行下面的代码,你可以看到。 谁能告诉我如何重新编写下面的代码以获得我想要的 sigmoidal 回归方程的类型?

如果你运行下面的代码,你可以看到它给出了一个向下的抛物线,这不是我的变量之间的关系应该看起来的样子。相反,我的两个变量之间应该有更多的 S 型关系,但与我在下面的代码中使用的数据紧密匹配。下面代码中的数据是来自大样本研究的平均值,因此它们的统计能力比它们的五个数据点可能暗示的要大。我没有来自大样本研究的实际数据,但我确实有以下方法及其标准偏差(我没有显示)。我宁愿只用下面列出的平均数据绘制一个简单的函数,但如果复杂性能带来实质性的改进,代码可能会变得更复杂。

如何更改我的代码以显示 sigmoidal 函数的最佳拟合,最好使用 scipy、numpy 和 python? 这是我的代码的当前版本,需要修复:


在下面编辑:(重新提出问题)

您的反应及其速度令人印象深刻。谢谢你,unutbu。但是,为了产生更有效的结果,我需要重新构建我的数据值。这意味着将 x 值重新转换为最大 x 值的百分比,同时将 y 值重新转换为原始数据中 x 值的百分比。我试图用你的代码做到这一点,并想出了以下内容:

你能告诉我如何修复这个修改后的代码吗?
注意:通过重新投射数据,我基本上将 2d (x,y) sigmoid 绕 z 轴旋转了 180 度。此外,1.000 并不是 x 值的最大值。相反,1.000 是在最大测试条件下来自不同测试参与者的值范围的平均值。


下面的第二次编辑:

谢谢你,ubuntu。我仔细阅读了您的代码,并在 scipy 文档中查看了它的各个方面。由于您的名字似乎以 scipy 文档的作者身份出现,我希望您能回答以下问题:

1.) leastsq() 调用residuals(),然后返回输入y 向量和sigmoid() 函数返回的y 向量之间的差?如果是这样,它如何解释输入 y 向量和 sigmoid() 函数返回的 y 向量的长度差异?

2.) 看起来我可以为任何数学方程调用 minimumsq(),只要我通过残差函数访问该数学方程,该残差函数又调用数学函数。这是真的?

3.) 另外,我注意到 p_guess 具有与 p 相同数量的元素。这是否意味着 p_guess 的四个元素分别与 x0、y0、c 和 k 返回的值按顺序对应?

4.) 作为参数发送给residuals() 和sigmoid() 函数的p 是否与将由leastsq() 输出的p 相同,并且leastsq() 函数在返回之前在内部使用该p?

5.) p 和 p_guess 是否可以有任意数量的元素,这取决于用作模型的方程的复杂性,只要 p 中的元素数等于 p_guess 中的元素数?

0 投票
1 回答
724 浏览

python - 另一个 S 型回归方程问题

昨天发布了此版本的早期版本,但我似乎无法将此版本添加到该帖子中,因为似乎有人已关闭该帖子进行编辑,所以这是新帖子中的新版本。

我有下面的脚本,它执行以下操作:
1.) 为 S 形数据绘制最佳拟合曲线。
2.) 根据 x 和 y 的新最大和最小坐标重新调整数据大小。
3.) 为调整大小的数据计算并绘制新的最佳拟合曲线。

第 1 步和第 2 步似乎工作正常,但第 3 步却不行。如果您运行该脚本,您将看到它为调整大小的数据绘制了一条完全无效的曲线。

谁能告诉我如何修改下面的代码,以便它为调整大小的数据创建并绘制真正的最佳拟合 sigmoidal 曲线? 当在可能的最大值和最小值范围内重新调整大小时,这需要可重现。

我似乎能够将问题跟踪到 New_p,它在以下代码行中定义:

但我不知道如何更深入地解决这个问题。我认为这个问题可能与全局变量和局部变量之间的差异有关,但也许它是别的东西。

这是我的完整代码的当前草稿: