eigen.c

来自「This library is distributed in the hope 」· C语言 代码 · 共 48 行

C
48
字号
#include <stdio.h>#include <gsl/gsl_math.h>#include <gsl/gsl_eigen.h>intmain (void){  double data[] = { 1.0  , 1/2.0, 1/3.0, 1/4.0,                    1/2.0, 1/3.0, 1/4.0, 1/5.0,                    1/3.0, 1/4.0, 1/5.0, 1/6.0,                    1/4.0, 1/5.0, 1/6.0, 1/7.0 };  gsl_matrix_view m     = gsl_matrix_view_array (data, 4, 4);  gsl_vector *eval = gsl_vector_alloc (4);  gsl_matrix *evec = gsl_matrix_alloc (4, 4);  gsl_eigen_symmv_workspace * w =     gsl_eigen_symmv_alloc (4);    gsl_eigen_symmv (&m.matrix, eval, evec, w);  gsl_eigen_symmv_free (w);  gsl_eigen_symmv_sort (eval, evec,                         GSL_EIGEN_SORT_ABS_ASC);    {    int i;    for (i = 0; i < 4; i++)      {        double eval_i            = gsl_vector_get (eval, i);        gsl_vector_view evec_i            = gsl_matrix_column (evec, i);        printf ("eigenvalue = %g\n", eval_i);        printf ("eigenvector = \n");        gsl_vector_fprintf (stdout,                             &evec_i.vector, "%g");      }  }  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?