Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 算法示例因类型冲突而失败 当我尝试使用马里兰大学天文学系提供的TQLI算法时,由于冲突类型,我得到了一个错误。我把这个例子放在repl.it上。为什么执行失败?我能做些什么来解决这个问题?_C_Algorithm - Fatal编程技术网

C 算法示例因类型冲突而失败 当我尝试使用马里兰大学天文学系提供的TQLI算法时,由于冲突类型,我得到了一个错误。我把这个例子放在repl.it上。为什么执行失败?我能做些什么来解决这个问题?

C 算法示例因类型冲突而失败 当我尝试使用马里兰大学天文学系提供的TQLI算法时,由于冲突类型,我得到了一个错误。我把这个例子放在repl.it上。为什么执行失败?我能做些什么来解决这个问题?,c,algorithm,C,Algorithm,您在编译过程中遇到了问题,因为数值公式是由许多较小的文件生成的。在这里,您发现了冲突的fmin问题(您可以重命名该函数fmin2(或其他)以避免nr.h中的冲突)。然后需要以下文件来编译示例: nr.h /* header files */ nrutil.h 及 那么,这仅仅是一个编译源代码的问题。您可以使用Makefile或仅使用单个编译器字符串,例如(对于gcc) 然后它应该在没有错误或警告的情况下编译,并且您应该能够运行它,例如 $ ./yourexename Eigenv

您在编译过程中遇到了问题,因为数值公式是由许多较小的文件生成的。在这里,您发现了冲突的
fmin
问题(您可以重命名该函数
fmin2
(或其他)以避免
nr.h
中的冲突)。然后需要以下文件来编译示例:

nr.h       /* header files */
nrutil.h

那么,这仅仅是一个编译源代码的问题。您可以使用
Makefile
或仅使用单个编译器字符串,例如(对于
gcc

然后它应该在没有错误或警告的情况下编译,并且您应该能够运行它,例如

$ ./yourexename

Eigenvectors for a real symmetric matrix
eigenvalue   1  =   0.591722
     vector     mtrx*vect.     ratio
   -0.177382    -0.104961     0.591722
    0.154260     0.091279     0.591721
    0.170442     0.100854     0.591720
   -0.453325    -0.268244     0.591724
    0.455130     0.269310     0.591721
   -0.174737    -0.103397     0.591727
   -0.214000    -0.126629     0.591724
    0.470052     0.278139     0.591720
   -0.434657    -0.257197     0.591724
    0.129761     0.076782     0.591718
Press ENTER to continue...
...

仔细检查一下,如果您还有其他问题,请告诉我。

为什么要从
1
索引数组?@WeatherVane问得好!我问了同样的问题。显然这是故意的。NR总是对索引做一些奇怪的事情,这是因为索引,例如
c[i-1][j-1]@AlexReynolds很有趣。我做了改变,现在我得到了很多关于多重定义的错误,比如nError。这是从哪里来的?好的,我解决了这个问题。现在我得到一个错误,我有未定义的引用,例如向量和矩阵。谢谢你的回答!那真的很有见地。当然,很乐意帮忙。这些多段编译一开始可能会让人沮丧,但一旦你发现你需要提供你正在使用的函数之一的每个文件,那么在那之后就不会太糟糕了。然后,您只需查找文件中定义的缺少的函数,并将其添加到要编译的文件列表中。
$ gcc -Wall -Wextra -pedantic -Wshadow -finline-functions -std=gnu11 -Ofast \
-Wno-unused-variable -Wno-unused-parameter nrutil.c tqli.c tred2.c pythag.c \ 
-o yourexename yourfile.c
$ ./yourexename

Eigenvectors for a real symmetric matrix
eigenvalue   1  =   0.591722
     vector     mtrx*vect.     ratio
   -0.177382    -0.104961     0.591722
    0.154260     0.091279     0.591721
    0.170442     0.100854     0.591720
   -0.453325    -0.268244     0.591724
    0.455130     0.269310     0.591721
   -0.174737    -0.103397     0.591727
   -0.214000    -0.126629     0.591724
    0.470052     0.278139     0.591720
   -0.434657    -0.257197     0.591724
    0.129761     0.076782     0.591718
Press ENTER to continue...
...