问题标签 [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 投票
3 回答
1987 浏览

git - DVCS 如何帮助科学编程?

我正在做一些初步工作,以调查 DVCS(如 Git、Hg、Bazar 之类)如何在科学编程过程中提供帮助,尤其是对研究生而言。我认为我在这方面处于非常有利的位置,因为我已经编程了好几年,目前正在开始一个自然科学的硕士课程。目标是在一两个月内对此进行简短的介绍。

在我看来,除了源代码控制的明显优势外,DVCS 目前还为研究生的日常生活提供了以下改进:

  1. 分枝:

    这是最大的。从观察 DVCS 实践可以清楚地看出,廉价分支主要鼓励新功能的实验。科学编程就是实验。可以创建不同的分支来调整参数或算法。这一点尤其重要,因为大多数科学代码在他们的一生中都没有看到过一次重构(大多数研究生甚至不知道它是什么),所以去不同分支的能力会给典型的疯狂带来一些方法。快速提交也可能意味着使用提交评论作为实验室笔记本的替代品。计算结果可以标记为特定的提交哈希码,以进行可重复的研究。

  2. 推送到服务器:

    由于现在大多数科学代码都在某种集群上运行,因此 DVCS 可以用作某种更高级的 Rsync,许多人已经在使用它来将“生产”代码推送到 HPC 集群。这与分支相结合,无需离开即可轻松运行多个版本的代码

  3. 论文合作:

    需要我多说?拥有多个作者的论文的运行方式与小型开源项目完全一样。当作者都用 LaTex 写作时,论文上的协作应该是自然而然的,如果写作是用 Word 之类的东西完成的,则会带来额外的复杂性。这是提交评论可能发挥更大作用的地方。

我的问题是,您认为 DVCS 可以为科学程序员做出什么贡献?我在社区中看到很多关于转向源代码控制的讨论,但大多数人仍在研究 Subversion。从我粗略的笔记来看,听起来 DVCS 应该是新研究生的完美工作流程范例。我的想法有问题吗?或者科学编码只是落后太多,甚至没有听说过DVCS 工具?


有关的:

0 投票
7 回答
5575 浏览

python - Python 中的科学绘图

我有一个包含我需要可视化的(事件时间、纬度、经度)的大型元组数据集。我希望生成一个类似于“电影”的 xy 图,但想知道是否有人有更好的主意,或者是否有一种简单的方法可以在 Python 中做到这一点?

提前感谢您的帮助,--Leo

0 投票
7 回答
5073 浏览

math - 使用函数式语言的科学数学?

有没有用函数式编程语言制作的严肃的科学数学库?从函数式语言的本质来看,人们会认为它们特别适合数学,但众所周知的算法似乎是程序性的。

例如,经典的数字食谱系列几乎是以程序方式编写的。LAPACK在许多领域几乎是事实上的标准,但它是在 Fortran 中,因此是程序性的,或者可能是 OO,但绝对不是功能性的。

有没有人能够将这些众所周知的程序算法转换为函数式风格?

更新:似乎函数式语言被用于符号计算,例如在 Mathematica 中。但是,是否存在与数值计算和函数算法本质上不兼容的东西?或者仅仅是因为命令式算法恰好是首先发明的,所以没有人费心想出功能等价物?

0 投票
2 回答
2249 浏览

qt - 使用 OpenGL 和 Qt 进行科学可视化

我正在尝试使用 Qt 为一些科学数据编写一个 OpenGL 可视化程序。我希望能够原封不动地使用我现有的程序,并且能够简单地调用 glwidget 并告诉它在每个时间步结束时更新数据。但是,为了运行 Qt 程序,您似乎必须使用QApplication然后qt.run()阻塞 cpu。

这是伪代码

我意识到我可以将所有现有代码放入 a 中QThread,并让它在连接到更新时发送信号。这样会更容易。有人知道如何解决这个问题吗?

0 投票
3 回答
12319 浏览

python - SciPy 中的插值:找到产生 Y 的 X

有没有更好的方法来找到哪个X给了我我在 SciPy 中寻找的Y ?我刚开始使用 SciPy,对每个功能都不太熟悉。

0 投票
6 回答
4235 浏览

objective-c - 真正的大数字和Objective-C

我一直在玩弄一些Project Euler问题,自然会遇到很多需要处理大于long long类型数字的问题。我致力于使用 Cocoa 和 Objective-C(我需要在工作中保持敏锐)但找不到一种优雅的方式(阅读:库)来处理这些非常大的数字。

我很想使用 GMP,但听起来像在 Xcode 中使用它是一个完整的伤害世界。

有谁知道任何其他选择?

0 投票
4 回答
3239 浏览

python - 在 Python 中使用 Eval 创建类变量

我编写了一个类,让我可以传入变量类型、变量名、提示和默认值的列表。该类创建了一个 wxPython 面板,该面板显示在一个框架中,允许用户在按下计算按钮之前设置输入值并将结果作为绘图返回。我使用 exec 语句将所有变量添加到类中。这将所有变量放在一个类中,我可以按名称引用它们。

在类中,我使用以下语句创建和设置变量:

当我需要使用变量时,我可以通过名称来引用它们:

然后我读到 SO 很少需要在 Python 中使用 exec 。这种方法有问题吗?有没有更好的方法来创建一个包含应该组合在一起的变量的类,您希望能够编辑,并且还有代码和 wxPython 调用来显示、编辑(以及将所有变量保存到文件中)或再次阅读它们)?

生硬

0 投票
3 回答
571 浏览

unit-testing - 作为一名科学程序员/学生/研究人员,我如何将 TDD 整合到我的工作流程中?

我很忙!我的大部分时间都花在使用分析技术或课程作业上,当我切换到编程模式时,我需要快速生成代码。因为,只要我能快速获得结果,我所在实验室的主要研究者并不关心我使用的是 TDD 还是算盘。

我读过“TDD by example”,发现它很有帮助。我随后买了《重构:改进现有代码的设计》、《设计模式:可重用的面向对象软件的元素》和《有效地使用遗留代码》,但这些书很大,现在跳入它们的前景令人生畏!

“TDD by example”的对话风格和流程使其很容易融入我的日程安排。但是,我不知道如何在这些其他书中工作以及按什么顺序工作;似乎每个都是相关的(我处于一种餐饮哲学家的僵局 - 我正在等待我的编程工具包的各个方面得到改进,但它们的相互依赖性让我要么陷入僵局,要么浪费时间进行上下文切换 - 抱歉类比:))。例如,我有需要重构和覆盖测试的遗留代码,我需要使用 TDD 推进(但我从不这样做),我需要使用设计模式进行编码,所以我停止重新发明轮子。

有没有一种好方法可以将这些所需的读取分解为字节大小的块,以及在将他们的技术应用于当前项目时这样做的方法(就个人而言,如果我不能立即应用它,我会丢失信息)?我是否专注于一本书并完成它?我是否首先需要 TDD,然后是重构和设计模式技能(但是“鸡和蛋”所有这些单元测试书籍都在谈论设计模式和重构,就好像我前后了解它们一样)?

我已经阅读了针对初学者的最佳教程,但它没有解释我如何将其整合到繁忙的日程中。而且,我在科学环境中阅读编程,但它再次错过了当你已经落后于时间时如何添加这些技术的标记。

0 投票
9 回答
367 浏览

dynamic-languages - 脚本编写者是否必须考虑舍入误差?

我正在学习 C,并且出现了保护数字和舍入错误的想法。脚本语言的从业者(我在这里想到的是 Python 和 Perl)需要担心这些东西吗?如果他们在做科学编程怎么办?

0 投票
4 回答
249 浏览

scientific-computing - 创建特定领域科学图书馆的设计原则

在为特定学科的科学家设计软件库时,有哪些好的原则?我的意思是化学、物理学、材料科学、显微镜、生物测定、天文学等领域。我不包括涵盖一系列学科或专门数学或用于数据分析。(目前我们中的一些人正在参与建立化学领域的开源库,了解其他领域的经验会很有价值)。

我很欣赏这是一项雄心勃勃的任务,获得资金并不容易,但它对于可重复和可验证的科学变得越来越重要。