- 834 名前:デフォルトの名無しさん [2021/11/01(月) 11:25:10.37 ID:/Zy4WfCe0.net]
- lu分解をc言語でやりたく、次のようなコード(1部分になります)を書いたのですが、y0の値が0.8になるはずなのに全く違うものとなってしまいます。原因が全くわからないのですが、どこを改良すればよいのでしょうか。
for(int n = 1; n <= M+1; n++){ t = n*dt; for(int i = 0; i <= N; i++){ x[i] = 0.0; } /* Ax = uを解く */ /* Ly = u */ y[0] = u[0]/l[0][0]; for (int i = 1; i <= N; i++){ y[i] = (u[i] - l[1][i]*y[i-1])/l[0][i]; } /* Ux = y */ x[N] = y[N]; for (int i = N-1; i >= 0; i--){ x[i] = y[i] - m[i]*y[i+1]; } /* 更新 */ for(int i = 0; i <= N; i++){ u[i] = x[i]; } }
|

|