fork download
  1. #include<stdio.h>
  2.  
  3. int main()
  4. {
  5. int i,j,k,l,n;
  6. double dx,dt,c;
  7. double a[16][16];//入力用の配列
  8. double inv_a[16][16]; //ここに逆行列が入る
  9. double t[16][16];
  10. double buf; //一時的なデータを蓄える
  11. dx =1;
  12. dt=1;
  13. c=1;
  14. n=16;
  15.  
  16.  
  17. //単位行列を作る
  18. for(i=0;i<n;i++){
  19. for(j=0;j<n;j++){
  20. if(i == j){
  21. inv_a[i][j] = 1;
  22. }
  23. else{
  24. inv_a[i][j] = 0;
  25. }
  26. }
  27. }
  28.  
  29. for(j=0;j<16;j++){
  30. printf("\n");
  31. for(i=0;i<16;i++){
  32. printf("%.4f ", inv_a[j][i]);
  33. }
  34. }
  35.  
  36. //係数行列を作る
  37. for(i=0;i<n;i++){
  38. for(j=0;j<n;j++){
  39. if(j == i){
  40. a[i][j] = 1;
  41. }
  42. else if(j == i+1){
  43. a[i][j] = +(c/4)*(dt/dx);
  44. }
  45. else if(j == i-1){
  46. a[i][j] = -(c/4)*(dt/dx);
  47. }
  48. else {
  49. a[i][j] = 0;
  50. }
  51. }
  52. }
  53.  
  54. for(j=0;j<16;j++){
  55. printf("\n");
  56. for(i=0;i<16;i++){
  57. printf("%.4f ", a[j][i]);
  58. }
  59. }
  60.  
  61. //吐き出し
  62. for(i=0;i<n;i++){
  63. buf=1/a[i][i];
  64. for(j=0;j<n;j++){
  65. a[i][j]*=buf;
  66. inv_a[i][j]*=buf;
  67. }
  68. for(j=0;j<n;j++){
  69. if(i!=j){
  70. buf=a[j][i];
  71. for(k=0;k<n;k++){
  72. a[j][k]-=a[i][k]*buf;
  73. inv_a[j][k]-=inv_a[i][k]*buf;
  74. }
  75. }
  76. }
  77. }
  78.  
  79. for(j=0;j<16;j++){
  80. printf("\n");
  81. for(i=0;i<16;i++){
  82. printf("%.4f ", inv_a[j][i]);
  83. }
  84. }
  85.  
  86.  
  87. //計算
  88.  
  89. for(i=0;i<n;i++){
  90. for(j=0;j<n;j++){
  91. if(i == j){
  92. t[i][j] = 0;
  93. }
  94. else{
  95. t[i][j] = 0;
  96. }
  97. }
  98. }
  99.  
  100. for(j=0;j<16;j++){
  101. printf("\n");
  102. for(i=0;i<16;i++){
  103. printf("%.4f ", t[j][i]);
  104. }
  105. }
  106.  
  107. for(i=0;i<n;i++) {
  108. for(j=0;j<n;j++) {
  109. for(k=0;k<n;k++) {
  110. t[i][j] = t[i][j] + inv_a[i][k] * a[k][j];
  111. }
  112.  
  113. }
  114.  
  115. }
  116.  
  117.  
  118. //ファイル出力
  119. for(j=0;j<n;j++){
  120. printf("\n");
  121. for(i=0;i<n;i++){
  122. printf("%.2f ", t[j][i]);
  123. }
  124. }
  125.  
  126.  
  127.  
  128.  
  129. return 0;
  130. }
Success #stdin #stdout 0.01s 2724KB
stdin
Standard input is empty
stdout
1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 
1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
-0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 0.2500 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.2500 1.0000 
0.9443 -0.2229 0.0526 -0.0124 0.0029 -0.0007 0.0002 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 
0.2229 0.8916 -0.2105 0.0497 -0.0117 0.0028 -0.0007 0.0002 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 
0.0526 0.2105 0.8946 -0.2112 0.0499 -0.0118 0.0028 -0.0007 0.0002 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 
0.0124 0.0497 0.2112 0.8944 -0.2111 0.0498 -0.0118 0.0028 -0.0007 0.0002 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 
0.0029 0.0117 0.0499 0.2111 0.8944 -0.2111 0.0498 -0.0118 0.0028 -0.0007 0.0002 -0.0000 0.0000 -0.0000 0.0000 -0.0000 
0.0007 0.0028 0.0118 0.0498 0.2111 0.8944 -0.2111 0.0498 -0.0118 0.0028 -0.0007 0.0002 -0.0000 0.0000 -0.0000 0.0000 
0.0002 0.0007 0.0028 0.0118 0.0498 0.2111 0.8944 -0.2111 0.0498 -0.0118 0.0028 -0.0007 0.0002 -0.0000 0.0000 -0.0000 
0.0000 0.0002 0.0007 0.0028 0.0118 0.0498 0.2111 0.8944 -0.2111 0.0498 -0.0118 0.0028 -0.0007 0.0002 -0.0000 0.0000 
0.0000 0.0000 0.0002 0.0007 0.0028 0.0118 0.0498 0.2111 0.8944 -0.2111 0.0498 -0.0118 0.0028 -0.0007 0.0002 -0.0000 
0.0000 0.0000 0.0000 0.0002 0.0007 0.0028 0.0118 0.0498 0.2111 0.8944 -0.2111 0.0498 -0.0118 0.0028 -0.0007 0.0002 
0.0000 0.0000 0.0000 0.0000 0.0002 0.0007 0.0028 0.0118 0.0498 0.2111 0.8944 -0.2111 0.0498 -0.0118 0.0028 -0.0007 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0002 0.0007 0.0028 0.0118 0.0498 0.2111 0.8944 -0.2111 0.0499 -0.0117 0.0029 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0002 0.0007 0.0028 0.0118 0.0498 0.2111 0.8944 -0.2112 0.0497 -0.0124 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0002 0.0007 0.0028 0.0118 0.0499 0.2112 0.8946 -0.2105 0.0526 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0002 0.0007 0.0028 0.0117 0.0497 0.2105 0.8916 -0.2229 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0002 0.0007 0.0029 0.0124 0.0526 0.2229 0.9443 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
0.94 -0.22 0.05 -0.01 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 -0.00 
0.22 0.89 -0.21 0.05 -0.01 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 
0.05 0.21 0.89 -0.21 0.05 -0.01 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 -0.00 
0.01 0.05 0.21 0.89 -0.21 0.05 -0.01 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 
0.00 0.01 0.05 0.21 0.89 -0.21 0.05 -0.01 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 -0.00 
0.00 0.00 0.01 0.05 0.21 0.89 -0.21 0.05 -0.01 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.00 
0.00 0.00 0.00 0.01 0.05 0.21 0.89 -0.21 0.05 -0.01 0.00 -0.00 0.00 -0.00 0.00 -0.00 
0.00 0.00 0.00 0.00 0.01 0.05 0.21 0.89 -0.21 0.05 -0.01 0.00 -0.00 0.00 -0.00 0.00 
0.00 0.00 0.00 0.00 0.00 0.01 0.05 0.21 0.89 -0.21 0.05 -0.01 0.00 -0.00 0.00 -0.00 
0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.05 0.21 0.89 -0.21 0.05 -0.01 0.00 -0.00 0.00 
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.05 0.21 0.89 -0.21 0.05 -0.01 0.00 -0.00 
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.05 0.21 0.89 -0.21 0.05 -0.01 0.00 
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.05 0.21 0.89 -0.21 0.05 -0.01 
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.05 0.21 0.89 -0.21 0.05 
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.05 0.21 0.89 -0.22 
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.05 0.22 0.94