計算機設定/CLAPACK/Xcode - PukiWiki

計算機設定/CLAPACK

Mac OS X (Xcode) で, CLAPACKを使う

2010/12/12

概要

  • Accelarate framework を使う
    • 「グループとファイル」でプロジェクトを右クリック
    • 追加で既存のフレームワークを追加を選ぶ
    • Accelarate Framwork を選択
  • インクルード・ファイルは Accelarate.h
    #include <Accelerate/Accelerate.h>

実対称行列Aの固有値と固有ベクトルを求める例

  • ソースファイル
    #include <stdio.h>
    #include <Accelerate/Accelerate.h>
    int main(void)
    {
    	const int N = 4;
    	int i, j, info, n1=N, n4=4*N;
    	char v='V', l='L';
    	double A[N][N], E[N], work[4*N];
    	A[0][0] = 5.0; A[0][1] = 4.0; A[0][2] = 1.0; A[0][3] = 1.0;
    	A[1][0] = 4.0; A[1][1] = 5.0; A[1][2] = 1.0; A[1][3] = 1.0;
    	A[2][0] = 1.0; A[2][1] = 1.0; A[2][2] = 4.0; A[2][3] = 2.0;
    	A[3][0] = 1.0; A[3][1] = 1.0; A[3][2] = 2.0; A[3][3] = 4.0;
    	dsyev_( &v, &l, &n1, (double *)A, &n1, E, work, &n4, &info);
    	printf("# info=%d.\n", info );
    	printf("# Eigen values.\n");
    	for( j=0; j<N; j++ ){
    		printf("%+f ", E[j] );
    	}
    	printf("\n");
    	printf("# Eigen vectors.\n");
    	for( i=0; i<N; i++ ){
    		for( j=0; j<N; j++ ){
    			printf("%+f ", A[i][j] );
    		}
    		printf("\n");
    	}	
    	return 0;
    }
  • 実行結果
    # info=0.
    # Eigen values.
    +1.000000 +2.000000 +5.000000 +10.000000 
    # Eigen vectors.
    -0.707107 +0.707107 +0.000000 -0.000000 
    -0.000000 +0.000000 -0.707107 +0.707107 
    +0.316228 +0.316228 -0.632456 -0.632456 
    -0.632456 -0.632456 -0.316228 -0.316228 
  • Console Application
    fig1.jpg
    fig3.jpg
  • Accelarate Frameworkの追加
    fig2.jpg
    fig4.jpg
  • コンソール表示で結果の確認
    fig5.jpg
    fig6.jpg

添付ファイル: filefig1.jpg 560件 [詳細] filefig2.jpg 484件 [詳細] filefig3.jpg 401件 [詳細] filefig4.jpg 418件 [詳細] filefig5.jpg 428件 [詳細] filefig6.jpg 441件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSSPDF
Last-modified: 2010-12-12 (日) 04:23:13 (3084d)