Как найти собственное значение матрицы с помощью LAPACK в C? [закрыто]

Не могли бы вы загрузить видео о том, как установить библиотеку LAPACK на Ubuntu и как использовать ее на C?

На самом деле я хочу диагонализировать матрицу и узнать собственное значение, поэтому кто-то предлагает мне использовать LAPACK; но, я не знаю, как его использовать.

-2
задан 25 April 2019 в 06:02

1 ответ

  1. Установите его, используя (см. разницу между лапаком и лапаком ):

    sudo apt-get install liblapacke-dev
    
  2. Название функции поиска Lapack: рутины

    Функция, используемая для получения собственного значения LAPACKE_dgeev

  3. Напишите ваш код:

    Измените этот пример из lapacke , чтобы соответствовать вашим потребностям

    /* Calling DGELS using row-major order */
    
    #include <stdio.h>
    #include <lapacke.h>
    
    int main (int argc, const char * argv[])
    {
       double a[5][3] = {1,1,1,2,3,4,3,5,2,4,2,5,5,4,3};
       double b[5][2] = {-10,-3,12,14,14,12,16,16,18,16};
       lapack_int info,m,n,lda,ldb,nrhs;
       int i,j;
    
       m = 5;
       n = 3;
       nrhs = 2;
       lda = 3;
       ldb = 2;
    
       info = LAPACKE_dgels(LAPACK_ROW_MAJOR,'N',m,n,nrhs,*a,lda,*b,ldb);
    
       for(i=0;i<n;i++)
       {
          for(j=0;j<nrhs;j++)
          {
             printf("%lf ",b[i][j]);
          }
          printf("\n");
       }
       return(info);
    }
    
  4. Компилировать:

    cc main.c -llapacke
    
0
ответ дан 25 April 2019 в 06:02

Другие вопросы по тегам:

Похожие вопросы: