gpt4 book ai didi

c - gsl 复数矩阵 * 复数 vector

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:45 25 4
gpt4 key购买 nike

谁能帮我弄清楚如何进行此操作。我正在查看文档,但自从我不得不做任何线性代数类型的事情以来已经很久了,我有点迷路了。

我有一个名为 Y 的 14x14 复数矩阵和一个名为 I 的复数 vector 。我需要将它们相乘并将结果设置为一个名为 IL 的复数 vector 。

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

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); 

最佳答案

没有看到您实际在做什么,看起来您没有包含正确的 header 。因为以下对我来说没有错误:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include <gsl/gsl_blas.h>
#include <gsl/gsl_complex_math.h>

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 上)。

关于c - gsl 复数矩阵 * 复数 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16572823/

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