Вычислительная физика

146 { for ( int i = 1; i < n; i++) { u[i,j+1]=(u[i+1,j]+4*u[i,j]+u[i-1,j])/6.0; } } Console .WriteLine( " \n " + "Вычисления по явной схеме, шаг по времени= {0:F5} " ,k); printHead(); for ( int i = 0; i < count; i++) { Console .Write( "t= {0:F5} : \t " ,i*k); for ( int j=0; j<=n; j++) Console .Write( " {0:F5} \t " ,u[j,i]); Console .WriteLine(); } } private static void NeyavnSchema( int s) { k = h*h/s; int n = Convert .ToInt32((X1 - X0)/h); double [,] u = new double [n + 1, count]; double [,] a = new double [n + 1, count]; double [,] b = new double [n + 1, count]; for ( int i = 0; i < count; i++) { u[0, i] = fi(k*i); u[n, i] = psi(k*i); } for ( int i = 0; i <= n; i++) u[i, 0] = f(h*i); for ( int j = 0; j < count - 1; j++) { a[0, j + 1] = 1.0/(2 + s); b[0, j + 1] = u[0, j + 1] + s*u[0, j]; } for ( int j = 0; j < count - 1; j++) { for ( int i = 1; i < n; i++) { a[i, j + 1] = 1.0/(2 + s + a[i - 1, j + 1]); b[i, j + 1] = a[i - 1, j + 1]*b[i - 1, j + 1] + s*u[i, j]; } for ( int i = n - 1; i > 0; i--) { u[i, j + 1] = a[i, j + 1]*(b[i, j + 1] + u[i + 1, j + 1]); } } Console .WriteLine( " \n Вычисления по неявной схеме, шаг по времени= {0:F5} , s= {1} " ,k, s); printHead(); for ( int i = 0; i < count; i++) { Console .Write( "t= {0:F5} : \t " , i * k); for ( int j = 0; j <= n; j++) Console .Write( " {0:F5} \t " , u[j, i]); Console .WriteLine(); } } static void printHead() { double x = X0;

RkJQdWJsaXNoZXIy MTY0OTYy