fork download
  1. #include <stdio.h>
  2. #define M 4
  3. int main(void){
  4. int i,j,k;
  5. double l[M][M],u[M][M],x[M];
  6. double a[M][M] = {{ 2, 4, -10,-1 },{ 1, 6, 7 ,7},
  7. { 3, 5, -13, 4 },{ 2, 5, -3, 4 }},
  8. b[M] = {0,10,2,6};
  9.  
  10. for(i = 0; i < M; i++){ /* L行列、U行列を1と0で初期化*/
  11. for(j = 0; j < M; j++){
  12. u[i][j] = 0;
  13. if(i == j)l[i][j] = 1;
  14. else
  15. l[i][j] = 0;
  16. }
  17. }
  18.  
  19. for(i = 0; i < M; i++){
  20. for(j = i; j < M; j++){ /* U行列の生成*/
  21. u[i][j] = a[i][j];
  22. for(k = 0; k < i; k++){
  23. u[i][j] -= u[k][j] * l[i][k];
  24. }
  25. }
  26.  
  27. for(j = i+1; j < M; j++){ /* L行列の生成*/
  28. l[j][i] = a[j][i];
  29. for(k = 0; k < i; k++){
  30. l[j][i] -= u[k][i] * l[j][k];
  31. }
  32. l[j][i] /= u[i][i];
  33. }
  34. }
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
Success #stdin #stdout 0s 4352KB
stdin
Standard input is empty
stdout
x0 =    0.00000
x1 =    0.00000
x2 =    0.00000
x3 =    0.00000