我正在尝试使用GNU科学库编写一个简单的程序来对复杂(厄米特)哈密顿矩阵进行对角化。我已经搜索了文档和互联网,但我找不到将复杂值分配给gsl_matrix的过程。
它会像这样简单:
gsl_complex Hij = gsl_complex_rect(double x, double y)
gsl_matrix_set(H, i, j, Hij)
这假设gsl_matrix_set检测到复数(与实数相对)并自动处理内存分配。
或者,它会是这样的:
gsl_matrix_set(H, i, j, x)
gsl_matrix_set(H, i, j+1, y)
假设复数在内存中存储为一对数字,就像其他地方的惯例一样。但是,那么特征系统例程如何能够区分呢?我真的迷失在这个简单的事情上。
如何为gsl_matrix分配复数?