问题标签 [scientific-software]

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 回答
374 浏览

unit-testing - 单元测试...应该在这里使用吗?

重复https ://stackoverflow.com/questions/135651/learning-unit-testing


我正在尝试为我的研究小组开发一些软件来分析和绘制实验数据。我想让它完全没有错误。这会是单元测试的情况吗?如果是这样,您能否为我指出一些很好的单元测试参考资料?

0 投票
3 回答
6228 浏览

math - 科学计算器 - 使用以二为底的对数函数

在模型 casio fx-82ms 中,我必须使用对数函数进行一些科学计算,但计算器计算所有问题的底数为十(10),但我需要以二为底。任何人都可以帮助我吗?

0 投票
1 回答
1582 浏览

code-organization - 组织科学数据和代码 - 实验、模型、模拟、实施

我正在从事一个机器人研究项目,并且想知道:在组织科学数据和代码时,是否有人对最佳实践有建议?有谁知道现有的科学图书馆有我可以检查的来源?

以下是我们“套件”的元素:

  • 实验 - 两种类型:
    1. 从现有的“自然”系统中收集数据。
    2. 来自机器人系统运行行为的数据。
  • 楷模
    • 动态系统描述 - 动力学、运动学等
    • 所述系统的参数,其中一些来自类型 1 实验
  • 模拟——试图模拟自然行为,模拟机器人上的行为
  • 实现 - 用于控制机器人的代码。当然,这是一项艰巨的任务,并且拥有自己的大型基础设施。

我们的“套房”的一些设计方面:

  • 如果仿真环境允许“快速原型设计”(脚本/交互式提示,用于简单的黑客攻击、快速数据检查等——绝对是难以整合的东西)——目前通过脚本语言(Python、MATLAB)满足
  • 多种编程语言
  • 分布式、协作设置 - 将使用 Git
  • 单元测试尚未合并,但希望稍后会合并
  • 跨平台(不幸的是)——我习惯于 Linux,但我的团队成员使用 Windows,我们的一些工具与该平台结合

看了这篇文章,书看起来很有趣,我订购了“编写科学软件”,但我觉得它将主要关注模拟代码的实现,而不是整体组织。

0 投票
2 回答
118 浏览

javascript - javascript - 我的客户端选项是什么?

我喜欢 javascript,不要误会我的意思,但我的问题是我目前想开发用于科学计算的开源 Web 应用程序,而 javascript 的算术并不是最精确的。我编写了服务器端脚本,但我更喜欢客户端,原因很明显,用户体验通常更流畅,服务器上的负载更少。

就解决此问题而言,我有哪些选择?我在某处读过,您可以在 javascript 之上实现语言——这值得吗?这看起来像什么?例如,如果我在 javascript 之上实现 python,这是否意味着客户端需要 python 解释器才能使用该站点?

我只是无法处理

0 投票
0 回答
319 浏览

matlab - 调试无错误挂在 MATLAB 的 ode 求解器中

我有一个ODE 系统。ODE 需要几秒钟才能在特定参数范围内运行。然而,对于另一个参数范围,MATLAB 突然需要无限的时间来运行(好吧,好吧,只测试了半天)。

这是一个具有双曲函数的复数、多重耦合 ODE;分析解决它是不可能的,用数值解决它将是硕士论文,所以我正在寻找一个计算解决方案。我需要丢弃这些参数并移至下一组(随机)参数。

如何在 MATLAB 中调试捕获此语义错误?我只是不确定 odesolver 不喜欢什么。到目前为止,我已经使用分析器将其缩小到以下几行odesolver

(这本质上是核心求解器方法)。显然错误的根源是我选择的参数,但profiler没有显示我的函数占用的任何明显时间(我将 ODE 的脚本函数作为匿名函数传递给ode45)。

0 投票
1 回答
69 浏览

jquery-ui - 如何创建以一种(科学)格式接受数据但以另一种格式存储的文本输入

我需要让用户在 HTML 输入(mM、uM、nM 和 pM)中输入摩尔浓度单位,而不是在小数点右侧输入一长串数字。“16pM”比 0.000000000016 更容易输入。

数据库会将十进制版本发送给客户端,客户端必须将十进制版本发送回数据库。但是用户需要看到人性化的格式,并且能够将人性化的格式输入到文本框中。

我可以进行转换,只是不确定进行转换的正确位置。我必须扩展 INPUT 的原型吗?如果有人可以让我快速了解让 HTML INPUT 进行这种双向输入/输出转换所涉及的内容,我将不胜感激。

我不需要代码,只需要正确的术语或几个有用的链接,这样我就可以找到正确的资源。谢谢

0 投票
2 回答
904 浏览

c - Sums on GNU Scientific Library (GSL)

I have used the 'mean' function on GSL which proved to be more accurate than my naive implementation. I haven't found a 'sum' function though, I'm using 'mean'*N instead, but I think it would be cleaner if I use a proper summing function.

I'm summing a huge quantity of numbers, I and was wondering this to avoid if possible implementing a stable summing algorithm.

Thanks in advance.

0 投票
0 回答
3954 浏览

python - Spyder:运行 Python 文件后将变量保存在变量资源管理器中

我对 Python 比较陌生,一开始我选择了 Spyder 作为 IDE。目前我正在研究一个优化问题,并希望保留结果以进行进一步的后处理。

如果我使用 F5(或“运行>运行”)运行代码,则文件正在执行,其输出在控制台上,但变量资源管理器中没有任何内容。另一方面,如果我选择整个代码并按 F9(或“运行>运行选择”),所有变量都会出现在变量资源管理器中,这实际上是我想要的。

原因可能是按 F5 关闭当前控制台,而按 F9 使其保持打开状态并显示 globals() 内容,如 ( https://pythonhosted.org/spyder/variableexplorer.html ) 中所述。我的 Spyder 版本是 2.25,操作系统 Ubuntu Linux 14.04 x64。

有什么办法可以改变这种行为,这样我就不必在每次想在资源管理器中查看变量时都标记所有代码并执行它?我可能是一个简单的问题,但会让我的工作更轻松;-)

提前致谢!

绳索

0 投票
3 回答
458 浏览

windows - 如何通过脚本在windows下编辑二进制文件

我通常是读者,但这次我找不到答案。我有一些由科学设备生成的技术文件。有时,记录的文件会损坏,我们必须手动进行一些十六进制修改。我想知道如何实现自动化。我正在考虑 Perl,因为我对此有所了解,但即使我设法读取了感兴趣的偏移量,我也不知道如何编写新值。

我有两件事要做:

  1. 在偏移量 4 处写入文件大小减 8
  2. 计算“TRCKfmt”模式的数量,即 5452434B666D74(十六进制),然后在偏移量 5C(92)处记下十六进制值。

我尝试在文件句柄上使用sysreadsyswrite,但我无法完成不同的步骤。

也许Perl不是一个好的选择,我不知道如何解决。

这是我的实际脚本:

感谢您的任何帮助。

0 投票
0 回答
104 浏览

haskell - Data.Scientific 上的除法以无限小数展开发散

所以,我最近开始使用科学包,因为它提供了Data.Scientific我在其他任何地方都没有见过的任意精度数字。我遇到的一个问题是在/使用 QuickCheck 对我的代码进行属性测试时,除法的分歧(文档中确实警告过这一点)。我正在使用Arbitrary来自quickcheck-instances 的实例

我在科学计算方面没有非常正式的(阅读:无)经验,所以我想知道是否有处理这种情况的最佳实践。Nothing是否有一些体面的算法来执行此操作,可能会损失少量精度,或者在结果定义不明确时提前检测到并返回或等效的方法。

或者,(不是很理想)我可以从我的 QuickCheck 测试中排除具有无限小数扩展的数字,这样它们就不会永远挂起吗?这显然有缺点,它只处理症状,如果代码的用户传入“坏”数据,仍然可能导致分歧。

任何建议将不胜感激 :)