问题标签 [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.
c# - 使用 minlmoptimize 拟合 Alglib 数据不会最小化结果。包含完整的 c#
我在 alglib 库中实现 lm 优化器时遇到问题。我不确定为什么在仍然收到退出代码 4 的同时参数几乎没有改变。我无法确定我在使用 alglib 的文档时做错了什么。以下是我正在运行的完整来源:
performance - 使用 Eigen 和使用 Alglib 一样快速地获取行列式日志
我需要一种快速的方法来获取复杂行列式的对数,最好不要先获取行列式然后取对数,因为数字可以变得非常大或非常小(我后来使用这些数字的比率,但仅在它们相似时; 所以他们的差异的指数表现良好)。
到目前为止,我一直在使用 alglib 库;进行 LU 分解,然后沿对角线添加对数,然后添加 i*pi 乘以枢轴点数。假设我有一个alglib::complex_2d_array m
size n
,我做
我在哪里使用函数
然而,在很多方面,Eigen 库看起来都不错。更易于使用和使用,complex<double>
而不是它自己的复杂类。此外,我已经将它用于其他目的,因此这将简化事情。
我尝试以类似的方式使用它,假设 aEigen::MatrixXcd m
大小n
:
但是,当我进行一些测试时,Eigen 的执行速度要慢得多。
所以我想知道是否有另一种方法可以更快地使用 Eigen?也许另一种完全获取行列式日志的方法?
编辑:评论后:这就是我测试代码的方式:
它是用g++ -c -std=c++11 -O2
. 典型的运行给出:
c++ - 如何在 QT C++ 中连接库 alglib
我想从官方站点链接运行示例。当我试图编译
我得到了很多错误,他们看起来
C:\Qt\Tools\QtCreator\bin\VK_DotaFeed\neuralnet.cpp:-1: 错误:未定义对 alglib::mlpcreatetrainercls(int, int, alglib::mlptrainer&) 的引用
C:\Qt\Tools\QtCreator\bin\VK_DotaFeed\neuralnet.cpp:-1: 错误:未定义对 alglib::real_1d_array::~real_1d_array() 的引用
我写
在什么错误?
c++ - 如何在 /with/for alglib 中创建矩阵数组
我正在尝试使用 C++ 中的 Alglib 库制作一个二维矩阵数组来计算特征值,但我找不到如何制作一个矩阵数组(如果可能的话)来计算它们的特征值。我知道如何计算 1 个矩阵的特征值和特征向量,但同时对于其中的几个,我不知道。谁能帮我?
xamarin.android - alglib 的 spline2dbuildbicubic 出错
我想做一个双三次 2D 样条插值。为此,我选择使用 Alglib 库。我有两个向量 xs 和 ys 以及一个矩阵幅度。根据我写的文档(幅度是双[N,27]):
我收到异常“alglib+alglibexception:抛出了‘alglib+alglibexception’类型的异常。”
c++ - 将双精度数组/向量转换为 alglib 复数
我正在创建一个项目来过滤信号。目前,它只需要真正的输入值,但是,使用alglib
它需要接受alglib::complex
类型的库来进行过滤。因此double[]
需要转换输入
在参考手册中,它的状态是双精度复杂类型。有没有办法简单地复制数据 - 因为唯一的选择似乎是按元素分配,或者创建一个非常大的字符串并直接分配给复杂的数组。
到目前为止,我发现分配给数组的两种方法包括:
f# - 在将 C# 转换为 F# 时处理 byref 和 out 参数
有人可以帮助将以下 C# 示例代码从Alglib库转换为 F# 吗?我无法在互联网上找到任何关于如何从 F# 使用它的示例。
这是我对 F# 翻译的(糟糕的)尝试:
java - 通过 JNI 从 Java 数组到/从 ALGLIB 实数数组的高效转换
我需要分别通过 JNI 将一维和二维 Javadouble
元素数组与 ALGLIBreal_1d_array
和real_2d_array
C/C++ 进行转换。目前,流程如下:
使用 JNI
GetDoubleArrayElements()
获取jdouble
C/C++ 中的连续向量。在我的机器上,这总是产生一个副本,即 JNI 将此调用的最后一个参数 , 设置jboolean isCopy
为JNI_TRUE
。分配一个 C/C++ 向量
double
并从 JNI 向量中复制元素jdouble
到它。请注意,一般情况下,无法保证jdouble
类型与类型相同double
,因此在double
逐个复制数组元素时需要强制转换为。(有没有一种干净的方法来确定它jdouble
确实与 相同double
,无论是在编译时还是运行时?)分别实例化 ALGLIB
real_1d_array
或real_2d_array
。据我从 ALGLIB 代码中可以看出,这会创建一个ae_matrix
由数组内部保存的维度 (0, 0)。使用该方法将数组元素从 C/C++ 连续向量复制
double
到 ALGLIB 数组setcontent()
。据我从代码中可以看出,这会ae_matrix
适当地调整内部保存的大小并将元素一个一个地复制到该矩阵中。看起来在二维矩阵的情况下,第一维是指向 的线性向量的指针向量double
,因此元素不连续地存储在一维数组的数组中(类似于 Java)。使用 ALGLIB 使用实数数组执行所需的计算。
要通过 JNI 将结果复制回 JAVA 数组,请反转该过程。ALGLIB 实数数组的元素只能通过方法访问。对于一维数组,有一种
getcontent()
方法可以返回指向 的连续向量的指针double
。对于二维数组,通过operator []
它返回一个指向连续行的指针。和以前一样,使用带有强制转换的一对一元素副本jdouble
。
如您所见,其中涉及大量复制。对于小型阵列,这没什么大不了的,但对于较大的阵列,这在内存和 CPU 方面会变得相当昂贵。
有没有办法在不依赖 ALGLIB 内部结构的知识(可能会发生变化)的情况下加快速度?
c# - 如何在c#中解决非线性约束优化
我想优化 c# 中的非线性函数,12 或 15 个变量(视情况而定)。它受到两个非线性不等式和四个线性不等式的约束。我已经尝试使用 ALGLIB 曲目的 AUL(增广拉氏)方法。不幸的是,算法收敛到错误的最小值。我认为这是因为我想不出可行解决方案的初步猜测。
有谁知道解决这个问题的方法?非常感谢。
PS:本人不会说英文,如有错误请见谅!
c# - 如何在面部识别中对特征人脸进行归一化?
人脸识别的PCA算法中||u||=1是什么?