gpt4 book ai didi

c - GSL 线性代数示例失败

转载 作者:行者123 更新时间:2023-11-30 20:36:57 26 4
gpt4 key购买 nike

我最近安装了 GSL,用于我的计算作业。我从预构建的库安装了它,并将其链接到 CodeBlocks,然后运行 ​​GSL(贝塞尔函数)的测试示例以确保它有效。一切都很顺利。

然后我尝试了这里给出的线性代数示例:https://www.gnu.org/software/gsl/manual/html_node/Linear-Algebra-Examples.html#Linear-Algebra-Examples

我收到一条奇怪的错误消息:

gls: ..\linalg\lu.c:63: ERROR: LU decomposition requires square matrix
Default GSL error handler invoked.

This application has requested the Runtime to terminate in an unusual way.
Please contact the application's support team for more information.

然后程序崩溃并显示 225 错误代码。

放入标记后,我知道我的程序在失败之前会执行分解命令(这可以从错误代码中很好地猜测)。

这已得到 3 人中的 2 人的证实。有人像我一样运行带有代码块的 Windows 机器,并使用与我相同的预构建包。另一个人在 Mac 上运行,使用不同的软件来编写、编译和运行他的 C。第三个人又在 Windows 上,使用相同的预构建安装,但他在代码块中运行良好,所以我不知道是什么东西就在那里。

最佳答案

查看错误消息中的文件和行,我们可以看到:

int
gsl_linalg_LU_decomp (gsl_matrix * A, gsl_permutation * p, int *signum)
{
if (A->size1 != A->size2)
{
GSL_ERROR ("LU decomposition requires square matrix", GSL_ENOTSQR);
}

代码正在检查以确保输入的矩阵是方阵(即行数和列数相同)。此外,如果我们查看 gsl_errno.h 内部,我们可以找到 GSL_ERROR 的定义如下:

#define GSL_ERROR(reason, gsl_errno) \
do { \
gsl_error (reason, __FILE__, __LINE__, gsl_errno) ; \
return gsl_errno ; \
} while (0)

因此,实际上会显示一条错误消息,然后 GSL_ERROR 导致程序退出并向 shell 返回错误代码。

此时,如果我不得不猜测的话,您未能正确复制链接到开发环境中的示例程序,因为 a_data 确实定义了一个方阵。

希望这有帮助

关于c - GSL 线性代数示例失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34228826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com