问题标签 [nmath]

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

c# - C# 线性代数库

C# 是否有稳定的线性代数(更具体地说,向量、矩阵、多维数组和它们的基本运算)库?

搜索产生了一些开源库,这些库要么几年没有更新,要么处于早期测试阶段——还有 Centerspace NMath。哪些替代方案值得检查?

0 投票
4 回答
1115 浏览

c# - C# Nmath 到 Python SciPy

我需要将一些函数从 C# 移植到 Python,但我无法正确实现下一个代码:

此代码使用 CenterSpace Nmath 库。

任何人都可以帮助我在 python 中编写一个正确的函数,这将类似于这段代码?

对不起我的英语不好。

UPD实际上,我不明白哪些 scipy.stats.lognorm.cdf attrs 类似于 C# 概率,意思是 stddev

如果只是将现有订单复制到 python,如下面的答案,我得到错误的数字。

0 投票
8 回答
6841 浏览

c# - .NET 在数值计算中的速度

根据我的经验,.NET 比本机代码慢 2 到 3 倍。(我为多元优化实施了 L-BFGS)。

我已将 stackoverflow 上的广告追踪到 http://www.centerspace.net/products/

速度真的很惊人,速度接近原生代码。他们怎么能这样做?他们说:

问:NMath 是“纯”.NET 吗?

A. 答案在某种程度上取决于您对“纯 .NET”的定义。NMath 是用 C# 编写的,外加一个小的托管 C++ 层。然而,为了获得更好的基本线性代数运算性能,NMath 确实依赖于本机英特尔数学内核库(包含在 NMath 中)。但是没有 COM 组件,没有 DLL——只有 .NET 程序集。此外,在托管 C++ 层中分配并由本机代码使用的所有内存都是从托管堆中分配的。

有人可以向我解释更多吗?

0 投票
3 回答
1835 浏览

c# - 用于计算金融和计量经济学的 C# 和 NMath

我目前(主要)在我的研究中使用 C++ 进行计算密集型计量经济学。我一直想搬到一个更有生产力的环境。D 听起来很有希望,但可能还不够成熟,我目前无法充分发挥作用。我最近遇到了 C# 和 NMath 库。这似乎非常令人印象深刻。有人用这些来达到这样的目的吗?你有什么经验?如果它可以提高我的整体生产力(任期时钟正在滴答作响),我愿意放弃一些运行时速度。您的想法和建议表示赞赏!

0 投票
1 回答
483 浏览

asp.net - NMath IIS 访问被拒绝

我曾尝试在 IIS 中托管的 ASP.NET 4 Web 应用程序上使用 NMath 库。虽然它在开发机器上完美运行,但在服务器上它抛出了这个异常:

无法加载 DLL 'nmath_native_x86.dll':访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.DllNotFoundException:无法加载 DLL 'nmath_native_x86.dll':访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[DllNotFoundException:无法加载 DLL 'nmath_native_x86.dll':访问被拒绝。(Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))]
CenterSpace.NMath.Kernel.DotNetBlas.ca985db1fb290841a533a3547ace1ae2b(Int32* ca9e3f1c0641beace93cb8eb4a27060d6, Double* cf339080161dff75cfd1b46a10c2eec70, Int32* c757a2154665e6da4d820f8c504ec2601, Double* c00a69c4fa5b6d809b68a96ca184dcf79, Int32* c1565590bf448d2c630952a0391360cc3) +0
CenterSpace.NMath.Kernel.DotNetBlas .copy(Int32 n, DoubleDataBlock x, Int32 xOffset, Int32 incx, DoubleDataBlock y, Int32 yOffset, Int32 incy) +149 CenterSpace.NMath.Core.DoubleVector.set_Item(Slice slice, DoubleVector value) +165

虽然我在这里读到它可能与AppPool的权限或类似的东西有关,但我似乎无法指出问题所在。会是什么呢?!

0 投票
1 回答
2055 浏览

c# - 第三方 dll 中奇怪的 NullReferenceException:C#

我有一个奇怪的错误,它突然开始,让我发疯。在我的 C# 应用程序中,我正在做一些繁重的数学计算,为此,我使用了 CenterSpace 的 NMath 库。最近,当我从 Visual Studio 2015 内部启动我的应用程序以对其进行调试时,每当我调用 NMath 库方法(以及我们编写的另一个库)时,应用程序开始崩溃,因为 NMath.dll 中的 NullReferenceExceptions . 为了隔离问题,我只运行以下非常基本的矩阵乘法代码:

当我因为 NullReferenceException 而调用“NMathFunctions.Product”方法时,代码在第三行崩溃,异常详细信息如下: 在此处输入图像描述

它似乎只是在“NMathKernel”对象的构造函数中崩溃,因为没有正确设置对象引用。

最奇怪的是,当我使用 Windows 资源管理器而不是在 Visual Studio 中直接从其项目文件夹中运行完全相同的程序时,程序运行完美:第四行按预期打印“360.000000001”和“Console.ReadLine() “ 到达了!

我对这个 NullReferenceException 错误的原因一无所知。这似乎不是与第三方 dll 相关的问题,因为该程序仅在从 Visual Studio 中启动时才会崩溃。这个错误完全阻止了我使用 Visual Studio 调试我的程序,这是一件痛苦的事情,让我只能从 Visual Studio 外部使用“Console.WriteLine”调用来调试它。这个问题的原因是什么?我的构建设置可能有问题吗?(顺便说一句,我已经检查过并没有发现任何异常)任何线索或提示都非常受欢迎。

0 投票
1 回答
160 浏览

matlab - NMath/SolverFoundation 声称非凸模型,尽管可以通过 Matlab 的“quadprog”求解

我有一个由 HessianH和向量定义的二次规划问题c。这个问题在参考文献中使用 Matlab 的quadprog函数解决

lbub是具有与 相同长度的下界和上界的向量c,并且init无论如何都被忽略,因为opts将算法定义为interior-point-convex

我从每个参数都有下限和上限(0 和 Inf)的问题来理解这一点,但它们之间没有进一步的线性约束。

我现在想在.NET 中解决这个问题。我第一次尝试在 MS Solver Foundation 中实现它,但他们对所有东西的具体表示法让我头疼,所以经过更多搜索后,我发现它NMath有一个实现,所以我试了一下。

我首先定义了问题

n是 中的行数H,也就是要求解的变量数。对于每个变量,我都添加了界限。 Hc包含与 Matlab 中相同的值。

我现在定义了求解器和求解器选项(基于 NMath 教程中的一些值)

并使用调用求解器

这会引发异常

有内在的Division by Zero例外。

如果这是唯一需要考虑的事情,我会假设我在Hor中有问题c,但 Matlab 可以毫无问题地解决这个精确模型的事实让我有点不知所措。

两种型号的区别在哪里?在 Matlab 中,参数 A、b、Aeq 和 beq 设置为 [] 的事实意味着不等式和等式约束都不存在,因此不为 NMath 模型设置任何约束是有意义的。

有人指出我哪里出错了吗?

示例值(NMath 表示法)

Matlab 给出解值:

0 投票
1 回答
1425 浏览

c# - 快速图像伽玛校正

我正在对尺寸为 5000x3000x3 的图像进行伽马校正。

公式是

值 ^ (1 / 伽马)

对于 0.0 到 1.0 的 RGB 值

我的输入 gamma 值范围从 0.0 到 10.0,而 gamma = 0.0 始终输出 0.0。

问题是所涉及的pow计算太慢了。

在 float[, ,] 上执行此操作大约需要 1300 毫秒:

在 FloatMatrix 上使用NMathFunctions.Pow大约需要 1100 毫秒:

知道如何加快速度吗?