Не могли бы вы загрузить видео о том, как установить библиотеку LAPACK на Ubuntu и как использовать ее на C?
На самом деле я хочу диагонализировать матрицу и узнать собственное значение, поэтому кто-то предлагает мне использовать LAPACK; но, я не знаю, как его использовать.
Установите его, используя (см. разницу между лапаком и лапаком ):
sudo apt-get install liblapacke-dev
Название функции поиска Lapack: рутины
Функция, используемая для получения собственного значения LAPACKE_dgeev
Напишите ваш код:
Измените этот пример из 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);
}
Компилировать:
cc main.c -llapacke