• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ガウス消去)

ガウス消去の前進消去のプログラムを考えた結果、3行目まで正規化してしまう

このQ&Aのポイント
  • 行列3*3で4列目に答えが入る、ガウス消去の前進消去のプログラムを考えた結果、3行目まで正規化してしまいます。
  • 前進消去した行列をmに格納しています。
  • プログラム内では前進消去の計算が行われており、行列の要素が変更されています。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

余計なアドバイスかもしれないけど、m は、(1,0 になるとわかっている部分で構成されるから)別に要らないんじゃないかと思う ---------------------------------------------------------------- #include <stdio.h> int main(){ int i, j, k, n=3; double a[3][4]={ { 3, 2,-3,-2}, { 2,-2, 1, 7}, {-3, 6, 5,28}, }; //初期状態 for(i=0;i<n;i++){ for(j=0;j<=n;j++) printf("%g ", a[i][j]); printf("\n"); } printf("\n"); for( i = 0; i < n; i++ ){ for( j = i+1; j <= n; j++ ){ a[i][j] /= a[i][i]; } for( k = 0; k < n; k++ ){ if(k != i){ for(j = i+1;j <= n;j++){ a[k][j] -= a[k][i] * a[i][j]; } } } } //点検 for(i=0;i<n;i++){ printf("%lf\n", a[i][n]); } return 0; }

関連するQ&A