ガウス・ジョルダン法
をテンプレートにして作成
[
トップ
|
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#ref(ls_gauss_jordan.eq12.gif,nolink,70%)
#ref(ls_gauss_jordan.eq13.gif,nolink,70%)
#ref(ls_gauss_jordan.eq14.gif,nolink,70%)
#ref(ls_gauss_jordan.eq15.gif,nolink,70%)
#ref(ls_gauss_jordan.eq17.gif,nolink,70%)
#code(C){{
/*!
*/
int GaussJordan(vector< vector<double> > &A, int n)
{
for(int i = 0; i < n; ++i){
for(int j = 0; j < n; ++j){
A[i][j+n] = (i == j ? 1.0 : 0.0);
}
}
for(int k = 0; k < n; ++k){
double akk = A[k][k];
for(int j = 0; j < 2*n; ++j){
A[k][j] /= akk;
}
for(int i = 0; i < n; ++i){
if(i == k) continue;
double aik = A[i][k];
for(int j = 0; j < 2*n; ++j){
A[i][j] -= A[k][j]*aik;
}
}
}
return 1;
}
}}
終了行:
#ref(ls_gauss_jordan.eq12.gif,nolink,70%)
#ref(ls_gauss_jordan.eq13.gif,nolink,70%)
#ref(ls_gauss_jordan.eq14.gif,nolink,70%)
#ref(ls_gauss_jordan.eq15.gif,nolink,70%)
#ref(ls_gauss_jordan.eq17.gif,nolink,70%)
#code(C){{
/*!
*/
int GaussJordan(vector< vector<double> > &A, int n)
{
for(int i = 0; i < n; ++i){
for(int j = 0; j < n; ++j){
A[i][j+n] = (i == j ? 1.0 : 0.0);
}
}
for(int k = 0; k < n; ++k){
double akk = A[k][k];
for(int j = 0; j < 2*n; ++j){
A[k][j] /= akk;
}
for(int i = 0; i < n; ++i){
if(i == k) continue;
double aik = A[i][k];
for(int j = 0; j < 2*n; ++j){
A[i][j] -= A[k][j]*aik;
}
}
}
return 1;
}
}}
ページ名: