#include<stdio.h> int main() { int i,j,k,l,n; double dx,dt,c; double a[16][16];//入力用の配列 double inv_a[16][16]; //ここに逆行列が入る double t[16][16]; double buf; //一時的なデータを蓄える dx =1; dt=1; c=1; n=16; //単位行列を作る for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(i == j){ inv_a[i][j] = 1; } else{ inv_a[i][j] = 0; } } } for(j=0;j<16;j++){ printf("\n"); for(i=0;i<16;i++){ printf("%.4f ", inv_a[j][i]); } } //係数行列を作る for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(j == i){ a[i][j] = 1; } else if(j == i+1){ a[i][j] = +(c/4)*(dt/dx); } else if(j == i-1){ a[i][j] = -(c/4)*(dt/dx); } else { a[i][j] = 0; } } } for(j=0;j<16;j++){ printf("\n"); for(i=0;i<16;i++){ printf("%.4f ", a[j][i]); } } //吐き出し for(i=0;i<n;i++){ buf=1/a[i][i]; for(j=0;j<n;j++){ a[i][j]*=buf; inv_a[i][j]*=buf; } for(j=0;j<n;j++){ if(i!=j){ buf=a[j][i]; for(k=0;k<n;k++){ a[j][k]-=a[i][k]*buf; inv_a[j][k]-=inv_a[i][k]*buf; } } } } for(j=0;j<16;j++){ printf("\n"); for(i=0;i<16;i++){ printf("%.4f ", inv_a[j][i]); } } //計算 for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(i == j){ t[i][j] = 0; } else{ t[i][j] = 0; } } } for(j=0;j<16;j++){ printf("\n"); for(i=0;i<16;i++){ printf("%.4f ", t[j][i]); } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { for(k=0;k<n;k++) { t[i][j] = t[i][j] + inv_a[i][k] * a[k][j]; } } } //ファイル出力 for(j=0;j<n;j++){ printf("\n"); for(i=0;i<n;i++){ printf("%.2f ", t[j][i]); } } return 0; }
Standard input is empty
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