gsl复杂矩阵*复杂向量

有人可以帮我弄清楚如何进行这项操作。 我正在查看文档,但它已经很久了,因为我必须做任何线性代数类型的东西,我有点迷失。

我有一个叫做Y的14×14复杂矩阵和一个叫做I的复矢量。我需要将它们相乘并将结果设置为一个名为IL的复矢量。

到目前为止,我已经发现我需要使用:

gsl_blas_zgemv (CBLAS_TRANSPOSE_t TransA, const gsl_complex alpha, const gsl_matrix_complex * A, const gsl_vector_complex * x, const gsl_complex beta, gsl_vector_complex * y) 

但我不确定究竟发生了什么。 不知道到底发生了什么。 像这样的东西? 但是alpha和beta是什么?

 gsl_blas_zgemv(CblasNoTrans, ???, &Y, &I, ???, IL); 

如果没有看到你实际在做什么,看起来你没有包含正确的标题。 以下工作对我没有错误:

 #include  #include  #include  #include  #include  int main(int argc, char **argv) { int size = 14; gsl_matrix_complex *A = NULL; gsl_vector_complex *x = NULL; gsl_vector_complex *y = NULL; A = gsl_matrix_complex_alloc(size, size); x = gsl_vector_complex_alloc(size); y = gsl_vector_complex_alloc(size); gsl_matrix_complex_set_all(A, GSL_COMPLEX_ONE); gsl_vector_complex_set_all(x, GSL_COMPLEX_ONE); gsl_vector_complex_set_all(y, GSL_COMPLEX_ZERO); gsl_blas_zgemv(CblasNoTrans, GSL_COMPLEX_ONE, A, x, GSL_COMPLEX_ZERO, y); return(EXIT_SUCCESS); } 

并编译

 gcc -o test -I/opt/local/include/gsl -L/opt/local/lib -lgsl -lgslcblas test.c 

(是的,我在使用MacPorts的Mac上)。