連立方程式の解法に用いるピボット選択のアルゴリズム
Posted: 2015年4月28日(火) 14:14
//TODO:ピボット選択が間違っている
/* 部分ピボット選択
n : 未知数の数
t : ピボット行
s : 列
a : 拡大係数行列
*/
void pivoting(int n,int s,int t,double a[][10]){
printf("pivoting関数内 :: \n");
print_matrix(n,n+1,a);
int i,j,max_ele = a[t][s],ele;
for(i = 1;i < n;i++){
ele = fabs(a[i][s]);
if(ele > max_ele && i != t){
//最大値がピボットよりも大きいのを見つけた
//行の交換操作
max_ele = ele;
for(j = 0;j < n+1;j++){
swap(&(a[t][j]),&(a[i][j]));
}
}
}
printf("pivoting関数内 :: \n");
print_matrix(n,n+1,a);
}
雰囲気でもいいのでご助言お願い致します。