问题标签 [alglib]

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

c# - 在 C# 中使用非线性平方拟合

我正在尝试找到具有以下形式的拟合函数:

哪里P是一个已知常数。我正在将此函数拟合到测量的双精度列表(20-100 个元素之间),并且所有这些值都有一个相应的 x 值。我对 C# 比较陌生,对数学也不是很了解,所以我发现阅读可用的文档有点困难。

我曾尝试使用 AlgLib,但不知道从哪里开始或使用什么功能。

编辑:所以要准确地说我要找什么:我想找到一个 C# 方法,我可以在其中传递函数形式以及一些坐标(x 和 y 值)并让该方法返回两个未知变量(上面的 s 和 m)。

0 投票
1 回答
340 浏览

c++ - 使用 `Eigen::Matrix` 创建 `alglib::integer_1d_array`

我不断收到错误error: no matching function for call to 'alglib::integer_1d_array::setcontent(int, Eigen::PlainObjectBase<Eigen::Matrix<int, 3, 1> >::Scalar*)'

出于某种原因alglib::integer_1d_array,不喜欢以与alglib::real_1d_array.

例如,在带有模板参数size_t num和参数的函数模板中Eigen::Matrix<double,num,num> A,这可以工作:

但是,一旦我更改为整数数组,它就不起作用:

我也可以在最后一行替换num+1static_cast<int>(num+1),它仍然不起作用。我究竟做错了什么?

0 投票
1 回答
383 浏览

c++ - 架构 x86_64 的未定义符号:“alglib::spline2dcalc(alglib::spline2dinterpolant const&, double, double, alglib::xparams)”

我想使用 alglib 做双三次样条插值,但是当我使用

运行代码,它就像 架构 x86_64 的未定义符号一样:

我怎样才能让它工作?

0 投票
0 回答
316 浏览

c++ - 为什么 std::sets of alglib::real_1d_array 在这种情况下不起作用?

我正在使用 Alglib 分叉一个 C++ 程序,以便我可以反转矩阵并轻松进行矩阵乘法。

现在我面临这个错误:

二进制表达式的无效操作数('const alglib::real_1d_array' 和 'const alglib::real_1d_array')

那么是什么导致了这个错误呢?

这里 vecset 的意思是

并且admittedCVectors 是一个类的成员。

我该如何解决?使用不存在此问题的 std::set 变体或在 alglib::real_1d_array 中重载 < 哪个更难?

0 投票
2 回答
125 浏览

c++ - 在 alglib::real_1d_array 中取元素总和的奇怪错误

好的,这次我有一个并不总是出现的非常奇怪的错误。这是实际包含问题的函数。它所做的只是对向量的元素求和。它在大多数情况下都有效,但在少数情况下,它往往会变得非常有问题。

这里vect是使用定义的typedef alglib::real_1d_array vect;。好的,那我会得到什么?呵呵..

Sum of vector [1.000,1.000,0.000,1.000,1.000,1.000] 1 0 1 0 0 0 1 0 1 0 1 1

什么?!!!!!

0 投票
0 回答
125 浏览

differential-equations - 我可以使用 mql4 AlgLib 库来求解具有可变系数的二阶线性齐次微分方程吗

我有这个公式:

$$\frac{d^2Q(t)}{dt^2} + \frac{\omega(t)}{2\pi} \frac{dQ(t)}{dt} + \omega^{2}(t)Q(t) = 0, $$

其中$ \omega(t)= \frac{2\pi}{v(t)} \frac{dv}{dt} $$v>0$是从数据馈送中给出的已知参数。

我已经使用 Mathematica 构建了一些可视化。

现在我需要进一步处理 mt4 技术指标图表,所以我可以通过 Runge-Kutta-Cash-Karp 方法使用 AlgLib 中的 ODEsolver 和 mql4,因为上述等式具有时间相关系数。

0 投票
1 回答
296 浏览

c++ - 来自 ALGLIB 的 C++ 样条示例未在 MacOS 上编译

我正在尝试使用 C++ 版本 14 和 cmake 版本 3.14 从 MACOS 上的 ALGLIB 网页编译和运行 spline1d_d 示例。(代码在这里:http ://www.alglib.net/translator/man/manual.cpp.html#example_spline1d_d_cubic )

编译器抛出以下错误消息。可以请人帮忙吗?

正在按预期找到来自 ALGLIB 的包含:包括 include

编译器错误消息:

0 投票
1 回答
257 浏览

c++ - 如何为 VS2017 配置 AlgLib?

我正在编译一个 alglib 示例程序(有一些更改):

我相信 linAlg 已正确链接(以及它的所有依赖项,尤其是 ap.h 和 ap.cpp)(Preferences->C++->AllOptions->Additional Include Directories -> aglib's source directory。更改链接提供了不同的一组链接器错误。AlgLib 是仅标头库,因此我认为不需要编译任何库并将其添加到链接器中。

编译此代码时出现错误:

我直觉问题出在此处:http ://www.alglib.net/translator/man/manual.cpp.html#gs_configuring

但我无法判断它的正面或反面。下一步是什么?

0 投票
1 回答
264 浏览

c# - Math.Net 和 alglib 默认返回不同的 FFT 输出

我正在用 C# 开发一个具有频谱图绘制功能的应用程序。

在我的第一次尝试中,我使用了 MathNet.Numerics,现在我继续使用 alglib 进行开发。当我从一个更改为另一个时,我注意到它们的输出不同。Mathnet 默认使用某种校正,alglib 似乎忽略了这种校正。我不是很喜欢信号处理,也是编程的新手,我不知道到底有什么区别。

在我的情况下,MathNet 默认输出(原始幅度)值范围从 ~0.1 到 ~274。使用 alglib,我得到的值范围从 ~0.2 到 ~6220。

我发现 MathNet Fourier.Forward 使用默认缩放选项。这里说,FourierOptions.Default 是“通用;对称缩放和共同指数(在 Maple 中使用)。” https://numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/FourierOptions.htm 如果我使用 FourierOptions.NoScaling,则输出与 alglib 产生的相同。

在 MathNet 中,我使用了 Fourier.Forward 函数: https : //numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/Fourier.htm#Forward 对于 alglib,我使用了 fftr1d 函数:https://www.alglib .net/translator/man/manual.csharp.html#sub_fftr1d

  • 他们的计算有什么区别?
  • 我可以使用什么函数将 alglib 输出幅度转换为 MathNet 的输出幅度,反之亦然?
  • 在什么情况下我应该使用这些不同的“比例”?它们究竟是为了什么?

请分享你的知识。提前致谢!

0 投票
0 回答
72 浏览

.net - Alglib minnlc 不受约束地返回答案

我试图在二次不等式约束和线性等式约束以及下限和上限下实现简单的最小化。我的问题如下:

最小值:x1*(-0.00498) + x2*0.05656

uc:

  • x1^2 * 0.00001048 + 2*x1*x2*0.001431 + x2^2*0.6737996 <= 0.0084050
  • x1 + x2 = 1.0
  • 0 < x1 < 0.9
  • 0 < x2 < 0.9

一旦使用 Alglib 在 F# 中实现,似乎就没有遵守约束。和 x1+x2 都不等于 1.0,方差也不低于 0.0084。尽管考虑了下限和上限,但我使用 x2 的目标函数比使用 x0 得到了改进(低于)。我相信我对约束的表述有问题,但我看不出是哪一个。

l

我得到 Var = 0.53 远高于 0.0084050 目标。事实上,在第一次迭代之后,我的等式和我的不等式约束都被打破了,算法永远不会回到这个范围内。

更令人担忧的是,我收到一个答案 TerminationType = 1 -> OK