計算機設定/CLAPACK/Xcode の変更点 - PukiWiki

[[計算機設定/CLAPACK]]
** Mac OS X (Xcode) で, CLAPACKを使う [#c933543b]
RIGHT:2010/12/12
*** 概要 [#nb7757c2]
- Accelarate framework を使う
-- 「グループとファイル」でプロジェクトを右クリック
-- 追加で既存のフレームワークを追加を選択する.
-- 追加で既存のフレームワークを追加を選ぶ
-- Accelarate Framwork を選択
- インクルード・ファイルは Accelarate.h
 #include <Accelerate/Accelerate.h>
*** 実対称行列Aの固有値と固有ベクトルを求める例 [#p36e509d]
- ソースファイル	
 #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
#ref(fig1.jpg)
#ref(fig3.jpg)
- Accelarate Frameworkの追加
#ref(fig2.jpg)
#ref(fig4.jpg)
- コンソール表示で結果の確認
#ref(fig5.jpg)
#ref(fig6.jpg)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSSPDF