このページは日本語で作成しています。機械翻訳は不正確な場合があります。

LAPACK でのプログラミング、実行例

ここでは書籍「Linux 数値計算ツール(大石 進一 著、コロナ社 ISBN 4-339-02378-7)」P.147 に掲載されている連立一次方程式を解くプログラムを実行してみました。

プログラムリスト

上記書籍にあるプログラムリストです。ここでは lapacktest.c という名前にしました。

#include <stdio.h>
#define N 3
double A[N*N];
double x[N];
void main(void)
{
        static int i;
        static long int n=N,inc=1,info,piv[N];
        A[0]=1. ; A[1]=3.  ; A[2]=1.  ;
        A[3]=1. ; A[4]=1.  ; A[5]=-2. ;
        A[6]=1. ; A[7]=-3. ; A[8]=-5. ;
        x[0]=1. ; x[1]=5.  ; x[2]=10. ;

        printf("N = %d\n",N);
        dgesv_(&n,&inc,A,&n,piv,x,&n,&info);
        for(i=0; i<N; ++i) printf("%lf\n", x[i]);
}

コンパイル方法(例)

$ gcc -llapack -lblas lapacktest.c

実行例

以下のように実行します。

$ ./a.out

以下のような結果が出力されます。

N = 3
6.000000
-7.000000
2.000000

(csgs2 システムの使い方に戻る)