用于稀疏和复杂矩阵的GNU科学库

时间:2017-04-25 11:49:08

标签: c sparse-matrix complex-numbers gsl

  

我是否正确地说,目前形式的GNU科学库(GSL)不能用于求解涉及稀疏和复杂矩阵的线性系统?

我对C不太满意,但我发现无法使用GSL的gsl_spmatrix函数创建包含复数值的稀疏矩阵。我用

#include <stdlib.h>
#include <stdio.h>
#include <gsl/gsl_spmatrix.h>
#include <gsl/gsl_complex_math.h>

gsl_spmatrix * re_A ;
gsl_spmatrix * im_A ;
void createspmatrix_c (int n)
{ 
  re_A = gsl_spmatrix_alloc (n,n);  
  im_A = gsl_spmatrix_alloc (n,n);        
 }

因此,我创建了稀疏矩阵来分别存储数据的实部和虚部。充其量我可以用其他地方创建的数据填充这些稀疏矩阵。我的目标是能够在GSL中使用带gsl_splinalg_itersolve_gmres的GMRES,但无法看到我如何使用它。看gsl_spmatrix.h,我看到了

typedef struct
{
  size_t size1;  /* number of rows */
  size_t size2;  /* number of columns */

  /* i (size nzmax) contains:
   *
   * Triplet/CCS: row indices
   * CRS: column indices
   */
 size_t *i;

 double *data; /* matrix elements of size nzmax */
 // some more lines...
 } gsl_spmatrix;

矩阵元素必须是double类型。 gsl_spmatrix结构很可能只​​适用于real矩阵。

0 个答案:

没有答案