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

physics - 在科学环境中编程的实践?

背景

去年,我在一所大学的一个物理研究组实习。在这个小组中,我们主要使用LabVIEW来编写程序来控制我们的设置、进行数据采集和分析我们的数据。对于前两个目的,这工作得很好,但对于数据分析来说,这是一个真正的痛苦。最重要的是,每个人大多都是自学成才,所以写的代码通常很乱(难怪每个博士很快决定从头开始重写所有东西)。由于 IT 部门严格的软件和网络规定,版本控制是未知的,并且无法设置。

现在,事情的发展出乎意料地好,但是自然科学领域的人是如何进行软件开发的呢?

问题

一些具体的问题:

  • 您使用什么语言/环境来开发科学软件,尤其是数据分析?有哪些图书馆?(例如,你用什么来绘图?)
  • 是否有针对没有任何重要编程背景的人的培训?
  • 你有版本控制和错误跟踪之类的东西吗?
  • 您将如何尝试为编程创造一个体面的环境,而又不妨碍个别科学家(尤其是物理学家是固执的人!)

到目前为止的答案摘要

到目前为止的答案(或我对它们的解释):(2008-10-11)

  • 似乎使用最广泛的语言/包:
  • 几乎所有受访者都使用版本控制;错误跟踪和其他过程不太常见。
  • 软件木工课程是向科学家教授编程和开发技术的好方法。
  • 如何改善事物?
    • 不要强迫人们遵守严格的协议。
    • 自己搭建环境,把好处展示给别人。帮助他们自己开始使用版本控制、错误跟踪等。
    • 查看其他人的代码会有所帮助,但请注意,并非每个人都可能会欣赏这一点。
0 投票
10 回答
36565 浏览

python - MATLAB 的 fmincon 函数的开源替代方案?

fminconMATLAB 的约束线性优化函数是否有开源替代方案?我正在重写一个 MATLAB 程序以使用 Python / NumPy / SciPy,这是我唯一没有找到与之等效的函数。基于 NumPy 的解决方案将是理想的,但任何语言都可以。

0 投票
12 回答
3630 浏览

c# - 科学计算软件的托管语言

科学计算是算法密集型的,也可能是数据密集型的。它通常需要使用大量内存来运行分析并在继续下一个之前释放它。有时它还使用内存池为每次分析回收内存。托管语言在这里很有趣,因为它可以让开发人员专注于应用程序逻辑。由于它可能需要处理庞大的数据集,因此性能也很重要。但是我们如何使用托管语言来控制内存和性能呢?

0 投票
9 回答
279 浏览

algorithm - 与非开发人员的跨学科算法构建

是的,我知道标题是一个拗口...

我的意思是说你如何与需要理论编码和测试的主题专家沟通?

例如,天气模拟是气象学家、计算机科学家和软件工程师之间的合作。计算机科学家和软件工程师通常说同一种语言,但气象学家却处于完全不同的世界。

您如何提高学科之间的交流和理解水平?不一定只适用于天气,其他科学也是如此。

0 投票
9 回答
404 浏览

datetime - 如果我想使用过去/未来数百万年的日期和时间来工作,我会怎么做?

如果我想使用过去/未来数百万年的日期和时间来工作,我将如何在 C/C++/C# 中做到这一点?

例如,假设我正在研究一种算法来查看彗星是否会撞击地球?是否有商业或开源库可以做到这一点?

大多数 DateTime 值只能使用几年。Unix 将在 2038 年用完!

托尼

0 投票
6 回答
7509 浏览

python - Lua 的科学库?

有没有可以和 Scipy 相媲美的 Lua 科学包?

0 投票
7 回答
1041 浏览

matlab - 寻找对微分精度持轻松态度的 ODE 积分器/求解器

我有一个(一阶)ODE 系统,计算导数相当昂贵。

然而,在给定的误差范围内,导数的计算成本要低得多,因为导数是从收敛序列计算的,并且边界可以放在丢弃项的最大贡献上,或者通过使用存储在 kd-tree 中的预先计算的范围信息/octree 查找表。

不幸的是,我还没有找到任何可以从中受益的通用 ODE 求解器;他们似乎都只是给你坐标并想要一个准确的结果。(请注意,我不是 ODE 方面的专家;我熟悉 Runge-Kutta、Numerical Recipies 书中的材料、LSODE 和 Gnu 科学图书馆的求解器)。

即对于我见过的所有求解器,您提供了一个derivs回调函数,接受 at和一个数组x,并返回一个返回数组dx/dt;但理想情况下,我正在寻找一个能提供回调txs和一系列可接受的错误,并接收dx/dt_mindx/dt_max返回数组的方法,其导数范围保证在所需的精度范围内。(可能有许多同样有用的变体)。

任何考虑到这种事情而设计的求解器的指针,或解决问题的替代方法(我不敢相信我是第一个想要这样的东西的人)将不胜感激。

0 投票
5 回答
10035 浏览

java - 数值求解非线性方程

我需要在我的 Java 程序中解决非线性最小化(N 个未知数的最小残差平方)问题。解决这些问题的常用方法是Levenberg-Marquardt算法。我有一些问题

  • 有人对可用的不同 LM 实现有经验吗?LM 的风格略有不同,我听说该算法的确切实现对其数值稳定性有重大影响。我的功能表现得非常好,所以这可能不是问题,但我当然想选择一个更好的选择。以下是我发现的一些替代方案:

  • 是否有任何常用的启发式方法来进行 LM 所需的初始猜测?

  • 在我的应用程序中,我需要对解决方案设置一些约束,但幸运的是它们很简单:我只要求解决方案(为了成为物理解决方案)是非负的。稍微负的解决方案是数据测量不准确的结果,显然应该为零。我正在考虑使用“常规”LM,但会进行迭代,以便如果某些未知数变为负数,我将其设置为零并从中解决其余的问题。真正的数学家可能会嘲笑我,但你认为这可行吗?

感谢您的任何意见!

更新:这不是火箭科学,要解决的参数数量(N)最多为 5 个,数据集几乎不足以解决问题,所以我相信 Java 足够有效地解决这个问题。而且我相信这个问题已经被聪明的应用数学家解决了无数次,所以我只是在寻找一些现成的解决方案,而不是自己做饭。例如,如果它是纯 Python,Scipy.optimize.minpack.leastsq 可能会很好。

0 投票
7 回答
113601 浏览

c# - 用 C# 绘图

C# 似乎在科学计算方面显示出一些希望,但我发现很少有人能绘制 2D 图,这对理科学生和科学家来说都非常重要。

是否有可靠、免费的方法来使用 C# 创建具有出版质量的 2D 绘图?并且能够保存为多种格式(png、eps、...)。类似于 Python 的 matplotlib 的东西?

0 投票
10 回答
3261 浏览

open-source - 在哪里可以找到有助于科学的编程项目?

我想在业余时间从事一个编程项目,并想知道是否有一个项目可以以某种方式帮助科学界?